CN106464746B - 支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统 - Google Patents

支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统 Download PDF

Info

Publication number
CN106464746B
CN106464746B CN201580023361.0A CN201580023361A CN106464746B CN 106464746 B CN106464746 B CN 106464746B CN 201580023361 A CN201580023361 A CN 201580023361A CN 106464746 B CN106464746 B CN 106464746B
Authority
CN
China
Prior art keywords
message
block object
event
event block
esp
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
Application number
CN201580023361.0A
Other languages
English (en)
Other versions
CN106464746A (zh
Inventor
杰拉尔德·唐纳德·博利耶
文森特·L·德特斯
斯科特·J·科洛德杰埃斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAS Institute Inc
Original Assignee
SAS Institute Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SAS Institute Inc filed Critical SAS Institute Inc
Publication of CN106464746A publication Critical patent/CN106464746A/zh
Application granted granted Critical
Publication of CN106464746B publication Critical patent/CN106464746B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Abstract

在支持事件流处理ESP系统中的故障转移的计算装置中,接收事件块对象。将所述计算装置的第一状态确定为现用或备用。当所述第一状态为现用时,将所述计算装置的第二状态确定为新现用的或非新现用的。当所述计算装置从备用状态切换到现用状态时确定为新现用的。当所述第二状态为新现用时,确定唯一识别上一所发布事件块对象的上一所发布事件块对象识别符。从可由所述计算装置存取的非暂时性计算机可读媒体选择下一事件块对象。所述下一事件块对象具有大于所述所确定上一所发布事件块对象识别符的事件块对象识别符。将所述选定下一事件块对象发布到消息传出网络装置。

Description

支持事件流处理系统中的故障转移的方法与非暂时性计算机 可读媒体以及系统
相关申请案的交叉参考
本申请案依据巴黎公约主张2015年3月19日提出申请的第14/662,528号美国专利申请案的优先权,所述美国专利申请案的全部内容特此以引用方式并入。本申请案进一步依据35 U.S.C.§119(e)主张2014年6月6日提出申请的第62/008,725号美国临时专利申请案,及在2015年3月18日提出申请的第62/134,852号美国临时专利申请案的权益,所述美国临时专利申请案的全部内容特此以引用方式并入。
背景技术
越来越多数目的分散式应用程序通过在将来自分散源的流动数据分散到地理上分散的接受者之前对所述数据应用查询而持续处理所述数据。事件流处理引擎(ESPE)在数据被接收时对数据持续应用查询并确定哪些实体接收经处理数据。
发明内容
在实例性实施例中,提供用以在事件流处理(ESP)事件阻塞时支持故障转移的系统。所述系统包含但不限于消息传出网络装置及计算装置。所述计算装置包含但不限于处理器及可操作地耦合到所述处理器的计算机可读媒体。所述处理器经配置以执行ESP引擎(ESPE)。所述计算机可读媒体具有存储于其上的指令,当由所述处理器执行时,所述指令致使所述计算装置支持所述故障转移。从所述ESPE接收包含唯一识别符的事件块对象。将所述计算装置的第一状态确定为现用或备用。当所述第一状态为现用时,将所述计算装置的第二状态确定为新现用的或非新现用的。当所述计算装置从备用状态切换到现用状态时确定为新现用的。当所述第二状态为新现用时,确定唯一识别上一所发布事件块对象的上一所发布事件块对象识别符。从可由所述计算装置存取的非暂时性计算机可读媒体选择下一事件块对象。所述下一事件块对象具有大于所述所确定上一所发布事件块对象识别符的事件块对象识别符。将所述选定下一事件块对象发布到消息传出网络装置。当所述计算装置的所述第二状态为非新现用时,将所述所接收事件块对象发布到所述消息传出网络装置。当所述计算装置的所述第一状态为备用时,将所述所接收事件块对象存储于所述非暂时性计算机可读媒体中。
在另一实例性实施例中,提供一种计算机可读媒体,所述计算机可读媒体具有存储于其上的计算机可读指令,当由计算装置执行时,所述计算机可读指令致使所述计算装置在事件流处理(ESP)事件阻塞时支持故障转移。
在再一实例性实施例中,提供一种支持事件流处理系统中的故障转移的方法。从ESP 引擎接收包含唯一识别符的事件块对象。将计算装置的第一状态确定为现用或备用。当所述第一状态为现用时,将所述计算装置的第二状态确定为新现用的或非新现用的。当所述计算装置从备用状态切换到现用状态时确定为新现用的。当所述第二状态为新现用时,确定唯一识别上一所发布事件块对象的上一所发布事件块对象识别符。从可由所述计算装置存取的非暂时性计算机可读媒体选择下一事件块对象。所述下一事件块对象具有大于所述所确定上一所发布事件块对象识别符的事件块对象识别符。将所述选定下一事件块对象发布到消息传出网络装置。
在检视以下图式、详细说明及所附权利要求书之后,所属领域的技术人员将即刻明了所揭示标的物的其它主要特征。
附图说明
此后将参考附图描述所揭示标的物的说明性实施例,其中相似编号指示相似元件。
图1描绘根据说明性实施例的事件流处理(ESP)系统的框图。
图2描绘根据说明性实施例的图1的ESP系统的事件发布系统的发布装置的框图。
图3描绘根据说明性实施例的图1的ESP系统的事件订阅系统的订阅装置的框图。
图4描绘根据说明性实施例的图1的ESP系统的ESP装置的框图。
图5描绘根据说明性实施例的图解说明由图4的ESP装置执行的操作的实例的流程图。
图6描绘根据说明性实施例的在图4的ESP装置处执行的ESP引擎的框图。
图7描绘根据说明性实施例的图解说明在图1的ESP系统的组件当中的交互的框图。
图8描绘根据说明性实施例的图解说明在图1的ESP系统的组件当中的交互的第二框图。
图9描绘根据说明性实施例的图解说明由图2的发布装置执行的操作的实例的流程图。
图10描绘根据说明性实施例的图解说明由图3的订阅装置执行的操作的实例的流程图。
图11描绘根据说明性实施例的图解说明在图1的第二ESP系统的组件当中的交互的框图。
图12描绘根据说明性实施例的图11的第二ESP系统的第二ESP装置的框图。
图13描绘根据说明性实施例的图解说明由图12的第二ESP装置执行的操作的实例的流程图。
图14描绘根据说明性实施例的图解说明由作为图11的第二ESP系统的图2的发布装置执行的操作的实例的流程图。
图15描绘根据说明性实施例的图解说明由作为图11的第二ESP系统的部分的图3的订阅装置执行的操作的实例的流程图。
图16描绘根据说明性实施例的当事件流处理事件阻塞时支持故障转移的第三ESP系统的框图。
图17描绘根据说明性实施例的图解说明由作为图16的第三ESP系统的部分的图2的发布装置执行的操作的实例的流程图。
图18描绘根据说明性实施例的图解说明由包含为图16的第三ESP系统的部分的图12的第二ESP装置执行的操作的实例的流程图,所述第三ESP系统在事件流处理事件阻塞时支持故障转移。
具体实施方式
参考图1,展示根据说明性实施例的事件流处理(ESP)系统100的框图。在说明性实施例中,ESP系统100可包含ESP装置102、事件发布系统104、事件订阅系统106及网络108。事件发布系统104将数据发布到ESP装置102,ESP装置102接收所发布数据。ESP装置102处理所发布数据。在由ESP装置102处理之后,事件订阅系统106订阅并接收所发布数据。
如本文中所使用,数据可包含以任何计算机可读格式表示的任何类型的内容,例如二进制、字母数字、数字、字符串、标记语言等。内容可包含文本信息、图形信息、图像信息、音频信息、数字信息等,如所属领域的技术人员所理解,所述内容可进一步使用各种编码技术编码。
ESP系统100的组件可包含于单个计算装置中、可位于单个设施中的单个室或邻近室中及/或可在地理上彼此分散。ESP装置102、事件发布系统104及事件订阅系统106 中的每一者可由一或多个离散装置构成。
网络108可包含相同或不同类型的一或多个网络。网络108可为任何类型的有线及/或无线公用或专用网络,包含蜂窝式网络、局域网、广域网(例如因特网)等。网络108 可进一步包括子网络且由任何数目个装置组成。
ESP装置102可包含任何类型的计算装置。计算装置通过网络108将信号发送到事件发布系统104且发送到事件订阅系统106/从事件发布系统104及从事件订阅系统106 接收信号。ESP装置102可使用各种发射媒体通信,如所属领域的技术人员所理解,所述发射媒体可为有线及/或无线的。
事件发布系统104可包含可经组织成子网的任何数目及类型的计算装置。事件发布系统104的计算装置通过网络108将信号发送到事件发布系统104中的一或多个计算装置中的另一者、发送到ESP装置102及/或发送到事件订阅系统106/从事件发布系统104 中的一或多个计算装置中的另一者、从ESP装置102及/或从事件订阅系统106接收信号。事件发布系统104中的一或多个计算装置可包含任何外观尺寸的计算机,例如膝上型计算机110、桌上型计算机112、智能手机114、个人数字助理、集成消息接发装置、平板计算机等。事件发布系统104中的一或多个计算装置可使用各种发射媒体通信,如所属领域的技术人员所理解,所述发射媒体可为有线及/或无线的。
事件订阅系统106可包含可经组织成子网的任何数目及类型的计算装置。事件订阅系统106的计算装置通过网络108将信号发送到事件订阅系统106中的一或多个计算装置中的另一者、发送到ESP装置102及/或发送到事件发布系统104/从事件订阅系统106 中的一或多个计算装置中的另一者、从ESP装置102及/或从事件发布系统104接收信号。事件订阅系统106中的一或多个计算装置可包含任何外观尺寸的计算机,例如膝上型计算机116、桌上型计算机118、智能手机120、集成消息接发装置、个人数字助理、平板计算机等。事件订阅系统106中的一或多个计算装置可使用各种发射媒体通信,如所属领域的技术人员所理解,所述发射媒体可为有线及/或无线的。
参考图2,展示根据说明性实施例的事件发布系统104的发布装置200的框图。发布装置200为事件发布系统104的实例性计算装置。发布装置200可包含输入接口204、输出接口206、通信接口208、计算机可读媒体210、处理器212、键盘214、鼠标216、显示器218、扬声器220、打印机222及事件发布应用程序224。较少不同或额外组件可并入到发布装置200中。
输入接口204提供用于从用户接收用于输入到发布装置200中的信息的接口,如所属领域的技术人员所理解。输入接口204可与各种输入技术介接(所述输入技术包含但不限于键盘214、鼠标216、显示器218、轨迹球、小键盘、一或多个按钮等)以允许用户将信息输入到发布装置200中或使呈现于用户接口中的选择显示于显示器218上。相同接口可支持输入接口204及输出接口206两者。举例来说,包括触摸屏的显示器既允许用户输入又将输出呈现给用户。发布装置200可具有使用相同或不同输入接口技术的一或多个输入接口。输入接口技术可进一步由发布装置200通过通信接口208接入。
输出接口206提供用于输出信息以供由发布装置200的用户检视的接口。举例来说,输出接口206可与各种输出技术介接,包含但不限于显示器218、扬声器220、打印机 222等。发布装置200可具有使用相同或不同接口技术的一或多个输出接口。输出接口技术可进一步由发布装置200通过通信接口208接入。
通信接口208提供用于使用各种协议、发射技术及媒体而在装置之间接收并发射数据的接口,如所属领域的技术人员所理解。通信接口208可使用可为有线及/或无线的各种发射媒体支持通信。发布装置200可具有使用相同或不同通信接口技术的一或多个通信接口。举例来说,发布装置200可使用以太网端口、蓝牙天线、电话插孔、USB端口、无线兼容装置等支持通信。可使用通信接口208在发布装置200与ESP装置102及/或事件订阅系统106之间传送数据及消息。
计算机可读媒体210为信息的电子保持位置或存储装置,因此信息可由处理器212存取,如所属领域的技术人员所理解。计算机可读媒体210可包含但不限于,任何类型的随机存取存储器(RAM)、任何类型的只读存储器(ROM)、任何类型的快闪存储器等,例如磁存储装置(例如,硬盘、软盘、磁条、…)、光盘(例如,压缩光盘(CD)、数字多功能光盘(DVD)、…)、智能卡、快闪存储器装置等。发布装置200可具有使用相同或不同存储器媒体技术的一或多个计算机可读媒体。发布装置200还可具有支持存储器媒体的加载的一或多个驱动器,例如CD或DVD、外部硬驱动器等。一或多个外部硬驱动器可进一步使用通信接口208连接到发布装置200。
处理器212执行指令,如所属领域的技术人员所理解。指令可由专用计算机、逻辑电路或硬件电路执行。处理器212可以硬件及/或固件实施。处理器212执行指令,意味着所述处理器执行/控制由所述指令调用的操作。术语“执行”可指代运行应用程序或执行由指令调用的操作的过程。可使用一或多个编程语言、脚本语言、汇编语言等写入指令。处理器212与输入接口204、输出接口206、通信接口208及计算机可读媒体210 可操作地耦合以接收、发送并处理信息。处理器212可从永久存储器装置检索指令集且以可执行形式将指令复制到暂时存储器装置,所述暂时存储器装置可为(举例来说)某种形式的RAM。发布装置200可包含使用相同或不同处理技术的多个处理器。
事件发布应用程序224执行与创建及发布数据相关联的操作。为进行图解,事件发布应用程序224可发布由传感器产生的数据、响应于事件或事务的发生而产生或捕获的数据、由装置例如响应于用户与装置的交互而产生的数据等。本文中所描述的操作中的一些或所有操作可体现于事件发布应用程序224中。可使用硬件、固件、软件或这些方法的任一组合来实施操作。参考图2的实例性实施例,事件发布应用程序224以软件(由计算机可读及/或计算机可执行指令构成)实施,所述软件存储于计算机可读媒体210中且可由处理器212存取以用于执行体现事件发布应用程序224的操作的指令。可使用一或多个编程语言、汇编语言、脚本语言等写入事件发布应用程序224。
事件发布应用程序224可实施为Web应用程序。举例来说,事件发布应用程序224可经配置以接收超文本传输协议(HTTP)响应并发送HTTP请求。HTTP响应可包含网页,例如超文本标记语言(HTML)文档及响应于HTTP请求而产生的链接对象。每一网页可由统一资源定位器(URL)识别,所述统一资源定位器包含含有待存取的资源的计算装置的位置或地址(除所述计算装置上的资源的位置外)。文件或资源的类型取决于因特网应用程序协议,例如文件传送协议、HTTP、H.323等。所存取的文件可为简单的文本文件、图像文件、音频文件、视频文件、可执行文件、通用网关接口应用程序、Java小应用程序、可扩展标记语言(XML)文件或由HTTP支持的任何其它类型的文件。
参考图3,展示根据实例性实施例的事件订阅系统106的订阅装置300的框图。订阅装置300为事件订阅系统106的实例性计算装置。订阅装置300可包含第二输入接口 304、第二输出接口306、第二通信接口308、第二计算机可读媒体310、第二处理器312 及事件订阅应用程序324。较少不同或额外组件可并入到订阅装置300中。
第二输入接口304提供与参考发布装置200的输入接口204所描述的功能性相同或类似的功能性,但涉及的是订阅装置300。第二输出接口306提供与参考发布装置200 的输出接口206所描述的功能性相同或类似的功能性,但涉及的是订阅装置300。第二通信接口308提供与参考发布装置200的通信接口208所描述的功能性相同或类似的功能性,但涉及的是订阅装置300。可使用第二通信接口308在订阅装置300与ESP装置 102及/或事件发布系统104之间传送数据及消息。第二计算机可读媒体310提供与参考发布装置200的计算机可读媒体210所描述的功能性相同或类似的功能性,但涉及的是订阅装置300。第二处理器312提供与参考发布装置200的处理器212所描述的功能性相同或类似的功能性,但涉及的是订阅装置300。
事件订阅应用程序324执行与接收数据相关联的操作,所述数据是由事件发布系统 104中的一或多个计算装置发布且由ESP装置102处理。本文中所描述的操作中的一些或所有操作可体现于事件订阅应用程序324中。可使用硬件、固件、软件或这些方法的任一组合实施操作。参考图3的实例性实施例,事件订阅应用程序324以软件(由计算机可读及/或计算机可执行指令构成)实施,所述软件存储于第二计算机可读媒体310中且可由第二处理器312存取以用于执行体现事件订阅应用程序324的操作的指令。可使用一或多个编程语言、汇编语言、脚本语言等写入事件订阅应用程序324。事件订阅应用程序324可实施为Web应用程序。
参考图4,展示根据说明性实施例的ESP装置102的框图。ESP装置102可包含任何外观尺寸的一或多个计算机。ESP装置102可包含第三输入接口404、第三输出接口 406、第三通信接口408、第三计算机可读媒体410、第三处理器412、数据库414及ESP 应用程序416。较少不同或额外组件可并入到ESP装置102中。
第三输入接口404提供与参考发布装置200的输入接口204所描述的功能性相同或类似的功能性,但涉及的是ESP装置102。第三输出接口406提供与参考发布装置200 的输出接口206所描述的功能性相同或类似的功能性,但涉及的是ESP装置102。第三通信接口408提供与参考发布装置200的通信接口208所描述的功能性相同或类似的功能性,但涉及的是ESP装置102。可使用第三通信接口408在ESP装置102与事件订阅系统106及/或事件发布系统104之间传送数据及消息。第三计算机可读媒体410提供与参考发布装置200的计算机可读媒体210所描述的功能性相同或类似的功能性,但涉及的是ESP装置102。第三处理器412提供与参考发布装置200的处理器212所描述的功能性相同或类似的功能性,但涉及的是ESP装置102。
ESP装置102包含数据库414或可使用第三通信接口408通过直接连接或通过网络108接入数据库414。第三计算机可读媒体410可提供用于数据库414的电子存储媒体。数据库414为ESP系统100的数据存储库。存储于数据库414中的数据可包含以任何计算机可读格式表示的任何类型的内容,例如二进制、字母数字、数字、字符串、标记语言等。内容可包含文本信息、图形信息、图像信息、音频信息、数字信息等,如所属领域的技术人员所理解,所述内容可进一步使用各种编码技术编码。
数据库414可使用如所属领域的技术人员已知的各种格式实施,包含文件系统、关系数据库、表系统、结构化查询语言数据库等。举例来说,数据库414可存储于跨计算机网格分布的立方体中,如所属领域的技术人员所理解。作为另一实例,数据库414可存储于多节点群集,如所属领域的技术人员所理解。举例来说,ApacheTM 为用于由Apache软件基金会支持的分布式计算的开源软件框架。作为另一实例,数据库414可存储于计算机云中且使用云计算技术接入,如所属领域的技术人员所理解。LASRTM分析服务器(举例来说,其由美国的北卡罗莱纳州(North Carolina) 卡里市(Cary)的SAS研究所有限公司(SAS Institute Inc.)开发并提供)可用作分析平台以使得多个用户能够同时存取存储于数据库414中的数据。可使用其它服务器及系统。
ESP应用程序416执行与以下各项相关联的操作:处理由事件发布系统104中的一或多个计算装置创建的数据且基于事件订阅系统106中的每一计算装置的订阅请求而将经处理数据发送到事件订阅系统106中的一或多个计算装置。ESP应用程序416可将具有其自身一或若干专用线程池的ESP引擎(ESPE)嵌入到其应用程序空间中,其中主要应用程序线程可进行应用程序特定的工作且ESPE至少通过创建模型的实例而处理到处理对象中的事件流。本文中所描述的操作中的一些或所有操作可体现于ESP应用程序416 中。可使用硬件、固件、软件或这些方法的任一组合实施操作。参考图4的实例性实施例,ESP应用程序416以软件(由计算机可读及/或计算机可执行指令构成)实施,所述软件存储于第三计算机可读媒体410中且可由第三处理器412存取以用于执行体现ESP应用程序416的操作的指令。可使用一或多个编程语言、汇编语言、脚本语言等写入ESP 应用程序416。举例来说,ESP应用程序416可实施为Web应用程序。
事件订阅应用程序324、事件发布应用程序224及ESP应用程序416可将数据保存或存储到数据库414且从数据库414存取或检索数据。事件订阅应用程序324、事件发布应用程序224及ESP应用程序416可为相同或不同应用程序或为支持一些或所有与本文中所描述相同的或额外类型的功能性的集成分散式应用程序的一部分。作为实例,由 ESP应用程序416提供的功能性可提供为由美国的北卡罗莱纳州卡里市的SAS研究所有限公司开发并提供的DataFlux ESP引擎及/或由其它软件供应商提供的ESP应用程序的一部分。可不受限制地在ESP系统100的组件之间实施各种水平的集成,如所属领域的技术人员所理解。举例来说,针对ESP系统100描述的所有功能性均可实施于单个计算装置中。
参考图5,描述与ESP应用程序416相关联的实例性操作。ESP应用程序416定义如何将来自发布者的输入事件流变换成由订阅者消费的有意义输出事件流。可取决于实施例执行额外较少或不同操作。图5的操作的呈现的次序并不打算为限制性的。用户可在ESP应用程序416的控制下独立地或通过浏览器应用程序以可由用户选择的次序与在例如显示器218的显示器中呈现给用户的一或多个用户接口窗口交互。尽管依序呈现一些操作流程,但可以各种重复、同时地及/或以除所图解说明的次序以外的次序执行各种操作。举例来说,用户可执行ESP应用程序416,此致使呈现第一用户接口窗口,所述第一用户接口窗口可包含与ESP应用程序416相关联的多个菜单及选择器,例如下拉菜单、按钮、文本框、超链接等,如所属领域的技术人员所理解。如所属领域的技术人员进一步理解,可(举例来说)使用多个线程并行执行各种操作。
在操作500中,ESP应用程序416定义并起动ESP引擎(ESPE),借此使ESP装置 102处的ESPE实例化。举例来说,参考图6,根据说明性实施例展示在ESP装置102 处执行的ESPE600的组件。ESPE 600可包含一或多个项目602。项目可描述为由ESPE 600管理的引擎模型中的第二层级容器,其中所述项目的线程池大小可由用户定义。线程池大小为1的值指示写入是单线程的。一或多个项目602的每一项目可包含含有数据流的一或多个持续查询604,所述数据流为传入事件流的数据变换。一或多个持续查询 604可包含一或多个源窗口606及一或多个导出窗口608。
引擎容器为模型中的管理一或多个项目602的资源的顶部层级容器。举例来说,在说明性实施例中,可针对ESP应用程序416的每一实例仅存在一个ESPE 600,且ESPE 600具有唯一引擎名称。另外,一或多个项目602可各自具有唯一项目名称,并且每一查询可具有唯一持续查询名称且以一或多个源窗口606的唯一命名源窗口开始。ESPE 600可为或可并非持久的。
持续查询模型化涉及定义用于事件流操纵及变换的窗的定向图。在事件流操纵及变换的上下文中的窗为事件流处理模型中的处理节点。在持续查询中,窗可对流动穿过窗的数据执行聚合、计算、图案匹配及其它操作。持续查询可描述为源窗口、关系窗口、图案匹配窗口、及程序窗口的定向图。一或多个源窗口606以及一或多个导出窗口608 表示持续执行查询,所述查询产生设置为穿过ESPE 600的新事件块流的查询结果的更新。举例来说,定向图为由边缘连接的一组节点,其中边缘具有与所述组节点相关联的方向。
事件对象可描述为可存取为字段集合的数据包,其中字段中的至少一者定义为关键或唯一识别符(ID)。可使用包含二进制、字母数字、XML等的多种格式创建事件对象。每一事件对象可包含指示为事件的主识别符(ID)的一或多个字段,因此ESPE 600可支持事件的操作码(opcode),包含插入、更新、更新插入(upsert)及删除。如果关键字段已存在,那么更新插入操作码更新事件;否则,插入事件。为进行图解,事件对象可为一组字段值的压缩二进制表示且包含与事件相关联的元数据及字段数据两者。元数据可包含指示事件是表示插入、更新、删除还是更新插入的操作码,指示事件是正常的部分更新还是从保留策略管理产生保留的事件的一组旗标,以及可用于等待时间测量的一组微秒时间戳。
事件块对象可描述为事件对象的分组或封装。事件流可描述为事件块对象的流。一或多个持续查询604中的持续查询使用一或多个源窗口606以及一或多个导出窗口608将由发布到ESPE 600中的流式传输事件块对象构成的源事件流变换成一或多个输出事件流。持续查询也可视为数据流模型化。
一或多个源窗口606处于定向图的顶部且不具有馈送到所述一或多个源窗口中的窗口。将事件流发布到一或多个源窗口606中,且将事件流从所述一或多个源窗口引导到如由定向图定义的下一组连接窗口。一或多个导出窗口608全部为经实例化窗口,所述经实例化窗口并非源窗口且具有将事件流式传输到其中的其它窗口。一或多个导出窗口 608对传入事件流执行计算或变换。一或多个导出窗口608基于窗口类型(其为算子,例如联接、筛选、计算、聚合、复制、模式匹配、过程化、求并等)及窗口设置而变换事件流。当将事件流发布到ESPE 600中时,所述事件流被持续查询,且这些查询中的所得组导出窗口被持续更新。
可举例来说使用模型化应用程序编程接口(API)开发ESP应用程序416,所述模型化应用程序编程接口提供具有成员函数的一组类。作为实例,由美国的北卡罗莱纳州卡里市(Cary,North Carolina,USA)的SAS研究所有限公司(SAS Institute Inc.)开发并提供的SAS ESP引擎提供模型化API,所述模型化API提供具有成员函数的一组类。这些函数使得ESP应用程序416能够将可能具有专用线程池的ESPE 600嵌入到其自身进程空间中。或者,ESPE 600可经嵌入到现有或新应用程序的进程空间中。在所述情形中,主应用程序线程聚焦于其自身事务且视需要与经嵌入ESPE 600交互。
参考图5,在操作502中,创建引擎容器。为进行图解,ESPE 600可使用函数调用而实例化,所述函数调用指定引擎容器为所述模型的管理者。函数调用可包含由用户或开发者提供的ESPE 600的引擎名称且对ESPE 600来说可为唯一的。
在操作504中,由ESPE 600将一或多个持续查询604实例化为模型。可用一或若干专用线程池使一或多个持续查询604实例化,当新事件流动穿过ESPE 600时,所述一或多个持续查询产生更新。为进行图解,可创建一或多个持续查询604以使ESPE 600 内的业务处理逻辑模型化、预测ESPE 600内的事件、使ESPE 600内的物理系统模型化、预测ESPE 600内的物理系统状态等。举例来说,ESPE 600可用于支持传感器数据监测及管理(例如,感测可包含力、力矩、负载、应力、位置、温度、气压、流体流动、化学性质、电阻、电磁场、辐射、辐照度、接近度、声学、湿度、距离、速度、振动、加速度、电位或电流等),资本市场交易系统,欺诈检测及预防,个性化营销,操作系统监测及管理,网络安全分析等。
为创建持续查询,可识别输入事件结构,所述输入事件结构为具有流动到一或多个源窗口606中的关键字的架构(schema)。也可识别输出事件结构,所述输出事件结构也为具有由一或多个源窗口606及/或一或多个导出窗口608产生的关键字的架构。举例来说,以下代码块图解说明使“City”字段正规化的计算窗口的创建,所述“City”字段是针对所述窗中的事件而创建:
dfESPwindow_source*sw;
sw=contQuery->newWindow_source("sourceWindow",depot,
dfESPindextypes::pi_HASH,
dfESPstring("name:string,ID*:int32,city:string"));
dfESPschema*sw_schema=sw->getSchema();
dfESPwindow_compute*cw;
cw=contQuery->newWindow_compute("computeWindow",depot,
dfESPindextypes::pi_HASH,
dfESPstring("ID*:int32,name:string,oldCity:string,newCity:string"));
//Register the non-key field calculation expressions.
cw->addNonKeyFieldCalc("name");//pass name through unchanged
cw->addNonKeyFieldCalc("city");//pass city through unchanged
//Run city through the blue fusion standardize function.
char newCity="bluefusion bf\r\n";
strcat(newCity,"String result\r\n");
strcat(newCity,"bf=bluefusion_initialize()\r\n");
strcat(newCity,"if(isnull(bf))then\r\n");
strcat(newCity,"print(bf.getlasterror())\r\n");
strcat(newCity,"if(bf.loadqkb(\"ENUSAV)==0)then\r\n");
strcat(newCity,"print(bf.getlasterror())\r\n");
strcat(newCity,"if(bf.standardize(\"City\",city,result)==0)then\r\n");
strcat(newCity,"print(bf.getlasterror())\r\n");
strcat(newCity,"return result");
cw->addNonKeyFieldCalc(newCity);
//Add the subscriber callbacks to the windows
cw->addSubscriberCallback(winSubscribe_compute);
//Add window connectivity
contQuery->addEdge(sw,0,cw);
//create and start the project
project->setNumThreads(2);
myEngine->startProjects();
//declare variables to build up the input data.
dfESPptrVect<dfESPeventPtr>trans;
dfESPevent*p;
//Insert multiple events
p=new dfESPevent(sw_schema,(char*)"i,n,Jerry,1111,apex");
trans.push_back(p);
p=new dfESPevent(sw_schema,(char*)"i,n,Scott,1112,caryy");
trans.push_back(p);
p=new dfESPevent(sw_schema,(char*)"i,n.someone,1113,rallleigh");
trans.push_back(p);
dfESPeventblockPtr ib=dfESPeventblock::newEventBlock(&trans,
dfESPeventblock::ebt_TRANS);
project->injectData(contQuery,sw,ib);
ESPE 600可分析并处理运动中事件或“事件流”。替代存储数据且针对经存储数据运行查询,ESPE 600可存储查询且将数据流式传输穿过查询以在数据被接收时允许对数据的持续分析。可基于关系、图案匹配及程序算法创建一或多个源窗口606以及一或多个导出窗口608,所述一或多个源窗口以及一或多个导出窗口将输入事件流变换成输出事件流以基于所定义的持续查询模型及对经流式传输数据的应用而模型化、模拟、评分、测试、预测等。
在操作506中,使ESPE 600的发布/订阅(pub/sub)能力初始化。在说明性实施例中,使一或多个项目602中的每一项目的pub/sub能力初始化。为使ESPE 600的pub/sub能力初始化且实现所述pub/sub能力,提供端口号。Pub/sub客户端可使用ESP装置102 的主机名称及端口号来建立到ESPE 600的pub/sub连接。举例来说,服务器侦听器套接字对端口号开放以使得事件发布系统104及事件订阅系统106能够针对发布/订阅服务连接到ESPE 600。用以建立到ESPE 600的pub/sub连接的ESP装置102的主机名称及端口号可被称为在ESP装置102处执行的ESPE 600的主机:端口指示。
参考图7,第一ESP系统100a可包含ESP装置102、发布装置200、事件订阅装置 A300a、事件订阅装置B 300b及事件订阅装置C 300c。输入事件流由发布装置200输出到ESP装置102。在替代实施例中,输入事件流可由事件发布系统104中的多个发布装置创建。事件发布系统104中的所述多个发布装置可将事件流进一步发布到另一ESP 装置102。由ESPE600实例化的一或多个持续查询604分析并处理输入事件流以形成输出到事件订阅装置A300a、事件订阅装置B 300b及事件订阅装置C 300c的输出事件流。第一ESP系统100a可包含事件订阅系统106的更多或更少数目个事件订阅装置。
发布-订阅为基于间接寻址的消息导向的交互范式。经处理数据接收者通过订阅特定类别的事件而指定其在从ESPE 600接收信息时的兴趣,而信息源将事件发布到ESPE600而无需直接寻址接收方。ESPE 600协调交互并处理数据。在一些情形中,数据源接收经发布信息已被数据接收者接收的确认。
发布/订阅API可描述为库,所述库使得事件发布者(例如发布装置200)能够将事件流发布到ESPE 600中或使得事件订阅者(例如事件订阅装置A 300a、事件订阅装置B300b及事件订阅装置C 300c)能够订阅来自ESPE 600的事件流。为进行图解,可定义一或多个发布/订阅API。作为实例,由SAS研究所有限公司提供的SAS ESP引擎的版本可提供C++发布/订阅API及Java发布/订阅API。使用发布/订阅API,事件发布应用程序224可将事件流发布到ESPE 600的运行事件流处理器项目源窗口中,且事件订阅应用程序324可订阅ESPE600的事件流处理器项目源窗口。
发布/订阅API在ESP应用程序416与其它联网应用程序之间提供跨平台连接性及字节顺序兼容性,例如,所述其它联网应用程序为在发布装置200处实例化的事件发布应用程序224,以及在事件订阅装置A 300a、事件订阅装置B 300b及事件订阅装置C 300c 中的一者或多者处实例化的事件订阅应用程序324。
参考图5,操作506使ESPE 600的发布/订阅能力初始化。在操作508中,起动一或多个项目602。一或多个所起动项目可在ESP装置102上在背景中运行。
在操作510中,从事件发布系统104中的一或多个计算装置(举例来说,从发布装置200)接收事件块对象。为进行图解,参考图8,ESP子系统800根据说明性实施例经展示为在发布装置200与事件订阅装置A 300a、事件订阅装置B 300b及事件订阅装置C 300c之间介接。ESP子系统800可为或可并非持久的。在说明性实施例中,ESP子系统 800包含发布客户端802、ESPE 600、订阅客户端A 804、订阅客户端B 806及订阅客户端C 808。发布客户端802由在发布装置200处执行的事件发布应用程序224使用发布/ 订阅API起动。订阅客户端A804由在事件订阅装置A 300a处执行的事件订阅应用程序A 324a使用发布/订阅API起动。订阅客户端B 806由在事件订阅装置B 300b处执行的事件订阅应用程序B 324b使用发布/订阅API起动。订阅客户端C 808由在事件订阅装置C 300c处执行的事件订阅应用程序C324c使用发布/订阅API起动。
含有一或多个事件对象的事件块对象从事件发布应用程序224的实例注入到一或多个源窗口606中的一源窗口中。事件块对象(举例来说)由事件发布应用程序224产生且由发布客户端802接收。当事件块对象在ESPE 600的一或多个源窗口606及/或一或多个导出窗口608之间传递,且传递到订阅客户端A 804、订阅客户端B 806及订阅客户端C 808并传递到事件订阅应用程序A 324a、事件订阅应用程序B 324b及事件订阅应用程序C 324c时,维持唯一ID。发布客户端802可在事件块对象通过持续查询处理时在事件块对象中进一步产生并包含唯一嵌入式事务ID,以及发布装置200指派给事件块对象的唯一ID。
在操作512中,通过一或多个持续查询604处理事件块对象。在操作514中,将经处理事件块对象输出到事件订阅系统106的一或多个计算装置。举例来说,订阅客户端 A804、订阅客户端B 806及订阅客户端C 808分别将所接收事件块对象发送到事件订阅应用程序A 324a、事件订阅应用程序B 324b及事件订阅应用程序C 324c。
从事件块被发布到源窗口中且一直穿过由一或多个持续查询604定义的定向图(其中在事件块被输出到订阅者之前经历各种事件转换)时开始,ESPE 600便维持所接收事件块的事件块容器(containership)方面。订阅者可通过将发布者(例如发布装置200)附接到事件块对象的事件块对象的唯一ID与由订阅者接收的事件块ID进行比较而使所订阅事件群组向后与所发布事件群组相关。
在操作516中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作510中继续以继续从事件发布系统104中的一或多个计算装置接收含有事件块对象的一或多个事件流。如果停止处理,那么处理在操作518中继续。在操作518中,停止所起动项目。在操作520中,使ESPE 600关机。
参考图9,描述与事件发布应用程序224相关联的实例性操作。可取决于实施例执行额外较少或不同操作。图9的操作的呈现的次序并不打算为限制性的。
在操作900中,查询ESPE 600以(举例来说)发现当前正在ESPE 600中运行的项目602、持续查询604、窗口606、608、窗口架构及窗口边缘。可将ESPE 600的引擎名称及主机/端口提供为查询的输入且可传回具有ESPE 600上的当前运行项目的项目602的名称、持续查询604的名称、窗口606、608的名称、窗口架构的名称及/或窗口边缘的名称的字符串列表。主机与主机名称或ESP装置102的因特网协议(IP)地址相关联。端口为在pub/sub能力由ESPE 600初始化时提供的端口号。引擎名称为ESPE 600的名称。 ESPE 600的引擎名称及ESP装置102的主机/端口可从计算机可读媒体210上的存储位置读取,可提供于命令线上,或以其它方式输入到事件发布应用程序224或由事件发布应用程序224定义,如所属领域的技术人员所理解。
在操作902中,使发布服务初始化。在操作904中,起动经初始化发布服务,此可形成针对经实例化事件发布应用程序224的发布客户端(例如发布客户端802)。发布客户端(例如发布客户端802)执行经实例化事件发布应用程序224的各种pub/sub活动。举例来说,将ESPE 600的URL的字符串表示传递到“起动”函数。举例来说,URL可包含在ESP装置102处执行的ESPE 600的主机:端口指示、项目602中的项目、持续查询 604中的持续查询及源窗口606中的窗口。“起动”函数可验证并保持特定发布客户端连接的连接参数且将指针传回到发布客户端。为进行图解,可将URL格式化为“dfESP://<host>:<port>/<project name>/<continuous query name>/<window name>”。如果事件发布应用程序224正发布到ESPE600的一个以上源窗口,那么可使用相关联名称(项目名称、持续查询名称、窗口名称)起动到每一源窗口的经初始化发布服务。
在操作906中,在事件发布应用程序224与针对数据发布到的每一源窗口的ESPE600之间形成连接。为形成连接,可将所形成发布客户端的指针传递到“连接”函数且形成最不繁忙等待回路以等待事件块对象从事件发布应用程序224的接收。如果事件发布应用程序224正发布到ESPE 600的一个以上源窗口,那么可使用针对相应“起动”函数调用传回的指针形成到每一所起动窗口的连接。
在操作908中,由事件发布应用程序224创建事件块对象。在操作910中,使用针对相应“起动”函数调用传回到适当源窗口的指针而将所创建事件块发布到ESPE 600。事件发布应用程序224将所创建事件块传递到发布客户端802,其中可能在从发布客户端802请求之后由事件发布应用程序224设置事件块对象中的唯一ID字段。在说明性实施例中,事件发布应用程序224可等待开始发布,直到从发布客户端802接收“就绪”回调为止。将事件块对象注入到源窗口、持续查询及与所起动发布客户端相关联的项目中。
在操作912中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作908中继续以继续创建并发布事件块对象。如果停止处理,那么处理在操作914中继续。在操作914中,断开通过发布客户端而在事件发布应用程序224与ESPE 600之间形成的连接,且停止每一所起动发布客户端。
参考图10,描述与事件订阅应用程序324相关联的实例性操作。可取决于实施例执行额外较少或不同操作。图10的操作的呈现的次序并不打算为限制性的。
类似于操作900,在操作1000中,查询ESPE 600以(举例来说)发现当前正在ESPE600中运行的项目602的名称、持续查询604的名称、窗口606、608的名称、窗口架构的名称及窗口边缘的名称。将ESP装置102的主机名称、ESPE 600的引擎名称及由ESPE 600打开的端口号提供为查询的输入且可传回具有项目602的名称、持续查询604的名称、窗口606、608的名称、窗口架构的名称及/或窗口边缘的名称的字符串列表。
在操作1002中,使订阅服务初始化。在操作1004中,起动经初始化订阅服务,此可形成代表订阅装置300处的事件订阅应用程序324的订阅客户端(例如订阅客户端A 804)。订阅客户端(例如订阅客户端A 804)执行事件订阅应用程序324的各种pub/sub活动。举例来说,可将ESPE 600的URL传递到“起动”函数。“起动”函数可验证并保持特定订阅客户端连接的连接参数且将指针传回到订阅客户端。为进行图解,可将URL 格式化为“dfESP://<host>:<port>/<project name>/<continuous query name>/<window name>”。
在操作1006中,通过所形成订阅客户端在事件订阅应用程序324与ESPE 600之间形成连接。为形成连接,可将所形成订阅客户端的指针传递到“连接”函数且形成最不繁忙等待回路以等待事件块对象的接收。
在操作1008中,由事件订阅应用程序324接收事件块对象。
在操作1010中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作1008中继续以继续接收事件块对象。如果停止处理,那么处理在操作1012中继续。在操作1012中,断开在事件订阅应用程序324与ESPE 600之间通过订阅客户端形成的连接,且停止订阅客户端。
参考图11,展示根据说明性实施例的第二ESP系统1100。第二ESP系统1100可包含ESP装置102、事件发布系统104、事件订阅系统106、消息传入网络装置1102及消息传出网络装置1104。为进行图解,事件发布系统104可包含发布装置A 200a、发布装置B 200b、…及发布装置N 200n。事件发布系统104通过消息传入网络装置1102 将数据发布到ESP装置102。消息传入网络装置1102接收由事件发布系统104发布的事件且将所接收事件注入到ESPE600的适当源窗口中。
为进行图解,事件订阅系统106可包含事件订阅装置A 300a、事件订阅装置B300b、…及事件订阅装置N 300n。事件订阅系统106通过消息传出网络装置1104订阅并接收在由ESPE 600处理之后的所发布数据。消息传出网络装置1104从ESPE 600接收事件且将所述事件发布到事件订阅系统106。消息传入网络装置1102及消息传出网络装置1104可实施于相同或不同装置中,如所属领域的技术人员所理解。尽管未展示,但网络108可用于支持第二ESP系统1100中的一或多个组件之间的通信。
消息传入网络装置1102及消息传出网络装置1104提供消息网络。举例来说,消息网络可实施为经配置以支持大量可能时间敏感及动态消息流的数据组构。消息传入网络装置1102及消息传出网络装置1104的实例性产品及供应商可包含MessageSwitchTM(TMX)、Tervela调配与管理(TPM)系统以及由美国纽约的纽约Tervela公司提供的Tervela持久化引擎(TPE)、由CA安大略(Ontario)渥太华(Ottawa)的Solace系统 (SolaceSystems)提供的Solace消息路由器及由英国伦敦的Pivotal软件(Pivotal Software) 公司提供的RabbitMQTM
消息传入网络装置1102将消息从在事件发布系统104处执行的事件发布应用程序224路由到在ESP装置102处执行的ESPE 600。消息传出网络装置1104将消息从在ESP 装置102处执行的ESPE 600路由到在事件订阅系统106处执行的事件订阅应用程序324。消息传入网络装置1102及消息传出网络装置1104可进一步将信息及消息业务存储于相应消息网络内。
参考图12,ESP装置102可根据说明性实施例进一步包含消息传入网络连接器1200及消息传出网络连接器1202。消息传入网络连接器1200执行与以下各项相关联的操作:连接到消息传入网络装置1102、从消息传入网络装置1102接收事件块对象及将所接收事件块对象发布到ESPE 600的若干源窗口606中的一源窗口。可使用硬件、固件、软件或这些方法的任一组合实施操作。参考图12的实例性实施例,消息传入网络连接器 1200是以软件(涉及计算机可读及/或计算机可执行指令)实施,所述软件存储于第三计算机可读媒体410中且可由第三处理器412存取以用于执行体现消息传入网络连接器1200 的操作的指令。
ESP应用程序416与消息传入网络连接器1200可以各种方式集成,如所属领域的技术人员所理解。消息传入网络连接器1200可使用一或多个编程语言、汇编语言、脚本语言等写入。为进行图解,消息传入网络连接器1200可实施为插件,所述插件为ESP 应用程序416的进程内类别。
消息传出网络连接器1202执行与以下各项相关联的操作:连接到消息传出网络装置1104、从ESPE 600接收在由ESPE 600处理之后的事件块对象及将所接收事件块对象发布到消息传出网络装置1104。可使用硬件、固件、软件或这些方法的任一组合实施操作。参考图12的实例性实施例,消息传出网络连接器1202是以软件(涉及计算机可读及/或计算机可执行指令)实施,所述软件存储于第三计算机可读媒体410中且可由第三处理器412存取以用于执行体现消息传出网络连接器1202的操作的指令。
ESP应用程序416与消息传出网络连接器1202可以各种方式集成,如所属领域的技术人员所理解。消息传出网络连接器1202可使用一或多个编程语言、汇编语言、脚本语言等写入。为进行图解,消息传出网络连接器1202可实施为插件,所述插件为ESP 应用程序416的进程内类别。
ESP应用程序416可经修改以作为第二ESP系统1100的一部分执行。参考图13,进一步描述与ESP应用程序416相关联的实例性操作。可取决于实施例执行额外较少或不同操作。图13的操作的呈现的次序并不打算为限制性的。
类似于操作500,在操作1300中,ESP应用程序416定义并起动ESP装置102处的ESPE600。类似于操作502,在操作1302中,创建引擎容器。类似于操作504,在操作1304中,由ESPE600使一或多个持续查询604实例化为模型。
类似于操作508,在操作1308中,起动一或多个项目602。
在操作1310中,起动ESP装置102处的消息传入网络连接器1200。在说明性实施例中,消息传入网络连接器1200可作为操作1308的一部分起动。如果已配置连接器编配(orchestration),那么消息传入网络连接器1200可直到另一连接器起动或完成之后才起动。可针对若干源窗口606中的每一源窗口起动不同消息传入网络连接器1200以处理从消息传入网络装置1102到每一源窗口的发布。在说明性实施例中,消息传入网络装置1102可使其发布/订阅能力基于主题。为支持主题,主题名称可由消息传入网络连接器1200映射到ESPE 600的若干源窗口606中的一源窗口。为将到相同源窗口的发布流与订阅流隔离且确保事件块对象沿一个方向流动,主题名称可附加有“in”指示符,例如“I”、“in”等。
每一所起动消息传入网络连接器1200可操作为消息传入网络装置1102的客户端。用于连接到消息传入网络装置1102的连接信息可作为消息传入网络连接器1200的起动的一部分而由ESP应用程序416输入到消息传入网络连接器1200,可存储于数据库414 中并由消息传入网络连接器1200存取,或者可以其它方式输入到消息传入网络装置1102 或由消息传入网络装置1102定义,如所属领域的技术人员所理解。输入到消息传入网络连接器1200的额外信息可包含ESPE 600的引擎名称、ESP装置102的主机名称及由 ESPE 600打开的端口号。
为进行图解,当消息传入网络装置1102包含由Tervela公司提供的消息网络时,连接信息可包含器具名称、客户端用户名称、客户端口令及消息传入网络装置1102的主机名称或IP地址。器具名称可定义与Tervela保证的递送上下文相关联的客户端名称且可在所起动消息传入网络连接器1200当中为唯一的。客户端用户名称可定义在Tervela TPM中定义的用户名称。客户端口令可定义与客户端用户名称相关联的口令。主机名称或IP地址可定义主Tervela TMX的主机名称或IP地址。消息传入网络装置1102的主机名称或IP地址、客户端用户名称及客户端口令可用于将每一所起动消息传入网络连接器1200连接到消息传入网络装置1102。
每一所起动消息传入网络连接器1200可通过将消息发布到使用器具名称定义的主题而连接到由Tervela公司提供的消息网络。作为实例,主题可定义为“SAS.META.appliance name”。消息可包含ESPE 600的引擎名称、在ESP装置102处执行的ESPE 600的主机:端口指示、项目602中的项目名称、持续查询604中的持续查询名称、源窗口606的源窗口名称及与消息传入网络连接器1200相关联的源窗口架构。主机:端口字段可由用于消息网络上的主题字符串中的引擎名称替代。为进行图解,可使用由Tervela公司提供的消息网络将主题名称格式化为“SAS.ENGINES.engine name.projectname.continuous query name.window name.IN”,其中引擎名称为ESPE 600 的引擎名称。
为进一步进行图解,当消息传入网络装置1102包含由Solace系统提供的消息网络时,可在连接信息中包含消息传入网络装置1102的主机:端口、客户端用户名称、客户端口令及虚拟专用网络(VPN)名称。可将主题名称格式化为“host:port/project name/continuous query name/window name/I”,其中主机:端口为在ESP装置102处执行的ESPE600的主机:端口指示。消息传入网络装置1102的主机:端口、客户端用户名称及客户端口令可用于将每一所起动消息传入网络连接器1200连接到消息传入网络装置 1102。
每一所起动消息传入网络连接器1200连接到消息传入网络装置1102,其中主题名称与源窗口606的相应源窗口相关联。在事件发布系统104处执行的事件发布应用程序 224可继续使用包含如参考图9所讨论的主机:端口信息的ESP URL格式。可不存在发布/订阅服务器,因此可不按字面解释主机:端口。替代地,识别在ESP装置102处执行的ESPE 600可为过载的。ESPE 600的引擎名称可在由消息传入网络连接器1200发送的消息中映射到在ESP装置102处执行的ESPE 600的主机:端口指示。在与消息传入网络装置1102的通信中使用的主题名称可基于ESPE 600的URL的字符串表示。事件发布系统104及事件订阅系统106知晓来自URL的主机:端口信息,且以在与消息传入网络装置1102的通信中使用的主题名称中的引擎名称替代主机:端口信息。
由Tervela公司提供的消息网络执行的消息接发可使用Tervela保证的递送模式。消息可存留到Tervela TPE器具。当每一所起动消息传入网络连接器1200连接到消息传入网络装置1102时,连接器1200可接收已在预定义时间周期内发布到相关联主题名称的消息以使得所起动消息传入网络连接器1200能够赶上在预定义时间周期期间发送的消息。消息传入网络连接器1200可定义所述时间周期。实例性时间周期可为8小时,但也可定义任何时间周期。
为进一步进行图解,当消息传入网络装置1102包含由Solace系统提供的消息网络时,每一所起动消息传入网络连接器1200可订阅主题“host:port/M”,其中主机:端口为在ESP装置102处执行的ESPE 600的主机:端口指示,此使得所起动消息传入网络连接器1200能够接收与所述主机:端口组合相关联的对ESPE 600的查询请求。
与消息传入网络装置1102相关联的运行时间库可安装于ESP装置102上以支持消息传入网络连接器1200与消息传入网络装置1102之间的连接性。
类似于操作1310,在操作1312中,起动ESP装置102处的消息传出网络连接器1202。在说明性实施例中,消息传出网络连接器1202可作为操作1308的一部分起动。如果已配置连接器编配,那么消息传出网络连接器1202可直到另一连接器起动或完成之后才起动。可针对若干源窗口606中的每一源窗口起动不同消息传出网络连接器1202以由消息传出网络装置1104处理每一源窗口的订阅。类似于消息传入网络装置1102,在说明性实施例中,消息传出网络装置1104可使其发布/订阅能力基于主题。为支持主题,主题名称可由消息传出网络连接器1202映射到ESPE 600的若干源窗口606中的一源窗口。为将到相同源窗口的发布流与订阅流隔离且确保事件块对象沿一个方向流动,主题名称可附加有“out”指示符,例如“O”、“out”等。
每一所起动消息传出网络连接器1202可操作为消息传出网络装置1104的客户端。用于连接到消息传出网络装置1104的连接信息可作为消息传出网络连接器1202的起动的一部分而由ESP应用程序416输入到消息传出网络连接器1202,可存储于数据库414 中并由消息传出网络连接器1202存取,或者可以其它方式输入到消息传出网络装置1104 或由消息传出网络装置1104定义,如所属领域的技术人员所理解。输入到消息传出网络连接器1202的额外信息可包含ESPE 600的引擎名称、ESP装置102的主机名称及由 ESPE 600打开的端口号。
为进行图解,当消息传出网络装置1104包含由Tervela公司提供的消息网络时,连接信息可包含器具名称、客户端用户名称、客户端口令及消息传出网络装置1104的主机名称或IP地址。器具名称可定义与Tervela保证的递送上下文相关联的客户端名称且可在所起动消息传出器具连接器1202当中为唯一的。客户端用户名称可定义在Tervela TPM中定义的用户名称。客户端口令可定义与客户端用户名称相关联的口令。主机名称或IP地址可定义主Tervela TMX的主机名称或IP地址。消息传出网络装置1104的主机名称或IP地址、客户端用户名称及客户端口令可用于将每一所起动消息传出网络连接器1202连接到消息传出网络装置1104。
每一所起动消息传出网络连接器1202可通过将消息发布到使用器具名称定义的主题而连接到由Tervela公司提供的消息网络。作为实例,主题可定义为“SAS.META.appliancename”。消息可包含ESPE 600的引擎名称、在ESP装置102处执行的ESPE 600的主机:端口指示、项目602中的项目名称、持续查询604中的持续查询名称、源窗口606的源窗口名称及与连接器相关联的源窗口架构。主机:端口字段可由用于消息网络上的主题字符串中的引擎名称替代。为进行图解,可使用由Tervela公司提供的消息网络将主题名称格式化为“SAS.ENGINES.engine name.project name.continuous queryname.window name.OUT”。
为进一步进行图解,当消息传出网络装置1104包含由Solace系统提供的消息网络时,可在连接信息中包含消息传出网络装置1104的主机:端口、客户端用户名称、客户端口令及虚拟专用网络(VPN)名称。可将主题名称格式化为“host:port/project name/continuous query name/window name/O”,其中主机:端口为在ESP装置102处执行的ESPE600的主机:端口指示。消息传出网络装置1104的主机:端口用于将每一所起动消息传出网络连接器1202连接到消息传出网络装置1104。
每一所起动消息传出网络连接器1202连接到消息传出网络装置1104,其中主题名称与源窗口606的源窗口相关联。在事件订阅系统106处执行的事件订阅应用程序324 可继续使用包含如参考图10所讨论的主机:端口信息的ESP URL格式。可不存在发布/ 订阅服务器,因此可不按字面解释主机:端口。替代地,识别ESPE 600可为过载的。ESPE 600的引擎名称可通过消息传出网络连接器1202映射到在ESP装置102处执行的ESPE 600的主机:端口指示。在与消息传出网络装置1104的通信中使用的主题名称可基于 ESPE 600的URL的字符串表示。
为进一步进行图解,当消息传出网络装置1104包含由Solace系统提供的消息网络时,每一所起动消息传出网络连接器1202可订阅主题“host:port/M”,其中主机:端口(host:port)为在ESP装置102处执行的ESPE 600的主机:端口指示,此使得所起动消息传出网络连接器1202能够接收与所述主机:端口组合相关联的对ESPE 600的查询请求。
与消息传出网络装置1104相关联的运行时间库可安装于ESP装置102上以支持消息传出网络连接器1202与消息传出网络装置1104之间的连接性。
通过事件发布应用程序224的实例将含有一或多个事件对象的事件块对象注入到一或多个源窗口606中的一源窗口中。由消息传入网络装置1102接收所注入事件块对象。消息传入网络装置1102将所接收事件块对象囊封于包装器中以在不修改的情况下通过消息传入网络装置1102而发射到所起动消息传入网络连接器1200。
类似于操作510,在操作1314中,由ESPE 600接收由所起动消息传入网络连接器1200接收的事件块对象。使用基于主机:端口/项目名称/持续查询名称/窗口名称创建的主题名称来协调事件块对象的发射。
类似于操作512,在操作1316中,通过一或多个持续查询604处理事件块对象。类似于操作514,在操作1318中,将事件块对象输出到所起动消息传出网络连接器1202。消息传出网络连接器1202将事件块对象发送到消息传出网络装置1104,消息传出网络装置1104接收事件块对象并将所接收事件块对象包装以用于通过消息传出网络装置 1104而发射到事件订阅系统106的一或多个计算装置。
再次,从事件块经发布到源窗口中且一直穿过定向图(其中在事件块被输出到订阅者之前经历各种事件转换)时开始,ESPE 600便维持所接收事件块的事件块容器方面。订阅者可通过将发布者(例如发布装置200)附接到事件块对象的事件块对象的唯一ID与由订阅者接收的事件块ID进行比较而使所订阅事件群组向后与所发布事件群组相关。
类似于操作516,在操作1320中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作1314中继续以继续通过消息传入网络装置1102将事件块对象从事件发布系统104中的一或多个计算装置接收到源窗口606中的相关联源窗口。如果停止处理,那么处理在操作1322中继续。在操作1322中,停止所起动项目、消息传入网络连接器 1200及消息传出网络连接器1202。类似于操作520,在操作1324中,使ESPE 600关机。
参考图14,描述与事件发布应用程序224相关联的实例性操作。事件发布应用程序224可经定义以在第二ESP系统1100中执行。可取决于实施例执行额外较少或不同操作。图14的操作的呈现的次序并不打算为限制性的。
在操作1400中,用预定义连接信息形成到消息传入网络装置1102的连接。预定义连接信息可与由消息传入网络连接器1200使用的连接信息一致。为进行图解,预定义连接信息可存储于计算机可读媒体210中。作为实例,函数调用可指示消息传入网络装置1102的消息网络的类型,且配置文件可存储于包含预定义连接信息的计算机可读媒体210中。
为进行图解,当消息传入网络装置1102包含由Tervela公司提供的消息网络时,连接信息可包含器具名称、客户端用户名称、客户端口令及消息传入网络装置1102的主机名称或IP地址。消息传入网络装置1102的主机名称或IP地址、客户端用户名称及客户端口令可用于连接到消息传入网络装置1102。为进一步进行图解,当消息传入网络装置1102包含由Solace系统提供的消息网络时,可在连接信息中包含消息传入网络装置 1102的主机:端口、客户端用户名称、客户端口令及VPN名称。消息传入网络装置1102 的主机:端口用于连接到消息传入网络装置1102。
类似于操作900,在操作1402中,查询ESPE 600以(举例来说)发现当前正在ESPE600中运行的项目602、持续查询604、窗口606、608、窗口架构及窗口边缘。可将ESPE 600的引擎名称及在ESP装置102处执行的ESPE 600的主机:端口指示提供为查询的输入且可传回具有项目602的名称、持续查询604的名称、窗口606、608的名称、窗口架构的名称及窗口边缘的名称的字符串列表。
在操作1404中,视需要使发布服务初始化。举例来说,可不由消息传入网络装置1102使用发布服务。
在操作1406中,起动经初始化发布服务。发布客户端(例如发布客户端802)执行经实例化事件发布应用程序224的各种pub/sub活动。举例来说,将ESPE 600的URL的字符串表示传递到“起动”函数。举例来说,URL可包含在ESP装置102处执行的ESPE 600的主机:端口指示、项目602中的项目、持续查询604中的持续查询及源窗口606中的窗口。“起动”函数可验证并保持特定发布客户端连接的连接参数且将专用套接字连接传回到发布客户端。为进行图解,可将URL格式化为“dfESP://<host>:<port>/<project name>/<continuous queryname>/<window name>”。如果事件发布应用程序224正发布到ESPE 600的一个以上源窗口,那么可使用相关联名称(项目名称、持续查询名称、窗口名称)起动到每一源窗口的经初始化发布服务。
类似于操作908,在操作1408中,由事件发布应用程序224创建事件块对象。类似于操作910,在操作1410中,使用针对相应“起动”函数调用传回到适当源窗口的指针而通过消息传入网络装置1102将所创建事件块发布到ESPE 600。
类似于操作912,在操作1412中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作1408中继续以继续创建并发布事件块对象。如果停止处理,那么处理在操作1414中继续。类似于操作914,在操作1414中,断开在事件发布应用程序224 与消息传入网络装置1102之间形成的连接,且停止每一所起动发布客户端。
参考图15,描述与事件订阅应用程序324相关联的实例性操作。事件订阅应用程序324可经定义以在第二ESP系统1100中执行。可取决于实施例执行额外较少或不同操作。图15的操作的呈现的次序并不打算为限制性的。
在操作1500中,用预定义连接信息形成到消息传出网络装置1104的连接。预定义连接信息可与由消息传出网络连接器1202使用的连接信息一致。为进行图解,预定义连接信息可存储于第二计算机可读媒体310中。作为实例,函数调用可指示消息传出网络装置1104的消息网络的类型,且配置文件可存储于包含预定义连接信息的第二计算机可读媒体310中。
为进行图解,当消息传出网络装置1104包含由Tervela公司提供的消息网络时,连接信息可包含器具名称、客户端用户名称、客户端口令及消息传出网络装置1104的主机名称或IP地址。消息传出网络装置1104的主机名称或IP地址、客户端用户名称及客户端口令可用于连接到消息传出网络装置1104。为进一步进行图解,当消息传出网络装置1104包含由Solace系统提供的消息网络时,可在连接信息中包含消息传出网络装置 1104的主机:端口、客户端用户名称、客户端口令及VPN名称。消息传出网络装置1104 的主机:端口用于连接到消息传出网络装置1104。
类似于操作1000,在操作1502中,查询ESPE 600以(举例来说)发现当前正在ESPE600中运行的项目602、持续查询604、窗口606、608、窗口架构及窗口边缘。将ESPE 600的引擎名称及在ESP装置102处执行的ESPE 600的主机:端口指示提供为查询的输入且可传回具有项目602的名称、持续查询604的名称、窗口606、608的名称、窗口架构的名称及窗口边缘的名称的字符串列表。
在操作1504中,视需要使订阅服务初始化。举例来说,可不由消息传出网络装置1104使用订阅服务。
在操作1506中,起动经初始化订阅服务,此形成代表订阅装置300处的事件订阅应用程序324的订阅客户端(例如订阅客户端A 804)。订阅客户端(例如订阅客户端A 804) 执行事件订阅应用程序324的各种pub/sub活动。举例来说,可将ESPE 600的URL传递到“起动”函数。“起动”函数可验证并保持特定订阅客户端连接的连接参数且将指针传回到订阅客户端。为进行图解,可将URL格式化为“dfESP://<host>:<port>/<project name>/<continuous query name>/<window name>”。
类似于操作1008,在操作1508中,由事件订阅应用程序324接收事件块对象。
类似于操作1010,在操作1510中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作1508中继续以继续接收事件块对象。如果停止处理,那么处理在操作1512中继续。在操作1512中,断开在事件订阅应用程序324与消息传出网络装置 1104之间形成的连接,且停止订阅客户端。
参考图16,展示根据说明性实施例的第三ESP系统1600。第三ESP系统1600可包含多个ESP装置1602、事件发布系统104、事件订阅系统106、消息传入网络装置1102 及消息传出网络装置1104。如果当前现用ESP出故障,那么多个ESP装置1602通过提供至少一个额外ESP装置作为备份而形成故障转移ESP系统,如下文进一步描述。具有备份确保第三ESP系统1600甚至在当前现用ESP出故障时仍继续操作。为进行图解,多个ESP装置1602可包含ESP A102a、ESP B 102b、ESP C 102c、…、及ESP N 102n。
尽管未展示,但可使用网络108来支持第三ESP系统1600的一或多个组件之间的通信。举例来说,多个ESP装置1602可位于单个设施中的单个室或邻近室中及/或可在地理上彼此分散。ESP装置102为多个ESP装置1602的实例性装置。
多个ESP装置1602中的每一者可执行参考图13描述的操作,只有多个ESP装置1602中的仅一者为正将所接收事件块对象发布到消息传出网络装置1104的现用ESP装置除外。多个ESP装置1602中的每一者可从消息传入网络装置1102接收所发布事件块对象。
在图16的说明性实施例中,使用实线将ESP装置B 102b指示为正发布到消息传出网络装置1104的现用ESP装置。尽管多个ESP装置1602的其余ESP装置使用其自身消息传出网络连接器1202连接到消息传出网络装置1104,但其未发布到消息传出网络装置1104。多个ESP装置1602的其余ESP装置可被称为故障转移群组。对多个ESP 装置1602中的哪一ESP装置为现用ESP装置的确定是基于相关联消息传出网络连接器 1202到消息传出网络装置1104的初始连接而确定且所述确定经维持直到现用ESP装置出故障为止。在多个ESP装置1602中的每一ESP装置处运行的消息传出网络连接器1202 与消息传出网络装置1104协调以确定现用ESP装置。
参考图17,描述与消息传入网络连接器1200相关联的实例性操作。消息传入网络连接器1200可经定义以针对ESPE 600的每一源窗口且针对正执行ESPE 600的多个ESP 装置1602中的每一ESP装置而在第三ESP系统1600中执行。可取决于实施例执行额外较少或不同操作。图17的操作的呈现的次序并不打算为限制性的。
在操作1700中,用预定义连接信息形成由多个ESP装置1602中的每一者的每一消息传入网络连接器1200到消息传入网络装置1102的连接,如参考图13的操作1310所描述。举例来说,预定义连接信息可存储于第三计算机可读媒体410中或在消息传入网络连接器1200由ESPE 600起动时传递到消息传入网络连接器1200。在多个ESP装置 1602中的每一者处运行的ESPE 600的引擎名称可为相同的。多个ESP装置1602中的每一者的每一消息传入网络连接器1200可基于相同组的主题为现用的且可配置有相同消息传入网络装置1102连接信息。为同步,多个ESP装置1602中的每一者的每一消息传入网络连接器1200可同时起始消息流,其中消息传入网络装置1102清除关于相关主题且具有相同初始事件块对象ID的消息。
在操作1702中,从消息传入网络装置1102接收查询。在操作1704中,将对查询作出的响应发送到消息传入网络装置1102。为进行图解,当消息传出网络装置1104包含由Solace系统提供的消息网络时,每一消息传入网络连接器1200侦听关于命名为“host:port/M”的主题的元数据请求,其中主机:端口为在ESP装置102处执行的ESPE 600的主机:端口指示。消息传入网络装置1102可以请求/答复方式发送关于此主题的格式化消息。可使用向一者递送(deliver-to-one)的方式来发送请求消息以确保多个ESP装置1602中的仅一者对消息作出响应。
为进一步进行图解,当消息传入网络装置1102包含由Tervela公司提供的消息网络时,每一消息传入网络连接器1200可创建命名为“engine name_meta”的单个群集范围的收件箱(此包含ESPE 600的引擎名称),且可发布关于特殊主题“SAS.META.host:port”的元数据信息(此包含在ESP装置102处执行的ESPE 600的主机:端口指示)。消息传入网络装置1102可订阅此主题且保存所接收元数据及引擎映射信息。为处理来自发布装置200的后续查询,消息传入网络装置1102用来自所保存元数据的所请求信息对查询作出响应。消息传入网络装置1102可使用映射到ESPE 600的引擎名称的在ESP装置 102处执行的ESPE 600的所接收主机:端口指示而导出收件箱名称,且将格式化消息以请求/答复方式发送到收件箱。
在操作1706中,由所起动消息传入网络连接器1200从消息传入网络装置1102接收事件块对象。在操作1708中,基于对应于ESPE 600的源窗口名称的主题名称而将所接收事件块对象发布到ESPE 600。在操作1710中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作1706中继续以继续从消息传入网络装置1102接收事件块对象。如果停止处理,那么处理在操作1712中继续。在操作1712中,断开到消息传入网络装置1102的连接,且停止消息传入网络连接器1200。
参考图18,描述与消息传出网络连接器1202相关联的实例性操作。消息传出网络连接器1202可经定义以针对每一源窗口且针对多个ESP装置1602中的每一ESP装置而在第三ESP系统1600中执行。可取决于实施例执行额外较少或不同操作。图18的操作的呈现的次序并不打算为限制性的。在第三ESP系统1600中的多个ESP装置1602 中的每一ESP装置处执行的消息传出网络连接器1202在无服务中断或数据丢失的情况下实现在多个ESP装置1602处运行的任何ESPE 600的快速且无缝故障转移。
在操作1800中,用预定义连接信息形成由多个ESP装置1602中的每一者的每一消息传出网络连接器1202到消息传出网络装置1104的连接,参考操作1312所描述。举例来说,预定义连接信息可存储于第三计算机可读媒体410中或在消息传出网络连接器 1202由ESPE 600起动时传递到消息传出网络连接器1202。
类似于操作1702及1704,在操作1801中,从消息传出网络装置1104接收查询,且将对查询作出的响应发送到消息传出网络装置1104。
在操作1802中,由所起动消息传出网络连接器1202从ESPE 600接收事件块对象。在操作1804中,做出关于消息传出网络连接器1202是否接收指示消息传出网络连接器1202与现用ESP装置相关联的通知的确定。举例来说,将消息传出网络连接器1202是与现用ESP装置还是与备用ESP装置相关联传达到消息传出网络连接器1202。可最初在多个ESP装置1602中的每一消息传出网络连接器1202连接到消息传出网络装置1104 时且在消息传出网络连接器1202中的一者或多者的状态由于出故障ESP装置或加入多个ESP装置1602的新ESP装置而改变时确定所述通知。当消息传出网络连接器1202 与备用ESP装置相关联时,所述通知可指示消息传出网络连接器1202为备用或非现用连接器。
为进行图解,当消息传出网络装置1104包含由Solace系统提供的消息网络时,可在多个ESP装置1602中的每一者的每一消息传出网络连接器1202当中共享独占消息接发队列。独占消息接发队列用于发信号表示多个ESP装置1602中的ESP装置是否为现用ESP装置。无数据可经发布到独占消息接发队列。
当消息传出网络装置1104包含由Solace系统提供的消息网络时,使用以下机制协调多个ESP装置1602当中的ESP装置现用/备用状态。当每一消息传出网络连接器1202 起动时,消息传出网络连接器1202(作为独占消息接发队列的消耗者)试图绑定到针对多个ESP装置1602创建的独占消息接发队列。当消息传出网络连接器1202首先绑定到独占消息接发队列时,消息传出网络连接器1202从消息传出网络装置1104接收指示其与现用ESP装置相关联的现用指示符。当其它消息传出网络连接器1202绑定到独占消息接发队列时,所述其它消息传出网络连接器从消息传出网络装置1104接收指示其与多个ESP装置1602中的非现用ESP装置相关联的非现用指示符。如果现用ESP装置出故障或与消息传出网络装置1104断开连接,那么下一消息传出网络连接器1202从消息传出网络装置1104接收指示其现在与现用ESP装置相关联的现用指示符。举例来说,用以连接到消息传出网络装置1104的第二消息传出网络连接器1202可经选择以在现用 ESP装置出故障时接收现用指示符。
为进一步进行图解,当消息传出网络装置1104包含由Tervela公司提供的消息网络时,可使用以下机制协调多个ESP装置1602当中的ESP装置现用/备用状态。当每一消息传出网络连接器1202起动时,每一消息传出网络连接器1202尝试将ESPE 600的引擎名称用于收件箱名称来创建收件箱,从而使收件箱为多个ESP装置1602所特有。如果成功,那么消息传出网络连接器1202从消息传出网络装置1104接收指示其与现用ESP 装置相关联的现用指示符,且消息传出网络连接器1202取得系统范围保证的递送上下文的所有权。如果收件箱已存在,那么现用ESP装置已被选定,且其余消息传出器具连接器1202从消息传出网络装置1104接收指示其与多个ESP装置1602中的非现用ESP 装置相关联的非现用指示符。其余消息传出器具连接器1202连接到收件箱,且将空消息发送到收件箱。现用消息传出网络连接器1202从备用消息传出器具连接器1202接收空消息。其余消息传出器具连接器1202中的第一响应者可通过对所述消息传出网络连接器1202的空消息作出响应而由现用消息传出网络连接器1202选择为现用备用连接器。现用消息传出网络连接器1202可维持其它消息传出器具连接器1202的映射及其状态。如果现用消息传出网络连接器1202接收到现用备用连接器的收件箱断开的通知,那么现用消息传出网络连接器1202通过对从所述消息传出网络连接器1202接收的空消息作出响应而通知另一备用连接器变成现用备用连接器。当现用ESP装置出故障时,收件箱也出故障,且消息传出网络装置1104将消息发送到非现用消息传出器具连接器1202。当现用备用连接器接收到所述消息时,所述现用备用连接器变成与现用ESP装置相关联的现用消息传出网络连接器1202,且如上文所描述创建其余非现用消息传出器具连接器 1202连接到的新收件箱。当其余备用连接器接收到所述消息时,其保持其备用状态且将空消息发送到所创建新收件箱。
如果在操作1804中通知为现用的,那么处理在操作1808中继续。如果在操作1804中未接收到通知,那么处理在操作1806中继续。
在操作1806中,将所接收事件块对象存储到第三计算机可读媒体410,且处理在操作1816中继续。举例来说,可将所接收事件块对象存储于保持预定义数目个所接收事件块对象的缓冲器中,如所属领域的技术人员所理解。当缓冲器含有预定义数目个所接收事件块对象时,在存储所接收事件块对象之前从缓冲器移除缓冲器中的最旧事件块对象。
在操作1808中,做出关于现用消息传出网络连接器1202是否与新现用的ESP装置相关联的确定。当ESP装置从备用状态切换到现用状态时确定新现用的ESP装置。在操作1808的后续反复时,ESP装置并非新现用的,这是因为所述状态持续为现用状态。如果现用消息传出网络连接器1202与新现用的ESP装置相关联,那么处理在操作1810 中继续。如果现用消息传出网络连接器1202不与新现用的ESP装置相关联,那么处理在操作1814中继续。
在操作1810中,确定上一所发布事件块对象的识别符。为进行图解,当消息传出网络装置1104包含由Solace系统提供的消息网络时,现用消息传出网络连接器1202从由消息传出网络装置1104维持的上一值队列确定上一所发布事件块对象。上一值队列可具有一个消息的深度且含有由先前现用ESP装置发布的关于上一值队列所订阅的主题的上一消息。与新现用的ESP装置相关联的消息传出网络连接器1202作为浏览器绑定到上一值队列、检索从上一值队列发布的上一所成功发布事件块对象、保存其事件块对象ID且与上一值队列断开连接。
为进一步进行图解,当消息传入网络装置1102包含由Tervela公司提供的消息网络时,现用连接器查询其针对上一所成功发布事件块对象的事件块对象ID所拥有的系统范围保证的递送上下文。
在操作1812中,通过识别具有相关联事件块对象ID的任何事件块对象而从缓冲器选择在上一所发布事件块对象之后接收的一或多个事件块对象,所述相关联事件块对象ID大于上一所成功发布事件块对象的事件块对象ID。在操作1813中,将选定一或多个事件块对象及在操作1802中接收的事件块对象发布到消息传出网络装置1104,且处理在操作1816中继续。
在操作1814中,将所接收事件块对象发布到消息传出网络装置1104。在操作1816中,做出关于是否停止处理的确定。如果不停止处理,那么处理在操作1802中继续以继续从ESPE 600接收事件块对象。如果停止处理,那么处理在操作1818中继续。在操作1818中,断开到消息传出网络装置1104的连接,且停止消息传出网络连接器1202。
为保证在经重新启动ESP装置上执行的ESPE 600可与其余多个ESP装置1602充分同步,可使用“保证”模式中的持久存留/还原特征。举例来说,可由多个ESP装置 1602的ESPE 600周期性地存留ESPE 600的状态。可由ESPE 600触发ESPE 600的状态的存留,但此可产生冗余的存留数据。作为另一实例,现用消息传出网络连接器1202 可触发在现用ESP装置处执行的ESPE 600的存留。
存留数据的位置可针对在多个ESP装置1602处执行的每一ESPE 600为相同的,使得当出故障ESP装置经重新启动且经重新连接时,存留数据可用于使在出故障ESP装置处执行的ESPE 600回到接近于在其余多个ESP装置1602处执行的ESPE 600的当前状态的状态。在出故障ESP装置处执行的ESPE 600可与消息传出网络装置1104一起工作以在存留数据之后接收事件块对象以充分赶上当前状态。一旦赶上,在出故障ESP装置处执行的ESPE 600便可取决于如上文所讨论的消息传出网络装置1104的类型而与消息传出网络装置1104一起注册为备用。
本发明的方面提供技术问题的技术解决方案,例如当ESP装置出故障(此导致完全服务中断及潜在显著的数据丢失)时出现的计算问题。当经流式传输数据正支持任务关键操作(例如支持不间断制造或钻取操作的操作)时,数据丢失可为毁灭性的。第三ESP系统1600在无服务中断或数据丢失的情况下实现在多个ESP装置1602处运行的ESPE 600 的快速且无缝故障转移,因此显著改进依靠数据流的实况或实时处理的操作系统的可靠性。事件发布系统104、事件订阅系统106及未在出故障ESP装置处执行的每一ESPE 600 并不知晓出故障ESP装置或受出故障ESP装置影响。第三ESP系统1600可包含数千个事件发布系统104及事件订阅系统106。一些先前故障转移系统需要事件发布系统104 及事件订阅系统106重新附接到新ESP,从而导致系统停机时间及数据的丢失。第三ESP 系统1600保持消息传出网络连接器1202及消息传出网络装置1104的边界内的故障转移逻辑及感知。
在说明性实施例中,第三ESP系统1600可经配置以用由英国伦敦的Pivotal软件公司提供的RabbitMQTM操作。RabbitMQTM为实施先进消息队列协议的开源消息代理软件。举例来说,可使用RabbitMQTM来实施消息传入网络装置1102及/或消息传出网络装置 1104。
本文中使用词语“说明性”来意指用作实例、例子或图解。本文中描述为“说明性”的任何方面或设计未必应视为比其它方面或设计更优或有利。此外,出于本发明的目的且除非另外规定,否则一(“a”或“an”)意指“一或多个”。仍此外,在详细说明中使用“及”或者“或”打算包含“及/或”,除非另外明确指示。说明性实施例可使用标准编程及/或工程设计技术而实施为方法、设备或制品以产生软件、固件、硬件或其任一组合来控制计算机以实施所揭示实施例。
已出于图解及描述目的而呈现对所揭示标的物的说明性实施例的前述描述。前述描述并不打算为穷尽性的或将所揭示标的物限制于所揭示的精确形式,且可依照上述教示做出或从所揭示标的物的实践获取修改及变化。选择并描述所述实施例以便解释所揭示标的物的原理且作为所揭示标的物的实际应用,以使得所属领域的技术人员能够在各种实施例中且以如适合于所预期的特定用途的各种修改来利用所揭示标的物。

Claims (30)

1.一种非暂时性计算机可读媒体,其具有存储于其上的计算机可读指令,当由事件流处理ESP装置执行时,所述计算机可读指令致使所述ESP装置:
从事件流处理引擎ESPE接收事件块对象,其中所述所接收事件块对象包含所述所接收事件块对象的唯一识别符,且其中所述ESPE在所述ESP装置处实例化且所述ESP装置包括所述非暂时性计算机可读媒体和经实例化ESPE;
将所述ESP装置的第一状态确定为现用或备用;
当所述ESP装置的所述第一状态经确定为现用时,将所述ESP装置的第二状态确定为新现用的或非新现用的,其中当所述ESP装置从备用状态切换到现用状态时确定为新现用的;
当所述ESP装置的所述第二状态经确定为新现用时,
将上一所发布事件块对象识别符确定为唯一识别上一所发布事件块对象的识别符;
从所述非暂时性计算机可读媒体选择下一事件块对象,所述下一事件块对象具有大于所述所确定上一所发布事件块对象识别符的事件块对象识别符;及
将所述选定下一事件块对象发布到消息传出网络装置;
当所述ESP装置的所述第二状态经确定为非新现用时,将所述所接收事件块对象发布到所述消息传出网络装置;且
当所述ESP装置的所述第一状态经确定为备用时,将所述所接收事件块对象存储于所述非暂时性计算机可读媒体中。
2.根据权利要求1所述的非暂时性计算机可读媒体,其中多个下一事件块对象被选择且被发布到所述消息传出网络装置。
3.根据权利要求1所述的非暂时性计算机可读媒体,其中所述计算机可读指令进一步致使所述ESP装置使用连接信息建立到所述消息传出网络装置的连接。
4.根据权利要求3所述的非暂时性计算机可读媒体,其中所述连接信息是从所述ESPE接收。
5.根据权利要求3所述的非暂时性计算机可读媒体,其中所述连接信息包含所述消息传出网络装置的主机名称及用于将所述所接收事件块对象发布到所述消息传出网络装置的端口号。
6.根据权利要求3所述的非暂时性计算机可读媒体,其中所述连接信息包含所述消息传出网络装置的因特网协议地址。
7.根据权利要求3所述的非暂时性计算机可读媒体,其中在建立所述连接之后,所述计算机可读指令进一步致使事件订阅装置从所述消息传出网络装置接收先前经发布到所述消息传出网络装置的所发布事件块对象。
8.根据权利要求7所述的非暂时性计算机可读媒体,其中先前经发布到所述消息传出网络装置的所述事件块对象是由事件发布装置发布。
9.根据权利要求3所述的非暂时性计算机可读媒体,其中在建立所述连接之后,所述计算机可读指令进一步致使事件订阅装置从所述消息传出网络装置接收先前在预定义时间周期期间经发布到所述消息传出网络装置的多个所发布事件块对象。
10.根据权利要求3所述的非暂时性计算机可读媒体,其中建立所述连接包括:
将消息发布到包含所述ESP装置的主机名称及端口号的主题。
11.根据权利要求10所述的非暂时性计算机可读媒体,其中所述所发布消息进一步包含所述ESPE的引擎名称。
12.根据权利要求10所述的非暂时性计算机可读媒体,其中建立所述连接进一步包括:
以包含所述ESPE的引擎名称的名称创建收件箱。
13.根据权利要求1所述的非暂时性计算机可读媒体,其中所述非暂时性计算机可读媒体至少包含第一非暂时性计算机可读媒体及第二非暂时性计算机可读媒体,其中所述第一非暂时性计算机可读媒体经配置以存储所述计算机可读指令,且所述第二非暂时性计算机可读媒体经配置以存储所述所接收事件块对象。
14.根据权利要求1所述的非暂时性计算机可读媒体,其中所述所接收事件块对象被发布到包含所述ESP装置的主机名称及端口号的主题。
15.根据权利要求1所述的非暂时性计算机可读媒体,其中所述所接收事件块对象被发布到包含所述ESPE的引擎名称的主题。
16.根据权利要求1所述的非暂时性计算机可读媒体,其中所述所接收事件块对象被发布到包含所述ESPE的项目名称、持续查询名称及源窗口名称的主题。
17.根据权利要求1所述的非暂时性计算机可读媒体,其中确定所述ESP装置的所述第一状态包括:
尝试绑定到在所述消息传出网络装置处建立的独占消息接发队列。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中确定所述ESP装置的所述第一状态进一步包括:
当所述绑定尝试成功时,从所述消息传出网络装置接收现用指示符,其中所述现用指示符与现用事件流处理装置相关联;及
当所述绑定尝试不成功时,从所述消息传出网络装置接收备用指示符,其中所述备用指示符与非现用事件流处理装置相关联。
19.根据权利要求18所述的非暂时性计算机可读媒体,其中确定所述ESP装置的所述第二状态包括:
在从所述消息传出网络装置接收到所述备用指示符之后,从所述消息传出网络装置接收所述现用指示符。
20.根据权利要求1所述的非暂时性计算机可读媒体,其中确定所述ESP装置的所述第一状态包括:
尝试使用所述ESPE的引擎名称来创建收件箱。
21.根据权利要求20所述的非暂时性计算机可读媒体,其中确定所述ESP装置的所述第一状态进一步包括:
当创建所述收件箱的所述尝试成功时,从所述消息传出网络装置接收现用指示符,其中所述现用指示符与现用事件流处理装置相关联;及
当创建所述收件箱的所述尝试不成功时,从所述消息传出网络装置接收备用指示符,其中所述备用指示符与非现用事件流处理装置相关联。
22.根据权利要求21所述的非暂时性计算机可读媒体,其中在接收到所述备用指示符之后,所述计算机可读指令进一步致使所述ESP装置将空消息发送到所述所创建收件箱。
23.根据权利要求21所述的非暂时性计算机可读媒体,其中在接收到所述现用指示符之后,所述计算机可读指令进一步致使所述ESP装置在所述所创建收件箱中从事件订阅装置接收空消息。
24.根据权利要求21所述的非暂时性计算机可读媒体,其中确定所述ESP装置的所述第二状态包括:
在从所述消息传出网络装置接收到所述备用指示符之后,从所述消息传出网络装置接收所述现用指示符。
25.根据权利要求1所述的非暂时性计算机可读媒体,其中确定所述上一所发布事件块对象识别符包括:
绑定到在所述消息传出网络装置处建立的上一值队列;及
检索从所述上一值队列发布的上一所成功发布事件块对象。
26.根据权利要求1所述的非暂时性计算机可读媒体,其中确定所述上一所发布事件块对象识别符包括:
查询所述消息传出网络装置以得到所述上一所发布事件块对象识别符。
27.一种事件流处理ESP系统,其包括:
消息传出网络装置;及
ESP装置,其包括:
处理器,其经配置以执行事件流处理引擎ESPE,其中所述ESPE在所述ESP装置处实例化;及
非暂时性计算机可读媒体,其可操作地耦合到所述处理器,所述非暂时性计算机可读媒体具有存储于其上的计算机可读指令,当由所述处理器执行时,所述计算机可读指令致使所述ESP装置:
从所述ESPE接收事件块对象,其中所述所接收事件块对象包含所述所接收事件块对象的唯一识别符;
将所述ESP装置的第一状态确定为现用或备用;
当所述ESP装置的所述第一状态经确定为现用时,将所述ESP装置的第二状态确定为新现用的或非新现用的,其中当所述ESP装置从备用状态切换到现用状态时确定为新现用的;
当所述ESP装置的所述第二状态经确定为新现用时,
将上一所发布事件块对象识别符确定为唯一识别上一所发布事件块对象的识别符;
从所述非暂时性计算机可读媒体选择下一事件块对象,所述下一事件块对象具有大于所述所确定上一所发布事件块对象识别符的事件块对象识别符;及
将所述选定下一事件块对象发布到所述消息传出网络装置;
当所述ESP装置的所述第二状态经确定为非新现用时,将所述所接收事件块对象发布到所述消息传出网络装置;且
当所述ESP装置的所述第一状态经确定为备用时,将所述所接收事件块对象存储于所述非暂时性计算机可读媒体中。
28.根据权利要求27所述的ESP系统,其中多个下一事件块对象被选择且被发布到所述消息传出网络装置。
29.一种支持事件流处理ESP系统中的故障转移的方法,所述方法包括:
从在所述ESP装置处执行的事件流处理引擎ESPE接收事件块对象,其中所述所接收事件块对象包含所述所接收事件块对象的唯一识别符;
由所述ESP装置将所述ESP装置的第一状态确定为现用或备用;
当所述ESP装置的所述第一状态经确定为现用时,由所述ESP装置将所述ESP装置的第二状态确定为新现用的或非新现用的,其中当所述ESP装置从备用状态切换到现用状态时确定为新现用的;
当所述ESP装置的所述第二状态经确定为新现用时,
由所述ESP装置将上一所发布事件块对象识别符确定为唯一识别上一所发布事件块对象的识别符;
从可由所述ESP装置存取的非暂时性计算机可读媒体选择下一事件块对象,其中所述下一事件块对象具有大于所述所确定上一所发布事件块对象识别符的事件块对象识别符;及
由所述ESP装置将所述选定下一事件块对象发布到消息传出网络装置。
30.根据权利要求29所述的方法,其中多个下一事件块对象被选择且被发布到所述消息传出网络装置。
CN201580023361.0A 2014-06-06 2015-05-26 支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统 Active CN106464746B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462008725P 2014-06-06 2014-06-06
US62/008,725 2014-06-06
US201562134852P 2015-03-18 2015-03-18
US62/134,852 2015-03-18
US14/662,528 US9122651B1 (en) 2014-06-06 2015-03-19 Computer system to support failover in an event stream processing system
US14/662,528 2015-03-19
PCT/US2015/032370 WO2015187400A1 (en) 2014-06-06 2015-05-26 Computer system to support failover in an event stream processing system

Publications (2)

Publication Number Publication Date
CN106464746A CN106464746A (zh) 2017-02-22
CN106464746B true CN106464746B (zh) 2018-11-06

Family

ID=53938883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580023361.0A Active CN106464746B (zh) 2014-06-06 2015-05-26 支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统

Country Status (7)

Country Link
US (2) US9122651B1 (zh)
EP (1) EP3117590B1 (zh)
CN (1) CN106464746B (zh)
CA (1) CA2943128C (zh)
ES (1) ES2707332T3 (zh)
SG (1) SG11201608051WA (zh)
WO (1) WO2015187400A1 (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122651B1 (en) * 2014-06-06 2015-09-01 Sas Institute Inc. Computer system to support failover in an event stream processing system
US9356986B2 (en) 2014-08-08 2016-05-31 Sas Institute Inc. Distributed stream processing
WO2017147411A1 (en) * 2016-02-25 2017-08-31 Sas Institute Inc. Cybersecurity system
DE102016122384A1 (de) * 2016-11-21 2018-05-24 Beckhoff Automation Gmbh Konzept zum steuern einer nachrichtenübermittlung zwischen kommunikationsteilnehmern eines automatisierungssystems
US10637817B2 (en) 2016-11-28 2020-04-28 Amazon Technologies, Inc. Managing messaging protocol communications
US10372486B2 (en) 2016-11-28 2019-08-06 Amazon Technologies, Inc. Localized device coordinator
US10608973B2 (en) 2016-11-28 2020-03-31 Amazon Technologies, Inc. Embedded codes in messaging protocol communications
US10452439B2 (en) 2016-11-28 2019-10-22 Amazon Technologies, Inc. On-demand code execution in a localized device coordinator
US10417049B2 (en) 2016-11-28 2019-09-17 Amazon Technologies, Inc. Intra-code communication in a localized device coordinator
US10193839B2 (en) * 2016-11-28 2019-01-29 Amazon Technologies, Inc Managing security in messaging protocol communications
US10783016B2 (en) 2016-11-28 2020-09-22 Amazon Technologies, Inc. Remote invocation of code execution in a localized device coordinator
US10747592B2 (en) * 2016-12-09 2020-08-18 Sas Institute Inc. Router management by an event stream processing cluster manager
CA3009354C (en) * 2016-12-09 2019-01-08 Sas Institute Inc. Event stream processing cluster manager
US20180262597A1 (en) * 2017-03-08 2018-09-13 Citrix Systems, Inc. Universal quality of service for internet of things devices
US11200331B1 (en) 2018-11-21 2021-12-14 Amazon Technologies, Inc. Management of protected data in a localized device coordinator
US11372654B1 (en) 2019-03-25 2022-06-28 Amazon Technologies, Inc. Remote filesystem permissions management for on-demand code execution
US11620194B1 (en) * 2021-06-29 2023-04-04 Amazon Technologies, Inc. Managing failover between data streams
US11775401B1 (en) * 2022-04-22 2023-10-03 Bank Of America Corporation Intelligent coordination of log analysis and repair processes in a multi-cloud system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101116057A (zh) * 2004-12-30 2008-01-30 英特尔公司 在多个指令定序器上基于指令集的线程执行机制
CN100524223C (zh) * 2001-11-15 2009-08-05 英特尔公司 基于pmi和smi的调度执行框架中用于并发处理程序执行的方法
CN101578590A (zh) * 2005-08-23 2009-11-11 Slt逻辑有限公司 高速网络中用于可重新配置的位流处理的全协议引擎

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5351276A (en) * 1991-02-11 1994-09-27 Simpact Associates, Inc. Digital/audio interactive communication network
EP0687089B1 (en) 1994-06-10 2003-05-28 Hewlett-Packard Company, A Delaware Corporation Event-processing system and method of constructing such a system
US5845280A (en) 1995-09-25 1998-12-01 Microsoft Corporation Method and apparatus for transmitting a file in a network using a single transmit request from a user-mode process to a kernel-mode process
US6363497B1 (en) * 1997-05-13 2002-03-26 Micron Technology, Inc. System for clustering software applications
US6292905B1 (en) * 1997-05-13 2001-09-18 Micron Technology, Inc. Method for providing a fault tolerant network using distributed server processes to remap clustered network resources to other servers during server failure
US6449618B1 (en) 1999-03-25 2002-09-10 Lucent Technologies Inc. Real-time event processing system with subscription model
US6681230B1 (en) 1999-03-25 2004-01-20 Lucent Technologies Inc. Real-time event processing system with service authoring environment
US6502133B1 (en) 1999-03-25 2002-12-31 Lucent Technologies Inc. Real-time event processing system with analysis engine using recovery information
US6496831B1 (en) 1999-03-25 2002-12-17 Lucent Technologies Inc. Real-time event processing system for telecommunications and other applications
GB2357227B (en) 1999-12-08 2003-12-17 Hewlett Packard Co Security protocol
US7039391B2 (en) 2000-11-28 2006-05-02 Xanboo, Inc. Method and system for communicating with a wireless device
US7051029B1 (en) 2001-01-05 2006-05-23 Revenue Science, Inc. Identifying and reporting on frequent sequences of events in usage data
US7219169B2 (en) 2002-09-30 2007-05-15 Sun Microsystems, Inc. Composite DMA disk controller for efficient hardware-assisted data transfer operations
US8055753B2 (en) 2003-06-11 2011-11-08 International Business Machines Corporation Peer to peer job monitoring and control in grid computing systems
US7627617B2 (en) * 2004-02-11 2009-12-01 Storage Technology Corporation Clustered hierarchical file services
US20060153185A1 (en) 2004-12-28 2006-07-13 Intel Corporation Method and apparatus for dynamically changing ring size in network processing
US8189599B2 (en) * 2005-08-23 2012-05-29 Rpx Corporation Omni-protocol engine for reconfigurable bit-stream processing in high-speed networks
US8046626B2 (en) * 2006-08-25 2011-10-25 Cisco Technology, Inc. System and method for maintaining resiliency of subscriptions to an event server
US8099452B2 (en) 2006-09-05 2012-01-17 Microsoft Corporation Event stream conditioning
US8213295B2 (en) 2006-09-12 2012-07-03 Qualcomm Incorporated Transaction timeout handling in communication session management
US8085708B2 (en) 2006-10-25 2011-12-27 Sony Ericsson Mobile Communications Ab Methods, systems, and devices for establishing a registrationless data communication connection between electronic devices
US8065319B2 (en) 2007-04-01 2011-11-22 Nec Laboratories America, Inc. Runtime semantic query optimization for event stream processing
US8300647B2 (en) * 2007-05-18 2012-10-30 Nvidia Corporation Intelligent load balancing and failover of network traffic
US20080301125A1 (en) 2007-05-29 2008-12-04 Bea Systems, Inc. Event processing query language including an output clause
US7984040B2 (en) 2007-06-05 2011-07-19 Oracle International Corporation Methods and systems for querying event streams using multiple event processors
US9449047B2 (en) 2007-06-19 2016-09-20 Sybase, Inc. Dynamic modification of schemas in streaming databases
US8745012B2 (en) 2007-08-10 2014-06-03 Sybase, Inc. Log-structured store for streaming data
US8103714B2 (en) 2008-08-15 2012-01-24 International Business Machines Corporation Transactional quality of service in event stream processing middleware
US9058572B2 (en) * 2008-12-04 2015-06-16 Sap Se Transaction aware, flexible interface for a state correlation and transition execution engine
US8443166B2 (en) * 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
JP4870183B2 (ja) * 2009-03-13 2012-02-08 株式会社日立製作所 ストリームデータ処理システムにおける障害回復方法、計算機システム及び障害回復プログラム
US8949801B2 (en) 2009-05-13 2015-02-03 International Business Machines Corporation Failure recovery for stream processing applications
US8234518B2 (en) * 2009-07-21 2012-07-31 Vmware, Inc. Method for voting with secret shares in a distributed system
CA2712956C (en) 2009-08-14 2014-09-23 Research In Motion Limited Methods and apparatus for managing notifications for service events
US8595234B2 (en) 2010-05-17 2013-11-26 Wal-Mart Stores, Inc. Processing data feeds
US8886990B2 (en) 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
JP5867206B2 (ja) 2012-03-16 2016-02-24 富士通株式会社 移動制御装置,プログラム及びストレージ装置
US20140047377A1 (en) 2012-08-09 2014-02-13 Sap Ag Retrieving data from an external data source
US9063974B2 (en) 2012-10-02 2015-06-23 Oracle International Corporation Hardware for table scan acceleration
US10102028B2 (en) 2013-03-12 2018-10-16 Sas Institute Inc. Delivery acknowledgment in event stream processing
US9122651B1 (en) * 2014-06-06 2015-09-01 Sas Institute Inc. Computer system to support failover in an event stream processing system
US9529649B2 (en) * 2014-10-23 2016-12-27 Sas Institute Inc. Techniques to compute attribute relationships utilizing a leveling operation in a computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100524223C (zh) * 2001-11-15 2009-08-05 英特尔公司 基于pmi和smi的调度执行框架中用于并发处理程序执行的方法
CN101116057A (zh) * 2004-12-30 2008-01-30 英特尔公司 在多个指令定序器上基于指令集的线程执行机制
CN101578590A (zh) * 2005-08-23 2009-11-11 Slt逻辑有限公司 高速网络中用于可重新配置的位流处理的全协议引擎

Also Published As

Publication number Publication date
EP3117590B1 (en) 2018-11-28
CN106464746A (zh) 2017-02-22
SG11201608051WA (en) 2016-10-28
EP3117590A1 (en) 2017-01-18
WO2015187400A1 (en) 2015-12-10
ES2707332T3 (es) 2019-04-03
US9722862B2 (en) 2017-08-01
US20150358196A1 (en) 2015-12-10
CA2943128A1 (en) 2015-12-10
EP3117590A4 (en) 2018-01-10
US9122651B1 (en) 2015-09-01
CA2943128C (en) 2017-06-13

Similar Documents

Publication Publication Date Title
CN106464746B (zh) 支持事件流处理系统中的故障转移的方法与非暂时性计算机可读媒体以及系统
US11595477B2 (en) Cloud storage methods and systems
US9369406B2 (en) Resource server providing a rapidly changing resource
CN103927253B (zh) 多浏览器兼容性测试方法及系统
CN105959168B (zh) 网络复制的技术
US8370370B2 (en) Bridging real-world web applications and 3D virtual worlds
CN109844717A (zh) 用于移动应用程序的实时远程控制的系统和方法
CN108605049A (zh) 用于用户设备的基于应用状态和卡片的消息共享方法
US9363134B1 (en) Lightweight browser monitoring and viewing
US20170371508A1 (en) Menu management method, server, and system
CN106161145A (zh) 一种服务器系统运行状态信息的监控方法和系统
CN109863527A (zh) 用于展现的本地内容的服务器侧渲染的方法和系统
CN104022945B (zh) 在客户端中实现即时通讯的方法和装置
JP2014525092A (ja) サードパーティのコンテンツをオンライン文書署名に関連付けるための方法
US10482148B2 (en) Systems and methods for co-browsing
CN106572139A (zh) 多终端控制方法、终端、服务器和系统
CN108701130A (zh) 使用自动浏览群集更新提示模型
CN105095220B (zh) 一种浏览器实现方法、终端和虚拟化代理装置
US10241976B2 (en) Techniques for peer-to-peer communication
US8966595B1 (en) Techniques for peer-to-peer communication using a “shared secret”
US9612805B2 (en) Rapid mobile app generator
CN107018166A (zh) 业务展示方法和终端
WO2014036073A2 (en) Method and apparatus for browsing large data network topology trees
CN108881344B (zh) 业务处理方法、装置、存储设备及处理服务器
CN115357316A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1230366

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant