基于流的编程模型允许订户观察从源接收到的流项目的流,例如事件通知和对观察到的数据的更新。本文提出一种基于流的反应性编程平台,其允许观察者发现源和流,并指定导致新的流的可应用于源的查询,包括应用到源的联合的属性的条件。反应性编程平台的变型包括根据非反应性数据源生成新的流;生成源和观察者的图;以及提供分别由统一资源标识符识别出的可发现元素的目录。反应性基于流的编程平台还可以允许参数化来配置参与流的元素的功能;委托查询任务到编程平台的可发现元素;以及联合元素的异构集合来利用反应性基于流的编程平台实现查询。
【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
在计算领域中,许多场景涉及包括流的架构,所述流用于向流项目的订户通知例如新流项目的规定、观察到的变量的变化或在计算框架内的事件。在这种模型中,自发地向订户通知新流项目(例如,无需针对更新轮询订阅的数据源),并且以流的方式将数据项输送到订户,例如,根据通过数据源将数据项插入到流的次序,将数据项的序列输送给订户。作为第一个这种例子,在简易信息聚合(RSS)公布/订阅馈送中,用户可能在一个或多个公布商建立新的公布(例如,发布在网站的文章)时请求通知。聚合主机可以通过周期性检查订阅的公布商、取回新的聚合项并将其呈现给用户而完成请求。作为第二个这种例子,在面向对象的观察模型中,当第一对象的属性实例化时(例如,对象的成员字段,或者经由用户输入可控制的视觉用户界面的值),可以自动创建流用于更新属性。第二对象可以请求订阅流,并因此可以在属性变化时被自发地通知。作为第三个这种例子,在事件流模型中,事件源可以提供事件流,并在检测到事件的实例时可以将事件通知插入到事件流。对象可以请求订阅事件流,并且事件平台可以将事件通知输送到对象,以便完成对象的订阅请求。在计算领域中出现的多种场景中,可以设计和使用许多这种基于订阅的流。
技术实现思路
提供该“
技术实现思路
”是为了引入将在下文“具体实施方式”中进一步描述的简化形式的概念选择。该“
技术实现思路
”并不意图识别所要求保护主题的关键因素或必要特征,并且也不意图用于限制所要求保护主题的范围。在许多基于订阅的流模型中,通过计算环境(例如,操作系统可以自动生成使用中的对象的各个字段的流)、用户(例如,网络内容的作者可以配置网站来提供新内容项目的流)和/或流源(例如,类别可以指定相应对象可以提供流,以及指定对象如何将流项目插入到流)来指定数据流的存在和特性。然而,这些模型不能使得订户创建流以便观察源;即,如果源不能提供流,则观察者仅能够利用替代技术,例如轮询,以便实现对源的观察。另外,这种模型还仅为用户提供有限容量来创建和/或改变流。例如,一些流模型可以使得特定的观察者能够指定流过滤器,并仅接收插入到流中的一些流项目。然而,该流过滤器不改变流的内容,且不影响提供给订阅了同一流的其他观察者的流项目;每个这种其他订户可以指定流过滤器或者接收流的完整内容。本文提出了一种基于流的反应性编程平台,其中一组观察者不仅可以观察由源提供的流,而且还可以指定观察者可以订阅的新的流。根据这些技术,观察者可以提交指定数据源的属性上的条件的查询(例如,股票报告的特定股票的值超过价格上限),并且编程平台可以生成用于查询的流。观察者和其他观察者然后可以订阅流,并且编程平台可以登记这种观察者为流的订户。当编程平台检测到完成查询的条件时,编程平台可以将表示完成查询的新的流项目插入到流中,并可以将流项目输送到流的所有订户。本文提供的基于流的反应性编程平台可以扩展到多个方面。作为第一个这种例子,请求订阅流的观察者可以监视流项目,或者可以指定或提供代表观察者监视流项目的代理。作为第二个这种例子,观察流的观察者还可以包括流的源;例如,观察者可以将流项目公布到流以及接收由其他源公布的流项目到同一流。作为第三个这种例子,基于流的反应性编程平台的元素(例如,观察者、源、流和订阅)可以支持共享集合的属性。例如,通过影响每个这种元素的功能的参数的规定进行参数化。作为第四个这种例子,基于流的编程平台可以以支持与用户到服务和用户到设备的方式等价的服务到服务、服务到设备和设备到设备通信的方式提供,从而每个元素的功能被暴露并可用于反应性基于流的编程平台的任意其它元素。根据本文提出的技术,本文提供的基于流的编程平台的这些和其它变型可以呈现反应性编程模型,其支持通过由观察者指定的源生成和改变流。为了完成前述和相关目的,后续描述和附图阐述了特定的图示方面和实现方式。这些仅表示可以采用一个或多个方面的各种方式中的几个。当结合附图考虑时,根据后续详细描述,本公开其它方面、优点和新颖特征将变得清晰。附图说明图1是以用于向对象通知对对象字段的更新的第一基于流的公布/订阅技术为特征的示例性场景的图示。图2是以用于向对象通知在计算环境中出现的事件的第二基于流的公布/订阅技术为特征的示例性场景的图示。图3是以根据本文提出的技术提供的基于流的反应性编程平台为特征的示例性场景的图示。图4是根据本文提出的技术,使用基于流的反应性编程平台代表观察者完成查询的示例性方法的图示。图5是根据本文提出的技术示出配置为提供基于流的反应性编程平台来代表客户完成查询的示例性服务器的部件框图。图6是包括配置为实现本文阐述的一个或多个规定的处理器可执行指令的示例性计算机可读介质的图示。图7是根据本文提出的技术以用于基于数据项的联合生成对源的属性的更新的流的技术为特征的示例性场景的图示。图8是根据本文提出的技术以根据参数化查询生成的流为特征的示例性场景的图示,相应参数绑定到基于流的反应性编程平台的对象。图9是根据本文提出的技术以通过基于流的反应性编程平台提供的代理可访问的对象的目录为特征的示例性场景的图示。图10是根据本文提出的技术以在基于流的编程平台中委托查询的方面的设备和服务的联合为特征的示例性场景的图示。图11是可以实现和/或使用本文技术的一部分的示例性计算环境的图示。具体实施方式现在将结合附图描述所要求保护的主题,其中遍及附图中类似的附图标记用于指代类似的元素。在后续描述中,出于解释的目的,阐述了多个特定细节以便提供对所要求保护主题的透彻理解。然而,显然的是,可以在没有这些特定细节的情况下实践所要求保护的主题。在其它实例中,在框图中示出结构和设备,以便于描述所要求保护的主题。A.引言在计算领域中,许多场景涉及基于订阅的流,其中流的源公布一组流项目,其依次输送到一个或多个订户。在这种场景中,观察者可以将订阅请求提交给流管理器,并可以经由流从源接收流项目直到将取消订阅请求提交给流管理器。基于订阅的流的概念可应用于计算的许多区域中,其中源和订户可以包括例如,人、设备、应用或数据源或其组合。涉及基于订阅的流的第一场景是简易信息聚合(RSS)协议,其中数据源可以生产并更新流项目的列表。用户可以请求聚合读者周期性检索列表,并在聚合读者发现新的流项目添加到列表时通知用户。图1是以在数据绑定模型中使用基于订阅的流的技术以便使得对象102能够观察到其它对象102的字段104的改变为特征的示例性场景100的图示。在该示例性场景100中,当第一对象102实例化为包括两个字段104(例如,整数和布尔值)时,数据绑定平台110可以为对象102的各个字段104生成流106,其它对象102可以对其进行订阅以便观察第一对象102的字段104的改变。当对象102的字段104改变时,如果没有其它对象102订阅字段104的流106,则订阅平台110可以不采取行动;但是如果至少一个对象102订阅流106,则数据绑定平台110可以生成表示字段104的更新的通知116的流项目108,并将流项目108插入到流106中。因此,当第二对象102提交订阅请求112以订阅对应于第一对象104的第二字段104的第二流106时,数据绑定平台110可以为第二对象存储订阅114。当第一对象102的第二字段104变化时,数据绑定本文档来自技高网...
【技术保护点】
一种用于在具有处理器的设备上针对观察者完成查询的方法,所述方法包括:在所述处理器上执行指令,所述指令使得所述设备用于:在从观察者处接收到包括涉及源的属性的条件的查询时,代表所述观察者发起所述查询的流;在从观察者处接收到所述流的订阅请求时,添加所述观察者作为所述流的订户;以及在检测到所述查询的条件的完成时:识别所述流的至少一个订户;以及将指示所述查询的条件的完成的流项目输送到所述流的至少一个订户。
【技术特征摘要】
【国外来华专利技术】2014.06.25 US 14/314,0801.一种用于在具有处理器的设备上针对观察者完成查询的方法,所述方法包括:在所述处理器上执行指令,所述指令使得所述设备用于:在从观察者处接收到包括涉及源的属性的条件的查询时,代表所述观察者发起所述查询的流;在从观察者处接收到所述流的订阅请求时,添加所述观察者作为所述流的订户;以及在检测到所述查询的条件的完成时:识别所述流的至少一个订户;以及将指示所述查询的条件的完成的流项目输送到所述流的至少一个订户。2.根据权利要求1所述的方法,其中:所述观察者、所述流以及所述流是分别由统一资源标识符来进行识别的;以及所述订阅请求根据所述流的所述统一资源标识符来识别所述流。3.根据权利要求1所述的方法,其中:所述设备还包括存储至少一个源的源集合;以及在所述处理器上执行所述指令还使得所述设备在接收根据数据项创建源的请求时用于:创建包括与所述数据项相关联的属性的新的源;将所述新的源存储在所述源集合中。4.根据权利要求3所述的方法,其中:所述请求指定所述源的标识符;以及创建所述新的源还包括:将在所述请求中指定的所述标识符分配给所述源。5.根据权利要求1所述的方法,其中:所述查询指定所述流的标识符;以及发起所述查询的流还包括:将在所述查询中指定的所述标识符分配给所述流。6.根据权利要求1所述的方法,其中,创建所述新的源还包括:监视所述数据项以检测数据项更新;以及当检测到所述数据项的数据项更新时,将所述数据项更新登记为所述新的源的属性的更新。7.根据权利要求1所述的方法,其中,所述流的条件涉及第一源的第一属性和不同于所述第一源的第二源的第二属性。8.根据权利要求1所述的方法,其中,在所述处理器上执行所述指令还使得服务器用于:在从所选择的客户端处接收与服务器交互的请求时,向所选择的客户端发送包括至少一个委托方法的代理,当被所选择的客户端调用时,所述委托方法向所述服务器发送请求...
【专利技术属性】
技术研发人员:B·J·F·德斯梅特,T·T·塔尔纳夫斯基,S·珀勒斯塔提蒂斯,
申请(专利权)人:微软技术许可有限责任公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。