Methods and apparatus providing backward compatibility for applications that access a changing object model
First Claim
1. A method for processing client requests supporting a plurality of object models, the method comprising:
- receiving a former client request requiring access to a former object defined by a former object model;
mapping a former object required for access by the former client request to a corresponding current object existing within a current object model;
copying current object data within the current object of the current object model to former object data within an instantiation of the former object, the copying further comprising;
copying current object data values stored within current data fields of an instantiation of the current object to former data values within former data fields of an instantiation of the former object, the copying current object data values includes;
identifying, for each current field in the current object that maps to a corresponding former field in the former object, if a field adapter exists for converting current field data in the instantiation of the current object to former field data for use in the instantiation of the former object, andi) if an object adapter exists, operating the adapter to convert the current field data in the instantiation of the current object to former field data for use in the instantiation of the former object; and
ii) if no object adapter exists, copying the current field data in the instantiation of the current object for use as former field data for use in the instantiation of the former object; and
processing the former client request using the instantiation of the former object to satisfy the former client request.
9 Assignments
0 Petitions
Accused Products
Abstract
An object adapter within a server application processes client requests supporting a plurality of object models by receiving a former client request requiring access to a former object defined by a former object model. The server application maps any former objects required for access by the former client request to corresponding current objects existing within a current object model and then copies current object data within the current objects of the current object model to former object data within an instantiations of the former objects. The server application can then process the former client request using the instantiation of the former object to satisfy the former client request. The system provides compatibility to former clients and allows them to remain in service when an object model evolves.
28 Citations
26 Claims
-
1. A method for processing client requests supporting a plurality of object models, the method comprising:
-
receiving a former client request requiring access to a former object defined by a former object model; mapping a former object required for access by the former client request to a corresponding current object existing within a current object model; copying current object data within the current object of the current object model to former object data within an instantiation of the former object, the copying further comprising; copying current object data values stored within current data fields of an instantiation of the current object to former data values within former data fields of an instantiation of the former object, the copying current object data values includes; identifying, for each current field in the current object that maps to a corresponding former field in the former object, if a field adapter exists for converting current field data in the instantiation of the current object to former field data for use in the instantiation of the former object, and i) if an object adapter exists, operating the adapter to convert the current field data in the instantiation of the current object to former field data for use in the instantiation of the former object; and ii) if no object adapter exists, copying the current field data in the instantiation of the current object for use as former field data for use in the instantiation of the former object; and processing the former client request using the instantiation of the former object to satisfy the former client request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer system comprising:
-
a memory; a processor; a communications interface; an interconnection mechanism coupling the memory, the processor and the communications interface; wherein the memory is encoded with a server application including an object adapter that when performed on the processor, is operable to process client requests supporting a plurality of object models by causing the computer system to perform the operations of; receiving, via the communications interface into the memory, a former client request requiring access to a former object defined by a former object model; mapping a former object required for access by the former client request to a corresponding current object existing within a current object model; copying current object data within the current object of the current object model to former object data within an instantiation of the former object, the copying further comprising; copying current object data values stored within current data fields of an instantiation of the current object to former data values within former data fields of an instantiation of the former object, the copying current object data values includes; identifying, for each current field in the current object that maps to a corresponding former field in the former object, if a field adapter exists for converting current field data in the instantiation of the current object to former field data for use in the instantiation of the former object, and i) if an object adapter exists, operating the adapter to convert the current field data in the instantiation of the current object to former field data for use in the instantiation of the former object; and ii) if no object adapter exists, copying the current field data in the instantiation of the current object for use as former field data for use in the instantiation of the former object; and processing the former client request using the instantiation of the former object to satisfy the former client request. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer program product having a computer-readable medium including computer program logic encoded thereon that, when executed on a computer system, processes client requests supporting a plurality of object models by causing the computer system to perform the operations of:
-
receiving a former client request requiring access to a former object defined by a former object model; mapping a former object required for access by the former client request to a corresponding current object existing within a current object model; copying current object data within the current object of the current object model to former object data within an instantiation of the former object, the copying further comprising; copying current object data values stored within current data fields of an instantiation of the current object to former data values within former data fields of an instantiation of the former object, the copying current object data values includes; identifying, for each current field in the current object that maps to a corresponding former field in the former object, if a field adapter exists for converting current field data in the instantiation of the current object to former field data for use in the instantiation of the former object, and i) if an object adapter exists, operating the adapter to convert the current field data in the instantiation of the current object to former field data for use in the instantiation of the former object; and ii) if no object adapter exists, copying the current field data in the instantiation of the current object for use as former field data for use in the instantiation of the former object; and processing the former client request using the instantiation of the former object to satisfy the former client request.
-
-
26. A method for processing client requests supporting a plurality of object models, the method comprising:
-
receiving a plurality of requests from former client versions requiring access to respective former objects defined by respective former object models, wherein the object models are shared object models; exposing former service interfaces for use by former client versions for receipt of requests from former client versions; mapping former objects, required for access by the requests from former client versions, to a corresponding current object existing within a current object model, wherein the current object model is a shared model, and wherein the current object model is not directly backwards compatible with the requests from former client versions; wherein mapping former objects further comprises indicating current objects that correspond to former objects defined in a former object definition file, and data within the current objects that correspond to data in the former objects; copying current object data from fields of the current object of the current object model to former object data within an instantiation of the former objects, the copying further comprising; copying current object data values stored within current data fields of an instantiation of the current object to former data values within former data fields of an instantiation of the former object, the copying current object data values includes; identifying, for each current field in the current object that maps to a corresponding former field in the former object, if a field adapter exists for converting current field data in the instantiation of the current object to former field data for use in the instantiation of the former object, and i) if an object adapter exists, operating the adapter to convert the current field data in the instantiation of the current object to former field data for use in the instantiation of the former object; and ii) if no object adapter exists, copying the current field data in the instantiation of the current object for use as former field data for use in the instantiation of the former object; and processing the requests from former client versions using the instantiation of the former objects to satisfy the former client requests, thereby providing backwards compatibility.
-
Specification