提供实时数据的系统和方法

文档序号:7847434阅读:883来源:国知局
专利名称:提供实时数据的系统和方法
技术领域
背景技术
实时数据是指在起初创建数据之后在一定时间内应当处理和/或传送的任何数字或模拟信息。从创建数据之时直到处理和/或传送数据消逝的时间被称为延迟。对于任何特定的实时应用来说可允许的最大延迟是依赖于应用的。最大延迟是严格要求的应用可以被称为“硬”实时应用,而最大延迟不是严格要求的的应用可以被称为“软”实时应用。软实时应用只需要满足依赖应用的、通常是主观的、成为衡量“足够迅速的”的标准。非实时数据是不需要满足任何特定的延迟要求的数据。术语“数据”可以指硬实时数据、软实时数据、或非实时数据。“实时数据”可以指硬实时数据或软实时数据。由于物理过程或计算机程序实时数据一般在处理数据的计算机系统外部生成。例如,实时数据可以包括来自诸如马达状态、液体罐水平、阀门位置、传送带速度等的工业过程控制系统的信息;诸如股票的金融工具的价格、数量等;诸如表明用户已经点击计算机显示器上的按钮的人机交互事件;人类操作员进行的数据输入;和计算机操作系统状态变化。实际上,任何随时间变化的信息均可以被视为实时数据。可以将数据的起源描述为“数据源”。例如,数据可以源于物理过程、通过电测量、 然后转换为数字表示,或数据可以数字表示的形式产生。一般地,数据在数字计算机中以数字表示才是可用的,遵循零个或多个步骤将数据转换成数字表示。数据源可以包含将数据转换为计算机程序可访问的数字形式所需的所有组件和步骤。类似于数据源的是数据接收器。数据接收器消耗或使用数据。数据接收器的某些实例是过程控制系统的致动器;股票交易系统的交易处理软件;人机交互应用;数据库或其他的数据存储系统。许多数据源也是数据接收器。因此,数据源可以包含数据源、数据接收器、或同时包括数据源和数据接收器。例如,当数据传送至数据源时,数据源也可以作为数据接收器。在计算机应用中,一般由“服务器”管理数据。服务器可以作为数据源或作为数据接收器,或既作为数据源又作为服务器,允许“客户,,应用程序与服务器管理的数据进行交互作用。一般地,客户应用程序必须发起与服务器的连接,从而与数据进行交互作用。连接可以是“短暂的”,连接只在与数据进行的一个或一些交互作用的持续时间内存在,或者连接可以是“长命的”,连接在与数据进行许多交互作用期间继续存在,和可能在客户应用程序的有效期的持续时间内存在。长命的连接也可以被称为“持续的”连接。数据源以限定数据的数字表示的一个或多个“数据格式,,提供数据。数据格式可以符合公布标准或是数据源所特有的。相似地,数据接收器可以需要以公布标准格式的数据或数据源所特有格式的数据。数据源通过一个或多个“传输协议”提供数据访问。传输协议指定数据从数据源转移至数据接收器依赖的机制。传输协议可以符合发布标准或为数据源所特有的。数据源可以组合数据格式和传输协议,因此不是所有支持的数据格式均可以通过所有支持的传输协议传输的。一般地,“协议”或“数据协议”是指通过特定传输协议传输的特定数据格式的组合。为了使用数据源产生的数据,数据接收器必须支持数据源提供的至少一个数据协议。由于存在大量数据协议,所以所有数据源和数据接收器支持所有数据协议是不切实际的。因此,利用数据的客户应用程序一般创建为仅支持其主要目的需要的协议。相似地,数据源一般仅支持其主要目的必需的协议。所以,例如,没有办法使支持HTTP协议的web浏览器直接连接支持DDE协议的电子表格应用程序。将数据从数据源支持的协议转换为数据接收器支持的协议必须进行协议转换步骤,以便于数据接收器利用数据源提供的数据。可以由“中间设备”应用程序执行该转换步骤。中间设备应用程序的主要目的是通常通过将数据从一个协议转换为另一个协议促进在数据源和数据接收器之间的通信,以致于当数据源和数据接收器未共享共同协议时,数据源和数据接收器可以间接地进行交互作用。数据源可以利用至少两种方法将数据转移至数据接收器在要求时数据源被动地等待数据接收器,从而请求数据源中可用的某些或所有数据。当数据接收器发出请求请求数据时,数据源用表明所请求数据的当前状态的结果作为响应。如果需要通知数据接收器更改为数据,数据接收器必须重复请求,以便于数据源用更新数据作为响应。由数据接收器对同一个数据进行重复的请求被称为“轮询”。数据接收器可以为每个新请求创建数据源的短暂连接或持续连接,许多重复请求通过持续连接传送。通过订阅数据源创建数据源的持续连接,并订阅来自数据源的某些或所有可用数据。当发生变化时,数据源将任何变化通过持续连接传送至数据。数据源将继续发送变化至数据,直到数据接收器指定不同的或连接关闭。理解的是,诸如共享内存、消息队列、和邮箱的数据转移方法是关于经要求或订阅方法的变种。还理解的是,术语数据转移、数据传播、或数据传输均是指数据在系统内的活动,这些术语可以互换地使用,因为这些术语涉及具体的数据转移方法。进一步理解的是,这些方法独立于隐含的传输协议。处理实时数据的计算机应用程序必须是可靠的、应答的、和容易连接其数据源。这意味着从历史上讲已经将实时数据处理应用程序创建为直接或间接连接数据源的独立应用程序。该独立结构也允许应用程序充分利用计算机的图形能力提供实时数据的丰富动态可视化。相比之下,就数据连通性和图形速度而言,已经证明基于web浏览器技术的应用程序是不合适的。某些开发人员努力已经利用web浏览器中的ActiveX组件提供对数据驱动显示的访问,但是现代浏览器一般不支持这些组件,并且由于组件表示的安全风险这些组件受到限制影响。
为了利用浏览器的内嵌Javascript引擎显示web浏览器中的变化数据,已经做出努力。一般这是通过利用被称为AJAX (异步Javascript和XML)的方法实现的,在AJAX中 web浏览器周期性地轮询新数据,然后相应地更新其显示。该轮询机制的效率非常低,只适合于相对少的数据集或相对慢速运动的数据。降低轮询速度保存CPU或网络带宽会增加数据延迟,这对于实时应用程序而言是无法接受的。关于通过称为流动AJAX的机制改进AJAX所做的努力利用浏览器网页加载机制的副作用通过随着时间的推移将Javascript指令增加至网页引起浏览器网页增量地增加。 当每个JavMcript指令到达时就执行每个指令,呈现出连续的数据流。有效地欺骗Web浏览器使其认为正通过较慢的网络连接加载非常大的web网页。该方法具有一些缺点,包括由于正在传送的网页不断增大,web浏览器的内存和CPU用法可以随着时间连续地增加。AJAX和流动AJAX方法同时受到web浏览器内缺乏质量显示选项的影响。Web浏览器一般设计为显示静态网页和web “窗体”,并不提供高速或高质量的图形显示选项。关于图形显示选项改进做出的努力是为了使web浏览器互相兼容,且一般执行速度非常慢。基于内嵌web浏览器性能的所有数据传输解决方案主要目标是接收web浏览器中的数据。数据通信是单向的,原因是从服务器接收数据的连接无法用于传送数据至服务器。 如果web浏览器需要将数据反向传送至服务器,那么web浏览器必须打开新的连接、传送 HTTP请求、然后再次关闭连接。因此,诸如流动AJAX的解决方案将数据反向传送至数据服务器非常慢,因为需要为每个数据传输发送新的HTTP请求会引起较大的开销和延迟。基于web的数据可视化的努力试图通过将好像很快的数据移动呈现为缓慢移动 (高延迟)的数据改进用户体验。这是通过显示web浏览器中比数据实际到达的频率更高的频率的内插数据来实现的。例如,表示速度计的圆形计量器可以接收每5秒钟分割的值 1和值100。网页可以每秒钟提取计量器刻度盘5次,每次用4改变值。这会给观察者提供平稳变化的速度,即使基本的数据传输不含有该信息。这种内插模糊了基本数据的真实行为,且内插在诸如过程控制和股票交易市场的实时应用中一般是不可接受的。诸如Adobe Flash 和 Microsoft Silverlight 的丰富性网络应用服务(“RIA”) 框架同时为web浏览器内的数据处理和图形显示提供了改进的平台。这些RIA框架也支持 RIA内的直接TCP/IP通信。相似地,这些特征的组合使得可以处理和显示web浏览器内的实时信息。由于在软件领域中RIA主要适合于视频、广告、和游戏,所以该处理和显示性能还未转变为实时数据系统。

发明内容
本发明提供了使用RIA框架的图像特征和联网特征和至少一个实时数据服务器的系统和方法,从而提供在web浏览器内的较低延迟的实时数据应用。本发明克服了当前 AJAX和流动AJAX的限制,同时处理数据在web浏览器中不可用的数据源。本发明通过将数据延迟降低至利用真实数据值而非内插值可以动态显示可视化组件的点对本领域状态的实时数据传输至web浏览器进行改进。这使得数据的短暂行为更加准确地呈现给用户。在理解通过数据呈现的实时系统的真实动态方面短暂的行为通常较重要。例如,正在观看物理计量器的人可以通过观看计量器指针行为的振动或过调量辨别重要的系统特性。在本发明的一个实施例中,物理计量器的数字表示可以捕获指针动态,并提供与物理计量器相同的高质量信息。本发明极大地改进了从用户到数据服务器的数据传输的速度,降低了 CPU和网络开销,也降低了延迟。这使得用户可以参与到系统响应对正确行为来说比较重要的更复杂的控制情况中。例如,系统需要保持-释放交互作用同时用水填充容器。用户将按下按钮,并保持按下的状态直到容器满,然后释放按钮。显然地,系统必须迅速响应,从而避免过度填充容器。由于数据传输延迟的不可预测性,这种控制在一般的基于web应用中不可行。令人惊讶的是,本发明对先前通过web浏览器考虑的较慢、不可靠的、或原始的控制和实时数据应用进行分类。—般的web应用处理由应用设计人员提供的特定格式的数据。对于限制终端选择或简单的设计上的限制而言,这是有意的方法。甚至在数据格式遵循工业标准(例如XML或JS0N)的情况中,数据源是应用所特有的。本发明还提供了用于传送多种实时数据的同时源于工业标准和专用源的通用机制。有利地,本发明可以进一步提供以多种数据格式的数据。许多数据源,实时的和非实时的,均不是为了网络使用(例如,通过网络传输)。本发明允许数据从这些诸如Microsoft Excel (微软公司)的数据源通过网络可靠且迅速的传输至任何RIA或基于web的应用。某些数据源,例如基于OPC的数据源,是为了网络使用,但是不是设计为与web浏览器进行通信。本发明也允许这些数据源迅速且可靠地传送至基于web的应用。其他数据源,例如数据库系统,完全不为接口提供实时信息。本发明允许传送来自数据源的诸如数据库应用的非实时数据,就好像是实时数据一样,因而消除了执行数据库的无效轮询对RIA或基于web应用的需求。数据源和数据接收器可以通过持续连接或短暂连接连接数据库。理解的是,与服务器的连接方法将反映对特定数据源或数据接收器的需求。本发明提供了来自一个或多个数据源的实时数据可以有效地用于富互联网应用的方法。本发明进一步提供了 RIA有效地修改实时数据或生成可以反向传输至数据源的实时数据的方法。然后,数据源可以将数据通过网络重新传送至其他的RIA。因此,本发明有效地使得许多RIA应用互相之间进行实时通信,以及共同与一个或多个实时数据源进行通信。本发明考虑实时数据的抽象概念,以便于可以利用抽象概念表示的任何数据可以用于RIA,无论其源、表示方法、或转移协议。


图1是示出了根据本发明的一个实施例的在RIA和服务器之间的直接连接的示例性的方框图。图2是示出了根据本发明的一个实施例的在RIA、服务器、和单独的数据源之间的连接的示例性的方框图。图3是示出了根据本发明的一个实施例的在RIA、服务器、和多个单独的数据源之间的连接的示例性的方框图。图4是示出了根据本发明的一个实施例的RIA控制流的一个方法的示例性的流程图。图5ajb是示出了根据本发明的一个实施例的服务器操作的一个方法的示例性
7的流程图。图6是示出了根据本发明的一个实施例的数据服务器管理与多个RIA的同步连接的示例性的方框图。图7是示出了根据本发明的一个实施例的在电子表格应用程序和RIA之间通过局域网或广域网进行数据的实时传输的示例性的方框图。图8是示出了根据本发明的一个实施例的系统实施的示例性的方框图。
具体实施例方式提供下面的描述是为了能够使本领域的技术人员实现和利用本发明,以及在本发明的特定应用的背景下提供了下面的说明书。本领域的技术人员将容易看出,在不偏离本发明的保护范围的情况下,可以对公开的实施例进行各种改进,以及本文中定义的一般原理可以应用于其他的实施例和应用中。不同实施例和实例的参考资料并不会限制本发明的保护范围,本发明的保护范围仅由所附的权利要求的保护范围限制。此外,在该说明书中阐述的实例不是为了起到限制作用,仅仅是阐述要求的发明的许多可能的实施例中的某些实施例。执行本发明的当前实施例的编程环境说明性地包括通用计算机或专用设备,例如便携式计算机或电话。为了简洁起见,可以省略这些设备(例如,处理器、内存、数据存储器、显示器、用户输入装置)的详细信息。还理解的是,可以利用多种方法实施本发明的技术。例如,本文中所描述的方法可以在计算机系统上执行软件实施,或在硬件中利用微处理器或其他专门设计的专用集成电路、可编程逻辑设备、或其组合实施。特别地,可以通过驻存在合适的计算机可读介质上的一连串计算机可执行指令实施本文中所描述的方法。合适的计算机可读介质可以包括易失性(例如,RAM)和/或非易失性(例如,ROM、磁盘)存储器、载波、和传输介质(例如,铜线、 同轴电缆、光纤介质)。示例性的载波可以采用电信号、电磁信号、或光信号的形式,沿着局域网、诸如互联网的公开可访问网络、或某些其他通信链路传送数字数据流。关于附图中所示的实例实施例,可以理解,为了简洁起见选择了简化的实例。出现在附图中的元件(例如,RIA、服务器、数据源、数据接收器等)的一个实例可以用多个相同的元件替代,且仍然在本发明的保护范围内。因此,在一个方面,本发明提供了方法用于提供实时数据给RIA,该方法包含在数据源产生数据;将数据传播至服务器;在服务器采集数据;创建从RIA到服务器的持续连接;和订阅到所订阅数据的RIA,其中所订阅数据包含在服务器采集的数据的至少某些数据,其中当在服务器采集数据时,服务器将所订阅数据通过持续连接传播至RIA。该方法进一步包含将起源RIA的数据发送至服务器。起源RIA的数据可以含有通过持续连接至数据的至少一个更改请求。进一步,数据可以通过至少一个中间组件传播。服务器可以接收至少一个更改请求,并将至少一个更改请求传送至数据源。可以通过中间组件传送至少一个更改请求。中间组件可以是中间硬件组件或中间软件组件。可选地,RIA可以订阅所订阅数据。在数据源产生数据和将数据传播至服务器可以与在服务器采集数据同时发生。RIA 可以执行基于数据的行为,例如图形表示的计算或修改。RIA可以将数据的可视化表示显示在用户显示器,用户可以与可视化表示进行交互,从而生成源于RIA的数据。可视化表示可以是在RIA框架内运行的程序。起源RIA的数据可以指示服务器执行行为,例如关闭服务器,或改变其行为,例如改变哪个数据来自服务器。例如,起源RIA的数据可以是用户交互作用、计时器事件、对来自服务器的数据更改的响应、脚本、或另一个非用户生成的事件的结果。在另一个方面中,本发明提供了提供实时数据给RIA的计算机实施方法,该方法包含提供来自数据源的数据;将来自数据源的数据传播至服务器;在服务器采集数据;创建从服务器到RIA的第一持续连接;创建从RIA到服务器的第二持续连接;将来自RIA的数据通过第二持续连接传播至服务器;和订阅到所订阅数据的RIA,其中所订阅数据包含在服务器采集的数据的至少某些数据,以及其中服务器将所订阅数据通过第一持续连接传播至RIA。该方法可以进一步包含将来自服务器的数据传播至数据接收器。第一持续连接和第二持续连接可以由单个连接构成。数据源、数据接收器、和服务器可以由单个组件或两个组件的组合构成。数据可以通过从以下组中选择的至少一个媒介物进行传播软件组件、硬件组件、和网络。数据项可以基于订阅在RIA和服务器之间传播,其中数据项响应数据项中的变化立刻传播。可以从包含以下的组中选择传播的数据数值数据、非数值数据、配置设置、和可执行指令。RIA可以执行基于数据的行为,其中行为从包含以下的组中选择修改用户显示器的可视化表示、计算、新数据的生成、现有数据的修改、数据存储、声音指示、脚本执行、数据至服务器的传播、用户可视化编程响应、和非用户可视化编程响应。在RIA生成的数据可以指示服务器执行从包含以下的组中选择的行为在服务器内进行的数据修改、数据至连接服务器的数据接收器的传播、脚本的执行、数据至文件系统的存储、新数据的创建、新数据至连接服务器的数据接收器的传播、服务器配置的修改、服务器行为的修改、用户可视化编程响应、和非用户可视化编程响应。还是在另一个方面中,本发明提供了存储指令的计算机可读存储介质,当在一个或多个计算机上执行指令时,会引起计算机执行如上所述的提供实时数据给RIA的方法。在另一个方面中,本发明提供了用于提供实时数据给RIA的计算机系统,该计算机系统包含处理器、输入装置、显示器、至少一个数据源、至少一个服务器;至少一个RIA ;以及可选的至少一个数据接收器,其中服务器包含用于从至少一个数据源采集数据的数据采集组件;用于发送数据至至少一个数据客户端的数据发射组件。服务器可以进一步包含用于修改由数据发射组件发射的由数据采集组件采集的数据形式的数据修改组件。理解的是,至少一个数据源和至少一个服务器可以在至少一个计算机程序(例如,单个计算机程序、或两个或三个单独的计算机程序)中实施。服务器可以进一步包含从以下选择的一个或多个组件数据修改组件;数据创建组件;用户界面组件;计算机文件系统交互组件;用于与运行服务器的计算机上运行的其他程序进行交互的程序交互组件;用于执行可编程行为的脚本语言组件;用于接收来自客户程序的HTTP请求和以那些请求指定的文档以与“web服务器”相似的方式做出响应的HTTP组件,包括能够响应请求动态地构建文档,和包括文档内驻存在服务器中数据的当前值和执行服务器中的内嵌脚本语言的声明的结果;用于交换和同步在任何局域网或网络可访问的计算机上运行服务器的另一种情况的同步组件,因此服务器本质上维持数据的相同拷贝,因而能够使客户应用连接服务器的任一种情形与相同的数据集进行交互;用于限制采集数据的速度的第一减速组件;用于限制发送数据的速度的第二减速组件;用于检测与其他服务器失去连接和当恢复连接时重新连接其他服务器的连接组件;用于冗余地连接相同或相似信息的多个其他服务器的冗余组件,以便于在一个或多个其他服务器不可访问时,可以采集来自其他服务器的任一服务器的数据;和桥接组件,用于把数据源连结起来以便于这些数据源内的某些或所有数据彼此维持相似的值,或数据源之间的桥接数据,包括数学变换,以便于当在其他源中的数据进行数学变换时维持一个源中的数据,包括能够同时正向和方向地通过双向桥接操作应用数学变换。理解的是,通过将额外的功能增加至服务器可以扩展这组服务器组件,从而支持其他的数据采集和传输机制、其他的处理机制、和其他的存储机制。数据采集组件可以通过一个或多个以下方式采集数据在要求时,其中服务器发送请求驻存在另一个服务器中的某些或所有数据的请求,和其他服务器响应请求以所请求数据的当前值或值只做出一次响应;通过订阅,其中服务器发送订阅驻存在另一个服务器中的某些或所有数据的请求,和其他服务器通过发送其数据的值或当前值做出响应,然后继续发送随后的变化至其他服务器,或请求其他服务器停止发送更新;经过触发,其中客户端、脚本、或人(“用户”)构造服务器只有当满足某些触发条件时才采集数据,某些触发条件可以是计时器、一天的时段、数据变化、系统状态的改变、用户行为、或某些其他可检测的事件;和通过被动地等待“客户”应用将数据发送至服务器。数据发射组件可以以一个或多个以下方式发送数据在要求时,其中“客户”应用发送请求某些或所有数据的请求,和服务器响应请求以所请求数据的当前值或值只做出一次响应;通过订阅,其中客户应用发送订阅某些或所有数据的请求,服务器通过发送数据的值或当前值做出响应,然后继续发送随后的变化至数据的当前值或值,直到客户端终止其与服务器的连接或请求服务器停止发送更新;经过触发,其中客户端、脚本、或人(“用户”) 构造服务器只有当满足某些触发条件时才发送数据,某些触发条件可以是计时器、一天的时段、数据变化、系统状态的改变、用户行为、或某些其他可检测的事件。可以利用一个或多个从以下选择的传输协议接收在采集组件采集的数据动态数据交换(DDE)、过程控制(OPC)的OLE、OPC警报和事件规格(OPC A&E)、OPC统一结构 (OPC-UA)、OPC快捷接口 (OPC-Xi)、TCP/IP、通过定制接口在TCP/IP的SSL (安全套接层协议)、超链接传输协议(HTTP)、可靠的HTTP(HTTPQ、开放数据库连接(ODBC)、微软实时数据规格(RTD)、消息队列、Windows Communication Foundation (WCF)、诸如 Profibus 和 Modbus的工业总线协议、Windows系统性能计数器、根据嵌入式系统的TCP/IP通信、非 MS-Windows 系统的 TCP/IP、Linux 的 TCP/IP 通信、QNX 的 TCP/IP 通信、TRON 的 TCP/IP 通信、提供C编译器和TCP实施的任何系统的TCP/IP通信、利用内嵌脚本语言书写的脚本、 由人通过用户界面输入的数据、从局域磁盘文件读取的数据、从远程可访问磁盘文件读取的数据、专用格式、用户定义的格式、和通过扩展至服务器增加的格式。专用格式的实例是 Wonderware SuitLink 。可以利用一个或多个从以下选择的传输协议传送从数据发射组件发射的数据动态数据交换(DDE)、过程控制(OPC)的OLE、OPC警报和事件规格(OPC A&E)、OPC统一结构 (OPC-UA)、OPC直接接口(OPC-Xi)、TCP/IP、通过定制接口在TCP/IP的SSL(安全套接层协议)、超链接传输协议(HTTP)、可靠的HTTP(HTTPS)、开放的数据库连接(ODBC)、微软实时数据规格(RTD)、消息队列、WindowsCommunication Foundation(WCF)、诸如 Profibus 和Modbus的工业总线协议、嵌入式系统的TCP/IP通信、非MS-Windows系统的TCP/IP、通过用户接口呈现给人的数据、写入局部磁盘文件的数据、写入远程可访问磁盘文件的数据、专用格式、用户定义的格式、通过扩展至服务器增加的格式、电子邮件(E-Mail)、和短消息服务(SMS)消息格式。进一步,在数据采集组件采集的数据可以是适于传输协议的格式。从数据发射组件发射的数据可以是适于传输协议的格式。在数据采集组件采集的数据和从数据发射组件发射的数据也可以是从以下选择的格式插入语句(像LISP的)格式、超文本标记语言(HTML)、可扩展的标记语言(XML)、Javakript Object Notation (JSON)、专用二进制格式、用户定义的文本格式、和通过扩展服务器增加的格式。系统可以进一步包含实施TCP/IP连接和服务器支持的一个或多个数据格式的应用编程接口(API),该应用编程接口有助于编程人员创建如上所述的连接。一个或多个以下平台可以实施API :“C”编程语言、“C++”编程语言、Microsoft. Net编程环境、MicrosoftSilverlight RIA 框架、Adobe Flash RIA 框架、Adobe Air RIA 框架、编程语言支持 TCP/IP通信(包括任何脚本语言)、和RIA框架支持TCP/IP通信。可以利用从以下选择的RIA框架实施RIA Microsoft Silverlight、Adobe Air、和RIA框架支持TCP/IP通信。RIA框架可以包含支持使得第一长命TCP/IP数据连接服务器从而接收数据;接收来自服务器的数据;和将数据通过第二 TCP/IP数据连接传送至服务器。经要求或通过订阅可以从服务器接收数据。第一 TCP/IP数据连接和第二 TCP/IP数据连接可以是相同的连接。第二 TCP/IP数据连接可以是长命的连接。第二 TCP/IP数据连接可以是短暂的连接。TCP/IP数据连接服务器可以是从以下选择的协议API、如上所述的直接 TCP/IP 连接、HTTP、和 HTTPSo可以通过从以下选择的一个或多个形式接收来自服务器的数据,或可以将数据通过从以下选择的一个或多个形式传送至服务器插入语句(像LISP的)格式、超文本标记语言(HTML)、可扩展的标记语言(XML)、Javakript Object Notation (JSON)、专用二进制格式、用户定义的文本格式、和通过扩展服务器增加的格式。RIA框架可以进一步包含支持将表示数据的图形显示呈现给用户。图形显示可以包含从以下选择的一个或多个图形元件文本显示、Slider控件、图表、趋势图、CircularGauge控件、线性Gauge控件、按钮、复选框、单选按钮、进度条、原始图对象、由RIA框架支持的控件、用于扩展RIA框架创建的控件、利用RIA框架实施的第三方控件、和定制的图形元件。图形显示器的构造信息可以保存在服务器上,和由服务器加载。可以创建图形元件,和在图形显示器内修改图形元件。图形元件可以是由用户可定制的定制图形元件,其中定制可以保存在服务器。可以由编程人员执行定制,而无需对RIA框架中实施的应用进行修改。定制图形元件可以供其他图形显示器的用户使用。这些定制可以用于创建新的显示、修改现有的显示、所有除了由用户界面应用最初支持的图形元件以外的显示。图形元件可以含有一个或多个用户可修改的属性,且图形元件可以由编程人员选择。用户与图形元件交互作用会引起用户界面应用将数据的修改发射给服务器。可以提供仅有用户模式不许用户创建或修改图形显示,以及也提供仅有用户模式不许用户与图形元件进行交互作用。系统管理员可以选择哪个用户和用户界面应用的图形显示将以仅有用户模式和仅有读取模式中的一个工作。可以要求用户识别其本身,和在哪里要求这种身份认证,用户界面应用可以在仅有用户模式和仅有读取模式中至少一个工作。有利地,本发明的特征使得通过任何用户RIA终端修改图形显示,一旦保存,结果变化就立刻可用于连接服务器的其他RIA终端。参考图1,在一个实施例中,RIA 101使得数据成功与同时作为数据源和数据服务器100的程序直接连接。这种情况在数据源通过TCP/IP协议同时是原始数据的采集器和发射器的情况中发生。这种情况的一个实例是嵌在PLC内的OPC-UA服务器。另一个实例是作为数据源和提供能够提供定制TCP/IP接口的TCP/IP服务器的嵌入式设备。还是另一个实例是提供TCP/IP接口的股票市场数据馈送。参考图2,在一个实施例中,另一个结构包含单独的数据源202和服务器203。该结构通过将数据源202的数据协议转换为可以由RIA 201处理的TCP/IP协议扩展通信模型。通过使服务器203与不直接提供TCP/IP接口的数据源202进行交互大大地扩大了数据源202的数目和类型。参考图3,在一个实施例中,服务器203可以同时管理多于一个个数据源302的连接和多余一个RIA 301的连接。这种复杂的结构将数据源302和RIA 301的数据集成为可以在TCP/IP网络的任何位置可访问的单个数据集。在另一个实施例中,系统可以包括与一个或多个数据源和/或一个或多个RIA互联的多个服务器。参考图4,在一个实施例中,示出了 RIA行为和控制流的方法。RIA不需要明确的停止准则,尽管可以包括一个或多个准则。当用户关闭含有RIA的web浏览器或页面时,就隐含地停止RIA。RIA同时遵循两个控制流,可以是以单个程序线程交错或以单独的程序线程实施。在第一控制流中,RIA尝试创建和维持与服务器的连接,并响应服务器可用数据的改变。RIA首先尝试创建连接(步骤410)。如果连接失败,就无限地再尝试连接。如果连接成功(步骤40 ,那么RIA可以订阅所有或部分的数据集(步骤40;3)。或者,服务器可以基于连接隐含地使RIA订阅数据集,在这种情况下可以跳过步骤403。除了订阅之外, RIA也可以将其他信息传送至服务器,从而构造数据传输的行为,例如在连接的更新之间或超时参数之间的最小时间。一旦已经建立连接,RIA就等待来自服务器的数据改变的通知(步骤404)。如果已经出现数据改变(步骤40 ,那么RIA以某方式处理数据(步骤407)。该处理可以是修改 RIA的内部状态、修改图形表示、播放RIA设计人员确定的声音或任何其他编程响应。如果未出现数据改变,那么RIA检查从而确定是否因为某些原因已经失去与服务器的连接。如果还未失去与服务器的连接,那么RIAl返回等待出现数据改变(步骤404)。如果已经失去与服务器的连接,那么RIA重新尝试与服务器连接(步骤401)。同时利用步骤401到步骤407,RIA也可以接收用户输入,允许用户生成可以反向传播至服务器的数据改变。RIA等待以单独的程序线程或以步骤401到步骤407多路复用的方式的用户输入(步骤420)。图4示出了单独的线程方法。如果已经出现用户输入(步骤421),那么RIA可以尝试将作为结果的数据传送至服务器。通过首先检查从而了解是否连接服务器(步骤422)。 如果连接服务器,那么RIA将新数据传送至服务器(步骤42;3)。如果未连接服务器,那么 RIA等待更多的输入(步骤420)。服务器连接的检查(步骤42 可以隐含在尝试传送数据过程中,在这种情况中实际上组合步骤422和步骤423。RIA也可以是非交互性的,因此不可接受用户输入,在这种情形中可以省略步骤 420到步骤423。参考图5,在一个实施例中,示出了数据服务器的操作方法。服务器可以同时采集来自零个或多个数据源的数据,同时提供数据给零个或多个RIA连接。两个主要控制流可以通过单独的线程实施,或通过交错单个线程内的两个流控制路径实施。为了与数据源交互,服务器必须首先创建与数据源的连接(步骤501)。通常,服务器发起与数据源的连接。在大多数情形中,数据源可以发起与服务器的连接。如果连接成功(步骤502),那么服务器开始从数据源采集数据(步骤50;3)。如果连接失败,那么服务器重新尝试与数据源连接(步骤501)。如果数据源是与服务器连接的发起人,那么步骤 501和步骤502崩溃至单个等待状态,服务器被动地等待数据源连接。数据采集(步骤503) 将遵循适合数据源的方法,并且不同于一个数据源到另一个数据源。如果来自数据源的新数据可用(步骤504),那么服务器将数据转换为服务器的内部数据表示。这使得服务器利用不同的数据表示聚集来自多个数据源的数据。在数据源、服务器、和RIA均使用相同的数据表示的简单情形中,可以省略步骤506。然后服务器尝试将数据传送至每个RIA。服务器可以首先创建连接RIA (步骤507)。如果连接一个或多个RIA,那么服务器将数据转换为适合于RIA的数据表示(步骤508),并将数据传送至连接的每个RIA (步骤509)。如果未连接RIA,那么服务器继续从数据源采集数据(步骤50;3)。服务器无限地反复执行该指令序列(步骤501-509)。当无数据接收器连接需要来自该数据源的数据的服务器时,服务器可以选择不从数据源采集数据。与从数据源采集数据同时或交错进行,服务器也管理来自RIA的连接。服务器等待来自RIA的连接(步骤520)。当RIA尝试连接服务器(步骤521)时,服务器接收连接 (步骤522),继续等待来自其他RIA的连接。当等待RIA连接时,服务器也必须确定是否已经断开现有的RIA连接(步骤523)。如果已经断开现有的RIA,那么从服务器中任何跟踪移除RIA连接(步骤524),因此未来不会尝试传送数据至已断开的RIA。服务器无限地反复执行该指令序列(步骤520-524)。当RIA尝试连接时(步骤52 ,服务器可以应用接收准则,以便于服务器可以因任何原因拒绝连接,例如认证失败或关于RIA实例的同时连接最大数的应用服务器的限制。与从数据源采集数据和管理来自RIA的新连接同时或交错进行,服务器也可以从已经连接的RIA接收数据。服务器等待数据从RIA到达(步骤530)。当新数据到达时(步骤531),服务器将该数据转换为服务器的内部数据格式(步骤53幻。然后,服务器确定当前是否连接任一 RIA(步骤53 。然后,服务器将数据转换为RIA适合接收的格式(步骤 534)和将数据传送至每个当前连接的RIA (步骤53 。服务器确定当前是否连接需要改变信息的任一数据源(步骤536)。对于需要当前连接服务器的信息的每个数据源,服务器将数据转换为适合于数据源的格式(步骤537)和传送数据(步骤538)。服务器无限地反复执行该指令序列(步骤530-538)。
对于服务器可以连接的每个数据源,可以重复地执行步骤501到步骤509。对于服务器可以从其接收连接的每个RIA,可以重复地执行步骤520到步骤524。对于每个连接的RIA可以重复执行步骤530到步骤538,或多路复用以便于步骤530立刻同时等待所有连接的RIA,或这些选项的任意组合。理解的是,可以将在图4和图5中示出的方法改进为包括额外的性能,包括RIA和数据服务器的明确停止条件;服务器能够被动等待数据源连接服务器;服务器能够主动地连接RIA ;服务器能够同时管理多个数据源的连接;服务器能够同时管理多个RIA的连接;和服务器能够同时从多个RIA接收数据。参考图6,在一个实施例中,数据服务器603能够同时管理多个RIA601的连接有利地使得RIA 601通过服务器在彼此之间进行通信。服务器将从RIA 601传送至服务器603的任何信息视为就好像RIA 601是数据源,并将数据传播至连接服务器且已经订阅数据的任何其他RIA 601。令人吃惊的是,这有效地创建进行实时互相通信的RIA网络。实际上,服务器603可以用于利用服务器支持的协议的任意组合能够在许多客户应用之间通信。参考图7,在一个实施例中,本发明的重要优势是能够呈现出RIA 701中源于通过网络无法访问的数据源的数据。在该实施例中,出现在电子表格应用(例如MicrosoftExcel) 705中的数据可以通过局域网或广域网进行传输,这在本发明之前是不可能的。Microsoft Excel的数据传输限于DDE、RTD、或通过脆弱脚本进行的ad-hoc通信。Microsoft Excel提供的协议,包括DDE、RTD、或通过脆弱脚本进行的ad-hoc通信,无法与RIA进行实时通信。本发明使得任何应用通过任何TCP/IP网络与电子表格数据进行实时通信,极大地扩大了电子表格数据单独应用范畴。与RIA701进行通信的组合能够使多个用户通过单个web浏览器连接与单个电子表格进行交互作用。这个相同功能扩展至服务器703支持的任何协议。当在web浏览器内运行RIA时,RIA必须利用web浏览器用于web浏览器。也就是说,用户将URL输入web浏览器,或点击web页面内URL的链接,引起web浏览器加载含有RIA的网页。Web浏览器为URL提供服务,例如Microsoft IIS 或Apache 。当加载和连接RIA时,事件的指令序列是用户选择web浏览器内的URL ;Web浏览器加载含有来自web服务器的RIA的页面;Web浏览器起动RIA ;RIA通过TCP/IP连接数据服务器;RIA订阅数据服务器中的数据;数据服务器开始根据订阅传送数据;数据服务器继续直到RIA断开或其停止。该指令序列要求出现web服务器,并构造为为RIA提供服务。方便的是使web服务器嵌入数据服务器内,从而降低系统组件的数量,和更加紧密地结合web功能和RIA的数据功能。本领域的技术人员将容易理解,可以执行嵌入式浏览器或单独的非浏览器主机(有时被称为RIA的脱离浏览器模式)的RIA,从而发起RIA会话。URL和web浏览器对用户不可见。因此,可以改进以上事件的指令序列的前三个步骤,从而反映这些候补实施例。在本发明中,RIA可以是利用能够利用或生成数据的RIA框架书写的人和应用。在一个实施例中,RIA显示对用户可见的实时数据。可视化组件可以是Gauge控件、趋势图、进度条、按钮、图像、和桌面应用中常见的其他可视化表示。由于存在多种可能的表示,和特定数据集的最合适的表示将不同于另一个数据集的最合适的表示,RIA应当是用户可设置的。这意味着可以为用户呈现可视化配置工具,允许用户使数据与可视化“对象”相关联。这些可视化对象的集合可以一起布置成一般用于显示相关信息的可视化“页面”。然后,用户可以创建多个页面从而显示不同组的相关信息。为了使用户能够定制数据可视化,RIA必须提供集成的或单独的定制功能,一般被称为编辑器。编辑器提供用户具体指定显示实时数据的页面的可视化设计的工具。编辑器也可以提供能够设计专门版本的可视化对象。应当由web服务器存储关于单独的可视化对象的设计和可视化网页的设计的信息。这使得用户创建可以由在web服务器的具有必要访问权限的任何其他用户查看的数据可视化。RIA与web服务器交互作用,从而存储和检索以诸如XML格式存储的文档。可以通过现有的实时数据连接或利用单独的HTTP连接执行该信息的传输。数据服务器内的内嵌 web服务器简化了该传输的实施,但不是必须的。在本发明的一个实施例中,实施本发明方法的系统包含以下的软件应用程序作为数据服务器的 Cogent DataHub (Cogent Real-Time Systems 公司);作为 web 服务 ^ 的 Cogent DataHub (Cogent Real-Time Systems &司);# ^ RIA ^g ^ ^ Microsoft Sliverlight (微软公司);作为 Microsoft Sliverlight 的协议实施层的 DataHub API for. Net (Cogent Real-Time Systems公司);作为显示web浏览器中实时数据的RIA的 DataHub WebView (Cogent Real-Time Systems公司);作为可视化对象和网页设计显示的 IIeit^W DataHub WebView (Cogent Real-Time Systems )。此外,Cogent DataHub可以发送和接收来自多个数据源的数据,包括作为电子表格应用的Microsoft Excel (微软公司);作为数据通信接口的OPC-DA服务器(不同的制造商);作为数据通信接口的OPC-UA(不同的制造商);作为数据通信接口的OPC Xi服务器 (不同的制造商);作为数据库接口的ODBC服务器(不同的制造商)。参考图8,在一个实施例中,依赖于特定的实施,零个或多个数据源连接Cogent DataHub。在本发明的可选实施例中,RIA框架可以是能够支持持续网络连接的任何RIA框架。诸如RIA框架的可选实例包括Adobe Flash 和Adobe Flex 。理解的是,其他的RIA 框架也可以是合适的。RIA可以是利用可以利用服务器的TCP/IP通信协议消耗或产生数据的RIA框架创建的任何应用程序。RIA框架可以结合web浏览器,当这种情况时,例如,HTML5支持必要的TCP通信机制。数据服务器可以是旨在从数据源采集数据或本身用作数据源的任何应用程序,只要数据服务器也提供构造的RIA可以访问的TCP/IP通信方法。数据源可以是能够生成可以转换为适合于在服务器内表示的格式的实时数据的任意应用程序或系统。数据源也可以是能够生成可以转换为适合于在服务器内表示的格式的非实时数据的任意应用程序或系统。服务器可以反复地轮询该数据或通过订阅采集该数据,从而将该数据提供给RIA,即使实在原始数据是非实时数据的情况中。例如,数据库管理系统 (DBMS) 一般是非实时的,但是可以反复地轮询数据,从而在服务器内创建周期性更新的数据集,因此为RIA提供DBMS内伪实时视点的数据。服务器和数据源可以组合成单个应用,可以是OPC-UA服务器的情况,或提供通过TCP/IP连接访问其数据的嵌入式设备的情况。Web服务器可以是能够为含有RIA的网页提供服务的任何应用程序。可以代替可以或不可以在web浏览器内运行的RIA,使用利用可以公开和与TCP/IP套接字交互的任何编译或解释计算机语言开发的程序。相似地,代替RIA,也可以利用浏览器中、脱离浏览器的主机、或通过扩展浏览器可直接执行的代码实施本发明的方法,因此浏览器、脱离浏览器的主机、或浏览器扩展可以公开和与TCP/IP套接字交互,产生持续的网络连接,和可选地,提供图形性能。
权利要求
1.一种提供实时数据给富互联网应用,即RIA,的计算机实施方法,所述方法包含提供来自数据源的数据;将来自所述数据源的数据传播至服务器;在所述服务器采集数据; 在所述RIA生成数据;创建从所述服务器到所述RIA的第一持续连接;创建从所述RIA到所述服务器的第二持续连接;将数据从所述RIA通过所述第二持续连接传播至所述服务器; 和和订阅到所订阅数据的RIA,其中所订阅数据包含在所述服务器采集的数据的至少某些数据,和其中所述服务器将所述订阅的数据通过所述第一持续连接传播至所述RIA。
2.根据权利要求1所述的方法,进一步包含将来自所述服务器的数据传播至所述数据接收器。
3.根据权利要求1所述的方法,其中所述第一持续连接和所述第二持续连接是由一个连接构成。
4.根据权利要求1所述的方法,其中所述数据源、数据接收器、和服务器是由至少一个组件构成。
5.根据权利要求1所述的方法,其中通过从包含以下的组中选择的至少一个中间设备传播所述数据软件组件、硬件组件、和网络。
6.根据权利要求1所述的方法,其中数据项在所述RIA和所述服务器之间基于订阅进行传播,以及其中响应所述数据项的改变立刻传播所述数据项。
7.根据权利要求1所述的方法,其中所传播的数据是从包含以下的组中选择的数值数据、非数值数据、配置设置、和可执行指令。
8.根据权利要求1所述的方法,其中所述RIA基于所述数据执行行为,其中所述行为是从包含以下的组中选择的用户显示的可视化表示的修改、计算、新数据的生成、现有数据的改变、数据存储、声音指示、脚本执行、数据至服务器的传播、用户可视化编程响应、和非用户可视化编程响应。
9.根据权利要求1所述的方法,其中在所述RIA生成的数据指示所述服务器执行从包含以下的组中选择的行为所述服务器内数据的修改、所述数据传播至连接所述服务器的数据接收器、脚本执行、所述数据存储至文件系统、生成新数据、新数据传播至连接所述服务器的数据接收器、修改服务器配置、修改服务器行为、用户可视化编程响应、和非用户可视化编程响应。
10.一种用于提供实时数据给富互联网应用,即RIA,的计算机系统,所述计算机系统包含处理器、输入装置、显示器、至少一个数据源、至少一个服务器;以及至少一个RIA,其中服务器包含用于从所述至少一个数据源采集数据的数据采集组件;用于发送数据至至少一个数据客户端的数据发射组件。
11.根据权利要求10所述的系统,进一步包含至少一个数据接收器。
12.根据权利要求10所述的系统,其中所述至少一个服务器进一步包含用于修改由所述数据发射组件发射的由所述数据采集组件采集的数据形式的数据修改组件。
13.根据权利要求10所述的系统,其中所述至少一个服务器进一步包含从包含以下的组中选择的一个组件数据修改组件、数据创建组件;用户界面组件;计算机文件系统交互组件;用于执行可编程行为的脚本语言组件;用于接收HTTP请求的HTTP组件;用于交换和同步数据的同步组件;用于限制采集数据的速度的第一减速组件;用于限制发送数据的速度的第二减速组件;用于检测与其他服务器失去连接和当恢复连接时重新连接其他服务器的连接组件;用于冗余地连接相同或相似信息的多个其他服务器的冗余组件;和用于移动在多个数据源之间的数据的桥接组件。
14.根据权利要求10所述的系统,其中所述数据采集组件以从包含以下的组中选择的至少一个方式采集数据经要求、通过订阅、和通过触发。
15.根据权利要求10所述的系统,其中所述数据发射组件以从包含以下的组中选择的至少一个方式发射数据经要求、通过订阅、和通过触发。
16.根据权利要求10所述的系统,其中所述至少一个数据源和所述至少一个数据服务器以至少一个计算机程序实施。
17.根据权利要求10所述的系统,其中以包含支持以下的RIA框架实施所述RIA:使第一长命TCP/IP数据连接所述服务器从而接收数据;接收来自所述服务器的数据;和将数据通过第二 TCP/IP数据连接传送至所述服务器。
18.根据权利要求17所述的系统,其中通过从包含以下的组中选择的方法从所述服务器接收数据经要求和通过订阅。
19.根据权利要求17所述的系统,其中所述第一TCP/IP数据连接和第二 TCP/IP数据连接是由一个连接构成的。
20.根据权利要求17所述的系统,其中所述第二TCP/IP数据连接是从包含以下的组中选择的长命的连接和短暂的连接。
21.根据权利要求17所述的系统,其中所述RIA框架进一步包含用于呈现表示所述数据的图形显示的支持。
22.根据权利要求17所述的系统,其中所述图形显示包含至少一个图形元件,其中所述至少一个图形元件是定制图形元件,其中所述定制图形元件是由编程人员定制的,以及其中所述定制是对RIA框架中实施的应用不进行修改。
23.一种存储指令的计算机可读存储介质,当在一个或多个计算机上执行指令时,会引起计算机执行提供实时数据给富互联网应用(RIA)的方法,所述方法包含提供来自数据源的数据;将来自所述数据源的数据传播至服务器;在所述服务器采集数据;在所述RIA生成数据;创建从所述服务器到所述RIA的第一持续连接;创建从所述RIA到所述服务器的第二持续连接;将数据从所述RIA通过所述第二持续连接传播至所述服务器;和和订阅到所订阅数据的RIA,其中所订阅数据包含在所述服务器采集的数据的至少某些数据,和其中所述服务器将所述订阅的数据通过所述第一持续连接传播至所述RIA。
24.一种具有由计算机执行权利要求1到权利要求9中任一个所述的方法的语句和指令的计算机可读存储器。
全文摘要
本发明公开了提供实时数据给富互联网应用的系统和方法。RIA框架的图形特征和联网特征连同至少一个实时数据服务器提供web浏览器的低延迟实时数据应用。在一个实施例中,在数据源生成数据,数据传播至服务器,并在服务器采集数据。创建从RIA到服务器的持续连接,RIA订阅数据,其中所订阅的数据包含在服务器采集的至少某些数据,其中当在服务器采集数据时,服务器将所订阅的数据通过持续连接传播至RIA。
文档编号H04L12/16GK102598584SQ201180004237
公开日2012年7月18日 申请日期2010年10月15日 优先权日2009年10月16日
发明者A·托马斯 申请人:瑞尔创新国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1