CN104283866B - 用于提供当前数据和以往数据给客户端的服务器系统 - Google Patents
用于提供当前数据和以往数据给客户端的服务器系统 Download PDFInfo
- Publication number
- CN104283866B CN104283866B CN201410317445.2A CN201410317445A CN104283866B CN 104283866 B CN104283866 B CN 104283866B CN 201410317445 A CN201410317445 A CN 201410317445A CN 104283866 B CN104283866 B CN 104283866B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- strategy
- time
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
一种用于处理在数据服务器(124)处接收的服务器请求(122)的方法和设备。数据服务器(124)包括策略请求处理器(140)。策略请求处理器(140)响应于在数据服务器(124)处接收的服务器请求(122)而在所述数据服务器(124)内激活。策略请求处理器(140)经配置接收多个异步数据流(701)。策略请求处理器(140)进一步经配置将在多个异步数据流(701)中的数据点合并到一起,以形成时间排序数据点(710)。策略请求处理器(140)进一步经配置使用所述时间排序数据点(710),形成根据在服务器请求(122)中确定的服务器策略(128)的基于策略的数据。
Description
技术领域
本公开一般涉及服务器系统,并且更具体地涉及与数据提供者和客户端两者通信的服务器系统。还更具体地,本公开涉及能够根据由客户端请求的策略通过服务数据给客户端,而响应于来自客户端的数据的并行请求。
背景技术
不同类型的服务器和服务器组可用于提供数据给客户端应用程序。在特定服务器上托管的数据可从任何数量的数据源接收。例如,一个或更多个服务器可用于托管在飞行期间飞机上从飞行数据记录器和采集系统获得的数据。该一个或更多个服务器可包括任何数量的实时服务器、历史服务器、实时/历史服务器和/或其它类型的服务器。
如在这里使用,“实时服务器”是仅能够提供实时数据给客户端应用程序的服务器。也可称为实时的数据的实时数据可以是在数据已经产生或收集之后基本上立即传递到客户端应用程序的数据。例如,当数据由飞行数据记录器记录时,从飞行数据记录器获取的实时服务器托管数据可以能够服务该数据给客户端应用程序,而不需要任何显著的时间延迟或处理延迟。
如在这里使用,“历史服务器”是仅能够提供历史数据或延迟数据给客户端应用程序的服务器。例如,历史服务器可从天气监视系统接收温度测量。一旦由客户端应用程序请求这些温度测量时,历史服务器可在30分钟延迟之后提供温度测量给客户端应用程序。
如在这里使用,“实时/历史服务器”是能够同时提供实时数据和历史数据两个给客户端应用程序的服务器。实时/历史服务器可接收实时数据并且能够存储实时数据作为历史数据。当实时数据被接收或服务历史数据给客户端应用程序时,实时/历史服务器可以能够服务实时数据给客户端应用程序,取决于由客户端应用程序作出的特定请求。
测试系统、监视系统、健康信息监视系统,和/或其它类型的数据收集和分析系统可使用实时服务器、历史服务器、实时/历史服务器,和/或其它类型的服务器的任何组合,以用数据服务客户端应用程序。然而,一些当前可用的服务器可能不能如所要求的快和/或有效地以客户端应用程序选择的方式来同时提供数据给多个客户端应用程序。例如,一些当前可用的服务器可能不能如所要求的快和/或有效地响应于实时数据和历史数据两个的同时请求。
此外,在一些情况下,数据流可以在服务器处异步接收。例如,一个数据流可以以一个数据率在服务器处接收,而另一个数据流可以以随着时间而变化的另一个数据率在服务器处接收。一些当前可用的实时/历史数据服务器可基于由实时/历史数据服务器的内部或外部的时钟指示的时间而将异步接收的数据同步。换句话说,这些数据服务器可能不能保存与数据相关的原始时间戳。
此外,这些当前可用的实时/历史数据服务器可能不能处理来自请求数据以客户端指定的数据率发送数据到客户端的客户端的请求,。此外,一些当前可用的实时/历史系统不可以横跨多个不同硬件可扩展或可分配。因此,期望具有考虑上述讨论的问题中的至少一些以及其它可能问题的方法和设备。
发明内容
在一个示例性实施例中,数据服务器包括策略请求处理器。策略请求处理器响应于在数据服务器处接收的服务器请求而在数据服务器内激活。策略请求处理器经配置接收多个异步数据流。策略请求处理器进一步经配置将在多个异步数据流中的数据点合并到一起,以形成按时间排序的数据点或称为时序数据点。策略请求处理器进一步经配置使用时间排序数据点形成根据在服务器请求中确定的服务器策略的基于策略的数据。在本公开的另一方面中,数据服务器可优选使用时间排序数据点和内插值接收识别的若干数据值。其中服务器管理器激活策略请求处理器,优选地策略请求处理器进一步包括输出打包器,该输出打包器使用基于策略的数据形成用于从策略请求处理器到客户端的发送的输出数据,并且更优选地,策略请求处理器服务基于策略的数据给发生策略请求的客户端,从该策略请求中服务器请求形成。其中策略请求处理器接收数据点,优选地在多个异步数据流中的数据点中的每一个包括数据值和指示时间的时间值,在该时间处数据值可获取。
在另一个示例性实施例中,服务器系统包括服务器控制器和一组数据服务器。服务器控制器经配置从客户端接收策略请求。服务器控制器进一步经配置基于策略请求而产生若干服务器请求。在该组数据服务器中的数据服务器包括服务器管理器和策略请求处理器。服务器管理器响应于接收在若干服务器请求中的服务器请求,而激活若干策略请求处理器。在若干策略请求处理器中的策略请求处理器经配置接收多个异步数据流。在若干策略请求处理器中的策略请求处理器进一步经配置将在多个异步数据流中的数据点合并到一起,以形成时间排序数据点。在若干策略请求处理器中的策略请求处理器进一步经配置使用时间排序数据点形成根据在服务器请求中确定的服务器策略的基于策略的数据。在若干策略请求处理器中的策略请求处理器进一步经配置发送基于策略的数据给客户端作为输出数据。
在另一个示例性实施例中,提供了用于处理在数据服务器处接收的服务器请求的方法。在数据服务器内的策略请求处理器响应于接收服务器请求而激活。多个异步数据流在策略请求处理器处接收。在多个异步数据流中的数据点由策略请求处理器合并到一起,以形成时间排序的数据点。基于策略的数据使用时间排序数据点,根据在服务器请求中确定的服务器策略,由策略请求处理器形成。
特征和功能可在本公开的各种实施例中独立实现,或可以在其它实施例中组合,其中进一步的细节可参考以下描述和附图了解到。
附图说明
在所附权利要求中阐述了被认为是新颖特征的示例性实施例的特点。然而,在结合附图进行阅读时参照本公开示例性实施例的下面详细描述,将最好地理解示例性实施例以及其优选使用模式、进一步的目标及其特征,其中:
图1是根据示例性实施例以框图形式的信息管理环境的说明;
图2是根据示例性实施例以框图形式的策略请求的说明;
图3是根据示例性实施例的信息管理环境的说明;
图4是根据示例性实施例的数据服务器和服务器控制器的说明;
图5是根据示例性实施例的数据服务器的更详细说明;
图6是根据示例性实施例的配置信息的说明;
图7是根据示例性实施例在数据服务器中的服务器管理器的说明;
图8是根据示例性实施例的策略请求处理器的说明;
图9是根据示例性实施例的数据合并器的说明;
图10是根据示例性实施例的基于策略的数据管理器的说明;
图11是根据示例性实施例以流程图形式用于服务数据到客户端的过程说明;
图12是根据示例性实施例以流程图形式用于处理服务器请求的过程说明;
图13是根据示例性实施例以流程图形式用于形成基于策略的数据的过程说明;以及
图14是根据示例性实施例以框图形式的数据处理系统的说明。
具体实施方式
不同的示例性实施例识别并且考虑不同的情况。例如,示例性实施例识别并且考虑期望具有这样的服务器系统,其能够服务多个客户端应用程序并且响应来自这些客户端应用程序的实时数据和/或历史数据的同步请求。此外,示例性实施例识别并且考虑期望具有这样的服务器系统,其能够将发送到客户端应用程序的数据相对于时间而同步,或根据由数据表示的参数或信息或数据内容对数据排序。
例如,服务器可以大约每秒1000个样本的数据率接收由第一传感器装置产生的第一输出信号的样本,并且以大约每秒500个样本的数据率接收由第二传感器装置产生的第二输出信号的样本。然而,客户端应用程序可可以要求以每秒大约100个样本的数据率接收第一输出信号的样本和第二输出信号的样本。示例性实施例识别并且考虑期望具有这样的服务器,其在客户端指定的数据率处以临时同步的方式处理这些样本并且发送请求数据给客户端应用程序。因此,示例性实施例提供用于处理来自客户端的数据请求的服务器系统。该服务器系统在下面的图1中描述。
现参考附图,并且更具体地参考图1,其根据示例性实施例,以框图的形式示出了信息管理环境的说明。信息管理环境100包括服务器系统102、一组客户端104和一组数据提供者106。如此处使用的,一“组”项目可以是一个或更多个项目。以该方式,一组客户端104可以是一个或更多个客户端,并且一组数据提供者106可以是一个或更多个数据提供者。
服务器系统102接收并且存储来自一组数据提供者106的数据。一旦请求,服务器系统102然后服务该数据给一组客户端104。在一组数据提供者106中的数据提供者可包括硬件、软件或两者的组合。例如,如在这里使用,在一组数据提供者106中的数据提供者采取监视系统、健康监视系统、分布式数据采集系统、传感器装置、由多个传感器装置组成的传感器系统、计算机、成像系统、监测系统、服务器、不同的服务器系统、电子邮件应用程序、网络(Web)应用程序,或其它类型的数据源的形式。
此外,在一组客户端104中的客户端可包括硬件、软件或两者的组合。例如,在一组客户端104中的客户端可采取台式计算机、手提式计算机、平板计算机、移动电话、个人数字助理、处理器单元、微芯片、集成电路、应用软件、计算机程序、数据稳定系统、显示装置、可视化工具、数据查看器、可视化界面程序、虚拟现实系统,或其它类型的数据请求者的形式。当客户端由软件整体组成时,客户端可称为客户端应用程序。
在该示例性实施例中,服务器系统102包括服务器控制器108和一组数据服务器110。在一组数据服务器110中的数据服务器可使用硬件、软件或两者的组合实现。在一个示例性示例中,在一组数据服务器110中的每一个数据服务器可在不同硬件装置中实现。然而,在其它示例性示例中,两个或更多个数据服务器可作为相同硬件装置的部分来实现。
服务器控制器108可经配置与在一组数据服务器110中的每一个数据服务器建立通信。在一些情况下,服务器控制器108可相对于一组数据服务器110而在远程定位的硬件中实现。在其它情况下,服务器控制器108可在作为一组或更多组数据服务器110的相同硬件中实现。
此外,服务器控制器108可经配置与在一组客户端104中的每一个客户端以及在一组数据提供者106中的每一个数据提供者建立通信。例如,服务器控制器108可确定在一组数据服务器110中的一个或更多个数据服务器,在一组数据提供者106中每一个数据提供者发送数据给所述数据服务器110。
作为一个示例性示例,服务器控制器108可确定在一组数据提供者106中的数据提供者111发送数据给在一组数据服务器110中的特定数据服务器。在一些情况下,该特定数据服务器可经配置从在一组数据提供者106中多于一个的数据提供者接收数据。此外,取决于实现,数据提供者111可由服务器控制器108控制,从而同样发送数据到一组数据服务器110中的一个或更多个其它数据服务器。
数据提供者111可发送数据的相同部分给所有这些数据服务器和/或发送数据的不同部分给不同的数据服务器,取决于实现。例如,但不限于,数据提供者111可发送数据的一部分给一个数据服务器,并且然后发送数据的相同部分给另一个用于备份的数据服务器。在第一数据服务器变得不可用或不可访问时,该其它数据服务器然后可用作备份数据服务器。
在一个示例性示例中,服务器控制器108可确定数据提供者111发送数据到一组数据服务器110中的数据服务器124。数据服务器124可包括服务器管理器130、接收器132和存储系统134。服务器管理器130可与服务器控制器108通信。服务器管理器130可控制接收器132和存储系统134。
在数据服务器124处从在一组数据提供者106中的数据提供者接收的任何数据可在接收器132处接收。服务器管理器130可确定何时接收器132开始接收数据,以及何时接收器132停止从数据提供者接收数据。在一些情况下,服务器管理器130可基于来自服务器控制器108的命令,控制在接收器132处的数据接收。
在该示例性示例中,数据服务器124可以被指定为从数据提供者111接收数据点135。数据点135可以在任何数量的数据流中异步接收。每一个数据流可包括随时间接收到的多个数据点。如本文所用,“数据点”,诸如在数据点135中的数据点136,包括数据值137和时间值138。数据点135可以异步地接收,因为不同的数据流可具有不同的数据速率。
数据值137是用于参数的值。如本文所用,“参数”可以是测量、信号、特性,或一些其它类型的可测量性质或特征。数据值137可包括任何数量的位。不同类型的参数示例可包括,但不限于,温度、湿度、速度、高度、航向、燃料容量、重量、光强度、功率,或其它类型的参数。数据点135可包括用于一个或更多个参数的数据点。
时间值138是指示获得数据值137的时间的值。数据值137“获得”的时间可以是以数字形式获得或生成数据值137的时间。在某些情况下,时间值138可以被称为采集时间值或采集时间戳。此外,时间值138可以是相对于一些参考时钟的时间。在一个示例性示例中,每一组数据提供者106可被同步到该参考时钟。
在一个示例性示例中,数据提供者111可以在数据提供者111获得数据点135之后,立即发送数据点135到数据服务器124,而不会有在用于该类型数据所选容差外部的任何时间延迟或处理延迟。在这种方式中,数据点135可以被称为当前数据点、现场数据点、实时数据点或接近实时的数据点。
此外,数据提供者111可以被配置为使得数据点135以每个参数单调增加的时间排序发送到接收器132中。换句话说,对于特定的参数,所有的数据点可相对于时间而有序接收,其中最早获得的数据点在数据服务器124处被首先接收。
然而,在某些情况下,用于不同参数接收的数据点可以不相对于时间排序。换句话说,甚至当第一数据点具有晚于用于第二参数的时间值的时间值时,在用于第二参数的第二数据点之前,用于第一参数的第一数据点可以在接收器132处接收。然而,用于该第一参数的所有数据点可以按时间排序接收,并且用于第二参数的所有数据点可以按时间排序接收。
此外,用于数据点135的数据值可以已在不同数据速率处获得。例如,用于一个参数的数据值可以已经在与用于另一个参数的数据值不同的数据速率处获得。在这种方式中,用于数据点135的数据值可以已经以异步方式或以非确定的方式获得。
当然,在其它情况下,用于数据点135的数据值可以已经同步获得。作为一个示例性示例,数据点135可以包括用于两个参数的数据点。用于这两个参数的数据值可以已在同一指定的数据速率处获得。在这种方式中,用于数据点135的数据值可以已同步或在预定的数据传输速率处获得。
在这个示例性的示例中,存储系统134从接收器132接收的数据点135并且存储数据点135。一旦数据点135存储在存储系统134中,其可以被称为所存储的数据点139。在存储数据点139中的每一个存储数据点可以保存原始数据点的数据值和时间值。在某些情况下,所存储的数据点139也可以被称为历史数据点或记录的数据点。
存储系统134可以采取许多不同的形式。在一个示例性示例中,存储系统134可以包括高速缓存系统和磁盘存储。当然,任何数量的磁盘存储装置、任何类型的存储器,和/或其它类型的数据存储装置可以被包括在存储系统134中。
在这种方式下,服务器控制器108可以管理从一组数据提供者106到一组数据服务器110的数据分布。服务器控制器108也可以管理从一组数据服务器110到一组客户端104的数据分布。
例如,服务器控制器108可以被配置为从一组客户端104接收和处理任意数量的策略请求。如本文所用,“策略请求”是一种手段,通过该手段诸如一组客户端104中的一个的客户端可评估来自一个或更多个数据服务器,诸如一组数据服务器110的数据。特别地,策略请求是用于根据策略的数据请求。
如本文所用,“策略”是用于描述其中将数据传送到客户端的方式的词。换句话说,策略描述数据服务器如何控制响应于来自客户端数据的请求而传递数据到客户端的方式。通过指定策略请求内的特定策略,客户确定客户端需要接收数据的方式。在下面的图2中描述了其中策略请求可以被实现的方式示例。
在一个示例性示例中,服务器控制器108从在一组客户端104的客户端114接收策略请求112。当客户端114需要评估在一组数据服务器110上托管的数据时,客户端114生成策略请求112。
策略请求112是根据策略118的用于数据的请求。策略118可以指示如下中的至少一个:数据类型、用于数据的时间和/或日期范围、数据发送到客户端114的格式、数据存储、排序、格式化,和/或在发送到客户端114之前以其它方式处理的方式、数据将发送到客户端114的指定数据速率或者用于数据将服务于客户端114的一些其它类型的指令或要求。
如本文所用,当短语“至少一个”与项目的列表一起使用时,其意思是一个或更多个所列项目的不同组合可被使用,并且可以仅需要列表中的一个项目。该项目可以是一个特定对象、东西或者类别。换句话说,“至少一个”是指项目的任何组合或项目数可以被从列表中使用,但不需要列表中的所有项目。
例如,“项目A、项目B和C项中的至少一个”可以指项目A;项目A和项目B;项目B;项目A、项目B和项目C;或项目B和项目C。在某些情况下,“项目A、项目B和C项中的至少一个”可以指,例如,但不限于,两个项目A、一个项目B以及十个项目C;四个项目B和七个项目C;或一些其它合适的组合。
响应于从客户端114接收策略请求112,服务器控制器108可确定一组数据服务器110中的哪一个或哪些个正托管由客户端114正请求的数据。在某些情况下,一个数据服务器可以托管所有请求数据。在其它情况下,一个数据服务器可以托管所请求数据的第一部分,而另一数据服务器托管请求数据的第二部分。
对于确定作为托管所请求数据的某些部分的一组数据服务器110中的每一个数据服务器,服务器控制器108可转发关于策略请求112的信息到数据服务器。这个信息可以被称为策略请求信息,并且可以以服务器请求的形式发送到数据服务器。例如,服务器控制器108可确定数据服务器124作为托管所请求数据的一部分。如上所述,这部分可以是所请求数据的一些或全部。在该示例性示例中,服务器控制器108可生成用于数据服务器124的服务器请求122,并且发送服务器请求122给数据服务器124。
如图所示,服务器请求122可以是根据服务器策略128的用于数据的请求。服务器策略128可包括策略118的一部分,该策略118对应于在数据服务器124上托管的请求数据的一部分。换句话说,服务器策略128可指示数据服务器124将服务数据到客户端114的方式。
在这个示例性示例中,数据服务器124接收并处理服务器请求122。具体地,服务器管理器130可以从服务器控制器108接收服务器请求122。当服务器管理器130接收服务器请求122时,服务器管理器130激活多个策略请求处理器141,以处理服务器请求122。如本文所用,“多个”项目可以包括一个或更多个项目。在这种方式下,多个策略请求处理器141可以包括一个或更多个策略请求处理器。
多个策略请求处理器141可以被配置收集由客户端114请求的数据,并且然后将此数据发送到客户端114。策略请求处理器140可以是若干策略请求处理器141中的一个示例。基于服务器请求122,服务器管理器130确定策略请求处理器140是否是直接从接收器132或从存储系统134收集该数据。
此外,服务器管理器130发送处理程序策略142到策略请求处理器140,确定策略请求处理器140是否直接从接收器132或从存储系统134接收该数据,在某些情况下,处理策略142还可以确定数据将要被接收的所选参数143。
通过策略请求处理器140接收的数据可以被称为输入数据点144。当输入数据点144将从接收器132接收时,服务器管理器130命令接收器132发送在接收器132处正接收的数据点135的部分或全部到策略请求处理器140。在该方式中,随着数据点135在接收器132处接收,除了发送数据点135到存储系统134,接收器132发送在接收器132处接收的一些或全部数据点到策略请求处理器140,以形成输入数据点144。
在一个示例性示例中,接收机132可以发送在接收器132处接收的每一个数据点到策略请求处理器140。在另一个示例性示例中,接收器132可以仅发送与在处理程序策略142中指定的所选参数143对应的数据点部分135到策略请求处理器140。
当输入数据点144将从存储系统134接收时,服务器管理器130可确定从存储系统134中的哪个存储装置或存储单元,存储的数据点139的该部分要被检索。策略请求处理器140可以检索存储的数据点139的这部分,以形成输入数据点144。
策略请求处理器140可以在每个参数单调增加的时间处接收输入数据点144。然而,用于不同参数的输入数据点144可以不按时间排序。由于策略请求处理器140接收输入数据点144,策略请求处理器140将用于不同的参数的数据点合并到一起,以形成时间排序的数据阵列146。时间排序的数据阵列146可以是数据点的单个阵列,其中所有的这些数据点相对于该时间排序,而无论数据点对应的参数。
策略请求处理器140可处理时间排序的数据阵列146,以形成发送到客户端114的输出数据156。处理程序策略142可以确定数据是否以异步方式或以同步方式发送到客户端114。
当数据以异步方式发送给客户端114时,策略请求处理器140发送在时间排序的数据阵列146中的每一个数据点到客户端114。发送到客户端114的每一个数据点可以包括指示获得数据点的时间的原始时间值。
当数据以同步方式被发送到客户端114时,策略请求处理器140可以使用时间排序的数据阵列146和在策略处理程序142中指示的指定数据速率而形成一组基于策略的数据帧148。在一组基于策略的数据帧148的每一个基于策略的数据帧可以与事件的发生关联。
该事件也可以被称为触发。该事件可以是,例如,但不限于,时间间隔、数据触发事件、时间触发事件或一些其它类型事件的满期。数据触发事件可以例如是,但不限于,变化到高于或低于某些选定阈值的数据值、已被确定的选定的若干重复数据值或一些其它类型的触发。
基于策略的数据帧150可以是在用于特定事件形成的一组基于策略的数据帧148中基于策略的数据帧的示例。基于策略的数据帧150可以包括若干数据值152和时间值154。时间值154可以是在特定事件发生时的时间。在一个示例性示例中,事件可以是基于所指定的数据速率的时间间隔的流逝。若干数据值152可以包括在时间值154处对于所选参数143中的每一个参数的上一个已知的数据值。
在这种方式下,策略请求处理器140根据处理器142形成一组基于策略的数据帧148,以使得在一组基于策略的数据帧148中的数据点可以以客户端114请求的方式呈现给客户端114。因此,相同的数据可以以许多不同的方式呈现给客户端114,取决于处理程序策略142。
策略请求处理器140可以以输出数据156的形式发送一组选择策略的数据帧148到客户端114中。输出数据156可包括被随着时间发送到客户端114的一个或更多个数据包。
在一些示例性示例中,服务器管理器130可以在每个接收到的服务器请求时仅激活一个策略请求处理器。然而,在其它示例性示例中,服务器管理器130可以激活多于一个的策略请求处理器来处理单一的服务器请求。例如,若干策略请求处理器141的每一个可以由服务器管理器130产生,以服务服务器请求122的特定部分。
在这种方式中,对于源自于一组客户端104中的客户端,诸如客户端114的数据的所有请求,可以由服务器控制部108接收并由服务器控制器108适当地分配到一组数据服务器110。然后,这些数据的请求可以由直接发送所请求数据到客户端的策略请求处理器来处理。策略请求处理器诸如策略请求处理器140和客户端诸如客户端114之间的通信可以仅在该示例性示例中的一个方向上发生。此外,在该示例性示例中策略请求处理器从不直接与服务器控制器108通信。
一组数据的提供者106、服务器控制器108、一组数据服务器110,以及一组客户端104之间的通信可以使用任何数量的不同类型的通信链路来进行。例如,可以使用无线通信链路、有线通信链路、光通信链路和/或其它类型的通信链路。
因此,该示例性实施例提供服务器系统和用于处理来自客户端的策略请求的方法。例如,在图1中的服务器系统102中的一组数据服务器110可基本实时地从多个数据提供者接收和记录数据流。使用策略请求处理器,一组数据服务器110可以以非常高的数据速率处理数据并且服务该数据给客户端,诸如在图1中的一组客户端104。
此外,一组数据服务器110可以能够在不同数据速率时同时服务数据到不同的客户端。服务数据给一组客户端104的潜在数据速率可以仅由所使用的硬件约束。采用在图1中所描述的服务器系统102,数据延迟可显著降低到选定的容差范围内。
此外,服务器系统102可以是分布式的且可扩展的,以适应任意数量的数据提供者和/或任何数量的客户端的需求。例如,为了增加数据流量,新的数据服务器可以被添加到一组数据服务器110。由服务器控制器108执行的管理功能可以允许新的数据服务器无缝添加到一组数据服务器110,而没有对服务器系统102的整体结构做任何不需要的修改。
现在参照图2,根据示例性实施例以框图形式描绘了来自图1的策略请求112的说明。在该示例性示例中,示出了由在图1中的客户端114产生的策略请求112可以实现的一种方式示例。
策略请求112可以包括,例如,但不限于,客户端标识符200和策略118。客户端标识符200可以是,例如,用于确定请求访问来自服务器系统102数据的特定客户端的字段。在这个示例性示例中,对于客户端114的一些类型标识符可以在客户端标识符200中被输入。
策略118包括限定在图1中的服务器系统102如何服务数据到客户端114的所有细节。如图所示,策略118可包括输出模式202、若干属性204、特定策略的属性细节205、若干参数206和若干参数块208,其每一个可以由客户端114和/或客户端114的用户限定。
输出模式202可以是字段,用于在发送到客户端114的数据的每一帧中确定将要输出到客户端114中的数据模式。输出模式202中输入的值可以确定若干不同模式中的一个,其可以包括,但不限于,默认模式210、最小和最大数据模式211、线性内插模式212、二阶内插模式214、最后的值模式216和加权平均三次内插模式218。相对于若干属性204,这些模式可以在如下描述。
如本文所用,诸如若干属性204中的一个“属性”,可以定义数据如何被请求、数据如何被格式化、数据如何被传递和/或客户端114期望接收数据的方式的其它方面。若干属性204可以包括在确定数据传递到客户端114的方式中使用的若干标志。在一个示例性示例中,若干属性204可以包括数据模式标志220、时间戳模式标志222、协议模式标志223、帧模式标志224、触发模式标志226和间隙检测模式标志228。每一个这样的标志可以被设置为定义策略118的某些方面的值,以及哪些其它信息包括在策略118中。
用于数据模式标志220输入的值确定客户端114是否在实时数据或历史数据中被关注。当数据模式标志220设置为实时数据时,策略118被认为是实时策略,并且策略请求112被认为是实时策略请求。当数据模式标志220设置为历史数据时,策略118被认为是历史策略,并且策略请求112被认为是历史策略请求。
用于时间戳模式标志222输入的值确定客户端114是否在用于指示时间的数据点的时间值中被关注,在该时间处获得数据点或校正时间值。例如,在某些情况下,用于数据点136的时间值138可以迟于用于数据点136获得数据值137的实际时间。这种延迟可以归因于通过模拟滤波器或一些其它类型的处理延迟的数据值137的处理。在服务器系统102内,诸如在图1中的策略请求处理器140的策略请求处理器,能够在发送数据点136和/或数据点136的数据值137到客户端114之前,校正用于数据点136的时间值138。
在这个示例性示例中,用于协议模式标志223输入的数值可以确定当发送数据到客户端114时所使用的网络协议。作为一个示例性示例,用于协议模式标志223输入的数值可指定将使用的用户数据报协议(UDP)或传输控制协议(TCP)任一个。
用于帧模式标志224输入的数值可以确定分帧是否被启用或禁用。例如,当分帧被启用时,在大约特定时间处或在特定时间范围内获得的用于所选一组参数的所有数据点可被成帧并且与单一时间值相关联。在这种方式中,数据可以被同步输出到客户端114。然而,当分帧被禁用时,每一个数据点可以采用数据点的原始时间值被单独发送到客户端114。以这种方式,当分帧被禁用时,数据可以被异步输出到客户端114。
此外,用于触发模式标志226的输入数值确定了如何把数据输出到将被触发的客户端114。例如,数据可以在某些特定的时间间隔或基于在数据流内发生的某些指定数据值来触发。换句话说,该数据可以是时间触发或数据触发的。
用于间隙检测模式标志228的输入值可确定间隙检测模式是否被启用或禁用。当启用了间隙检测模式,过时的警报可以在当没有用于特定参数的数据值在某个所选时间周期内发送到客户端114时被发送到客户端114。
在这个示例性的示例中,在策略118中包括的特定策略的属性细节205可以提供与若干属性204中的不同属性相关的细节。例如,特定策略的属性细节205可以包括数据模式细节230、时间戳模式细节232、帧模式细节234、触发模式细节236和间隙检测模式细节238,其可能包括分别基于用于数据模式标志220、时间戳模式标志222、帧模式标志224、触发模式标志226和间隙检测模式标志228输入的值的细节。
例如,当数据模式标志220设置为实时数据时,数据模式细节230可以包括同步时间240。同步时间240可以是实时策略同步的时间。此外,当数据模式标志220被设置用于实时数据时,数据模式细节230可包括数据集241、开始时间242、结束时间244和传送速率246。数据集241可以是用于指定特定数据集的字段,从该数据集历史数据被请求。开始时间242和结束时间244可以是用于指定时间范围的字段,具有在该时间范围内的数字值的存储的数据在该时间范围内正被请求。输送率246可以是用于指定数据将被发送到客户端114的速率的字段。
当时间戳模式标志222被设置为使得校正后的时间值是被发送到客户机114,时间戳模式细节232可以包括延迟时间248。延迟时间248可以是字段,该字段用于确定最大延迟时间以等待将数据帧或者数据点输出到客户端114之前的数据。延迟时间248可以确定出允许对于在用于数据点的时间值中已知处理延迟校正的时间量限制。
当帧模式标志224被设置以使得分帧被禁用时,帧模式细节234可以不包括任何细节。然而,当帧模式标志224被设置以使得分帧被启用时,帧模式细节234可以包括时间刻度间隔250和过时的数据标志252。
时间刻度间隔250是用于指定最小间隔(典型地以纳秒为单位)的字段,在该处时间刻度将作为数据点发送到客户端114。在一个示例性示例中,时间刻度可以是包含空数据值和空时间值的数据点。在其它情况下,时间刻度可以是包含空数据值和表示时间刻度形成的时间的时间值的数据点。过时的数据标志252可以是字段,其用于指定服务器系统102是否转发用于参数的所有数据值,所述参数在触发事件或仅非过时数据值时已经过时。
当触发模式标志226被设置为以使得该数据要被时间触发,触发方式细节236可包括触发间隔254。触发间隔254可以字段,其用于确定时间间隔(典型地以纳秒为单位),在该时间间隔时服务器系统102将触发将要输出到客户端114的数据帧或数据点。该时间间隔可以被称为触发间隔,并且在该“触发”发生时的时间可以被称为“触发时间”。
当触发模式标志226被设置以使得数据要被数据触发时,触发模式细节236可包括触发参数标签256、触发动作258、触发输入掩码260、触发模式262和触发输出掩码264。触发参数标签256可以字段,其用于确定触发将导致数据帧或数据点被发送到客户端114的参数。该参数可以被称为触发参数。诸如例如0、NULL或一些其它默认值可以在触发参数标签256输入,以指示用于任何和所有参数的数据帧或数据点可以在触发时间被输出。
触发动作258可以是字段,其用于确定将导致数据帧或数据点被输出到客户端114的触发或触发动作。触发可以选自如下的一个,例如但不限于,正在接收的数据、变化的数据、无变化的数据、与模式匹配的数据以及与模式不匹配的数据。接收的数据可以包括由在策略请求处理器处被接收的触发参数标签256确定参数的数据值。数据变化可以包括用于触发参数的数据值中的至少一个位。
例如,所有具有用于触发参数的相同的数据值的数据点可以在策略请求处理器处被接收。当用于触发参数的数据值改变至少一个位时,触发发生并且具有不同数据点的数据帧或数据点可发送到客户端114。
无变化的数据可包括在某个选择时间周期内无变化的触发参数的数据值。在这种方式中,触发可以是对于触发参数不变的数据。
用于触发输入掩码260和触发模式262的条目可以用于评估是否已经发生与触发模式匹配的数据或不与触发模式匹配的数据的触发。触发输入掩码260可以字段,其用于限定用于触发参数的数据值内的位,触发模式可应用到该触发参数。这些位可以被称为输入掩码。触发模式262可以字段,其确定要施加到输入掩码内位的触发模式。
因此,当触发动作258被设置为与模式匹配的数据时,在输入掩码已经被应用到数据值之后,当用于触发参数的数据值匹配触发模式时,数据帧或数据点被输出到客户端114。相反地,当触发器动作258被设置不与模式匹配时,在输入掩码已经被应用到数据值之后,当用于触发参数的数据值不匹配触发模式时,数据帧或数据点被输出到客户端114。
触发器输出掩码264可以字段,其确定如果触发已经发生,用于触发参数的数据值内的位输出到客户端114。这些位可以被称为输出掩码。一旦触发已发生时,输出掩码可应用于导致触发器发生的数据值,并且处于输出掩码内的位可输出到客户端114。
在这个示例性的示例中,当间隙检测模式标志228被设置成使得间隙检测模式被启用,间隙检测模式细节238可以包括间隙因子266。间隙因子266可以字段,其确定过时数据量,服务器系统102将假定该过时数据量是在数据中的“间隙”。换句话说,用于间隙因子266的条目定义时间周期,在该时间周期过程中没有用于参数的数据值可到达要考虑“间隙”的策略请求处理器。该时间量可以称为间隙因子。
在策略118中的若干参数206可以字段,其用于指定数据被请求的若干参数。若干参数206可以是例如,除零以外的任何正整数值。若干参数块208中的每一个可以是一个或更多个字段的块,其提供信息用于输出相应参数的数据。
参数块268可以是若干参数块中的一个的示例208。参数块268可以包括参数标签270、输出数据类型271和输出数据的大小272。参数标签270可以字段,其用于确定特定的参数。输出的数据类型271可以字段,其用于确定相对于特定参数在输出数据到客户端114中要使用的数据格式。输出数据大小272可以字段,其用于确定由输出数据类型271指定的每一个数据类型的大小。
当用于输出模式202的输入值选择最小和最大数据模式211时,服务器系统102选择具有触发间隔内最小和最大数据值的数据点,用于在若干参数块208中确定的每一个参数。用于这些数据点的数据值和时间值然后可基于特定策略的属性细节205和若干参数块208,用于形成将要发送到客户端114的输出数据156。
当用于输出模式202的输入值选择线性内插模式212时,在触发时间领先于前面的数据点和紧随触发时间的数据点可被选择用于在若干参数块208中确定的每一个参数。用于触发时间的数据值可使用针对这两个数据点的数据值和时间值内插。该数据值和触发时间可基于特定策略的属性细节205和若干参数块208,用于形成将要发送到客户端114的输出数据156。
此外,当用于输出模式202输入的值选择二阶内插模式214时,在触发时间领先于前面的两个数据点和紧随触发时间的两个数据点可被选择用于在若干参数块208中确定的每一个参数。用于触发时间的数据值可使用针对这四个数据点的数据值和时间值内插。该数据值和触发时间可基于特定策略的属性细节205和若干参数块208,用于形成将要发送到客户端114的输出数据156。
当用于输出模式202输入的值选择最后值模式216时,在触发时最近的数据点被选择用于在若干参数块208中确定的每一个参数。该数据点可以是具有等于触发时间的时间值的数据点。用于该数据点的数据值基于特定策略的属性细节205和若干参数块208,用于形成输出数据156。
当用于输出模式202的输入值选择加权平均三次内插模式218时,领先于触发时间的这三个数据点和立即紧随触发时间的三个数据点被选择用于在若干参数块208中确定的每一个参数。在触发时用于每一个参数的数据值可使用这六个数据点的数据值和时间值内插。该数据值和触发时间可基于特定策略的属性细节205和若干参数块208,用于形成将要发送到客户端114的输出数据156。
在某些情况下,用于输出模式202的输入值可以选择默认模式210。在一个示例性示例中,默认模式210可以是最后值模式216。当然,一些其它类型的模式也可以在其它实施例中选择为默认模式210。此外,除了所描述的一些,其它模式可以通过用于输出模式202的输入值在其他示例性实施例中来选择。
以这种方式,客户端114可以能够非常具体地限定通过使用策略118数据将被输出到客户端114的方式。可由特定服务器处理的策略118的部分可以被称为服务器策略,诸如图1中的服务器策略128。此外,由策略请求处理器诸如图1中的策略请求处理器140将处理服务器策略的部分策略请求处理器可以被称为处理程序策略,诸如图1中的处理程序策略142。
在某些情况下,服务器策略128可以包括所有的策略118。此外,在某些情况下,处理程序策略142可以包括所有的策略118。(处理由客户端114生成的策略请求112)由服务器系统102产生的每一个策略请求处理器可以使用包括在策略118内的细节,来控制在其中数据被输出到客户端114的方式。
诸如那些在若干属性204中描述的任何属性组合可以被包括在策略中。此外,若干属性204的任何组合和/或置换可被包括在策略中。更进一步地,在特定策略的属性细节205中描述的任何细节组合和/或置换可以被包括在策略中。
图1中的信息管理环境100和图1-2中的策略请求112的说明并不意味着暗示对于示例性实施例实现方式的物理或结构限制。可以使用除了或替换所述组件的其它组件。某些组件可以是可选的。此外,呈现的块是为示出一些功能组件。当这些块中的一个或更多个在示例性实施例中实施时,其可被组合、划分或组合和划分成不同的块。
现参照图3,其根据示例性实施例示出了信息管理环境的示意图。在该示例性示例中,信息管理环境300是在图1中用于信息管理环境100的一个实现的示例。
如图所示,信息管理环境300包括服务器系统302、一组数据提供者304以及一组客户端306。服务器系统302、一组数据提供者304以及一组客户端306是在图1中分别用于服务器系统102、一组示例数据提供者106以及一组客户端104的实施的示例。服务器系统302被配置为托管来自一组数据提供者304获得的数据并且一旦请求则服务该数据给一组客户端306。
在这个示例性示例中,服务器系统302包括服务器控制器308和一组数据服务器310。服务器控制器308和一组数据服务器310分别是在图1中用于服务器控制部108和一组数据服务器110的实施的示例。
服务器控制器308可与一组数据提供者304、一组客户端306以及一组数据服务器310通信。具体地,服务器控制器308可确定在一组数据提供者304中的特定数据提供者发送数据到哪一组或哪更多组数据服务器310。此外,服务器控制器308可确定特定的数据提供者是否将数据发送到多于一组的数据服务器310。
如图所示,一组数据服务器310包括第一数据服务器312、第二数据服务器314、第三数据服务器316和第四数据服务器318。一组数据提供者304包括第一数据提供者320、第二数据提供者322和第三数据提供324。一组数据提供者304可被同步到相同的时间源,以使得从一组数据提供者304发送到一组数据服务器310的数据点的时间值可以是相关的。
此外,一组客户端306包括第一客户端326、第二客户端328、第三客户端330和第四客户端332。服务器控制器308可与这些不同数据服务器、数据提供者和客户端的每一个通信。
在该示例性示例中,服务器控制器308已确定第一数据提供者320将数据发送到第一数据服务器312。服务器控制器308已确定第二数据提供者322将数据发送到第二数据服务器314。此外,服务器控制器308已经确定,第三数据提供者324将不同的数据部分发送到第二数据服务器314、第三数据服务器316以及第四数据服务器318中的每一个。在这种方式中,第二数据服务器314可以从两个不同的数据提供者接收数据。
现在参照图4,根据示例性实施例,示出了图3的第一数据服务器312和服务器控制器308的示意图。在该示例中如所示出的,服务器控制器308可包括控制器管理器402。控制器管理器402可以被配置以访问、添加和检索配置信息404。
在一个示例性示例中,配置信息404可被存储在配置数据库405中。然而,在其它示例性示例中,配置信息404可以被存储在某种其它类型的数据结构和/或在服务器控制器308外部的本地存储器中。
配置信息404可包括关于从图3中一组数据提供者304、一组客户端306以及一组数据服务器310的信息。该信息可被称为元数据(metadata)。
例如,配置信息404可以包括关于由一组客户端306的做出的策略请求的信息。此外,配置信息404可以包括关于在一组数据集提供者304中的一个或更多个数据提供者的信息,从该数据提供者中每一个数据服务器310被指定接收数据。配置信息404也可以包括关于在一组数据服务器310中的一个或更多个数据服务器的信息,每一个数据提供者304将发送数据到所述数据服务器。
如图所示,控制器管理器402可以被配置成与第一客户端326进行通信。该通信可以是在控制器管理器402与第一客户端326之间的双向通信。在某些情况下,只有在控制器管理器402与第一客户端326之间的一个通信连接可以在任何给定时间点被允许。
在一个示例性的示例中,第一客户端326发送策略请求406到控制器管理器402。策略请求406可以是图1中策略请求的一个实施的示例。此外,策略请求406可以包括以类似于图2中描述的策略118的方式实现的策略。控制器管理器402可以被配置为基于策略的请求406,生成多个服务器请求。
例如,控制器管理器402可以使用配置信息404,以确定由策略请求406所请求的数据的至少一部分被托管在第一数据服务器312上。控制器管理器402生成服务器请求408并且发送服务器请求408到第一数据服务器312。服务器请求408可以包括服务器策略,该服务器策略包括由第一数据服务器312将要处理的策略要求406中策略的部分。
此外,控制器管理器402发送消息给第一客户端326,让第一客户端326知道第一数据服务器312将发送请求数据的至少一部分到第一客户端326。在这种方式中,第一客户端326可以能够准备接收来自第一数据服务器312的数据。例如,第一客户端326可以发起建立第一数据服务器312内的通信链路。
如图所示,第一数据服务器312包括服务器管理器410、接收器412和存储系统414。服务器管理器410、接收器412和存储系统414可以分别是图1中用于服务器管理器130、接收器132和存储系统134的实施的示例。
在该示例性示例中,接收器412从第一数据提供者320接收数据点416。数据点416可以在一个或更多个数据流被接收。例如,数据点416可以在两个数据流被接收,其中第一数据流由用于第一参数的数据点组成,而第二数据流由用于第二参数的数据点组成。
当接收器412接收数据点416时,接收器412发送数据点416到存储系统414。一旦数据点416存储在存储系统414中,其可以被称为所存储的数据点418。
服务器管理器410控制接收器412何时开始和停止接收来自第一数据提供者320的数据点416。此外,在某些情况下,服务器管理器410可以控制其中数据点416被存储在存储系统414内的方式。
在该示例性示例中,服务器请求408可以由服务器管理器410接收。服务器请求408可以是用于选定参数的数据的请求。服务器管理器410可确定服务器请求408是否是用于所选参数的实时请求或历史请求。
如本文中所使用的,“实时请求”可以是用于以基本上实时或接近实时的数据的请求。更具体地讲,实时请求可以是当数据获得时接收数据的请求,而没有任何不经意的或不期望的处理延迟。以这种方式,随着第一数据服务器312从第一数据提供者320接收数据点416,当服务器请求408是实时请求时服务服务器请求408可包括将数据点发送到第一客户端326,而没有任何非故意或不期望的处理延迟。
在某些情况下,实时请求可以采取延迟的实时请求的形式。延迟的实时请求可以被请求接收具有施加到数据点的时间值的某种类型延迟的数据点。这个延迟可以由客户端来选择。在一些情况下,延迟可以被应用于校正与用于特定参数的数据值采集相关联的滤波器延迟。
如本文所用,“历史请求”可以是在某个选定时间周期内获取的数据请求。例如,历史请求可以是用于在过去的所选时间周期内所选参数获取的数据点的请求。
此外,实时请求和历史请求可以采取每一个样本请求或帧请求的形式。当服务器请求408采取每一个样本实时请求的形式时,对于每一个所选择的参数在接收器412处接收的每一个数据点可以被发送到第一客户端326。当策略请求406采取每一个样本历史请求的形式时,对于在所选时间周期内获得的所选参数,在存储系统414中存储的每一个数据点可以被发送到第一客户端326。采用这些类型的每一个样本请求,发送到第一客户端326的每一个数据点可以与该数据点相关的原始时间值一起发送。
采用帧请求,类似于图1中的基于策略的数据帧150的多个基于策略的数据帧被发送到第一客户端326。每一个基于策略的数据帧(150)可响应事件发生而形成。该事件可以是,例如时间间隔的流逝。在相应事件发生时,形成的每一个基于策略的数据帧(150)可以由用于每一个选定参数的上一次已知的数据值组成。
响应于接收服务器请求408,服务器管理器410处理服务器请求408。在该示例性示例中,服务器请求408采取实时请求或历史请求中任一个的形式,但不能使用两个。在这种方式中,仅需要一个策略请求处理器服务于服务器请求408。然而,在其它示例性示例中,服务器请求408可包括实时请求和历史请求两者。在这些示例中,服务器管理器410需要激活至少两个策略请求处理器以服务于服务器请求408。
如图所示,服务器管理器410激活策略请求处理器420来处理服务器请求408。策略请求处理420可以是图1中策略请求处理器140一个实施的示例。
服务器管理器410确定接收器412或存储系统414是否为用于策略请求处理器420的输入数据点421的源。当服务器请求408是实时请求时,服务器管理器410选择接收器412作为用于输入数据点421的源。当服务器请求408是历史请求时,服务器管理器410选择存储系统414作为用于输入数据点421的源。
当接收器412被选择作为用于输入数据点421的源时,服务器管理器410确定在接收器412处接收的数据点416的哪个部分将被发送到策略请求处理器420,作为输入数据点421。基于从服务器管理器410接收到的命令,接收器412可以发送从第一个数据提供者320接收的一些或全部数据点416到策略请求处理器420。
例如,在某些情况下,接收器412可以发送在第一数据流和第二数据流两者中接收的所有数据点到策略请求处理器420。另一示例中,接收器412可以只发送在第一数据流接收到的数据点到策略请求处理器420。
在这个示例性的示例中,在接收器412接收的每一个数据点416可以包括数据值和时间值。数据值可以是特定的参数值。例如,数据值可以是用于特定参数的测量量。如果参数是海拔高度,则数据值可能是10000英尺。时间值可以是以数字形式获得数据值的时间。
在某些情况下,数据点可以采用时间刻度的形式。时间刻度可基于某些选定的时间间隔,周期性地从第一个数据提供者320发送到接收器412。例如,时间刻度可以大约每1毫秒被发送到接收器412。时间刻度可以构成从第一个数据提供者320发送到接收器412的的数据流。
在一个示例性的示例,时间刻度可以是包含空数据值和空时间值的数据点。在其它情况下,时间刻度可以是包含空数据值和表示形成时间刻度的时间的时间值的数据点。这个时间可以相对于同一时间源,一组数据提供者304被同步到该同一时间源。在这些示例性示例中,数据服务器诸如第一数据服务器312可以被配置为仅从一个数据提供者接收时间刻度。
随着接收器412接收数据点416,接收器412可以检查时间刻度。如果已经接收到的数据点实际上是时间刻度,则时间刻度被立即发送到从接收器412接收数据点416的任何激活的策略请求处理器。时间刻度可以由策略请求处理器使用,以确定数据点是否在特定的时间间隔内获得。时间刻度可考虑用于时间参数的数据点。
如果数据点不是时间刻度,而是真正的数据点,则接收器412确定数据点是否支持参数,激活的策略请求处理器请求数据。如果数据点支持参数,激活的策略请求处理器请求数据,则接收器412将发送数据点到策略请求处理器。
当存储系统414被选择作为用于输入数据点421的源时,策略请求处理器420可以检索在存储系统414存储的一些或全部存储数据点418。例如,策略请求处理器420可以检索存储数据点的部分418,其包括在选定的时间周期内针对所产生的第一参数和第二参数两者的所有数据点。
响应于接收输入数据点421,策略请求处理器420处理输入数据点421,并且形成输出数据422以发送到第一客户端326。输出数据422可以以类似于图1中输出数据156的方式形成。
输入数据点421可以在多个数据流中的策略请求处理器420处异步接收。每一个数据流可以包括用于不同参数的数据点。例如,一个数据流可以包括,例如,用于时间参数的时间刻度。第二数据流可以包括用于特定参数的数据点。第三数据流可以包括用于不同参数的数据点。在这个示例性示例中,在策略请求处理器420处接收的每一个数据流可以相对于数据流内的时间来排序。然而,不同的数据流可以不同的数据速率接收。从而,输入的数据点421可以异步地接收。
策略请求处理器420可处理每一个数据流,并从不同的数据流中的数据点合并为相对于时间排序的数据点的单一阵列。该阵列然后可被用来形成输出数据422。在下面图8中更详细描述了过程,通过该过程策略请求处理器420可以使用输入数据点421形成输出数据422。
现在转到图5,根据示例性实施例,其示出了图4中第一数据服务器312更详细的说明。如图所示,服务器管理器410可以同时接收第一服务器请求500和第二服务器请求502。在一个示例性示例中,第一服务器请求500和第二服务器请求502可以源于由相同客户端发送的策略请求。在另一个示例性示例中,第一服务器请求500可以来自一个客户端,而第二服务器请求502可以来自另一个客户端。
第一服务器请求500可以是实时请求。第二服务器请求502可以是历史请求。服务器管理器410激活策略请求处理器处理第一服务器请求500的第一策略请求处理器504和处理第二个服务器请求502的第二策略请求处理器506。服务器管理器410控制接收器412和第一个策略请求处理器504,以使得第一策略请求处理器504从接收机412接收输入数据点。此外,服务器管理器410控制第二策略请求处理器506,以使得第二策略请求处理器506接收来自存储系统414输入的数据点。
在这个示例性示例中,存储系统414包括高速缓存存储器508、磁盘写入器510、磁盘存储器512和高速缓存队列514。当存储系统414从接收器412接收当前数据时,当前数据首先存储在高速缓存存储器508中。一旦高速缓存存储器508被填充或经过一段指定时间之后,磁盘写入器510可以开始写高速缓存存储器508中的内容到磁盘存储器512。在这种方式下,所有从接收器412发送的所有的当前数据可以通过高速缓存存储器508传递,但最终可以被存储在磁盘存储512中。在高速缓存存储器508中存储的数据和在磁盘存储器512中的存储的数据可以被称为过去数据。
磁盘存储器512可以由任何数量的数据存储设备组成,诸如,例如,但不限于,硬盘驱动器、光盘驱动器或一些其它类型的存储设备。取决于实施,磁盘存储器512可永久地存储数据和/或可以暂时存储数据。当存储在磁盘存储器512中的数据被需要时,其可被写回高速缓存存储器508。
当第二策略请求处理器506被激活时,其可以访问高速缓存存储器508,以确定由第二服务器请求502请求的服务器数据是否位于高速缓存存储器508中。如果所需的数据确实是位于高速缓存508中,则第二策略请求处理器506可以检索此数据作为输入数据。然而,如果所需的数据不在高速缓存存储器508中,则第二策略请求处理器506可以发送消息,向服务器管理器410指示如此。服务器管理器410然后可以发送命令到存储系统414,以使存储在磁盘存储器512中的过去数据写回高速缓存存储器508。一旦该数据被写回高速缓存存储器508,则第二策略请求处理器506然后可以检索此数据。
在该示例性示例中,高速缓存队列514可用于确定高速缓存存储器508的哪些元件是空的,以使得过去的数据可以从磁盘存储器512读出到高速缓存存储器508。当高速缓存存储器508是满的并且过去数据需要被从磁盘存储512写入高速缓存存储器508时,高速缓存队列514可用于确定高速缓存存储器508的哪些元件正存储最旧的数据,以使得该最旧的数据可以被重写。此外,缓存队列514可以用于确定高速缓存存储器508的哪些元件可用于存储从接收器412接收到的当前数据。
现在参考图6,根据示例性实施例,其示出了配置信息的说明。在图6中,示出了图4配置信息404的一个实施的示例。配置信息404可包括各种类型的元数据。在某些情况下,包括在配置信息404中的元数据可以通过控制器管理器402由在图3中的一组或更多组客户端306查询。
在该示例性示例中,配置信息404可以包括提供者元数据600、服务器元数据602、数据集元数据604以及客户端的元数据606。在该示例性示例中,提供者元数据600可以被用来跟踪数据提供者、由数据提供者提供的数据以及从数据提供者发送数据所到达的数据服务器。例如,提供者元数据600可以由图4中的控制器管理器402使用,以跟踪在图3中的一组数据提供者304。
提供者元数据600可以与参数元数据608相关联。参数元数据608可确定其中数据被托管在图3中服务器系统302中的不同参数。提供者元数据600和参数元数据608可用于跟踪不同类型的参数,其中每一组数据提供者304为所述参数提供数据。
服务器元数据602可以被用来跟踪数据服务器和托管在每一个这些数据服务器中的数据。例如,服务器元数据602可以由图4中的控制器管理器402使用,以跟踪图3中一组数据服务器310。服务器元数据602、提供者元数据600和参数元数据608可用于跟踪不同类型的参数,在一组数据服务器310的每一个处接收来自一组数据提供者304中的不同的数据提供者的数据。
在此示例性示例中,数据集元数据604可以被用来跟踪数据集。如本文所用,“数据集”可以是数据的逻辑块,其中时间单调增加。数据集可以覆盖任何时间块。例如,数据集可以包括在一段选定时间周期内获得的所有数据。作为一个具体例子,数据集可以表示在一天的过程中飞机操作的测试运行期间由一组数据提供者304获得的所有数据。
在每一个数据集内,随时间收集的数据点可被视为每个参数单调增加的时间排序。换句话说,随着特定的数据服务器接收用于特定数据集的数据点,用于每一个参数的所有数据点的可以相对于时间进行排序,其中最早获得的数据点在数据服务器处首先接收。
在任何给定时刻,最多只有一个数据集可以被激活。激活的数据集可以是实时数据的数据集,并且其中实时数据当前在一组数据服务器310处接收。在这个示例性例子中,只有一个激活的数据集可以存在任何给定的时间点上。然而,在其它示例性实施例中,多个激活的数据集可以存在。
数据集元数据604可以跟踪每一个数据集,其中通过图3中的一组数据服务器310接收收据。数据集元数据604可以与参数元数据608相关联,并且两者可以被用于跟踪被收集在每一个数据集的数据的参数。此外,数据集元数据604也可以与事件元数据610、条件元数据612和策略请求的元数据614相关联。事件元数据610和条件元数据612可以表示与数据集相关联的附加说明。
此外,数据集元数据604和策略请求的元数据614可以被用来跟踪由策略请求所请求的数据的特定数据集。在此示例性示例中,来自客户端的每一个策略请求可以只请求单个数据集内的数据。
客户端的元数据606可以被用于跟踪客户端。例如,客户端的元数据606可被用来跟踪图3中的一组客户端306。客户端元数据606可以与策略请求的元数据614相关联。客户端元数据606和策略请求的元数据614可以被用来跟踪由每一个客户端发出策略请求。
在这种方式下,配置信息404可以由图4中的服务器控制器308中的控制器管理器402使用,以管理一组数据提供者304、一组数据服务器310和一组客户端306。当然,在其它示例性示例中,除了和/或代替上面描述的那些元数据,其它类型的元数据可包括在配置数据库405内。
现在参照图7,根据示例性实施例,其示出了来自图4的第一数据服务器312中的服务器管理器410的图示。在这个示例性例子中,服务器管理器410可以包括内存管理器700、提供者跟踪器702、数据集跟踪器704、服务器请求跟踪器706和处理程序管理器708。
在这个示例性例子中,内存管理器700可以被配置为管理第一数据服务器312内共享的内存。例如,在图4中的存储系统414可以包括内存的一部分,其可与服务器管理器410共享。内存管理器700管理这个共享内存。此外,内存管理器700可以被配置成管理在第一数据服务器312中的任何高速缓存储器。例如,存储器管理器700可管理图5中的高速缓存存储器508。
提供者跟踪器702可以跟踪图3中一组数据提供者304中的一个或更多个数据提供者,从该数据提供者中第一数据服务器312接收数据。数据集跟踪器704可以跟踪其数据在第一个数据服务器312处接收到的数据集。服务器请求跟踪器706可以跟踪在第一数据服务器312处接收的服务器请求。此外,处理程序管理器708可以跟踪在第一数据服务器312内任何给定时间处激活的策略请求处理器。
在这种方式中,服务器管理器410可以能够有效地管理接收器412、存储系统414以及在第一数据服务器312内激活的任何策略请求处理器,如在图4和图5中看到的。此外,服务器管理器410可以能够跟踪策略请求信息,包括从在图3中服务器控制器308收到的服务器请求。
现在参照图8,根据示例性实施例,其示出了来自图4的策略请求处理器420的说明。在这个示例性例子中,策略请求处理器420包括数据合并器800、基于策略的数据管理器802、输出打包器804和发送器806。
数据合并器800可以被配置为在多个异步数据流801中接收来自图4中的输入数据点421。多个异步数据流801可包括具有不同速率的数据流。例如,在多个异步数据流801中的数据流可以在比多个异步数据流801中另一数据流的不同数据速率处被接收。
在一个示例性示例中,多个异步数据流801包括:包含用于第一参数的第一数据点805的第一数据流803和包含用于第二参数的第二数据点809的第二数据流807。此外,多个异步数据流801也可以包括时间刻度流810。时间刻度流810可以是时间刻度的数据流。
第一个数据点805在第一个数据流803内可以是单调增加的时间排序。第二个数据点809在第二个数据流807内可以是单调增加的时间排序。
数据合并器800可以被配置为合并第一数据点805与第二数据点809,以形成包含时间排序数据点811的时间排序数据阵列808。时间排序数据点811可以是单调增加的时间排序。具体地,时间排序数据阵列808可基于用于每一个数据点的时间值,以增加的时间排序通过将第一数据点805和第二个数据点809添加到时间排序数据阵列808而形成。
数据合并器800发送在时间排序数据阵列808中的时间排序数据点811到基于策略的数据管理器802用于处理。基于策略的数据管理器802可以被配置为使用处理程序策略812来处理时间排序数据点811。处理程序策略812可以从在图4中的服务器管理器410接收。处理程序策略812可包括来自图4在服务器请求408中的服务器策略的部分,从而通过策略请求处理器420使用。处理程序策略812可以以类似于图2中描述的策略118的方式来实现。
基于策略的数据管理器802使用处理程序策略812和时间排序数据点811,以形成基于策略的数据813。然后基于策略的数据813可以被发送到输出打包器804。
当处理程序策略812指示服务器请求408是每一个样本的要求时,基于策略的数据管理器802可以简单地发送在时间排序数据点811中每一个数据点到输出打包器804。发送到输出打包器804的时间排序数据点811中的每一个时间排序数据点保持与指示获得数据点时间的数据点相关联的原始时间值。
然而,当处理程序策略812指示服务器请求408是帧要求时,基于策略的数据管理器802可以使用时间排序数据点811,以形成一组基于策略的数据帧814。例如,处理程序策略812可指示客户端想要约每1秒接收数据帧。
在大约每1秒间隔流逝时,基于策略的数据管理器802可以确定数据值,该数据值用于其基本上与时间间隔的流逝一致的第一个参数的数据点,并且用于其基本上与时间间隔的流逝一致的第二个参数的数据点。对这些数据点的数据值然后可以提取,并用于形成包括这些数据值和帧时间值的数据帧。分配给该数据帧中的帧时间值可以是1秒的间隔流逝的时间,或是用于第一参数所选的数据点或用于第二参数所选的数据点的实际时间值。在某些情况下,除了与帧时间值相关联的数据帧的所有数据值,每一个数据值可与用于数据值的实际时间值相关联。
在某些情况下,当数据点并不完全与时间间隔流逝的时间一致时,基于策略的数据管理器802可以使用内插技术,以确定用于第一参数和第二参数的数据值。这些技术可以包括,例如,但不限于,在该时间间隔流逝的时间之前和之后基于N个数据值导出新数据值。取决于实施,所使用的内插类型可以由处理程序策略812指定。
在其它示例性例子中,基于策略的数据管理器802确定用于第一参数的上一次已知数据值,和在那个时间里用于第二参数的上一次已知数据值。用于第一参数的上一次已知数据值可以是来自第一数据流803的第一数据点的数据值,与在第一数据流803中的其它数据点相比,所述第一数据点具有早于和接近于间隔流逝的时间的时间值。同样地,用于第二参数的上一次已知数据值可以是来自第二数据流807的第二数据点的数据值,与在第二数据流807中的其它数据点相比,所述第二数据据点具有早于和接近于间隔流逝的时间的时间值。
随着基于策略数据813的形成,基于策略的数据813可以被发送到输出打包器804用于进一步处理。输出打包器804可以使用一个或更多个固定大小的缓冲器缓冲基于策略的数据813。作为一个示例性示例,输出打包器804可以使用当前缓冲器816缓冲基于策略的数据813。
当当前缓冲器816已满,或者当延迟时间的某个预定量已经过去时,当前缓冲器816可以被发送到发送器806以等待传输,并且可以成为发送器缓冲器列表818的一部分。发送器806可以使用缓冲器列表818跟踪等待传输的当前缓冲器。发送器806以输出数据422的形式发送等待传输出去的当前缓冲器的内容到来自图3和图4中的第一客户端326。
现在参考图9,根据示例性实施例,其示出了来自图8的数据合并器800的示图。在图9中,示出了在其中输入数据点421可以相对于时间通过来自图8的数据合并器800合并到一起的一个方式示例。
如图所示,输入数据点421可以在第一数据流803和第二数据流807中被接收。第一数据流803中的第一数据点805可以被放置在第一队列900,而第二数据流807中的第二数据点809可以被放置在第二队列902。
在此示例性示例中,第一数据点805可以不采用任何系统延迟接收。然而,第二个数据点809可以采用大约0.5秒的系统延迟接收。换句话说,对于每一个第二数据点809的时间值可从用于数据点的数据值获得的实际时间延迟大约0.5秒。本系统的延迟也可以被称为滤波器延迟。
由于本系统的延迟是已知的,在第一数据流803和第二数据流807合并期间,数据合并器800考虑了这种延迟。数据合并器800可以在对于约0.75秒的队列延迟时间904的第一队列900中保持第一数据点805,从而允许第二数据点809到达第二队列902内。
当前时间906可以是基于在时间刻度流810中接收的时间刻度907而已知的当前时间。当前时间906减去队列延迟时间904产生大约1.25秒的输出限制时间908。在这个示例性例子中,比输出限制时间908更早获得的存储在第一队列900和第二队列902中的任何数据点被添加到时间排序数据阵列808作为时间排序数据点811。时间排序数据点811然后可以被发送给图8中基于策略的数据管理器802用于处理。
比输出限制时间908更晚获得的存储在第一队列900和第二队列902中的任何数据点被保持在第一队列900和第二队列902中。随着时间的推移,基于不断变化的当前时间906,相应地输出限制时间908变化,以使得数据点被连续地合并,从而形成时间排序数据点并且被发送出用于处理。
在其中对于用于特定参数的数据点,系统延迟或滤波器延迟不存在的情况下,队列延迟时间904没有必要。更确切地说,最大延迟时间可以被使用。这个最大延迟时间可以由如图4中所示的客户端或策略请求处理器420选择,或者可以是预定的。
在其它示例性实施例中,数据合并器800可以被配置为调节用于与系统的延迟相关联的数据点的时间值。例如,当第二个数据点809被添加到第二队列902时,数据合并器800可以被配置来调节用于第二个数据点809的时间值。具体地,每一个时间值可以减少约0.5秒至调节为系统延迟。在这种方式中,队列延迟时间904不需要被使用。
此外,空间量和/或时间排序数据阵列808的大小可以是可重构的。具体地,空间量和/或时间排序数据阵列808的大小可以被动态地改变,以适应不同类型的系统延迟。
现在参考图10,根据示例性实施例,其示出了来自图8的基于策略的数据管理器802的说明。基于策略的数据管理器802被配置为接收时间排序数据点811和过程时间排序数据点811,以形成图8中基于策略的数据813。在该示例性示例中,示出了基于策略的数据813可内插的方式示例。
间隔时间1002指示0.5秒的间隔流逝和数据帧将形成的时间。第一数据点1004是用于第一参数的时间排序点。第二数据点1006是用于第二参数的时间排序数据点。
如图所示,没有数据点正好与间隔时间1008一致。因此,基于策略的数据管理器802可以使用内插法来确定用于形成用于间隔时间1008的数据帧中的数据值。在这个示例性例子中,用于数据点1010的数据值和用于数据点1012的数据值被确定用于形成数据帧。数据点1010是在间隔时间1008之后具有下一个最早时间值的第一数据点1004内的数据点。数据点1012是在间隔时间1008之后具有下一个最早时间值的第二数据点1006内的数据点。
同样,对于将要形成为间隔时间1014的数据帧,用于数据点1016的数据值和用于数据点1018的数据值被确定用于形成数据帧。数据点1016是在间隔时间1014之后具有下一个最早时间值的第一数据点1004内的数据点。数据点1018是在间隔时间1014之后具有下一个最早时间值的第二数据点1006内的数据点。
尽管在图8-10中如上所述,数据合并器800被描述为采用时间排序数据点811(形成时间排序数据阵列808,然后由基于策略的数据管理器802处理,但是其它类型的阵列可以在其它实施中形成。在其它示例性例子中,根据除了时间之外的某个其它因素,第一数据点805可以与第二数据点809合并。例如,第一数据点805可以与第二数据点809合并,以形成数据排序阵列。数据排序阵列可以是相对于用于数据点的数据值排序的数据点阵列。数据点可以以增加的顺序、降低的顺序、基于数据值的类型的分序、或以某种其它方式的排序和/或分序来排序。
在其它示例性实施例中,基于策略的数据管理器802可以被配置为使用除了和/或代替内插的其它技术,以形成基于策略的数据813。例如,基于策略的数据管理器802可使用外推技术、曲线拟合技术、方程拟合技术、滤波技术、预测技术、数据填充技术、快速傅立叶变换(FFT)技术、零相位实时滤波(SPF)技术或一些其它类型的技术或算法中的至少一种,从而使用由数据合并器800提供的数据点形成基于策略的数据813。
现在参考图11,根据示例性实施例,其以流程图的形式示出了用于服务数据给客户端的过程的说明。在图11所示的过程可以使用在图1中的服务器系统103实现。
该过程在服务器系统的一组数据服务器处接收来自一组数据提供者的数据开始(操作1100)。接着,在服务器系统的服务器控制器处接收来自客户端的策略请求(操作1102)。在操作1102中,该策略请求是根据策略对数据的请求。
服务器控制器确定在一组数据服务器中的一个或更多个数据服务器,其托管由客户端请求的数据(操作1104)。服务器控制器发送服务器请求到确定为托管由客户端请求的数据的一组数据服务器中的每一个(操作1106)。在操作1106中,服务器请求是根据服务器策略对数据的请求。该服务器策略包括在服务策略请求中由服务器使用的策略请求中的策略的一部分。
响应于接收服务器的请求,在该组数据服务器中的每一个数据服务器激活若干策略请求处理器从而服务服务器请求,并且然后根据服务器策略发送所请求的数据到客户端(操作1108),此后该过程终止。
现在参考图12,根据示例性实施例,其以流程图的形式示出了用于处理服务器请求的过程说明。在图12中描述的过程可以由数据服务器来实现,例如图1中的数据服务器124。此外,该过程用于执行图11中的操作110。
该过程在数据服务器中的服务器处通过接收服务器请求而开始(操作1200)。该服务器请求起源于由客户端发送的策略请求。服务器管理器响应接收服务器请求,激活在数据服务器内的策略请求处理器来处理服务器请求(操作1202)。服务器管理器确定在数据服务器中的接收器或在数据服务器中的存储系统是否是基于服务器请求,用于策略请求处理器的多个异步数据流的源(操作1204)。
在操作1204中,当服务器请求是实时请求时,接收器被选作源。当请求是历史请求时,存储系统被选作源。
通过策略请求处理器,多个异步数据流从由服务器管理器确定的源被接收(操作1206)。多个异步数据流可以包括以不同数据速率在策略请求处理器接收的至少两个数据流。
接着,通过策略请求处理器,在多个异步数据流中的数据点被合并到一起,以形成时间排序数据点(操作1208)。此后,根据在服务器请求中所确定的服务器策略,通过使用时间排序数据点,由策略请求处理器形成基于策略的数据(操作1210)。
基于策略的数据,然后由策略请求处理器作为输出数据发送到产生策略请求的客户端,从所述策略请求中形成服务器请求(操作1212),此后该过程终止。当服务器请求是实时请求时,操作1206、1208、1210和1212可以被连续地形成,直到请求停止发送由客户端接收的数据。
现在参考图13,根据示例性实施例,其示出了用于形成基于策略的数据的过程说明。在图13所示的过程可以由策略请求处理器执行,诸如例如,在图1中的策略请求处理器140。此外,该过程可使用图12中的操作1210实现。
该过程通过接收时间排序数据点而开始(操作1300)。接着,做出服务器请求是每一个样本请求还是帧请求的判定,其中时间排序数据点已经形成(操作1302)。
如果服务器请求是每一个样本请求,则基于策略的数据使用在时间排序数据点中的每一个数据点形成(操作1304)。用于形成基于策略的数据中的每一个数据点保持与数据点相关联的原始时间值。接着,做出是否仍在接收时间排序数据点的判定(操作1306)。如果时间排序数据点仍然被接收,该过程返回到如上文所述的操作1304,。否则,过程终止。
再次参照操作1302,如果服务器请求是帧请求,则确定数据帧将形成的事件(操作1308)。该事件也可以被称为触发。此后,对于该事件的每次发生,基于策略的数据帧使用时间排序数据点形成,以形成一组基于策略的数据帧(操作1310)。
接着,做出是否仍在接收时间排序数据点的判定(操作1312)。如果时间排序数据点仍被接收,该过程返回到如上文所述的操作1310,。否则,过程终止。
现在转到图14,根据示例性实施例,其以框图形式示出了数据处理系统的说明。数据处理系统1400可以用于实现一组或更多组数据提供者106、客户端104、数据服务器110以及在图1中的服务器控制器108。如图所示,数据处理系统1400包括通信框架1402,其提供在处理器单元1404、存储设备1406、通信单元1408、输入/输出单元1410以及显示器1412之间的通信。在某些情况下,通信框架1402可以被实现为总线系统。
处理器单元1404被配置为执行用于软件的指令以实施若干操作。处理器单元1404可以包括多个处理器、多处理器核和/或一些其它类型的处理器,其取决于实施。在某些情况下,处理器单元1404可以采用硬件单元,诸如电路系统、专用集成电路(ASIC)、可编程逻辑器件,或某些其它合适类型的硬件单元的形式。
用于操作系统的指令、应用程序,和/或由处理器单元1404运行的程序可以位于存储设备1406中。存储设备1406可以通过通信框架1402与处理器单元1404通信。如本文所用,也被称为计算机可读存储装置的存储装置,是能够在临时和/或永久的基底上存储信息的任何硬件。此信息可包括,但不限于,数据、程序代码和/或其它信息。
存储器1414和持久性存储器1416是存储装置1406的示例。存储器1414可采取例如,随机存取存储器或一些类型的易失性或非易失性存储设备的形式。持久性存储器1416可以包括任何数量的组件或器件。例如,持久性存储器1416可以包括硬盘驱动器、闪存、可擦写光盘、可擦写磁带或以上的一些组合。持久性存储器1416使用的介质可以是或可以不是可移动的。
通信单元1408允许数据处理系统1400与其它数据处理系统和/或装置进行通信。通信单元1408可以使用物理和/或无线通信链路提供通信。
输入/输出单元1410允许从连接到数据处理系统1400的其它装置中接收输入并且允许输出发送到所述其它装置。例如,输入/输出单元1410可允许通过键盘、鼠标和/或一些其它类型的输入设备接收用户输入。作为另一个示例,输入/输出单元1410可允许将输出发送到连接到数据处理系统1400的打印机。
显示器1412被配置成显示信息给用户。显示器1412可以包括,例如,但不限于,监视器、触摸屏、激光显示器、全息显示器、虚拟显示设备和/或一些其它类型的显示设备。
在该示例性示例中,不同的示例实施例的过程可以使用计算机实现的指令由处理器单元1404执行。这些指令可以被称为程序代码、计算机可用程序代码或计算机可读程序代码,并且其可由处理器单元1404中的一个或更多个处理器读取和执行。
在这些示例中,程序代码1418以功能的形式位于计算机可读介质1420上,其选择性可移动,并且可以被加载到或转移到用于由处理器单元1404执行的数据处理系统1400。程序代码1418和计算机可读介质1420一起形成计算机程序产品1422。在该示例性示例中,计算机可读介质1420可以是计算机可读存储介质1424或计算机可读信号介质1426。
计算机可读存储介质1424是用于存储程序代码1418的物理或有形的存储装置而不是传播或传输程序代码1418的介质。计算机可读存储介质1424可以是,例如,但不限于,光盘或磁盘或连接到数据处理系统1400的持久存储装置。
可替代地,程序代码1418通过使用计算机可读信号介质1426可以被转移到数据处理系统1400。计算机可读信号介质1426可以是,例如,包含程序代码1418的传播数据信号。该数据信号可以是电磁信号、光信号和/或可以通过物理和/或无线通信链路进行传输的一些其它类型的信号。
图14中的数据处理系统1400的示例并不意味着对该示例性的实施例可以实施的方式提供架构限制。在包括除了或替换用于数据处理系统1400所述的那些组件的数据处理系统中,可以实施不同的示例性实施例。此外,图14所示的组件与示例性示例所示的组件不同。
在不同所示实施例中的流程图和框图说明了示例性实施例中设备和方法的架构、功能,以及一些可能实施的操作。在这方面,流程图或框图中的每个块可以表示模块、段、函数和/或操作或步骤的一部分。
例如,一个或更多个块可以被实现为程序代码、处于硬件中或者程序代码和硬件的组合。当在硬件中实现时,硬件可以采取例如集成电路的形式,所述集成电路被制造或配置以执行在流程图或框图中的一个或更多个操作。当作为程序代码和硬件的组合来实现时,该实现可以采取固件的形式。
在示例性实施例的一些替代实现中,在方框中注解的(一个或多个)功能可以不以图中注解的顺序发生。例如,在一些情况下,连续显示的两个块可基本同时执行,或者这些块有时可以以相反的顺序被执行,其取决于所涉及的功能。此外,除了以流程图或框图中示出的块,其它块可被加入。
为了说明和描述的目的,不同的示例性实施例的描述已经呈现,并且不旨在穷举或限制所公开形式的实施例。许多修改和变化对于那些本领域的普通技术人员将是显而易见的。此外,相对于其它示例性实施例,不同的示例性实施例可提供不同的特征。所选择的(一个或多个)实施例被选择和描述,以便为了最好地解释本实施例的原理、实际应用,并且使本领域其他技术人员理解具有各种修改的各种实施例的本公开,如适合于所预期的特定使用。
Claims (7)
1.一种数据服务器(124),其包括:
策略请求处理器(140),其响应于在所述数据服务器(124)处接收的服务器请求(122)而在所述数据服务器(124)内被激活,
其中所述策略请求处理器(140)经配置接收多个异步数据流;将所述多个异步数据流中的数据点(135)合并到一起,以形成时间排序数据点;并且根据在所述服务器请求(122)中确定的服务器策略(128),使用所述时间排序数据点形成基于策略的数据,从而所述策略请求处理器处理时间排序数据点以形成将发送到客户端的输出数据;
其中所述策略请求处理器(140)包括:
数据合并器(124),其将所述多个异步数据流中的所述数据点(135)合并到一起,以形成所述时间排序数据点;以及
基于策略的数据管理器(802),其将所述基于策略的数据形成为一组基于策略的数据帧(148),其中在该组基于策略的数据帧(148)中的每一个基于策略的数据帧(150)响应于发生的事件而使用所述时间排序数据点形成。
2.根据权利要求1所述的数据服务器(124),其中当所述服务器请求(122)是实时请求时,所述数据合并器(124)从所述数据服务器(124)中的接收器接收所述多个异步数据流,其中所述接收器(132)从一组数据提供者(106)中的至少一个接收数据。
3.根据权利要求2所述的数据服务器(124),其中当所述服务器请求(122)是历史请求时,所述数据合并器(124)从所述数据服务器(124)中的存储系统(134)接收所述多个异步数据流,其中所述存储系统(134)存储由所述接收器(132)接收的所述数据。
4.根据权利要求1所述的数据服务器(124),其中当所述服务器策略(128)指示所述服务器请求(122)是每一个样本请求时,所述基于策略的数据管理器(802)经配置使用所述时间排序数据点中的每一个数据点(136),从而形成所述基于策略的数据。
5.一种用于处理在数据服务器(124)处接收的服务器请求(122)的方法,所述方法包括:
响应于接收所述服务器请求(122),激活在所述数据服务器(124)内的策略请求处理器(140);
在所述策略请求处理器(140)处接收多个异步数据流;
通过所述策略请求处理器(140)将所述多个异步数据流中的数据点合并到一起,以形成时间排序数据点;以及
通过所述策略请求处理器(140),使用所述时间排序数据点根据所述服务器请求(122)中确定的服务器策略(128)形成基于策略的数据;
其中通过所述策略请求处理器(140)形成所述基于策略的数据包括:
通过所述策略请求处理器(140)将所述基于策略的数据形成为一组基于策略的数据帧(148),其中在该组基于策略的数据帧(148)中的每一个基于策略的数据帧(150)响应于发生的事件而使用所述时间排序数据点形成。
6.根据权利要求5所述的方法,其进一步包括:
发送作为输出数据(156)的所述基于策略的数据(813)到产生策略请求(112)的客户端(114),从所述策略请求(112)形成所述服务器请求(122)。
7.一种计算机可读介质,该计算机可读介质具有在其上的程序代码,当所述程序代码由计算机执行时,导致所述计算机执行权利要求5-6中任一个所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/935,745 | 2013-07-05 | ||
US13/935,745 US10362145B2 (en) | 2013-07-05 | 2013-07-05 | Server system for providing current data and past data to clients |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104283866A CN104283866A (zh) | 2015-01-14 |
CN104283866B true CN104283866B (zh) | 2019-04-26 |
Family
ID=51167596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410317445.2A Active CN104283866B (zh) | 2013-07-05 | 2014-07-04 | 用于提供当前数据和以往数据给客户端的服务器系统 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10362145B2 (zh) |
EP (1) | EP2827559B1 (zh) |
JP (1) | JP6403420B2 (zh) |
KR (1) | KR102166098B1 (zh) |
CN (1) | CN104283866B (zh) |
AU (1) | AU2014201784B2 (zh) |
BR (1) | BR102014016616B1 (zh) |
CA (1) | CA2847788C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8520000B2 (en) | 2008-07-02 | 2013-08-27 | Icharts, Inc. | Creation, sharing and embedding of interactive charts |
US20160322021A1 (en) * | 2015-04-30 | 2016-11-03 | Icharts, Inc. | Creation of interactive composite analytic visualizations |
US9665654B2 (en) | 2015-04-30 | 2017-05-30 | Icharts, Inc. | Secure connections in an interactive analytic visualization infrastructure |
WO2018044334A1 (en) * | 2016-09-02 | 2018-03-08 | Iex Group. Inc. | System and method for creating time-accurate event streams |
US9940035B1 (en) * | 2016-10-11 | 2018-04-10 | Igeneous Systems, Inc. | Latency optimizing for scalable journaling |
WO2019038588A1 (en) * | 2017-07-24 | 2019-02-28 | Wix. Com Ltd. | EDITING A DATABASE WHEN PREDICTING A VIRTUAL WEB PAGE |
US10834230B2 (en) | 2017-08-25 | 2020-11-10 | International Business Machines Corporation | Server request management |
WO2021147021A1 (zh) * | 2020-01-22 | 2021-07-29 | 北京微动数联科技有限公司 | 物联网数据获取及封装装置和方法 |
US11537455B2 (en) | 2021-01-11 | 2022-12-27 | Iex Group, Inc. | Schema management using an event stream |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101026490A (zh) * | 2007-01-26 | 2007-08-29 | 华为技术有限公司 | 实现业务分发与同步的设备、系统及方法 |
CN101060524A (zh) * | 2006-05-09 | 2007-10-24 | 华为技术有限公司 | 一种组播业务应用的方法及系统 |
CN101442718A (zh) * | 2008-12-30 | 2009-05-27 | 中兴通讯股份有限公司 | 手机电视节目管理方法和系统 |
CN102594860A (zh) * | 2010-12-02 | 2012-07-18 | 微软公司 | 混合同步和异步数据流 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6233389B1 (en) | 1998-07-30 | 2001-05-15 | Tivo, Inc. | Multimedia time warping system |
US20050028171A1 (en) | 1999-11-12 | 2005-02-03 | Panagiotis Kougiouris | System and method enabling multiple processes to efficiently log events |
US7043566B1 (en) * | 2000-10-11 | 2006-05-09 | Microsoft Corporation | Entity event logging |
JP2002251500A (ja) | 2001-02-22 | 2002-09-06 | Nippon Telegr & Teleph Corp <Ntt> | ログ情報収集システム及びログ情報収集方法 |
US7010538B1 (en) * | 2003-03-15 | 2006-03-07 | Damian Black | Method for distributed RDSMS |
WO2007046844A2 (en) * | 2005-03-01 | 2007-04-26 | Advanced Warning Systems, Inc. | System and method for visual representation of a catastrophic event and coordination of response |
US20090024722A1 (en) * | 2007-07-17 | 2009-01-22 | International Business Machines Corporation | Proxying availability indications in a failover configuration |
US7941557B2 (en) * | 2007-11-28 | 2011-05-10 | Yahoo! Inc. | Dynamical routing for text messaging |
US20100153351A1 (en) * | 2008-12-16 | 2010-06-17 | Yung Alex P | Techniques for real-time database processing |
JP5225149B2 (ja) | 2009-02-24 | 2013-07-03 | 日本電信電話株式会社 | 情報処理装置、情報処理システム、情報処理方法 |
US8285681B2 (en) * | 2009-06-30 | 2012-10-09 | Commvault Systems, Inc. | Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites |
GB201004449D0 (en) * | 2010-02-22 | 2010-05-05 | Corbett Sean | Data accelerator |
US20130226320A1 (en) * | 2010-09-02 | 2013-08-29 | Pepperdash Technology Corporation | Policy-driven automated facilities management system |
US9171079B2 (en) * | 2011-01-28 | 2015-10-27 | Cisco Technology, Inc. | Searching sensor data |
US9225793B2 (en) * | 2011-01-28 | 2015-12-29 | Cisco Technology, Inc. | Aggregating sensor data |
SG10201600432YA (en) * | 2011-02-21 | 2016-02-26 | Univ Singapore | Apparatus, system, and method for annotation of media files with sensor data |
US9285800B2 (en) | 2011-11-11 | 2016-03-15 | Rockwell Automation Technologies, Inc | Systems and methods for asynchronous searching and filtering of data |
EP2815282A4 (en) * | 2012-02-17 | 2015-08-19 | Vencore Labs Inc | METHOD AND SYSTEM FOR PACKAGE DETECTION, ANALYSIS AND IMPACT DETECTION AT FIELD BUSES |
AU2013277351A1 (en) * | 2012-06-18 | 2015-01-22 | Actifio, Inc. | Enhanced data management virtualization system |
WO2014099127A1 (en) * | 2012-12-20 | 2014-06-26 | Aha! Software LLC | Dynamic model data facility and automated operational model building and usage |
-
2013
- 2013-07-05 US US13/935,745 patent/US10362145B2/en active Active
-
2014
- 2014-03-26 AU AU2014201784A patent/AU2014201784B2/en active Active
- 2014-03-27 CA CA2847788A patent/CA2847788C/en active Active
- 2014-04-09 KR KR1020140042178A patent/KR102166098B1/ko active IP Right Grant
- 2014-04-28 JP JP2014093182A patent/JP6403420B2/ja active Active
- 2014-06-25 EP EP14173991.2A patent/EP2827559B1/en active Active
- 2014-07-03 BR BR102014016616-5A patent/BR102014016616B1/pt active IP Right Grant
- 2014-07-04 CN CN201410317445.2A patent/CN104283866B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060524A (zh) * | 2006-05-09 | 2007-10-24 | 华为技术有限公司 | 一种组播业务应用的方法及系统 |
CN101026490A (zh) * | 2007-01-26 | 2007-08-29 | 华为技术有限公司 | 实现业务分发与同步的设备、系统及方法 |
CN101442718A (zh) * | 2008-12-30 | 2009-05-27 | 中兴通讯股份有限公司 | 手机电视节目管理方法和系统 |
CN102594860A (zh) * | 2010-12-02 | 2012-07-18 | 微软公司 | 混合同步和异步数据流 |
Also Published As
Publication number | Publication date |
---|---|
CA2847788C (en) | 2019-01-15 |
CA2847788A1 (en) | 2015-01-05 |
BR102014016616A2 (pt) | 2015-11-24 |
US20150019687A1 (en) | 2015-01-15 |
AU2014201784A1 (en) | 2015-01-22 |
US10362145B2 (en) | 2019-07-23 |
CN104283866A (zh) | 2015-01-14 |
BR102014016616B1 (pt) | 2022-04-12 |
EP2827559A1 (en) | 2015-01-21 |
JP6403420B2 (ja) | 2018-10-10 |
JP2015018540A (ja) | 2015-01-29 |
KR20150005428A (ko) | 2015-01-14 |
EP2827559B1 (en) | 2020-10-21 |
AU2014201784B2 (en) | 2019-08-22 |
KR102166098B1 (ko) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104283866B (zh) | 用于提供当前数据和以往数据给客户端的服务器系统 | |
US11627053B2 (en) | Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously | |
US11757981B2 (en) | Efficient and reliable host distribution of totally ordered global state | |
CN109726074A (zh) | 日志处理方法、装置、计算机设备和存储介质 | |
CN106664322B (zh) | 计算机可读硬件存储介质、用于使得作为结果的事件流被生成的方法以及计算机系统 | |
EP2045680B1 (en) | Subscription and notification in industrial systems | |
CN103002005B (zh) | 云服务监测系统 | |
US7925742B2 (en) | Correlating performance data of multiple computing devices | |
CN106940677A (zh) | 一种应用日志数据告警方法及装置 | |
CN110232054A (zh) | 日志传输系统及流式日志传输方法 | |
US8332267B2 (en) | Method and system for real time measurement data adjudication and service level evaluation | |
US10592827B2 (en) | Throttling solutions into a legacy inventory system during a service disruption | |
CN108369550A (zh) | 实时更改来自不同源的数据 | |
CN107274215A (zh) | 航班价格预测方法、装置、设备和存储介质 | |
US20040143486A1 (en) | System and method for inventory replenishment | |
CN110245120A (zh) | 流式计算系统及流式计算系统的日志数据处理方法 | |
CN107798009A (zh) | 数据聚合方法、装置及系统 | |
CN109213778A (zh) | 一种流数据滑动窗口聚集查询方法 | |
US20240202835A1 (en) | Transaction management system for managing transactions being written to storage | |
US20240346423A1 (en) | Continuous data sensing of functional states of networked computing devices to determine efficiency metrics for servicing electronic messages asynchronously | |
US11582127B2 (en) | IIoT asymmetric reactive buffering to dynamically manage and optimize in-motion data batch size | |
CN109690486A (zh) | 用于处理数据流信息的设备和方法 | |
WO2024163099A1 (en) | Circular-buffer for generating machine learning estimates of streaming observations in real time | |
CN117708219A (zh) | 用于物联网数据的处理方法、处理装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |