CN101176068B - 用于有助于企业信息系统和客户之间的通信的装置、系统和方法 - Google Patents
用于有助于企业信息系统和客户之间的通信的装置、系统和方法 Download PDFInfo
- Publication number
- CN101176068B CN101176068B CN200680016793XA CN200680016793A CN101176068B CN 101176068 B CN101176068 B CN 101176068B CN 200680016793X A CN200680016793X A CN 200680016793XA CN 200680016793 A CN200680016793 A CN 200680016793A CN 101176068 B CN101176068 B CN 101176068B
- Authority
- CN
- China
- Prior art keywords
- incident
- client
- eis
- module
- calendar
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了一种用于确保企业信息系统(EIS)事件输送给客户的装置、系统和方法。适配器装置针对事件轮询至少一个EIS。将该事件安排到包含XA兼容数据库的安排表内以准备输送给客户。标记该事件的状态并且将该事件输送给该客户。保持被输送给无响应或相反不可用的客户的事件直到该客户变得有响应,然后输送该事件。使用事件处理服务确认事件的输送。
Description
技术领域
本发明涉及一种用于有助于企业信息系统(EIS)和客户之间的通信的装置、系统和方法,并尤其涉及一种用于确保EIS事件输送给多个客户的装置、系统和方法。
背景技术
在今天的商业世界中生成海量的信息。此信息对于交易成功是非常重要的并且可能是交易的最有价值的商品。信息必须被交易的操作单元处理、存储、更新和共享。例如,制造商必须能够与其的销售公司、支持团队、供货商、经销商以及多种其他实体共享信息。结果,许多交易利用可位于中心并且与该交易相关联的每个人都可访问的信息存储系统。一种这样的信息系统是企业信息系统(EIS)。交易可具有访问一个或多个EIS的一些子实体或“客户”。
常常利用包含处理逻辑的软件管理EIS与客户系统之间的通信。此软件或代码通常驻留在适配器内,并帮助建立EIS之间的连接。适配器使得能够与EIS进行双向通信。其允许客户在EIS内执行操作例如查询或修改数据。这些操作有时被称为出站通信。适配器还使客户能够从EIS接收数据或者注意到EIS内的改变。沿此方向流动的信息常常被称为入站通信。
入站通信通常包含关于已经在EIS内生成或改变的交易数据。EIS内的信息的生成、修改、更新或删除被称为EIS事件。交易的所有子实体或客户接收相同EIS事件对于交易往往是重要的。交易不希望它们的部门以不连续的数据集进行操作。交易希望它们的数据在它们的客户系统之间同步。交易还不希望向它们的客户系统发送EIS事件的多个副本以保持数据完整性。多个数据副本会导致数据混乱以及缺少置信度。此外,过多的数据会占据空间,而空间往往很短缺。
大多数适配器的一个问题是它们不能确保事件被输送给客户。例如,在发行者/订购者系统例如基于消息的系统中,信息被发行者提供,而订购者可访问该信息。但是,如果订购客户离线或无响应,则订购客户会错过该更新。大多数发行者程序不能在稍晚的时间将被错过的信息提供给无响应的客户。许多发行者程序甚至不知道订购者已经错过该更新。
一些适配器的另一个问题是它们不能确保客户接收到给定事件的唯一副本。这些适配器被编程以将特定数据广播或传送特定次,并且不会考虑客户或终端单元是否已经接收到该事件。许多适配器的还另一个问题是它们在向多个客户传输事件时不考虑任何单个客户的状态。因此,就数据传送而言,多客户系统内的客户更可能与其它客户脱离同步,
许多适配器的另一个问题是它们不具有如果在处理事件时发生意外问题则防止事件丢失的恢复协议。许多目前的适配器的另一个问题是它们不能动态添加或删除客户。一旦客户变得无响应、离线或相反变得不可用,则一些适配器不再向这些客户发送事件。
从前文的说明中很明显,本领域内的一个进步是提供一种可确保EIS事件被输送给客户的用于有助于EIS与一个或多个客户之间的通信的装置、系统和方法。本领域内的一个进步是提供一种将事件仅向每个客户发送一次的装置、系统和方法。本领域内的另一个进步是提供一种即使在一个或多个客户不可用之后仍可跟踪事件的装置、系统和方法。文中公开并权利要求了这种装置、系统和方法。
发明内容
响应于本领域内的现状,并且尤其响应于目前可用的用于在企业信息系统(EIS)和客户之间进行通信的装置、系统和方法还未能完全解决的本领域内的问题和需求,开发出本发明。因此,本发明提供了一种克服本领域内的许多或所有上述缺陷的装置、系统和方法。
有助于EIS和一个或多个客户之间的通信的装置可具有包含多个模块的逻辑单元,该模块配置成在功能上执行必要的针对事件轮询EIS、安排事件以准备将该事件输送给客户、输送该事件并且确认该事件是否被输送的步骤。在所述实施例中,这些模块包括轮询模块、安排模块、输送模块和确认模块。
在一个实施例中,该装置还包括除去模块,以有助于一旦事件已经被输送给客户就从EIS中除去该事件。该装置还配置成为变得不可用于接收EIS事件的被指定为持久订购者的客户保持事件。在一个实施例中,该装置配置成一旦不可用客户再次变得可用则重新输送被保持的事件。
该装置可使用事务处理服务将事件输送给一个或多个客户,并确认这些事件是否被输送。在一个实施例中,事务处理服务作为XA兼容的分布式事务的一部分输送事件。
该装置还被包含在包括EIS、一个或多个客户以及数据源的系统内以有助于安排事件并准备输送该事件。在一个实施例中,该数据源是XA兼容的数据库。该系统还包括XA事务管理器以有助于该装置使用事务处理服务。在一个实施例中,客户可包括一个或多个子系统、计算设备或端点。客户可直接连接到该装置,并且EIS事件可被首先输送给该客户并然后被转发给客户的子系统。对于此公开,客户及其子系统、计算设备、端点或其他“下行线”设备被单独以及共同成为“客户”。
给出了用于有助于EIS和一个或多个客户之间的通信的本发明的一个方法。在公开的实施例中,该方法主要包括实现关于所述装置和系统的操作的上文给出的功能所必需的步骤。在一个实施例中,该方法包括针对事件轮询EIS,安排事件以准备将该事件输送给客户,输送该事件,并且确认该事件是否被输送。文中公开的方法步骤还可表现为通过计算机程序产品的计算机可读代码实现的操作。
还公开了一种用于集成EIS与客户的一个或多个客户系统的方法。该方法包括以下步骤,即接收一组集成要求,构建配置成连接EIS和多个软件客户的集成适配器,将集成适配器输送给消费者,并设定该集成适配器。在一个实施例中,该集成适配器是上述装置。设立该集成适配器可包括注册每个客户以从EIS接收事件。设立适配器还包括确定针对事件轮询EIS的频率以及在输送之前将安排的事件的量。
还公开了一种用于配置被配置成集成企业信息系统(EIS)与多个软件客户的确保向客户进行一次且仅一次事件输送的计算基础结构的方法。在一个实施例中,该方法包括开发具有多个可扩展模块的成套软件工具,集成事务处理服务与该成套软件工具,并公布该成套软件工具。该可扩展模块可包括上述那些装置。在一个实施例中,该模块配置成针对事件轮询至少一个EIS,安排事件以便输送给至少一个客户,将该事件输送给至少一个客户,并且确认向每个客户仅输送事件的一个实例。
在此说明书中的对特征、优点的参考或类似语言并不是暗示可通过本发明实现的所有特征和优点应该是或位于本发明的任何一个实施例内。相反,参考特征和优点的语言应被理解为是指结合实施例说明的特定特征、优点和特性被包含在本发明的至少一个实施例内。因此,在说明书中的对特征和优点的讨论以及类似语言可以是但并不一定是指相同实施例。
此外,本发明的所述特征、优点和特征可在一个或多个实施例中以任何合适的方式组合。本领域内的技术人员应认识到,本发明可被实现而不具有特定实施例的一个或多个特定特征或优点。在其他情况下,可认识到,一些实施例中的另外的特征和优点可能不存在于本发明的所有实施例中。
本发明的这些特征和优点将在下面的说明和所附权利要求中更显而易见,或者可通过如下文所述的本发明的实现了解。
附图说明
下文将参照附图说明仅作为示例的本发明的优选实施例,在该附图中:
图1是示出根据本发明的优选实施例的用于有助于企业信息系统(EIS)与客户之间的通信的系统的一个实施例的示意性框图;
图2是示出可用于图1的系统的适配器的一个实施例的示意性框图;
图3是示出可用于图2的适配器的事件管理器的一个实施例的示意性框图;
图4是示出根据本发明的用于有助于EIS和客户之间的通信的方法的一个实施例的示意性流程图;
图5是示出根据本发明的优选实施例的用于有助于EIS和客户之间的通信的系统的一个实施例的示意性框图;
图6是示出根据本发明的优选实施例的用于有助于EIS和客户之间的通信的方法的一个实施例的示意性顺序图;
图7是示出根据本发明的优选实施例的EIS集成方法的一个实施例的示意性流程图;以及
图8是示出根据本发明的优选实施例的用于配置计算机基础结构的方法的一个实施例的示意性流程图。
具体实施方式
此说明书内所述的许多功能单元已经被称为模块,以便更具体地强调它们的实现独立性。例如,模块可被实现为包含定制VLSI电路或门阵列、不用定制的半导体例如逻辑芯片、晶体管或其他分立元件的硬件电路。模块还可被实现为可编程硬件器件例如场可编程门阵列、可编程阵列逻辑、可编程逻辑器件等。
模块还可用软件实现以便被各种处理器执行。可编程代码的被识别的模块可例如包括计算机指令的一个或多个物理或逻辑块,它们可例如被组织成对象、过程或函数。但是,被识别的模块的可执行代码并不需要在物理上被定位在一起,而是可包含被存储在不同位置的离散指令,该指令当在逻辑上结合在一起时包括该模块并实现规定的模块的效用。
实际上,可执行代码的模块可以是单条指令或多条指令,甚至可分布在一些不同的代码段上、在不同程序之间以及跨越一些存储设备。类似的,操作数据可在文中被识别和示出位于模块内,并且可表现为任何合适的形式且被组织在任何合适类型的数据结构内。操作数据可被收集成单个数据集,或者分布在不同的位置包括不同的存储设备上,并且至少部分地仅作为电子信号存在于系统或网络上。
在此说明书中,“一个实施例”,“一实施例”或类似语言是指结合该实施例说明的具体特征、结构和特性被包含在本发明的至少一个实施例内。因此,在此说明书中出现的短语“在一个实施例内”,“在一实施例内”以及类似语言可但并不一定都是指相同的实施例。
本发明的实施例可表现为完全是硬件的实施例、完全是软件的实施例或者包含硬件和软件元件的实施例的形式。在优选实施例中,本发明可用包含但不局限于固件、驻留软件、微代码等软件实现。
此外,本发明的实施例可表现为可从提供被计算机或任何指令执行系统使用或与其结合的程序代码的计算机可用或计算机可读介质存取的计算机程序产品的形式。为了说明,计算机可用或计算机可读介质可以是可包含、存储、传送、传播或传输被指令执行系统、装置和设备使用或与其结合的程序的任何装置。
介质可以是电子、磁、光学、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的示例包括半导体或固态存储器、磁带、可取出的计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前示例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。
适合于存储和/或执行程序代码的数据处理系统包括直接或通过系统总线间接耦合到存储元件的至少一个处理器。存储元件可包括在程序代码的实际执行期间使用的局部存储器,大容量存储器以及高速缓存,该高速缓存临时存储至少一个程序代码以便减少在执行期间必须从大容量存储器检索代码的次数。
输入/输出或I/O设备(包括但不局限于键盘、显示器、打印设备等)可直接或通过中间I/O控制器耦合到系统。网络适配器也可耦合到系统以使数据处理系统能够通过中间专用或公用网络耦合到其他数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡仅是网络适配器的一些目前可用的类型。
图1示出根据本发明的优选实施例的系统100。系统100包括企业信息系统(EIS)102以及一个或多个客户104。装置或适配器106与EIS 102和客户104通信,以有助于EIS 102和客户104之间的信息传输。
适配器106可在J2EE连接器结构容器108内操作,该容器包括事务处理服务110。J2EE连接器结构允许适配器106与EIS 102相互作用。在一个实施例中,J2EE连接器结构定义了管理EIS 102和适配器106之间的关系的接口。此接口确定适配器106和EIS 102之间的相互作用,因为其涉及连接、事务和安全。
EIS 102可以是主机事务处理系统、企业资源计划系统、传统非Java应用程序等。在一个实施例中,EIS 102是数据库管理系统。EIS102被配置成与适配器106通过接口连接。在一个实施例中,接口被用Jave代码写成以允许接口与J2EE连接器结构容器108通信。
当EIS 102内发生改变时,适配器106将该变化广播或传递给每个客户104。这种改变在此被称为事件112。本领域的技术人员应理解,事件112到客户104的广播有时被称为入站事件。事件112可以是EIS内包含的任何信息,包括但不局限于数据改变、错误消息、时间戳改变、位置改变、更新等。在其中EIS是数据库的一个实施例中,事件112可以是数据库改变、表行改变、消费者地址改变等。在另一个实施例中,事件112可以是消费者地址改变、消费者ID改变。事件112可以是需要在EIS 102和客户104之间传递的任何类型的信息。事件112可位于EIS内的持久存储器内。
在一个实施例中,事件112被构造并且准备好被客户使用。对于此公开,客户104以任何方式的对事件112的使用可被称为事件的消耗。如上所述,事件112的最终消耗可被客户或其子系统、计算设备、端点、或其他“下行线”设备实现。
适配器106还与XA数据源114通信。适配器106可使用XA数据源114内的安排表116。在一个实施例中,安排表116是XA兼容的并且可与事务处理服务110通信的数据库。在一个实施例中,安排 表116是不用定制的位于第三方数据库管理软件内的表。
当在EIS 102内检测到事件112时,适配器106针对每个可用客户104将对事件112的引用118写入安排表116。对于此公开,如果客户响应、在线、活动、听取以及正确地作用于接收到的事件,则客户“可用”。引用118包括事件标识119和端点标识121。引用118a-c内的事件标识119a-c可与对单个事件112的每个引用118内的标识相同。但是,客户标识121a-c是每个客户或客户端点专用的。如上所述,客户资源可具有另外的资源、子客户、子系统等。每个应用118包含专用的端点标识。尽管每个客户可具有也将需要事件112的子系统,但是只有主客户(或端点)104a在安排表116内被引用。如果客户121a包含这种子系统120、122,则客户104a负责将事件按特定路线传递给那些子系统。
本领域的那些技术人员应理解,事件112的其他识别特征可作为引用118的一部分。例如,事件的一部分或全部可被存储为安排表116内的引用118。另外,引用118可包括时间戳或其他信息。
事务处理服务110然后将安排表116内的每个事件112输送给其对应的收听客户104。在一个实施例中,在得到事务处理服务110支持的情况下,适配器106将事件112作为J2EE应用服务器控制的独特事务的一部分输送给对应的客户104。每个客户104a、104b和104c或客户线接收其自身的事务。
事务处理服务110产生的事务是作为工作的单个逻辑单元执行的一连串动作,其中或者所有动作被执行,或者没有动作被执行。本领域的那些技术人员应理解,这些事务也被称为“局部”或“简单”事务。在一个实施例中,事务是原子操作。本领域的技术人员应理解,原子操作是在一步进行的并且不会被中断的操作。事务还可以是相容的、孤立的和持久的。在事务期间客户104内做出的改变是暂时的。为了使该改变持久,事务以将该改变最终定下来的“提交”操作结束。
如果任何改变都不能被提交,则事务将“返回(roll back)”,就好象事务从未发生似的撤消所有改变。如果执行该动作的任何客户104内的代码确定不提交或者不能成功地提交,则然后客户104必须使事务返回以撤销具体客户104的动作。如果应用程序在事务中间崩溃,则当该应用程序重启动时,事务回复进程将使该断开的事务返回。在写事务中,所有改变必须或者全部提交或者全部返回。在读事务中,不存在要提交的改变,但是事务防止被读取的数据改变直到所有读取完成。
在一个实施例中,事务处理服务110将事件112作为分布式事务的一部分输送。分布式事务考虑每个单独客户104的子系统或“下行线”系统。例如,客户104a可具有两个或多个独立的事务资源,客户A’120和客户A”122。这些可包括例如两个独立的数据库。为了成功地提交事务,具体客户104a的所有单独的资源120、122必须正确地提交。如果事件112到客户104的下行线系统客户A’120、客户A”122中的任何一个的输送不成功,则在所有资源客户A’120和客户A”122中事务必须返回。
在一个实施例中,事务处理服务110利用“两阶段提交”将事件112输送给客户104。两阶段提交是用于分两步提交分布式事务的方法。在第一步内,每个资源104、120和122表决其是否准备好提交。例如,对于与客户104a相关联的资源,客户A 102、客户A’120和客户A”122的组决定它们是否准备好提交。在第二步内,如果所有资源102、120和122都准备好,则它们同时提交。在该组提交之后,对应的引用118被从安排表116中删除,并且事件112到客户102a的输送不再返回。本领域的技术人员应理解,两阶段提交确保即使在事务被提交的同时系统的一部分崩溃,分布式事务仍可总是被提交或者总是返回。由于每个客户104a、104b和104c接收其自己的事务,所以如果事务处理服务110确定客户A 120’没有接收到事件112,则安排表116内的事件112输送的返回不会影响事件112到客户B 104b和客户C 104c的输送。因此,即使当在客户A线中发生崩溃时,客户B和C、104b和104c可利用或消耗事件112,
在一个实施例中,事务处理服务110在满足XA规范的事务内将事件112输送给客户104。XA规范可从Open Group定义的分布式事务处理(DTP)得到,并且并入此组为参考文献。
在一个实施例中,XA规范定义了适配器106如何使用事务处理服务110在多个资源104、120和122之间协调分布式事务。在一个实施例中,适配器106使用XA分布式事务有助于在EIS 102和一个或多个客户104之间输送事件112。
现在参照图2,示出根据本发明的优选实施例的装置或适配器106。适配器106包括事件存储器202,事件管理器204和事件分配模块206。事件管理器204包括用于执行对事件管理器204的控制的控制器208。事件管理器204还包括定时器210以有助于定期向EIS 102轮询事件112。事件管理器204还包括事务管理器212以与事务处理服务110通过接口连接。
事件存储器202用作适配器106和EIS 102之间的接口。EIS 102内发生的事件112可被记录在事件存储器202内。在一个实施例中,被检测到的事件112的记录被存储在事件存储器202中。事件112的细节可保留在EIS 102内。适配器106定期轮询事件存储器202,并使用其中的信息构建反映将被输送给所关心的客户104的被改变数据的事件。在一个实施例中,事件存储器202由适配器106用来与EIS102进行相互作用的Java代码表示。事件存储器202可包括EIS 102内的数据结构和适配器106内的处理逻辑。事件存储器202被配置成执行类属任务或命令例如“产生所有事务”。事件存储器202将这样的命令翻译成一个或多个EIS命令以在EIS 102内实际执行该命令。因此,事件管理器204不需要针对任何给定EIS 102定制。
在一个实施例中,事件存储器202包含从EIS 102接收到的每个事件112的信息。事件存储器202可包含事件112的标识或“事件ID”。事件ID 119可被认为是允许事件管理器204通过事件存储器202存取任何给定事件112的关键字。在一个实施例中,事件ID 119对于每个事件112是唯一的。事件存储器202还包含事件112在其上发生的EIS对象的或整个事件112本身的关键字。事件存储器202还包括事件在其上发生的对象的类型。在一个实施例中,事件存储器202包含每个事件112的输送状态207。在一个实施例中,状态207是常数并且包括以下标记中的一个:
NEW_EVENT
IN_PROGRESS
ERROR
本领域内的技术人员应理解,状态207可包含任意数量的描述每个事件112的当前状况的条目或指示。
事件分配模块206是与XA数据源114的接口。事件分配模块206允许事件管理器204访问XA数据源114。在一个实施例中,事件分配模块206是数据库或数据库表。本领域的技术人员应理解,事件分配模块206可以是不管安排表116的配置如何均允许事件管理器204与安排表116相互作用的任何数据结构、代码或模块,包括XML文件或平面文件。在一个实施例中,事件分配模块206包含客户标识121和事件标识119。
事件管理器204管理这样的任务,即通过事件存储器202检测事件112,通过事件分配模块206将事件112写入或安排到安排表114中,并且将事件112输送给一个或多个客户104。
发送器214可包含事件管理器204的一部分。在一个实施例中,事件管理器204为将向其输送事件112的每个客户104创建发送器214。事件管理器204通过发送器214负责将每个单独的事件112发送给多个客户104。发送器214提供与多个客户104通信的分支能力。
图3示出被表现为适配器106内的事件管理器204的装置300。装置300还可选择地可表现为适配器106本身。装置300包括配置成针对事件112轮询至少一个EIS 102的轮询模块302。装置300还包括配置成安排将输送给至少一个客户104的事件112的安排模块304。装置300包括配置成将事件112输送给至少一个客户104的输送模块306。装置300还包括配置成确认向至少一个客户104中的每一个仅输送事件112的一个实例。在一个实施例中,装置300包括有助于从EIS 102中除去被消耗的事件112的除去模块310。
轮询模块302配置成针对将被输送给客户104的事件112定期查询EIS 102。轮询模块302允许基于用户配置的参数进行轮询。在一个实施例中,该参数是轮询模块302针对事件112轮询EIS 102的速率或频率。参数还可以是在将事件112输送给一个或多个客户104之前安排的事件112的数量。在一个实施例中,轮询模块302查找指定的触发器,该触发器警告轮询模块302在EIS 102内已经发生事件112。可选择地,事件存储器202内的记录的存在可用信号通知已经发生事件112。轮询模块302还可确定已经被保持的事件112是否准备好被释放,因为客户104在接收该事件之前已经不可用。轮询模块302还确定新的客户是否可用于接收事件112。在一个实施例中,事件管理器204注册新客户以接收事件。轮询模块302被配置成执行在下文结合图4-6更详细地说明的轮询步骤和操作。
安排模块304配置成安排将输送给至少一个客户104的事件112。对于被注册接收事件的至少一个客户中的每一个,安排模块304可将对事件112的引用118写入安排表116。安排模块304还调节每个事件112的输送状态207。一旦引用118被添加到安排表116内并且状态被设定,则事件112被安排。
输送模块306配置成将事件112输送给一个或多个客户104。如上所述,术语“客户”包括客户的所有子组件、中间组件或端点。在一个实施例中,输送模块306与J2EE应用服务器一起工作。输送模块306优选地使用事务处理服务110传递并将事件112存储在客户104中。当事件112被返回时,输送模块306可有助于为不可用的客户104临时保持事件112。
如下文将详细说明的,客户104最初被注册以接收事件112,并且特定客户104在注册时可被指定为持久订购者。这是本发明的一个优选实施例的一个用户可配置的特征。持久订购客户是请求保持丢失的事件并且当客户104再次可用时将该事件输送给客户104的客户。
在一个实施例中,输送模块306被配置成将事件112输送或发送给被指定为持久订购者的客户104。响应于轮询模块302在轮询期间接收到的客户104已变得可用的指示,输送模块306可将一个或多个被保持的事件112输送给在一段时间不可用之后变得可用的客户104。输送模块306重新输送被保持的事件112是装置204、300的紧急事故恢复特征的一部分。
确认模块308配置成确认向每个客户104仅输送了事件112的一个实例。配置模块308还确认事件112是否被输送给客户104。确认模块308使用事务处理服务110确认事件输送。在一个实施例中,确认模块308使用XA分布式事务确认事件传输。
除去模块310配置成在确认对应于引用118的事件112向客户114的输送完成时,从安排表116中除去对被安排的事件112的引用118。例如,当事件112被输送并且被客户B 104b消耗时,从安排表116中除去引用118b。事件引用的除去以及时间的消耗可在原子操作内完成。
在一个实施例中,装置300配置成按事件112在EIS 102内的创建顺序将事件112输送给客户104。因此,引用118可包括顺序指示符。在另一个实施例中,当事件112的顺序不重要时,装置300可更迅速地将事件112输送给一个或多个客户104。事件管理器204可为那些客户104使用多个执行线程,而不涉及向给定客户104并行输送所有事件112的顺序。此外,安排表116可存储每个客户104的单独引用记录118。因此,事件管理器204或装置300可服务于每个客户104的独特需要。例如,事件管理器204或装置300可将事件依次传输给一个客户,而并行地将未被排序的事件提供给另一个客户。
下文的示意性流程图通常被说明为逻辑流程图。因此,所示的顺序和被标示的步骤仅指示给出的方法的一个实施例。可想到在功能、逻辑或效果上与所示方法的一个或多个步骤或其一部分等同的其他步骤和方法。另外,使用的格式和符号是用于解释该方法的逻辑步骤,并且应理解不是限制该方法的范围。尽管在流程图中可使用各种箭头类型和线类型,但是应理解它们不是限制对应方法的范围。实际上,一些箭头或其他连接器可仅被用于指示方法的逻辑流。例如,箭头可指示所示方法的被列举的步骤之间的未被指定的持续时间的等待或监控时间段。另外,特定方法发生的顺序可以是或不是严格符合所示的对应步骤的顺序。
图4示出根据本发明的优选实施例的有助于EIS 102和客户104之间的通信的方法400。方法从402开始,并且在404针对事件112轮询至少一个EIS 102。当找到事件112时,安排406事件,并将事件输送408给至少一个客户。确认410事件的输送408,并且从EIS中除去412该事件。该方法结束414。
在方法或过程的开始402处,一个或多个客户104可被注册接收事件。在一个实施例中,适配器装置204、300与一个或多个EIS 102以及一个或多个客户104通信。在一个实施例中,轮询404 EIS 102包括确定客户104是否可用,新事件112是否存在,以及被保持的时间112是否准备好被输送。当客户104注册接收事件112时,客户104变得可用。有时,客户104会由于任意数量的原因而不可用,该原因包括但不局限于客户系统崩溃、客户系统忙、客户系统离线或客户系统仅是没有响应。轮询404包括确定404以前被注册但是不可用的客户104是否已经变得可用。
轮询404 EIS 102包括针对新事件112定期查询EIS 102。EIS 102被轮询404的频率可被用户或适配器管理员确定。用户或适配器管理员还可在开始输送将被检索的事件之前确定这些事件的数量。本领域的技术人员应理解,轮询404 EIS的许多方面可以是用户可配置的。
在一个实施例中,可使用驻留在EIS 102内的触发机构或逻辑检测事件,当事件发生时捕获事件并将它们存储在事件存储器202内。在此实施例中,上述轮询404还可应用于轮询404事件存储器202。
适配器204、300安排被轮询到的事件112输送给至少一个客户104。安排406包括将对事件112的应用118写入安排表116。为被注册接收事件112的每个客户104写表目。安排表116是XA数据源114内的数据库。数据库存储识别至少一个事件112和将向其发送该事件112的客户104的字段。
在一个实施例中,安排406包括在事件存储器202内标记EIS 102内的每个事件112的输送状态。输送状态207可指示存在新事件112,事件输送正在进行,已经发生错误等等。事件112可被存储在事件分配模块206内以便在方法400期间稍后被使用。事件112在首次被检测到时但是在其被输送之前被给定“NEW_EVENT”状态。
如果需要的话可标记新事件的顺序,事件可按它们出现的顺序被输送。可选择地,事件分配模块206内的记录可按先入先出的顺序被输送。当事件112开始被输送时,输送状态可改变为“IN_PROGRESS”。当在将被发送给适配器102的对象的构造期间发生错误时——这使得事件输送无效,将事件112标记为“ERROR”状态。在一个实施例中,“error”状态被除了在XA事务处理服务下导致返回事件的事情之外的事情被触发。
事件112被输送408给至少一个客户104。在一个实施例中,装置204、300使用XA事务处理服务110传输事件112。输送408事件112可包括使用被J2EE应用服务器控制的事务处理服务110传输并存储事件112。事务处理服务110在XA兼容的分布式事务内发送每个事件。每个事件112作为单个XA事务的一部分被输送给特定客户104。如果事务不能到达其端点、不管是客户104还是客户下行线系统,则事件在事务处理服务110使用的XA事务协议下返回安排表116。
如果客户112不可用并且客户112已经被指定为持久订购者,则事件被保持在分配模块206内。作为持久订购者的客户104即使在事件112最初被发送给它们时不可用,也不会丢失事件112。当持久订购客户可用时,事件112被输送或发送给该客户。此输送或重新输送可响应于来自轮询模块的或者在轮询步骤404期间生成的指示客户104变得可用的指示符发生。
事件的输送408可包括确定事件112的输送状态207。即使在任何位置发生崩溃,适配器204、300仍足够稳健以确保输送。在一个实施例中,与事件分配模块206内的信息组合的事件存储器202内的任何未决的事件112的输送状态值207确定事件112是否需要被输送。在一个实施例中,事件112的输送或删除可基于以下逻辑表被确定:
事件存储区内的状态事件处于安排表?存在持久订购?动作
NEW_EVENT 否 是/否 输送
NEW_EVENT 是 否 删除
NEW_EVENT 是 是 输送
IN_PROGRESS 否 否 删除
IN_PROGRESS 是 否 删除
IN_PROGRESS 是 是 输送
IN_PROGRESS 否 是 删除
如果事件存储器202内的事件被标记为“NEW_EVENT”并且该事件没有位于事件分配模块206内,则不管该客户是否是持久订购者,事件112都会被输送。因此,将尝试输送所有新事件。如果事件存储器202内的事件被标记为“NEW_EVENT”并且该事件位于事件分配模块206内,然后如果客户104不是持久订购者,则事件112被删除。如果事件存储器202内的事件被标记为“NEW_EVENT”并且该事件位于事件分配模块206内,然后如果客户104是持久订购者,则事件112被输送。被保持的事件仅被输送给持久订购者。如果事件存储器202内的事件被标记为“IN_PROGRESS”并且该事件没有位于事件分配模块206内,然后如果客户不是持久订购者,则事件被删除。如果事件存储器202内的事件被标记为“IN_PROGRESS”并且该事件位于事件分配模块206内,然后如果客户不是持久订购者,则事件被删除。除非将接收已经被尝试传输的事件112的客户104是持久订购者,否则事件112不会被保持。如果事件存储器202内的事件被标记为“IN_PROGRESS”并且该事件位于事件分配模块206内,然后如果客户是持久订购者,则事件被输送。如果事件存储器202内的事件被标记为“IN_PROGRESS”并且该事件没有位于事件分配模块206内,然后如果客户是持久订购者,则事件被删除。
被保持的事件112输送408到已经可用于事件输送的客户104优选地在将任何随后的新事件112输送给其他客户104之前完成。例如,如果存在为客户B保持的事件,则直到客户B上线之前,该事件会一直停留在XA数据源114内。客户A和C将接收它们的事件,并且将从XA数据源114中除去与客户A和C相关联的事件的任何记录,但是客户B的记录仍保留在XA数据源114内。该记录还会保留在EIS 102内。适配器装置106将一直保留副本直到应该接收时间的所有客户已经接收到事件。
当客户B重新上线时,被保持的事件将通过恢复循环,在此情况下客户A和C不会得到任何信息,而装置106发送已经为客户B保留的所有信息,允许客户B与客户A和C同步。
输送408包括为每个单独的客户104确认事件112被输送到客户104可能已经将事件112输送到的任何地方。例如,在客户A线内,事件112必须在XA事务提交或完成该具体客户线的事件112的输送之前一直到达端点客户A”122。在一个实施例中,事务处理服务110处理一直通过特定客户线的传输的应答。
确认410包括确认事件112是否被输送到至少一个客户104。在一个实施例中,该方法400包括确认410向该至少一个客户104中的每一个仅输送事件112的一个实例。如上所述,确认410事件输送使用事务处理服务110完成。
除去412包括当确认事件112到具体客户104的输送完成时,除去安排表116内的对被安排事件的引用118。除去412还包括在客户104消耗事件112时,从安排表116中除去对事件112的引用118。除去和消耗构成原子操作。除去412还包括响应于从安排表116中除去对事件112的引用,从EIS 102中删除事件。例如,当安排表116内不再存在对应于事件112的应用118时,可从EIS 102中除去事件112。在一个实施例中,安排表116没有对具体事件112的任何引用118是确认所有预期客户104都已经接收到事件112。
该方法可由计算机程序产品或信号承载介质实现。在一个实施例中,计算机程序产品包括或确实地表现为具有用于有助于EIS和一个或多个客户之间的通信的计算机可用程序代码的计算机可读介质。计算机程序产品包括可实现上述方法的计算机可用程序代码。该方法和对应的程序代码还可包括实现上述模块以及下文结合图5和6所示的过程的功能所必需的步骤。
图5示出用于有助于EIS 502和客户504之间的通信的过程500。作为适配器508的一部分的事件管理器506检索事件510。针对每个活动端点516在安排表514中添加记录或引用512。事件存储器520用作适配器508和EIS 502之间的接口,并允许事件管理器506查询并修改EIS 506内的数据。事件分配模块522使事件管理器506可类属存取作为XA数据源的一部分的安排表514。
事件510被标记为正在进行。使用安排表514指导哪个事件510输送给哪个客户504,将事件510公布给所有活动客户504。一个客户504消耗事件510的单个副本以及从安排表514中删除相同的单个事件记录512都作为单个XA事务的一部分被执行。
一旦所有端点516都接收到事件510,则从EIS 502中删除原始事件510。事件管理器506可识别由于安排表514内不再存在对该具体事件510的引用512,所以事件510已经被输送给端点516。针对EIS 502内记录的每个事件512重复过程500。
图6是图5内所示的过程流程的顺序图。在一个实施例中,过程600内的第一步是重新计算端点602。事件管理器506确定是否存在自最后一个轮询周期以后已经重新上线的任何新的客户504。轮询周期是期间事件管理器506轮询EIS 502或事件存储器520的时间段。如果存在新客户504,则事件管理器506确定是否输送被保持的事件还是启动新的输送。
接下来,事件管理器506恢复“正在进行的事件”604。如果存在自最后一个轮询周期之后被添加的任何新客户504,则事件管理器506输送新客户504错过的任何事件,从而保持时间输送的顺序。接下来,事件管理器506从事件存储器520检索新的事件606。事件存储器520返回608新事件的列表。
事件管理器506创建610分配图。分配图定义了哪个事件将去往哪个客户504。分配图将标识符或端点标识121映射到事件列表。事件管理器506定义了被使用事件分配模块522存储612的事件引用118、512。设定614事件状态207,并且在EIS 502内将该事件标记为“IN_PROGRESS”。
接下来,事件管理器506与发送器214通信以开始发送616事件510。发送器214发送事件510。发送器214从时间分配模块522中检索620 XA资源,该资源被配置成根据XA通信协议操作。发送器214然后调用J2EE容器108使用端点库625创建622端点对象623。端点对象623允许事件管理器506访问客户504或端点516。发送器214检索624“目标方法”。当事件管理器506希望在事务中加入一些事情时,事件管理器506向容器108提供目标方法和XA资源。然后,发送器214在希望的端点对象623上调用626“beforeDelivery”命令,这告诉容器108开始事务。接下来,发送器214检索628该事件的对象510。然后,输送630事件对象510,并通知事件管理器506。发送器214然后经由预定的函数调用、在此情况下为“receiveMessage”632将事件510发送给端点516。
然后,事件分配模块522删除634事件引用118、512,并且从安排表514中除去用于事件被输送到的具体客户504的一个引用118、512。然后在端点516上执行636“After Delivery”命令,该命令告诉容器108事件管理器完成此事务。这里,客户的交易过程处理事件510,并且然后提交事务。最后一步是从EIS 502中删除638事件510。
针对每个事件510、每个在线消息端点516重复步骤620到636。这可以每个端点库625(串行)一个线程或者每个事件、每个端点库625一个线程(无序)地发生。
利用本发明的优选实施例教授的过程可确保仅向客户进行一次且仅一次事件输送,这是因为客户消耗时间并且从安排表删除事件优选地作为单个事务的一部分完成。可选择地,消耗和输送可构成一个原子事务,并且引用和事件的删除可构成第二原子事务。即使基础EIS 102不支持事务此方法仍是可能的,这是因为事务跨越客户和XA允许的安排表而不是XA不允许的EIS事件表。另外,客户端点与干扰事件不会相互干扰。每个客户在自身的数据库连接内通过其自己的、隔离事务接收该事件。如果客户104或适配器106在所有端点可接收事件之前突然中止,则安排表116保持还没有被输送的事件112的列表,从而适配器106可在稍晚时候再次尝试进行输送。
在本发明的优选实施例的教义下,由于检测EIS 102内的事件112的触发器不需要涉及客户102——它们仅是将事件的副本写入事件分配模块206,所以可动态地添加或删除客户104。另外,由于不需要在分配模块206内存储事件的多个副本,所以轮询性能得到提高。适配器106确实将多条记录118写入安排表116,但是这些记录仅是用事件分配模块206管理的对事件112的引用118而几乎不包含同样多的数据。本发明的实施例的另一个优点是提供了一种即使当EIS102系统不支持两阶段事务(XA)时仍可作为XA的一部分从EIS 102输送数据的机制。
图7示出根据本发明的优选实施例的集成EIS与消费者的多个软件客户的方法700。方法700可由开发者或顾问组实行。在一个实施例中,方法700从702开始,并且接收定义EIS 102如何与客户共同操作的一组集成要求。方法700然后构建706被配置成连接EOS 102和多个软件客户104以便软件客户接收EIS事件112的多个集成适配器。EIS 102和/或一个或多个软件客户104可属于消费者。集成适配器508配置成针对一个事件轮询至少一个EIS 102,安排该事件被输送给至少一个客户,将事件输送给该至少一个客户,并确认向该至少一个客户中的每一个仅输送事件的一个实例。然后,将集成适配器508输送708给消费者。可任选地设立710或安装集成适配器508,并且过程700结束712。
在一个实施例中,设立710集成适配器包括注册每个客户以从EIS 102接收事件。还可包括确定针对事件轮询至少一个EIS 102的频率以及在输送之前将安排的事件的数量。方法700还包括集成事务处理服务与集成适配器,并确定是否将为不可用的客户保持事件直到该客户可用。
图8示出用于配置被配置成集成企业信息系统(EIS)与多个软件客户的确保向客户进行一次且仅一次事件输送的计算基础结构的方法800。方法从802开始,并且开发804包括多个可扩展模块的成套软件工具。该模块配置成针对一个事件轮询至少一个EIS 102,安排该事件被输送给至少一个客户,将事件输送给该至少一个客户,并确认向该至少一个客户中的每一个仅输送事件的一个实例。优选地集成806事务处理服务与该成套软件工具。可任选地通过各种方法公布808该成套软件工具或使其可公用。并且过程结束810。在一个实施例中,事务处理服务支持在XA规范下的分布式事务。
Claims (32)
1.一种集成企业信息系统EIS与用于消费者的多个软件客户的方法,该方法包括:
接收一组集成要求;
构建配置成连接EIS和多个软件客户以便所述软件客户接收EIS事件的集成适配器,该集成适配器被配置成:
针对事件轮询至少一个EIS;
安排该事件以输送给至少一个客户;
将该事件输送给该至少一个客户,在向该至少一个客户输送事件的过程中,按照客户的独特需要,将事件按在EIS中创建的顺序依次传输给客户,或并行地将未被排序的事件提供给客户;并且
确认向该至少一个客户中的每一个仅输送该事件的一个实例;以及
将该集成适配器输送给消费者。
2.根据权利要求1的方法,其中该方法包括注册每个客户以从EIS接收事件。
3.根据权利要求1的方法,其中该方法包括确定针对事件轮询该至少一个EIS的频率。
4.根据权利要求1的方法,其中该方法包括确定在输送之前安排的事件的数量。
5.根据权利要求1的方法,其中该方法还包括集成事务处理服务与该集成适配器。
6.根据权利要求1的方法,其中该方法包括确定是否为不可用的客户保持事件直到该客户变得可用。
7.根据权利要求1的方法,其中所述确认向该至少一个客户中的每一个仅输送该事件的一个实例是使用根据XA规范的事务处理服务来进行的。
8.一种有助于企业信息系统EIS和客户之间的通信的方法,该方法包括:
针对事件轮询至少一个EIS;
安排该事件以输送给至少一个客户;
将该事件输送给该至少一个客户,在向该至少一个客户输送事件的过程中,按照客户的独特需要,将事件按在EIS中创建的顺序依次传输给客户,或并行地将未被排序的事件提供给客户;并且
确认向该至少一个客户中的每一个仅输送该事件的一个实例。
9.根据权利要求8的方法,其中所述安排该事件的步骤还包括为被注册以接收事件的所述至少一个客户中的每一个将对该事件的引用写入安排表。
10.根据权利要求9的方法,其中所述安排表是XA兼容的并且可与事务处理服务通信的数据库。
11.根据权利要求9的方法,其中该方法还包括在确认被安排的事件到特定客户的输送完成时在所述安排表内除去对该事件的引用。
12.根据权利要求11的方法,其中所述在所述安排表内除去对该事件的引用的步骤与客户对事件的消耗构成原子操作。
13.根据权利要求8的方法,其中所述安排该事件的步骤还包括在EIS内标记每个事件的输送状态。
14.根据权利要求13的方法,其中所述输送事件的步骤包括确定该事件的输送状态。
15.根据权利要求8的方法,其中所述输送事件的步骤还包括为不可用的客户临时保持事件。
16.根据权利要求15的方法,其中所述输送事件的步骤还包括响应于在轮询期间生成的指示符,将一个或多个被保持的事件输送给变得可用的客户。
17.根据权利要求8的方法,其中所述输送事件的步骤包括将事件发送给被指定为持久订购者的客户。
18.根据权利要求8的方法,其中该方法还包括在确认所有预期客户已经接收到该事件时从EIS中删除该事件。
19.根据权利要求8的方法,其中所述确认步骤是使用根据XA规范的事务处理服务来进行的。
20.一种有助于企业信息系统EIS和客户之间的通信的装置,该装置包括:
配置成针对事件轮询至少一个EIS的轮询模块;
配置成安排该事件以输送给至少一个客户的安排模块;
配置成将该事件输送给该至少一个客户的输送模块,在向该至少一个客户输送事件的过程中,按照客户的独特需要,将事件按在EIS中创建的顺序依次传输给客户,或并行地将未被排序的事件提供给客户;以及
配置成确认向该至少一个客户中的每一个仅输送该事件的一个实例的确认模块。
21.根据权利要求20的装置,其中所述轮询模块被配置成基于用户配置的参数针对新事件定期查询EIS。
22.根据权利要求20的装置,其中所述安排模块还配置成为被注册以接收事件的所述至少一个客户将对该事件的引用写入安排表。
23.根据权利要求22的装置,其中所述安排表是XA兼容的并且可与事务处理服务通信的数据库。
24.根据权利要求22的装置,其中该装置还包括配置成在确认对应于该对被安排事件的引用的事件到客户的输送完成时从所述安排表内除去该对被安排事件的引用的除去模块。
25.根据权利要求24的装置,其中所述除去模块还配置成在该事件被客户消耗时从安排表中除去该事件引用,该事件引用的除去以及该事件的消耗构成原子操作。
26.根据权利要求20的装置,其中所述安排模块还配置成标记每个事件的输送状态。
27.根据权利要求20的装置,其中所述输送模块还配置成为该至少一个客户中的每一个确定事件的输送状态。
28.根据权利要求20的装置,其中所述确认模块使用分布式事务处理服务确认事件输送。
29.根据权利要求20的装置,其中所述确认模块使用根据XA规范的事务处理服务确认事件输送。
30.一种用于集成企业信息系统EIS与多个软件客户的、确保向客户进行一次且仅一次事件输送的方法,该方法包括:
开发包含多个可扩展模块的成套软件工具,该模块配置成:
针对事件轮询至少一个EIS;
安排该事件以便输送给至少一个客户;
将该事件输送给所述至少一个客户,在向该至少一个客户输送事件的过程中,按照客户的独特需要,将事件按在EIS中创建的顺序依次传输给客户,或并行地将未被排序的事件提供给客户;并且
使用根据XA规范的事务处理服务确认向该至少一个客户中的每一个仅输送该事件的一个实例;
集成事务处理服务与该成套软件工具;以及
公开该成套软件工具。
31.根据权利要求30的方法,其中所述事务处理服务支持XA规范支持的分布式事务处理。
32.根据权利要求30的方法,其中所述将该事件输送给所述至少一个客户的动作包括为所述至少一个客户中的每一个确定事件的输送状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/149,652 US8301750B2 (en) | 2005-06-10 | 2005-06-10 | Apparatus, system, and method for facilitating communication between an enterprise information system and a client |
US11/149,652 | 2005-06-10 | ||
PCT/EP2006/062468 WO2006131440A1 (en) | 2005-06-10 | 2006-05-19 | Apparatus, system, and method for facilitating communication between an enterprise information system and a client |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101176068A CN101176068A (zh) | 2008-05-07 |
CN101176068B true CN101176068B (zh) | 2010-12-01 |
Family
ID=36649758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680016793XA Active CN101176068B (zh) | 2005-06-10 | 2006-05-19 | 用于有助于企业信息系统和客户之间的通信的装置、系统和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8301750B2 (zh) |
EP (1) | EP1894096A1 (zh) |
JP (1) | JP5065259B2 (zh) |
CN (1) | CN101176068B (zh) |
WO (1) | WO2006131440A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9912731B2 (en) | 2014-03-04 | 2018-03-06 | International Business Machines Corporation | Dynamic transaction coordination |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8104046B2 (en) * | 2007-08-21 | 2012-01-24 | International Business Machines Corporation | Polling adapter providing high performance event delivery |
US10552239B2 (en) | 2009-12-01 | 2020-02-04 | International Business Machines Corporation | Message recall |
US9509529B1 (en) * | 2012-10-16 | 2016-11-29 | Solace Systems, Inc. | Assured messaging system with differentiated real time traffic |
US9715405B2 (en) * | 2013-09-23 | 2017-07-25 | International Business Machines Corporation | Efficient coordination across distributed computing systems |
CN105550047A (zh) * | 2015-12-11 | 2016-05-04 | 深圳市佳创视讯技术股份有限公司 | 基于数据库通信的方法及系统 |
US11436185B2 (en) * | 2019-11-15 | 2022-09-06 | Arteris, Inc. | System and method for transaction broadcast in a network on chip |
US12095899B2 (en) * | 2020-10-09 | 2024-09-17 | Sap Se | Automated development, deployment and integration service for distributed ledger-enabled applications |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850517A (en) * | 1995-08-31 | 1998-12-15 | Oracle Corporation | Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server |
US5870605A (en) * | 1996-01-18 | 1999-02-09 | Sun Microsystems, Inc. | Middleware for enterprise information distribution |
US5951648A (en) * | 1997-03-03 | 1999-09-14 | Mylex Corporation | Reliable event delivery system |
US6125363A (en) * | 1998-03-30 | 2000-09-26 | Buzzeo; Eugene | Distributed, multi-user, multi-threaded application development method |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5283856A (en) * | 1991-10-04 | 1994-02-01 | Beyond, Inc. | Event-driven rule-based messaging system |
GB2276737A (en) * | 1993-03-30 | 1994-10-05 | Ibm | Fault-tolerant transaction-oriented data processing |
DE69625652T2 (de) | 1995-08-18 | 2003-09-18 | International Business Machines Corp., Armonk | Ereignisverwaltungsdienst |
US5862338A (en) * | 1996-12-30 | 1999-01-19 | Compaq Computer Corporation | Polling system that determines the status of network ports and that stores values indicative thereof |
US6260077B1 (en) * | 1997-10-24 | 2001-07-10 | Sun Microsystems, Inc. | Method, apparatus and program product for interfacing a multi-threaded, client-based API to a single-threaded, server-based API |
US6324569B1 (en) * | 1998-09-23 | 2001-11-27 | John W. L. Ogilvie | Self-removing email verified or designated as such by a message distributor for the convenience of a recipient |
US6704801B1 (en) * | 1999-02-18 | 2004-03-09 | Nortel Networks Limited | Atomic transmission of multiple messages in a virtual synchrony environment |
US6829770B1 (en) * | 1999-02-23 | 2004-12-07 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events |
US6397352B1 (en) * | 1999-02-24 | 2002-05-28 | Oracle Corporation | Reliable message propagation in a distributed computer system |
JP2000276394A (ja) | 1999-03-22 | 2000-10-06 | Sharp Corp | ウェブページ情報中継システムおよびウェブページ情報中継方法 |
US6279046B1 (en) * | 1999-05-19 | 2001-08-21 | International Business Machines Corporation | Event-driven communications interface for logically-partitioned computer |
JP2001086298A (ja) | 1999-09-13 | 2001-03-30 | Fuji Xerox Co Ltd | スキャナシステム |
WO2001053947A1 (fr) * | 2000-01-18 | 2001-07-26 | Fujitsu Limited | Dispositif de compte-rendu d'information de message pour systeme sous surveillance |
JP3540253B2 (ja) | 2000-07-05 | 2004-07-07 | 日本電信電話株式会社 | 高信頼イベント配送方法及びその装置 |
JP2002026070A (ja) * | 2000-07-04 | 2002-01-25 | Toshiba Corp | 半導体装置およびその製造方法 |
US6763384B1 (en) | 2000-07-10 | 2004-07-13 | International Business Machines Corporation | Event-triggered notification over a network |
US20020091824A1 (en) * | 2001-01-10 | 2002-07-11 | Center 7, Inc. | Intermediate systems for enterprise management from a central location |
US6877051B2 (en) * | 2001-06-12 | 2005-04-05 | Intel Corporation | Consistency checking mechanism for configuration parameters in embedded systems |
US20040078440A1 (en) | 2002-05-01 | 2004-04-22 | Tim Potter | High availability event topic |
US20040205770A1 (en) * | 2003-02-11 | 2004-10-14 | International Business Machines Corporation | Duplicate message elimination system for a message broker |
US7836031B2 (en) * | 2003-03-28 | 2010-11-16 | Microsoft Corporation | Systems and methods for employing a trigger-based mechanism to detect a database table change and registering to receive notification of the change |
GB0308264D0 (en) * | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
US20050038791A1 (en) * | 2003-08-13 | 2005-02-17 | Hewlett-Packard Development Company, L.P. | System and method for event notification |
US7490113B2 (en) * | 2003-08-27 | 2009-02-10 | International Business Machines Corporation | Database log capture that publishes transactions to multiple targets to handle unavailable targets by separating the publishing of subscriptions and subsequently recombining the publishing |
US20050198643A1 (en) * | 2004-02-17 | 2005-09-08 | Lachelt David J. | Journaling proxy in activation solution |
-
2005
- 2005-06-10 US US11/149,652 patent/US8301750B2/en active Active
-
2006
- 2006-05-19 WO PCT/EP2006/062468 patent/WO2006131440A1/en active Application Filing
- 2006-05-19 EP EP06763202A patent/EP1894096A1/en not_active Withdrawn
- 2006-05-19 CN CN200680016793XA patent/CN101176068B/zh active Active
- 2006-05-19 JP JP2008515173A patent/JP5065259B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5850517A (en) * | 1995-08-31 | 1998-12-15 | Oracle Corporation | Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server |
US5870605A (en) * | 1996-01-18 | 1999-02-09 | Sun Microsystems, Inc. | Middleware for enterprise information distribution |
US5951648A (en) * | 1997-03-03 | 1999-09-14 | Mylex Corporation | Reliable event delivery system |
US6125363A (en) * | 1998-03-30 | 2000-09-26 | Buzzeo; Eugene | Distributed, multi-user, multi-threaded application development method |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9912731B2 (en) | 2014-03-04 | 2018-03-06 | International Business Machines Corporation | Dynamic transaction coordination |
Also Published As
Publication number | Publication date |
---|---|
CN101176068A (zh) | 2008-05-07 |
EP1894096A1 (en) | 2008-03-05 |
US8301750B2 (en) | 2012-10-30 |
JP2008546110A (ja) | 2008-12-18 |
WO2006131440A1 (en) | 2006-12-14 |
JP5065259B2 (ja) | 2012-10-31 |
US20060282524A1 (en) | 2006-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101176068B (zh) | 用于有助于企业信息系统和客户之间的通信的装置、系统和方法 | |
CN100449548C (zh) | 数据库同步方法及系统 | |
CN101650741B (zh) | 一种分布式全文检索的索引实时更新的方法和系统 | |
JP4993905B2 (ja) | サーバー待ち行列システムおよび方法 | |
US8903963B2 (en) | Method and apparatus for web based storage on demand | |
US8150812B2 (en) | Methods, apparatus and computer programs for data replication | |
US7114094B2 (en) | Information processing system for judging if backup at secondary site is necessary upon failover | |
US4714992A (en) | Communication for version management in a distributed information service | |
CN101137984B (zh) | 用于分布加载数据库的系统、方法和软件 | |
CN102447650A (zh) | 带复制的一致消息收发 | |
CN103443773A (zh) | 利用多个存储设备减少数据库录入的写延迟的方法和系统 | |
CN101420391A (zh) | 由触发器子系统提供专用及基于标准触发器的系统和方法 | |
CN102955851A (zh) | 一种数据库的切换方法和装置 | |
CN112039970B (zh) | 一种分布式业务锁服务方法、服务端、系统及存储介质 | |
US20080115128A1 (en) | Method, system and computer program product for implementing shadow queues for recovery of messages | |
CN103890736A (zh) | 灾难恢复期间的消息对账 | |
CN102968457A (zh) | 数据库间切换方法和系统 | |
US20130318059A1 (en) | Transfer of data from transactional data sources to partitioned databases in restartable environment | |
CN100449539C (zh) | 无共享数据库系统中的单相提交 | |
CN101086717B (zh) | 存储瞬态信息的系统和方法 | |
US20130138614A1 (en) | Two-phase data locking transaction processing with distributed partitions and mirroring | |
CN101515280B (zh) | 计算机系统、存储装置以及处理代替方法 | |
CN101523352A (zh) | 用于并发控制的持久锁/资源 | |
CN112069160B (zh) | 一种基于cap数据清洗同步方法 | |
KR20020070274A (ko) | 메세지 대기 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |