Just-in-time activation and as-soon-as-possible deactivation or server application components
First Claim
1. In a computer, a system service for providing an execution environment for scalable application components, comprising:
- code for, responsive to a request from a client program to create an application component, returning to the client program a reference through the system service to the application component although the application component is not yet instantiated;
code for, responsive to a call from the client program using the reference, creating an instance of the application component in an initial state so as to activate the application component for processing the call; and
code for releasing the instance while the client program retains the reference through the system service to the application component so as to deactivate the application component;
wherein the code for creating the instance and the code for releasing the instance iteratively create and release a stream of instances of the application component while the client program holds the same reference, and upon each instance of activation in the stream, the initial state excludes persisted properties created by a call during a previous activation.
3 Assignments
0 Petitions
Accused Products
Abstract
A run-time environment implemented as system services and component integration interfaces provides scalable and robust component-based server applications by deactivating server application components between uses by a client program on separate items of work while allowing the client program to retain references to server application components when deactivated. When a server application component is deactivated, a data state of the component and any resources held by the component are released. The run-time environment activates a component on receiving a call by the client to the component while the component is deactivated, whereupon the component is instantiated with an initial data state. The client can interact with the component as if one instance of the component were in continuous existence from the time the client requests creation of the component until the client finally releases the component reference, whereas in actuality the client accesses a sequence or stream of instances using the component reference through multiple iterations of the activation and deactivation cycle.
110 Citations
18 Claims
-
1. In a computer, a system service for providing an execution environment for scalable application components, comprising:
-
code for, responsive to a request from a client program to create an application component, returning to the client program a reference through the system service to the application component although the application component is not yet instantiated;
code for, responsive to a call from the client program using the reference, creating an instance of the application component in an initial state so as to activate the application component for processing the call; and
code for releasing the instance while the client program retains the reference through the system service to the application component so as to deactivate the application component;
wherein the code for creating the instance and the code for releasing the instance iteratively create and release a stream of instances of the application component while the client program holds the same reference, and upon each instance of activation in the stream, the initial state excludes persisted properties created by a call during a previous activation. - View Dependent Claims (2, 3, 4)
code for associating the application component in a transaction; and
wherein the code for releasing the instance releases the instance responsive to the client program committing or aborting the transaction.
-
-
4. The system service of claim 1 further comprising:
code for pooling the instance during deactivation of the application component and for recycling the instance in a later activation of the application component.
-
5. A method of enhancing scalability of an application run on a computer, the application having an instantiable application component, the method comprising:
-
responsive to a request of a client to create an application component, returning to the client a reference to the application component not yet instantiated in a run-time environment;
passing calls from the client to the application component through the run-time environment;
on receiving in the run-time environment a call from the client using the reference to the application component at a time when the application component is deactivated, activating the application component by providing an instance of the application component in an initial data state and under control of the run-time environment;
performing work for the client by the instance of the application component responsive to one or more calls from the client using the reference; and
on the instance completing the work for the client, deactivating the application component;
wherein the run-time environment activates and deactivates instances of the application component according to a transaction processing protocol while the client program holds the same returned reference, and upon each instance activation, the application component is returned to the initial data state. - View Dependent Claims (6, 7, 8, 9, 10)
releasing the instance of the application component and any resources held by the instance.
-
-
7. The method of claim 5 further comprising:
-
when deactivating the application component, adding the instance to a pool of component instances; and
when activating the application component, providing the instance of the application component from the instances in the pool if such instance is found in the pool.
-
-
8. The method of claim 5 further comprising:
deactivating the application component on a request from the application component to the run-time environment indicating completion of the work.
-
9. The method of claim 5 wherein the application component performs the work as part of a transaction for the client further, the method further comprising:
deactivating the application component on the client committing or aborting the transaction.
-
10. A computer-readable storage medium having computer-executable instructions stored thereon for causing a computer to perform the steps of the method recited in claim 5.
-
11. A method of enhancing scalability of an application run on a server computer, the application having an instantiable application component, the method comprising:
-
responsive to a request of a client to create an application component, returning to the client a reference to an uninstantiated application component in a run-time environment;
creating an instance of the application component run under control of the run-time environment, the instance having an initial data state at creation and functions implemented in the application component;
calling by the client using the reference one or more application component functions that may modify the data state of the instance;
thereafter, deactivating the instance of the application component, when the application is deactivated, releasing the data state of the instance;
retaining the reference to the application component in the run-time environment by the client while the application component is deactivated; and
after deactivation of the application component, reactivating the application component responsive to the client calling an application component function using the reference;
wherein the client program uses the same returned reference to access the application component, while the application component is deactivated and reactivated in a stream of instances, and upon each activated instance, the application component is returned to the initial data state.
-
-
12. A computer operating environment for scalable, component-based server applications, comprising:
-
a run-time service for executing application components in a system process;
an instance creation service operative, responsive to a request of a client, to return a reference to the application component through the run-time service to the client, where the application component is in a deactivated condition with no data state held in memory; and
the run-time service being operative, responsive to a call from the client using the reference to a member function implemented in the application component when the application component is in the deactivated condition, to activate the application component into an activated condition where the application component has a post-creation data state in memory;
wherein the client uses the same returned reference to access the application component, while the application component is activated and deactivated in a stream of instances, and upon each activated instance, the application component is returned to the post creation state which excludes persisted data from a previous activation. - View Dependent Claims (13, 14, 15, 16, 17)
a component context associated by the run-time service with the application component and providing an interface having a member function that the application component calls to initiate the indication.
-
-
17. The computer operating environment of claim 16 wherein the application component performs the work within a transaction and wherein calling the member function of the component context causes the transaction to abort.
-
18. A method of enhancing scalability of server application components, the method comprising:
-
returning an interface reference to an uninstantiated server application component in response to receiving a server application component creation request from a client;
indicating, in response to a method query request from the client while the server application component remains uninstantiated, whether the server application component once instantiated would provide an implementation for an invokable method specified by the client in the method query request; and
instantiating the server application component in response to receiving an invocation of the invokable method from the client, wherein the server application component is instantiated in an initial data state;
invoking the invokable method on the instantiated server application component;
receiving a deactivation request from the instantiated server application component; and
deactivating the instantiated server application component in response to the deactivation request upon completion of the invokable method;
wherein the client uses the same returned interface reference to invoke the server application component, while the server application component is deactivated and reactivated in a stream of instances, and upon each activated instance, the application component is returned to the initial data state.
-
Specification