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.
- 2. The system of claim 1, wherein said means for streaming includes means for streaming additional information allowing the executable object to be extracted by the client from a stream.
- 3. The system of claim 1, further comprising: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.
- 6. The system of claim 5, wherein said particular executable object is a Java object.
- 7. The system of claim 6, wherein said Java object includes instantiated Java class data members and class methods.
- 8. The system of claim 5, wherein said database table comprises a relational database table.
- 9. The system of claim 5, wherein said request comprises an SQL query received from the client.
- 10. The system of claim 5, wherein said additional information comprises row format tokens allowing the client to extract as row format data semantically correct values for the particular executable object being streamed.
- 11. The system of claim 10, wherein said row format tokens specify at least a column name and data type for conveying column format information to a client.
- 12. The system of claim 5, wherein said additional information comprises parameter format tokens allowing the client to extract as parameter format data semantically correct values for the particular executable object being streamed.
- 13. The system of claim 5, wherein said client comprises a database application executing at a client machine.
- 14. The system of claim 5, wherein said protocol supports streaming of individual data items which are themselves streams of indeterminate length.
- 15. The system of claim 5, wherein said protocol includes support for ANSI SQL-92 data types.
- 16. The system of claim 5, wherein said protocol comprises a token-based protocol.
- 17. The system of claim 5, wherein said protocol operates in conjunction with a connection-oriented transport service.
- 18. The system of claim 5, wherein said executable object comprises a Java object stored as column data in the database table.
- 19. The system of claim 5, wherein the particular executable object is retrieved from the stream as an output parameter of a stored procedure.
- 20. The system of claim 5, wherein the particular executable object received in the result set is assigned to a class variable declared at the client.
- 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.
- 24. The system of claim 23, wherein said streaming-chunked data type is associated with a blob type first indicating what type of serialized data comprises the streamed object.
- 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.
- 26. The method of claim 25, wherein said particular executable object is a Java object.
- 27. The method of claim 26, wherein said Java object includes instantiated Java class data members and class methods.
- 28. The method of claim 25, wherein said database table comprises a relational database table.
- 29. The method of claim 25, wherein said request comprises an SQL query received from the client.
- 30. The method of claim 25, wherein said metadata comprises row format tokens allowing the client to extract as row format data semantically correct values for the particular executable object being streamed.
- 31. The method of claim 30, wherein said row format tokens specify at least a column name and data type for conveying column format information to a client.
- 32. The method of claim 25, wherein said metadata comprises parameter format tokens allowing the client to extract as parameter format data semantically correct values for the particular executable object being streamed.
- 33. The method of claim 25, wherein said client comprises a database application executing at a client machine.
- 34. The method of claim 25, wherein said protocol supports streaming of individual data items which are themselves streams of indeterminate length.
- 35. The method of claim 25, wherein said protocol includes support for ANSI SQL-92 data types.
- 36. The method of claim 25, wherein said protocol comprises a token-based protocol.
- 37. The method of claim 25, wherein said protocol operates in conjunction with a connection-oriented transport service.
- 38. The method of claim 25, wherein said executable object comprises a Java object stored as column data in the database table.
- 39. The method of claim 25, further comprising: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.
- 44. The method of claim 43, wherein said streaming-chunked data type is associated with a blob type field indicating what type of serialized data comprises the streamed object.
- 45. The method of claim 43, wherein said streaming-chunked data type is associated with a serialization type field indicating how the streamed object is actually being represented in the stream.
RELATED APPLICATIONS
The present application claims the benefit of priority from and is related to the following commonly-owned U.S. provisional application: application serial No. 60/098,973, entitled SYSTEM AND METHOD FOR SERIALIZING JAVA OBJECTS IN A TABULAR DATA STREAM, filed Sep. 2, 1998. The disclosure of the foregoing application is hereby incorporated by reference in its entirety, including any appendices or attachments thereof, for all purposes.
US Referenced Citations (9)
Non-Patent Literature Citations (2)
| Entry |
| Date, C.J., An Introduction to Database Systems, Ch 1: Overview of Database Management, vol. 1, 5th Ed., 1990. |
| Dreystadt, J., “Storing Java in a Relational Database,” BYTE, Jun. 1998, pp. 61-62. |
Provisional Applications (1)
|
Number |
Date |
Country |
|
60/098973 |
Sep 1998 |
US |