Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1999-01-05
2002-09-24
Banankhah, Majid (Department: 2156)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
C709S241000, C709S241000, C709S241000
Reexamination Certificate
active
06457065
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the field of computer programming, and more particularly to a technique for replicating objects in distributed object systems to reduce network round trips during program execution and thereby improve system performance.
2. Description of the Related Art
A “distributed object system” is an execution environment in which objects may be located on more than one physical computer and the application programs which operate upon those objects may also be located on (and operating on) more than one computer, where the multiple computers are connected by a network. Distributed object systems may be structured as client/server systems or as multi-tier systems (where a client/server system may be considered a multi-tier system having two tiers). Such systems are well known in the art.
Performance is a significant concern when implementing distributed object systems.
Existing object distribution techniques, such as Enterprise JavaBeans (“EJBs”) and the Common Object Request Broker Architecture (“CORBA”) are based on a model where the actual remote object instances reside in a server computer and the client nodes hold on to proxies which represent the remote instances in the client computer. (“JavaBeans” is a trademark of Sun Microsystems, Inc. EJBs are described in “Enterprise JavaBeans”, hereinafter referred to as the “EJB specification”, which was published by Sun Microsystems, Inc. on Mar. 21, 1998. “CORBA” is a registered trademark of Object Management Group, Inc.) The proxies do not contain any business behavior (i.e. executable logic) of the remote objects: they only provide remote interfaces to access the remote objects from applications executing on the client. Therefore, every single method invocation on a proxy held by a client must be immediately passed on from the proxy to the actual remote instance in the server. The message invocation is then carried out on the remote instance at the server, and upon completion a response is returned to the proxy at the client.
FIG. 1
depicts an example of a prior art object system
100
using this object distribution approach. Suppose the system of this example includes objects for employees, their managers, and their addresses. Object server
150
is shown as containing instances of Employee objects
160
, Manager objects
170
, and Address objects
180
. Client application
110
executing in a client device has corresponding proxies (stored either in memory associated with the application, or in other locally-accessible storage) for each object class in use by the application, which in the example are depicted as Employee proxy
120
, Manager proxy
130
, and Address proxy
140
. When the application
110
invokes a method on an Employee object
160
, the method invocation is directed locally to the Employee proxy
120
, which then forwards
190
a
a message to the actual remote instance of the Employee object at
160
. The method will be executed remotely at server
150
. If the method execution causes any updates to the Employee object, these updates are performed on the remote Employee object
160
. The response to this message
190
a
is returned
190
b
from the Employee object
160
to the Employee proxy
120
for use by the client application
110
. Similarly, method invocations on a Manager object
170
or an Address object
180
cause a message
191
a
or
192
a
, respectively, to be sent to the corresponding object located on server
150
, with response
191
b
or
192
b
returned to the appropriate proxy
130
or
140
.
Even with applications of moderate size, this requirement for every message and response to be transmitted across a network in this manner results in a significant amount of network traffic. This message traffic is very expensive in terms of computation time because, in addition to the time expended due to network latency, each message has to travel through several service layers and process switches on both ends of the network connection. The service layers involved may include remote name resolution, message creation and formatting, transport, reception, buffering, scheduling, and dispatch. The multiple layers and processes which are involved cause the messaging event itself to be very costly in terms of program execution overhead, regardless of the size of the message. This high expense of remote method invocations makes it very difficult in distributed object systems to fulfill the requirements of object model granularity for which object systems were designed, and to fulfill the performance requirements demanded in modern computing environments (including large-scale enterprise computing and electronic commerce systems).
Accordingly, what is needed is a technique for reducing the performance overhead, and thereby improving performance, in distributed object systems which require remote method invocation for object access.
SUMMARY OF THE INVENTION
An object of the present invention is to provide a technique for reducing performance overhead in distributed object systems.
Another object of the present invention is to provide this technique by replicating remote objects to the local system(s) which access the objects.
Yet another object of the present invention is to provide this technique where the scope of the replication is a transaction.
A further object of the present invention is to provide this technique whereby transactions are used to ensure consistency and integrity of a replicated object among multiple applications and/or users that may access the object.
Still another object of the present invention is to provide this technique whereby each subtransaction within a transaction may have an independent view of a replicated object.
Yet another object of the present invention is to provide this technique in a manner that appropriately isolates changes made to a replicated object by one or more transactions occurring in the distributed object system, as well as changes made by multiple subtransactions within a transaction.
Still another object of the invention is to provide a technique for implementing a transaction management subsystem which is optimized for replication of remote objects.
Another object of the invention is to detect data conflicts when a user or application attempts to commit changes to a replicated object in a persistent data store.
A further object of the invention is to resolve data conflicts, where possible, after they have been detected.
Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides a method, system, and computer program product for improving performance in a distributed object system. This technique comprises: creating a tree structure to represent one or more subtransactions of one or more concurrent and/or nested transactions which may access one or more objects stored at a remote persistent object store in the distributed object system, wherein each node of the tree structure maintains an independent view comprising a version of each object available at this node; requesting, by a selected one of the subtransactions, access to a selected one of the stored objects; determining whether the selected object is available in a particular independent view maintained by a node in which the selected subtransaction is executing; obtaining a version of the selected object and making the obtained version available to the particular independent view when the determining has a negative result; temporarily making one or more modifications to the selected object, the modifications requested by the selected subtransaction, by making the modifications to the particular independent view of the selected subtransaction; committing the modifications upon a commit request; and performin
Rich Lawrence Scott
Salo Timo J.
Banankhah Majid
Doubet Marcia L.
Doudnikoff Gregory M.
LandOfFree
Transaction-scoped replication for distributed object systems does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Transaction-scoped replication for distributed object systems, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Transaction-scoped replication for distributed object systems will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2909707