Version-adaptive serialization and deserialization of program objects in an object-oriented environment
First Claim
1. A method for serializing a program object that is an instantiation of an object class, wherein the method comprises:
- obtaining a version identification of the program object; and
generating serialized information conveying a representation of the program object that is determined as a function of the object class and the version identification.
2 Assignments
0 Petitions
Accused Products
Abstract
Known techniques for generating serial information to represent program objects (serialization) and to recreate program objects from the serial information (deserialization) often impose limitations on the changes that may be made to the class structure or definition of the program object. Many changes to the class structure introduce incompatibilities that prevent a one version of a program object from being recovered from serial information that represent a different version of the program object. Techniques are disclosed that overcome this difficulty by allowing the serialization and deserialization processes to be adaptive according to the version of the program object.
62 Citations
52 Claims
-
1. A method for serializing a program object that is an instantiation of an object class, wherein the method comprises:
-
obtaining a version identification of the program object; and
generating serialized information conveying a representation of the program object that is determined as a function of the object class and the version identification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
identifying one or more properties of the program object to be serialized, wherein the properties are identified according to the object class and the program object version identification;
ascertaining a value for each respective property of the program object to be serialized; and
generating the representation of the object to include representations of a name of the object class, the version identification of the program object, and the value of each respective property to be serialized.
-
-
3. A method according to claim 2 wherein the one or more properties of the program object to be serialized are identified by invoking a procedure within an object-descriptor class that describes how instantiations of the object class are to be serialized, wherein the procedure is responsive to the version identification of the program object.
-
4. A method according to claim 3 wherein the object-descriptor class has a name that is derived from the name of the object class.
-
5. A method according to claim 3 wherein the program object and the object class conform to a JavaBean specification of a Java programming language.
-
6. A method according to claim 2 wherein the one or more properties of the program object to be serialized are identified by invoking a procedure that returns a list of property names that varies according to the object class and the version identification.
-
7. A method according to claim 6 wherein the procedure is a method of an object that is an instance of an object-descriptor class defining serializable characteristics of the program object to be serialized.
-
8. A method according to claim 2 wherein:
-
the version identification is obtained by invoking a method of the program object;
the one or more properties of the program object to be serialized are identified by invoking a method of an object-descriptor object that is a function of the object class and the program object version identification; and
the serial information is generated by invoking a method of an output-stream object.
-
-
9. An apparatus for serializing a program object that is an instantiation of an object class, wherein the apparatus comprises:
-
random access memory; and
processing circuitry coupled to the random access memory, wherein the processing circuitry obtains a version identification of the program object stored in the random access memory and generates serialized information conveying a representation of the program object that is determined as a function of the object class and the version identification. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
identifying one or more properties of the program object to be serialized, wherein the properties are identified according to the object class and the program object version identification;
ascertaining a value for each respective property of the program object to be serialized; and
generating the representation of the object to include representations of a name of the object class, the version identification of the program object, and the value of each respective property to be serialized.
-
-
11. An apparatus according to claim 10 wherein the one or more properties of the program object to be serialized are identified by invoking a procedure within an object-descriptor interface that describes how instantiations of the object class are to be serialized, wherein the procedure is responsive to the version identification of the program object.
-
12. An apparatus according to claim 11 wherein the object-descriptor class has a name that is derived from the name of the object class.
-
13. An apparatus according to claim 11 wherein the program object and the object class conform to a JavaBean specification of a Java programming language.
-
14. An apparatus according to claim 10 wherein the one or more properties of the program object to be serialized are identified by invoking a procedure that returns a list of property names that varies according to the object class and the version identification.
-
15. An apparatus according to claim 14 wherein the procedure is a method of an object that is an instance of an object-descriptor class defining serializable characteristics of the program object to be serialized.
-
16. An apparatus according to claim 10 wherein:
-
the version identification is obtained by invoking a method of the program object;
the one or more properties of the program object to be serialized are identified by invoking a method of an object-descriptor object that is a function of the object class and the program object version identification; and
the serial information is generated by invoking a method of an output-stream object.
-
-
17. A medium readable by a device and conveying a program of instructions for execution by the device to perform a method for serializing a program object that is an instantiation of an object class, wherein the method comprises:
-
obtaining a version identification of the program object; and
generating serialized information conveying a representation of the program object that is determined as a function of the object class and the version identification. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
identifying one or more properties of the program object to be serialized, wherein the properties are identified according to the object class and the program object version identification;
ascertaining a value for each respective property of the program object to be serialized; and
generating the representation of the object to include representations of a name of the object class, the version identification of the program object, and the value of each respective property to be serialized.
-
-
19. A medium according to claim 18 wherein the one or more properties of the program object to be serialized are identified by invoking a procedure within an object-descriptor class that describes how instantiations of the object class are to be serialized, wherein the procedure is responsive to the version identification of the, program object.
-
20. A medium according to claim 19 wherein the object-descriptor class has a name that is derived from the name of the object class.
-
21. A medium according to claim 19 wherein the program object and the object class conform to a JavaBean specification of a Java programming language.
-
22. A medium according to claim 18 wherein the one or more properties of the program object to be serialized are identified by invoking a procedure that returns a list of property names that varies according to the object class and the version identification.
-
23. A medium according to claim 22 wherein the procedure is a method of an object that is an instance of an object-descriptor class defining serializable characteristics of the program object to be serialized.
-
24. A medium according to claim 18 wherein:
-
the version identification is obtained by invoking a method of the program object;
the one or more properties of the program object to be serialized are identified by invoking a method of an object-descriptor object that is a function of the object class and the program object version identification; and
the serial information is generated by invoking a method of an output-stream object.
-
-
25. A method for deserializing serialized information conveying a representation of a program object that is an instantiation of an object class, wherein the method comprises:
-
obtaining from the serialized information the object class and a version identification of the program object; and
establishing values from the serialized information for one or more properties of the object, wherein the values for the one or more properties are established as a function of the object class and the version identification. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
identifying one or more properties of the program object to be deserialized, wherein the properties are identified according to the object class and the program object version identification;
obtaining values from the serialized information for one or more respective properties of the program object to be deserialized; and
establishing the values for the one or more properties of the program object in response to the values obtained from the serialized information.
-
-
27. A method according to claim 26 wherein the one or more properties to be deserialized are identified by invoking a procedure within an object-descriptor class that describes how instantiations of the object class are to be deserialized, wherein the procedure is responsive to the version identification of the program object.
-
28. A method according to claim 27 wherein the object-descriptor class has a name that is derived from the name of the object class.
-
29. A method according to claim 27 wherein the program object and the object class conform to a JavaBean specification of a Java programming language.
-
30. A method according to claim 26 wherein the one or more properties of the program object to be deserialized are identified by invoking a procedure that returns a list of property names that varies according to the object class and the version identification.
-
31. A method according to claim 30 wherein the procedure is a method of an object that is an instance of an object-descriptor class defining deserializable characteristics of the program object to be deserialized.
-
32. A method according to claim 26 wherein:
-
the object class and the version identification are obtained by invoking a method of an input-stream object; and
the one or more properties of the program object to be deserialized are identified by invoking a method of an object-descriptor object that is a function of the object class and the program object version identification.
-
-
33. An apparatus for deserializing serialized information conveying a representation of a program object that is an instantiation of an object class, wherein the apparatus comprises:
-
random access memory; and
processing circuitry coupled to the random access memory, wherein the processing circuitry obtains from the serialized information the object class and a version identification of the program object, and establishes in the random access memory values from the serialized information for one or more properties of the object, wherein the values for the one or more properties are established as a function of the object class and the version identification. - View Dependent Claims (34, 35, 36, 37, 38, 39, 40)
identifying one or more properties of the program object to be deserialized, wherein the properties are identified according to the object class and the program object version identification;
obtaining values from the serialized information for one or more respective properties of the program object to be deserialized; and
establishing the values for the one or more properties of the program object in response to the values obtained from the serialized information.
-
-
35. An apparatus according to claim 34 wherein the one or more properties to be deserialized are identified by invoking a procedure within an object-descriptor class that describes how instantiations of the object class are to be deserialized, wherein the procedure is responsive to the version identification of the program object.
-
36. An apparatus according to claim 35 wherein the object-descriptor class has a name that is derived from the name of the object class.
-
37. An apparatus according to claim 35 wherein the program object and the object class conform to a JavaBean specification of a Java programming language.
-
38. An apparatus according to claim 34 wherein the one or more properties of the program object to be deserialized are identified by invoking a procedure that returns a list of property names that varies according to the object class and the version identification.
-
39. An apparatus according to claim 38 wherein the procedure is a method of an object that is an instance of an object-descriptor class defining deserializable characteristics of the program object to be deserialized.
-
40. An apparatus according to claim 34 wherein:
-
the object class and the version identification are obtained by invoking a method of an input-stream object; and
the one or more properties of the program object to be deserialized are identified by invoking a method of an object-descriptor object that is a function of the object class and the program object version identification.
-
-
41. A medium readable by a device and conveying a program of instructions for execution by the device to perform a method for deserializing serialized information conveying a representation of a program object that is an instantiation of an object class, wherein the method comprises:
-
obtaining from the serialized information the object class and a version identification of the program object; and
establishing values from the serialized information for one or more properties of the object, wherein the values for the one or more properties are established as a function of the object class and the version identification. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48)
identifying one or more properties of the program object to be deserialized, wherein the properties are identified according to the object class and the program object version identification;
obtaining values from the serialized information for one or more respective properties of the program object to be deserialized; and
establishing the values for the one or more properties of the program object in response to the values obtained from the serialized information.
-
-
43. A medium according to claim 42 wherein the one or more properties to be deserialized are identified by invoking a procedure within an object-descriptor class that describes how instantiations of the object class are to be deserialized, wherein the procedure is responsive to the version identification of the program object.
-
44. A medium according to claim 43 wherein the object-descriptor class has a name that is derived from the name of the object class.
-
45. A medium according to claim 43 wherein the program object and the object class conform to a JavaBean specification of a Java programming language.
-
46. A medium according to claim 42 wherein the one or more properties of the program object to be deserialized are identified by invoking a procedure that returns a list of property names that varies according to the object class and the version identification.
-
47. A medium according to claim 46 wherein the procedure is a method of an object that is an instance of an object-descriptor class defining deserializable characteristics of the program object to be deserialized.
-
48. A medium according to claim 42 wherein:
-
the object class and the version identification are obtained by invoking a method of an input-stream object; and
the one or more properties of the program object to be deserialized are identified by invoking a method of an object-descriptor object that is a function of the object class and the program object version identification.
-
-
49. A medium readable by a device and conveying one or more programs of instructions for execution by the device to perform a method for serializing or for deserializing a program object that is an instantiation of a program class, wherein the one or more programs of instructions comprise:
-
a definition of the object class that includes a method for obtaining a version identification of a respective program object; and
a definition of an object-descriptor class that includes a method for identifying one or more properties of the respective program object that are to be serialized or deserialized. - View Dependent Claims (50, 51, 52)
-
Specification