本文所描述的实施方案整体涉及在计算设备之间共享数据。更具体地,本文所描述的实施方案涉及在将共享数据呈现给用户的同时解决数据不一致性。
背景技术:
近年来,个人拥有的计算设备的数量不断增加。例如,计算设备(例如,智能手表、健身跟踪器、智能电话、平板电脑、膝上型计算机、便携式健康监测器等)可在全天监测用户的活动方面发挥积极作用。值得注意的是,这些计算设备中的每一者包括能够监测和存储与用户活动相关联的数据的硬件部件(例如,传感器、存储器等)和软件部件(例如,应用程序等),以便提供可提供丰富用户体验的专用功能。然而,使用多个计算设备的持续挑战是,每个计算设备通常向用户呈现其在一整天中的活动的部分且有限的表示。例如,考虑用户在依赖智能电话(例如,监测睡眠模式)和健身跟踪器(例如,监测健身房健身)时缺乏其总体用户活动的全面表示。此外,还期望启用隐私保护以阻止未授权用户和其他计算设备访问存储在这些计算设备处的数据。
因此,需要一种高效率且安全的技术,用于向用户呈现存储在这些计算设备处的数据的更全面表示。
技术实现要素:
为了解决上述缺陷,本文阐述的代表性实施方案公开了用于在计算设备之间共享数据的各种技术。更具体地,本文所描述的实施方案涉及在将共享数据呈现给用户的同时解决数据不一致性。
根据一些实施方案,存储与事件相关联的第一组数据的第一计算设备可被配置为实现用于通过执行本文所述的技术来解决多个计算设备之间的同步数据中的不一致的方法。具体地,该方法可包括以下步骤:(1)从第二计算设备接收与事件相关联的第二组数据,(2)响应于接收到呈现与事件相关联的数据的请求:确定第一组数据和第二组数据的相应对应数据之间存在至少一个不一致,(3)向至少一个不一致应用规则以形成经解析的数据,以及(4)呈现与事件相关联的数据,其中该数据至少包括经解析的数据。
根据一些实施方案,一种计算设备可被配置为实现用于通过执行本文所述的技术来控制对与多个用户相关联的数据项的访问的方法。具体地,该方法可包括以下步骤:(1)从应用程序接收访问存储在计算设备处的数据项的请求,其中数据项至少包括(i)存储在第一数据库处与第一用户相关联的第一组数据,以及(ii)存储在第二数据库处与第二用户相关联的第二组数据,(2)确定是否接收到对应用程序访问与特定用户相关联的数据库的批准,其中特定用户包括第一用户或第二用户中的至少一者,(3)响应于确定接收到对应用程序访问数据库的批准:确定应用程序被限于访问存储在数据库处的与特定用户相关联的数据的特定子集,以及(4)使得应用程序能够访问数据的特定子集,同时阻止应用程序访问存储在数据库处的任何其他数据。
其他实施方案包括一种被配置为存储指令的非暂态计算机可读存储介质,该指令当由被包括在计算设备中的处理器执行时使得该计算设备执行上述方法中的任一方法的各步骤。另外的实施方案包括被配置为执行前述方法中任何方法的各种步骤的计算设备。
根据结合以举例的方式示出所述实施方案的原理的附图而进行的以下详细描述,本发明的其他方面和优点将变得显而易见。
附图说明
本公开通过下面结合附图的具体描述将更易于理解,其中类似的附图标记表示类似的结构元件。
图1示出了根据一些实施方案可被配置为实现本文所述各种技术不同方面的不同计算设备的框图。
图2a-图2g示出了根据一些实施方案,在不同计算设备之间共享数据的示例性概念图。
图3a-图3e示出了根据一些实施方案,在不同计算设备之间共享数据的示例性概念图。
图4示出了根据一些实施方案,用于为访问存储在计算设备处的数据的请求提供服务的方法。
图5示出了根据一些实施方案,用于为修改存储在计算设备处的数据的请求提供服务的方法。
图6示出了根据一些实施方案,用于使得计算设备能够呈现经解析的数据的方法。
图7示出了根据一些实施方案,用于使计算设备能够执行基线数据过程的方法。
图8示出了根据一些实施方案,可被配置为实现本文所述的各种技术的计算设备的详细视图。
具体实施方式
在该部分描述了根据本申请的方法与装置的代表性应用。提供这些示例仅为了添加上下文并有助于理解所描述的实施方案。因此,对于本领域的技术人员而言将显而易见的是,可在没有这些具体细节中的一些或全部的情况下实践所述实施方案。在其他情况下,为了避免不必要地模糊所述实施方案,未详细描述熟知的处理步骤。其他应用是可能的,使得以下示例不应被当作是限制性的。
在以下详细描述中,参考了形成说明书的一部分的附图,并且在附图中以例示的方式示出了根据所述实施方案的具体实施方案。虽然这些实施方案被描述得足够详细,以使本领域的技术人员能够实践所述实施方案,但是应当理解,这些示例不是限制性的;使得可以使用其他实施方案,并且可以在不脱离所述实施方案的实质和范围的情况下作出修改。
本文所述的实施方案阐述了各种技术,其用于在与用户相关联的计算设备之间共享(例如,同步)数据,以便向用户呈现用户数据的更全面表示。在一些示例中,这些计算设备中的每一者能够跟踪用户的身体活动。然而,由于这些计算设备(例如,传感器、校准设置等)中的技术差异,这些计算设备可能存储了针对相同事件(例如,身体活动)的不同数据。例如,考虑用户在冲浪时佩戴智能手表的情形,其中智能手表在两小时冲浪会话期间跟踪在mavericks的冲浪总距离(例如,1000码)。另外,用户的冲浪板包括启用蓝牙的健身跟踪器,该跟踪器跟踪用户在相同的两小时冲浪会话期间冲浪的总距离(例如,1050码)。在冲浪会话之后,用户的计算设备可共享其数据(例如,冲浪的总距离等),以便尝试向用户呈现冲浪会话期间的总体活动的一致且完整的表示。然而,由于这些计算设备之间的前述技术差异,在共享数据时,这些计算设备可能会呈现用户总体活动的不同表示,这可造成混淆。因此,这些计算设备可利用如本文更详细描述的技术来解决这些不一致并向用户提供用户总体活动的更全面表示。
根据一些实施方案,用于解决这些不一致的技术可包括存储与事件相关联的第一组数据的第一计算设备。随后,第一计算设备可从第二计算设备接收与事件相关联的第二组数据。在一些示例中,第一计算设备可经由可被第一计算设备和第二计算设备两者访问的存储设备来接收第二组数据。在其他示例中,第一计算设备可直接从第二计算设备接收第二组数据。随后,响应于接收到呈现与事件相关联的数据的请求,第一计算设备可确定第一组数据和第二组数据之间是否存在数据不一致。在确定存在一个或多个数据不一致时,第一计算设备可应用规则来解决一个或多个数据不一致以形成经解析的数据。然后,第一计算设备可向用户呈现与事件相关联的数据,其中数据至少包括经解析的数据。
此外,本文所述的实施方案阐述了用于管理将在计算设备之间同步的特定数据的技术。具体地,这些计算设备可在多个用户之间共享,例如,其中主要用户可与第一计算设备相关联,另一主要用户可与第二计算设备相关联,等等。考虑例如可将多个用户(例如,主要用户和一个或多个二级用户等)分配给单个计算设备的情形。进一步考虑,与第一计算设备相关联的主要用户可能希望限制与第二计算设备共享数据子集。因此,当在这些计算设备之间共享数据时,与第一计算设备相关联的主要用户可定义被允许与其他计算设备共享的数据子集,同时阻止与其他计算设备共享与主要用户相关联的其他数据子集。在一些示例中,可根据特定数据类型、特定应用程序生成的数据、在特定时间范围内生成的数据等来定义数据子集。因此,这些计算设备可利用本文所述的技术来指定要与其他计算设备共享的数据。
此外,本文所述的实施方案阐述了用于启用用户隐私保护以阻止未授权用户和其他计算设备访问用户数据的技术。具体地,每个计算设备能够在其相应的本地存储设备处存储共享数据。此外,共享数据还可存储在可由这些计算设备访问的存储设备处。然而,需注意,当在计算设备处删除特定共享数据时,特定共享数据仍可保留在存储设备处。值得注意的是,存储设备处的特定共享数据可能易被其他计算设备访问,这涉及与这些计算设备相关联的用户何时打算删除该特定数据。因此,这些计算设备可利用本文所述的技术来启用用户隐私保护,以阻止或最小化未授权用户和其他计算设备访问该特定数据的风险。
根据一些实施方案,用于启用用户隐私保护的技术可包括第一计算设备管理存储在存储设备处的数据。具体地,第一计算设备可接收修改存储在第一计算设备处的初始一组数据的请求,其中初始一组数据也存储在存储设备处。在一些示例中,初始一组数据正在被第一计算设备删除。响应于修改初始一组数据,第一计算设备可根据对初始一组数据的该修改生成更改记录。随后,第一计算设备可向存储设备提供更改记录,其中该更改记录随后被存储在存储设备处。在一些情况下,第一计算设备可被配置为确定是否识别到用于替换存储设备处的初始一组数据的至少一种情况。如果识别到该至少一种情况,则第一计算设备可向存储设备提供经更新的一组数据,其中存储设备将初始一组数据替换为经更新的一组数据。在一些情况下,经更新的一组数据还替换先前存储在存储设备处的已更改的记录。这样,初始一组数据的删除也反映在存储设备处。
此外,本文所述的实施方案阐述了用于控制准予应用程序和其他用户对存储在计算设备处的数据的访问的级别的技术。例如,考虑应用程序(在计算设备处建立)可被配置为访问该数据以便提供可提供丰富用户体验的专用功能。然而,计算设备可存储多个用户(例如,家庭的两个成员等)的数据,其中每个用户可能都希望定义应用程序对其相应数据具有的访问的级别。因此,计算设备可为每个用户建立单独的数据库,其中每个单独的数据库仅存储特定用户的数据。在一些情况下,每个单独的数据库可包括专用的应用编程接口(api),该接口保护数据库中包括的数据,以防止应用程序和其他用户访问。例如,考虑一种情形,其中成员可准予冲浪应用程序对用户移动的gps坐标(存储在用户的数据库中)的访问,以便跟踪与用户的冲浪会话相关联的健身活动(例如,冲浪的总距离),同时拒绝游泳应用程序在同一冲浪会话期间访问相同的gps坐标以便跟踪不同的健身活动(例如,桨板冲浪的总距离)。另选地,用户的配偶可拒绝冲浪应用程序访问配偶移动的gps坐标(存储在配偶的数据库中),同时允许游泳应用访问相同的gps坐标。因此,这些隐私保护使得每个特定用户能够控制可供共享的用户的相应数据。
此外,本文所述的用于控制准予应用程序和其他用户对存储在计算设备处的数据的访问的级别的技术可应用于共享的用户健康数据(例如,患者的健康记录、家谱测试、药物处方的历史、医院就诊、保险信息、家庭健康背景、医生的诊治、睡眠记录、强化注射、疫苗接种记录等)。具体地,用户健康数据可在患者和至少一个其他方之间共享,其他方可包括患者的家庭成员、患者的医生、患者的保险提供商等等。在一些情况下,患者的计算设备可被配置为控制至少一个其他方对患者健康数据的访问的级别。例如,考虑患者允许患者的健康保险提供商访问患者的药物处方和医院就诊的历史以报销患者支付的实际费用的情形。然而,在该相同情形下,患者还可限制与患者的保险提供商共享患者的家谱测试(这样可暗示某些癌症的遗传倾向)。因此,患者可利用前述隐私保护来控制准予其他方对患者健康数据的访问的级别。
根据一些实施方案,用于解决在多个计算设备之间的共享数据中的不一致的技术可应用于用户健康数据。例如,考虑患者存储与使用处方药(例如胰岛素)相关联的医疗记录的情形。患者的计算设备可被配置为在患者接受胰岛素注射时建立每个实例的日期/时间的医疗记录。具体地,患者的医疗记录可与患者的医生共享,以便提供患者健康数据的全面表示。另外,患者的医疗记录可包括相关联的患者数据,诸如患者的年龄、患者的血糖水平、患者的体重、患者的血压、患者的遗传数据、患者的身高、患者的血型和胰岛素处方剂量。继续该示例,患者的计算设备可被配置为在患者错过所需的胰岛素注射时呈现通知。然而,如果患者利用医生的计算设备来建立医疗记录,该医疗记录指示患者在医生的办公室接受胰岛素注射,则该医疗记录可随后与计算设备共享。这样,这些计算设备可合并患者在不同时间段中的健康数据,以便呈现患者健康数据的全面表示。
此外,如本文所述的技术可用于管理与这些用户相关联的宠物(例如,狗、猫等)的健康数据(例如,疫苗接种记录、手术等)。在一些示例中,用户可在计算设备处建立专门用于存储与用户的宠物相关联的健康数据的数据库。
根据一些实施方案,这些计算设备可彼此共享媒体项目(例如,文档文件、图片文件、音乐文件、视频文件、网页等)。考虑例如第一计算设备的第一用户与第二计算设备的第二用户共享文档文件的情形。随后,第二用户修改文档文件以形成经修改的文档文件。在一些情况下,可随后与第一计算设备共享该经修改的文档文件。然而,考虑到第一计算设备和第二计算设备可利用不同的文字处理应用程序(例如,相同文字处理应用程序的不同版本等)来向用户呈现经修改的文档文件。与这些计算设备呈现不统一版本的经修改的文档文件相反,两个计算设备均可应用规则来解决经修改的文档文件中的任何不一致,以便向第一用户和第二用户呈现经修改的文档文件的统一版本。
例如,考虑专业电子音乐艺术家正在与业余音乐家的计算设备(例如,平板电脑)处的业余音乐家协作在专业音乐家的计算设备(例如膝上型计算机)处生成歌曲的重新混音的另一种情形。在对歌曲重新混音时,这些用户中的每一者可应用不同的音乐部件(例如合成器、打击乐器、采样器、midi效果、插件等)。但是,考虑专业音乐家比业余音乐家(例如,dj软件的试用许可证)具有对更多音乐部件(例如,dj软件的完整许可证)的访问权限。因此,计算设备可建立一个或多个规则,该规则将计算设备建立为相对于不同计算设备具有优先权。在一个示例中,两个音乐家都在尝试对歌曲的相同时间段重新混音,但利用不同的音乐部件。随后,当这些计算设备共享它们各自的基线数据时,这些计算设备可应用一个或多个规则,以确定由专业音乐家生成的歌曲的重新混音应当在两个计算设备处呈现。在一些示例中,可在视觉上区分(例如,高亮、带下划线、不同颜色等)歌曲的相同时间段的这些版本之间的任何不一致,使得两个音乐家都可有机会查看业余音乐家对歌曲的重新混音的全部范围,并且接受/拒绝所呈现的歌曲的重新混音中的那些更改。
这些技术的更详细论述在下面示出并结合图1、图2a-图2g和图3-图8进行描述,其示出了可用于实现这些技术的系统和方法的详细的图示。
图1示出了根据一些实施方案的可被配置为实现本文所述技术的各方面的不同计算设备的框图100。具体地,图1示出了被配置为与其他计算设备102(例如,102-2至102-n)共享数据(例如,同步数据)的计算设备102-1的高级概览。在一些情况下,这些计算设备102中的每一者可利用存储设备104来存储在这些计算设备102之间共享的数据,如本文更详细所述。在一些示例中,存储设备104可指任何网络可访问存储器或存储设备,诸如局域网存储设备、云联网存储设备、个人区域网络存储设备等。尽管图1中未示出,但应当理解,计算设备102中的每一者可包括至少一个处理器、至少一个存储器和至少一个存储设备,它们共同使得这些计算设备102能够根据本公开操作。例如,在给定计算设备102中,至少一个处理器与至少一个存储器一起可将存储在至少一个存储设备中的指令加载到至少一个存储器中,以使得能够实现本文所述的技术。具体地,包括多种应用程序/内核的操作系统(os)可由至少一个处理器执行,以便实现本文所述的各种技术。
例如,os可使得共享管理器110和应用程序接口(api)130能够在计算设备102-1上执行。根据一些实施方案,共享管理器110可被配置为,为与其他计算设备(例如,计算设备102-2至102-n等)共享数据的请求提供服务。此外,共享管理器110可被配置为与api130通信,以便为与在计算设备102-1/其他计算设备102处建立的应用程序共享数据的请求提供服务。在一些情况下,共享管理器110和api130中的每一者可被配置为访问各种数据结构(例如,存储在计算设备102-1的至少一个存储器/至少一个存储设备中),这些数据结构使得共享管理器110和api130能够执行用于共享数据的技术。例如,该数据结构可包括设备信息114、更改记录器116、冲突求解器118、一个和多个数据库124和认证协议132,在下文中更详细地描述其用途。
根据一些实施方案,共享管理器110可被配置为,为共享存储在计算设备102-1的数据库124处的数据的任何数量的请求提供服务。在一些示例中,共享数据的请求可由用户使用计算设备102-1来发起。在其他示例中,共享数据的请求可由在计算设备102-1处建立执行的应用程序发起以提供专用功能。在其他示例中,计算设备102-1可从其他计算设备102接收共享数据的请求。具体地,这些计算设备102可被预定义为具有主/主关系,其中“主”计算设备102能够生成其自己的数据,与另一个“主”计算设备102共享其数据,和/或修改由另一个“主”计算设备102生成的共享数据。在其他示例中,这些计算设备102可被预定义为具有父/子关系,其中“子”计算设备102可被限制为仅查看由“父”计算设备102生成的共享数据。具体地,“子”计算设备102可被阻止修改由“父”计算设备102生成的任何共享数据。本文更详细地描述了根据这些预定义的关系来共享数据的技术。
根据一些实施方案,将在这些计算设备102之间共享的数据可存储在每个计算设备102的相应数据库124处。在一些情况下,数据库124可包括数据结构,该数据结构可包括基线数据(例如,基线数据120-1至120-n)、归属数据(例如,归属数据140-a至140-n)、谓词数据(例如,谓词数据150-a至150-n)和更改记录(图1中未示出)。具体地,可结合执行基线数据过程,在这些计算设备102之间共享基线数据120。在一些情况下,可响应于识别到适于执行基线数据过程的至少一种情况,由这些计算设备102中的任一者执行基线数据过程,如参考图7更详细所述。
根据一些实施方案,基线数据过程可包括计算设备102-1向存储设备104提供一组数据。在一些示例中,该组数据可包括存储在数据库124处的由计算设备102-1生成的所有数据,以及存储在数据库124处的由其他计算设备102生成的所有其他数据。在一些示例中,结合基线数据过程提供的数据可包括基线数据120、归属数据140、谓词数据150或更改记录中的至少一者。随后,存储设备104可将该数据存储在专门用于存储由该计算设备102-1提供的数据的数据库(图1中未示出)处。继而,存储设备104可将该数据提供给不同计算设备102-2,而该数据随后被存储在不同计算设备102-2的相应数据库124处。这样,在这些计算设备102之间共享的任何数据可方便地存储在存储设备104处,该存储设备可高速缓存共享数据。
根据一些实施方案,这些计算设备102中的每一者能够将相应基线数据过程(例如,后续基线数据过程)实例化,以便替换由于先前基线数据过程(例如,初始基线数据过程)而存储在云存储设备处的任何数据。例如,结合初始基线数据过程在这些计算设备102之间共享的任何数据也可存储在存储设备104处。在一些实施方案中,初始基线数据过程中包括的任何共享数据可与初始时间戳相关联。随后,结合这些计算设备102中的任一者执行后续基线数据过程(即,重定基线数据过程),这些计算设备102中的每一者可提供一组基线数据,该一组基线数据替换存储在存储设备104处其专用数据库处的任何数据。
根据一些实施方案,包括在后续基线数据过程中的共享数据可与后续时间戳相关联。随后,当存储设备104接收包括在后续基线数据过程中的数据时,存储设备104可将后续时间戳与初始时间戳进行比较,以确定是否替换与初始基线数据过程相关联的数据。在一个示例中,存储设备104可比较共享数据的时间戳(例如,中午12:00与晚上9:00),以确定是否替换存储在云存储设备104处的对应数据。下面结合图2a-图2g描述了对这种技术的更详细说明。
根据一些实施方案,存储设备104可被配置为促进这些计算设备102之间的数据共享。具体地,存储设备104可包括单独的数据库,诸如专门用于仅存储由计算设备102-1提供的数据的第一数据库,和专门用于仅存储由不同计算设备102-2提供的数据的第二数据库。在一些情况下,每个专用数据库可与数据库标识符相关联,该数据库标识符对应于与提供数据的特定计算设备102相关联的特定设备标识符。
此外,除了执行基线数据过程之外,存储在驻留在存储设备104上的专用数据库处的任何基线数据120通常不受对存储在计算设备102的相应数据库124处的对应基线数据120进行的修改(例如,删除、编辑等)的影响。相反,根据一些实施方案,对存储在相应数据库124处的基线数据120的修改可反映到存储在存储设备104处的更改记录中。这样,每个计算设备102可将其存储在数据库124处的相应基线数据120与存储在存储设备104处的对应基线数据120进行比较,以确认是否删除基线数据120,如本文更详细所述。
根据一些实施方案,计算设备102-1可与主要用户(例如,家长)和一个或多个二级用户(例如,家长的孩子)相关联。在一些情况下,可基于其各自访问存储在计算设备102-1的数据库124处的数据的权限,对主要用户与二级用户加以区分。例如,根据一些实施方案,数据库124可包括可专门用于存储与主要用户相关联的数据的主要数据库,以及可各自专门用于存储与一个或多个二级用户相关联的数据的一个或多个辅助数据库。
根据一些实施方案,主要用户能够控制对辅助数据库的访问。在一些情况下,将存储在辅助数据库处的数据可由不同计算设备102-2提供。例如,不同计算设备102-2还可存储与二级用户相关联的数据。在由不同计算设备102-2执行的基线数据过程期间,与二级用户相关联的数据可与计算设备102-1共享,并且随后被存储在计算设备102-1的辅助数据库124处。
在一些情况下,主要用户可在计算设备102-1处手动输入将存储在辅助数据库处的数据。例如,当家长(即,主要用户)将孩子(即,二级用户)带到医生办公室接受疫苗接种时,家长可在辅助数据库处建立这些免疫接种的记录。
在一些情况下,在计算设备102-1处建立的应用程序可被配置为生成可存储在辅助数据库处的数据。如本文更详细所述,每个数据库可包括控制对辅助数据库的访问的专用api。响应于准予应用程序对辅助数据库的访问,专用api可控制应用程序对辅助数据库的访问。例如,专用api可以准予心率监测应用程序对与家长的孩子相关联的辅助数据库的访问。因此,由心率监测应用程序建立的任何心率测量均可存储在辅助数据库处。
在一些情况下,主要用户可经由蓝牙连接将辅助设备(例如,健康监测器、体重秤等)连接到计算设备102-1。响应于连接辅助设备,计算设备102-1可向主要用户呈现通知,来查询由辅助设备生成的任何数据是否可存储在辅助数据库处。例如,当使用健康监测器来测量孩子的心率时,心率可被存储在辅助数据库处。另外,需注意,如本文所述的任何技术可应用于在主要数据库处存储与主要用户相关联的数据。
根据一些实施方案,共享管理器110可被配置为结合为与其他用户/其他计算设备102共享数据的请求提供服务,访问设备信息114。具体地,共享管理器110可利用设备信息114来生成归属数据140。此外,归属数据140可与在基线数据过程期间提供的基线数据120相关联。在一些情况下,归属数据140可指描述基线数据120的识别特征。共享管理器110可访问设备信息114以便建立归属数据140的识别特征。
根据一些实施方案,设备信息114可基于与计算设备102相关联的硬件/软件属性。在一些示例中,归属数据140可提供识别特征,诸如生成该基线数据120的计算设备102的特定设备标识符、生成该基线数据120的应用程序的版本号、对该基线数据120具有访问权限的应用程序的版本号、与该基线数据120相关联的用户账户、该基线数据120被提供给存储设备104的时间戳、在计算设备102处生成该基线数据120的时间、被准予对该基线数据120的访问的计算设备102、与该基线数据120相关联的特定数据类型、生成该基线数据120的计算设备的类型(例如,智能手表、智能电话等),等等。在一些情况下,设备信息114(归属140基于该信息)可包括与计算设备102相关联的设备标识符(id),其中设备id基于电话号码、用户身份模块(sim)卡等。在其他示例中,设备信息114可包括与计算设备102相关联的一个或多个用户的用户账户信息,其中用户账户信息基于电子邮件账户、社交网络账户、社交媒体账户等。这样,当在计算设备102之间共享数据时(例如,在基线数据过程期间,对基线数据的修改等),共享管理器110可访问该归属数据140以提供描述基线数据120的识别特征。
根据一些实施方案,更改记录器116可建立指示计算设备102-1记录基线数据120时的时间戳(例如,一天中的时间等)的归属数据140。具体地,时间戳可包括指示更改记录器116何时开始记录基线数据120的开始时间戳,以及指示更改记录器116何时停止记录基线数据120的结束时间戳。在一个示例中,当计算设备102-1在一整天中连续地监测用户的平均心率(例如,75bpm)时,更改记录器116可针对该特定时间段建立特定时间戳(例如,“星期二午夜12:00至星期三午夜12:00”)。另外,当计算设备102-1在同一天的剧烈运动期间监测用户的心率(例如,120bpm)时,更改记录器116可针对该特定时间段建立特定时间戳(例如,“星期二上午7:00-7:10”)。在一些情况下,冲突求解器118可利用这些特定时间戳来呈现用户在一整天中的活动的更全面表示,如本文更详细所述。在一个示例中,计算设备102-1可将加权值分配给与时间戳(“星期二午夜12:00至星期三午夜12:00”,以及“星期二上午7:00-7:10”)相关联的相应心率以呈现加权用户心率(例如,80bpm)。又如,计算设备102-1可对与这些时间戳相关联的相应心率求平均值以呈现平均用户心率(例如,97.5bpm)。又如,计算设备102-1可用特定时间戳(“星期二上午7:00-7:10”)的用户心率(例如,120bpm)代替在由特定时间戳(“星期二午夜12:00至星期三午夜12:00)捕获的对应时间段内的用户心率。
根据一些实施方案,共享管理器110可使用更改记录器116来识别何时对共享基线数据120进行更改。具体地,更改记录116可被配置为建立识别基线数据120的不同版本的归属数据140(例如,用于基线数据120的相应时间戳),并且响应于修改基线数据120来建立更改记录。在一些情况下,更改记录器116可结合确定基线数据120已被修改来建立更改记录。在一些情况下,每个更改记录可包括修改标识符和一个或多个特定序号。例如,修改标识符可指定存储在计算设备102-1的数据库124处的基线数据120是被已删除(“del”)、添加(“add”)还是编辑(“edt”)。另外,在一些示例中,更改记录可与唯一标识符相关联。例如,当基线数据120被删除时,针对该基线数据120的对应更改记录(例如,被删除数据记录)不包括任何个人信息(例如,基线数据)。这样,另一计算设备不能利用被删除数据记录来确定被删除基线数据的任何识别特征。然而,共享管理器110可利用被删除数据记录的唯一标识符将被删除数据记录链接到被删除基线数据。
根据一些实施方案,共享管理器110可与不同计算设备102-2(其存储对应基线数据120)共享更改记录。响应于接收到该更改记录,不同计算设备102-2可被配置为改变将基线数据120呈现给不同计算设备102-2的用户/与在不同计算设备102-2处建立的应用程序共享基线数据120的方式。例如,考虑基线数据120对应于先前在这些计算设备102-1、102-2之间共享并且随后在计算设备102-1处被删除的照片的情形。随后,计算设备102-1可向不同计算设备102-2提供指示该修改的更改记录。响应于接收到该更改记录,不同计算设备102-2可阻止将该照片呈现给不同计算设备102-2的用户/与在不同计算设备102-2处建立的照片应用程序共享该照片。然而,如本文更详细所述,不同计算设备102-2不能确认计算设备102-1的用户打算永久地删除该照片。因此,照片保持存储在不同计算设备102-2的数据库124处。在一些情况下,不同计算设备102-2可依赖由计算设备102-1执行的后续基线数据过程来确认用户确实打算删除该照片,如本文更详细所述。
另外,共享管理器110可被配置为通过建立谓词数据150来实现附加数据隐私技术。考虑例如与计算设备102-1相关联的一个或多个用户希望控制其他计算设备102和应用程序对其存储在数据库124处的相应数据(例如基线数据120、归属数据140、谓词数据150、更改记录等)的访问的级别的情形。为了实现数据隐私保护,谓词数据150可定义被允许与应用程序/其他用户共享的每个用户的相应数据的特定子集,并且定义被限制共享的用户的相应数据的其他子集。例如,谓词数据150可以拒绝/准予对特定数据类型的访问,拒绝/准予对特定应用程序生成的数据的访问,拒绝/准予对特定时间段内生成的数据的访问,拒绝/准予对满足标准偏差阈值的数据的访问,拒绝/准予对特定用户的访问,根据父/子关系拒绝/准予访问等等。值得注意和有利的是,对谓词数据150的使用表示启用数据隐私的另一种技术。
根据一些实施方案,共享管理器110可被配置为向这些计算设备102-1、102-2的一个或多个用户呈现共享数据。具体地,这些共享数据可由这些计算设备102-1、102-2中的每一者与事件的发生(例如,用户的冲浪会话、多个用户之间的协作文档编辑过程,或多个音乐家对单首歌曲重新混音等)一起生成。响应于接收到呈现与事件的发生相关联的数据的请求,这些计算设备102-1、102-2中的每一者可被配置为呈现共享数据。然而,考虑例如由这两个计算设备102-1、102-2生成的数据由于这两个计算设备102-1、102-2之间的技术差异而不相同且不一致的情形。在一些示例中,技术差异可包括硬件部件、软件部件、校准设置、用户偏好、系统偏好、机器学习算法等方面的差异。因此,为了向一个或多个用户呈现该共享数据的一致表示,共享管理器110可被配置为利用冲突求解器118来解决由这两个计算设备102-1、102-2生成的相应对应数据之间的至少一个不一致。
具体地,响应于接收到呈现与事件相关联的数据的请求,计算设备102-1可比较与由这两个计算设备102-1、102-2生成的第一组数据和第二组数据相关联的相应对应数据,以确定是否存在至少一个不一致。响应于确定存在至少一个不一致,共享管理器110可利用冲突求解器118通过形成经解析的数据来解决至少一个不一致。具体地,冲突求解器118可应用一个或多个规则来解决这样的至少一个不一致,以便在这些计算设备102-1、102-2之间呈现统一数据。值得注意和有利的是,共享管理器110还可利用冲突求解器118来阻止在这些计算设备102处呈现相同数据的重复。
根据一些实施方案,冲突求解器118可被配置为识别与事件相关联的对应组的基线数据120。如本文先前所述,归属数据140提供描述这些基线数据120的识别特征。因此,冲突求解器118可访问归属数据140以确认多组基线数据120确实彼此对应。例如,并非将第一组基线数据(“140”)混淆为与第二组基线数据(“140”)相对应,冲突求解器118可确定这些第一组数据和第二组数据实际上分别指不同的数据类型,诸如每分钟的搏动(人的心率)和每分钟的节拍(电子舞蹈音乐)。因此,冲突求解器118将不尝试识别这两组数据之间的至少一个不一致。具体地,冲突求解器118可利用针对每个相应组数据的相应归属数据140(例如,设备标识符、应用程序的版本号、时间戳、生成的时间、生成数据的用户账户等)以建立相似性水平。通过比较相应的归属数据140,冲突求解器118可被配置为计算对应组的基线数据120之间的相似性水平。另外,冲突求解器118可计算与相似性水平相关联的置信度水平。例如,当存在彼此相同的相应基线数据120的大量归属数据140时,可计算出更高的置信度水平。考虑例如冲突求解器118接收到对第一组基线数据(“1000.01”)和第二组基线数据(“1000.011”)进行比较的请求的情形。尽管这些组的基线数据120几乎相同,但没有其相应的归属数据140,冲突求解器118只能计算出低置信度水平。继续该示例,第一组基线数据(“1000.01”)与以下归属数据(“数据类型:冲浪总距离”、“应用程序:冲浪跟踪”)相关联,并且第二组基线数据(“1000.011”)与以下归属数据(“数据类型:冲浪总距离”、“应用程序:冲浪跟踪”)相关联。因此,由于其相同的归属数据140,冲突求解器118可以高置信度计算出这些不同组的数据彼此对应。继而,冲突求解器118可确定这些不同组的数据是否包括至少一个不一致,如本文更详细所述。
另外,在一些实施方案中,除了不一致的相应对应数据之外,由这些计算设备102-1、102-2生成的第一组基线数据120和第二组基线数据120可包括一致的相应对应数据。例如,第一组可包括基线数据(“1000码”、“125bpm”和“2000卡路里”),并且第二组可包括基线数据(“1050码”、“125bpm”和“2000卡路里”)。因此,结合建立经解析的一组数据,冲突求解器118可将一个或多个规则应用于不一致的数据(例如,“1000码”和“1050码”),同时阻止一致的数据(“125bpm”和“2000卡路里”)被解析。因此,在生成包括(“125bpm”、“2000卡路里”和“1050码”)的至少一组经解析的数据时,至少一组经解析的数据可指包括在第一组和第二组中的一致的数据。在其他情况下,在第一组基线数据120和第二组基线数据120之间不存在不一致的情况下,两个计算设备102-1、102-2都可被配置为呈现第一组数据和第二组数据。在这种情况下,这些计算设备102-1、102-2不呈现相同数据的重复。相反,参考另一个示例,其中第一组包括基线数据(“1000码”、“125bpm”),并且第二组包括基线数据(“2000卡路里”),则这些计算设备102-1、102-2中的每一者可呈现包括(“1000码”、“125bpm”和“2000卡路里”)的第一组基线数据和第二组基线数据。
根据一些实施方案,冲突求解器118用于解决至少一个不一致的一个或多个规则可存储在这些计算设备102的相应数据库124处。在一些情况下,这些一个或多个规则可作为附加到基线数据120的归属数据140而在这些计算设备102之间共享。在任一种情况下,每个计算设备102可访问同一组规则以解决至少一个不一致,从而在呈现与事件相关联的基线数据120时应用一致的方法。另外,需注意,存储设备104可不参与解决至少一个不一致。
根据一些实施方案,一个或多个规则可基于系统设置、硬件部件、软件部件、校准设置、用户偏好、系统偏好、机器学习算法等。在一些情况下,可将一个或多个规则整理为列表,其中一个或多个规则中的每一个在列表中被分配排名。通过在列表中编译这些规则,冲突求解器118可基于变化的条件(例如,当接收到基线数据120时,将新规则添加至列表等)动态地对这些规则重新排序。在一个示例中,规则列表可包括:(1)使健身跟踪器生成的心率数据优先于由智能电话生成的对应心率数据的用户偏好;(2)确定平板电脑的全球定位卫星(gps)系统在生成gps坐标方面更准确,并且因此优先于生成对应gps坐标的健身跟踪器的系统设置;以及(3)在生成对应的卡路里数据时确定健身跟踪器优先于智能电话的机器学习算法,因为健身跟踪器被用户更频繁地用于跟踪卡路里数据。在一个示例中,在计算设备102在硬件部件(例如,心率传感器)和应用程序(例如,“冲浪跟踪”)方面相同的情况下,规则可将更最近建立“冲浪跟踪”的计算设备102确定为优先的。又如,计算设备102可使被应用程序修改的基线数据120优先于对应的未改变的基线数据120。在该示例中,计算设备102跟踪(“120bpm”)的心率。然而,健身跟踪器应用程序可包括更精细的软件,该软件可提供心率的更精确评估,从而修改(“120bpm”至“125bpm”)的原始数据。因此,该规则可确定该经修改的数据将优先于原始数据或优于原始数据。
根据一些实施方案,由冲突求解器118生成的经解析的数据可取决于与何时接收到呈现与事件相关联的数据的请求相关联的时间和条件。在一些示例中,当接收到不同组的基线数据时,冲突求解器118确定是否存在至少一个不一致。在任何情况下,如果这些计算设备102不包括相同组的数据,则即使应用相同规则,每个计算设备102也可得出数据的不同表示。
根据一些实施方案,计算设备102-1可为应用程序(例如,冲浪跟踪器、相机、照片处理应用程序等)访问存储在数据库124处的数据(例如基线数据120、归属数据140、谓词数据150、更改记录等)的请求提供服务。具体地,对于与计算设备102-1相关联的每个相应用户,数据库124可包括单独的数据库(例如,124-a至124-n)。例如,计算设备102-1的用户的数据可被唯一地存储在数据库124-a处,并且用户配偶的数据可被唯一地存储在数据库124-b处。另外,每个单独的数据库124可包括专用api(例如,130-1至130-n)。继续该示例,可以通过api130-1控制对数据库124-a的访问,并且可以通过api130-2控制对数据库124-b的访问。这样,用于每个数据库124的专用api130可使得用户能够独立于任何其他用户共享用户的数据。
根据一些实施方案,响应于从应用程序接收到访问计算设备102-1的数据库124的请求,计算设备102-1可被配置为向与计算设备102-1相关联的一个或多个用户呈现根据该请求的通知。在访问数据库124之前,应用程序不了解与计算设备102-1相关联的一个或多个用户,诸如每个用户的相应数据等。在呈现通知之后,计算设备102-1的特定用户可准予应用程序对特定用户的数据库124的访问。在一些情况下,当应用程序为请求提供服务时,特定用户可利用如本文先前所述的谓词数据150来控制应用程序可访问的数据的水平(例如,限制数据类型、限制特定时间段等)。在一些情况下,api130可控制由应用程序(在计算设备102-1处建立、在其他计算设备102处建立)对存储在特定用户的数据库124处的数据的访问。例如,api130可为每个应用程序建立认证协议132(例如,基于令牌的)。根据一些实施方案,专用api130可利用认证协议132来实现针对计算设备102-1的每个单独的数据库124的隐私保护。具体地,当特定用户批准访问存储在特定用户的数据库124处的数据的请求时,用于该特定用户的数据库124的专用api130可向应用程序提供用于数据库124的特定令牌(例如,令牌0)。例如,api130可以建立提供给应用程序的特定令牌和124之间的相关性。有利的是,通过这种方式,api130还可被配置为通过向这些应用程序中的每一个提供不同令牌来准予不同应用程序对同一数据库124的访问。随后,当应用程序提供获取对数据库124的访问权限的后续请求时,api130可在授权应用程序继续访问数据库124之前验证特定令牌是否有效。在一些情况下,特定用户可通过撤销应用程序针对数据库124的特定令牌来拒绝应用程序继续访问数据库124。
根据一些实施方案,在应用程序已获得对与特定用户相关联的数据库124的访问权限之后,应用程序可向计算设备102-1提供另一个请求,以获得对与另一特定用户相关联的另一数据库124的访问权限。考虑例如应用程序可被配置为控制经由蓝牙连接通信地耦接到计算设备102-1的体重秤的情形。具体地,计算设备102-1的多个用户可能希望利用该应用程序来使用体重秤来记录他们各自的体重。为了单独访问每个用户的数据库124,可要求应用程序使用特定令牌来提供与每个用户的数据库124相关联的专用api130。这样,计算设备102-1能够实现存储在每个用户的数据库处的数据的单独共享。
根据一些实施方案,共享管理器110和api130可被配置为彼此通信以提供增强的共享功能。考虑例如多个用户(例如,家庭的两个成员)将其各自的数据存储在计算设备102-1的独立数据库124中的情形。在该示例中,用户可准予冲浪应用程序对与用户移动相关的gps坐标(存储在用户的数据库124-a中)的访问,以便跟踪与用户的冲浪会话相关联的健身活动(例如,冲浪的总距离),同时拒绝冲浪应用程序访问在相同冲浪会话期间消耗的卡路里数(也被存储在用户的数据库124-a中)。此外,用户可拒绝游泳应用程序访问在相同冲浪会话期间记录的相同gps坐标,同时授权游泳应用程序访问在冲浪会话期间消耗的卡路里数。另选地,用户的配偶可拒绝冲浪应用程序访问gps坐标(存储在配偶的数据库124-b中),同时授权游泳应用程序访问相同的gps坐标。这样,每个用户可以在个体数据级别处控制可用于应用程序和其他计算设备102的数据。
虽然图1中未示出,但计算设备102可包括各种硬件部件,例如传感器部件。具体地,这些传感器部件可被配置为生成存储在数据库124处并且在这些计算设备102之间共享的数据(例如,基线数据120、归属数据140、谓词数据150、更改记录等)。在一些示例中,这些传感器部件可包括海拔压力传感器、温度传感器、环境光线检测传感器、接近传感器、全球定位系统(gps)传感器、加速度计、陀螺仪、气压计、指纹传感器、视网膜传感器、面部检测传感器、计算设备102的显示模块的力压传感器、计算设备102的显示模块的电容式传感器、霍尔效应传感器等中的至少一者。在一些情况下,数据可由这些硬件部件中的任一个生成,并且随后被存储在数据库124中。在其他情况下,可由在计算设备102处建立的应用程序修改由这些硬件部件中的任何一个所生成的数据。
虽然图1中未示出,但计算设备102可包括各种硬件部件,例如一个或多个无线通信部件。具体地,无线通信部件可包括无线局域网(wi-fi)部件、全球定位系统(gps)部件、蜂窝部件、nfc部件,以太网部件或蓝牙部件中的至少一者。根据一些实施方案,可使用由无线通信部件实现的任何无线通信协议在计算设备102和存储设备104之间传输数据。应当理解,各种计算设备102可包括使得计算设备102能够以不同水平实现本文所述技术的硬件元件/软件元件。
根据一些实施方案,在这些计算设备(例如,计算设备102-1至102-n、存储设备104等)之间传输的数据可包括在受到安全保护的有效载荷中。在一些示例中,有效载荷可经由加密密钥、散列算法和其他类型的安全协议来加以安全保护。在一些情况下,这些计算设备102-1、102-2可彼此共享加密密钥(例如,使用公钥密码术、对称密钥等),以便建立用于共享数据的安全通信信道。在一些情况下,计算设备102-1可包括一对密钥(例如,公钥和对应的私钥)。具体地,计算设备102-1可使用私钥来解密由不同计算设备102-2使用公钥生成的任何加密有效载荷。在一些情况下,结合不同计算设备102-2执行基线数据过程,可使用公钥对由不同计算设备102-2生成的有效载荷进行加密。随后,可将加密的有效载荷提供给存储设备104,其中存储设备104继而向计算设备102-1提供加密的有效载荷。计算设备102-1可使用私钥对加密的有效载荷进行解密。这样,缺少私钥的任何计算设备都无法访问加密的有效载荷中包含的数据。例如,存储设备104在没有私钥的情况下无法访问加密的有效载荷。
图2a-图2g示出了根据一些实施方案的用于为共享数据的请求提供服务的计算设备102-1、102-2的概念图。具体地,图2a示出了示例性情形的概念图210,其中计算设备102-1通过利用存储在计算设备102-1的数据库124处的数据来为执行初始基线数据过程的请求提供服务,如本文先前所述。在该情形中,计算设备102-1通信地耦接到存储设备104。另外,存储设备104通信地耦接到不同计算设备102-2。
根据一些实施方案,在图2a的概念图中示出的步骤210之前,计算设备102-1可将数据(例如,基线数据120、归属数据140、谓词数据150、更改记录等)存储在其数据库124处。在一些示例中,可结合执行在计算设备102-1处建立的应用程序来生成数据。在该示例中,结合执行应用程序(“冲浪跟踪”、“健康”和“相机”)、分别在事件(例如,用户的下午冲浪会话)期间生成数据(“1000码”、“125bpm”和“mavericks”)。随后,可将该数据存储在数据库124处。如本文先前所述,api130可控制对提供给这些应用程序的该数据库124的访问。
如图2a中所示,第一步骤210可涉及计算设备102-1接收执行初始基线数据过程的请求。结合执行初始基线数据过程,计算设备102-1可识别将与不同计算设备102-2共享的初始基线数据120-a。另外,初始基线数据120-a可与归属数据140-a相关联。如本文先前所述,归属数据140-a可指描述初始基线数据120的识别特征。例如,初始基线数据(“1000码”)可包括以下归属数据:(“数据类型:gps”、“设备id:device_1”、“应用程序:冲浪跟踪”和“时间戳:下午3:00-5:00”)。在该示例中,时间戳(“时间戳:下午3:00-5:00”)可表示计算设备102-1监测用户冲浪总距离的时间段。另外,并且如本文先前所述,结合执行初始基线数据过程,计算设备102-1可为每个初始基线数据120-a建立初始基线时间戳(未示出),该初始基线时间戳描述初始基线数据过程何时被执行。本文所述的上述类型的归属数据仅仅是示例,并不代表描述基线数据(例如,初始基线数据、后续基线数据等)的不同类型的归属数据的详尽列表。
根据一些实施方案,计算设备102-1可生成与初始基线数据120-a相关联的谓词数据150-a。在该示例中,谓词数据(“限制bpm”)与初始基线数据(“125bpm”)相关联。如本文先前所述,谓词数据150-a可定义计算设备102-1的用户希望限制与不同计算设备102-2的用户和在不同计算设备102-2处建立的应用程序共享的数据的特定子集。在该示例中,谓词数据150-a可限制初始基线数据(“125bpm”)与不同计算设备102-2的用户共享,而无需结合初始基线数据过程将该初始基线数据120-a从数据库124中删除。
如图2a中所示,第一步骤210可涉及计算设备102-1向存储设备104提供有效载荷212。根据一些实施方案,有效载荷212可包括初始基线数据120-a、归属数据140-a和谓词数据150-a。响应于接收到有效载荷212,存储设备104可将基线数据120-a、归属数据140-a和谓词数据150-a存储在专门用于存储由计算设备102-1提供的数据的数据库处。继而,存储设备104可向不同计算设备102-2提供不同有效载荷212,其中不同有效载荷212包括基线数据120-a、归属数据140-a和谓词数据150-a。随后,基线数据120-a、归属数据140-a和谓词数据150-a可存储在不同计算设备102-2的数据库124处,如图2a所示。在该示例中,存储在不同计算设备102-2的数据库124处的初始基线数据(“125bpm”)可被称为非共享数据216,如谓词数据(“限制bpm”)所指定。
如图2b中所示,第二步骤220可涉及不同计算设备102-2接收执行其初始基线数据120-b的初始基线数据过程的请求。根据一些实施方案,在步骤220之前,不同计算设备102-2结合执行应用程序(“冲浪跟踪”)将数据存储在其数据库124处,以生成初始基线数据(“1050码”)。在该示例中,初始基线数据(由计算设备102-1生成的“1000码”)和(由不同计算设备102-2生成的“1050码”)可指在相同冲浪会话期间生成的基线数据120。例如,计算设备102-1可指穿戴在用户手腕上的智能手表,并且计算设备102-2可指与在相同冲浪会话期间被包括在用户的冲浪板中的健身跟踪器配对的智能电话。如图2b所示,归属数据140-b与每条初始基线数据120-b相关联。在该示例中,初始基线数据(“1050码”)可包括以下归属数据:(“数据类型:gps”、“设备id:device_2”、“应用程序:冲浪跟踪”和“时间戳:下午3:00-5:00”)。具体地,初始基线时间戳224(“时间戳:下午3:00-5:00”)可表示不同计算设备102-2监测用户冲浪总距离的时间段。
根据一些实施方案,不同计算设备102-2还可定义被阻止与计算设备102-1共享的剔除数据226(“98.9℉”)。在该示例中,可结合执行应用程序(“健康”)来生成剔除数据226(“98.9℉”)。在一些示例中,剔除数据226可由由不同计算设备102-1建立的谓词数据150来定义。因此,不向计算设备102-1提供该剔除数据226。
如图2b中所示,第二步骤220可涉及不同计算设备102-2向存储设备104提供有效载荷222,该有效载荷可包括初始基线数据120-b和归属数据140-b。继而,存储设备104可将初始基线数据120-b和归属数据140-b存储在专门用于存储由不同计算设备102-2提供的数据的数据库处。继而,存储设备104可向计算设备102-1提供不同有效载荷222,该有效载荷包括初始基线数据120-b和归属数据140-b。
如图2c中所示,第三步骤230可涉及计算设备102-1删除初始基线数据(“125bpm”),如被删除数据234所指示的。响应于删除初始基线数据(“125bpm”),计算设备102-1可建立被删除数据记录236,该数据记录指明初始基线数据(“125bpm”)被删除。在该示例中,被删除数据记录236可通过特定序号(“110-115”)和修改标识符(“del”)来标识。重新参照图2a,计算设备102-1的用户选择限制初始基线数据(“125bpm”)而不是删除该初始基线数据。返回到图2c,在该示例中,计算设备102-1的用户已删除初始基线数据(“125bpm”),以同时阻止与不同计算设备102-2共享该初始基线数据。因此,当不同计算设备102-2从计算设备102-1接收被删除数据记录236时,不同计算设备102-2可阻止共享该初始基线数据(“125bpm”)。例如,在接收到被删除数据记录236时,不同计算设备102-2可从其数据库124删除该初始基线数据。
根据一些实施方案,第三步骤230可涉及计算设备102-1向存储设备104提供包括被删除数据记录236的有效载荷232。继而,存储设备104可将被删除数据记录236存储在计算设备102-1的相应数据库中,并且随后将被删除数据记录236在不同有效载荷232中提供给不同计算设备102-2。如本文先前所述,不同计算设备102-2可通过利用被删除数据记录236来更新其初始基线数据(“125bpm”)。在该示例中,初始基线数据(“125bpm”)可被称为非共享数据238,不同计算设备102-2阻止其被呈现给用户并且阻止其与在不同计算设备102-2处建立的任何应用程序共享。然而,在一些情况下,初始基线数据(“125bpm”)保持存储在不同计算设备102-2的数据库124处。例如,可阻止不同计算设备102-2删除初始基线数据(“125bpm”),直到不同计算设备102-2(例如,经由后续基线数据过程)接收到确认计算设备102-2的用户打算永久地删除该初始基线数据120-a的通知,如本文更详细所述。
根据一些实施方案,图2d示出了在第三步骤230(如图2c中所述)之后的表示存储设备104的单独的数据库的第四步骤240。如本文先前所述,存储设备104可包括单独的数据库,其中单独的数据库专门用于存储由计算设备102-1和不同计算设备102-2提供的数据。这样,由这些计算设备102中的每一个提供的数据彼此有利地分开,以有利于由这些计算设备102执行独立的基线数据过程。
如图2d中所示,与计算设备102-1相关联的相应数据库包括初始基线数据120-a(“1000码”、“125bpm”和“mavericks”)。另外,相应数据库包括谓词数据150-d(“限制bpm”)。虽然初始基线数据(“125bpm”)在计算设备102-1的数据库124处已被删除,但初始基线数据(“125bpm”)保持存储在存储设备104的数据库中。然而,具有特定序号(“110-115”)和修改标识符(“del”)的被删除数据记录244可提供该初始基线数据(“125bpm”)在计算设备102-1处被删除的指示。此外,如图2d所示,与不同计算设备102-2相关联的数据库包括初始基线数据120-b(“1050码”)。
如图2e中所示,第五步骤250可涉及计算设备102-1执行后续基线数据过程(即,“重定基线”数据过程)。在该示例中,计算设备102-1可提供后续一组基线数据。具体地,重定基线数据120-e可包括(“1000码”、“mavericks”和“125bpm”)。如本文先前所述,该重定基线数据120-e先前在事件(例如,下午冲浪会话)期间生成,并且随后结合执行初始基线数据过程被存储在计算设备102-1的数据库124处。在一些情况下,重定基线数据120-e可包括(1)结合初始基线数据过程提供并且(2)随后未被任一计算设备102修改的所有初始基线数据120-a。在该示例中,重定基线数据120-e不包括初始基线数据(“125bpm”),因为其随后被删除,如图2c所示。另外,后续一组基线数据可包括被删除数据记录258,该被删除数据记录指明初始基线数据“125bpm”先前已被删除。
如图2e中所示,第五步骤250可涉及计算设备102-1向存储设备104提供有效载荷252。在一些情况下,有效载荷252可包括存储在数据库124处的由计算设备102-1生成的所有数据。具体地,有效载荷252可包括由计算设备102-1生成的任何基线数据120-e、归属数据140-e和更改记录(例如,被删除数据记录258)。例如,如图2g所示,重定基线数据120-e可包括基线数据(“1000码”和“mavericks”),这些基线数据先前由计算设备102-1结合初始基线数据过程提供。响应于接收到有效载荷252,存储设备104可存储被删除数据记录258、重定基线数据120-e和归属数据140-e,如图2f所示。
根据一些实施方案,计算设备102-1可被配置为提供包括由两个计算设备102-1、102-2生成的数据的后续一组基线数据。例如,计算设备102-1可被配置为监测由不同计算设备102-2提供的一组基线数据。然而,如果在计算设备102-1没有接收该组基线数据的情况下已过去阈值时间段,则计算设备102-1可确定不同计算设备102-2已被放错地方或丢失。作为响应,计算设备102-1可获取先前由不同计算设备102-2提供的任何数据的所有权。继而,计算设备102-2可执行后续基线数据过程,其中后续一组基线数据可包括存储在数据库124处的先前由计算设备102-1、102-2生成的任何数据。这样,先前存储在存储设备104处的由不同计算设备102-2生成的任何数据可作为后续基线数据过程的结果被删除。
又如,计算设备102-1可被配置为结合后续基线数据过程而提供与修改由不同计算设备102-2生成的基线数据120相关联的任何更改记录。例如,如果由计算设备102-1删除初始基线数据120-b(“1050码”),则计算设备102-1可为该初始基线数据120-b建立被删除数据记录。在后续基线数据过程期间,计算设备102-1可向不同计算设备102-2提供该被删除数据记录。随后,响应于接收到该被删除数据记录,不同计算设备102-2还可从其数据库124删除该初始基线数据120-b。
根据一些实施方案,图2f示出了在第五步骤250(如图2e中所述)之后的表示存储设备104的单独的数据库的第六步骤260。如图2f中所示,与计算设备102-1相关联的相应数据库可包括重定基线数据120-e(“1000码”和“mavericks”)。另外,与计算设备102-1相关联的相应数据库包括具有特定序号(“110-115”)和修改标识符(“del”)的被删除数据记录262。具体地,与计算设备102-1相关联的相应数据库描绘了先前存储在相应数据库处的所有初始基线数据120-a、归属数据140-a和被删除数据记录244已被初始基线数据120-f、归属数据140-f和被删除数据记录262替换。
如图2g中所示,第七步骤270可涉及不同计算设备102-2结合重定基线数据过程从存储设备104接收有效载荷272。在一些情况下,有效载荷272可包括重定基线数据120-g、归属数据140-g和被删除数据记录274。在该示例中,重定基线数据120-g(“1000码”和“mavericks”)存储在数据库124处。此外,具有特定序号(“110-115”)和修改标识符(“del”)的被删除数据记录274存储在数据库124处。不同计算设备102-2可将重定基线数据120-g与其先前存储在数据库124处的对应数据进行比较。在一些情况下,不同计算设备102-2可通过利用其各自的时间戳来比较相应的对应基线数据120以确定是否删除先前存储的数据。响应于不同计算设备102-2确定重定基线数据120-g包括对应先前基线数据120的更多当前基线数据120,不同计算设备102-2可删除先前基线数据120。例如,先前存储在数据库124处的初始基线数据(“1000码”、“125bpm”和“mavericks”)可被确认为被删除274,因为已识别到更多的当前对应基线数据120。
另外,不同计算设备102-2还可针对其存储在数据库124处的数据执行后续基线数据过程。结合执行后续基线数据过程,不同计算设备102-2可以将其存储在其存储设备104的相应数据库中的所有数据替换为其后续基线数据。然而,在一些实施方案中,不同计算设备102-2还可被配置为保留其存储在其在存储设备104中的相应数据库处的所有数据。因此,可阻止不同计算设备102-2执行其自身的后续基线数据过程。
图3a-图3e示出了根据一些实施方案,在不同计算设备处共享数据的示例性概念图。具体地,图3a示出了根据一些实施方案,在不同计算设备处呈现经解析的数据。图3a中所示的示例性概念图300可例如发生于步骤220(如参考图2b所述)之后,其中在这些计算设备之间共享冲浪总距离的基线数据。如图3a中所示,计算设备(例如,计算设备102-1、102-2)中的每一者从用户接收呈现与事件(例如,上述下午冲浪会话)的发生相关联的数据的请求。
根据一些实施方案,响应于接收到该请求,计算设备102-1、102-2中的每一者可访问结合初始基线数据过程共享的数据(例如,基线数据120、归属数据140、谓词数据150、更改记录等),以确定在这些计算设备102-1、102-2之间共享的不同组基线数据120中是否存在至少一个不一致。如图3a中所示,示出了计算设备102-1、102-2中的每一者的相应数据库124,其中每个相应数据库124包括数据(“1000码”)和(“1050码”)以表示用户在下午会话期间冲浪的总距离。具体地,计算设备102-1、102-2中的每一者可确定对于这些对应基线数据120存在不一致。
根据一些实施方案,这些计算设备102-1、102-2中的每一者可被配置为通过应用一个或多个规则来解决这种不一致。具体地,这些计算设备102-1、102-2中的每一者可在应用一个或多个规则时访问与相应的对应基线数据120相关联的归属数据140和谓词数据150。这些计算设备102-1、102-2中的每一者可识别这些相应的对应基线数据120之间的归属数据(例如,设备id和时间戳)之间哪里存在不相似。随后,这些计算设备102-1、102-2中的每一者可访问适用于归属数据140中的这些特定区别的一个或多个规则。在该示例中,这些计算设备102-1、102-2中的每一者都能够访问由于准确度原因使由计算设备102-2(“启用蓝牙的健身跟踪器”)生成的gps坐标优先于由计算设备102-1(“智能手表”)生成的gps坐标的规则。因此,这些计算设备102-1、102-2中的每一者可解析基线数据(“1050码”)表示将呈现给用户的关于用户冲浪的总距离的优选数据条目302。如图3a中所示,计算设备102-1、102-2分别的用户界面304和306两者可将用户冲浪的总距离呈现为(“1050码”)。
根据一些实施方案,图3b示出了根据一些实施方案,在不同计算设备处呈现经解析的数据。图3b中所示的示例性概念图310可例如发生于计算设备(例如,计算设备102-1、102-2、102-3)中的每一者生成与事件(例如,晚上7:00至晚上8:05之间的夜间冲浪会话)的发生相关联的数据之后。例如,每个计算设备102-1、102-2、102-3可针对不同时间片段生成相应基线数据318-1、318-2、318-3,使得组合的所有不同时间片段可构成累积时间段(例如,晚上7:00至晚上8:05)。如图3b中所示,计算设备102-1、102-2、102-3中的每一者的相应数据库124包括基线数据(“300码”、“150码”和“200码”)。另外,这些基线数据120中的每一个可通过其相应的归属数据(“设备id”和“时间戳”)来区分。具体地,基线数据(“300码”)由计算设备102-1在(“晚上7:00-晚上7:30”)之间生成,基线数据(“150码”)由不同计算设备102-2在(“晚上7:31-晚上7:45”)之间生成,并且基线数据(“200码”)由另一计算设备102-3在(“晚上7:46-晚上8:05”)之间生成。因此,可组合这些单独的时间片段以表示累积时间段(例如,晚上7:00-晚上8:05)。
根据一些实施方案,响应于接收到呈现与事件的发生(例如,晚上7:00-晚上8:05)相关联的数据的请求,计算设备102-1、102-2、102-3中的每一者均可应用一个或多个规则来呈现用户在事件期间冲浪的累积距离。具体地,计算设备102-1、102-2、102-3中的每一者可访问共享数据(例如,基线数据120、归属数据140、谓词数据150、更改记录等)并组合与每个时间片段相关联的相应基线数据120以确定用户在事件期间冲浪的累积距离。在该示例中,这些计算设备102-1、102-2、102-3中的每一者可通过组合(300码+150码+200码)来生成经解析的数据(“650码”),其表示用户在事件期间冲浪的累积距离。如图3b中所示,计算设备102-1、102-2、102-3的相应用户界面314、316和317可将用户冲浪的累积距离呈现为(“650码”)。
根据一些实施方案,图3c示出了根据一些实施方案,在不同计算设备处呈现经解析的数据。图3c中所示的示例性概念图320可例如发生于在这些计算设备之间共享用户游泳总距离的基线数据之后。如图3c所示,计算设备(例如,计算设备102-1、102-2、102-3)中的每一者可生成与事件(例如,晚上7:00至晚上7:20之间的夜间游泳会话)的发生相关联的数据。然而,这些计算设备102中的一些可将该数据记录在部分时间片段中。例如,每个计算设备102-1、102-2、102-3可针对不同时间片段生成基线数据120,该时间片段在被组合时构成累积时间段(例如,晚上7:00-晚上7:20)。如图3c中所示,计算设备102-1、102-2、102-3中的每一者的相应数据库124可包括由这些计算设备102中的每一者在构成累积时间段的不同时间片段期间生成的基线数据。另外,这些基线数据中的每一个可由其相应的归属数据(“置信度”和“权重%”)区分,其中基线数据120的(“权重%”)可基于生成基线数据120的计算设备102的置信度得分(“置信度”)。
根据一些实施方案,响应于接收到呈现与事件的发生(例如,晚上77:00-晚上7:20)相关联的数据的请求,计算设备102-1、102-2、102-3中的每一者均可应用一个或多个规则来呈现经解析的数据,该经解析的数据表示用户在事件期间游泳的总距离。在一些情况下,计算设备102-1、102-2、102-3中的每一者可访问基线数据120及其相关联的归属数据(“置信度”和“权重%”)以确定用户游泳的总加权距离。在该示例中,由计算设备102-2生成的基线数据120与最高置信度得分(例如,0.80、0.75)相关联。因此,可以为该基线数据120提供最强的加权值(例如,45%)。随后,由计算设备102-3生成的基线数据120与下一个高置信度得分(例如,0.70)相关联。因此,可为该基线数据120提供加权值(例如,35%),该加权值比与计算设备102-2相关联的基线数据120弱。最后,由计算设备102-1生成的基线数据120与最低置信度得分(例如,0.65、0.75、0.35)相关联。因此,由计算设备102-1生成的基线数据120被赋予最低加权值(例如,25%)。
因此,这些计算设备102-1、102-2、102-3中的每一者均可生成经解析的数据(“642米”),其表示用户在累积时间段期间游泳的总加权距离。例如,总加权距离可导出自:计算设备102-1:(350米×0.25)+(235米×0.25)+(120米×0.25)=176.25米;计算设备102-2:(350米×0.45)+(255米×0.45)=272.25米;计算设备102-3:(645米×0.30)=193.5。总加权距离=642。另选地,计算设备102-1、102-2、102-3中的每一者可访问基线数据120以确定用户游泳的平均总距离。在该示例中,每个计算设备102可生成经解析的数据,该经解析的数据指示在累积时间段期间用户游泳的平均总距离(“651.67米”)。在一些情况下,该一个或多个规则可定义总加权距离是相对于平均总距离的优选经解析的数据322。因此,计算设备102-1、102-2的相应用户界面324、326可将用户游泳的总加权距离呈现为(“642米”)。
根据一些实施方案,图3d示出了根据一些实施方案,在不同计算设备处呈现基于共享数据的通知。示例性概念图330可发生于例如计算设备中(例如,计算设备102-1、102-2)的每一者共享与多个事件相关联生成的数据(例如,用户健康数据)之后。在该示例中,这些多个事件可包括每当用户(“duke”和“nadine”)在家中进行他们的胰岛素注射并测量血糖水平时。具体地,计算设备102-1可与主要用户(例如,“duke”)和二级用户(例如,“nadine”)相关联,而计算设备102-2可与主要用户(例如,“nadine”)和二级用户(例如,“duke”)相关联。因此,由这些计算设备102生成的任何通知被优先化为指向其相应的主要用户,如本文更详细所述。
根据一些实施方案,每个计算设备102可在相应数据库124处存储与用户的胰岛素注射和血糖水平测量相关联的基线数据120(例如,医疗记录)。这些计算设备102可被配置为在进行胰岛素注射/测量血糖水平时建立每种实例的日期/时间的医学记录。另外,用户的医疗记录可包括相关联的患者数据,诸如患者的年龄、性别、患者测量的血糖水平、患者的体重和胰岛素的处方剂量。在该示例中,两个用户都需要每天注射三次(100u-100)胰岛素。两个计算设备102-1、102-2均可利用基线数据120及其相关联的患者数据来确定每个用户是否满足了该要求。如图3d中所示,计算设备102确定用户(“duke”)满足了他每日对胰岛素的需求,因为他在(“上午9:30”、“下午12:10”和“晚上6:30”)接受了胰岛素注射。然而,两个计算设备102均已确定用户(“nadine”)未满足她每日对胰岛素的需求,并且现在是她预定睡觉时间(例如,“晚上10:00”)。因此,两个计算设备102-1、102-2均可在其相应界面334、336处呈现通知,该通知提醒用户(“duke”)和(“nadine”)两者进行其胰岛素注射。
根据一些实施方案,图3e示出了根据一些实施方案,在不同计算设备处呈现经解析的数据。示例性概念图340可发生于例如计算设备(例如,计算设备102-1、102-2)中的每一者与用户(“duke”)服用其降胆固醇药物(“阿托伐他汀”)时的日期/时间相关联来建立数据之后。具体地,计算设备102-1可与主要用户(例如,“duke”)相关联,而计算设备102-2可与主要用户(例如,“aikau医生”)相关联。因此,由这些计算设备102生成的任何通知涉及其相应的主要用户。
根据一些实施方案,计算设备102-1可被配置为在用户(“duke”)服用降胆固醇药物时建立基线数据120(例如,医疗记录)。如本文先前所述,用户可手动将这些医疗记录输入到计算设备102-1的数据库124中。在该示例中,用户需要服用每日剂量10mg的降胆固醇药物。在该示例中,两个计算设备102均可利用基线数据120及其相关联的患者数据(例如,“hdlchol”、“药物”、“每周剂量”和“剂量”)来确定用户是否满足了该要求。如图3e中所示,用户(“duke”)似乎在2017年6月2日错过了服药。例如,用户未能输入2017年6月2日的医疗记录。然而,不同计算设备102-2的数据库124可被配置为与计算设备102-1共享指示用户在其医生办公室服用药物的医疗记录,该医疗记录是使用不同计算设备102-2记录的。例如,图3e示出了存储在不同计算设备102-2的数据库124处的辅助数据条目342,该数据条目指示患者在2017年6月2日下午5:05服用了他的药物。因此,两个计算设备102-1、102-2均可利用本文所述的共享技术来解决该差异,并且在其相应的界面344、346处呈现通知,提醒主要用户(“duke”和“aikau医生”)用户(“duke”)满足其药物的每周剂量要求348。
图4示出了根据一些实施方案,用于为应用程序发出的访问存储在计算设备处的数据的请求提供服务的方法400。如图4所示,方法400在步骤402处开始,在该步骤中,计算设备(例如,计算设备102-1)从(在计算设备102-1或另一计算设备102处建立的)应用程序接收访问与计算设备102-1的一个或多个用户相关联的数据的请求。这可例如发生于计算设备102-1针对与计算设备102-1相关联的一个或多个用户存储数据(例如,基线数据120、归属数据140、谓词数据150、更改记录等)之后。在一些示例中,针对每个用户的数据仅存储在用户的相应数据库(例如,124-a至124-n)处。如本文先前所述,每个数据库124可包括专用api(例如,130-1至130-n),该专用api可被配置为控制应用程序对用户数据的访问。
在步骤404处,计算设备102-1可根据访问数据的请求在计算设备102-1的显示器处呈现通知。在步骤406处,计算设备102-1可确定是否接收到对应用程序访问与计算设备102-1的特定用户相关联的相应数据库124的批准。如果未接收到对访问相应数据库124的批准,则计算设备102-1可继续监测对批准的接收。具体地,如果未接收到批准,计算设备102-1可被配置为拒绝应用程序对计算设备102-1的任何相应数据库124的访问。
在步骤408处,响应于确定接收到对访问与特定用户相关联的相应数据库124的批准,计算设备102-1可准予应用程序对与特定用户相关联的相应数据库124的访问,同时还阻止应用程序访问与和计算设备102-1相关联的任何其他用户相关联的其他数据库124。在步骤410处,计算设备102-1可确定是否限于存储在应用程序可访问的相应数据库124(与特定用户相关联)处的数据的特定子集。如果不限于数据的特定子集,则计算设备102-1可准予应用程序对存储在相应数据库124处的任何数据的访问,如步骤412所指示的。
现在返回到步骤410,如果限于存储在应用程序可访问的相应数据库124处的数据的特定子集,则计算设备102-1可准予应用程序对特定用户数据的特定子集的访问,同时还阻止应用程序访问存储在相应数据库124处的特定用户数据的任何其他子集,如步骤414所指示的。在一些情况下,计算设备102-1可利用谓词数据150来定义应用程序可访问/不可访问的一个或多个特定子集。例如,谓词数据150可限制应用程序访问早于10天前的特定用户的数据,同时使得应用程序能够访问最近10天的特定用户的数据。
在任一种情况下,当准予应用程序对存储在特定用户的相应数据库124处的数据的访问时,计算设备102-1可为应用程序建立(例如,基于令牌的)认证协议132。具体地,计算设备102-1可为应用程序提供与特定用户相关联的相应数据库124的特定令牌。例如,计算设备102-1可建立相应数据库124的特定令牌与应用程序之间的相关性。随后,当应用程序提供对获得与特定用户相关联的相应数据库124的访问权限的后续请求时,计算设备102-1可响应于确定是否准予应用程序对相应数据库124的访问来验证特定令牌是否有效。
图5示出了根据一些实施方案,用于为修改在计算设备之间共享的数据的请求提供服务的方法500。在一些情况下,这些计算设备102可被定义为具有主/主关系。在一些情况下,这些计算设备102可被定义为具有父/子关系。具体地,计算设备102-1可被指定为“父”计算设备,并且不同计算设备102-2可被指定为“子”计算设备。在该示例中,父计算设备可由家长控制,并且子计算设备可由家长的孩子控制。然而,随着孩子长大并且更有能力作出成人决策,可为子计算设备赋予更大控制权,以(1)生成数据,并且(2)修改由父计算设备生成的数据。例如,在孩子成年之前,可(例如,由父计算设备)使得子计算设备能够查看由父计算设备生成的基线数据120,但阻止其修改该相同基线数据120。
另选地,父计算设备可被配置为查看和修改由子计算设备生成的任何基线数据120。在任一种情况下,这些计算设备102-1、102-2可利用归属数据140和谓词数据150来确定对共享基线数据120实施的限制。例如,与其相应基线数据120相关联的归属数据140(例如,特定计算设备标识符)可指明计算设备102-1生成了该基线数据120,并且谓词数据150可指明针对访问/共享该基线数据120的任何限制(例如,仅授权具有该特定计算设备标识符的计算设备对该基线数据120进行修改)。
在步骤502处,计算设备(例如,计算设备102-1)接收修改存储在计算设备102-1处的数据(例如,基线数据120)的请求。这可例如发生于计算设备102-1与不同计算设备102-2共享数据之后。在步骤504处,计算设备102-1可确定是否允许修改共享数据。在一些示例中,如果共享数据由计算设备102-1生成,则允许计算设备102-1修改共享数据。具体地,计算设备102-1可利用归属数据140来确定被请求修改的数据先前是否由计算设备102-1生成。如本文先前所述,在这些计算设备102-1、102-2之间共享的数据(例如,基线数据120)可包括指定与生成该数据的计算设备102相关联的特定计算设备标识符的归属数据140。具体地,计算设备102-1可将其自身的设备信息114(例如,计算设备标识符)与由归属数据140指定的特定计算设备标识符进行比较,以确定该数据先前是否由计算设备102-1生成。在其他情况下,计算设备102-1可利用谓词数据150来确定该数据是否被限制由该计算设备102-1修改。
在步骤506处,响应于确定允许计算设备102-1修改该数据,可使得计算设备102-1能够修改数据。例如,响应于确定其计算设备标识符对应于特定计算设备标识符,则可授权计算设备102-1修改该数据。
返回到步骤504,如果不允许计算设备102-1修改该数据,则可阻止计算设备102-2修改该数据,如步骤508所指示的。然而,在一些情况下,可使得计算设备102-1能够查看该数据。因此,由谓词数据150建立的对共享数据的限制可在单个数据层级实现。值得注意和有利的是,这使得用户能够控制对每个数据的访问粒度。
图6示出了根据一些实施方案,用于为在计算设备处呈现与事件相关联的数据的请求提供服务的方法600。例如,方法600可发生于计算设备结合基线数据过程来接收基线数据120之后,如本文先前所述。如图6中所示,方法600在步骤602处开始,在该步骤中,计算设备(例如,计算设备102-1)存储与事件相关联的第一组数据。
在步骤604处,计算设备102-1可从不同计算设备102-2接收与事件相关联的第二组数据。在一些示例中,第一组数据和第二组数据中的每一者可包括基线数据120、归属数据140、谓词数据150、更改记录等中的至少一者。在一些情况下,从不同计算设备102-2接收的第二组数据与由不同计算设备102-2执行的基线数据过程相关联。
在步骤606处,计算设备102-1可接收呈现与事件相关联的数据的请求。在步骤608处,计算设备102-1可确定第一组数据和第二组数据之间是否存在至少一个不一致。在一些情况下,计算设备102-1可响应于接收到呈现数据的请求而确定是否存在至少一个不一致。在其他情况下,计算设备102-1可响应于接收到第二组数据来确定是否存在至少一个不一致。
在任一种情况下,在步骤610处,响应于确定存在至少一个不一致,计算设备102-1可将一个或多个规则应用于至少一个不一致以形成经解析的数据。在一些情况下,计算设备102-1可访问归属数据140和谓词数据150以解决至少一个不一致。例如,可将一个或多个规则作为谓词数据150在这些计算设备102之间共享。因此,这些计算设备102两者都可被配置为将相同规则应用于至少一个不一致,以便呈现与事件相关联的统一数据。
在步骤612处,计算设备102-1可呈现与事件相关联的数据,其中数据至少包括经解析的数据。如本文先前所述,在一些示例中,经解析的数据可以指优选数据条目,其中优选数据条目对应于由计算设备102-1或不同计算设备102-2生成的数据。在其他示例中,经解析的数据可以指对应的相应数据的融合,由此在两个计算设备102-1、102-2处呈现对应的相应数据的融合。在其他示例中,可通过应用加权值和置信度得分来生成经解析的数据。返回到步骤608,如果第一组数据和第二组数据之间不存在不一致,则计算设备102-1可呈现与事件的发生相关联的至少包括第一组数据和第二组数据的数据,如步骤614所指示的。
图7示出了根据一些实施方案,用于为替换存储在存储设备处的一组数据的请求提供服务的方法700。方法700可例如发生于在存储设备(例如,存储设备104)处存储任何一组数据(例如基线数据120、归属数据140、谓词数据150、更改记录等)之后。具体地,方法700可在计算设备(例如,计算设备102-1)执行初始基线数据过程之后进行,其中存储在计算设备102-1处的初始一组数据作为初始一组基线数据被提供给存储设备104。在一些示例中,初始一组基线数据可包括任何一组数据(例如,基线数据120、归属数据140、谓词数据150、更改记录等)。如本文先前所述,存储设备104可存储初始一组基线数据,并且随后将初始一组基线数据提供给不同计算设备(例如,不同计算设备102-2)。
如图7所示,方法700在步骤702处开始,在该步骤中,计算设备102-1修改存储在计算设备102-1处的初始一组基线数据。在一些情况下,初始一组基线数据的修改可包括删除、编辑、添加等。例如,初始一组基线数据可包括初始基线数据(例如,“125bpm”、“1000码”和“mavericks”),然而,计算设备102-1仅修改初始基线数据(例如,“125bpm”)。
在步骤704处,结合修改初始基线数据,计算设备102-1可建立反映对初始基线数据(例如,“125bpm”)的修改的更改记录。根据一些实施方案,该更改记录可用于通知不同计算设备102-2和存储设备104初始基线数据已被修改。
在步骤706处,计算设备102-1可向存储设备104提供更改记录。继而,存储设备104可将更改记录存储在专门用于存储由计算设备102-1提供的数据的数据库中。如本文先前所述,存储设备104可包括用于计算设备102的单独的数据库,其中第一数据库专门用于存储由计算设备102-1提供的数据,并且第二数据库专门用于存储由不同计算设备102-2提供的数据。随后,存储设备104可将更改记录提供给不同计算设备102-2。在一些情况下,更改记录可存储在不同计算设备102-2的数据库124处。更改记录可提供使得不同计算设备102-2改变其共享初始基线数据(例如,“125bpm”)的方式的指令。例如,当更改记录反映初始基线数据(例如,“125bpm”)在计算设备102-1处已被删除时,不同计算设备102-2可阻止将该初始基线数据呈现给与不同计算设备102-2相关联的用户。如本文先前所述,尽管不同计算设备102-2可被配置为改变呈现初始基线数据的方式,但初始基线数据保持存储在不同计算设备102-2的数据库124处。
在步骤708处,计算设备102-1可确定是否识别到替换存储在存储设备104处的初始一组基线数据的至少一种情况。根据一些实施方案,替换初始一组基线数据可结合计算设备102-1执行后续基线数据过程来执行。在一些情况下,计算设备102-1可提供经更新的一组基线数据,该经更新的一组基线数据替换存储在存储设备104的专用数据库处的所有数据。在一些示例中,在存储设备104处被替换的所有数据可包括基线数据120、归属数据140、谓词数据150或更改记录中的任一种。
根据一些实施方案,用于执行后续基线数据过程的至少一种所识别的情况可由计算设备102-1识别。根据一些实施方案,计算设备102-1的用户可发起后续基线数据过程。在其他实施方案中,不同计算设备102-2可请求计算设备102-1执行后续基线数据过程。根据一些实施方案,该至少一种所识别的情况可指存在的旧活动区域。在一些示例中,包括在旧活动区域中的数据可以指存储在数据库124处并且先前提供给存储设备104的基线数据120。因此,结合执行后续基线数据过程,计算设备102-1可替换存储在存储设备104的相应数据库处的对应于包括在旧活动区域中的数据的数据。
根据一些实施方案,该至少一种所识别的情况可指不活动区域。在一些示例中,包括在不活动区域中的数据可以是指先前未提供给存储设备104的数据。响应于确定这些不活动区域中的数据最近未被更新/修改,计算设备102-1可删除这些不活动区域。
根据一些实施方案,该至少一种所识别的情况可指不存在与该计算设备102-1相关联的当前建立的区域。具体地,当建立区域时,可使用与生成该数据的计算设备102-1相关联的特定设备标识符来识别该区域。响应于确定不存在当前建立的区域,计算设备102-1可建立包括数据的区域。在一些示例中,当计算设备102-1先前未向存储设备104提供任何基线数据时,可能发生不存在当前建立的区域的情况。
根据一些实施方案,至少一种所识别的情况可指识别到提供存储在存储设备104处的初始一组基线数据的计算设备102-3被放错地方或丢失。如本文先前所述,计算设备102中的每一者在存储设备104处具有专用数据库,用于专门存储其数据。另外,每个专用数据库可与对应于计算设备102的特定设备标识符的数据库标识符相关联。因此,如果计算设备102-3被放错地方,则计算设备102-1可变为与和计算设备102-3相关联的相应数据库相关联。结合建立关联的这种变化,改变专用数据库的数据库标识符以对应于计算设备102-1的特定设备标识符。随后,如果稍后找到计算设备102-3,则存储设备104可建立与计算设备102-3相关联的专用数据库。
根据一些实施方案,该至少一种所识别的情况可指识别到由于修改初始一组基线数据而建立的更改记录的数量已超过阈值。由于存储设备104应被持续更新以提供对初始一组基线数据的更改的最新镜像,计算设备102-1可被配置为执行后续基线数据过程以替换存储在存储设备104处的当前一组基线数据。
在步骤710处,计算设备102-1可将经更新的一组基线数据提供给存储设备104。因此,存储设备104可将初始一组基线数据替换为经更新的一组基线数据。继而,存储设备104可向不同计算设备102-2提供经更新的一组基线数据。返回到步骤708,如果计算设备102-1确定用于执行后续基线数据过程的至少一种情况尚未被识别到,则可阻止计算设备102-1生成经更新的一组数据,如步骤712所指示的。这样,初始一组基线数据保持存储在存储设备104处。
图8示出了根据一些实施方案的计算设备800的详细视图,该计算设备可代表用于实现本文所述的各种技术的图1的不同计算设备。例如,该详细视图示出了结合图1所述的计算设备(例如,102-1到102-n)中可包括的各个部件。如图8所示,计算设备800可包括表示用于控制计算设备800的总体操作的微处理器或控制器的处理器802。计算设备800还可包括用户输入设备808,该用户输入设备允许计算设备800的用户与计算设备800进行交互。例如,用户输入设备808可采取多种形式,诸如按钮、小键盘、拨号盘、触摸屏、音频输入接口、视觉/图像捕获输入接口、传感器数据形式的输入等等。另外,计算设备800可包括显示器810,该显示器可由处理器802(例如,经由图形部件)控制,以向用户显示信息。数据总线816可促进至少存储设备840、处理器802和控制器813之间的数据传输。控制器813可用于通过设备控制总线814来与不同设备进行交互并对其进行控制。该计算设备800还可包括耦接至数据链路812的网络/总线接口811。在无线连接的情况下,网络/总线接口811可包括无线收发器。
如上所述,计算设备800还包括存储设备840,该存储设备可包括单个磁盘(例如硬盘)或磁盘集合。在一些实施方案中,存储设备840可包括闪存存储器、半导体(固态)存储器等。该计算设备800还可包括随机存取存储器(ram)820和只读存储器(rom)822。rom822可以非易失性方式存储待执行的程序、实用程序或进程。ram820可提供易失性数据存储器并存储与计算设备800上执行的应用的操作相关的指令。
可单独地或以任何组合使用所述实施方案的各个方面、实施方案、具体实施或特征。可由软件、硬件或硬件与软件的组合来实施所述实施方案的各个方面。所述实施方案还可被实施为计算机可读介质上的用于控制生产操作的计算机可读代码,或者被实施为计算机可读介质上的用于控制生产线的计算机可读代码。计算机可读介质为可存储数据的任何数据存储设备,其后该数据可由计算机系统读取。计算机可读介质的示例包括只读存储器、随机存取存储器、cd-rom、hdd、dvd、磁带和光学数据存储设备。计算机可读介质也可分布在网络耦接的计算机系统中,使得计算机可读代码以分布的方式被存储和执行。
为了说明的目的,前述描述使用具体命名以提供对所述实施方案的彻底理解。然而,对于本领域的技术人员而言将显而易见的是,不需要具体细节即可实践所述实施方案。因此,具体实施方案的前述描述被呈现用于例示和描述的目的。前述描述不旨在为穷举性的或将所述的实施方案限制为所公开的精确形式。对于本领域的普通技术人员而言将显而易见的是,鉴于上面的教导内容,许多修改和变型是可能的。
权利要求书(按照条约第19条的修改)
1.一种用于解决同步数据中的不一致的方法,所述方法包括在具有传感器的第一计算设备处:
使用所述传感器来检测与事件相关联的第一组数据;
从第二计算设备接收与所述事件相关联的第二组数据;
响应于接收到呈现与所述事件相关联的数据的请求:
确定所述第一组数据和所述第二组数据的相应对应数据之间存在至少一个不一致,
向所述至少一个不一致应用规则以形成经解析的数据,以及
呈现所述经解析的数据。
2.根据权利要求1所述的方法,其中响应于确定所述相应对应数据之间不存在不一致,所述方法进一步包括:
呈现所述第一组数据和所述第二组数据。
3.根据权利要求1所述的方法,其中所述第一计算设备从所述第一计算设备和所述第二计算设备能够访问的存储设备接收所述第二组数据。
4.根据权利要求1所述的方法,其中所述第一组数据与指示所述第一组数据由所述第一计算设备生成的设备标识符相关联,并且所述第二组数据与指示所述第二组数据由所述第二计算设备生成的另一设备标识符相关联。
5.根据权利要求1所述的方法,其中所述第一组数据存储在选择的数据库处,并且所述方法进一步包括:
将所述第二组数据存储在不同于所选择的数据库的另一数据库处,其中所选择的数据库和所述另一数据库中的每一者包括控制对所述第一组数据和所述第二组数据的访问的相应应用编程接口。
6.根据权利要求5所述的方法,其中响应于从不同计算设备接收到访问所述第一组数据的请求,所述方法进一步包括:
接收对准予所述不同计算设备对所述第一组数据的访问的批准;
确定是否限于所述不同计算设备能够访问的所述第一组数据的特定子集;并且
响应于确定限于所述特定子集:
准予所述不同计算设备对所述第一组数据的所述特定子集的访问,同时阻止所述第一组数据的任何其他子集能够被所述不同计算设备访问。
7.根据权利要求5所述的方法,其中响应于接收到改变所述第二组数据的修改请求,所述方法进一步包括:
确定所述第二组数据是否由所述第一计算设备生成;并且
响应于确定所述第二组数据不是由所述第一计算设备生成:
阻止所述第二组数据被改变。
8.根据权利要求1所述的方法,其中所述经解析的数据对应于所述第一组数据或所述第二组数据。
9.至少一种非暂态计算机可读存储介质,所述至少一种非暂态计算机可读存储介质被配置为存储指令,所述指令响应于被包括在具有传感器的第一计算设备中的至少一个处理器执行,使得所述第一计算设备:
使用所述传感器来检测与事件相关联的第一组数据;
从第二计算设备接收与所述事件相关联的第二组数据;
响应于接收到呈现与所述事件相关联的数据的请求:
确定所述第一组数据和所述第二组数据的相应对应数据之间存在至少一个不一致,
向所述至少一个不一致应用规则以形成经解析的数据,以及
呈现所述经解析的数据。
10.根据权利要求9所述的至少一种非暂态计算机可读存储介质,其中响应于确定所述相应对应数据之间不存在不一致,所述至少一个处理器进一步使得所述第一计算设备:
呈现所述第一组数据和所述第二组数据。
11.根据权利要求9所述的至少一种非暂态计算机可读存储介质,其中所述第一组数据与指示所述第一组数据由所述第一计算设备生成的设备标识符相关联,并且所述第二组数据与指示所述第二组数据由所述第二计算设备生成的另一设备标识符相关联。
12.根据权利要求9所述的至少一种非暂态计算机可读存储介质,其中所述第一组数据存储在选择的数据库中,并且所述至少一个处理器进一步使得所述第一计算设备:
将所述第二组数据存储在不同于所选择的数据库的另一数据库处,其中所选择的数据库和所述另一数据库中的每一者包括控制对所述第一组数据和所述第二组数据的访问的相应应用编程接口。
13.根据权利要求9所述的至少一种非暂态计算机可读存储介质,其中响应于接收到改变所述第二组数据的修改请求,所述至少一个处理器进一步使得所述第一计算设备:
确定所述第二组数据是否由所述第一计算设备生成;并且
响应于确定所述第二组数据不是由所述第一计算设备生成:
阻止所述第二组数据被改变。
14.根据权利要求9所述的至少一种非暂态计算机可读存储介质,其中所述规则基于用户偏好、使用频率、校准设置或使用模式中的至少一者。
15.一种解决同步数据中的不一致的计算设备,所述计算设备包括:
至少一个传感器
至少一个处理器;和
至少一个存储器,所述至少一个存储器存储指令,所述指令当由所述至少一个处理器执行时使得所述计算设备:
使用所述至少一个传感器来检测与事件相关联的第一组数据;
从第二计算设备接收与所述事件相关联的第二组数据;
响应于接收到呈现与所述事件相关联的数据的请求:
确定所述第一组数据和所述第二组数据的相应对应数据之间存在至少一个不一致,
向所述至少一个不一致应用规则以形成经解析的数据,以及
呈现所述经解析的数据。
16.根据权利要求15所述的计算设备,其中响应于确定所述相应对应数据之间不存在不一致,所述至少一个处理器进一步使得所述计算设备:
呈现所述第一组数据和所述第二组数据。
17.根据权利要求15所述的计算设备,其中所述第一组数据与指示所述第一组数据由所述计算设备生成的设备标识符相关联,并且所述第二组数据与指示所述第二组数据由所述第二计算设备生成的另一设备标识符相关联。
18.根据权利要求15所述的计算设备,其中所述第一组数据存储在选择的数据库中,并且所述至少一个处理器进一步使得所述计算设备:
将所述第二组数据存储在不同于所选择的数据库的另一数据库处,其中所选择的数据库和所述另一数据库中的每一者包括控制对所述第一组数据和所述第二组数据的访问的相应应用编程接口。
19.根据权利要求15所述的计算设备,其中响应于接收到改变所述第二组数据的修改请求,所述至少一个处理器进一步使得所述计算设备:
确定所述第二组数据是否由所述计算设备生成;并且
响应于确定所述第二组数据不是由所述计算设备生成:
阻止所述第二组数据被改变。
20.根据权利要求15所述的计算设备,其中所述规则基于用户偏好、使用频率、校准设置或使用模式中的至少一者。
21.一种用于控制对与多个用户相关联的数据项的访问的方法,所述方法包括,在计算设备处:
从应用程序接收访问存储在所述计算设备处的所述数据项的请求,其中所述数据项至少包括(1)存储在第一数据库处的与第一用户相关联的第一组数据,以及(2)存储在第二数据库处的与第二用户相关联的第二组数据;
确定是否接收到对所述应用程序访问与特定用户相关联的数据库的批准,其中所述特定用户包括所述第一用户或所述第二用户中的至少一者;并且
响应于确定接收到对所述应用程序访问所述数据库的所述批准:
确定所述应用程序被限于访问存储在所述数据库处的与所述特定用户相关联的数据的特定子集,以及
使得所述应用程序能够访问所述数据的特定子集,同时阻止所述应用程序访问存储在所述数据库处的任何其他数据。
22.根据权利要求21所述的方法,其中所述第一数据库仅存储与所述第一用户相关联的所述第一组数据,并且所述第二数据库仅存储与所述第二用户相关联的所述第二组数据。
23.根据权利要求21所述的方法,其中所述第一数据库和所述第二数据库中的每一者包括控制对其相应组数据的访问的相应应用编程接口。
24.根据权利要求21所述的方法,其中阻止所述应用程序访问的所述任何其他数据包括存储在所述数据库处的所述数据的任何其他子集。
25.根据权利要求21所述的方法,其中所述数据的特定子集包括阻止所述任何其他数据能够被所述应用程序访问的谓词数据。
26.根据权利要求21所述的方法,其中所述应用程序在所述计算设备或另一计算设备处建立。
27.根据权利要求21所述的方法,其中响应于确定所述数据的特定子集已被删除,所述方法进一步包括:
阻止所述应用程序访问所述数据的特定子集。
28.至少一种非暂态计算机可读存储介质,所述至少一种非暂态计算机可读存储介质被配置为存储指令,所述指令响应于被包括在计算设备中的至少一个处理器执行,使得所述计算设备:
从应用程序接收访问存储在所述计算设备处的数据项的请求,其中所述数据项至少包括(1)存储在第一数据库处的与第一用户相关联的第一组数据,以及(2)存储在第二数据库处的与第二用户相关联的第二组数据;
确定是否接收到对所述应用程序访问与特定用户相关联的数据库的批准,其中所述特定用户包括所述第一用户或所述第二用户中的至少一者;并且
响应于确定接收到对所述应用程序访问所述数据库的所述批准:
确定所述应用程序被限于访问存储在所述数据库处的与所述特定用户相关联的数据的特定子集,以及
使得所述应用程序能够访问所述数据的特定子集,同时阻止所述应用程序访问存储在所述数据库处的任何其他数据。
29.根据权利要求28所述的至少一种非暂态计算机可读存储介质,其中所述第一数据库仅存储与所述第一用户相关联的所述第一组数据,并且所述第二数据库仅存储与所述第二用户相关联的所述第二组数据。
30.根据权利要求28所述的至少一种非暂态计算机可读存储介质,其中所述第一数据库和所述第二数据库中的每一者包括控制对其相应组数据的访问的相应应用编程接口。
31.根据权利要求28所述的至少一种非暂态计算机可读存储介质,其中阻止所述应用程序访问的所述任何其他数据包括存储在所述数据库处的所述数据的任何其他子集。
32.根据权利要求28所述的至少一种非暂态计算机可读存储介质,其中所述数据的特定子集包括阻止所述任何其他数据能够被所述应用程序访问的谓词数据。
33.根据权利要求28所述的至少一种非暂态计算机可读存储介质,其中所述应用程序在所述计算设备或另一计算设备处建立。
34.根据权利要求28所述的至少一种非暂态计算机可读存储介质,其中响应于确定所述数据的特定子集已被删除,所述至少一个处理器进一步使得所述计算设备:
阻止所述应用程序访问所述数据的特定子集。
35.一种用于控制对与多个用户相关联的数据项的访问的计算设备,所述计算设备包括:
至少一个处理器;和
至少一个存储器,所述至少一个存储器存储指令,所述指令当由所述至少一个处理器执行时使得所述计算设备:
从应用程序接收访问存储在所述计算设备处的数据项的请求,其中所述数据项至少包括(1)存储在第一数据库处的与第一用户相关联的第一组数据,以及(2)存储在第二数据库处的与第二用户相关联的第二组数据;
确定是否接收到对所述应用程序访问与特定用户相关联的数据库的批准,其中所述特定用户包括所述第一用户或所述第二用户中的至少一者;并且
响应于确定接收到对所述应用程序访问所述数据库的所述批准:
确定所述应用程序被限于访问存储在所述数据库处的与所述特定用户相关联的数据的特定子集,以及
使得所述应用程序能够访问所述数据的特定子集,同时阻止所述应用程序访问存储在所述数据库处的任何其他数据。
36.根据权利要求35所述的计算设备,其中所述第一数据库仅存储与所述第一用户相关联的所述第一组数据,并且所述第二数据库仅存储与所述第二用户相关联的所述第二组数据。
37.根据权利要求35所述的计算设备,其中所述第一数据库和所述第二数据库中的每一者包括控制对其相应组数据的访问的相应应用编程接口。
38.根据权利要求35所述的计算设备,其中阻止所述应用程序访问的所述任何其他数据包括存储在所述数据库处的所述数据的任何其他子集。
39.根据权利要求35所述的计算设备,其中所述数据的特定子集包括阻止所述任何其他数据能够被所述应用程序访问的谓词数据。
40.根据权利要求35所述的计算设备,其中所述应用程序在所述计算设备或另一计算设备处建立。