CN1293463C - 用于分组互异操作的系统和方法 - Google Patents
用于分组互异操作的系统和方法 Download PDFInfo
- Publication number
- CN1293463C CN1293463C CNB011453028A CN01145302A CN1293463C CN 1293463 C CN1293463 C CN 1293463C CN B011453028 A CNB011453028 A CN B011453028A CN 01145302 A CN01145302 A CN 01145302A CN 1293463 C CN1293463 C CN 1293463C
- Authority
- CN
- China
- Prior art keywords
- message
- result
- context
- affairs
- action
- 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.)
- Expired - Lifetime
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/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明披露了一种在软件系统内用于对两个或多个互异操作进行分组的方法。该方法包括步骤:对于分组前后关系内的各操作,启动包括子前后关系的分组操作前后关系,其中事务型资源和发信部件之一支持各操作;在子前后关系内完成操作,各操作产生结果;在分组前后关系内耦合各结果;确定分组前后关系的总结果;以及根据总结果至少采取一个动作。该方法进一步包括在采取一个或多个动作后确定分组前后关系的步骤。
Description
技术领域
本发明涉及采用包括事务(transaction)和消息(message)在内的互异(diverse)操作的软件系统,更具体地说,本发明涉及对这些操作进行归组的方法和系统。
背景技术
用于企业级系统的软件工程出现了一些重要的挑战。这些挑战包括需要将多个软件部件集成为一个分布、非均匀系统环境,同时又能保证诸如可靠性、畅销性、可扩展性等的特性。最近几年,出现了一种通常称为中间件的软件来满足此要求。中间件是连通性软件,它定义不同软件部件之间互相互通性的标准。中间件在各部件之间提供基本通信机制,而隐含了部件的分布性和非均匀性引起的复杂问题。此外,中间件提供的高级业务有助于进行软件开发和解决软件质量问题。
两种基本类型的中间件是面向对象的中间件(OOM)和面向消息的中间件(MOM),它们均用于可靠软件系统的开发过程。例如,利用分布型事务,OOM对软件可靠性提供支持。另一方面,MOM对分布型部件之间的可靠异步通信过程提供支持。在过去的几年中,OOM和MOM被分别单独开发,已经在许多企业的软件系统的开发过程中得到实现。
当在同一个系统内使用OOM和MOM时,业务的集成性和互通性受到关注。具体地说,尽管事务和消息分别是可靠的,但是现有中间件不直接支持组合使用OOM和MOM的同等可靠等级。
可以利用对象请求代理程序(ORB)来说明OOM,例如,对象管理组提出的通用对象请求代理体系结构(CORBA)和部件技术(例如:Sun提出的企业JavaBeans(EJB))。待集成的软件部件变成提供清晰界面的分布式对象。同步客户/服务器模型是对象之间的标准通信模型。
利用消息排队(MQ)系统可以说明MOM,例如,IBM公司提出的MQSeries以及Java消息业务(JMS)应用程序界面工具。利用异步消息交换过程,MOM集成的部件与作为中间体的消息队列通信。部件利用队列读取或写入消息(数据),并且MOM负责消息在网络上的分布。因此,各部件之间不互相直接进行交互。通信部件可以互相匿名并且通常是去耦的。
各种类型的中间件分别具有特定优势。OOM的面向对象模型与现代系统开发过程中的对象范型一致,因此有助于支持一致开发过程。通过严格将界面与部件工具分离,OOM还有助于促进可扩展性和可重用性。相反,在需要或要求在时间上和空间上去耦情况下,MOM特别适合。此外,通过利用MOM多点传播通知,可以支持通信方的多样性。因此,通常组合使用OOM和MOM。例如,消息排队可以用于利用遗留后端服务器进行通信,而分布式对象呼叫可以用于利用web前端进行通信。
实现软件可靠性的一个重要方法是事务的利用。OOM对象事务类似于数据库事务:根据绝对的(all-or-nothing)执行方式,事务将系统共享数据从一种一致状态变换为另一种一致状态。构成事务的动作是对对象的同步请求。利用如CORBA对象事务服务(OTS)和其Java绑定JTS以及Java事务API(JTA),可以成功实现对事务处理过程的支持。
MOM还具有事务的概念。然而,MOM事务却不同于OOM事务。MOM事务指将一组产生的或消耗的消息归组为原子工作单元:或者发送并读取构成MOM事务的所有消息,或者不发送和读取所有消息。
参考图1,图1示出采用事务和消息的软件系统。该系统包括部件110,部件110包括事务客户和消息发送部件。该系统还包括事务型资源120和消息发送部件130。部件110对事务前后关系内的事务型资源120进行同步调用。独立于此事务前后关系,部件110与消息发送部件130进行异步通信。图1所示的系统示出了与现有事务系统和消息系统结构相同的软件系统结构。包括一个或多个事务型资源的事务独立于在一个或多个消息发送部件之间交换的任何消息。部件110以去耦方式使用事务和消息。因此,看不到作为组操作的特性。
将操作归组为更大单元以保证特定特性的现有方法局限于,仅支持对均匀型操作进行归组。例如,数据库会对象事务仅支持对事务型资源的同步请求进行归组。另一方面,工作消息单元仅支持对消息进行归组。因此,在组内,均匀型操作不互相依赖。未知对互异操作进行归组的支持。因此,软件结构需要将事务和消息分离。从而需要一种通过对互异操作进行归组,可以将分布对象事务处理过程与异步消息集成在一起的系统和方法。
发明内容
根据本发明的一个实施例,提供了一种用于至少对两个互异操作进行归组的方法。该方法包括启动归组操作前后关系的步骤,其中该组或者是至少两个消息操作,或者是至少一个消息操作与至少一个事务型操作。该方法进一步包括步骤:在前后关系内完成操作,各操作产生结果;组合各结果;根据各操作结果的组合,确定总结果;以及根据总结果至少采取一个动作。该方法还包括,在采取动作后,终止前后关系的步骤。每个对象由一个操作所支持。
各消息操作的结果独立于其它消息操作结果。消息操作结果独立于事务型操作结果。操作是对事务型资源的同步调用和至少两个消息发送部件之间的条件异步消息操作之中的一个。在至少一个事务中进行同步调用。异步消息操作产生结果,该结果由与相应操作相关的条件定义。
该方法包括对在事务中的同步调用和条件异步消息操作进行归组的步骤。该方法进一步包括将各结果解释为成功和失败之一的步骤。该方法包括将组总结果解释为成功和失败之一的步骤。如果至少一个独立操作被解释为失败,则该方法将组总结果评估为失败。
该动作是预定动作、自动调用动作以及执行动作之一。在确定总结果为失败之后所采取的动作进一步包括取消操作步骤。在确定总结果为失败之后所采取的动作进一步包括补偿操作步骤。
根据本发明的实施例,机器可读的实际体现机器可执行指令程序的程序存储装置,该机器执行指令程序实现对面向对象软件系统内的至少两个互异操作进行归组的方法步骤。
该方法包括通过根据已定义数据结构建立前后关系表示并通过用识别组前后关系的数值填写该表示,启动组前后关系的步骤。
根据本发明的一个实施例,提供一种在软件系统内对包括两个或多个操作的组进行管理的方法。该方法包括步骤:对于组前后关系内的各操作,启动包括子前后关系的组前后关系,其中,所述各操作为事务型操作或消息操作,事务型资源和消息发送部件之一支持各操作;在子前后关系内执行操作,各操作产生结果;在组前后关系内耦合结果;确定组前后关系的总结果;以及根据总结果至少采取一个动作。
该方法进一步包括在采取一个或多个动作后终止组前后关系的步骤。启动组前后关系的步骤包括步骤:根据已定义数据结构,建立前后关系表示;用识别组前后关系的数值填写此表示。
操作是对事务型资源的同步调用、至少两个消息发送部件之间的条件异步消息操作之中的一个。在至少一个事务中进行同步调用。条件异步消息操作产生结果,由与相应操作相关的条件定义此结果。
该方法进一步包括对事务型资源同步调用和条件异步消息操作进行归组的步骤。该方法将各结果解释为成功和失败之一。该方法进一步包括将总结果解释为成功和失败之一的步骤。该方法包括,如果至少一个操作被解释为失败,则将总结果评估为失败。动作可以是提交、回退(rollback)以及补偿之一。动作可以是更新、删除、制表以及追加之一。在确定总结果为失败之后所采取的动作进一步包括取消操作步骤。在确定总结果为失败之后所采取的动作进一步包括补偿操作步骤。
管理组的过程包括实现软件系统的已定义特性和保存软件系统的已定义特性之一。各消息操作的结果独立于其它消息操作结果。消息操作结果独立于事务操作结果。
附图说明
以下将参考附图详细说明本发明的优选实施例。
图1示出在去耦方式将事务和消息用作两种不同操作的软件系统;
图2示出根据本发明独立完成同步事务调用和异步消息的软件系统;
图3示出消息传送过程中4个不同部件交互风格的方框图;
图4示出消息操作和同步事务操作的各结果组合在一起产生的总结果的组合的方框图;
图5示出用于实现或保存一组操作的已定义特性的方法的方框图;
图6示出执行独立操作并确定该操作的结果的各过程的方框图;
图7示出如图6所示,将同步请求作为部分事务调用并确定该请求的结果的过程方框图;
图8示出如图6所示,发送消息并确定该消息的结果的过程方框图;
图9示出如图6所示,接收消息并确定接收消息的结果的过程方框图;
图10示出如图6所示,进行请求、接收应答以及确定请求/应答操作的结果的过程方框图;
图11示出如图6所示,接收请求、进行应答以及确定请求/应答操作的结果的过程方框图;
图12示出根据本发明实施例将事务和消息耦合的软件系统的方框图;
优选实施方式
本发明涉及一种管理至少两个互异操作以实现和/或保存已定义特性的系统和方法。参考图2,该系统包括部件210,部件210既是事务客户,又是第一消息发送部件。该系统还包括事务型资源220和第二消息发送部件230。为了实现或保存特性,在组合的事务和消息前后关系(组前后关系)中,该系统以耦合方式执行事务并发送消息。例如,事务工作流对象需要异步(非阻塞)将通知消息发送到采用消息排队的多个部件,并且还需要将这些消息成功发送到从队列读取消息的最终接收者。分布对象事务和通知消息互相依赖:如果所有通知消息到达最终接收者,则该事务将成功,如果此事务或一个消息发送失败,则对二者自动采取适当取消动作。因此,如图5至图12所示,可以在前后关系内定义并保存组合操作特性。
显然,可以以硬件、软件、固件、专用处理器或它们的组合的各种方式实现本发明。在一个实施例中,以软件作为实际体现程序存储装置内的应用程序来实现本发明。该应用程序可以被上载,并可以被具有任意适当结构的机器所执行。优先在具有诸如一个或多个中央处理单元(CPU)、随机存取存储器(RAM)以及输入/结果(I/O)接口的硬件的计算机平台上实现该机器。计算机平台还包括操作系统和微指令代码。在此说明的各种处理过程和功能是微指令代码的一部分,或者是通过操作系统执行的应用程序的一部分(或者它们的组合),或者是操作系统本身的一部分,或者是中间件的一部分。此外,还有各种外围设备与计算机平台相连,例如,附加数据存储设备和打印设备。
显然,还因为可以用软件实现附图所示的成分系统部件和方法步骤,所以会由于本发明编程方式的不同,系统部件(或处理步骤)之间的连接互异。本发明对此进行了说明,本技术领域内的一个普通技术人员可以对本发明的这些以及类似实现过程或配置进行研究。
图3示出4个不同消息交互风格。各交互风格包括两个或多个消息发送部件。各部件可以是发送者、接收者、请求者和/或应答者。对图3所示的部件A 310、A 330、A 350和A 370分别分配这些作用。
在第一种(1)情况下,部件A 310将消息发送到部件B 320。部件A 310是产生外出消息的消息发送者,而部件B 320是消息接收者。此交互风格示出消息发送过程。从发送者的角度来看,消息发送过程是异步的,其中发送者与接收者的有效性和响应无关。同步消息发送过程是另一种消息发送模型。请注意,各种交互风格均可能涉及一个消息的多个接收者。此外,包括部件B 320在内的任何一个消息接收者可以对发送者保持匿名。用于发送消息的消息传送系统支持消息交换过程的多样性和匿名性。
第二种情况(2)示出部件A 330从部件B 340接收消息的过程。部件A 330是进入消息的消息接收者,而部件B 340是消息发送者。交互风格示出消息接收过程。发送消息时,部件B 340启动消息接收过程,或者在部件A 330决定接收进入消息时,部件A 330启动接收过程。在后一种情况下,可以采用用于保存诸如消息队列的进入消息的中间消息存储器。
第三种情况(3)示出部件A 350将外出消息发送到部件B 360并随后从同一个部件B 360接收进入消息的过程。交互风格示出消息传送过程的请求/应答模型。此交互过程包括两个消息:第一消息代表请求,第二消息代表对请求消息的应答。这两个消息的相关性在于,应答消息参考请求消息。应答消息可以是简单确认接收,或者可以含有作为请求消息的结果触发的部件B 360的某些处理结果。假定异步发送请求消息,则在发送请求之后,部件A 350可以继续其处理过程,该部件并不被阻塞等待应答。
在第四种情况下(4),示出情况(3)的相反消息交互风格。部件A 370首先从部件B 380接收进入异步消息,然后作为此进入消息的结果进行某些处理过程,之后,部件A 370将外出消息发送到部件B 380。
在以组合方式使用事务和消息的系统内实现这4个消息交互风格。例如,图2所示的事务客户210可以实现图3所示的任何一种消息交互风格。
图4示出根据本发明实施例包括互异操作的各单独结果在内的总结果。在归组前后关系中完成操作,并在包括用于对事务和消息进行归组的系统的软件系统内计算操作。应该注意,可以认为任何两个消息是互异操作。同样,消息与事务互异。
组合结果410依赖于在启动组前后关系情况下实现的不同操作的单独结果。单独结果包括0个或多个事务结果以及一个或多个消息结果。420是在启动前后关系(如图2所示)情况下实现的同步调用结果。430是在启动前后关系情况下实现的消息交互结果。消息交互结果可以是分别对应于图3所示的消息风格1、2、3和4的440、450、460和470内所示的任何类型。可以认为图4所示的单独结果在使用独立事务和消息的系统的前后关系内。
图5示出用于实现或保存一组操作的已定义特性的方法。例如,特性涉及原子性、一致性、可视性、持续性、补偿、版本升级。此外,例如,可以根据语言、系统、安装过程、应用程序,来定义这些特性。
原子性指整体成功或失败的前后关系。因此,可以将成功定义为完成所有请求和发送所有消息。如果前后关系内的任何一个单独同步请求或异步消息不成功,则整个前后关系失败。
另一种特性是一致性。如果确保对事务的输入是先前提交事务的输出,则对象事务(同步请求)将系统状态从一种一致状态变换为另一种一致状态。系统状态的一致性是数据完整性定义的应用。在事务提交的时间点,系统状态与定义的数据完整性一致。根据本发明的一个实施例,一致性还指消息传送。在事务提交的时间点,系统状态与定义的数据完整性一致,并且可以具有作为部分前后关系发送的任意数量消息。
特性的又一个例子是持久性。通过声明消息是持久消息,可以在前后关系内实现持久性,通常,同步对象请求是持久的。因此,一旦前后关系提交,则所有请求(例如进行更新以及进行任何消息发送)均是持久的。
请参考图5,在块510内,启动组前后关系。启动过程根据定义的数据结构建立前后关系表示,并用唯一识别组前后关系的数值填写该表示。存在不同类型的数据结构,例如,它们包括:列表类、树类、阵列类、数据集以及bag类数据结构。组前后关系代表要为其实现或保存某个限定特性集的整个组的操作。此前后关系类似于例如由事务处理系统为事务建立的事务前后关系。为了保证诸如原子性和隔离的特性,事务前后关系定义一个范围,在该范围内,出现事务型资源操作。
根据待归组的操作类型,块510必然启动其它辅助前后关系并使它们与组前后关系相关。例如,如果在块510内启动的前后关系要求对作为事务的一部分进行的同步请求进行归组,则可以启动事务前后关系并使其与组前后关系相关。另一方面,如果在块510内建立的前后关系要求对消息操作进行归组,则启动消息前后关系并使其与组前后关系相关。如果事务操作和消息操作均被归组,则事务前后关系和消息前后关系均被启动并使它们与组前后关系相关。
在块510内启动组前后关系通常会导致建立或采用前后关系表示以及在管理前后关系过程中使用的其它表示(例如:操作记录)。例如,可以建立对象以表示在块510建立的组前后关系以及与组前后关系相关的任意事务前后关系或消息前后关系。如果在块510内事务前后关系与组前后关系相关,则建立新事务记录或采用现有记录;同样,如果在块510内消息前后关系与组前后关系相关,则建立新消息记录或采用现有记录。如果在块510内事务前后关系和消息前后关系均与组前后关系相关,则建立或采用表示并管理事务前后关系和消息前后关系的对象和记录。在处理组前后关系和它归组的操作过程中、在评估前后关系总结果过程中以及在根据总结果、用于实现或保存要求的特性的其它操作过程中,可以使用前后关系、记录以及其它信息的表示。
在块520内,在前后关系内进行操作,确定与各操作相关的单独结果。
在块530内,通过组合在前后关系内进行的各操作的单独结果,确定总结果。例如,总结果可以是简单离散二进制结果,例如:“成功”或“失败”,或者是更复杂结果。可以预定或者动态选择用于组合单独结果的技术,并且它还可以是专用应用程序或独立应用程序。可以与块520并行执行块530。
在块540内,根据总结果和在前后关系内完成的操作,这样采取动作,即保存或实现与组相关的特定特性。此动作可以是简单动作或者是包括多个简单动作的复杂动作。
在块550内,终止前后关系,并结束对实现或保存某个或某些已定义特性的操作进行归组。
图6示出可以在块520(图5所示)内实现的各种操作。在图7至图11中分别示出块610至块650,块610至块650包括单独操作性能和这些操作的各结果的评估。操作包括对事务型资源的同步操作(如图7所示的块610)和各种消息操作(例如,图8至图11所示的块620至块650)。在块520的执行过程中,任何一个这种块均可以被包括在内也可以被省略。可以以顺序方式或以并行方式执行包括的块一次或多次。正如在块610至块650内评估的那样,根据一个或多个所述操作的单独结果,可以终止块520,或者根据与这些操作及其结果无关的情况,终止块520。终止块520至少意味着在其内不再启动操作,并且它会终止事先在其内启动的、正在进行的任何操作。
图7示出块610(图6所示)的确立过程,在该确定过程中,操作是作为事务一部分进行的同步请求。如果根据本发明利用其它操作对此操作进行归组,则作为在块510(如图5所示)内建立的归组前后关系的一部分,建立同步请求所属事务的前后关系。在建立事务前后关系时,还必须建立或采用持续事务记录并使其与归组前后关系内的事务相关。在块710内,对事务型资源进行同步请求。在块510建立的归组前后关系内进行此操作。在块720,利用与归组前后关系内的事务相关的记录,将此操作作为当前事务的一部分进行记录。在块730内,确定单独操作的结果。可以将结果评估为“成功”或“失败”,但是也可以认为是其它简单结果或更复杂结果。可以以任意顺序或并行执行块720和块730。
图8示出块620(如图6所示)的确立过程,在该确立过程中,操作是异步发送消息。这对应于根据图3所示的第一种情况描述的消息交互风格。如果根据本发明,利用其它操作对此操作进行归组,则作为块510(如图5所示)内建立的归组前后关系的一部分建立消息前后关系。还建立或采用已发送持续消息记录并使其与归组前后关系内的消息前后关系相关。在块810内,在利用归组前后关系建立的消息前后关系内异步发送消息。在块820内,在与归组前后关系相关的已发送消息记录内记录消息发送过程。在块830内,确定消息发送操作的结果。此结果可以被评估为“成功”或“失败”,但是也可以认为是其它简单结果或更复杂结果。可以以任意顺序或并行执行块820和块830。
图9示出块630(如图6所示)的确立过程,在该确立过程中,操作是接收消息。这对应于根据图3所示的第二种情况描述的消息交互风格。在块910内,处理过程等待接收消息。在接收消息时,终止块910。如图8所示,在这种情况下,对归组前后关系建立消息前后关系,并且建立或采用已接收持续消息记录并使其与消息前后关系相关。还可以在不接收消息时,例如在超时期满后,终止块910。在块920内,确定是否收到消息。如果已经收到消息,则在块930内,将接收记录到有关已接收消息记录内。在块920后,如果没有收到消息,或者在块930之后,如果收到消息,则在块940内,确定单独操作的结果。可以将该结果评估为“成功”或“失败”,但是也可以认为是其它简单结果或更复杂结果。可以以任意顺序或并行执行块930和块940。
图10示出块640的确立过程,在该确立过程中,单独操作包括连续发送消息和连续接收消息。具体地说,此操作对应于请求者在消息请求/应答方式中的作用,正如根据图3所示的第三种情况描述的那样。如图8所示,在这种情况下,对归组前后关系建立消息前后关系,然后建立已发送持续消息记录并使其与消息前后关系相关。在块1010和块1020内,处理过程分别发送和记录消息。在块1030内,处理过程判定是否等待应答过程的进入消息。如果判定等待,则在块1040内,处理过程等待应答消息。在收到应答消息时,或在对某些其它条件、动作或事件进行响应时,终止此等待过程。在块1050内,根据是否收到消息,进行控制判定过程。如果收到消息,则在块1060内记录此收到的消息。在块1030后,如果判定不等待应答消息,或者在块1050后,如果未收到消息,或者在块1060后,如果收到并记录了消息,则在块1070内,确定单独操作结果。此结果可以被评估为“成功”或“失败”,但是也可以认为是其它简单结果或更复杂结果。可以以任意顺序或并行执行块1060和块1070。
图11示出块650(如图6所示)的确立过程,在该确立过程中,操作包括连续接收消息和连续发送消息。具体地说,此操作对应于应答者在消息请求/应答方式中的作用,正如根据图3所示的第四种情况描述的那样。如图8所示,在这种情况下,对归组前后关系建立消息前后关系,然后建立已接收持续消息记录并使其与消息前后关系相关。在块1110内,处理过程等待请求消息。在收到此消息时,或在对某些其它条件、动作或事件进行响应时,终止此等待过程。在块1120内,根据是否收到消息,进行控制判定过程。如果收到消息,则在块1130内记录此收到的消息。在块1140内,根据收到消息进行处理。可以以任意顺序或并行执行块1130和块1140。在此处理过程之后,在块1150内,根据收到的请求消息,判定是否发送应答消息。如果判定发送应答,则在块1160内发送此应答并在块1170内将发送记录记录到消息记录内。在块1120后,如果没有收到消息,或者在块1150后,如果没有发送消息,或者在块1170后,如果发送并记录了应答消息,则在块1180内,确定单独操作结果。此结果可以被评估为“成功”或“失败”,但是也可以认为是其它简单结果或更复杂结果。可以以任意顺序或并行执行块1170和块1180。
图12示出采用根据本发明系统、用于根据本发明方法耦合事务和消息的软件系统。该软件系统包括部件1210,部件1210是以耦合方式使用事务和消息的事务型客户和消息发送部件。为此,部件1210采用本发明系统。该软件系统还包括事务型资源1220、消息发送者1230以及消息接收者1240。根据本发明的系统1250包括事务消息相关模块1252、事务业务1254以及消息业务1256。
部件1210利用事务消息相关模块1252来启动组合前后关系并终止组合前后关系。它还可以使用模块1252异常终止组合前后关系。此外,还可以利用模块1252来启动并执行作为组合前后关系的一部分的特定操作。例如,此特定操作是条件消息传送操作。模块1252还可以用于查询用途以确定单独操作结果和组总结果,然后根据操作组结果,启动采取动作。
不能要求利用系统1250显式执行对事务型资源的同步调用,例如在部件1210与资源1220之间所示的同步调用。一旦利用系统1250事务客户1210启动组合前后关系,则模块1252利用事务业务1254建立事务前后关系,之后利用事务客户对事务型资源进行的同步调用自动与此事务前后关系相关。对于省略系统1250的事务业务1254建立的事务前后关系的这些事务型资源,事务客户可以直接对事务型资源进行操作。
为了定义并确定单独消息传送结果,管理操作优先是消息管理操作。模块1252将消息业务1256用于实际可靠消息传送过程。利用系统1250,消息发送者(例如:软件系统的消息发送者1230)和消息接收者(例如:软件系统的消息接收者1240)可以与消息发送部件1210去耦。也就是说,利用系统1250,在反过来使用消息业务1256的特定模块1252内,全面执行作为组合前后关系一部分的消息交换过程。
系统1250实现了上述参考图7至图11、作为本发明部分方法说明的任务。这些任务包括:在不同记录内记录互异操作;确定单独操作结果;确定操作组总结果;检验并接收进入消息;对等待进入消息进行判定(可以包括时间管理和同步动作);以及根据操作组结果,自动执行动作以保证对操作组定义的特性。
尽管已经对用于归组互异操作的系统和方法的实施例进行了说明,但是请注意,根据上述说明,本技术领域内的熟练技术人员可以进行各种变换和变更。显然,可以在所附权利要求所述本发明实质范围内,对所披露的本发明特定实施例进行变更。尽管根据专利法的要求对本发明的细节和特别之处进行了说明,但是在所附权利要求中对专利证书保护的权利要求进行了说明。
Claims (32)
1.一种用于对至少两个互异操作进行归组的方法,该方法包括步骤:
对归组该操作的前后关系进行初始化,其中该组或者是至少两个消息操作,或者是至少一个消息操作与至少一个事务型操作;
在前后关系内完成操作,每个操作产生一个结果;
组合各结果;
根据各操作结果的组合,确定总结果;以及
根据总结果至少采取一个动作。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括在采取动作后,终止前后关系的步骤。
3.根据权利要求1所述的方法,其特征在于,所述每个操作由一个对象所支持。
4.根据权利要求1所述的方法,其特征在于,各消息操作的结果与其它消息操作结果无关。
5.根据权利要求1所述的方法,其特征在于,消息操作的结果与事务型操作结果无关。
6.根据权利要求1所述的方法,其特征在于,一个操作是对事务型资源的同步调用和至少两个消息发送部件之间的条件异步消息操作之中的一个。
7.根据权利要求6所述的方法,其特征在于,在至少一个事务内进行同步调用。
8.根据权利要求6所述的方法,其特征在于,异步消息操作产生结果,由与相应操作相关的条件定义该结果。
9.根据权利要求6所述的方法,其特征在于,该方法进一步包括对事务内的同步调用和条件异步消息操作进行归组的步骤。
10.根据权利要求1所述的方法,其特征在于,该方法进一步包括将各结果解释为成功和失败之一的步骤。
11.根据权利要求1所述的方法,其特征在于,该方法进一步包括将总结果解释为成功和失败之一的步骤。
12.根据权利要求11所述的方法,其特征在于,该方法进一步包括如果至少一个单独操作被解释为失败,则将归组总结果评估为失败的步骤。
13.根据权利要求1所述的方法,其特征在于,动作是预定动作、自动调用动作以及执行动作之一。
14.根据权利要求1所述的方法,其特征在于,在确定总结果为失败之后所采取的动作进一步包括取消操作的步骤。
15.根据权利要求1所述的方法,其特征在于,在确定总结果为失败之后所采取的动作进一步包括补偿操作的步骤。
16.一种在软件系统内对包括两个或多个操作的组进行管理的方法,该方法包括步骤:
对于组前后关系内的各操作,启动包括子前后关系的组前后关系,其中,所述各操作为事务型操作或消息操作,事务型资源和消息发送部件之一支持各操作;
在子前后关系内执行操作,各操作产生结果;
在组前后关系内耦合结果;
确定组前后关系的总结果;以及
根据总结果至少采取一个动作。
17.根据权利要求16所述的方法,其特征在于,该方法进一步包括在采取一个或多个动作后,终止组前后关系的步骤。
18.根据权利要求16所述的方法,其特征在于,启动组前后关系的步骤进一步包括步骤:
根据已定义数据结构,建立前后关系表示;以及
利用识别组前后关系的数值填写该表示。
19.根据权利要求16所述的方法,其特征在于,一个操作是对事务型资源的同步调用、至少两个消息发送部件之间的条件异步消息操作之中的一个。
20.根据权利要求19所述的方法,其特征在于,在至少一个事务内进行同步调用。
21.根据权利要求19所述的方法,其特征在于,条件异步消息操作产生结果,由与相应操作相关的条件定义该结果。
22.根据权利要求19所述的方法,其特征在于,该方法进一步包括对事务型资源的同步调用和条件异步消息操作进行归组的步骤。
23.根据权利要求16所述的方法,其特征在于,该方法进一步包括将各结果解释为成功和失败之一的步骤。
24.根据权利要求16所述的方法,其特征在于,该方法进一步包括将总结果解释为成功和失败之一的步骤。
25.根据权利要求24所述的方法,其特征在于,该方法进一步包括如果至少一个操作被解释为失败,则将总结果评估为失败的步骤。
26.根据权利要求16所述的方法,其特征在于,动作可以是提交、回退以及补偿之一。
27.根据权利要求16所述的方法,其特征在于,动作可以是更新、删除、制表以及追加之一。
28.根据权利要求16所述的方法,其特征在于,在确定总结果为失败之后所采取的动作进一步包括取消操作的步骤。
29.根据权利要求16所述的方法,其特征在于,在确定总结果为失败之后所采取的动作进一步包括补偿操作的步骤。
30.根据权利要求16所述的方法,其特征在于,管理组的过程包括实现软件系统的已定义特性和保留软件系统的已定义特性之一。
31.根据权利要求16所述的方法,其特征在于,各消息操作的结果与其它消息操作结果无关。
32.根据权利要求16所述的方法,其特征在于,消息操作的结果与事务型操作结果无关。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/766,734 US6934948B2 (en) | 2001-01-22 | 2001-01-22 | System and method for grouping diverse operations |
US09/766,734 | 2001-01-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1367430A CN1367430A (zh) | 2002-09-04 |
CN1293463C true CN1293463C (zh) | 2007-01-03 |
Family
ID=25077353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011453028A Expired - Lifetime CN1293463C (zh) | 2001-01-22 | 2001-12-31 | 用于分组互异操作的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6934948B2 (zh) |
CN (1) | CN1293463C (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7280558B1 (en) | 2001-06-28 | 2007-10-09 | Microsoft Corporation | Asynchronous pattern |
US7072657B2 (en) * | 2002-04-11 | 2006-07-04 | Ntt Docomo, Inc. | Method and associated apparatus for pre-authentication, preestablished virtual private network in heterogeneous access networks |
US20040055001A1 (en) * | 2002-09-16 | 2004-03-18 | Islam Farhad Fuad | Method and apparatus for computational load sharing in a multiprocessor architecture |
US20040154022A1 (en) * | 2003-01-31 | 2004-08-05 | International Business Machines Corporation | System and method for filtering instant messages by context |
US7346905B2 (en) * | 2003-06-10 | 2008-03-18 | International Business Machines Corporation | Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment |
US7644118B2 (en) * | 2003-09-11 | 2010-01-05 | International Business Machines Corporation | Methods, systems, and media to enhance persistence of a message |
US20070005623A1 (en) * | 2005-06-30 | 2007-01-04 | Microsoft Corporation | Process oriented message driven workflow programming model |
US7543126B2 (en) * | 2005-08-31 | 2009-06-02 | International Business Machines Corporation | Apparatus, system, and method for implementing protected virtual memory subcontexts |
US20070198542A1 (en) * | 2006-02-09 | 2007-08-23 | Morris Robert P | Methods, systems, and computer program products for associating a persistent information element with a resource-executable pair |
US8370440B2 (en) | 2008-09-30 | 2013-02-05 | Microsoft Corporation | Role-independent context exchange |
TW201032535A (en) * | 2008-10-14 | 2010-09-01 | Ibm | A method of handling a message |
US8701128B2 (en) | 2011-02-14 | 2014-04-15 | General Electric Company | Method, system and computer program product for a client application programming interface (API) in a service oriented architecture |
US20130283293A1 (en) * | 2012-04-20 | 2013-10-24 | Tibco Software Inc. | System and method for Intelligently distributing a plurality of transactions for parallel processing |
US9772911B2 (en) * | 2015-03-27 | 2017-09-26 | International Business Machines Corporation | Pooling work across multiple transactions for reducing contention in operational analytics systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590334A (en) * | 1994-03-30 | 1996-12-31 | Apple Computer, Inc | Object oriented message passing system and method |
US5928335A (en) * | 1996-10-30 | 1999-07-27 | Ricoh Company, Ltd. | Client/server system having middleware-based interface between client and server image processing objects |
US6058388A (en) * | 1997-06-16 | 2000-05-02 | Compaq Computer Corporation | Implementation of escrow-locking scalar quantities via process-pair resource managers |
CN1265203A (zh) * | 1997-06-04 | 2000-08-30 | 艾利森电话股份有限公司 | 通用数据处理系统和方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4417588A1 (de) * | 1993-08-30 | 1995-03-02 | Hewlett Packard Co | Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung |
US6167455A (en) * | 1995-05-05 | 2000-12-26 | Apple Computer, Inc. | Method and system for synchronous operation of linked command objects |
US5956489A (en) * | 1995-06-07 | 1999-09-21 | Microsoft Corporation | Transaction replication system and method for supporting replicated transaction-based services |
FR2751106B1 (fr) * | 1996-07-11 | 1999-01-08 | Alsthom Cge Alcatel | Methode de planification de transactions distribuees |
US5822593A (en) * | 1996-12-06 | 1998-10-13 | Xerox Corporation | High-level loop fusion |
JP3415456B2 (ja) * | 1998-10-19 | 2003-06-09 | 日本電気株式会社 | ネットワークシステム及びコマンド使用権限制御方法ならびに制御プログラムを格納した記憶媒体 |
US6640244B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US6493715B1 (en) * | 2000-01-12 | 2002-12-10 | International Business Machines Corporation | Delivery of configuration change in a group |
-
2001
- 2001-01-22 US US09/766,734 patent/US6934948B2/en not_active Expired - Lifetime
- 2001-12-31 CN CNB011453028A patent/CN1293463C/zh not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590334A (en) * | 1994-03-30 | 1996-12-31 | Apple Computer, Inc | Object oriented message passing system and method |
US5928335A (en) * | 1996-10-30 | 1999-07-27 | Ricoh Company, Ltd. | Client/server system having middleware-based interface between client and server image processing objects |
CN1265203A (zh) * | 1997-06-04 | 2000-08-30 | 艾利森电话股份有限公司 | 通用数据处理系统和方法 |
US6058388A (en) * | 1997-06-16 | 2000-05-02 | Compaq Computer Corporation | Implementation of escrow-locking scalar quantities via process-pair resource managers |
Also Published As
Publication number | Publication date |
---|---|
US20020099862A1 (en) | 2002-07-25 |
CN1367430A (zh) | 2002-09-04 |
US6934948B2 (en) | 2005-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1293463C (zh) | 用于分组互异操作的系统和方法 | |
US6216151B1 (en) | Saving connection time by obtaining result of request at later reconnection with server supplied associated key | |
US8028085B2 (en) | Optimizing message transmission and delivery in a publisher-subscriber model | |
US6999997B2 (en) | Method and apparatus for communication of message data using shared queues | |
CN110134534B (zh) | 基于nio针对大数据分布式系统进行消息处理优化的系统及方法 | |
US7080120B2 (en) | System and method for collaborative processing of distributed applications | |
US8136127B1 (en) | System and method for linearly managing client-server communication | |
CN1306430C (zh) | 基于构件的用户自定义事件方法 | |
CN110287040B (zh) | 一种远程调用服务框架的实现系统 | |
US20120159369A1 (en) | Framework for web services exposing line of business applications | |
CN1338687A (zh) | 用于集群计算机系统的合并协议 | |
CN1545655A (zh) | 供异步消息接发系统使用的方法和设备 | |
CN112596931B (zh) | 一种跨进程通信方法、装置、电子设备及存储介质 | |
CN100450105C (zh) | 一种基于java消息服务的同步消息接口实现方法 | |
CN111953784A (zh) | 基于异步通信框架的文件传输方法、装置及系统 | |
US8387070B2 (en) | Object request broker | |
EP1351142A2 (en) | Apparatus and method of lazy connection transaction enlistment | |
CN101374158B (zh) | 根据结果完成比例将缓存内容或处理内容递送给客户端 | |
CN111638979A (zh) | 调用请求的处理方法、装置、电子设备及可读存储介质 | |
CN113065848B (zh) | 一种支持多类集群后端的深度学习调度系统及调度方法 | |
CN102255872B (zh) | 访问非远程对象的方法和装置 | |
US7984113B2 (en) | System and method for passing messages to a web browser | |
WO2002019105A1 (en) | Method for providing efficient operations in a server system | |
CN110809020A (zh) | 一种基于冗余网络异步通信的高可靠数据传输方法 | |
CN117201577B (zh) | 基于pisa的跨平台api和spi的通讯方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20070103 |