Patent ID: 6976263
Filing Date: 2005-12-13
Classification: G06F

Abstract:
1. A method for communicating across a heterogeneous network including a sender and a receiver with dissimilar data structure definitions, comprising: when the sender is an up-level sender and the receiver is a down-level receiver, if the up-level definition of a structure has more data elements than the down-level definition of the structure, then prefixing an encoded data structure with a length value that reflects a size of the encoded data structure and decoding the encoded data structure in which the down-level receiver reads the length value and decodes the encoded data structure according to the receiver's data definition and upon completion of decoding, the receiver determining an amount of the encoded data structure that was decoded and skipping a remainder of the encoded data structure according to the length value; when the sender is a down-level sender and the receiver is an up-level receiver, if the up-level definition of a structure has data elements than the down-level definition of the structure, for built-in type data fields, automatically assigning a default value to any field for which the received data has provided no value, and, for derived type data fields, calling an initialization routine which assigns a default value to any built-in type data field or calls the initialization routine for a derived type data field; and when the sender is an up-level server and the receiver is a down-level client, if the up-level definition of a structure requires more data elements than the down-level definition of data elements, then following a set of predetermined rules which include extending only data structures which are passed from the up-level server to the down-level client; ensuring that the down-level client's ignorance of extended data causes no ill effects in that client's operational behavior; allowing down-level clients to interact with up-level servers and disallowing up-level clients from interacting with down-level servers; and, in cases where extensions are needed for data structures passed from a client to a server, defining a new data structure that includes both old data fields and new data fields.