← Back to Patent Explorer
US6134594A Expired / Lapsed US ⏱️ 0.0 years remaining

Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-10-28
•
Granted: 2000-10-17
•
Expires: 2017-10-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Patrick James Helland
  • 👤 Rodney Limprecht
  • 👤 Mohsen Al-Ghosein
  • 👤 David R. Reed

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-30 22:14
CPC Classifications
G; G06; G06F; G06F21/00; G06F21/60; G06F21/62; G06F21/6218; Y; Y10; Y10S; Y10S707/00; Y10S707/99941; Y10S707/99943; Y10S707/99944; Y10S707/99945

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 186 words
In a computer system having multiple users, a method of managing accessibility to program code of a component-based server application by the multiple users, the method comprising: executing program code of a server application in a multi-tier architecture having a first tier of client application code for initiating processing by the server application in response to a user's inputs, a middle tier of object-oriented server application code, and a third tier of shared access data and code; upon receiving a request from a client application process of the first tier's client application code to create a first object of the middle tier's object-oriented server application code, initiating an activity associated to the client application process and associating the first object in the activity; associating any objects of the object-oriented server application code of the middle tier that are created directly or indirectly by the first object in the activity; and controlling flow of execution into the activity so as to limit access to the activity to the client application process, wherein objects of the middle tier's object-oriented server application code are limited to single user access.
Claim 2
Dependent Claim 186 words
In a computer system having multiple users, a method of managing accessibility to program code of a component-based server application by the multiple users, the method comprising: executing program code of a server application in a multi-tier architecture having a first tier of client application code for initiating processing by the server application in response to a user's inputs, a middle tier of object-oriented server application code, and a third tier of shared access data and code; upon receiving a request from a client application process of the first tier's client application code to create a first object of the middle tier's object-oriented server application code, initiating an activity associated to the client application process and associating the first object in the activity; associating any objects of the object-oriented server application code of the middle tier that are created directly or indirectly by the first object in the activity; and controlling flow of execution into the activity so as to limit access to the activity to the client application process, wherein objects of the middle tier's object-oriented server application code are limited to single user access.
Claim 3
Dependent Claim 30 words
The method of claim 1 further comprising: further controlling the flow of execution in the activity to limit concurrent execution in the activity to a single logical thread of execution.
Claim 4
Dependent Claim 203 words
A computer-readable storage medium having stored thereon computer-executable program code operative, in a computer system having multiple users, to perform a method of managing accessibility to program code of a component-based server application by the multiple users, the method comprising the steps of: executing program code of a server application in a multi-tier architecture having a first tier of client application code for initiating processing by the server application in response to a user's inputs, a middle tier of object-oriented server application code, and a third tier of shared access data and code; and upon receiving a request from a client application process of the first tier's client application code to create a first object of the middle tier's object-oriented server application code, initiating an activity associated to the client application process and associating the first object in the activity; associating any objects of the object-oriented server application code of the middle tier that are created directly or indirectly by the first object in the activity; and controlling flow of execution into the activity so as to limit access to the activity to the client application process, wherein objects of the middle tier's object-oriented server application code are limited to single user access.
Claim 5
Dependent Claim 203 words
A computer-readable storage medium having stored thereon computer-executable program code operative, in a computer system having multiple users, to perform a method of managing accessibility to program code of a component-based server application by the multiple users, the method comprising the steps of: executing program code of a server application in a multi-tier architecture having a first tier of client application code for initiating processing by the server application in response to a user's inputs, a middle tier of object-oriented server application code, and a third tier of shared access data and code; and upon receiving a request from a client application process of the first tier's client application code to create a first object of the middle tier's object-oriented server application code, initiating an activity associated to the client application process and associating the first object in the activity; associating any objects of the object-oriented server application code of the middle tier that are created directly or indirectly by the first object in the activity; and controlling flow of execution into the activity so as to limit access to the activity to the client application process, wherein objects of the middle tier's object-oriented server application code are limited to single user access.
Claim 6
Dependent Claim 35 words
The computer-readable storage medium of claim 3 wherein the method further comprises further controlling the flow of execution in the activity to limit concurrent execution in the activity to a single logical thread of execution.
Claim 7
Dependent Claim 177 words
In a computer system having multiple users, a method of providing a simplified programming model for server applications, the method comprising: executing server application code in a multi-tier server application architecture wherein object-oriented server application code is limited to execution in a first tier, and shared database resources and managing code executes in a second tier; executing client application code in a third tier as separate client application processes per user, the client application code in a separate client application process providing a user interface to its respective user for initiating processing by the server application responsive to the user's input; grouping created instances of objects of the object-oriented server application code on the first tier that are performing processing initiated by a client application process for its respective user into a collection pertaining to the user; and limiting access to the created instances of objects in the collection to only the client application process throughout such instances' lifetimes, wherein the objects in the first tier are limited to processing for a single one of the users.
Claim 8
Dependent Claim 177 words
In a computer system having multiple users, a method of providing a simplified programming model for server applications, the method comprising: executing server application code in a multi-tier server application architecture wherein object-oriented server application code is limited to execution in a first tier, and shared database resources and managing code executes in a second tier; executing client application code in a third tier as separate client application processes per user, the client application code in a separate client application process providing a user interface to its respective user for initiating processing by the server application responsive to the user's input; grouping created instances of objects of the object-oriented server application code on the first tier that are performing processing initiated by a client application process for its respective user into a collection pertaining to the user; and limiting access to the created instances of objects in the collection to only the client application process throughout such instances' lifetimes, wherein the objects in the first tier are limited to processing for a single one of the users.
Claim 9
Dependent Claim 190 words
A computer-readable storage medium having stored thereon computer-executable program code operative to perform a method in a computer system having multiple users of providing a simplified programming model for server applications, the method comprising: executing server application code in a multi-tier server application architecture wherein object-oriented server application code is limited to execution in a first tier, and shared database resources and managing code executes in a second tier; executing client application code in a third tier as separate client application processes per user, the client application code in a separate client application process providing a user interface to its respective user for initiating processing by the server application responsive to the user's input; grouping created instances of objects of the object-oriented server application code on the first tier that are performing processing initiated by a client application process for its respective user into a collection pertaining to the user; and limiting access to the created instances of objects in the collection to only the client application process throughout such instances' lifetimes, wherein the objects in the first tier are limited to processing for a single one of the users.
Claim 10
Dependent Claim 190 words
A computer-readable storage medium having stored thereon computer-executable program code operative to perform a method in a computer system having multiple users of providing a simplified programming model for server applications, the method comprising: executing server application code in a multi-tier server application architecture wherein object-oriented server application code is limited to execution in a first tier, and shared database resources and managing code executes in a second tier; executing client application code in a third tier as separate client application processes per user, the client application code in a separate client application process providing a user interface to its respective user for initiating processing by the server application responsive to the user's input; grouping created instances of objects of the object-oriented server application code on the first tier that are performing processing initiated by a client application process for its respective user into a collection pertaining to the user; and limiting access to the created instances of objects in the collection to only the client application process throughout such instances' lifetimes, wherein the objects in the first tier are limited to processing for a single one of the users.
Claim 11
Independent Claim 172 words
A method of controlling execution in a single user object tier of a server application running on at least one server computer of a distributed computing network to limit individual server application object instances in such tier to processing for but a single user, the method comprising: on each request from any of a plurality of user-specific client processes to instantiate an object in the single user object tier, creating an instance of the client process-requested object and associating a client identifier indicative of the requesting client process with that just-created instance; on each request from any of a plurality of object instances in the single user object tier to instantiate an object in the single user object tier, creating an instance of the object-requested object and associating the requesting object instance's client identifier with that just-created instance; and restricting calls into any object instance in the single user object tier to those in a call sequence originating from the client process indicated by the client identifier associated with that object instance.
Claim 12
Independent Claim 172 words
A method of controlling execution in a single user object tier of a server application running on at least one server computer of a distributed computing network to limit individual server application object instances in such tier to processing for but a single user, the method comprising: on each request from any of a plurality of user-specific client processes to instantiate an object in the single user object tier, creating an instance of the client process-requested object and associating a client identifier indicative of the requesting client process with that just-created instance; on each request from any of a plurality of object instances in the single user object tier to instantiate an object in the single user object tier, creating an instance of the object-requested object and associating the requesting object instance's client identifier with that just-created instance; and restricting calls into any object instance in the single user object tier to those in a call sequence originating from the client process indicated by the client identifier associated with that object instance.
Claim 13
Dependent Claim 119 words
The method of claim 7 further comprising: on each request from any of a plurality of user-specific client processes to instantiate an object in the single user object tier, creating an instance of the requested object and associating a client identifier indicative of the requesting client process with the created instance; on a request from any object in the single user object tier to instantiate an object in the single user object tier, creating an instance of the requested object and associating a client identifier associated with the requesting object with the created instance; and restricting calls into any object in the single user object tier to the client process indicated by the client identifier associated with that object.
Claim 14
Dependent Claim 185 words
A computer-readable storage medium having stored thereon computer-executable program code operative to perform a method of controlling execution in a single user object tier of a server application running on at least one server computer of a distributed computing network to limit individual server application object instances in such tier to processing for but a single user, the method comprising: on each request from any of a plurality of user-specific client processes to instantiate an object in the single user object tier, creating an instance of the client process-requested object and associating a client identifier indicative of the requesting client process with that just-created instance; on each request from any of a plurality of object instances in the single user object tier to instantiate an object in the single user object tier, creating an instance of the object-requested object and associating the requesting object instance's client identifier with that just-created instance; and restricting calls into any object instance in the single user object tier to those in a call sequence originating from the client process indicated by the client identifier associated with that object instance.
Claim 15
Dependent Claim 185 words
A computer-readable storage medium having stored thereon computer-executable program code operative to perform a method of controlling execution in a single user object tier of a server application running on at least one server computer of a distributed computing network to limit individual server application object instances in such tier to processing for but a single user, the method comprising: on each request from any of a plurality of user-specific client processes to instantiate an object in the single user object tier, creating an instance of the client process-requested object and associating a client identifier indicative of the requesting client process with that just-created instance; on each request from any of a plurality of object instances in the single user object tier to instantiate an object in the single user object tier, creating an instance of the object-requested object and associating the requesting object instance's client identifier with that just-created instance; and restricting calls into any object instance in the single user object tier to those in a call sequence originating from the client process indicated by the client identifier associated with that object instance.
Claim 16
Dependent Claim 124 words
The computer-readable storage medium of claim 9 wherein the method further comprises: on each request from any of a plurality of user-specific client processes to instantiate an object in the single user object tier, creating an instance of the requested object and associating a client identifier indicative of the requesting client process with the created instance; on a request from any object in the single user object tier to instantiate an object in the single user object tier, creating an instance of the requested object and associating a client identifier associated with the requesting object with the created instance; and restricting calls into any object in the single user object tier to the client process indicated by the client identifier associated with that object.
Claim 17
Dependent Claim 142 words
In a computer having multi-tasking computer-operating system code supporting execution of a plurality of threads, a method to implement concurrency isolation for preventing inadvertent parallelism in application components of an object-oriented code middle tier of a multi-tier client/server application architecture having a first tier of client program processes, the object-oriented code middle tier, and a third tier of shared access data and code, the method comprising: grouping a subset of the application components of the second tier that are created directly or indirectly by an initiating client process to perform processing work for the initiating client process into an activity; and controlling execution flow into the subset of application components on the middle tier that are grouped in the activity such that concurrent execution in said subset is restricted to a single logical thread of execution originating with the initiating client process.
Claim 18
Dependent Claim 142 words
In a computer having multi-tasking computer-operating system code supporting execution of a plurality of threads, a method to implement concurrency isolation for preventing inadvertent parallelism in application components of an object-oriented code middle tier of a multi-tier client/server application architecture having a first tier of client program processes, the object-oriented code middle tier, and a third tier of shared access data and code, the method comprising: grouping a subset of the application components of the second tier that are created directly or indirectly by an initiating client process to perform processing work for the initiating client process into an activity; and controlling execution flow into the subset of application components on the middle tier that are grouped in the activity such that concurrent execution in said subset is restricted to a single logical thread of execution originating with the initiating client process.
Claim 19
Dependent Claim 124 words
The method of claim 11 further comprising: when a client program process of the first tier requests creation of a first application component instance of the middle tier, creating such first instance and associating therewith an activity identifier designating the activity for grouping the subset of the application components of the middle tier; when an application component of the middle tier having the activity identifier associated therewith requests creation of an additional application component instance of the middle tier, creating such additional instance and associating therewith the activity identifier so as to group such additional instance in the activity; and preventing entry into the subset of application components associated with the activity identifier of any more threads than the single logical thread of execution.
Claim 20
Dependent Claim 155 words
A computer-readable storage medium having stored thereon computer-executable program code operative in a computer having multi-tasking computer-operating system code supporting execution of a plurality of threads, to perform a method to implement concurrency isolation for preventing inadvertent parallelism in application components of an object-oriented code middle tier of a multi-tier client/server application architecture having a first tier of client program processes, the object-oriented code middle tier, and a third tier of shared access data and code, the method comprising: grouping a subset of the application components of the second tier that are created directly or indirectly by an initiating client process to perform processing work for the initiating client process into an activity; and controlling execution flow into the subset of application components on the middle tier that are grouped in the activity such that concurrent execution in said subset is restricted to a single logical thread of execution originating with the initiating client process.
Claim 21
Dependent Claim 155 words
A computer-readable storage medium having stored thereon computer-executable program code operative in a computer having multi-tasking computer-operating system code supporting execution of a plurality of threads, to perform a method to implement concurrency isolation for preventing inadvertent parallelism in application components of an object-oriented code middle tier of a multi-tier client/server application architecture having a first tier of client program processes, the object-oriented code middle tier, and a third tier of shared access data and code, the method comprising: grouping a subset of the application components of the second tier that are created directly or indirectly by an initiating client process to perform processing work for the initiating client process into an activity; and controlling execution flow into the subset of application components on the middle tier that are grouped in the activity such that concurrent execution in said subset is restricted to a single logical thread of execution originating with the initiating client process.
Claim 22
Dependent Claim 127 words
In a distributed computer system having multiple users, a computer operating environment for providing single user server application components, the computer operating environment comprising: connectivity code for receiving a request of a client application process to create a component of a component-based server application; component creation code for creating the client-requested component in an activity pertaining to the client application process in response to the client application process'request, and for creating additional components of the component-based server application in the activity in response to requests of any component in the activity to create the additional component; and execution flow control code for restricting access to components in the activity to the client application process, wherein components of the component-based server application are limited to single user access.
Claim 23
Dependent Claim 127 words
In a distributed computer system having multiple users, a computer operating environment for providing single user server application components, the computer operating environment comprising: connectivity code for receiving a request of a client application process to create a component of a component-based server application; component creation code for creating the client-requested component in an activity pertaining to the client application process in response to the client application process'request, and for creating additional components of the component-based server application in the activity in response to requests of any component in the activity to create the additional component; and execution flow control code for restricting access to components in the activity to the client application process, wherein components of the component-based server application are limited to single user access.
Claim 24
Dependent Claim 31 words
The computer operating environment of claim 14 further comprising: data access code for providing shared access by the components of the component-based server application in different activities to a relational database.
Claim 25
Dependent Claim 38 words
The computer operating environment of claim 14 wherein execution flow control code further operates to control the flow of concurrent execution in the activity to limit concurrent execution in the activity to a single logical thread of execution.
Claim 26
Dependent Claim 164 words
A computer-readable storage medium having computer-executable program code stored thereon of a server application for execution on at least one server computer in a distributed computer network, the server application accessed by multiple users at client stations in the distributed computer network, the server application having a multi-tier architecture comprising: a single user access tier of object-oriented server application code for execution in a run-time environment operative to group object instances of the object-oriented server application code that are created directly or indirectly at request of a client process run at a client station of a single one of the users and to limit access to individual of said group of object instances of the object-oriented server application code to access from the client process of the single one of the users throughout the respective object instance's lifetime; and a shared access tier of data and code to which object instances of the single user access tier accessible to different users have shared access.
Claim 27
Dependent Claim 164 words
A computer-readable storage medium having computer-executable program code stored thereon of a server application for execution on at least one server computer in a distributed computer network, the server application accessed by multiple users at client stations in the distributed computer network, the server application having a multi-tier architecture comprising: a single user access tier of object-oriented server application code for execution in a run-time environment operative to group object instances of the object-oriented server application code that are created directly or indirectly at request of a client process run at a client station of a single one of the users and to limit access to individual of said group of object instances of the object-oriented server application code to access from the client process of the single one of the users throughout the respective object instance's lifetime; and a shared access tier of data and code to which object instances of the single user access tier accessible to different users have shared access.
Claim 28
Dependent Claim 39 words
The computer-readable storage medium of claim 1 wherein the multi-tier architecture further comprises a client tier of client application code for initiating processing by the object-oriented server application code of the single user access tier responsive to user inputs.

References Cited (Backward Citations)

US5619710A Cited
US5857201A Cited
US5864669A Cited
US5790789A Cited
US5889942A Cited
US5857197A Cited
US5958010A Cited
US6061796A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-10-17 2004-04-17 2004-10-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-10-17 2008-04-17 2008-10-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-10-17 2012-04-17 2012-10-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag