Patent US6356946B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6356946B1 Expired / Lapsed US ⏱️ 0.0 years remaining

System and method for serializing Java objects in a tubular data stream

Assignee: Sybase Inc
•
Filing: 1999-01-19
•
Granted: 2002-03-12
•
Expires: 2019-01-19
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 David Lyndon Clegg
  • 👤 Adarsh Ratan Pannu

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-01 13:08
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/465; G06F9/44; G06F9/448; G06F9/4488; G06F9/4493; Y; Y10; Y10S; Y10S707/00; Y10S707/99941; Y10S707/99944

Claims Analysis

Total Claims: 54
Claim 1
Independent Claim 90 words
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.
Claim 2
Dependent Claim 90 words
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.
Claim 3
Dependent Claim 30 words
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.
Claim 4
Dependent Claim 23 words
The system of claim 1 , further comprising: additional clients, each of which may request that the executable object be streamed to it.
Claim 5
Dependent Claim 30 words
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.
Claim 6
Dependent Claim 161 words
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.
Claim 7
Dependent Claim 161 words
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.
Claim 8
Dependent Claim 15 words
The system of claim 5 , wherein said particular executable object is a Java object.
Claim 9
Dependent Claim 19 words
The system of claim 6 , wherein said Java object includes instantiated Java class data members and class methods.
Claim 10
Dependent Claim 15 words
The system of claim 5 , wherein said database table comprises a relational database table.
Claim 11
Dependent Claim 17 words
The system of claim 5 , wherein said request comprises an SQL query received from the client.
Claim 12
Dependent Claim 33 words
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.
Claim 13
Dependent Claim 28 words
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.
Claim 14
Dependent Claim 33 words
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.
Claim 15
Dependent Claim 18 words
The system of claim 5 , wherein said client comprises a database application executing at a client machine.
Claim 16
Dependent Claim 22 words
The system of claim 5 , wherein said protocol supports streaming of individual data items which are themselves streams of indeterminate length.
Claim 17
Dependent Claim 16 words
The system of claim 5 , wherein said protocol includes support for ANSI SQL-92 data types.
Claim 18
Dependent Claim 13 words
The system of claim 5 , wherein said protocol comprises a token-based protocol.
Claim 19
Dependent Claim 17 words
The system of claim 5 , wherein said protocol operates in conjunction with a connection-oriented transport service.
Claim 20
Dependent Claim 22 words
The system of claim 5 , wherein said executable object comprises a Java object stored as column data in the database table.
Claim 21
Dependent Claim 24 words
The system of claim 5 , wherein the particular executable object is retrieved from the stream as an output parameter of a stored procedure.
Claim 22
Dependent Claim 26 words
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.
Claim 23
Dependent Claim 166 words
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.
Claim 24
Dependent Claim 166 words
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.
Claim 25
Dependent Claim 183 words
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.
Claim 26
Dependent Claim 183 words
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.
Claim 27
Dependent Claim 180 words
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.
Claim 28
Dependent Claim 180 words
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.
Claim 29
Dependent Claim 28 words
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.
Claim 30
Dependent Claim 180 words
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.
Claim 31
Dependent Claim 180 words
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.
Claim 32
Dependent Claim 15 words
The method of claim 25 , wherein said particular executable object is a Java object.
Claim 33
Dependent Claim 19 words
The method of claim 26 , wherein said Java object includes instantiated Java class data members and class methods.
Claim 34
Dependent Claim 15 words
The method of claim 25 , wherein said database table comprises a relational database table.
Claim 35
Dependent Claim 17 words
The method of claim 25 , wherein said request comprises an SQL query received from the client.
Claim 36
Dependent Claim 32 words
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.
Claim 37
Dependent Claim 28 words
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.
Claim 38
Dependent Claim 32 words
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.
Claim 39
Dependent Claim 18 words
The method of claim 25 , wherein said client comprises a database application executing at a client machine.
Claim 40
Dependent Claim 22 words
The method of claim 25 , wherein said protocol supports streaming of individual data items which are themselves streams of indeterminate length.
Claim 41
Dependent Claim 16 words
The method of claim 25 , wherein said protocol includes support for ANSI SQL-92 data types.
Claim 42
Dependent Claim 13 words
The method of claim 25 , wherein said protocol comprises a token-based protocol.
Claim 43
Dependent Claim 17 words
The method of claim 25 , wherein said protocol operates in conjunction with a connection-oriented transport service.
Claim 44
Dependent Claim 22 words
The method of claim 25 , wherein said executable object comprises a Java object stored as column data in the database table.
Claim 45
Dependent Claim 22 words
The method of claim 25 , further comprising: retrieving the particular executable object alternatively as an output parameter of a stored procedure.
Claim 46
Dependent Claim 26 words
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.
Claim 47
Dependent Claim 190 words
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.
Claim 48
Dependent Claim 190 words
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.
Claim 49
Dependent Claim 202 words
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.
Claim 50
Dependent Claim 202 words
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.
Claim 51
Dependent Claim 199 words
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.
Claim 52
Dependent Claim 199 words
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.
Claim 53
Dependent Claim 28 words
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.
Claim 54
Dependent Claim 30 words
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.

References Cited (Backward Citations)

US4249241A Cited
US4809168A Cited
US5913028A Cited
US5944781A Cited
US5857197A Cited
US6266666B1 Cited
US6128621A Cited
US6125400A Cited
US6035303A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-03-11 2005-09-10 2006-03-12 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-03-11 2009-09-10 2010-03-12 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-03-11 2013-09-10 2014-03-12 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag