Patent ID: 7770181

Claim:
At least one computer-readable storage medium having computer executable instructions that provide a method for transferring a computer-readable object across a remote boundary, the method comprising: negotiating with a remote entity to determine a negotiated list of known objects, the negotiating comprising: comparing a version of a first list of object types available to the remote entity with a version of a second list of object types available to a client that intends to transmit a computer-readable object to the remote entity; in an event that the version of the second list of object types is more recent than the version of the first list of object types, selecting the first list of object types to be the negotiated list of known objects; and in an event that the version of the first list of object types is more recent than the version of the second list of object types, selecting the second list of object types to be the negotiated list of known objects; decomposing the computer-readable object into multiple sub-components, including dividing the multiple sub-components into a hierarchy; creating a property bag in the hierarchy for holding information of the computer-readable object; in an event that a first sub-component of the multiple sub-components is included in the negotiated list of known objects, directly serializing the first sub-component without including any executable code of the first sub-component; in an event that a second sub-component of the multiple sub-components is not included in the negotiated list of known objects, creating a sub-property bag within the property bag for the second sub-component to form a hierarchical tree of property bags and recursively serializing properties of the second sub-component, wherein the hierarchical tree of property bags is limited by at least one of: specifying a maximum depth of the hierarchical tree of property bags, supporting only certain object types and forcing object types that are derived from the certain object types to conform to respective types; serializing the multiple sub-components and the property bag into a serialized package; and transmitting the serialized package to the remote entity.