System and method for providing interoperability among heterogeneous object systems
First Claim
1. Computer-executable process steps, stored on a computer-readable medium for use in a digital computer system, which involves objects of first and second object models and corresponding first and second object systems using respective first and second implementations to implement, respectively, the first and second object models, and steps to enable the first object system to use objects of at least the second object model, comprising:
- a providing step to provide a description of an object of the second object model;
a creating step to create a proxy object that is an object of the first object system and that corresponds to the object of the second object model;
a receiving step to receive a manipulation of the proxy object, the manipulation conforming to the first implementation; and
a forwarding step to forward a manipulation of at least one of the proxy objects to the corresponding object of the second object model by utilizing the description from said providing step.
4 Assignments
0 Petitions
Accused Products
Abstract
A system and method in accordance with a preferred embodiment enable objects from two or more heterogeneous object systems in a digital computer to interoperate and be combined in the creation of a larger object-oriented software project, as well as uses of such system and method. Objects from a foreign object system are unmodified, yet appear to be native to the object system in which they are used or accessed. A native proxy object (indistinguishable from other native objects) is constructed for the real foreign object. The proxy object contains an identifier to the real object, as well as a pointer to a software description of how to access and manipulate the object—e.g. how to call its methods, set its properties, and handle exceptions. When the proxy object is manipulated, it follows the instructions in the software description which, in turn, results in the corresponding manipulation of the foreign object.
192 Citations
41 Claims
-
1. Computer-executable process steps, stored on a computer-readable medium for use in a digital computer system, which involves objects of first and second object models and corresponding first and second object systems using respective first and second implementations to implement, respectively, the first and second object models, and steps to enable the first object system to use objects of at least the second object model, comprising:
-
a providing step to provide a description of an object of the second object model;
a creating step to create a proxy object that is an object of the first object system and that corresponds to the object of the second object model;
a receiving step to receive a manipulation of the proxy object, the manipulation conforming to the first implementation; and
a forwarding step to forward a manipulation of at least one of the proxy objects to the corresponding object of the second object model by utilizing the description from said providing step. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 35, 36, 37, 38, 39, 40, 41)
(a) the creating step further comprises a step to create a plurality of proxy objects, each proxy object being an object of the first object system and corresponding with an object of one of the plurality of object models; and
(b) the forwarding step further comprises a step to forward manipulations of at least one of the proxy objects to the corresponding object.
-
-
3. Computer-executable process steps according to claim 1, the steps to enable the second object system to use objects of at least the first object model further comprising:
-
a description step to provide a description of an object of the first object model;
a proxy step to create a proxy object that is an object of the second object system and that corresponds to the object of the first object model;
a receiving step to receive a manipulation of the proxy object, the manipulation conforming to the second implementation; and
a forwarding step to forward the manipulation of the proxy object to the corresponding object of the first object model by utilizing the description from said description step.
-
-
4. Computer-executable process steps according to claim 1, wherein the steps enable the first object system to use a plurality of objects of a plurality of object models, and:
-
the creating step further comprises a step to create a proxy object, the proxy object being an object of the first object system and corresponding to a plurality of objects; and
the forwarding step further comprises a step to forward manipulations of the proxy object to the corresponding objects.
-
-
5. Computer-executable process steps according to claim 1, further comprising a creating step which manipulates an object of the second object model using a proxy object of the second object model via one or more different object models.
-
6. Computer-executable process steps according to claim 1 further comprising a creating step which utilizes a description of a class of the first object model, and wherein the proxy object has a same signature as the class of the first object model.
-
7. Computer-executable process steps according to claim 1, with a forwarding step further comprising at least one of:
-
a step to map between differences in language types;
a step to dynamically construct proxy objects when required;
a step to map between differences in errors and exceptions;
a step to map between differences in querying for object information;
a step to map between fundamental calling mechanisms;
a step to map between differences in threading;
a step to map between differences in semantic information;
a step to map between differences in lifecycle management;
a step to map between differences in location and enumeration mechanisms;
a step to map between differences in class description mechanisms;
a step to map between differences in event notification mechanisms;
a step to map between differences in repository mechanisms.
-
-
8. Computer-executable process steps according to claim 1, wherein the forwarding step further comprises a step to retrieve semantically meaningful types, semantically meaningful aspects, or semantically meaningful objects inherent in the manipulation and a further step to map between corresponding semantic types, corresponding semantic aspects, or corresponding semantic objects in accordance with the proxy object of the second object model.
-
9. Computer-executable process steps according to claim 3, wherein the steps enable a plurality of object systems to use objects of the first object model and:
-
the proxy step further comprises a creating step to create a plurality of proxy objects, each proxy object being an object of one of the plurality of object systems; and
the forwarding step further comprises a forwarding step to forward manipulations of one of the proxy objects to the corresponding object.
-
-
10. Computer-executable process steps according to claim 1, 2, 3, 4 or 9 wherein the steps do not include generation of computer language source code.
-
11. Computer-executable process steps according to claim 4, further comprising a step to utilize a description of a class of the first object model, and wherein the proxy object has a same signature as the class of the first object model.
-
12. Computer-executable process steps according to claim 4, further comprising a providing step to create descriptions using library-based or interactive construction software.
-
13. Computer-executable process steps according to claim, 12, wherein:
the providing step further provides steps to describe semantic types, semantic information, and semantic aspects of the plurality of objects; and
the forwarding step further comprises a mapping step to map the first semantic types, semantic information, and semantic aspects of the proxy object to the semantic types, semantic information, and semantic aspects of the plurality of objects.
-
14. Computer-executable process steps according to claim 13, wherein the mapping step further comprises a specialized editor. library-based or interactive, to specify the map.
-
15. Computer-executable process steps according to claim 4, wherein the forwarding step further comprises a step to retrieve one or more of semantically meaningful types, semantically meaningful information, and semantically meaningful aspects of the plurality of objects, and further comprises a step to map between corresponding semantically meaningful types, semantically meaningful information and semantically meaningful aspects in accordance with the proxy object.
-
16. Computer-executable process steps according to claim 15, further comprising at least one of:
-
a step to parse a semantic entity represented by a single data or argument value into a corresponding plurality of data or plurality of argument values;
a step to consolidate a semantic entity represented by a plurality of data or argument values into a corresponding single data or argument value; and
a step to transform a semantic entity represented by a plurality of data or argument values into a corresponding plurality of data or argument values a step to parse a semantic entity represented by a single object into a corresponding plurality of objects;
a step to consolidate a semantic entity represented by a plurality of objects into a corresponding single object;
a step to transform a semantic entity represented by a plurality of objects into a corresponding plurality of objects;
a step to forward a semantically meaningful function or method call to a plurality of function or method calls;
a step to consolidate semantically meaningful function or method calls into a single function or method call;
ora step to transform a plurality of semantically meaningful function or method calls into a corresponding plurality of function or method calls.
-
-
17. Computer-executable process steps according to claim 5, wherein the proxy object has a signature which is identical to a signature of the object of the second object model.
-
18. Computer-executable process steps according to claim 5, further comprising a creating step which utilizes the proxy object in place of the object of the second object model.
-
19. Computer-executable process steps according to claim 7, further comprising a forwarding step which enables the first object system to use features that are provided by the second object system, but that are not provided by the first object system.
-
20. Computer-executable process steps according to claim 7, further comprising a forwarding step which uses features provided by the first object system which require functionality of the proxy object, wherein such functionality is not implemented by the second object system.
-
21. Computer-executable process steps according to claim 20, wherein the creating or forwarding step further comprises:
-
a step to associate an object with one or more elements of the description; and
a step to delegate execution of a feature by the proxy object to the associated object either before responding to a manipulation, instead of responding to a manipulation, or after responding to a manipulation.
-
-
22. Computer-executable process steps according to claim 8, the forwarding step further comprising at least one of:
-
a step to parse a semantic entity represented by a single data or argument value into a corresponding plurality of data or plurality of argument values;
a step to consolidate a semantic entity represented by a plurality of data or argument values into a corresponding single data or argument value;
a step to transform a semantic entity represented by a plurality of data or argument values into a corresponding plurality of data or argument values;
a step to parse a semantic entity represented by a single object into a corresponding plurality of objects;
a step to consolidate a semantic entity represented by a plurality of objects into a corresponding single object;
a step to transform a semantic entity represented by a plurality of objects into a corresponding plurality of objects;
a step to forward a semantically meaningful function or method call to a plurality of function or method calls;
a step to consolidate semantically meaningful function or method calls into a single function or method call; and
a step to transform a plurality of semantically meaningful function or method calls into a corresponding plurality of function or method calls.
-
-
23. Computer-executable process steps according to claim 2, 4, or 9 further comprising a step which either adds or removes support for object systems and object models without compiling.
-
24. Computer-executable process steps according to claim 2, 4 or 9, for use with either a traditional interactive application, an object class, or computer-executable process construction environment, said steps comprising at least one of:
-
a step to subclass from object classes of a plurality of object systems;
a step to utilize or incorporate object classes of a plurality of object systems;
a step to instantiate, utilize or embed object instances of a plurality of object systems;
a step to construct objects which can be used according to implementations of a plurality of object systems;
a step to relocate object classes and objects among application processes, server processes and object systems.
-
-
35. Two or more sets of computer-executable process steps according to claim 1 together enabling the manipulation of the object of the second object model via one or more different object systems.
-
36. Computer-executable process steps according to claim 2, 4, or 9, further comprising steps wherein objects or classes from a plurality of object systems may be made available within at least one of:
-
a unified namespace;
a unified viewing space;
a unified search space;
a unified directory space;
a unified browsing space;
a unified repository space;
ora unified query space.
-
-
37. Computer-executable process steps according to claim 36 further comprising a step to accomplish at least one of:
-
searching the search space or the namespace utilizing a search engine;
browsing the browsing space or the viewing space using a browser;
orstoring the directory space or the repository space using a directory server.
-
-
38. Computer-executable process steps according to claim 2, 4, or 9, further comprising the step of graphically displaying the descriptions or programming language signatures of objects of a plurality of object systems in either the standard description format or the programming language signature format of the first object model.
-
39. Computer-executable process steps according to claim 1 further comprising a generation means to generate descriptions of the proxy object according to the first object system.
-
40. Computer-executable process steps according to claim 1 or 3, wherein the forwarding step further comprises a step wherein of at least one of:
-
a logical grouping of data elements that is provided by the second object model are mapped into properties of the proxy object;
functions that are provided by the second object model, are mapped into methods of the proxy object;
orfunctions that operate on logical groupings of data elements that are provided the second object system are mapped into methods of the proxy object.
-
-
41. Computer-executable process steps according to claim 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 22, 24, 25, 27, 28, 29, 30, 33, 34, or 35, wherein at least one object system and corresponding object model is created from collections comprising at least one of:
-
non-object-oriented programming language functions;
data structures;
or data elementsnon-object-oriented electronic data structures;
or data elementsnon-object-oriented middleware messages;
or eventsutilizing at least one of the following means;
a description step and a forwarding step, the description step enabling the collection to emulate an object of an object system, and the forwarding step enabling manipulations to be forwarded to the corresponding item within the collection;
an application programming interface to at least one programming language, the application programming interface enabling the collection to emulate an object of the object system;
oran implicit plurality of functions combined with a description means and the collection to emulate an object of the object system.
-
-
25. Computer-executable process steps stored on a computer-readable medium for use in a digital computer, which involves objects of first and second object models and corresponding first and second object systems using respective first and second implementations to implement, respectively, the first and second object models and steps to enable the first object system to use objects of at least the second object model, comprising:
-
a description step to provide a description of an object of the second object model;
a proxy step to create a proxy object that is an object of the first object system and that corresponds to the object of the second object model and comprising a manipulation of the object of the second object model;
a receiving step to receive a manipulation of the object of the second object model, the manipulation conforming to the second implementation; and
a forwarding step to forward the manipulation of the object of the second object model to the proxy object. - View Dependent Claims (26, 27, 28, 29, 30)
a step to specify, using a library-bases or interactive tool, the corresponding manipulations;
or,a step to tag, using a library-bases or interactive tool, which aspects of the object of the second object model have semantic meaning not identified in the description.
-
-
31. Computer-executable process steps, stored on a computer-readable medium for use in a digital computer system, which involves objects of first and second object systems using respective first and second implementations which implement respective first and second object models, the steps for enabling the first object system to use an object of the second object system comprising:
-
a description step to provide a description of object aspects, object system aspects or object manipulations, said description describing first semantic types, first semantic aspects, or first implementations that are supported by the first object system and not supported in the same manner by the second object system and describing second semantic types, second semantic aspects or second implementations supported by the second object system and not supported in the same manner by the first object system; and
a forwarding step that comprises a mapping step to forward a manipulation of a first object, the manipulation in accordance with the first implementation, to the second object by utilizing the description, wherein the first object corresponds to the second object. - View Dependent Claims (32, 33)
-
-
34. Computer-executable process steps, stored on a computer-readable medium for use in a digital computer system, which involves a plurality of processes and object systems, the steps to enable a native object system having a native implementation for implementing a native object model and located in a first process to use an object located in a second process via a foreign object system using a foreign object model comprising:
-
a description step to provide a description of the object;
a proxy step to create a proxy object conforming to the native object system that corresponds with the object located in the second process;
a receiving step to receive a manipulation of the proxy object, the manipulation conforming to the native implementation; and
a forwarding step to forward the manipulation of the proxy object to the corresponding object by utilizing the description and the foreign object system, wherein the steps do not include generation of computer language source code and at least one of the object system or a corresponding object model is created from a collection.
-
Specification