Multi-user server application architecture with single-user object tier
First Claim
1. In a distributed computing system, a server application component execution system comprising:
- database management code to provide a shared access tier of code and data shared by multiple users of the distributed computing system;
object execution management code to provide a single user object tier supporting execution of a plurality of instances of server application objects each created for use by individual of the multiple users, the object execution management code associating each instance with a respective one of the multiple users for whose use the instance was created, the object execution management code further preventing use of any of the instances by other than the respective one of the multiple users for which the instance was created.
1 Assignment
0 Petitions
Accused Products
Abstract
A multi-tier server application architecture provides a simplified programming model of multiple user server applications that enhances programmer productivity. The multi-tier architecture comprises a client tier for client application code that initiates processing by the server application in response to user input, a middle tier of object-oriented server application code, and a database tier of shared access data and management code. A run-time environment for the object-oriented server application code limits access to instantiated objects of the middle tier server application code to a single one of the users. Objects in the middle tier that are instantiated to initiate processing for a particular user and grouped into a collection. The run-time environment manages the flow of execution into the collection such that the collection has only a single logical thread of execution and access by the client application code is exclusive to the particular user.
283 Citations
9 Claims
-
1. In a distributed computing system, a server application component execution system comprising:
-
database management code to provide a shared access tier of code and data shared by multiple users of the distributed computing system;
object execution management code to provide a single user object tier supporting execution of a plurality of instances of server application objects each created for use by individual of the multiple users, the object execution management code associating each instance with a respective one of the multiple users for whose use the instance was created, the object execution management code further preventing use of any of the instances by other than the respective one of the multiple users for which the instance was created. - View Dependent Claims (2, 3, 4)
an object instantiation service operative in response to each object creation request of a client application process of any one of the multiple users to create an instance of the requested object and associate a base creator identifier with the created instance that is indicative of the respective user; and
an execution flow control code operative in response to each invocation of any server application object instance of the single user object tier to determine whether said invocation is made by the user indicated by the respective instance'"'"'s associated base creator identifier, and if not to prevent processing the invocation by said instance.
-
-
3. The server application component execution system of claim 2 wherein the object instantiation service further operates in response to an object creation request of another server application object instance to create an instance of a requested server application object and to also associate the base creator identifier associated with said other server application object instance with the requested server application object instance.
-
4. The server application component execution system of claim 2 further comprising:
-
the object instantiation service further operates to associate a different activity identifier with each object instance created at request of any user'"'"'s client application process, and to associate a same activity identifier with each object instance created at request of another object instance in the single user object tier as is associated with the requesting other object instance; and
a concurrency control code operative to limit concurrent execution within all server application object instances in the single user object tier that are associated to a same activity identifier.
-
-
5. In a computer having computer-operating system code, a system code-supplied context object in a system code-created object execution environment having a multi-tier architecture with a first tier of client program processes, a second tier of object-oriented server application code, and a third tier of shared access data and code, the context object being associated with an application component on the second tier and representing a context of execution of the application component within the object execution environment, the system code having an execution flow control operating to restrict calls into the application component to those in a call sequence originating from a single specific client process, the context object comprising:
-
a first data member for immutably storing a client identifier indicative of the client process, such that the client identifier is accessible to the execution flow control for use in restricting calls into the application component, whereby the application component is limited to processing work commenced from the client process. - View Dependent Claims (6)
a component instantiation service member exposed through a programming interface to the application component and operative in response to a component instantiation request to create an instance of a requested second component and associate a second context object having the client identifier stored in the first data member thereof with the created second component instance.
-
-
7. In a computer having computer-operating system code, a system code-supplied context object in a system code-created object execution environment having a multi-tier architecture with a first tier of client program processes, a second tier of object-oriented server application code, and a third tier of shared access data and code, the context object being associated with a first one of a plurality of application components on the second tier and representing a context of execution of the application component within the object execution environment, a set of the application components on the second tier being grouped with the first application component into an activity, the system code having an execution flow control operating to restrict concurrent processing of work within the application components on the computer that are grouped in the activity to a single logical thread of execution, the context object comprising:
-
a first data member for immutably storing an activity identifier indicative of the activity, such that the activity identifier is accessible to the execution flow control for use in restricting concurrent processing of work in the first application component to the single logical thread of execution, whereby the application components in the activity are isolated from execution on an multiple concurrent threads. - View Dependent Claims (8)
a component instantiation service member exposed through a programming interface to the application component and operative in response to a component instantiation request to create an instance of a requested second component and associate a second context object having the activity identifier stored in the first data member thereof with the created second component instance.
-
-
9. In a computer having computer-operating system code, a system code-supplied context object in a system code-created object execution environment having a multi-tier architecture with a first tier of client program processes, a second tier of object-oriented server application code, and a third tier of shared access data and code, the context object being associated with a first one of a plurality of application components on the second tier and representing a context of execution of the application component within the object execution environment, a set of the application components on the second tier being grouped with the first application component into an activity, the system code having an execution flow control operating to restrict calls into the first application component to those in a call sequence originating from a single specific client process and to restrict concurrent processing of work within the application components on the computer that are grouped in the activity to a single logical thread of execution, the context object comprising:
-
a first data member for immutably storing a client identifier indicative of the client process, such that the client identifier is accessible to the execution flow control for use in restricting calls into the first application component;
a second data member for immutably storing an activity identifier indicative of the activity, such that the activity identifier is accessible to the execution flow control for use in restricting concurrent processing of work in the first application component to the single logical thread of execution;
a component instantiation service member exposed through a programming interface to of the first application component and operative in response to a component instantiation request to create an instance of a requested second component and associate a second context object having the client identifier stored in the first data member thereof and the activity identifier stored in the second data member thereof with the created second component instance;
whereby the first application component is limited to processing work commenced from the client process, and the application components in the activity are isolated from execution on multiple concurrent threads.
-
Specification