| Protocol for communication of data structures -> Monitor Keywords |
|
Protocol for communication of data structuresRelated Patent Categories: Data Processing: Database And File Management Or Data Structures, Database Schema Or Data Structure, Generating Database Or Data Structure (e.g., Via User Interface)The Patent Description & Claims data below is from USPTO Patent Application 20070179964. Brief Patent Description - Full Patent Description - Patent Application Claims PARTIAL WAIVER OF COPYRIGHT [0001] All of the material in this patent application is subject to copyright protection under the copyright laws of the United States and of other countries. As of the first effective filing date of the present application, this material is protected as unpublished material. However, permission to copy this material is hereby granted to the extent that the copyright owner has no objection to the facsimile reproduction by anyone of the patent documentation or patent disclosure, as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. FIELD OF THE INVENTION [0002] This invention relates generally to computer systems, and more specifically to protocols for communicating data structures between applications. DESCRIPTION OF RELATED ART [0003] Communicating processes in software systems require sharing of data and often communicate by exchanging messages containing the necessary data. Historically, message-passing processes spend a significant computational effort marshalling the data (i.e., gathering the relevant parts of the data from the memory of the sending program, and assembling them into a canonical serial format or wire protocol). This serialized data is then transmitted to the receiver process (for example, by writing it to a file or by streaming it over a network), which then unmarshals the message into the desired format. [0004] Some programming languages provide facilities to automate this serialization process. Typically, a serialization library uses class meta-data, which is provided by the programming language's runtime-system. This meta-data describes the structure of the types and data structures in the system, and enables the serialization mechanism to automatically marshal and unmarshal program data structures. The whole process may be completely transparent to the user, encapsulated by a single procedure call (for example, send(x) in the sender, y:=recv( ) in the receiver). Although this automatic facility reduces programmer effort, it may introduce significant computational work if the serialized data structure is large. [0005] As an optimization, some object-oriented programming languages allow the user to specify that object-graph edges originating at certain object fields are not to be traversed during marshalling. In object-oriented programming languages, a data structure will often be represented as a graph of objects, with each object in the data structure containing fields that hold pointers or references to other objects in the data structure. For some data structures, this optimization can significantly reduce the size of the serialized format. Reachable fields marked by the user are not considered part of the persistent state of the object, but may be used to hold derived or cached values, for example. [0006] For example, the Java standard library contains a serialization mechanism in the classes java.util.ObjectOutputStream and java.util.ObjectInputStream. The programmer may label fields of Java classes as transient to prevent them from being serialized. [0007] However, there are numerous limitations with this approach. One fundamental problem is that the sender process may not know which data the receiver process requires, and so the sender must conservatively send all data that might be required by the receiver. However, in many cases, if the sender had more knowledge of the receiver's requirements, it could marshal and send less data and thus enjoy better performance. [0008] Thus, it would be highly desirable to provide a method whereby the sender could acquire information on the data required by the receiver. It would further be highly desirable to acquire this information dynamically at run-time, for cases where the receiver's data requirements cannot be determined beforehand. SUMMARY OF THE INVENTION [0009] One embodiment of the present invention provides a method for communicating information between applications. According to the method, a description of a data structure is sent from a first application to a second application, and there is received from the second application an identification of at least one portion of the data structure that is requested by the second application. The first application marshals a subset of the data structure consisting of the at least one portion that was identified, and the marshalled subset of the data structure is sent from the first application to the second application. [0010] Another embodiment of the present invention provides an information processing system that includes a first interface for sending a description of a data structure from a first application to a second application, a second interface for receiving from the second application an identification of at least one portion of the data structure that is requested by the second application, and a processor. The processor is programmed to marshal a subset of the data structure consisting of the at least one portion that was identified, and send to the second application the marshalled subset of the data structure. [0011] The foregoing and other features and advantages of the present invention will be apparent from the following more particular description of the preferred embodiments of the invention, as illustrated in the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS [0012] The subject matter, which is regarded as the invention, is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other features and also the advantages of the invention will be apparent from the following detailed description taken in conjunction with the accompanying drawings. [0013] FIG. 1 is block diagram showing a high-level network architecture according to one embodiment of the present invention. [0014] FIG. 2 is a block diagram depicting the marshalling process according to one embodiment of the present invention. [0015] FIG. 3 is a block diagram depicting the unmarshalling process according to one embodiment of the present invention. [0016] FIG. 4 is a flow chart depicting the control flow of the marshalling and unmarshalling processes according to one embodiment of the present invention. [0017] FIG. 5 is a block diagram showing a high-level network architecture having several server nodes according to another embodiment of the present invention. [0018] FIG. 6 is a high level block diagram showing an information processing system useful for implementing embodiments of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Continue reading... Full patent description for Protocol for communication of data structures Brief Patent Description - Full Patent Description - Patent Application Claims Click on the above for other options relating to this Protocol for communication of data structures patent application. ### 1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored. 3. Each week you receive an email with patent applications related to your keywords. Start now! - Receive info on patent apps like Protocol for communication of data structures or other areas of interest. ### Previous Patent Application: Designating data objects for analysis Next Patent Application: System and method for building decision trees in a database Industry Class: Data processing: database and file management or data structures ### FreshPatents.com Support Thank you for viewing the Protocol for communication of data structures patent info. IP-related news and info Results in 0.77367 seconds Other interesting Feshpatents.com categories: Medical: Surgery , Surgery(2) , Surgery(3) , Drug , Drug(2) , Prosthesis , Dentistry |
||