Exchange of data between components of distributed software having different versions of software
First Claim
1. A method for updating a software component in a distributed software system comprising a first software component and one or more second software components, said method comprising updating said first software component with a new version of software substantially compatible with the functionality of a non-updated version(s) of said one or more second software components but having data structures incompatible with said non-updated version(s) of said one or more second software components, providing said updated software version with a data exchange metadata description containing information on definitions of data structures to be used in a serialized data exchange, delivering said metadata description with said new version of said software component.
1 Assignment
0 Petitions
Accused Products
Abstract
The present invention relates to exchanging data between software components in a distributed software system comprising a first software component and a second software component. A first data exchange metadata description is provided that contains information on data structures used in a serialized data exchange by the first software component. A dedicated second data exchange metadata description is provided for each older version of the second software component, each second data exchange metadata description containing information on data structures to be used in a serialized data exchange by the second software component. As a consequence, the first software component having a newer version is able to exchange data with any of the older second software components by using the respective data exchange metadata in data serialization and deserialization.
-
Citations
32 Claims
-
1. A method for updating a software component in a distributed software system comprising a first software component and one or more second software components, said method comprising
updating said first software component with a new version of software substantially compatible with the functionality of a non-updated version(s) of said one or more second software components but having data structures incompatible with said non-updated version(s) of said one or more second software components, providing said updated software version with a data exchange metadata description containing information on definitions of data structures to be used in a serialized data exchange, delivering said metadata description with said new version of said software component.
-
5. A method for updating a software component in a distributed software system comprising a first software component and one or more second software components, said method comprising
updating said first software component with a new version of software substantially compatible with the functionality of a non-updated version(s) of said one or more second software components but having data structures incompatible with said non-updated version(s) of said one or more second software components, providing said updated software version with a data exchange metadata description containing information on data structures to be used in a serialized data exchange, providing a dedicated data exchange metadata description for each version of said second software component that should be compatible, each said data exchange metadata description containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, delivering said data exchange metadata descriptions with said new version of said software component.
-
7. A method for updating a software component in a distributed software system comprising a first software component and one or more second software components installed apart from each other, said method comprising
updating said first software component with a new version of software substantially compatible with the functionality of a non-updated version(s) of said one or more second software components but having data structures incompatible with said non-updated version(s) of said one or more second software components, providing said updated software version with a data exchange metadata description containing information on data structures to be used in a serialized data exchange, providing a dedicated data exchange metadata description for each version of said second software component that should be compatible, each said data exchange metadata description containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, verifying backward compatibility for at least one pair of said new version of said first software component and a previous version of said second software component on the basis of said metadata descriptions of these versions.
-
8. A method for updating a software component in a distributed software system comprising a first software component and one or more second software components installed apart from each other, said method comprising
updating said first software component with a new version of software substantially compatible with the functionality of a non-updated version(s) of said one or more second software components but having data structures incompatible with said non-updated version(s) of said one or more second software components, providing said updated software version with a data exchange metadata description containing information on data structures to be used in a serialized data exchange, providing a dedicated data exchange metadata description for each version of said second software component that should be compatible, each said data exchange metadata description containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, verifying backward compatibility and creating a serialization scheme for at least one pair of said new version of said first software component and a previous version of said second software component on the basis of said metadata descriptions of these versions, said serialization scheme containing information needed in said new version of said first software component for the serialization of data to and the deserialization of data from said respective previous version of said second software component, delivering said at least one serialization scheme with said new version of said software component.
-
10. A method for exchanging data between software components in a distributed software system comprising a first software component and a second software component, said method comprising
providing said first software component with a first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said first software component, providing said first software component with a dedicated second data exchange metadata description for any older version of said second software component that should be compatible, each said data exchange metadata description containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, said first software component identifying a version of a second software component, said first software component selecting one of said second data exchange metadata descriptions corresponding to said identified version of said second software component, said first software component serializing data items using data structures according to said first data exchange metadata description and said selected second data exchange metadata description, and sending said serialized data items to said second software component, said first software component receiving serialized data items from said second software component and deserializing said data items using data structures according to said first data exchange metadata description and said selected second data exchange metadata description.
-
11. A method for exchanging data between software components in a distributed software system comprising a server software component and client software components, said method comprising
providing said server software component with a first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said server software component, said server software component identifying a version of a client software component, said server software component selecting according to said identified version of said client component a second data exchange metadata description, said second data exchange metadata description containing information on data structures for said identified version of said client software component that are incompatible with the data structures of the version of said server software component, said server software component serializing data items on the basis of said first data exchange metadata description and said selected second data exchange metadata description, and sending said serialized data items to said client software component, said server software component receiving serialized data items from said client software component and deserializing said data items on the basis of said first data exchange metadata description and said selected second data exchange metadata description.
-
17. A method for exchanging data between software components in a distributed software system comprising a first software component and a second software component, said method comprising
storing in said first software component a serialization scheme for at least one pair of said new version of said first software component and an older version of said second software component, said serialization scheme containing information needed in said new version of said first software component for the serialization of data to and the deserialization of data from said respective previous version of said second software component, and said serialization scheme being created on the basis of a first data exchange metadata description and a second data exchange metadata description, said first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said first software component, and said second data exchange metadata description of said older version of said second software component containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, said first software component identifying a version of a second software component, said first software component selecting serialization scheme corresponding to said identified version of said second software component, said first software component serializing data items on the basis of said selected serialization scheme, said first software component receiving serialized data items from said second software component and deserializing said data items on the basis of said selected serialization scheme.
-
18. A distributed computer system, comprising
a first software component, one or more second software components exchanging serialized data with said first software component, at least one of said second software components being an older version substantially compatible with the functionality of said first software component but having incompatible data structures, said first software component having a first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said first software component, said first software component having a dedicated second data exchange metadata description for at least one older version of said second software component, each second data exchange metadata description containing information on data structures to be used in a serialized data exchange by the respective version of said second software component.
-
21. A client-server computer system, comprising
a server software component, one or more client software components exchanging serialized data with said server software component, said server software component having a first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said server software component, said server software component having a dedicated second data exchange metadata description for at least one older version of said client software component, each second data exchange metadata description containing information on data structures to be used in a serialized data exchange by the respective version of said second software component.
-
25. A server computer for a client-server computer system, comprising means for exchanging data with client software components, said means further comprising
means for storing a first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said server software component, means for identifying a version of a client software component, means for selecting according to said identified version of said client component one of second data exchange metadata descriptions, said selected second data exchange metadata description containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, means for serializing data items on the basis of said first data exchange metadata description and said selected second data exchange metadata description, and sending said serialized data items to said client software component, means for receiving serialized data items from said client software component and deserializing said data items on the basis of said first data exchange metadata description and said selected second data exchange metadata description.
-
26. A computer for a distributed software system comprising a first software component and at least one second software component, said computer comprising said first software component and means for exchanging data with said at least one second software component, said means further comprising
means for storing a serialization scheme for at least one pair of said new version of said first software component and an older version of said second software component, said serialization scheme containing information needed in said new version of said first software component for the serialization of data to and the deserialization of data from said previous version of said second software component, and said serialization scheme being created on the basis of a first data exchange metadata description and a second data exchange metadata description, said first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said first software component, and said second data exchange metadata description of said older version of said second software component containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, means for identifying a version of a second software component, means for selecting one serialization scheme corresponding to said identified version of said second software component, means for serializing data items on the basis of said selected serialization scheme, means for receiving serialized data items from said second software component and deserializing said data items on the basis of said selected serialization scheme.
-
27. A server computer program comprising a program code configured to perform the following routines when run on a computer,
identifying a version of a client software component, selecting according to said identified version of said client software component of first data exchange metadata descriptions, said selected first data exchange metadata description containing information on data structures to be used in a serialized data exchange by the identified version of said client software component, serializing data items using data structures according to said selected first data exchange metadata description and a second data exchange metadata description containing information on data structures to be used in a serialized data exchange by said server software component, sending said serialized data items to said client software component, receiving serialized data items from said client software component and deserializing said data items using data structures according to said selected first data exchange metadata description and a second data exchange metadata description.
-
31. A server computer program comprising a program code configured to perform the following routines when run on a computer,
storing a serialization scheme for at least one pair of said new version of said first software component and an older version of said second software component, said serialization scheme containing information needed in said new version of said first software component for the serialization of data to and the deserialization of data from said respective previous version of said second software component, and said serialization scheme being created on the basis of a first data exchange metadata description and a second data exchange metadata description, said first data exchange metadata description containing information on data structures to be used in a serialized data exchange by said first software component, and said second data exchange metadata description of said older version of said second software component containing information on data structures to be used in a serialized data exchange by the respective version of said second software component, identifying a version of a second software component, selecting a serialization scheme corresponding to said identified version of said second software component, serializing data items on the basis of said selected serialization scheme, receiving serialized data items from said second software component and deserializing said data items on the basis of said selected serialization scheme.
Specification