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. The method of claim 1 wherein applying a categorical-based generator that applies at least one morphism to the object model specification comprises: for each IDL type in the object model specification, emitting programming language types including: i) an interface helper that declares the morphism and is used for constructing the abstraction interface object model as an interface object model; ii) a functional interface that declares application functionality and extends and implements the helper; and iii) the middleware-specific-implementation object model that provide a functional implementation that implements and extends the functional interface.