System and method for serializing Java objects in a tubular data stream
First Claim
1. A distributed computing system comprising:
- a client in communication with a server;
an executable object stored as column data in a database table residing on the server;
means for generating a request at the client for retrieving the executable object, said request including a request to transport to the client the executable object by streaming the executable object to the client;
means, responsive to said request, for streaming said executable object from the server to the client; and
means for extracting said executable object from the stream at the client.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed (e.g., client/server) computing environment is described which implements protocol methodology simplifying the use of objects in distributed applications. In particular, the methodology facilitates streaming to clients executable objects (e.g., Java objects) stored and managed remotely (e.g., objects stored and managed in relational databases), so that the objects may be executed or otherwise manipulated locally at the clients. The methodology is implemented by extending an existing streaming protocol to support a “chunked” datatype; within a data stream, the system can have individual data items which are themselves streams of indeterminate length. This streaming data type is an undifferentiated data type or simply a “BLOB” (i.e., binary large object). Using the BLOB extension, the system provides a set of BLOB subtypes which take advantage of existing object streaming mechanism (e.g., Java streaming) but convey additional information in the form of self-describing metadata. The metadata contains all necessary information on the BLOB data for clients and servers to narrow the BLOB data itself to the appropriate subtype and extract the semantically correct values from it. In this manner, the system may employ the streaming protocol to receive requests and input objects and, in response thereof, generate and send output objects and output result sets with rows and columns that may include objects in them, or send back output stored procedure parameters that may be objects.
220 Citations
45 Claims
-
1. A distributed computing system comprising:
-
a client in communication with a server;
an executable object stored as column data in a database table residing on the server;
means for generating a request at the client for retrieving the executable object, said request including a request to transport to the client the executable object by streaming the executable object to the client;
means, responsive to said request, for streaming said executable object from the server to the client; and
means for extracting said executable object from the stream at the client. - View Dependent Claims (2, 3, 4)
additional clients, each of which may request that the executable object be streamed to it.
-
-
4. The system of claim 1, further comprising:
additional servers, each of which maintains a database table storing one or more executable objects that may be streamed to the client.
-
5. An improved distributed computing system, said system including a computer network having a database server and a client capable of retrieving an executable object stored in a database table residing on the database server, said system including an improvement comprising:
-
a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of objects, and wherein said protocol conveys information sufficient for extracting an executable object from a stream; and
an interface for receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table and, in response to the request, streaming said particular executable object to the client, together with set information sufficient for extracting said particular executable object from the stream, wherein upon receipt of the stream at the client, a local copy of said particular executable object is recreated at the client. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. An improved distributed computing system, said system including a computer network having a database server and a client capable of retrieving an executable object stored in a database table residing on the database server, said system including an improvement comprising:
-
a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of objects, and wherein said protocol conveys information sufficient for extracting an executable object from a stream; and
an interface for receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table and, in response to the request, streaming said particular executable object to the client, together with set information sufficient for extracting said particular executable object from the stream, wherein upon receipt of the stream at the client, a local copy of said particular executable object is recreated at the client;
wherein said objects comprise binary-large-objects.
-
-
22. An improved distributed computing system, said system including a computer network having a database server and a client capable of retrieving an executable object stored in a database table residing on the database server, said system including an improvement comprising:
-
a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of objects, and wherein said protocol conveys information sufficient for extracting an executable object from a stream; and
an interface for receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table and, in response to the request, streaming said particular executable object to the client, together with set information sufficient for extracting said particular executable object from the stream, wherein upon receipt of the stream at the client, a local copy of said particular executable object is recreated at the client;
wherein said protocol further provides login capability that allows the client and database server to ascertain conditions appropriate for streaming executable objects.
-
-
23. An improved distributed computin system, said system including a computer network having a database server and a client capable of retrieving an executable object stored in a database table residing on the database server, said system including an improvement comprising:
-
a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of objects, and wherein said protocol conveys information sufficient for extracting an excutable object from a stream; and
an interface for receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table and, in response to the request, streaming said particular executable object to the client, together with set information sufficient for extracting said particular executable object from the stream, wherein upon receipt of the stream at the client, a local copy of said particular executable object is recreated at the client;
wherein said objects are strained using a streaming-chunked data type that may be employed to represent a serialized object. - View Dependent Claims (24)
-
-
25. In a system comprising a computer network having a database server and a client, an improved method for allowing a client to retrieve an executable object stored in a database table residing on a database server, the method comprising:
-
providing a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of an undifferentiated data type, and wherein said protocol provides subtypes providing metadata that conveys additional information for extracting an executable object from a stream;
receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table;
in response to the request, retrieving a result set from the database server corresponding to the requested particular executable object;
streaming said result set to the client, said result set including the particular executable object together with corresponding metadata; and
upon receipt of the result set at the client, using said metadata for recreating at the client a local copy of said particular executable object. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
retrieving the particular executable object alternatively as an output parameter of a stored procedure.
-
-
40. The method of claim 25, further comprising:
assigning the particular executable object received in the result set to a class variable declared at the client.
-
41. In a system comprising a computer network having a database server and a client, an improved method for allowing a client to retrieve an executable object stored in a database table residing on a database server, the method comprising:
-
providing a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of an undifferentiated data type, and wherein said protocol provides subtypes providing metadata that conveys additional information for extracting an executable object from a stream;
receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table;
in response to the request, retrieving a result set from the database server corresponding to the requested particular executable object;
streaming said result set to the client, said result set including the particular executable object together with corresponding metadata; and
upon receipt of the result set at the client, using said metadata for recreating at the client a local copy of said particular executable object;
wherein said undifferentiated data type comprises a binary-large-object data type.
-
-
42. In a system comprising a computer network having a database server and a client, an improved method for allowing a client to retrieve an executable object stored in a database table residing on a database server, the method comprising:
-
providing a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of an undifferentiated data type, and wherein said protocol provides subtypes providing metadata that conveys additional information for extracting an executable object from a stream;
receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table;
in response to the request, retrieving a result set from the database server corresponding to the requested particular executable object;
streaming said result set to the client, said result set including the particular executable object together with corresponding metadata; and
upon receipt of the result set at the client, using said metadata for recreating at the client a local copy of said particular executable object;
wherein said protocol further provides login capability that allows the client and database server to ascertain conditions appropriate for streaming executable objects.
-
-
43. In a system comprising a computer network having a database server and a client, an improved method for allowing a client to retrieve an executable object stored in a database table residing on a database server, the method comprising:
-
providing a streaming protocol for effecting communication between the client and the database server, wherein said protocol supports streaming of an undifferentiated data type, and wherein said protocol provides subtypes providing metadata that conveys additional information for extracting an executable object from a stream;
receiving from the client a request for retrieving information from the database server, said request including a request to transport to the client a particular executable object stored at the database table;
in response to the request, retrieving a result set from the database server corresponding to the requested particular executable object;
streaming said result set to the client, said result set including the particular executable object together with corresponding metadata; and
upon receipt of the result set at the client, using said metadata for recreating at the client a local copy of said particular executable object;
wherein said undifferentiated data type comprises a streaming-chunked data type that may be employed to represent a serialized object. - View Dependent Claims (44, 45)
-
Specification