用于多用户传感器数据集的高效流共享的利记博彩app

文档序号:6593085阅读:343来源:国知局
专利名称:用于多用户传感器数据集的高效流共享的利记博彩app
用于多用户传感器数据集的高效流共享背景华盛顿运输部(以及其他州运输部)迄今已经在华盛顿州内的公路及道路上部署 了大量交通传感器。这些传感器通常测量所覆盖的路段的交通量和平均速度。只要这些 交通传感器通过允许任何授权传感应用程序访问数据的访问基础结构来共享,诸如交通表 征、拥塞预测、出租车队管理系统、或市内规划工具等多个应用程序就可以获得并使用来自 这些传感器的数据流。在现有系统中,每一单独的应用程序直接从传感器单独地获得数据, 并此后在与可能正在执行相同和/或部分类似的估计、测量、三角测量、操纵和/或功能的 其他应用程序完美地隔离的情况下执行其计算、量化、鉴定、评估、校准、分析、预测等。考虑可以提供给这样的传感应用程序或由其来提供的传感任务的以下示例。通勤 者一贯堵在从家去工作场所的路上。为避免这一日常烦恼,通勤者现在希望从下午3点到 下午7点的时间窗口中的每15分钟确定一次覆盖k个路段的路线上的平均时间,并随后想 要所有这些平均时间的最小值,对于工作周的每一天都重复这一确定。通勤者将这一传感 任务提交给适当的传感应用程序。该单独的通勤者以及其他传感应用程序所不知道的是, 可能存在同一城市的其他同样沮丧的通勤者提交的许多其他传感任务,其中指定路线包含 共同路段和重叠的出发时间窗口或时间范围。因此,所要求保护的主题针对解决或至少减轻以上阐述的问题中的一个或多个。概述以下呈现简化概述以提供对所公开的主题的某些方面的基本理解。本概述不是详 尽的概览,它不旨在标识关键/重要的元素,也不旨在描绘其范围。其唯一的目的是以简化 的形式来介绍一些概念,作为稍后提出的更详细描述的序言。根据一方面,所要求保护的主题提供实现和方便用于多传感器数据集的高效流共 享的系统和方法。另外,根据另一方面,所要求保护的主题提供在多个应用程序或数据查询 之间共享数据访问或者计算或运作工作量的系统和方法。根据又一方面,所要求保护的主 题提供至少部分地基于传感器数据应用程序所需的空间覆盖来推断冗余的系统和技术。并 且在又一方面,所要求保护的主题提供根据使用场景中的关键资源和/或瓶颈点的性质来 分发和/或分配资源的过程和机构。为实现上述及相关目的,在此结合以下描述和附图描述了所公开且所要求保护的 主题的某些说明性方面。然而,这些方面仅指示了可利用此处公开的原理的各种方法中的 少数几种,且旨在包括所有这些方面及其等效方面。结合附图阅读下面的详细描述,则其他 优点和新颖特征将变得清楚。附图简述

图1示出根据所要求保护的主题的实现和方便用于多传感器数据集的高效流共 享的机器实现的系统。图2描绘根据所要求保护的主题的一方面的在多个应用程序或数据查询之间共 享数据访问或者计算和/或运作工作量的机器实现的系统。图3提供可根据并由所要求保护的主题的一方面来使用的说明性有向无环图的
图4提供在根据所要求保护的主题的一方面的多传感器数据集的高效流共享中 使用的有向无环图的图示。图5提供根据所要求保护的主题的一方面的在多个应用程序或数据查询之间共 享数据访问或者计算或运作工作量时使用的有向无环图的又一描绘。图6提供根据所要求保护的主题的一方面所使用的有向无环图的又一描绘。图7示出可根据所要求保护的主题的一方面来使用、生成和/或产生的又一有向 无环图。图8示出根据所要求保护的主题的一方面的实现和方便用于多传感器数据集的 高效流共享的机器实现的方法的来采取。图9示出根据所要求保护的主题的一方面的可用于执行所公开的系统的计算机 的框图。图10示出根据另一方面的用于处理所公开的体系结构的说明性计算环境的示意 性框图。详细描述现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标记来指代 相同的元素。在以下描述中,为解释起见,描绘了众多具体细节以提供对本发明的全面理 解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其他情况 下,以框图形式示出了公知的结构和设备以便于描述它们。一开始应当注意,所要求保护的主题大部分在道路交通拥塞传感应用程序的上下 文中进行说明,但所要求保护的主题不限于此。如对适度或合理地知晓本领域的人员或者 对本领域理解尚可的人员显而易见和/或容易理解的,除所例示并解释的数据流和传感器 范例之外,本文说明的技术、方法、过程、和/或系统可以在其中类似冗余是显而易见的其 他上下文和适用范围中找到适用性和/或实用性。根据一说明性方面,所要求保护的主题解决依赖于传感器数据流的系统中的冗余 工作量的问题。例如,考虑部署在不同位置的一组多个传感器,例如,部署在公路网上的若 干位置的道路交通速度传感器。通常,多个相关应用程序各自查询从传感器发出的数据流。 例如,一个应用程序可以使用从传感器接收到的速度数据计算最短时间路线。多个应用程 序可为它们要回答的特定查询来对同一数据流执行不同的计算。在此,冗余工作量问题是 正被计算的多个查询可能具有高度相似性。这一相似性可因为计算中的初始步骤可相同或 类似而产生。例如,一个应用程序可能想要计算10个传感器值的总和,而另一应用程序可 能想要计算前五个传感器值的平均值(例如,求和之后进行除法)。在当今现存的一典型情 况下,两应用程序将独立地计算前五个传感器的总和一这一计算基本上在初始应用程序 第一次对来自前五个传感器的值进行了求和时就变得冗余(例如,该计算只需要被执行一 次)。多个其他因素可导致这样的相似性,并且可造成冗余计算以及可更好地用于其他工作 中的资源的浪费。因此,根据一说明性方面,所要求保护的主题旨在防止冗余计算以节省资 源。此外,对于从传感器访问数据的许多应用程序,传感器或将传感器连接到通信网 络的某一网关单独地处理对传感器数据的所有请求。例如,考虑一爱好者在家中部署的并
5使用家庭因特网连接来连接到因特网以共享天气数据的气象站。如果多个应用程序几乎同 时从该站访问这一数据,则该站必须同时为多个数据请求进行服务,从而对家庭因特网连 接造成大量繁重负担并且还可能使家庭计算机或气象站的处理器过载。因此,在又一说明 性方面,所要求保护的主题提供减少冗余计算和带宽开销或者实现和/或方便对其进行减 少的系统和/或技术。所要求保护的主题可以用多种灵巧的方式和方法部署和应用以在带 宽、处理工作量、能量等资源中的一个或多个是重要的情况下节省带宽、处理工作量、以及 能量消耗。此外,所要求保护的主题可以例如通过确定、生成和/或利用有向无环图来对多 个应用程序之间的各种计算和/或传感器使用关系进行建模,并且此后使用各种所得的图 形模型来共享尽可能多的计算以避免计算冗余来减轻瓶颈点处的负载以允许支持更大工 作量和更多应用程序。如可从上述简要大纲中明白的,可以存在可从诸如传感器或市场等分布式数据源 获得数据并此后处理该数据以产生有益的、有用的、具体的和有形的结果的多个应用程序。 例如,基于从道路传感器取得的交通状况和/或所获得的道路状况数据来计算最快驾驶方 向的应用程序,使得这些应用程序计算路线行进时间,从而造成对最小化通过该路线所花 的时间的路线的选择。作为另一示例,示出一区域上的温度分布的应用程序可以从部署在 该区域上的若干气象站获得天气数据并可以计算温度、湿度、雨量、紫外线(UV)辐射指数 等等的平均值、最小值、最大值。在又一示例中,人口普查应用程序可以从例如部署在大型 购物中心入口和出口的若干照相机获得数据,并可以使用这些数据来确定估计处于该购物 中心中的人口数量。在又一示例中,地质学家和/或农学家可以从部署在全国的各种土壤 湿度或振动传感器获得数据,并至少部分地基于这些传感器读数可以执行科学分析和/或 计算以研究地质和/或农业现象。在使用分布式数据源的许多(若非全部)应用程序中,超过一个应用程序可能正 在共享同一数据或数据流和/或执行具有某种共同性的计算和/或分析。可存在的第一类 型的共同性是跨各应用程序的。例如,使用道路交通传感器的多个应用程序可能正在执行 不同的计算驾驶方向应用程序可能正在计算行进时间,城市规划程序可能正在监视发生 大量阻塞的拥塞点,市场营销广告牌替换机构可能正在查明具有最大交通吞吐量的路段, 等等。然而,这些计算和/或分析中的每一个可以涉及作为许多计算的一部分执行的特定 基本操作,如一段时间上的总和或平均。第二类共同性可存在于相同或类似应用程序的用 户之间。例如,相同或类似应用程序计算的多个驾驶方向可包括对来自同一组传感器的数 据的处理,如在两用户请求同一城市内的驾驶方向并且具有部分重叠的路线时。这两种类 型的共同性可造成应用程序所执行的可能冗余的计算。图1示出根据所要求保护的主题的一方面的实现和方便用于多传感器数据集的 高效流共享的机器实现的系统100。系统100可包括可经由网络拓扑结构和/或云104与 诸如传感器或专有或公有数据库等生成或拥有数据的数据源106进行持续和/或工作或者 零星和/或间歇通信的协调器102。协调器102也可经由网络拓扑结构和/或云104与可 从数据源106请求数据和/或聚集或分析所取得的数据的应用程序108进行持续和/或工 作或者零星和/或间歇通信。此外,协调器102可以整个地使用硬件或软件和/或执行中 的软件的组合来实现。此外,协调器102可以合并在其他兼容组件内或与它们相关联。另 外,协调器102可以是包括处理器和/或能够与网络拓扑结构和/或云104进行高效通信的任何类型的机器。可包括协调器102的说明性机器可包括台式计算机、服务器类计算设 备、蜂窝电话、智能电话、膝上型计算机、笔记本计算机、平板PC、消费和/或工业设备和/或 装置、手持式设备、个人数字助理、多媒体因特网移动电话、多媒体播放器,等等。网络拓扑结构和/或云104可包括任何可行通信和/或广播技术,例如可以使用 有线和/或无线形态和/或技术来实现所要求保护的主题。此外,网络拓扑结构和/或云 104可包括利用集中式和/或分布式的个人区域网(PAN)、局域网(LAN)、校园网(CAN)、城 域网(MAN)、外联网、内联网、因特网、广域网(WAN)、和/或它们的任何组合、置换或聚集。另 外,网络拓扑结构和/或云104可包括或涵盖利用近场通信(NFC)的通信或交换和/或利 用通过人类皮肤进行电导的通信。除上述传感器或者专有或公有数据库之外,数据源106可包括其他类型的传感设 备,包括但不限于,照相机、话筒、气象仪表(例如,风速计、气压计、雨滴谱议、云高计、气压 自记器、湿度计,等等)、地质和/或地理仪表(例如,地震仪、应变仪,等等)、定时设备、汽 车仪表、航空电子设备,等等。另外,数据源106可以整个地使用硬件或软件和/或执行中 的软件的组合来实现。此外,数据源106可以是但不限于包括处理器和/或能够与网络拓 扑结构和/或云104进行有效和/或工作通信的任何类型的机构、机器、设备、设施、和/或 仪表。可构成数据源106的机构、机器、设备、设施和/或仪表可包括平板PC、服务器类计算 机器和/或数据库、膝上型计算机、笔记本计算机、台式计算机、蜂窝电话、智能电话、消费 电器和/或设备、工业设备和/或组件、手持式设备、个人数字助理、启用多媒体因特网的电 话、多媒体播放器,等等。与协调器102和数据源106 —样,应用程序108可以整个地使用硬件或软件和/ 或执行中的软件的组合来实现。此外,应用程序108可以是但不限于包括处理器和/或能 够与网络拓扑结构和/或云104进行有效和/或工作通信的任何类型的引擎、机器、转换工 具、或生产模式。可构成和/或实现应用程序108的说明性转换工具、生产模式、引擎、机构、 设备、或机器可包括台式计算机、服务器类计算设备和/或数据库、蜂窝电话、智能电话、膝 上型计算机、笔记本计算机、平板PC、消费和/或工业设备和/或装置和/或过程、手持式设 备、个人数字助理、启用多媒体因特网的移动电话、多媒体播放器,等等。图2提供根据所要求保护的主题的一方面的方便和实现用于多传感器数据集的 高效流共享的协调器102的描绘200。对于每一应用程序108所指定的每一组查询或数据 需要,协调器102通常可负责确定哪一数据源106与应用程序108相关。协调器102可以 至少部分地基于内部保存的可用数据源106的索引以及该系统相对于该系统当前使用的 其他数据源106的当前状态来确定相关数据源106的集合。协调器102还可以确定哪些计 算可能是冗余的,并随后可以在应用程序108和/或用户之间共享这些计算。此外,协调器 102可以在适当时通过周期性地和/或持续地将数据高速缓存到本地和/或远程保存装置 (例如,易失性存储器或非易失性存储器、或易失性和非易失性存储器两者)来最小化数据 源106上的带宽和/或处理负载。如图所示,协调器102可包括可以接收和/或分发、传递、和/或参与同多个不同 的源和/或组件的数据交换的接口组件202(此后称为“接口 202”)。例如,接口 202可以 从多个源接收并向其传送数据,诸如例如与数据源106相关联的数据,如与传感设备相关 的并从中发出的信息,这些传感设备包括但不限于照相机、话筒、气象仪表、地质和/或地理仪表、定时设备、汽车仪表、航空电子设备,等等。作为补充和/或替换,接口 202可以获 得和/或接收与用户名和/或口令、加密和/或解密密钥集合、客户机应用程序、服务、用 户、客户机、设备、和/或涉及特定事务的实体、事务的各部分相关联的数据,并且此后可以 将接收到的或以其他方式取得的信息传达给传感器选择器组件204、传感器索引组件206、 冗余有向无环图组件208、以及数据路由器组件212中的一个或多个以供后续利用、处理和 /或分析。为便于其目标,接口 202可提供各种适配器、连接器、通道、通信路径等以使得将 系统200 (并且更具体而言是协调器102)中所包括的各种组件集成到实际上任何操作系统 和/或数据库系统中和/或相互集成。作为补充和/或替换,接口 202可提供可允许与可 构成系统200的各种组件、和/或与系统200相关联的任何其他组件(外部和/或内部)、 数据等进行交互的各种适配器、连接器、通道、通信模态等。应用程序108通常可以将它们的查询提交给协调器102 (例如,利用web服务接 口、数据库编程语言、或方便的且可用于这一目的的任何其他数据交换协议)。查询通常可 以指定需要其中的数据的空间区域和时间窗口(例如,具有某一时间段)连同应当或可以 对所取得的和/或接收到的数据应用和/或执行的函数(例如,聚集)。例如,可以布置请 求一个州(例如,区域)在一个星期的时间窗口期间每30分钟(例如,时间段)的温度数 据的查询。此外,在该图示中,查询可以请求查明20英里半径上的平均值(例如,函数)。 在该示例中,协调器102可以确定哪些温度传感器在该州内可用,从所标识的传感器获得 数据,验证它们中的哪些位于彼此20英里半径内,并且此后查明平均值。协调器102此后 可以如接收到的和/或所取得的查询中指示地在指定星期内每30分钟重复这一动作。更具体地,协调器102查看查询规范或解析该查询以定位或标识需要其中的数据 的区域。该区域可以是按多边形、地理边界、行政区划边界、被定义成覆盖道路路线的带来 定义或局限的空间区域或任何其他空间区域。协调器102可以使用传感器索引组件204来 确定区域内存在哪些传感器。仅出于说明目的而非限制,例如,传感器索引组件204可被实 现成维护可用传感器的列表并允许搜索该列表以寻找诸如位置等各种属性的高效方法的 数据库。根据一方面,该查询可以指定应当从中直接取得数据的传感器列表。满足一查询 所需要的传感器列表随后可被馈送至传感器选择器组件206,该组件例如可与冗余有向无 环图组件208 —起协同标识或查明是否有来自所列出的传感器中的任一个的数据当前可 用或已经被流传输。此外,传感器选择器组件206还可以确定需要访问和/或初始化哪些 附加传感器来令人满意地履行该查询。一旦传感器选择器组件206确定了一区域中存在的传感器并查明了需要访问和/ 或初始化哪些附加传感器来履行该查询,它就可以至少部分地基于传感器特性来修剪传感 器列表。例如,如果两个传感器非常接近并且查询中请求的结果的准确度不是非常高,则 传感器选择器组件206可以决定只从这些传感器之一获得数据。例如,传感器选择器组件 206还可以使用附加的基于成本的指导方针或传感器数据预算来选择这些传感器中的哪些 最适用于特定查询。传感器选择器组件206可以因而构建可用来满足所提出的查询的传感 器的合理化列表。冗余有向无环图组件208可以接收传感器选择器组件206所编译或组装的合理化 列表和/或可以进一步解析该查询以定位从与传感器的合理化列表相关联的数据流中获 取的时间特性。另外,冗余有向无环图组件208还可以在所提供的查询内标识需要被应用
8于传入数据流以履行该查询的运作规范(如果有的话)。冗余有向无环图组件208可以利 用一种或多种方法、技术、或模态来针对冗余进行优化,并更新其内部数据结构来以最小化 或减轻冗余的方式执行所提供的查询中阐明的运作要求。至少部分地基于冗余有向无环图组件208所执行的冗余检查,可以启动与传感器 的合理化列表相关联的数据流。如图所示,从高层的观点看,这些流中的数据可以经由协调 器102从数据源106流传输到应用程序108。为了方便从数据源106到应用程序108的这 一流传输,可以使用数据路由器组件212。数据路由器组件212可以决定哪一路线更适于数 据的这一流传输。例如,在应用程序108位于数据源106附近(例如,靠近)并且与其他应 用程序108没有共同性时,数据可以直接从源(例如,数据源106)流传输到应用程序108, 而非通过协调器102。相反,在确定或预期了不久的将来的某种共同性时,协调器102可以 设定数据流以通过其自身来进行流传输,使得该数据例如可以被高速缓存在相关联的高速 缓存210中以供后续重用。此外,数据路由器组件212所选择的选定路线还可取决于网络 成本,如带宽使用成本或等待时间成本。有时,数据可以直接流传输到应用程序108以及协 调器102,例如在应用程序108需要低等待时间和/或协调器102需要将数据高速缓存到 相关联的高速缓存210中时。一旦协调器102确定了适当的冗余和共享机会,数据路由器 组件212就可以作出适当的选择。例如,数据路由器组件212可以如下选择路线对于对其 标识了一些计算或运作冗余或确定了高速缓存需求的数据流,该数据通常可以通过协调器 102来进行流传输。对于其他流,数据可以继续从数据源106直接流传输到应用程序108, 直至确定了任何这样的需求。当然,如本领域技术人员将容易地明白的,诸如因特网等底层 通信网络(例如,网络拓扑结构和/或云104)也可以是数据路由器组件212所选择的端点 之间的详细路径中的决定因素。例如,接收到的和/或所取得的查询中指定的计算或运作要求的全部或部分可以 由冗余有向无环图组件208来执行。然而,计算或运作工作量中的一些也可以从冗余有向 无环图组件208卸载到传感器(例如,数据源106)本身,尤其是在这些传感器(例如,数据 源106)能够接受并执行这样的运作和/或计算承诺时。在诸如在计算对全部或部分应用 程序查询而言是共同的并且因此传感器(例如,数据源106)可以通过发送经处理的结果而 非原始数据来节省通信带宽时等特定情况下,这样的卸载可能是有益的。此外,一些运作上 相关的计算可被协调器102 —起跳过并由应用程序108来执行,在接收到的和/或所取得 的查询的计算和/或运作要求与任何其他接收到的和/或所取得的查询没有共同性以及没 有因在应用程序端(例如,应用程序108)执行这些功能或进行这些计算而导致冗余的时 候,情况可能如此。然而,无论计算和/或运作任务是如何划分和/或执行的,结果可以最 终被发送到应用程序108。作为补充和/或替换,计算和/或运作任务的结果也可以由协调 器102来存储(例如,存储在高速缓存210中)以供稍后重用或由应用程序108稍后异步 地访问。如本文并非限制地解释的,冗余有向无环图组件208通常必须确定何时存在计算 和/或通信中的冗余。通信中的冗余通常在多个应用程序108需要来自同一数据源106 (例 如,传感器)的数据时存在——在这种情况下数据源106应当只发出数据一次。计算中的 冗余通常可在两个或多个查询对来自同一传感器(例如,数据源106)的数据执行一些共同 运算时存在。如果假定在这个时候,对于所有查询而言,在同一时间步骤中执行所有计算或运作任务,则在共同时间步骤中存在的冗余可被称为空间冗余。因此,在冗余有向无环图组 件208可使用有向无环图来确定空间冗余的情况下,它这样做。图通常被认为是包括可表示变量的各节点和可表示不同节点之间的关系的各节 点之间的边的结构。有向无环图通常被认为是具有以下属性的图结构所有边具有连接方 向并且通过沿着这些边在标记方向上找不到环路。图3提供具有标记为1、2、3、4、5、6、7、8、 9的节点的这样的有向无环图300的图示,其中节点1、2和3经由一组有向边连接到节点 7,节点4、5和6经由另一组有向边连接到节点8,并且节点7和8各自经由有向边分别连接 到节点9。有向无环图通常用于对多个工程设计和数学任务进行建模。此外,应当注意,将 不具有进入边的节点称为叶节点是常用记法(例如,节点1、2、3、4、5和6可被认为是叶节 点)。还应当注意,尽管叶节点通常不具有进入边,但叶节点可以具有从中发出的边。转回图2,并且具体而言,转回根据所要求保护的主题的一方面的冗余有向无环图 组件208的操作。并非限制,冗余有向无环图组件208可以用以下方式利用有向无环图在 该图示中的叶节点(例如,图3中的节点1、2、3、4、5和6)可以表示来自数据源106(例如, 一个或多个传感器输入)的数据值。所有其他节点(例如,图3中的较高层节点7、8和9) 可以表示通过对来自叶节点的数据值施加某一函数(例如,聚集)而获得的一些计算得到 的数据值。图4提供简单有向无环图400的图示,其中被标记为“总和”的节点(例如,402a 和402b)表示通过对从叶节点1、2、3、4、5、和6获得的值施加求和函数而获得的值。表示为 “最小值”的最顶层节点(例如,404)可以表示通过对从两中间节点(例如,402^Π 402β)获 得的值应用最小化函数而获得的值。图4示出的这样的有向无环图可被用来表示应用程序 108提交给协调器102的查询。在最小化冗余进行进一步说明中,冗余有向无环图组件208可以按如下方式组合 表示多个查询的有向无环图公共计算或函数共同性可被标识并执行一次。例如,考虑提交 给协调器102的两个查询Ql和Q2。表示这些查询的有向无环图500在图5中呈现。叶节 点编号(例如,502)表示可被访问的传感器(例如,数据源106)身份。如将观察到地,传感 器(例如,数据源106)中的一些在两个查询之间是共同的(例如,节点3、4和5)。参考图 5,还将注意到,两个查询Ql和Q2都采用来自传感器3、4和5的传感器值的和。图6提供最小化图5中描绘的有向无环图500中显而易见的冗余的经组合的有向 无环图600的图示。根据所要求保护的主题的一方面,经组合的有向无环图600可以通过 执行节点3、4和5中包含的值的求和(例如,3+4+5,602) —次并随后在这两个查询之间重 用该和来实现。如适度地知晓本领域的人员将易于理解的,在系统为大量查询进行服务或 计算很复杂时,标识并最小化这样的冗余可节省大量资源。例如,为了从各单独查询有向无环图(例如,分别依赖于查询Ql和Q2的分层树结 构)获得或导出图6中示出的无冗余的经组合的有向无环图600,冗余有向无环图组件208 可以利用以下技术。如果假定直至当前时间为止接收到的所有查询已被组合成为查询q(l) 到q(v)进行服务的有向无环图,其中ν是大于或等于1的整数,并且进一步地,为简化说 明,V被设为1(例如,V=I)并且现有查询由Ql表示,如图5中的左有向无环图(例如, 504)所示。在新查询q(v+l)到达时,它可被表示成Q2,即图5中的右有向无环图(例如, 506)。如将明白地,有向无环图仅表示简单场景,所有ν个查询的有向无环图通常可非常复 杂和详细,然而本文概述的方法相对于这样的复杂有向无环图仍可以找到等效适用性。
对于每一叶节点和/或非叶节点,冗余有向无环图组件208可以计算或分配一编 号(称为签名)并将该签名(例如,502)与每一叶节点和/或非叶节点相关联。这一签名 表示它所服务的所有查询。例如,如果节点A服务查询1、2和3,并且具有签名“X”,则也服 务查询1、2和3的所有其他节点都将被分配同一签名“X”,服务不同查询组合的其他节点可 被分配不同的签名值。出于本说明的目的并且如图5所例示的,如果假定向Ql的现有有向 无环图中的所有节点分配了签名χ = 1并且向Q2的有向图中的所有节点分配了签名χ = 2。相应地分配的签名由502指示。应当注意,为简化说明起见,在图5中只标识了叶节点 签名502。基于唯一查询标识符集合来分配唯一签名的技术可包括利用位图来表示查询编 号,其中位图的长度等于同时查询的预期数量,并且位图中位置“k”处的“1”表示这一节点 服务查询“k”的事实,而0意味着该假定不服务查询“k”。此后,可以使用二进制位图的十 进制表示来计算签名。例如,二进制位图‘01,、‘10,、‘11,分别与十进制签名值1、2、3相对 应。—旦冗余有向无环图组件208计算了每一叶节点和/或非叶节点的所分配和/ 或相关联的签名,则冗余有向无环图组件208可以检测现有有向无环图(例如,与查询 Ql (504)相关联的有向无环图)与新查询有向无环图(例如,与查询Q2 (506)相关联的有向 无环图)之间的共同叶节点以及具有所执行的相同操作(例如,求和(602))。对图5的仔 细研究指出节点3、4和5是共同的,并且在两个查询Ql和Q2中均被聚集。根据本文阐明 的签名计算算法,将向这些节点分配新签名。例如,图6和7示出节点3、4和5的新签名χ =3 (与位图‘ 11’等效),因为它们服务查询的新唯一组合查询Ql和查询Q2 (并且因此位 图签名的第一和第二位被设为1)。只服务查询Ql的节点继续具有签名1(位图‘01’ )并 且只服务查询Q2的那些节点具有签名2(位图‘10’)。一旦执行了签名分配,则有向无环 图可看起来像图6中示出的图。有向无环图的优化(例如图6)可以由冗余有向无环图组件208逐层执行,例如从 叶节点的底层开始。在每一层,对于连接到超过一个节点的具有同一签名的每一节点集合, 冗余有向无环图组件208可以创建新较上层节点602(例如,被称为中间节点)。如图6所 示,这一中间节点602可以捕捉计算共同性,因为现在较低层节点的只连接到一个较上层 节点,这暗示着没有计算被执行两次。在中间节点(例如602)计算得到的结果随后可被馈 送到先前被较低层节点直接馈送的节点。如本领域普通技术人员将理解的,这一优化可以 在每一较上层重复以类似地移除冗余。一旦冗余有向无环图组件208计算并移除了尚存的 冗余,则查询结果流可被设成从执行最终查询结果计算的所有较上层节点流传输。除上述内容之外,冗余有向无环图组件208还需要减少由于多个查询的时间要求 中的相似性而产生的冗余。这些查询的时间特性可以造成冗余有向无环图节点的以下时间 特性。对于每一叶节点,该节点可以接收从数据源106读取数据的时间段以及该时间段的 容限。例如,应用程序108可能想要每15分钟或更快地更新查询结果。则,时间段是15分 钟并且容限是该时间段可以小于15分钟。这一容限允许具有类似时间段的多个查询共享 数据流。例如,如果另一查询每10分钟需要一次数据,则这两个查询可以从每10分钟读取 各个值的单个数据流执行,因为即使采样快于15分钟第一查询也得到满足。因此,在每10 分钟进行读取是足够的情况下,每10分钟和每15分钟读取数据将是冗余的。对于每一非叶节点,除时间段和容限之外,还可以存在计算时间段和计算窗口。例
11如,新查询可以询问最后10个值的平均值(例如,每15分钟读取的值)并且每小时都需要 最后10个值的平均值。在此,时间段是15分钟、计算时间段1小时,并且计算窗口是10个 值的窗口(例如,10个值*15分钟/值——计算窗口是150分钟)。在已经为同一查询或 其他查询的过去时间段计算了计算窗口的各部分的情况下,可发生冗余。为减少上述两种类型的时间冗余,冗余有向无环图组件208可为每一节点维护动 作点(例如,动作点通常表示要执行下一数据读取或计算的时间)。动作点通常可以基于时 间段和容限来计算可在不违反查询要求中的任一个的情况下用于下一动作点的最大时间 延迟。另外,每一计算窗口可被分成可表示该计算窗口的可被再次使用的各部分的较小 计算窗口。例如,20分钟的计算窗口可被分成20个1分钟持续时间的子窗口、10个2分钟 的子窗口、5个4分钟的子窗口、4个5分钟的子窗口、和/或2个10分钟的子窗口。有了这些技术的组合,冗余有向无环图组件208可以显著地减轻或排除数据读取 (例如,通信冗余)和计算中的冗余。另外,以上技术可以通过使用人工智能或机器学习来 增强,以动态地推断哪些计算执行得更频繁以及何处可能出现冗余。此外,冗余有向无环图 组件208在进行冗余优化之前例如可检测何时冗余足够大以证明运行优化过程和更新有 向无环图的成本是合理的。结合图2将注意到,在一些情况下,可能需要规避协调器102,并且对于一些查询 计算和数据高速缓存,可以使用不同的其他组件来解决特定的资源瓶颈。可存在多个这样 的多资源约束场景,以下呈现其少许说明以概括所要求保护的主题的能力。一个关键资源瓶颈通常可以是在其中web带宽有限的传感器或数据源106处。在 传感器或数据源106部署在具有协调器102和/或应用程序106可用的、与高带宽企业因 特网连接相对的低带宽因特网连接的用户家中时,这一情况可以发生。对于使用低速率卫 星链路的远程部署的传感器或数据源106,这样的情况也可发生。所要求保护的主题可以例 如以至少以下两种方式来容纳这些情况。第一,从高速缓存210重用尽可能多的已保存数 据,以便只需要通过具有带宽约束的链路访问最小所需数据。第二,一旦冗余有向无环图组 件208更新了协调器102所采用的有向无环图,则只要在数据源106本身处执行该处理中 的一些是可能的,就可将经更新的有向无环图的一部分发送到传感器或数据源106(或例 如服务多个传感器或数据源106的网关)。这样的设施可以减少带宽使用,而代替将原始数 据转发给协调器102以供分析和/或处理,经处理、分析的数据和/或经处理的数据可以通 过具有资源约束的链路来发送。另一关键资源瓶颈可以相对于应用程序108连接性来发生。在这种情况下,只有 所聚集的查询结果通常被定向到应用程序108。所聚集的查询结果通常消耗比原始数据更 少的带宽,但如果一些聚集步骤产生比原始数据本身更多的数据,则总体处理可变得过载。 因此,处理可被分发给应用程序108本身。在这种情况下,在协调器102处形成的有向无环 图的一部分可被复制给应用程序108并且将来自有向无环图中的较低层的最低速率数据 流定向或发送到应用程序108。除数据速率之外,应用程序连接性可以受到可用性的限制 (例如,应用程序108可只具有与协调器102的间歇连接性)。例如,使用交通传感器数据 源(例如,数据源106)来计算交通知晓驾驶方向的汽车全球定位系统(GPS)可只具有间歇 连接性。在这种情况下,协调器102可以存储查询结果,直至时间应用程序108恢复了连接性并可以在此时下载结果。此外,在一些情况下,应用程序108可能需要尽可能快地访问数据。在这种情况 下,协调器102可用至少两种方式来帮助应用程序108。第一,数据路由器组件212可以选 择或挑选从数据源106到应用程序108的直接(或较少绕行)路径,并可通过开始从数据 源106到协调器102的分开(或单独)的流来继续减少其他应用程序108的计算或运作冗 余。第二,即使在可获得来自数据源106的数据之前,协调器102也可以至少部分地基于保 存在高速缓存210中的数据来发送部分查询结果。这两种方法是可能的,因为使用协调器 102来处理查询并高速缓存数据。此外,在一些情况下,数据和查询流可淹没协调器102,如在数据和查询流可涉及 比协调器102可执行的计算多的计算的情况下。在这种情况下,所要求保护的主题可被修 改以将针对冗余而计算得到的有向无环图分发给多个过程、处理器、或机器。这些过程、处 理器、或机器中的一些可以处于数据源106或应用程序108处。计算得到的有向无环图可 被分区、分配或分解成各部分,以便可以在协调器102处维护具有最大冗余的部分,并将具 有很少或没有冗余的部分发送到其他过程、处理器、或机器。另外,协调器102本身可以包 括足以构成服务器场的多个机器或处理器。此外,还可以是如下情况来自数据源106的数据流可包含可造成网络拓扑结构 或云104、因特网骨架、或其他通信网络变得过载的大量数据。在这种情况下,协调器102可 以将所构造的有向无环图的较低层转移到数据源106以使处理中的一些可在数据源106处 发生,并且通信网络只需携带通常可能需要较低带宽的聚集数据。此外,为最小化通信冗余,与冗余有向无环图之间208相关联的高速缓存210可以 存储从叶节点处的源获得的数据值。还可以高速缓存在其他节点处计算得到的值。这样的 高速缓存允许从单个数据读取回答多个查询。同样,如果在将来,查询需要高速缓存中存在 的过去数据,则可以避免到及与数据源106的通信。然而,高速缓存210可只具有有限的可 用存储资源量,并且因此它可以使用高速缓存期满策略来从高速缓存210删除旧数据来为 新传入数据腾出空间。高速缓存策略可被设计成适合系统需求。例如,如果知道查询不可能 请求早于一个月的数据,则早于一个月的数据可被删除或者保存在第二或第三长期高速缓 存中。同样,对于有向无环图的不同节点,高速缓存策略可以不同。例如,如果知道一般较 不可能在30天之后请求来自叶节点的数据,但即使在一年以后也可能请求大区域上的平 均数据,则叶节点或其它节点可具有不同且独特的期满策略。此外,高速缓存期满策略可以 基于除数据的时间戳之外的属性。例如,在发现数据值反常或具有其他感兴趣特性时,它可 被高速缓存更长时间。另外,可以使用估计有向无环图的不同节点处的不同数据的有用性 的自适应技术。应当注意,用于有向无环图节点的存储器和数据高速缓存不必邻接或甚至 处于同一设备上——例如,根据一个方面,有向无环图节点可以保持在高速随机存取存储 器中而高速缓存可以存储在诸如硬盘驱动器或闪存等较慢但非易失性的辅助存储设备上。参考图2中描绘的高速缓存210,高速缓存210可包括关于以下各项的信息用 户数据、与事务的一部分相关的数据、信用信息、关于先前事务的历史数据、与购买物品和/ 或服务相关联的数据的一部分、与销售物品和/或服务相关联的数据的一部分、地理位置、 在线活动、先前在线事务、跨不同网络的活动、跨一网络的活动、信用卡验证、成员资格、成 员资格的持续时间、与一网络相关联的通信、伙伴列表、联系人、已回答的问题、已发布的问题、问题的响应时间、博客数据、博客条目、背书、已购买的物品、已售出的物品、网络上的产 品、从不同的网站搜集到的信息、从不同的网络获得的信息、来自网站的评级、信用分数、地 理位置、对慈善机构的捐款、或关于软件、应用程序、web会议的任何其他信息和/或关于事 务的任何合适数据等。可以明白,高速缓存210可以是例如,易失性存储器或非易失性存储器,或者可同 时包括易失性存储器和非易失性存储器两者。作为说明而非限制,非易失性存储器可包括 只读存储器(ROM)、可编程只读存储器(PR0M)、电可编程只读存储器(EPROM)、电可擦除可 编程只读存储器(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM),它可用 作外部高速缓冲存储器。作为说明而非限制,RAM以多种形式可得,诸如静态RAM(SRAM)、 动态 RAM (DRAM)、同步 DRAM (SDRAM)、双数据率 SDRAM (DDR SDRAM)、增强型 SDRAM (ESDRAM)、 Synchlink (同步链路)DRAM(SLDRAM)、Rambus (存储器总线)直接 RAM(RDRAM)、直接 Rambus 动态RAM(DRDRAM)、以及Rambus 动态RAM(RDRAM)。本发明的系统和方法的高 速缓存210旨在包括但不限于这些以及任何其他合适类型的存储器。另外,可以明白,高速 缓存210可以是服务器、数据库、硬盘驱动器等等。图2还提供数据源106的又一图示,如图所示,数据源106可包括多个不同的和/ 或相似的设备、组件、和/或过程。例如,并且如图所示,数据源106可包括数据源工106广· 数据源N 106N,其中N是大于或等于1的整数、或自然数,这些数据源可以是以下各项中的一 个或多个照相机、温度计、计算机芯片、定时设备、便携式设备(例如,膝上型计算机、蜂窝 电话、智能电话,等等)、与交通工具相关联的设备和/或组件(例如,卡车、汽车、铁路车辆、 机车引擎,等等)、与航空相关联的机器和/或设备(例如,发射机应答器着陆系统、波束进 场信标系统、局域增强系统、广域增强系统、全球定位系统、VHF全方位无线电测距仪、雷达,
寸寸J。图2还提供应用程序108的描绘,应用程序108可包括请求从数据源106流传输 信息以供进一步分析、调查和/或处理的多个不同和/或类似过程、组件、和/或设备。例 如,并且如图所示,应用程序108可包括应用程序JOS1…应用程序τ 108τ,其中T是大于或 等于1的整数、或自然数,这些应用程序可以基于来自数据源106的交通状况和/或所获得 的道路状况数据计算最快驾驶方向并且此后可确定路线行进时间,从而造成对一条或多条 最短时间路线的选择。考虑到以上示出并描述的说明性系统,参考图8的流程图将可以更好地理解可根 据所公开的主题实现的方法。尽管出于说明简单的目的,各方法被显示和描述为一系列框, 但应该理解和明白,所要求保护的主题不受框次序的限制,因为一些框能够以不同的次序 和/或与在此描绘和描述的其他框并发地发生。而且,并非所有示出的框都是实现以下描 述的方法所必需的。另外还应该理解,下文以及本说明书全文中所公开的方法能够被存储 在制品上,以便于把此类方法传送和转移到计算机。所要求保护的主题可在诸如程序模块等由一或多个组件执行的计算机可执行指 令的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类 型的例程、程序、对象、数据结构等。通常,程序模块的功能可以在各方面中按需进行组合和 /或分布°图8示出可实现和/或方便用于多传感器数据集的高效流共享的机器实现的方法
14800。在802,该方法可以开始,此时可以启动并执行各种以及各式各样的初始化任务。在 804,接收和/或取得新查询。在806,可进行签名分派或分配。签名分派或分配可涉及确定 或计算表示它所服务的所有查询的编号。编号或签名通常可以是表示所服务的查询的每一 唯一组合的唯一编号。因此,在808,作出关于是否存在具有相同签名的具有多个父节点的 任何节点的判定。当在808确定不存在具有相同签名的具有多个父节点时(例如,“否”), 方法800可以进行至810,在那里可以添加中间节点并且可以更新有向无环图,或者如果此 时没有现有的有向无环图则生成或创建有向无环图。一旦添加了中间节点并更新了有向无 环图,则该方法可以循环至808。另一方面,如果在808确定存在具有相同签名的节点并且 这些节点具有多个父节点(例如,“是”),则该方法可进行至812。在812,可以作出另一判 定,其中查明是否已经完成了所有层。在此,在每一层,对于具有相同签名的连接到超过一 个节点的每一组节点,可以创建新较上层节点。这一新较上层节点(或中间节点)可以捕 捉与具有相同签名和多个父节点的节点相关联的计算的共同性。当在812查明已经完成了 所有层时(例如,“是”),该方法可进行至814,在这时,可以设定查询结果流从执行最终查 询结果的计算的所有较上层节点流传输,否则(例如,“否”),该方法可循环回808。所要求保护的主题可经由面向对象的编程技术来实现。例如,系统的每一个组件 都可以是软件例程中的对象或对象中的组件。面向对象的编程将软件开发的重点从功能 分解转移到对封装数据和功能两者的被称为“对象”的软件单元的识别。面向对象的编程 (OOP)对象是包括数据结构和对数据的操作的软件实体。这些元素可共同使得对象能够虚 拟地按照真实世界实体的特性和行为来对任何这样的实体建模,特性由实体的数据元素来 表示,而行为由实体的数据操纵函数来表示。以此方式,对象可对如人和计算机等具体事物 建模,并且可对如数字等抽象概念或几何概念建模。如在本申请中所使用的,术语“组件”和“系统”旨在表示计算机相关的实体,其可 以是硬件、硬件和软件的组合、或者执行中的软件。例如,组件可以是但不限于,在处理器上 运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执 行代码、执行的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服务器 都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一 台计算机上和/或分布在两台或更多的计算机之间。基于人工智能的系统(例如,显式和/或隐式训练的分类器)可用于执行根据将 在下文中描述的所要求保护的主题的一个或多个方面的推断和/或概率判断和/或基于统 计的判断。如在此所使用的,术语“推论”、“推断”或这种形式的变体通常是指从经由事件和 /或数据捕捉的一组观察结果中推断或推理系统、环境和/或用户的状态的过程。例如,推 断可用于标识特定的上下文或动作,或可生成状态的概率分布。推断可以是概率性的,即, 基于对数据和事件的考虑计算所关注状态的概率分布。推断也可以指用于从一组事件和/ 或数据组成更高级事件的技术。这类推断导致从一组观察到的事件和/或存储的事件数据 中构造新的事件或动作,而无论事件是否在相邻时间上相关,也无论事件和数据是来自一 个还是若干个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网 络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护的主 题的自动化和/或推断的动作。此外,所要求保护的主题的全部或部分可以使用产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为系统、方法、 装置或制品。如此处所使用的术语“制品”旨在涵盖可以从任何计算机可读设备或介质访问 的计算机程序。例如,计算机可读介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁 带……)、光盘(例如,紧致盘(⑶)、数字多功能盘(DVD)……)、智能卡和闪存设备(例如, 卡、棒、钥匙驱动器……)。另外应该明白,可以使用载波来承载计算机可读电子数据,例如 那些用于发送和接收电子邮件或用于访问如因特网或局域网(LAN)等网络的数据。当然, 本领域的技术人员将会认识到,在不背离所要求保护的主题的范围或精神的前提下可以对 这一配置进行许多修改。本详细描述的某些部分已按照算法和/或对计算机存储器中的数据位的操作的 符号表示来呈现。这些算法描述和/或表示是本领域技术人员用来将其工作的实质最有效 地传达给具有相同技术水平的其他人员的手段。算法在此处通常被认为是导致所需结果的 自相一致的动作序列。动作是需要对物理量的物理操纵的那些动作。尽管并非必需,但这 些物理量通常采用能够被存储、传输、组合、比较、和/或以其它方式操纵的电和/或磁信号 的形式。原则上出于常见用法的原因将这些信号称作位、值、元素、符号、字符、项、数字等 被证明有时是方便的。然而,应当记住,所有这些和类似术语都应与适当的物理量相关联并 且仅仅是应用于这些物理量的方便的标签。如从以上讨论中清楚的,除非具体地另外指明, 否则可以理解,贯穿所公开的主题,利用诸如处理、计算、运算、确定和/或显示等术语的讨 论涉及计算机系统和/或类似的消费者和/或工业电子设备和/或机器的动作和处理,其 操纵计算机和/或机器的寄存器和存储器中被表示为物理(电和/或电子)量的数据和/ 或将其变换成机器和/或计算机系统存储器或寄存器或其他这样的信息存储、传输和/或 显示设备中类似地被表示为物理量的其他数据。现在参见图9,示出了可用于执行所公开的系统的计算机的框图。为了提供用于其 各方面的附加上下文,图9及以下讨论旨在提供对其中可实现所要求保护的主题的各方面 的合适的计算环境900的简要概括描述。尽管以上描述是在可在一个或多个计算机上运行 的计算机可执行指令的一般上下文中进行的,但是本领域的技术人员将认识到,所要求保 护的主题也可结合其他程序模块和/或作为硬件和软件的组合来实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组 件、数据结构等等。此外,本领域的技术人员可以理解,本发明的方法可用其他计算机系统 配置来实施,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计 算机、手持式计算设备、基于微处理器的或可编程消费电子产品等,其每一个都可操作上耦 合到一个或多个相关联的设备。所示的所要求保护的主题的各方面也可在其中某些任务由通过通信网络链接的 远程处理设备来执行的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于 本地和远程存储器存储设备中。计算机通常包括各种计算机可读介质。计算机可读介质可以是可由计算机访问的 任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限 制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存 储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任意方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、R0M、 EEPR0M、闪存或者其他存储器技术、CD-ROM、数字视频盘(DVD)或其他光盘存储、磁带盒、磁 带、磁盘存储或其他磁存储设备、或可以用于存储所需信息并且可以由计算机访问的任何 其他介质。再次参考图9,用于实现各方面的说明性环境900包括计算机902,计算机902包 括处理单元904、系统存储器906和系统总线908。系统总线908将包括但不限于系统存储 器906的系统组件耦合到处理单元904。处理单元904可以是市场上可购买到的各种处理 器中的任意一种。双微处理器和其他多处理器体系结构也可用作处理单元904。系统总线908可以是若干种总线结构中的任一种,这些总线结构还可互连到存储 器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线体系 结构中的任一种的局部总线。系统存储器906包括只读存储器(ROM)910和随机存取存储 器(RAM) 912。基本输入/输出系统(BIOS)储存在诸如ROM、EPROM、EEPROM等非易失性存 储器910中,其中BIOS包含帮助诸如在启动期间在计算机902内的元件之间传输信息的基 本例程。RAM 912还可包括诸如静态RAM等高速RAM来用于高速缓存数据。计算机902还包括内置硬盘驱动器(HDD)914(例如,EIDE、SATA),该内置硬盘驱动 器914还可被配置成在合适的机壳(未示出)中外部使用;磁软盘驱动器(FDD)916(例如, 从可移动磁盘918中读取或向其写入);以及光盘驱动器920 (例如,从⑶-ROM盘922中读 取,或从诸如DVD等其他高容量光学介质中读取或向其写入)。硬盘驱动器914、磁盘驱动 器916和光盘驱动器920可分别通过硬盘驱动器接口 924、磁盘驱动器接口 926和光盘驱 动器接口 928来连接到系统总线908。用于外置驱动器实现的接口 924包括通用串行总线 (USB)和IEEE 994接口技术中的至少一种或两者。其他外部驱动器连接技术在所要求保护 的主题所考虑的范围之内。驱动器及其相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指 令等的非易失性存储。对于计算机902,驱动器和介质容纳适当的数字格式的任何数据的存 储。尽管以上对计算机可读介质的描述涉及HDD、可移动磁盘以及诸如CD或DVD等可移动 光学介质,但是本领域的技术人员应当理解,说明性操作环境中也可使用可由计算机读取 的任何其他类型的介质,诸如zip驱动器、磁带盒、闪存卡、盒式磁带等等,并且任何这样的 介质可包含用于执行所要求保护的主题的方法的计算机可执行指令。多个程序模块可存储在驱动器和RAM 912中,包括操作系统930、一个或多个应用 程序932、其他程序模块934和程序数据936。所有或部分操作系统、应用程序、模块和/或 数据也可被高速缓存在RAM 912中。应该明白,所要求保护的主题可以用市场上可购买到 的操作系统或操作系统的组合来实现。用户可以通过一个或多个有线/无线输入设备,例如键盘938和诸如鼠标940等 定点设备将命令和信息输入到计算机902中。其他输入设备(未示出)可包括话筒、IR遥 控器、操纵杆、游戏手柄、指示笔、触摸屏等等。这些和其他输入设备通常通过耦合到系统总 线908的输入设备接口 942连接到处理单元904,但也可通过其他接口连接,如并行端口、 IEEE 994串行端口、游戏端口、USB端口、IR接口等等。监视器944或其他类型的显示设备也经由接口,诸如视频适配器946连接至系统 总线908。除了监视器944之外,计算机通常包括诸如扬声器、打印机等其他外围输出设备
17(未示出)。计算机902可使用经由有线和/或无线通信至一个或多个远程计算机,诸如远程 计算机948的逻辑连接在联网环境中操作。远程计算机948可以是工作站、服务器计算机、 路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见的网 络节点,并且通常包括相对于计算机902描述的许多或所有元件,尽管为简明起见仅示出 了存储器/存储设备950。所描绘的逻辑连接包括到局域网(LAN) 952和/或例如广域网 (WAN) 954等更大的网络的有线/无线连接。这一 LAN和WAN联网环境常见于办公室和公司, 并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通 信网络。当在LAN网络环境中使用时,计算机902通过有线和/或无线通信网络接口或适 配器956连接到局域网952。适配器956可以方便到LAN 952的有线或无线通信,并且还可 包括其上设置的用于与无线适配器956通信的无线接入点。当在WAN连网环境中使用时,计算机902可包括调制解调器958,或连接到WAN 954上的通信服务器,或具有用于诸如通过因特网等通过WAN 954建立通信的其他装置。或 为内置或为外置以及有线或无线设备的调制解调器958经由串行端口接口 942连接到系统 总线908。在联网环境中,相对于计算机902所描绘的程序模块或其部分可以存储在远程存 储器/存储设备950中。应该理解,所示网络连接是说明性的,并且可以使用在计算机之间 建立通信链路的其他手段。计算机902可用于与操作上设置在无线通信中的任何无线设备或实体通信,这些 设备或实体例如有打印机、扫描仪、台式和/或便携式计算机、便携式数据助理、通信卫星、 与无线可检测标签相关联的任何一个设备或位置(例如,公用电话亭、报亭、休息室)以及 电话。这至少包括Wi-Fi和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定 义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi,即无线保真,允许从家里沙发、酒店房间的床上或工作的会议室连接到因 特网而不需要线缆。Wi-Fi是一种类似蜂窝电话中使用的无线技术,它使得诸如计算机等 设备能够在室内和室外,在基站范围内的任何地方发送和接收数据。Wi-Fi网络使用称为 IEEE 802. llx(a、b、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网 络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802. 3或以太 网)。Wi-Fi网络可在非特许的2. 4和5GHz无线电波段中操作。IEEE 802. 11 一般应用 于无线LAN,并使用跳频扩谱(FHSS)或直接序列扩谱(DSSS)中的任一种在2. 4GHz的波段 中提供1或2Mbps的传输。IEEE 802. Ila是IEEE 802. 11的扩展,其应用于无线LAN,并在 5GHz波段中提供高达54Mbps。IEEE 802. Ila使用正交频分多路复用(OFDM)编码方案而非 FHSS 或 DSSS。IEEE 802. Ilb (也被称为 802. 11 高速 DSSS 或 Wi-Fi)是 802. 11 的扩展,其 应用于无线LAN并在2. 4GHz波段中提供IlMbps传输(带有向5. 5、2和IMbps的回退)。 IEEE 802. Ilg应用于无线LAN,并在2. 4GHz波段中提供20+Mbps。产品可包括一个以上的 波段(例如,双波段),因此网络可提供类似于在许多办公室中使用的基本IOBaseT有线以 太网网络的真实性能。现在参考图10,示出了根据另一方面的用于处理所公开的体系结构的说明性计算环境1000的示意性框图。系统1000包括一个或多个客户机1002。客户机1002可以是硬 件和/或软件(例如,线程、进程、计算设备)。客户机1002可例如通过采用所要求保护的 主题而容纳cookie和/或相关联的上下文信息。系统1000还包括一个或多个服务器1004。服务器1004也可以是硬件和/或软 件(例如,线程、进程、计算设备)。服务器1004可以容纳各线程以通过例如利用所要求保 护的主题来执行转换。在客户机1002和服务器1004之间的一种可能的通信能够以适合在 两个或更多计算机进程之间传输的数据分组的形式进行。数据分组可包括例如cookie和/ 或相关联的上下文信息。系统1000包括可以用来使客户机1002和服务器1004之间通信 更容易的通信框架1006 (例如,诸如因特网等全球通信网络)。通信可经由有线(包括光纤)和/或无线技术来促进。客户机1002操作上被连 接到可以用来存储对客户机1002本地的信息(例如,cookie和/或相关联的上下文信息) 的一个或多个客户机数据存储1008。同样地,服务器1004可在操作上连接到可以用来存储 对服务器1004本地的信息的一个或多个服务器数据存储1010。以上所已经描述的内容包括所公开且要求保护的主题的各个示例。当然,描述每 一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识 到,许多其他组合和排列都是可能的。因此,所要求保护的主题旨在涵盖所有这些落入所附 权利要求书的精神和范围内的更改、修改和变型。此外,就在说明书或权利要求书中使用术 语“包括”而言,这一术语旨在以与术语“包含”在被用作权利要求书中的过渡词时所解释 的相似的方式为包含性的。
19
权利要求
一种实现在机器上的方便并实现多用户传感器数据集的高效流共享的系统,包括经由接口(202)取得查询的组件(102),所述组件(102)在所述查询内定位包括其中的数据被请求的区域的规范,所述组件(102)至少部分地基于其中的数据被请求的区域来确定位于该区域内的一个或多个传感器(106),所述组件(102)查明所述一个或多个传感器(106)中的哪些当前正在流传输数据或已经保存了数据并查明需要初始化所述一个或多个传感器(106)中的哪些来履行所述查询,所述组件(102)对有向无环图进行构造或利用中的至少一个来减轻所述查询所施加的运作要求中的冗余并制定针对应用程序的结果,所述组件(102)通过向与所述有向无环图相关联的叶节点或非叶节点分配签名、利用所述签名来标识所述查询与第二查询之间的共同叶节点或非叶节点或者共同操作、将一中间节点插入所述有向无环图、将来自所述共同叶节点或非叶节点或共同操作的边定向到所述中间节点、以及执行所述分配、所述利用、所述插入、或所述定向一次或多次以捕捉可重用的计算来减轻所述运作要求中的冗余。
2.如权利要求1所述的系统,其特征在于,所述组件(102)确定与所述查询相关联的准 确度水平,所述组件(102)至少部分地基于所述准确度水平来对一个或多个传感器(106) 的列表进行修剪或扩充中的至少一个以与所述准确度水平相对应。
3.如权利要求1所述的系统,其特征在于,所述组件(102)至少部分地基于传感器数据 预算的基于成本的指导方针来查明与所述查询相关联的准确度水平。
4.如权利要求1所述的系统,其特征在于,所述组件(102)构造用于满足所述查询的传 感器(106)的合理化列表,传感器(106)的所述合理化列表包括所述查询中指定的区域内 的一个或多个传感器(106)或者至少部分地基于传感器特性、基于成本的指导方针、或传 感器数据预算中的至少一个来从所述合理化列表修剪的或添加到所述合理化列表的传感ο
5.如权利要求1所述的系统,其特征在于,所述组件(102)将来自所述有向无环图的分 支定向到所述一个或多个传感器以进行预处理,所述一个或多个传感器返回满足所述查询 所施加的运作要求的经部分处理的数据。
6.如权利要求1所述的系统,其特征在于,所述组件(102)至少部分地基于对所述查询 所施加的运作要求或者所述查询中包括的时间特性对所述应用程序而言是唯一的或相对 于另一查询是唯一的判定来将从所述一个或多个传感器流传输的数据直接转发给所述应 用程序。
7.如权利要求1所述的系统,其特征在于,所述组件(102)至少部分地基于对来自所述 一个或多个传感器(106)的数据具有用于履行所述查询所施加的运作要求的过去、现在、 或将来实用性的判定来将来自所述一个或多个传感器(106)的数据定向到数据高速缓存 (210)。
8.如权利要求1所述的系统,其特征在于,所述组件(102)至少部分地基于带宽使用成 本或等待时间成本来将来自所述一个或多个传感器(106)的数据定向到应用程序(108)。
9.如权利要求1所述的系统,其特征在于,所述区域划定由地理边界、行政区划边界、 覆盖道路路线的带、或由多边形定义的地区中的至少一个限定的地区的边界,并且所述查 询包括从所述一个或多个传感器取得的数据所需要的时间特性。
10.一种在多个应用程序之间共享数据访问、计算、或运作工作量中的至少一个的机器实现的方法,包括定位包括在其上请求数据的区域的规范;至少部分地基于所述在其上请求数据的区域来确定位于所述区域内的传感器位置; 确定哪一传感器当前正在流传输数据或保存了数据; 启动履行查询所需的传感器;以及至少部分地基于所述确定或启动,构造或使用有向无环图来减轻所述查询所施加的运 作要求中的冗余并制定针对一应用程序的结果。
11.如权利要求10所述的方法,其特征在于,还包括查明与所述查询相关联的准确度水平,并基于所述查明来移除或添加位于所述在其上 请求数据的区域中的传感器以与所述准确度水平相称;至少部分地根据基于成本的指导方针或传感器数据预算中的至少一个来确定与所述 查询相关联的准确度水平;隔离与所述有向无环图相关联的分支并将所述分支发送到所述应用程序以进行后处理;将数据流从所述传感器直接转向所述应用程序,所述转向基于所述查询所施加的运作 要求对所述查询而言是唯一的判定;以及基于从所述查询所施加的运作要求查明的过去、现在、或将来需求来保存从所述传感 器发出的数据。
12.如权利要求10所述的方法,其特征在于,所述构造或使用所述有向无环图还包括 向与所述有向无环图相关联的每一叶节点或非叶节点分配签名值;标识所述查询与第二查询之间的共同叶节点、共同非叶节点、或共同操作;以及 修改所述有向无环图以包括中间节点,且从所述共同叶节点、所述共同非叶节点、或所 述共同操作发出的弧被重定向到所述中间节点,并且重复所述修改一次或多次以捕捉可重 用计算。
13.一种实现多用户传感器数据集的高效流共享的系统,包括用于标识查询中的规范的装置(102),所述规范包括在其上请求数据的规定地理区域;用于确定位于所述规定地理区域内的传感器位置的装置(102、204); 用于标识主动地流传输数据或保存数据的传感器的装置(102、204); 用于构造或使用有向无环图来定位所述查询所施加的运作要求中的冗余的装置(102、 208);以及用于基于多个应用程序所使用的所述有向无环图来产生结果的装置(102、212)。
14.如权利要求13所述的系统,其特征在于,还包括用于向所述有向无环图中的节点 分配签名的装置(102、209),所述签名标识请求来自所述传感器的数据或利用与所述查询 所施加的运作要求相类似的运作要求并使用流数据或保存来自传感器的数据的一组查询。
15.如权利要求13所述的系统,其特征在于,所述规范包括应用于主动流传输的数据 的时间范围或函数中的至少一个。
全文摘要
所要求保护的主题提供方便和/或实现多用户传感器数据集的高效流共享的系统和/或技术。该系统包括在查询中定位包括需要其中的数据的空间区域的规范的机构,该机构基于该空间区域确定哪些传感器处于该区域内或查明该区域中的传感器中的哪一个正在主动地流传输数据和/或保存了数据以履行查询,构造或利用有向无环图来减轻该规范中包括的并且由该查询所施加的运作要求中的冗余,以及制定履行该查询的被传递给应用程序的结果。
文档编号G06F17/30GK101965566SQ200980108878
公开日2011年2月2日 申请日期2009年1月31日 优先权日2008年3月10日
发明者A·坎萨尔, A·塔瓦库里-希拉吉, F·赵, S·纳特 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1