Decentralized, Distributed Internet Data Management
0 Assignments
0 Petitions
Accused Products
Abstract
A light-weight architecture is provided, where each component is in itself its own advanced mini-transaction processing monitor. To accomplish this, the system is most readily implemented as a set of Java classes. The resulting architecture is as follows. In a composite system, each server is an independent component performing its own scheduling and transaction management. These servers are built using Java and inheriting from the classes provided by the system according to the invention. The interface to each server defines the services it implements. An invocation of one of these services (through remote method invocation) results in the creation of a local transaction (child of the invoking transaction and parent of any transaction that might be triggered by invoking the services of other servers). Each transaction is a thread that (in an exemplary system) can invoke SQL statements in a local database (directly connected to that server) as well as services offered by other servers. All the information that is required to build a global composite transaction is implicitly added by the system to each call. Each transaction is, however, independently handled at each server. That is, the servers neither communicate among themselves nor rely on a centralized component to make scheduling or recovery decisions. In this way, components can be dynamically added or removed from the system without compromising correctness. All a new server needs to know is the interface and address of the servers it will invoke. Regardless of the configuration, the system according to the invention guarantees that transactions executed over these servers will be correct (serializable) and recoverable at a global and local level.
-
Citations
37 Claims
-
1-5. -5. (Canceled)
-
6. A data management system, said system characterized as a composite system, the system comprising a plurality of processes;
-
each process having an interface and implementing at least one respective service defined by that interface;
a first invocation of the at least one respective service by a transaction resulting in the creation of a first transaction local to the process thereof, the first local transaction being a child of the invoking transaction and being parent of any transaction triggered by invocation of a service of another process;
a second invocation of the at least one respective service by a transaction resulting in the creation of a second transaction local to the process thereof, the first local transaction being a child of the invoking transaction and being parent of any transaction triggered by invocation of a service of another process;
each process characterized in that if the first transaction and the second transaction conflict but are both children of a same invoking transaction, then the first transaction and the second transaction are not executed concurrently;
each process further characterized in that each transaction local thereto is independently handled at the process;
each process making scheduling and recovery decisions independent of any centralized component. - View Dependent Claims (7)
-
-
8. A data management system, said system characterized as a composite system, the system comprising a plurality of processes;
-
each process having an interface and implementing at least one respective service defined by that interface;
invocation of the at least one respective service by a thread of the invoking transaction and being parent of any transaction triggered by invocation of a service of another process;
each process further characterized in that each transaction local thereto is independently handled at the process;
each process making scheduling and recovery decisions independent of any centralized component triggered by invocation of a service of another process, each process further characterized in that each transaction local thereto is independently handled at the process, each process making scheduling and recovery decisions independent of any centralized component, the method comprising the steps of;
propagating from a first process to a second process a message indicative of a globalCommit operation with respect to a root transaction, said message also indicative of a number or identifying list of invocations which the first process has made to the second process on behalf of the root transaction;
within the second process, comparing the number or list indicated in the message with a count or list within the second process of the number or list of invocations which have been made on behalf of the root transaction;
in the event the comparison yields a non-match, aborting the transaction. - View Dependent Claims (9)
-
-
10. A method for use with a data management system, said system characterized as a composite system, the system comprising a plurality of processes, each process having an interface and implementing at least one respective service defined by that interface, invocation of the at least one respective service by a transaction resulting in the creation of a transaction local to the process thereof, the local transaction being a child of the invoking transaction and being parent of any transaction triggered by invocation of a service of another process, each process further characterized in that each transaction local thereto is independently handled at the process, each process making scheduling and recovery decisions independent of any centralized component, the method comprising the steps of:
-
propagating from a first process to a second process a message indicative of a globalCommit operation with respect to a root transaction, said message also indicative of a number or list of invocations which the first process has made to the second process on behalf of the root transaction;
within the second process, comparing the number or list indicated in the message with a count or list within the second process of the number or list of invocations which have been made on behalf of the root transaction;
in the event the comparison yields a match, proceeding with the globalCommit operation.
-
-
11. A method for use with a data management system, said system characterized as a composite system, the system comprising a plurality of processes, each process having an interface and implementing at least one respective service defined by that interface, invocation of the at least one respective service by a transaction resulting in the creation of a transaction local to the process thereof, the local transaction being a child of the invoking transaction and being parent of any transaction triggered by invocation of a service of another process, each process further characterized in that each transaction local thereto is independently handled at the process, each process making scheduling and recovery decisions independent of any centralized component, the method comprising the steps of:
-
propagating from a first process to a second process a message indicative of a globalCommit operation with respect to a root transaction, said message also indicative of a number or list of invocations which the first process has made to the second process on behalf of the root transaction;
within the second process, comparing the number or list indicated in the message with a count or list within the second process of the number or list of invocations which have been made on behalf of the root transaction;
in the event the comparison yields a non-match, aborting the transaction.
-
-
12. A distributed system, said system characterized as a composite system, the system comprising a plurality of processes;
-
each process having an interface and implementing at least one respective service defined by that interface;
each or any globalCommit message exchange between processes also carrying information about the actual work being committed. - View Dependent Claims (13, 14)
-
-
15. A method for use in a distributed system, said system characterized as a composite system, the system comprising a plurality of processes, each process having an interface and implementing at least one respective service defined by that interface, the method comprising the step of:
for each globalCommit message exchanged between processes, including also information about the actual work being committed. - View Dependent Claims (16, 17)
-
18. A distributed system, said system characterized as a composite system, the system comprising a plurality of processes;
-
each process having an interface and implementing at least one respective service defined by that interface;
wherein the root invocation or or, alternatively, the root'"'"'s human user is allowed to dynamically set its/his concurrency preferences for the entire invocation. - View Dependent Claims (19, 20, 21, 22)
-
-
23. A data management system, referred to as service, comprising:
-
One or more operations that can be invoked by remote clients;
Some or all such remote clients having one or more associated contexts or transaction contexts;
An invocation by a remote client also containing partial or complete information indicating or containing said client'"'"'s context or contexts;
An invocation, by a remote client, of an operation leading to a new transaction different from, but possibly related to, any existing client transaction;
Such an operation-level transaction being committed before the client context is terminated before globalCommit notification;
The service maintaining an undo operation for such a committed operation;
A failing or failed remote client context leading to the execution of the undo operations of the corresponding committed invocations in the service. - View Dependent Claims (24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37)
-
Specification