Context management system for modular software architecture

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000, C711S156000, C711S173000, C711S209000

Reexamination Certificate

active

06691118

ABSTRACT:

BACKGROUND
In a large scale computer system, such as a database management system (DBMS), it is important to be able to service a number of different users concurrently. Without such a capability, the system would be little more than a standalone computer. To implement multi-user support, several different processing models have been utilized. One model that has been used is the multi-processing model. In multi-processing, each time a new user requests access to the system, a separate process is started. This process is in essence a separate execution of the software. Once started, the process services all of the requests from the user that spawned it. Under the multi-processing model, each process has its own separate memory space for use in storing and processing data.
Multi-processing is effective for supporting multiple users concurrently; however, it has severe scalability limitations. This is due mainly to two factors. First, spawning and maintaining a process involves a significant amount of overhead. Because of the high cost, only a small number of processes can be maintained at any one time. Second, the same set of data, used by multiple processes, may be stored redundantly; once in each process' memory space. This redundancy can waste a significant amount of system resources.
To overcome some of the limitations of multi-processing, the multi-thread model was developed. According to the multi-thread model, there is only one execution of the software. That is, only one process is spawned. From this one process, multiple threads can be spawned to perform the work necessary to service user requests.
Multi-threading has several advantages over multi-processing. First, because only one process is spawned, overhead is kept to a minimum. It is true that each thread carries with it some overhead cost, but this cost is negligible when compared with the cost of maintaining an entire process. Because multi-threading significantly reduces system overhead, many more users can be supported. Another advantage of multi-threading is that it minimizes the redundant storage of data. Because all of the threads are part of the same process, all of the threads can share the same memory space, and other system resources associated with that process.
A typical method of constructing an executable computer program to support concurrent users includes compiling a plurality of source code files into machine-code object files. These object files are then linked together at build time to yield a tightly-coupled monolithic executable image. For complex applications, the executable can be quite large. Although monolithic executables operate efficiently, they have a number of drawbacks, including difficulty in programming, constructing, testing, and modifying the software.
SUMMARY OF THE INVENTION
In accordance with preferred embodiments of the invention, a context management system manages both thread-local data and free-thread data in a flexible modular architecture. Preferably, thread data is segmented into an ordinal workspace structure. In a free thread architecture, each module can have its own private and public segments. The context management system allows many threadable, session contexts to share a lesser number of real operating system threads, maintained as a thread pool within the server process.
In accordance with a preferred embodiment of the invention, a multi-session computing system is programmed with a system for managing session context. First, a computer program is concurrently executable by a plurality of sessions. In particular, the computer program comprises a plurality of linked modules, each module programmed with a subset of the computer program. The modules are linked in a preassigned order to yield the computer program. The sessions are initiated by a plurality of clients, a module provides the interface between the computer program and a client.
Each session can include a plurality of transactions. A thread manager is included to assign computing threads to sessions. In a particular embodiment, a free-thread pool is managed by the thread manager.
A plurality of data segments are generated and accessible to the computer program for storing session data. A data segment can include a private subset of data and a public subset of data.
A database structure relates each session with at least one data segment to provide each session access to the stored session data. The database structure preferably includes an array of pointers to the data segments to bind a module with a data segment. A database manager module associates the database structure with the session data, the modules and the data segments. That association is provided by a computed index into the database structure.
The above and other features of the invention, including various novel details of construction and combination of parts, will now be more particularly described with reference to the accompanying drawings and pointed out in the claims. It will be understood that the particular system for dynamically constructing an executable computer program embodying the invention is shown by way of illustration only and not as a limitation of the invention. The principles and features of this invention may be embodied in varied and numerous embodiments without departing from the scope of the invention.


REFERENCES:
patent: 5097533 (1992-03-01), Burger et al.
patent: 5276879 (1994-01-01), Barry et al.
patent: 5339392 (1994-08-01), Risberg et al.
patent: 5339415 (1994-08-01), Strout, II et al.
patent: 5345588 (1994-09-01), Greenwood et al.
patent: 5421016 (1995-05-01), Conner et al.
patent: 5452459 (1995-09-01), Drury et al.
patent: 5504898 (1996-04-01), Klein
patent: 5511192 (1996-04-01), Shirakihara
patent: 5515538 (1996-05-01), Kleiman
patent: 5574903 (1996-11-01), Szymanski et al.
patent: 5590326 (1996-12-01), Manabe
patent: 5651111 (1997-07-01), McKeeman et al.
patent: 5659752 (1997-08-01), Heisch et al.
patent: 5787452 (1998-07-01), McKenna
patent: 5812848 (1998-09-01), Cohen
patent: 5812852 (1998-09-01), Poulsen et al.
patent: 5852731 (1998-12-01), Wang et al.
patent: 5873071 (1999-02-01), Ferstenberg et al.
patent: 5884022 (1999-03-01), Callsen et al.
patent: 5893912 (1999-04-01), Freund et al.
patent: 5951653 (1999-09-01), Hill et al.
patent: 6058460 (2000-05-01), Nakhimovsky
Petzold, C.,Programming Windows 95, The Definitive Developer's Guide to the Windows 95 API, Microsoft Press, (1996). Chapter 19, “Dynamic Link Libraries,” pp 959-985, Chapter 20, “What's This Thing Called Ole?”, pp 987-1060.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Context management system for modular software architecture does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Context management system for modular software architecture, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Context management system for modular software architecture will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3287839

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.