Methods and apparatus for creating middleware independent software
First Claim
1. A method of abstracting an object model, the method comprising:
- receiving an object model specification defining application semantics for an application to access, via invocations, objects identified in the object model specification;
applying a categorical-based generator that applies at least one morphism to the object model specification, application of the categorical-based generator generating;
i) an abstraction interface object model, the abstraction interface object model preserving application semantics defined within the object model specification and being independent of a middleware object access mechanism used to access data within objects corresponding to the object model specification; and
ii) an implementation of the abstraction interface object model for a particular middleware object access mechanism used to access data within objects corresponding to the object model specification;
wherein object model specification is defined in an interface description language (IDL) that includes a plurality of IDL types; and
wherein applying a categorical-based generator that applies at least one morphism to the object model specification comprises;
visiting each IDL type defined in the IDL once;
for each IDL type visited applying the at least one morphism to map the IDL type one-to-one and onto into application types by defining at least one corresponding morphism for that type within the abstraction interface object model, the corresponding morphism preserving inheritance among application interfaces defined in the abstraction interface object model and preserving all relationships among the application interfaces; and
for each type in the object model specification, defining two morphisms, h( ) and hh( ), with common implementations, but each having different return types, the return type of morphism hh( ) being a categorical return type corresponding to a middleware-specific type, the return type of the morphism h( ) anonymizing the middleware-specific type into a language type generic to the application.
9 Assignments
0 Petitions
Accused Products
Abstract
A system abstracts an object model by receiving an object model specification defining application semantics for an application to access, via invocations, objects identified in the object model specification. The system applies a categorical-based generator that applies at least one morphism to the object model specification to generate an abstraction interface object model that preserves application semantics defined within the object model specification and is independent of a middleware object access mechanism. The system also generates an implementation of the abstraction interface object model for a particular middleware object access mechanism used to access data within objects corresponding to the object model specification.
-
Citations
18 Claims
-
1. A method of abstracting an object model, the method comprising:
-
receiving an object model specification defining application semantics for an application to access, via invocations, objects identified in the object model specification; applying a categorical-based generator that applies at least one morphism to the object model specification, application of the categorical-based generator generating; i) an abstraction interface object model, the abstraction interface object model preserving application semantics defined within the object model specification and being independent of a middleware object access mechanism used to access data within objects corresponding to the object model specification; and ii) an implementation of the abstraction interface object model for a particular middleware object access mechanism used to access data within objects corresponding to the object model specification; wherein object model specification is defined in an interface description language (IDL) that includes a plurality of IDL types; and wherein applying a categorical-based generator that applies at least one morphism to the object model specification comprises; visiting each IDL type defined in the IDL once; for each IDL type visited applying the at least one morphism to map the IDL type one-to-one and onto into application types by defining at least one corresponding morphism for that type within the abstraction interface object model, the corresponding morphism preserving inheritance among application interfaces defined in the abstraction interface object model and preserving all relationships among the application interfaces; and for each type in the object model specification, defining two morphisms, h( ) and hh( ), with common implementations, but each having different return types, the return type of morphism hh( ) being a categorical return type corresponding to a middleware-specific type, the return type of the morphism h( ) anonymizing the middleware-specific type into a language type generic to the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 17, 18)
-
-
14. A computer system comprising:
-
a memory; a processor, an interconnection mechanism coupling the memory and the processor; wherein the memory is encoded with a generator that when executed on the processor causes the computer system to perform the operations of; receiving an object model specification defining application semantics for an application to access, via invocations, objects identified in the object model specification; applying a categorical-based generator that applies at least one morphism to the object model specification, application of the categorical-based generator generating; i) an abstraction interface object model, the abstraction interface object model preserving application semantics defined within the object model specification and being independent of a middleware object access mechanism used to access data within objects corresponding to the object model specification; and ii) an implementation of the abstraction interface object model for a particular middleware object access mechanism used to access data within objects corresponding to the object model specification, wherein object model specification is defined in an interface description language (IDL) that includes a plurality of IDL types; and wherein applying a categorical-based generator that applies at least one morphism to the object model specification comprises; visiting each IDL type defined in the IDL once; for each IDL type visited applying the at least one morphism to map the IDL type one-to-one and onto into application types by defining at least one corresponding morphism for that type within the abstraction interface object model, the corresponding morphism preserving inheritance among application interfaces defined in the abstraction interface object model and preserving all relationships among the application interfaces; and for each type in the object model specification, defining two morphisms, h( ) and hh( ), with common implementations but each having different return types, the return type of morphism hh( ) being a categorical return type corresponding to a middleware-specific type, the return type of the morphism h( ) anonymizing the middleware-specific type into a language type generic to the application.
-
-
15. A computer readable medium encoded with processing logic that, when executed on a processor in a computer system provides a generator that causes the computer system to perform the operations of:
-
receiving an object model specification defining application semantics for an application to access, via invocations, objects identified in the object model specification; applying a categorical-based generator that applies at least one morphism to the object model specification, application of the categorical-based generator generating; i) an abstraction interface object model, the abstraction interface object model preserving application semantics defined within the object model specification and being independent of a middleware object access mechanism used to access data within objects corresponding to the object model specification; and ii) an implementation of the abstraction interface object model for a particular middleware object access mechanism used to access data within objects corresponding to the object model specification, wherein object model specification is defined in an interface description language (IDL) that includes a plurality of IDL types; and wherein applying a categorical-based generator that applies at least one morphism to the object model specification comprises; visiting each IDL type defined in the IDL once; for each IDL type visited applying the at least one morphism to map the IDL type one-to-one and onto into application types by defining at least one corresponding morphism for that type within the abstraction interface object model, the corresponding morphism preserving inheritance among application interfaces defined in the abstraction interface object model and preserving all relationships among the application interfaces; and for each type in the object model specification, defining two morphisms, h( ) and hh( ), with common implementations but each having different return types the return type of morphism hh( ) being a categorical return type corresponding to a middleware-specific type, the return type of the morphism ho anonymizing the middleware-specific type into a language type generic to the application.
-
-
16. A computer system comprising:
-
a memory; a processor, an interconnection mechanism coupling the memory and the processor; wherein the memory is encoded with a generator that when executed on the processor provides a means to abstract an object model, said means including; means for receiving an object model specification defining application semantics for an application to access, via invocations, objects identified in the object model specification; means for applying a categorical-based generator that applies at least one morphism to the object model specification, application of the categorical-based generator including means for generating; i) an abstraction interface object model, the abstraction interface object model preserving application semantics defined within the object model specification and being independent of a middleware object access mechanism used to access data within objects corresponding to the object model specification; and ii) an implementation of the abstraction interface object model for a particular middleware object access mechanism used to access data within objects corresponding to the object model specification; wherein object model specification is defined in an interface description language (IDL) that includes a plurality of IDL types; and wherein means for applying a categorical-based generator that applies at least one morphism to the object model specification comprises; means for visiting each IDL type defined in the IDL once; for each IDL type visited means for applying the at least one morphism to map the IDL type one-to-one and onto into application types by defining at least one corresponding morphism for that type within the abstraction interface object model, the corresponding morphism preserving inheritance among application interfaces defined in the abstraction interface object model and preserving all relationships among the application interfaces; and for each type in the object model specification, means for defining two morphisms, h( ) and hh( ) with common implementations but each having different return types the return type of morphism hh( ) being a categorical return type corresponding to a middleware-specific type, the return type of the morphism h( ) anonymizing the middleware-specific type into a language type generic to the application.
-
Specification