Database application development system with improved methods for distributing and executing objects across multiple tiers
First Claim
1. In a distributed computing system comprising at least one client in communication with at least one server, a method for executing a distributed application comprising distributed application objects, the method comprising:
- for a particular application object of said distributed application, creating at a particular client a proxy object corresponding to said particular application object, said proxy object comprising an interface definition for said particular application object thereby allowing said particular client to invoke methods of a remote object that implements said particular application object;
creating at a particular server said remote object, said remote object providing a run-time instantiation of said particular application object and including properties and methods of said particular application object;
establishing a connection between said particular client and said particular server;
executing at the particular client an application which requires services of said particular application object; and
in response to requests from the particular client for invoking services of said particular application object, invoking the proxy object at the particular client, whereupon the proxy object invokes corresponding services at the remote object and, thereafter, returns results back to said application.
1 Assignment
0 Petitions
Accused Products
Abstract
A database client/server development system providing support for remote sessions with user-created application objects is described. When a user desires to create a "remoteable" object from a user object, the user assigns a proxy name or alias, thereby providing a mechanism to differentiate the real (local) version of the object from a remote version of that object. When the user creates the proxy, the system generates all of the interface definitions for the object (i.e., to access its internal functionality) which are capable of being proxied (i.e., "proxiable"). A given object can reside locally, remotely, or both; the proxy mechanism allows the application to resolve at runtime which version of the object to invoke. When the user'"'"'s final application is deployed, the proxy object is deployed at the client machine for use at the client for accessing the real version at the server. If desired, an application can be deployed with a real copy of the object, in addition to the proxy. In such a case, the client can serve as a server (of that object), in addition to being a client of objects from other servers.
186 Citations
35 Claims
-
1. In a distributed computing system comprising at least one client in communication with at least one server, a method for executing a distributed application comprising distributed application objects, the method comprising:
-
for a particular application object of said distributed application, creating at a particular client a proxy object corresponding to said particular application object, said proxy object comprising an interface definition for said particular application object thereby allowing said particular client to invoke methods of a remote object that implements said particular application object; creating at a particular server said remote object, said remote object providing a run-time instantiation of said particular application object and including properties and methods of said particular application object; establishing a connection between said particular client and said particular server; executing at the particular client an application which requires services of said particular application object; and in response to requests from the particular client for invoking services of said particular application object, invoking the proxy object at the particular client, whereupon the proxy object invokes corresponding services at the remote object and, thereafter, returns results back to said application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. In a distributed computing environment comprising one or more clients connected to one or more servers, a method for partitioning application objects among multiple computers so that objects can be invoked across an arbitrary number of tiers of computers, the method comprising:
-
(a) establishing a connection between a particular client and a particular server; (b) receiving at the particular client a request to partition application objects by creating an object instance of a particular object which resides at the server; (c) in response to the request, partitioning application objects by creating an object instance of the particular object at the particular server and creating a corresponding proxy object for said particular object at the particular client, the proxy object defining properties for the object instance for said particular object and defining an interface for executing methods available to said object instance; and (d) executing the application at the particular client by invoking through the proxy object methods available to the object instance. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A system for partitioning and executing an application comprising:
-
a client computer for executing a client application, said client computer storing a proxy object defining an interface for a particular object, thereby allowing said client application to communicate with a remote object that is a run-time instance of said particular object; a server computer for creating an instance of the remote object, in response to a request from the client application at the proxy object for invoking a method of the remote object; and an object manager for establishing a connection between the proxy object and the instance of the remote object and for forwarding requests received at the proxy object for invoking the method available to the instance of the remote object, so that execution of the application is partitioned among any number of computers. - View Dependent Claims (32, 33, 34, 35)
-
Specification