Multitasking computer system for integrating the operation of different application programs which manipulate data objects of different types
DCFirst Claim
1. A method of operating a digital computing system to perform desired data processing operations, said computing system including a programmable processor, a main memory for storing active programs and data, a mass storage memory for storing inactive programs and data, and a display device for visually displaying images in response to processing operations, the method comprising, in combination, the steps of:
- storing in the mass storage memory a plurality of application programs, each of the application programs being executable independently of each other by said processor, and any given one of the application programs including means for performing one or more generic operations specified by standard requests on corresponding typed data objects stored in the mass storage memory each of said corresponding typed data objects having an associated type classification which indicates an internal structure and interpretation of the data contained in said corresponding typed data objects defined by said given application program,storing in said mass storage memory a database containing entries which, given a specified operation and a specified object type classification, designate a particular one of said application programs that includes means for performing said specified operation on typed data objects having said specified type classification, andstoring in said mass storage memory a set of application integration service programs which comprise, in combination,a multitasking application manager program for running selected ones of said application programs concurrently as peer processes in response to program invocation requests from a user or from an already running application program, anda library of common subroutines selectively and individually callable by running application programs, said library includingone or more invocation subroutines callable from a first running application program which performs operations on a first data object, said invocation subroutines including means for receiving a request from said first running application program to perform a designated operation on a second data object having a designated object classification, said invocation subroutines further including means responsive to said request for obtaining from said database the identity of a selected second application program including means for performing said designated operation on objects having said designated type classification, and said invocation subroutine further including means for transmitting an invocation request to run said second application program and for transmitting to said second application program a request to perform said designated operation on said second data object.
9 Assignments
Litigations
0 Petitions
Accused Products
Abstract
An object based data processing system including an extensible set of object types and a corresponding set of "object managers" wherein each object manager is a program for operating with the data stored in a corresponding type of object. The object managers in general support at least a standard set of operations. Any program can effect performance of these standard operations on objects of any type by making an "invocation" request. In response to an invocation request, object management services (which are available to all object managers) identifies and invokes an object manager that is suitable for performing the requested operation on the specified type of data. A mechanism is provided for linking data from one object into another object. A object catalog includes both information about objects and about links between objects. Data interchange services are provided for communicating data between objects of different types, using a set of standard data interchange formats. A matchmaker facility permits two processes that are to cooperate in a data interchange operation identify each other and to identify data formats they have in common. A facility is provided for managing shared data "resources". Customized versions of resources can be created and co-exist with standard resources. A resource retrieval function determines whether a customized or a standard resource is to be returned in response to each request for a resource.
152 Citations
51 Claims
-
1. A method of operating a digital computing system to perform desired data processing operations, said computing system including a programmable processor, a main memory for storing active programs and data, a mass storage memory for storing inactive programs and data, and a display device for visually displaying images in response to processing operations, the method comprising, in combination, the steps of:
-
storing in the mass storage memory a plurality of application programs, each of the application programs being executable independently of each other by said processor, and any given one of the application programs including means for performing one or more generic operations specified by standard requests on corresponding typed data objects stored in the mass storage memory each of said corresponding typed data objects having an associated type classification which indicates an internal structure and interpretation of the data contained in said corresponding typed data objects defined by said given application program, storing in said mass storage memory a database containing entries which, given a specified operation and a specified object type classification, designate a particular one of said application programs that includes means for performing said specified operation on typed data objects having said specified type classification, and storing in said mass storage memory a set of application integration service programs which comprise, in combination, a multitasking application manager program for running selected ones of said application programs concurrently as peer processes in response to program invocation requests from a user or from an already running application program, and a library of common subroutines selectively and individually callable by running application programs, said library including one or more invocation subroutines callable from a first running application program which performs operations on a first data object, said invocation subroutines including means for receiving a request from said first running application program to perform a designated operation on a second data object having a designated object classification, said invocation subroutines further including means responsive to said request for obtaining from said database the identity of a selected second application program including means for performing said designated operation on objects having said designated type classification, and said invocation subroutine further including means for transmitting an invocation request to run said second application program and for transmitting to said second application program a request to perform said designated operation on said second data object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. In a data processing system including a programmable processor, a mass storage memory subsystem for storing information including a plurality of independently stored inactive application programs executable by said processor and a plurality of independently stored data objects each comprising one or more files of typed data, each of said data objects being manipulatable by at least one of said application programs, and a display device for displaying information to a user, a mechanism for extensibly integrating the operation of pre-existing application programs and the data objects manipulated by said pre-existing programs with newly installed application programs and data objects without modifying the pre-existing application programs, said integrating mechanism comprising, in combination:
-
an application manager program stored in said memory subsystem for concurrently executing selected ones of said application programs, each given one of said application programs including, in combination, request processing means for accepting one or more operation requests selected from an established set of generic operation requests, said requests being accepted by said given application program in accordance with a uniform protocol common to all of said plurality of application programs, object data processing means responsive to said requests for performing corresponding generic operations on typed data objects stored in said memory subsystem, said typed data objects being internally organized in accordance with and conforming to an internal data format defined by said given application program and specified by an object type designation, a system database stored in said memory subsystem comprising a plurality of entries each containing; a particular object type designation, an identification of a particular one of said generic operations, and an identification of an application program having object processing means for performing said particular generic operation on objects having an internal data format specified by said particular object type designation, a library of application integration service routines stored in said memory subsystem, each of said routines being dynamically linked to said application programs when said application programs are executed, said service routines comprising; invocation service means responsive to an invocation request from a first executing application program acting as a consumer for invoking the concurrent execution of a selected second application program acting as a server, said invocation service means comprising; means responsive to said invocation request for obtaining the identification of said second program from said system database in response to the specification of a given one of said generic operations and a given object type designation, means for communicating the identification of said second application program to said application manager program to invoke the execution of said second application program acting as a server, and means for transmitting to said executing second program a request to perform said given one of said generic operations on a source data object which is internally organized in accordance with a format specified by said given object type designation, and data interchange service routines executable by said processor comprising; means for establishing a communications link between said first program and said second program, means responsive to a first request from said first application program for copying sharable data from said source data object into a destination data object manipulated by said first program, and means responsive to a second request from said first program for accessing sharable linked data in said source data object without copying said sharable data into said destination data object, and means responsive to update requests from said second program for dynamically communicating, to said first program, modifications to said sharable data resulting from the execution of said second program. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A data processing system for performing a set of generic operations specified by corresponding standard requests on data represented as typed objects, the system comprising:
-
(A) a plurality of object managers for performing operations with respect to objects, each object manager including (a) means for performing at least one operation with respect to at least one corresponding type of object, the means for performing at least one operation being responsive to a request to perform an operation of the at least one operation with respect to an identified object of the corresponding type for performing the requested operation with respect to the identified object, (b) means for identifying in a first, corresponding type of object a reference to a second object, (c) means responsive to the identification of a reference to a second object for generating a request for an operation with respect to the second object, each request including an identification of the second object and an operation to be performed with respect to the second object, (B) means for receiving from a requesting object manager an identification of a second object and an identification of an operation to be performed with respect to the second object, (C) means for using the received object and operation identifications to identify an object manager that includes means for performing the identified operation on objects of the type of the identified second object, (D) means for invoking the identified object manager, and (E) means for communicating to the identified object manager one of said standard requests to perform the corresponding one of said generic operations on the identified second object, wherein an object manager can both request invocation of other object managers and can itself be invoked by other object managers. - View Dependent Claims (31, 32, 33)
-
-
34. A data processing system comprising, in combination:
-
a processor, input means for accepting input data and commands from a system user, a monitor for visually displaying the results of processing operations to the system user, a mass storage memory for storing inactive programs and data in one or more media volumes, a main memory for storing active programs and data, file access means for manipulating data stored in said mass storage memory in the form of typed data objects each comprising one or more files of typed data, each given one of said data objects containing data having an internal structure which is designated by an object type identifier, a plurality of application programs each stored in said mass storage memory, each being identified by a file name, and each including instructions for performing at least one of a set of standard operations on typed data objects having an internal structure designated by a particular one of said object type identifiers, a system database stored in said mass storage memory, said database containing entries which associate a given object type identifier and a particular one of said standard operations with the file name of an application program that includes means for performing said particular operation on objects designated by said given object type identifier, and application integration services programs stored in said mass storage memory, including; a multitasking application manager for spawning the execution of a consumer application program as a running consumer process, invocation routines for accepting an invocation request from said consumer process, said invocation request specifying a needed one of said standard operations and a specified object type identifier which designates the type of the object upon which said needed operation is to be performed, a routine responsive to said invocation request for accessing said system database to determine the file name of a server application program, said multitasking application manager including a routine for spawning the execution of said server application program as a running server process which executes concurrently with and independently of said consumer process, and a routine for directing said server process to perform said needed standard operation on a source data object designated by said specified object type identifier. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
-
48. In combination:
-
a computer system comprising a processor, an input device for accepting data and requests from a user of said system, a monitor for displaying information to said user in response to the operation of said processor, and a mass storage system for storing inactive programs and data in files designated by file names, said programs and data including; a plurality of typed data objects, each of said typed data objects being stored as one or more files in said mass storage system; a plurality of application programs, each of said application programs being stored as one or more files in said mass storage system, and each given one of said application programs including means for performing one or more of a set of standard operations on typed data objects that contain data structured in a predetermined manner identified by a type code; a multitasking application management program for spawning the execution of selected ones said application programs as independent and concurrently running application processes, and a set of application integration service routines linked to and callable from said running application processes, said routines including; means for receiving a request for services from a consumer application program running as a consumer process, said consumer process manipulating data in a destination data object, said request including a specification of a desired standard operation and a specified type code, means including a system database for translating said specified type code and said specification of said desired operation into the file name of a needed application program which includes means for performing a specified operation on typed data objects containing data structured in a manner identified by said specified type code; means for invoking said application management program to spawn the execution of said needed application program as a server application process, means for directing said server application process to perform said desired operation on a source data object containing data structured in a manner identified by said specified type code, means for establishing a data interchange connection for transferring data from said source data object to said destination data object, means for receiving a link specification from said server application process and for transmitting said link specification from said server application via said data interchange connection for storage in said destination object, said link specification containing information which designates all or part of the data contained in said source data object as shared data, and means for storing a link marker in said destination data object, said link marker containing information indicative of said specified type code and the file name of said source data object, whereby said consumer application program can thereafter re-establish said data interchange connection between said source data object and said consumer data object by employing said link marker to obtain said specified type code and the file name of said source data object. - View Dependent Claims (49, 50, 51)
-
Specification