Method and apparatus for managing transactions in an object-oriented distributed system
First Claim
1. In a distributed computing system, having at least one client program and at least one sub-program, each sub-program having an implementor, said system having at least one computer node, and each node having an operating system kernel, a method for managing transactions, performed by a computer, comprising the steps of:
- providing a Transaction Manager (TM) in each node, said TM comprising mechanisms configured to provide control of transaction assignment, transaction control, and commit and abort voting in object-oriented distributed systems;
assigning a transaction identification (TID) value to a request from an originating client program to create a transaction and returning said TID value to the originating client program;
the originating client program requesting at least one sub-program to join as a participant in the transaction and passing a copy of said TID value to said at least one participating sub-program;
the TM receiving a call-back mechanism from an implementor of said at least one participating sub-program, and returning a transaction voting mechanism to said implementor, thereby establishing a two-way communication path between the TM and the implementor of the at least one participating sub-program;
whereby all participating sub-programs may indicate whether said transaction was completed correctly, without any required support of the operating system kernel.
0 Assignments
0 Petitions
Accused Products
Abstract
This disclosure describes a solution to this basic problem of transaction management for systems which use the object metaphor to define the interfaces between different components of a system. An elegant solution is described which defines a transaction manager protocol and process, which is independent of the operating system micro-kernel'"'"'s interprocess communication activities. The object-oriented transaction manager ("TM") creates transactions, keeps track of all object managers (servers) that are a part of a transaction, and coordinates transaction termination among all objects that are involved in the transaction. In addition, operations by naive applications can be made to execute under transaction control without modifying the applications.
-
Citations
42 Claims
-
1. In a distributed computing system, having at least one client program and at least one sub-program, each sub-program having an implementor, said system having at least one computer node, and each node having an operating system kernel, a method for managing transactions, performed by a computer, comprising the steps of:
-
providing a Transaction Manager (TM) in each node, said TM comprising mechanisms configured to provide control of transaction assignment, transaction control, and commit and abort voting in object-oriented distributed systems; assigning a transaction identification (TID) value to a request from an originating client program to create a transaction and returning said TID value to the originating client program; the originating client program requesting at least one sub-program to join as a participant in the transaction and passing a copy of said TID value to said at least one participating sub-program; the TM receiving a call-back mechanism from an implementor of said at least one participating sub-program, and returning a transaction voting mechanism to said implementor, thereby establishing a two-way communication path between the TM and the implementor of the at least one participating sub-program; whereby all participating sub-programs may indicate whether said transaction was completed correctly, without any required support of the operating system kernel. - View Dependent Claims (2, 3, 4, 38, 39)
-
-
5. In an object-oriented distributed computing system, having at least one client program and at least one object, each object having an object implementation, said system having at least one computer node, and each node having an operating system kernel, a method for managing transactions, performed by a computer, comprising the steps of:
-
providing a Transaction Manager (TM) in each node, said TM comprising mechanisms configured to provide control of transaction assignment, transaction control, and commit and abort voting in object-oriented distributed systems; assigning a transaction identification (TID) value to a request from an originating client program to create a transaction and returning a TID object containing said value to the originating client program; the originating client program requesting at least one object to join as a participant in the transaction and passing a copy of said TID object to said at least one participating object; the TM receiving a call-back object from an object implementation of said at least one participating object, and returning a transaction voting object to said object implementation, thereby establishing a two-way communication path between the TM and the object implementation of the at least one participating object; whereby all participating objects may indicate whether said transaction was completed correctly, without any required support of the operating system kernel. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 40)
-
-
15. In an object-oriented distributed computing system, having at least one client program and at least one object, each object having an object implementation, said system having at least one computer node, and each node having an operating system kernel, an apparatus for managing transactions comprising:
-
a Transaction Manager (TM) in each node, said TM comprising mechanisms configured to provide control of transaction assignment, transaction control, and commit and abort voting in object-oriented distributed systems; said TM further comprising mechanisms configured to assign a transaction identification (TID) value to a request from an originating client program to create a transaction and a first communications mechanism configured to return a TID object containing said TID value to the originating client program; a requesting mechanism configured to be used by the originating client program in requesting at least one object to join as a participant in the transaction wherein said request passes a copy of said TID object to said at least one participating object; and a second communications mechanism configured to be used by the TM for receiving a call-back object from an object implementation of said at least one participating object, and for returning a transaction voting object to said object implementation, thereby establishing a two-way communication path between the TM and the object implementation of the at least one participating object; whereby all participating objects may indicate whether said transaction was completed correctly, without any required support of the operating system kernel. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 41)
-
-
25. A computer program product having a computer readable medium having a computer program recorded thereon for managing the processing of transactions invoked by a client application, for use in an object oriented distributed computer system wherein there exists client applications, objects, object type definitions, object implementations and servers, and an operating system kernel, said computer program product comprising:
-
a Transaction Manager (TM) comprising mechanisms configured to provide control of a transaction in object-oriented distributed systems; an assigning program code mechanism for use by a transaction manager (TM) to assign a transaction identification (TID) value to a request from an originating client program to create a transaction and a first communications means for returning a TID object containing said value to the originating client program; a requesting program code mechanism for use by the originating client program in requesting at least one object to join as a participant in the transaction wherein said request passes a copy of said TID object to said at least one participating object; and a second communications mechanism for use by the TM for receiving a call-back object from an object implementation of said at least one participating object, and for returning a transaction voting object to said object implementation, thereby establishing a two-way communication path between the TM and the object implementation of the at least one participating object; whereby all participating objects may indicate whether said transaction was completed correctly, without any required support of the operating system kernel. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 42)
-
-
35. A computer program product having a computer readable medium having a computer program recorded thereon for managing the processing of transactions invoked by a client application, for use in a distributed computer system wherein there exists client applications programs, sub-programs, implementors, and an operating system kernel, said computer program product comprising:
-
a Transaction Manager (TM) comprising mechanisms configured to provide control of a transaction in object-oriented distributed systems; an assigning program code means for use by a transaction manager (TM) to assign a transaction identification (TID) value to a request from an originating client program to create a transaction and a first communications means for returning said TID value to the originating client program; a requesting program code means for use by the originating client program in requesting at least one sub-program to join as a participant in the transaction wherein said request passes a copy of said TID value to said at least one participating sub-program; and a second communications means for use by the TM for receiving a call-back mechanism from an implementor of said at least one participating sub-program, and for returning a transaction voting mechanism to said implementor, thereby establishing a two-way communication path between the TM and the implementor of the at least one participating sub-program; whereby all participating sub-programs may indicate whether said transaction was completed correctly, without any required support of the operating system kernel. - View Dependent Claims (36, 37)
-
Specification