CN100357929C - 用于具有委托承诺特征的事务处理的系统和方法 - Google Patents

用于具有委托承诺特征的事务处理的系统和方法 Download PDF

Info

Publication number
CN100357929C
CN100357929C CNB028168348A CN02816834A CN100357929C CN 100357929 C CN100357929 C CN 100357929C CN B028168348 A CNB028168348 A CN B028168348A CN 02816834 A CN02816834 A CN 02816834A CN 100357929 C CN100357929 C CN 100357929C
Authority
CN
China
Prior art keywords
affairs
server
client
service device
guaranteed service
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
Application number
CNB028168348A
Other languages
English (en)
Other versions
CN1606738A (zh
Inventor
爱德华·P·费尔特
普里西拉·冯
亚历山大·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.)
Oracle International Corp
Original Assignee
BEA Systems 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 BEA Systems Inc filed Critical BEA Systems Inc
Publication of CN1606738A publication Critical patent/CN1606738A/zh
Application granted granted Critical
Publication of CN100357929C publication Critical patent/CN100357929C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/466Transaction processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

本发明提供了一种事务(transaction)业务,它使得无足轻重的客户可以在服务器(106-112)上执行委托的承诺(delegated commit)(140)。这个处理使得无足轻重的客户(102)可以开始和终止事务,同时将用于事务承诺处理的实际责任委托(delegate)给事务协调器和在位于所述服务器上的机器上运行的事务管理器。客户应用(102)不需要本地的事务服务器。可以从客户可访问的多个服务器中选择承诺服务器,并且承诺服务器负责向参加所述事务的其他(参与)服务器承诺事务。

Description

用于具有委托承诺特征的事务处理的系统和方法
技术领域
总的来说,本发明涉及应用和事务服务器,具体涉及用于允许事务或消息的委托承诺的系统。
优先权
本申请要求下列申请的优先权:2002年7月15日提交的第______号美国实用新型申请“用于具有委托承诺特征的事务处理的系统和方法”,2001年7月17日提交的第60/306,100号临时申请“用于具有委托承诺特征的事务处理的系统和方法”,2001年7月30日提交的第60/308,753号临时申请“用于具有委托承诺特征的事务处理的系统和方法”,这些申请在此通过引用并入。
交叉参考
本申请涉及待审的实用新型申请:2002年7月15日提交的第______号“用于具有委托承诺特征的事务处理的系统和方法”,发明人:Edward P.Felt、Priscilla Fung、Alex Somogyi和Sriram Srinivasan;2002年7月15日提交的第______号申请“用于具有同步回叫处理特征的事务处理的系统”,发明人:Edward P. Felt、Priscilla Fung、Alex Somogyi和Sriram Srinivasan;这些申请整体在此通过引用并入。
背景技术
Java 2平台企业版(J2EE)规范定义了用于开发多层企业应用程序的当前标准之一。J2EE提供了企业应用程序的设计、开发、汇编和部署的基于组件的方法,它降低了成本并且使开发者能专注于设计和实现。J2EE平台向开发者提供了多层分布应用模型、重新使用组件的能力、统一的安全模型和灵活的事务控制。它们不仅可以比以往更快地向市场提供革新的客户解决方案,而且所产生的独立于平台的、基于J2EE组件的解决方案不依附于任何厂商的产品和应用程序接口(API)。
J2EE规范定义了下列种类的组件:应用客户端组件、企业JavaBeans(EJB)、小服务程序(servlet)和Java服务器网页(JSP)(也称为万维网组件)和小应用程序(applet)。多层分布应用模型暗示应用逻辑按照功能被划分为组件,并且不同的应用组件可以在同一或不同的服务器上构成J2EE应用。在何处实际安装应用组件依赖于所述应用组件属于多层J2EE环境中的哪层。这些层被图解在图1中。如图所示,应用服务器层4用于开发EJB容器和/或表示容器,诸如小服务程序、JSP和html网页14。它们继而被用作在客户层2和后端层6之间的接口,其中在所述客户层2部署了客户端8和客户程序,而所述后端层6用作容纳企业或传统的应用程序,诸如企业资源计划(ERP)系统。
客户层-这可以是在公司防火墙内部或外部的客户层内运行的浏览器、基于Java的程序或其他万维网启动的编程环境。
应用服务器层-通常,这个层容纳用于支持客户请求的表示逻辑和商业逻辑的组合。经由显示HTML网页的JSP网页和小服务程序来支持表示逻辑,经由远程方法调用(RMI)对象和EJB 12来支持商业逻辑。EJB依赖于用于事务的容器环境、生存周期和状态管理、资源池、安全等,它们一起构成其中执行bean的运行时间环境。
后端层-这一般是现有的应用程序和数据商店的组合。它也被称为企业信息系统(EIS)层,因为它可以包括下述系统:企业资源计划(ERP)、主机事务处理、数据库系统和其他传统信息系统。
因为J2EE应用的组件独立地并且经常在不同器件上运行,因此需要一种客户和应用服务器层代码查找和引用其他代码和资源的方式。客户和应用代码可以例如使用Java命名和目录接口(JNDI)16来查找诸如企业bean之类的用户定义的对象、诸如Java数据库连接器(JDBC)数据源对象的位置和消息连接的环境项目,其中Java数据库连接器(JDBC)数据源对象继而用于查找在后端层中的资源。
可以在万维网和企业bean组件的部署时间配置诸如安全和事务管理之类的应用行为。这个部署时间特征从可能随着汇编改变的配置设置分离(decouple)应用逻辑。J2EE安全模型让开发者配置万维网或企业bean组件,以便仅仅授权的用户可以访问系统资源。例如,万维网组件可以被配置成提示输入用户姓名和密码。企业bean组件可以被配置成仅仅在特定组中的人能够调用某些种类的其方法。作为另一种选择,一个小服务程序组件可以被配置成具有可以由每个人访问的某些方法和仅仅可以由在一个组织中的某些有权限的人访问的少量方法。同一小服务程序组件可以对另一个环境被配置成具有每个人可以获得的所有方法,或者仅仅所选择的一些人可以获得的方法。
诸如加利福尼亚的San Jose的BEA系统公司的WebLogic服务器之类的一些应用服务器使用访问控制列表(ACL)机制,它允许细微地控制在服务器上运行的组件的使用。利用ACL,开发者可以在Java方法级定义哪个用户或哪组用户可以或不可以执行什么。这个ACL机制涵盖了除了EJB之外的、运行在应用服务器上的任何内容,它们具有在EJB规范中定义的、各自的访问控制机制。安全域使得管理员可以将来自现有的授权或认证系统的信息输入到ACL中。
Java小服务程序
小服务程序是扩展万维网服务器的功能的程序,小服务程序从客户接收请求,动态地产生响应(可能是查询数据库来完成请求),然后向客户发送包括HTML或XML文件的响应。小服务程序类似于CGI(公共网关接口),但是通常容易写,因为小服务程序使用Java类和流。它们执行得更快,因为小服务程序被编译为Java字节代码,并且在运行时间,小服务程序被保存在存储器中,每个客户请求产生一个新的线程。小服务程序使得容易以动态方式产生对于HTTP响应流的数据。每个客户请求作为新的连接被执行,因此流控制不自然地存在于请求之间。为了允许这个会话,管理维持在请求之间的特定客户的状态。在一些应用服务器中,多个小服务程序利用HTTP会话对象来存储它们在方法请求之间的状态。为了在线恢复故障的目的,这个对象可以在成群环境中被复制。
Java服务器网页
JSP网页是用于开发小服务程序的基于文本的、以表示为中心的方式。JSP网页提供了小服务程序的所有益处,并且当与JavaBeans类相结合时,提供使得内容和显示逻辑分离的容易方式。与公共网关接口(CGI)相比较,JSP网页和小服务程序更是所期望的,因为JSP网页和小服务程序独立于平台并且使用较少的开销。JSP网页可以与JavaBeans类一起用来定义万维网模板,所述万维网模板用于建立具有类似观感的、由网页构成的网站。JavaBeans类执行数据翻译,因此所述模板没有Java代码。这意味着所述模板可以由HTML编辑器来保存。可以使用利用JSP网页的、简单的基于万维网的应用程序来将内容绑定到使用常规标签或scriptlet而不是JavaBeans类的应用逻辑上。常规的标签被捆绑为被输入到JSP网页的标签库。scriptlet是直接嵌入到JSP网页中的小Java代码段。
数据库访问业务(JDBC)
JDBC作为到关系数据库的桥梁,并且按ODBC(开放数据库连接)规范成型。它通过使用驱动器来从程序代码中分离数据库。JDBC的一些实现方式提供对于高级数据类型的支持,并且也支持可滚动的结果集和批更新的功能。
Java消息传递服务(JMS)
JMS是用于支持在Java程序之间的消息交换的J2EE机制。这有关于Java如何支持异步通信,其中发送者和接收者不必知道彼此,因此可以独立地操作。JMS支持两种消息传递模型:
点到点-它基于消息队列。在这个模型中消息产生者向一个队列发送消息。消息用户可以将其本身附加到一个队列以倾听消息。当一个消息到达所述队列时,用户将其从队列取出并且响应于它。消息可以仅仅向一个队列发送并且由仅仅一个用户使用。用户具有指定它们需要的精确消息类型的过滤消息的选择。
公布和申请-它使得产生者可以向一个主题发送消息,并且那个主体的所有注册用户可以检索那些消息。在这种情况下,许多用户可以接收到同一消息。
Java接口定义语言(IDL)
CORBA对象使用IDL来指定合同,即它们如何与其他对象交互。利用Java IDL,可以在Java世界和CORBA世界之间定义合同。从Sun的JDK 1.2开始,包括ORB,它使得Java应用可以经由因特网InterORB(IIOP)协议来调用远程的CORBA对象。
企业JavaBeans(EJB)
EJB组件被设计来封装商业逻辑,以便开发者不必牵涉到用于诸如数据库访问、事务支持、安全、超高速缓存和并发之类的典型任务的编程代码。在EJB规范中,这些任务是EJB容器的责任。一个企业bean包括接口和类。客户通过企业bean的家庭和远程接口来访问企业bean方法。家庭接口提供了用于建立、去除和定位企业bean的方法,远程接口提供了商业方法。在部署时间,所述容器从这些接口建立类,然后使用它们来向寻求建立、去除、定位和调用在企业bean上的商业方法的客户提供访问。企业bean类提供了商业方法、建立方法和探测器方法的实现;如果bean管理它本身的持续,则提供关于其生存期方法的实现。
存在两种企业bean:实体bean和会话bean。会话bean表示与客户的短暂会话,并且可能执行数据库读写。会话bean可以调用JDBC调用本身,或它可以使用实体bean来进行调用,在这种情况下,会话bean对于实体bean是客户。会话bean的字段包括会话的状态并且是暂态的。如果服务器或客户崩溃,则会话bean消失。
实体bean表示在数据库中的数据和对那个数据作用的方法。在雇员信息表的关系数据库环境中,表中每行可以有一个bean。实体bean是事务型和生存期长的。只要数据保存在数据库中,则实体bean存在。这个模型可以容易地用于关系数据库,而不限于对象数据库。
会话bean可以是有状态的和无状态的。有状态的会话bean包括客户的会话状态。会话状态是会话bean的实例字段值外加可以从会话的bean的字段达到的所有对象。有状态的会话bean不表示在永久的数据存储器中的数据,但是它们可以访问和更新代表客户的数据。无状态会话bean没有用于特定客户的任何状态信息。它们通常提供不维持任何特定状态的服务器端的行为。无状态会话bean需要较少的系统资源。提供一般业务或表示被存储的数据的共享视图的商业对象是无状态的会话bean的良好候选者。
使用所管理的容器的持续性来访问关系数据库的企业bean不要求开发者使用关于数据库访问的任何JDBC 2.0 API,因为容器处理这一点。但是,如果使用所管理的bean的持续性,或者如果需要访问除了关系数据库之外的企业信息系统,则必须提供用于如此的适当代码。
在使用所管理的bean的持续性访问数据库的企业bean的情况下,必须实现具有JDBC 2.0 API代码的bean的生存期方法来处理装载和存储数据,并且在运行时间和永久数据库存储器之间维持一致性。虽然万维网层使用HTTP或HTTPS来在层之间传送数据,但是EJB层使用RMI-IIOP。RMI-IIOP是全面(full-scale)分布式计算协议,它使得访问企业bean的任何客户或万维网层程序可以直接访问在EJB层中的业务。这些业务包括用于引用企业bean的JNDI、用于发送和接收异步消息的Java消息传递业务(JMS)和用于关系数据库访问的JDBC。
事务管理
诸如WebLogic服务器系统之类的任何应用服务器的最基本特征之一是事务管理。事务是用于保证数据库事务被精确地完成并且它们采用高性能事务的所有“ACID”属性的手段,包括:
原子性-事务对数据库做出的所有改变是永久做出的,否则所有改变被退回重来。
一致性-成功的事务将数据库从前一个有效状态变换到新的有效状态。
隔离-事务对数据库做出的改变对于其他操作是不可见的,除非事务完成其工作。
持久性-事务对数据库做出的改变经受得住未来系统或媒体故障的考验。
J2EE事务模型让应用开发者在部署时间指定包括单个事务的方法之间的关系,因此在一个事务中的所有方法被作为单个的单元。这是所期望的,因为一个事务是必须全部完成的一系列步骤,或者如果它们未全完成,则所有都返回。例如,开发者可能具有在通过将第一个帐户作为借方,并且将第二帐户作为贷方来从一个银行帐户向另一个转账的企业bean中的一系列方法。在这个实例中,它们要将整个传输操作作为一个单元,以便如果出现在借之后和在贷之前的失败,则借退回重来。
汇编期间在应用组件上指定事务属性,使得开发者可以将方法编组为跨应用组件的事务。以这种方式,可以在J2EE应用中改变应用组件,并且可以不改变代码而重新分配事务属性。Java事务业务(JTS)和Java事务API(JTA)形成J2EE中,具体地说,是用于EJB和JDBC 2.0的事务支持的基础。JTS规范是用于事务管理的底层应用程序接口(API),它将Java映射为对象管理组(OMG)对象事务服务。JTA规范是Sun Microsystems公司与事务处理和数据库系统业内的领先的工业合作伙伴合作开发的,并且指定了在事务管理器、资源管理器、应用服务器和事务应用之间的标准Java接口。具体地说,JTA是包括下列两个部分的高层API:
事务接口-它使由分布式组件完成的工作能够由全局事务来约束,并且是标注或识别构成一个事务的操作的组的方式。
XA资源接口-它是基于X/Open或XA接口的接口,它使能处理分布式事务。这涉及在多个资源上的事务的协调,诸如在数据库或队列内或之间的协调。
多数时间,开发者不必关心使用JTA来编程明确的事务,因为这个工作是通过JDBC和EJB API来执行的,所述JDBC和EJB API由容器处理并且由应用部署描述符配置。开发者可以不把精力放在事务的设计上,而是放在其实现上。
WebLogic服务器支持用于企业应用的分布式事务和两阶段承诺(two-phase commit)协议。分布式事务是以协作的方式更新多个资源管理器(诸如数据库)的事务。相反,本地的事务更新单个资源管理器。两阶段承诺协议是在两个或多个资源管理器上协调单个事务的方法。它通过下列方式来保证数据的完整性:保证在所有参与的数据库中承诺事务的更新,或者将事务的更新离开所有的数据库返回,返回到事务开始之前的状态。换句话说,或者所有的参与数据库被更新,或者它们都不被更新。分布式事务涉及下列参与者:
事务始发者-启动事务。事务始发者可以是用户应用、企业JavaBean或JMS客户。
事务管理器-管理代表应用程序的事务。事务管理器通过与在那些事务中参与的所有资源管理器通信来协调来自应用程序的命令,以便开始和完成事务。当在事务期间资源管理器故障时,事务管理器帮助资源管理器确定是否承诺或返回待决的事务。
可恢复资源-提供数据的永久存储。所述资源通常是数据库。
资源管理器-提供对信息和处理的集合的访问。
知道的事务的JDBC驱动器是公共资源管理器。资源管理器提供事务能力和行为的持久性;它们是在分布式事务内被访问和控制的实体。在资源管理器和特定资源之间的通信被称为事务分支。
两阶段承诺协议的第一阶段被称为准备阶段。在事务日志文件中记录所需要的更新,并且资源必须通过资源管理器指示准备好进行改变。资源可以或者选择承诺更新或者返回到前一个状态。在第二阶段中能发生的内容依赖于资源如何选择。如果所有资源选择承诺,则更新参与事务的所有资源。如果一个或多个资源选择返回,则参与事务的所有资源返回其前一个状态。
对商业事务的支持
事务在下述的实例情况下是适当的(虽然这些情况仅仅是说明性的而不是穷举性的)。
作为第一个实例,客户应用需要对几个对象进行调用,这可能涉及到向一个或多个数据库的写入操作。如果任何一个调用不成功,则被写入(或者在存储器中,或者更典型的是向数据库)的状态必须退回重来。例如,考虑一个旅行社的应用。客户应用需要安排到远处的行程;例如从法国的Strasbourg到澳大利亚的A1ice Springs。这样的行程将不可避免地需要多个独立的飞机预订。客户应用通过依序预定行程的每个独立段而工作;例如,Strasbourg到巴黎、巴黎到纽约、纽约到洛杉矶。但是,如果不能进行任何一个独立的飞机预订,则客户应用需要取消对那个点做出的所有飞机预定的方式。客户应用需要与由服务器应用管理的对象进行对话,并且客户应用需要对特定的对象实例做出多个调用。所述对话的特征在于下面的一个或多个:
在每个连续的调用期间或之后,数据被缓存在存储器中或被写入到数据库中,在会话结束时将数据写入数据库,客户应用需要对象来在每个调用之间保持一个在存储器中的环境;即,每个连续的调用使用在整个会话中一直保持在存储器中的数据,在会话结束时,客户应用需要能够取消可能已经在会话期间或之后发生的所有数据库写入操作。
作为一个替代的实例,考虑基于因特网的在线购物小车(cart)应用。客户应用的用户通过在线目录浏览并且进行多个购买选择。当用户完成选择他们要购买的多个项目的时候,它们结帐并且输入它们的信用卡信息来进行购买。如果信用卡结帐失败,则购物应用需要取消在购物小车中的所有待决的购买选项的机制,或者退回在会话期间进行的任何购买事务。在对于一个对象的单个客户调用的范围内,所述对象对在数据库中的数据执行多个编辑。如果编辑之一失败,则所述对象需要将所有的编辑退回。(在这个情况下,独立的数据库编辑不是必要的EJB或RMI调用。诸如小应用程序之类的客户可以使用JNDI获得对Transaction和TransactionManager对象的引用,并且开始一个事务)。作为另一个示例,考虑银行业应用。客户在出纳对象上调用传送操作。所述传送操作需要出纳对象对银行数据库进行下列调用:调用对一个帐户的借款方法;以及调用对另一个帐户的贷款方法。如果对银行数据库的贷款调用失败,则银行业应用需要将前一个借款调用退回的机制。
对于如上所述的事务管理的传统方法的一个问题是,它们不允许无足轻重的客户可靠地参与事务处理中。在此使用的无足轻重的客户通常是在单用户的、难管理的台式系统上运行的客户,而所述台式系统具有不规范的可利用性。例如,PC(个人计算机)或台式拥有者可以当它们的台式系统不在使用时关断它们的台式系统。理想情况下,应当不要求这些单用户的、难管理的台式系统来执行复杂和必要的网络功能,诸如事务协调。具体地说,难管理的系统应当不负责保证期望涉及服务器资源的事务的原子性、一致性、隔离和耐久性(ACID)属性。需要这样一种机制,它从客户去除这样的责任的负担,并且辅助事务承诺过程,同时保证整体的事务完整性。
发明内容
本发明允许客户在事务处理系统中执行委托的承诺,即向通常是服务器的另一个实体委托事务的承诺阶段。委托的承诺使得无足轻重的客户开始事务,管理活动部分,然后终止事务,而用于事务承诺处理的实际责任被委托到在服务器上运行的事务管理器过程。以这种方式,客户应用不需要本地的事务服务器。相反,客户使用的UserTransaction的远程实现将事务协调的实际责任委托到在服务器上的事务管理器。
这样的机制的益处包括允许客户在事务的活动阶段期间直接涉及多个服务器,而原子地承诺事务的重要任务被委托给通常比客户本身更可靠的被管理的服务器。
在典型的事务的生存期期间,存在几个状态转换,包括在活动、交接、预备、准备、记录和承诺状态之间的转换。按照本发明,在活动状态期间,运行在客户上的应用代码在事务的执行期间接触几个服务器。客户负责记住接触了那些服务器。在一个实施例中,所接触的第一服务器被指定为“承诺”服务器。当客户要求“承诺”时,向承诺服务器委托(即交接)用于承诺事务的责任。所述承诺服务器通过预备、准备、记录和委托步骤来移动事务。当承诺处理完成时,承诺服务器返回客户。除了承诺服务器负责处理承诺之外,它还可以是正常的服务器,并且在许多情况下,任何一个服务器都可以承担委托服务器的角色。哪个服务器实际上结束于(end up with)所述责任(因此变为“承诺服务器”)依赖于实际的实现方式。
客户可以使用JNDI来获得对UserTransaction和TransactionManager对象的引用,并且可以使用任何一个对象引用来开始事务。为了获得当前线程的Transaction(事务)对象,客户程序调用getTransaction()方法。从JNDI返回的Transaction对象支持UserTransaction和TransactionManager接口。
本发明通过下述方式来保证事务完整性:保证承诺将不成功,除非在事务中涉及的所有事务对象已经完成了它们相应的事务请求的处理。事务服务提供等效于由标准请求/响应过程间通信模型所提供的被查看事务行为,所述标准请求/响应过程间通信模型由OpenGroup(OMG)规范定义。
本发明的一个实施例包括:一种用于在客户和服务器之间进行事务处理的系统,其允许将客户处理部件和服务器处理部件之间的事务责任委托给承诺服务器,该系统包括:客户处理部件,用于获得对事务管理器的引用,并启动事务,其中,所述事务管理器在所述客户处理部件中执行所述事务的活动阶段,并且所述客户处理部件还在该活动阶段期间收集信息以用于后续承诺;以及承诺服务器,其中多个服务器中被接触的第一服务器被指定为承诺服务器,其中所述承诺服务器用于由所述客户处理部件在活动阶段期间收集的所述信息,在参与服务器上的服务器处理部件中承诺所述事务,并向所述客户处理部件传达所述事务承诺处理的结果,其中,所述参与服务器是所述多个服务器中的另一个服务器。
本发明的另一个实施例包括一种用于在客户和服务器之间进行事务处理的方法,它允许向承诺服务器委托对客户处理部件和服务器处理部件之间的事务的责任,包括步骤:通过客户处理部件获得对事务管理器的引用;使用所述事务管理器启动事务;执行活动阶段,并从所述客户处理部件中收集信息;从多个服务器中确定一个承诺服务器,所述承诺服务器负责承诺所述事务,其中所述多个服务器中被接触的第一服务器被指定为承诺服务器;通过所述客户处理部件将所述事务交接到所述承诺服务器,包括将在活动阶段期间收集到的信息发送到所述承诺服务器;以及在一个参与服务器上的服务器处理部件中承诺所述事务,并向所述客户处理部件传达所述事务承诺处理的结果,其中,所述参与服务器是所述多个服务器中的另一个。
附图说明
图1示出了在现有技术中已知的J2EE结构的图解。
图2示出了按照本发明的一个实施例的委托承诺特征的图解。
图3示出了用于本发明的典型客户-服务器系统的图解。
图4示出了按照本发明的一个实施例的各种事务状态的图解。
图5示出了包括承诺服务器的、按照本发明的一个实施例的事务委托承诺系统的第一图解。
图6示出了包括承诺服务器的、按照本发明的一个实施例的事务委托承诺系统的第二图解。
图7示出了按照本发明的一个实施例的事务委托承诺处理的流程图。
图8示出了按照本发明的一个实施例的两阶段承诺处理的示意图。
图9a和9b示出了按照本发明的一个实施例的客户事务状态机的示意图。
图10示出了按照本发明一个实施例的协调状态机的示意图。
图11a和11b示出了按照本发明的一个实施例的子协调器状态机的示意图。
图12示出了按照本发明的一个实施例的开始事务生存期的图解。
图13示出了按照本发明的一个实施例的事务传播生存期的图解。
图14示出了按照本发明的一个实施例的委托生存期的图解。
具体说明
本发明提供了一种系统和方法,用于允许客户或客户应用在一个事务或事务处理系统中执行委托的承诺。这个处理允许客户开始和终止事务,而对事务委托处理的实际责任被委托到在服务器上运行的事务管理器。因此,客户应用不需要作为当客户是无足轻重的客户时的重要特征的本地事务服务器。由客户使用的用户事务的远程实现将事务协调的责任委托给在所选择的服务器上的事务管理器。
这样的机制的益处包括在事务的活动阶段期间允许客户直接涉及多个服务器,同时原子地(atomically)承诺事务的关键工作被委托给通常比客户更可靠的被管理服务器。当客户是无足轻重的客户时尤其是这样,所述无足轻重的客户诸如用户的台式机,它比企业级服务器更易于出现故障或差错。
图2图解了本发明的一个实施例的示意图,其中客户应用向多个服务器之一委托用于协调事务的责任。如图2所示,包括客户应用104的客户102启动或开始涉及至少一个或多个服务器的事务,所述服务器包括服务器A106、服务器B 108、服务器C 110和服务器D 112。在活动阶段120期间,客户可以在事务委托阶段之前从事务处理增加一个服务器。因此,例如,事务可以首先包括一个服务器A 122或在那个服务器上的资源,但是在活动阶段期间的稍后的时间,客户应用可以指定所述事务应当也包括服务器A和B124。每个独立的事务被从可能的服务器/协调器的池中分配到事务协调器或“承诺服务器”。在图2所示的示例中,服务器A 106被选作事务协调器/承诺服务器,尽管服务器A、B、C或D中的任何一个显然可以被等效地选作事务协调器。当最后承诺事务时,事务协调器将负责协调实际事务,从客户去除这个负担。如图2所示,在事务被承诺时,如此被选作事务协调器的服务器保存准备状态信息126,所述准备状态信息126将启动事务协调器承诺事务。在开始委托阶段130期间,客户应用向事务协调器或作为事务协调器的服务器发送承诺请求132。在委托承诺阶段140期间,作为事务协调器的服务器(在这种情况下是服务器A 106)负责向被指定为事务环境的一部分的服务器承诺事务142(在这种情况下是服务器A 106和B 108)。不需要客户或客户应用来参与承诺处理。以这种方式,客户可以是无足轻重的客户,因为它不必参与任何承诺处理。事务协调器具有用于承诺事务所需要的所有信息。
虽然在图2中可以看出服务器A被选作事务协调器,但在实际中存在可用于选择或指定服务器来作为事务协调器的许多技术。在一些实现情况中,客户可以选择与事务协调器连接的第一服务器。在其他实现方式和实施例中,可以按照特定的规则或算法来从多个服务器之一选择事务协调器。在活动阶段期间,客户向事务协调器传送关于哪个服务器应当参与事务的信息,以便可以随后在委托阶段期间使用所述信息。在一个实现方式中,每个服务器实质是相同的,并且任何服务器可以作为事务协调器。在其他实现方式中,一些服务器可以被指定为事务协调器。在Java事务应用(JTA)的环境中,JTA可以在被称为事务环境的数据结构中记住事务数据。这个事务环境被传播到所选择的事务协调器。数据结构/事务环境包括在承诺阶段中随后使用的所有必要信息,其中包括事务协调器ID。
图3示出了用于本发明的典型客户-服务器系统的图解。远程设备或应用202——通常被称为客户应用——与应用服务器204通信,或更典型的是与在应用服务器驻留的应用通信。在客户端,事务管理器206被客户应用用来向服务器(或向许多服务器)发送和接收事务208。类似地,在服务器端,事务管理器210被用于管理客户的事务。在一个实施例中,服务器也可以逻辑地包括用于启动事务的事务协调器处理214、用于监控事务状态的子协调器处理216和用于记录事务的事务记录器处理218。当事务发生时,它们可以被记录到数据库220上的事务日志中以用于以后的审察、引用或退回目的。需要“事务日志”来用于事务恢复,以保证事务通过系统故障被原子地承诺。显然事务协调器、子协调器和记录器处理器中的每个全部可以运行在同一服务器或不同的服务器上。在一个实施例中,由客户达到的第一服务器自动担当协调器的角色。其他实现和其他实施例可以使用不同的用于选择协调器的方法。
图4示出了在事务生存期上的各种状态或阶段,包括活动302、交接(handoff)304、预备(pre-preparing)306、准备(preparing)308、记录310和承诺312状态。因此,在任何事务的生存期期间,存在几个状态转换,包括在活动、交接、预备、记录和委托状态之间的转换。在活动状态中,在客户上运行的应用或应用代码被设计来在事务的实际执行期间接触几个服务器。客户负责记住接触那些服务器,并且有时负责记住关于事务的其他细节。按照本发明的一个实施例,所接触的第一服务器被指定为承诺服务器或事务协调器。当客户调用“承诺”时,用于承诺事务的实际责任被委托或交接到承诺服务器。除了承诺服务器负责处理所述承诺之外,它还可以是正常的服务器,并且在许多情况下,任何服务器可以担当承诺服务器的角色。哪一个实际上结束于所述责任(因此变为“承诺服务器”)依赖于实际的实现方式。
图5示出了按照本发明的一个实施例的事务委托承诺系统的第一图解。当客户402试图与处理事务通信时,可以将408、410接触多个服务器(404,406)以确定哪个将实际处理所述事务。在一些实施例中,在多个服务器内的每个服务器(404,406)可以作为承诺服务器或参与服务器。由本发明提供的系统在所使用的服务器的数量和类型上是灵活的。在一个实施例中,所接触的第一服务器(在图5的示例中服务器A404)变为承诺服务器和协调器。其他服务器(即图5中的服务器B 406)因而仅仅被当作参与服务器。其他实现可以使用替代机制来选择承诺服务器。
图6示出了按照本发明的一个实施例的同一事务委托承诺系统的第二图解。在前一个步骤中选择的承诺服务器现在负责处理承诺处理。事务处理由客户402和承诺服务器404之间的通信412单独处理,而不需要该客户和参与服务器406之间的进一步通信。承诺服务器处理一个参与服务器406(如果事务涉及多个参与服务器则为多个服务器)的所有事务处理414。承诺服务器通过在那些参与服务器上的预备、准备、记录和承诺步骤来移动事务。当承诺处理完成时,承诺服务器向客户返回承诺。
图7示出了按照本发明的一个实施例的事务委托承诺处理的流程图。如图7所示,客户或客户应用接触多个事务或应用(步骤502)服务器。一个承诺服务器被指派来执行特定的事务,按照一个实施例,所述服务器通常是客户进行第一调用的服务器。在一些点(步骤506),客户应用将调用委托处理。所述承诺服务器在所述一个参与服务器或多个参与服务器上处理事务(步骤508)。当委托处理完成时,承诺服务器返回客户。
客户处理(例如一个小应用程序)可以使用标准JNDI接口来获得对UserTransaction和TransactionManager对象的引用。客户可以使用任一个对象引用来开始事务。
被查看的事务行为通过下列方式来提供事务完整性:保证一个承诺将不成功,除非在事务中涉及的所有事务对象已经完成了它们的事务请求的处理。事务服务提供与由Open Group(开口组)定义的请求/响应处理间通信模型所提供的等效的被查看事务行为。
图8示出了按照本发明的一个实施例的、可以使用两阶段承诺处理的系统的示意图。客户或客户应用602使用例如承诺功能来调用事务承诺604。事务请求被传达到多个服务器606。这些服务器610之一被选作用于这个特定事务的承诺服务器。对于事务承诺的责任被交接到那个承诺服务器610。在一个实施例中,承诺服务器向盘614写入这个事务,在此其他服务器(参与服务器)可以将其拾取或对其操作。记录事务是两阶段委托协议的一部分,并且目的是在存在系统故障时保证事务的原子性。例如,如果在第二承诺阶段期间协调服务器崩溃,则在所述服务器重启后,可以利用所记录的事务来完成所述第二阶段。如果必要的话,如果事务失败,则承诺服务器也处理任何退回功能616。当完全承诺事务时,承诺服务器将承诺618返回客户或调用应用602。
图9-11示出了本发明的一个实施例的状态机图。这些状态图表示可能在事务承诺生存期期间在一个事务上发生的各种操作。在图9-11中,实线指示成功的操作,而虚线指示不成功的(并且最后被退回重来的)操作。
图9a和9b示出了按照本发明的一个实施例的客户事务状态机的示意图。在图9a中,从客户或客户应用来看,事务通过活动阶段702并且被承诺708或者被退回710。预备阶段704和准备阶段706对于客户基本上是不可见的。图9b从全局的角度图解了类似的处理,并且包括几个事务分支。在这个示例中,准备阶段716查看准备事务的几个分支。如果它们全被准备,则事务被记录或写入盘(718)。否则,作为整体的事务被退回710。
图10示出了按照本发明的一个实施例的事务协调器状态机的示意图。从事务协调器的角度来看,必须将事务交接到两阶段或委托承诺处理,或者它必须被退回。在活动阶段802期间,应当被退回的事务被标注804以退回806,并且最终被退回808。应当承诺的事务被发送到两阶段承诺处理810,并且最后被承诺812。在两阶段承诺处理期间,任何失败的事务被加到退回列表中,并且最终被退回。
图11a和11b示出了按照本发明的一个实施例的子协调状态机的示意图。子协调器负责通过预备902、准备906、已准备好910和承诺阶段912来看见事务。附加步骤可以在一些实施例中用于确认事务正在被准备904,并且用于向事务日志908记录这个已准备好状态。
图12-14图解了按照本发明的一个实施例的事务相关联的生存期。图12示出了按照本发明的一个实施例的开始事务生存期的图解。事务管理器1002使用协调器定位器1004来找到用于这个特定事务的事务协调器1006,并且获得事务ID。这个事务ID随后被简单的函数用来产生事务1008。在本发明的其他实施例中,取消getCoordinator 1004和获得事务(reservedXID)1006步骤,并且事务管理器1002分配它自己使用伪随机数构造的事务标识符。
图13示出了按照本发明的一个实施例的事务传播生存期的图解。客户应用1102利用事务管理器1104来向客户Java虚拟机1106传送一个事务,所述客户Java虚拟机1106处理向在远程服务器的相应或类似服务器Java虚拟机1108的事务的通信。远程服务器包括与服务器应用1112通信的事务管理器1110。服务器事务管理器1110负责发送事务承诺请求,并且向客户发送回答。
图14示出了按照本发明的一个实施例的承诺生存期的图解。在接收到事务承诺请求时,服务器事务管理器1202向事务协调器1204传送承诺请求。当承诺被处理时,事务管理器1202向客户或客户应用返回承诺。
本发明的上述说明是为了图解和说明目的提供的。它不意欲是穷尽的或将本发明限定到所公开的精确形式。显然,许多修改和变化形式对于本领域技术人员是显然的。所述实施例被选择和说明以便最好地说明本发明的原理和其实际应用,因此使得本领域技术人员能够明白各种实施例和适合于所考虑的特定用途的各种修改的本发明。意欲可以通过所附的权利要求和它们的等同物限定本发明的范围。

Claims (18)

1.一种用于在客户和服务器之间进行事务处理的系统,其允许将客户处理部件和服务器处理部件之间的事务责任委托给承诺服务器,该系统包括:
客户处理部件,用于获得对事务管理器的引用,并启动事务,其中,所述事务管理器在所述客户处理部件中执行所述事务的活动阶段,并且所述客户处理部件还在该活动阶段期间收集信息以用于后续承诺;以及
承诺服务器,其中多个服务器中被接触的第一服务器被指定为承诺服务器,
其中所述承诺服务器用于由所述客户处理部件在活动阶段期间收集的所述信息,在参与服务器上的服务器处理部件中承诺所述事务,并向所述客户处理部件传达所述事务承诺处理的结果,其中,所述参与服务器是所述多个服务器中的另一个服务器。
2.按照权利要求1的系统,其中,在该事务的活动阶段期间,客户负责记住哪些服务器被接触,并且将关于哪些服务器应该参与该事务的信息传送给事务协调器。
3.按照权利要求1的系统,其中所述承诺服务器在所述参与服务器中通过准备、记录和承诺阶段来移动所述事务。
4.按照权利要求1的系统,其中承诺服务器向客户处理部件返回承诺。
5.按照权利要求1的系统,其中承诺服务器包括用于在承诺之前存储所述事务的事务存储器。
6.按照权利要求1的系统,其中所述多个服务器中的每一个都包括事务协调器。
7.按照权利要求1的系统,其中,在该活动阶段期间,承诺服务器跟踪与事务涉及的服务器的所有通信,并且保证当承诺所述事务时没有任何未完结的通信请求。
8.按照权利要求1的系统,其中参与服务器也是承诺服务器。
9.按照权利要求1的系统,其中参与服务器不是承诺服务器。
10.一种用于在客户和服务器之间进行事务处理的方法,它允许向承诺服务器委托对客户处理部件和服务器处理部件之间的事务的责任,包括步骤:
通过客户处理部件获得对事务管理器的引用;
使用所述事务管理器启动事务;
执行活动阶段,并由所述客户处理部件收集信息;
从多个服务器中确定一个承诺服务器,所述承诺服务器负责承诺所述事务,其中所述多个服务器中被接触的第一服务器被指定为承诺服务器;
通过所述客户处理部件将所述事务交接到所述承诺服务器,包括将在活动阶段期间收集到的信息发送到所述承诺服务器;以及
在一个参与服务器上的服务器处理部件中承诺所述事务,并向所述客户处理部件传达所述事务承诺处理的结果,其中,所述参与服务器是所述多个服务器中的另一个。
11.按照权利要求10的方法,其中,在该事务的活动阶段期间,所述事务管理器定位器接触所述多个服务器的子集。
12.按照权利要求10的方法,其中所述承诺服务器在所述参与服务器中通过准备、记录和承诺阶段来移动所述事务。
13.按照权利要求10的方法,其中所述承诺服务器向客户处理部件返回承诺。
14.按照权利要求10的方法,其中所述承诺服务器包括用于在承诺之前存储所述事务的事务存储器。
15.按照权利要求10的方法,其中所述多个服务器中的每一个都包括事务协调器。
16.按照权利要求10的方法,其中,在该活动阶段期间,该承诺服务器跟踪与事务涉及的服务器的所有通信,并且保证当承诺所述事务时没有任何未完结的通信请求。
17.按照权利要求10的方法,其中参与服务器也是承诺服务器。
18.按照权利要求10的方法,其中参与服务器不是承诺服务器。
CNB028168348A 2001-07-17 2002-07-16 用于具有委托承诺特征的事务处理的系统和方法 Expired - Lifetime CN100357929C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US30610001P 2001-07-17 2001-07-17
US60/306,100 2001-07-17
US30875301P 2001-07-30 2001-07-30
US60/308,753 2001-07-30
US10/196,297 US7080119B2 (en) 2001-07-17 2002-07-15 System and method for transaction processing with delegated commit feature
US10/196,297 2002-07-15

Publications (2)

Publication Number Publication Date
CN1606738A CN1606738A (zh) 2005-04-13
CN100357929C true CN100357929C (zh) 2007-12-26

Family

ID=27393591

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028168348A Expired - Lifetime CN100357929C (zh) 2001-07-17 2002-07-16 用于具有委托承诺特征的事务处理的系统和方法

Country Status (6)

Country Link
US (3) US7080119B2 (zh)
EP (1) EP1417585B1 (zh)
JP (1) JP2005523486A (zh)
CN (1) CN100357929C (zh)
AU (1) AU2002326401B2 (zh)
WO (1) WO2003009159A1 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7406511B2 (en) * 2002-08-26 2008-07-29 International Business Machines Corporation System and method for processing transactions in a multisystem database environment
US8145759B2 (en) 2002-11-04 2012-03-27 Oracle America, Inc. Dynamically configurable resource pool
US7743083B2 (en) * 2003-04-24 2010-06-22 Oracle America, Inc. Common transaction manager interface for local and global transactions
US7610305B2 (en) 2003-04-24 2009-10-27 Sun Microsystems, Inc. Simultaneous global transaction and local transaction management in an application server
JP4291060B2 (ja) * 2003-07-01 2009-07-08 富士通株式会社 トランザクション処理方法,トランザクション制御装置およびトランザクション制御プログラム
US7739252B2 (en) * 2003-07-14 2010-06-15 Oracle America, Inc. Read/write lock transaction manager freezing
US7640545B2 (en) * 2003-07-14 2009-12-29 Sun Microsytems, Inc. Transaction manager freezing
US8521875B2 (en) * 2003-09-04 2013-08-27 Oracle America, Inc. Identity for data sources
US20050203974A1 (en) * 2004-03-09 2005-09-15 Smith Gary S. Checkpoint methods and systems utilizing non-disk persistent memory
US8918367B2 (en) * 2004-04-30 2014-12-23 Sap Se Two phase commit emulation for non distributed transactions
US7509429B2 (en) * 2004-05-28 2009-03-24 Sap Ag Message endpoint activation
US20050289212A1 (en) * 2004-06-01 2005-12-29 Tankov Nikolal D Non-transactional resource reference
US7594237B2 (en) 2004-06-01 2009-09-22 Sap Ag Program object to support connection generation
US9582313B2 (en) * 2004-06-03 2017-02-28 Sap Se Connection resource system
US7676810B2 (en) * 2004-06-03 2010-03-09 Sap Ag Identification of execution context
US7657658B2 (en) * 2004-06-07 2010-02-02 Sap Ag Resource adapter deployment
US7502811B2 (en) * 2004-07-08 2009-03-10 International Business Machines Corporation Defer container-managed persistence operations on transactional objects
US7483987B2 (en) * 2004-11-30 2009-01-27 International Business Machines Corporation Registering a resource that delegates commit voting
US7480681B2 (en) * 2004-12-06 2009-01-20 Sap Ag System and method for a transaction manager
US9146773B2 (en) * 2004-12-06 2015-09-29 Sap Se System and method for implicit transaction control
US7552198B2 (en) * 2005-01-20 2009-06-23 International Business Machines Corporation Method, system, and program product for providing access to J2EE application servers from non-J2EE application clients
US8271448B2 (en) * 2005-01-28 2012-09-18 Oracle International Corporation Method for strategizing protocol presumptions in two phase commit coordinator
US7376675B2 (en) * 2005-02-18 2008-05-20 International Business Machines Corporation Simulating multi-user activity while maintaining original linear request order for asynchronous transactional events
US9286346B2 (en) * 2005-02-18 2016-03-15 International Business Machines Corporation Replication-only triggers
US8037056B2 (en) 2005-02-18 2011-10-11 International Business Machines Corporation Online repair of a replicated table
US8214353B2 (en) * 2005-02-18 2012-07-03 International Business Machines Corporation Support for schema evolution in a multi-node peer-to-peer replication environment
US7949551B2 (en) * 2005-04-06 2011-05-24 International Business Machines Corporation Processing of compensation scopes in workflow management systems
US7337188B2 (en) * 2005-10-11 2008-02-26 Bea Systems, Inc. Method and assignment of transaction branches by resource name aliasing
US8180977B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory in out-of-order processors
US20080059469A1 (en) * 2006-08-31 2008-03-06 International Business Machines Corporation Replication Token Based Synchronization
CN101188583B (zh) * 2006-11-17 2010-12-08 中兴通讯股份有限公司 表格驱动的并行状态机的设计方法
US20080162344A1 (en) * 2006-12-29 2008-07-03 Sap Ag Method and system for enterprise software having direct debit mandates
US7802258B2 (en) * 2007-02-13 2010-09-21 Amadeus S.A.S. Interface between computer software modules
EP1975863A1 (en) * 2007-03-30 2008-10-01 Sap Ag Tracing of collaborative workflows
US20080270974A1 (en) * 2007-04-30 2008-10-30 Krasimir Topchiyski Enterprise JavaBeans Metadata Model
US20090193280A1 (en) * 2008-01-30 2009-07-30 Michael David Brooks Method and System for In-doubt Resolution in Transaction Processing
US20090193286A1 (en) * 2008-01-30 2009-07-30 Michael David Brooks Method and System for In-doubt Resolution in Transaction Processing
US8650155B2 (en) * 2008-02-26 2014-02-11 Oracle International Corporation Apparatus and method for log based replication of distributed transactions using globally acknowledged commits
US8396929B2 (en) * 2008-07-02 2013-03-12 Sap Portals Israel Ltd. Method and apparatus for distributed application context aware transaction processing
US8001548B2 (en) * 2008-10-20 2011-08-16 Microsoft Corporation Transaction processing for side-effecting actions in transactional memory
US8041994B2 (en) * 2009-01-09 2011-10-18 Alcatel Lucent Asynchronous checkpointing with audits in high availability networks
US20100185682A1 (en) * 2009-01-09 2010-07-22 Lucent Technologies Inc. Object identifier and common registry to support asynchronous checkpointing with audits
JP2011096045A (ja) * 2009-10-30 2011-05-12 Hitachi Ltd 計算機、計算機システム、及び、アプリケーション実行方法
US9417906B2 (en) 2010-04-01 2016-08-16 Red Hat, Inc. Transaction participant registration with caveats
US9021435B2 (en) 2010-05-20 2015-04-28 Salesforce.Com, Inc. Methods and systems for providing a user interface in a multi-tenant database environment
US8589472B2 (en) 2010-06-22 2013-11-19 International Business Machines Corporation Agent system for reducing server resource usage
US20130132296A1 (en) * 2011-11-17 2013-05-23 Norbert Manfred Koppenhagen Networked business object sharing
CN103164762A (zh) * 2011-12-14 2013-06-19 上海乾图信息技术有限公司 律师委托装置
US20130227143A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing Inc. Method and system for providing transaction management in a request-oriented service architecture using meta-models
US20130227101A1 (en) * 2012-02-27 2013-08-29 Verizon Patent And Licensing, Inc. Method and system for providing transaction management in a request-oriented service architecture
US9465648B2 (en) * 2012-07-31 2016-10-11 Hewlett Packard Enterprise Development Lp Distributed transaction processing through commit messages sent to a downstream neighbor
US10521746B2 (en) * 2012-09-07 2019-12-31 Oracle International Corporation Recovery workflow for processing subscription orders in a computing infrastructure system
US9015114B2 (en) 2012-09-07 2015-04-21 Oracle International Corporation Data synchronization in a cloud infrastructure
US9621435B2 (en) 2012-09-07 2017-04-11 Oracle International Corporation Declarative and extensible model for provisioning of cloud based services
US9253113B2 (en) 2012-09-07 2016-02-02 Oracle International Corporation Customizable model for throttling and prioritizing orders in a cloud environment
US10148530B2 (en) 2012-09-07 2018-12-04 Oracle International Corporation Rule based subscription cloning
US9667470B2 (en) 2012-09-07 2017-05-30 Oracle International Corporation Failure handling in the execution flow of provisioning operations in a cloud environment
US10432703B2 (en) * 2012-11-26 2019-10-01 Facebook, Inc. On-demand session upgrade in a coordination service
US9384229B2 (en) * 2012-11-29 2016-07-05 International Business Machines Corporation Data readiness using initiator region last commit selection
GB2513532A (en) * 2012-12-05 2014-11-05 Ibm Distributed transaction routing
US9201919B2 (en) * 2013-05-07 2015-12-01 Red Hat, Inc. Bandwidth optimized two-phase commit protocol for distributed transactions
US10185937B1 (en) * 2013-11-11 2019-01-22 Amazon Technologies, Inc. Workflow support for an annotations-based generic load generator
CN105900059B (zh) 2014-01-21 2019-06-07 甲骨文国际公司 用于在应用服务器、云或其它环境中支持多租户的系统和方法
US10164901B2 (en) 2014-08-22 2018-12-25 Oracle International Corporation Intelligent data center selection
WO2016049584A1 (en) * 2014-09-26 2016-03-31 Oracle International Corporation System and method for transaction recovery in a multitenant application server environment
US10681182B1 (en) * 2016-04-06 2020-06-09 Uipco, Llc Multi-device work flow management method and system for managing work flow data collection for users across a diverse set of devices and processes by unifying the work process to be data and device agnostic
CN107203604A (zh) * 2017-05-16 2017-09-26 郑州云海信息技术有限公司 一种数据分发管理方法、平台、装置及系统
US10579415B2 (en) 2017-08-11 2020-03-03 International Business Machines Corporation Dynamically determine the transaction coordinator in multitier hybrid transaction processing middleware systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586312A (en) * 1994-10-11 1996-12-17 Unisys Corporation Method and apparatus for using an independent transaction processing application as a service routine
US5987502A (en) * 1998-04-14 1999-11-16 International Business Machines Corporation Workload management in an asynchronous client/server computer system
US6038589A (en) * 1997-08-01 2000-03-14 International Business Machines Corporation Apparatus, method and computer program product for client/server computing with a transaction representation located on each transactionally involved server
US6101527A (en) * 1996-11-18 2000-08-08 Bull S.A. System for managing and processing distributed object transactions and process implemented by said system

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4600502A (en) 1984-12-24 1986-07-15 Exxon Research And Engineering Co. Adsorbent processing to reduce basestock foaming
DE69429686T2 (de) * 1993-02-25 2003-04-30 Sun Microsystems Inc Transaktionsverwaltung in objektorientiertem System
US5864679A (en) * 1993-09-06 1999-01-26 Kabushiki Kaisha Toshiba Transaction routing in a multiple processor system using an extracted transaction feature parameter and transaction historical data
US6330582B1 (en) 1994-03-21 2001-12-11 International Business Machines Corporation Apparatus and method enabling a client to control transaction message traffic between server and client processes
CA2213213A1 (en) * 1996-08-26 1998-02-26 Tandem Computers Incorporated Method and apparatus for performing efficient corba transactions
US5857100A (en) * 1996-09-03 1999-01-05 Insession Inc. System, method and article of manufacture for extending externalization for universal transaction processing
US6338146B1 (en) * 1997-09-30 2002-01-08 Compaq Computer Corporation Method and apparatus for fault-tolerant, scalable and non-blocking three-phase flushing for committing database transactions in a cluster of multiprocessors
US5958004A (en) * 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6134594A (en) * 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6298072B1 (en) * 1998-02-19 2001-10-02 Mci Communications Corporation Real-time transaction synchronization among peer authentication systems in a telecommunications network environment
GB2335517A (en) * 1998-03-19 1999-09-22 Ibm Client/server computing system with programmable action by transaction coordinator during prepared state
US6266698B1 (en) * 1998-07-31 2001-07-24 Compaq Computer Corporation Logging of transaction branch information for implementing presumed nothing and other protocols
GB2343020A (en) * 1998-10-19 2000-04-26 Ibm Handling transaction failures in a transaction processing system
US6898574B1 (en) * 1998-11-09 2005-05-24 John Francis Regan Lender and insurer transaction processing system and method
US6275863B1 (en) * 1999-01-25 2001-08-14 International Business Machines Corp. System and method for programming and executing long running transactions
US6411981B1 (en) * 1999-03-12 2002-06-25 Compaq Computer Corporation Method and apparatus for conducting a transaction between homogeneous and/or heterogeneous transaction processing systems using asynchronous pull of a transaction transfer
US6243737B1 (en) * 1999-04-09 2001-06-05 Translink Software, Inc. Method and apparatus for providing direct transaction access to information residing on a host system
JP2002049829A (ja) 2000-05-24 2002-02-15 Sony Computer Entertainment Inc 取引処理システム
US20020087366A1 (en) 2000-12-30 2002-07-04 Collier Timothy R. Tentative-hold-based protocol for distributed transaction processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5586312A (en) * 1994-10-11 1996-12-17 Unisys Corporation Method and apparatus for using an independent transaction processing application as a service routine
US6101527A (en) * 1996-11-18 2000-08-08 Bull S.A. System for managing and processing distributed object transactions and process implemented by said system
US6038589A (en) * 1997-08-01 2000-03-14 International Business Machines Corporation Apparatus, method and computer program product for client/server computing with a transaction representation located on each transactionally involved server
US5987502A (en) * 1998-04-14 1999-11-16 International Business Machines Corporation Workload management in an asynchronous client/server computer system

Also Published As

Publication number Publication date
US7441025B2 (en) 2008-10-21
US7080119B2 (en) 2006-07-18
EP1417585A1 (en) 2004-05-12
EP1417585A4 (en) 2010-03-24
US7231422B2 (en) 2007-06-12
JP2005523486A (ja) 2005-08-04
WO2003009159A1 (en) 2003-01-30
US20070288555A1 (en) 2007-12-13
CN1606738A (zh) 2005-04-13
US20030046342A1 (en) 2003-03-06
EP1417585B1 (en) 2018-05-30
US20060069751A1 (en) 2006-03-30
AU2002326401B2 (en) 2008-01-24

Similar Documents

Publication Publication Date Title
CN100357929C (zh) 用于具有委托承诺特征的事务处理的系统和方法
CN100449475C (zh) 用于具有事务特性特征的事务处理的系统和方法
JP4550411B2 (ja) 同期されたコールバック処理特徴をもったトランザクション処理システム及び方法
US5893128A (en) Distributed work flow management
US7370335B1 (en) System and method for providing a public application program interface
US6138143A (en) Method and apparatus for asynchronous transaction processing
AU2002326401A1 (en) System and method for transaction processing with delegated commit feature
AU2002318249A1 (en) System and method for transaction processing with transaction property feature
US20120150547A1 (en) Integration of crm applications to ecs application user interface
Dan et al. The Coyote approach for network centric service applications: Conversational service transactions, a monitor and an application style
Alonso et al. Processes in electronic commerce
WO2000045286A9 (en) Method and apparatus for distributed database access
EP0831406A2 (en) Implementing a workflow engine in a database management system
Frank et al. Architecture for mobile control functions in supplier deliveries for distributed integrated ERP modules
Christudas et al. Transactions Optimized for Microservices
Lano et al. Enterprise Information Systems and Application Servers
Crawley et al. Failure handling in corbaflow: A corba-based transactional workflow architecture
Müller et al. Integrating Mobile Agent Technology into an e-Marketplace Solution
Assimakopoulos Systemic process management environment for building distributed locational systems
Assimakopoulos An ever-changing systemic environment for migrating workflows
Lazcano Processes in Electronic Commerce
Zamani et al. SOA-Based Distributed System in Online Transaction Processing
Wong Transaction management on collaborative application services

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
ASS Succession or assignment of patent right

Owner name: ORACLE INT CORP

Free format text: FORMER OWNER: BEA SYSTEMS CORP.

Effective date: 20110418

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110418

Address after: California, USA

Patentee after: ORACLE INTERNATIONAL Corp.

Address before: California, USA

Patentee before: BEA SYSTEMS, Inc.

CX01 Expiry of patent term

Granted publication date: 20071226

CX01 Expiry of patent term