Electrical computers and digital processing systems: multicomput – Computer-to-computer protocol implementing – Computer-to-computer data streaming
Reexamination Certificate
1996-07-11
2001-01-09
Dinh, Dung C. (Department: 2757)
Electrical computers and digital processing systems: multicomput
Computer-to-computer protocol implementing
Computer-to-computer data streaming
C709S241000, C707S793000, C713S100000
Reexamination Certificate
active
06173327
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to an object-oriented method and apparatus for delivering information within a computer or across a network of computers. More particularly, the invention relates to a distributed object system using a factory/stream model for delivering data and related context from one component in the computer or network to another.
2. Background
Distributed computing consists of two or more pieces of software sharing information with each other. These two pieces of software could be running on the same computer or on different computers connected to a common network. Most distributed computing is based on a client/server model. With the client server model, two major types of software are utilized: client software, which requests the information or service, and server software, which provides the information or service.
Information or services are usually delivered from server to client by Information Delivery System software applications. Such applications are often monolithic, protocol-specific, UNIX-based server applications consisting of a module that awaits a request for information from a client application. Once that request arrives, the module will copy (or “replicate”) itself and the copy of the module will process the request. The request will be processed by the copy, for example, by providing information from an SQL database or information contained in a local disk file. Meanwhile, the original module will continue to monitor for incoming requests.
This information delivery system architecture, however, is usually protocol-specific. In other words, the delivery system application only supports a particular protocol, such as HTTP, TCP/IP, or SPX. Thus, requests arriving via an unsupported protocol cannot be serviced. Such systems are inherently inflexible and non-extensible.
Attempts by monolithic applications to support multiple protocols further demonstrate their non-extensibility. Generally, however, adding support for several protocols requires adding additional code in the application. As more and more protocols are created, the application becomes correspondingly larger. If the application is executing a single process, the application may run without errors. If, however, the application is running multiple processes, too many system resources are utilized and the application crashes.
Moreover, the lack of fault tolerance and error-handling in many of these systems makes correction almost impossible. When system resources are depleted and the application terminates, it is often difficult to determine which client request triggered the breakdown. For instance, the system has no built-in mechanism for determining whether an SQL query or a World Wide Web page request caused the error. Accordingly, the application cannot be readily debugged and corrected.
One possible solution is the use of a distributed object system. Distributed object computing combines the concepts of distributed computing (described above) and object-oriented computing. Object-oriented computing is based upon the object model where pieces of code called “objects”—abstracted from real objects in the real world—own attributes and provide services through methods (or “operations” or “member functions”). Typically, the methods operate on the private attributes (data) that the object owns. A collection of like objects make up an interface (or “class” in C++ parlance). Each object is identified by a unique identifier called an object reference.
In a distributed object system, a client sends a request (or performs an “object call”) containing an indication of the operation for the server to perform, the object reference, and a mechanism to return “exception information, about the success or failure of a request. In addition, certain “context” information concerning the client (such as the platform or machine) may be included in the request. The server receives the request and, if possible, carries out the request on the specific object and returns information regarding the success or failure of the operation (“exception information”). Both client and server must have information about the available objects and operations that can be performed. Accordingly, both must have access to a common language, such as the Interface Definition Language (IDL), as defined by the Object Management Group (OMG). Interface definitions are usually written in IDL, compiled, and linked into the client and server applications.
Distributed object computing solves some of the problems associated with the prior art monolithic applications. With distributed objects, large applications can be broken down into smaller “components”, making the system more manageable and less subject to breakdown. Moreover, the system allows various components to plug-and-play, interoperate across networks, run on different platforms, coexist with legacy applications through object wrappers, roam on networks, and manage themselves and the resources they control. In addition, errors may be caught using exception handling.
Unfortunately, the current standard architectures for distributed systems have not specifically addressed how information can be provided from numerous information providers to clients over multiple protocols. The Common Object Request Broker Architecture (CORBA) proposed by OMG utilizes an object request broker (ORB) to handle object calls between a client and a server. The CORBA standard, however, remains tied to the use of a specific protocol. Other standards, such as OpenDoc and OLE, are similarly protocol-specific.
Furthermore, in traditional distributed object systems, a classical object call is based upon a request/response mechanism. Accordingly, only certain amounts of information may be transmitted in a particular object call. Prior art information delivery systems offer no mechanism for supporting delivery of large amounts of data (4 GB of video data, e.g.).
Accordingly, a need exists for a method for delivering information that supports multiple protocols.
Further, a need exists for a method for delivering information that uses distributed object technology to promote the use of individual components.
Further, a need exists for a method for delivering large amounts of data across a network.
SUMMARY OF THE INVENTION
The present invention is directed to an object-oriented information method and system having support for multiple protocols. The information delivery system of the present invention further permits the delivery of large amounts of information to client applications across a network.
In a preferred embodiment, the object-oriented method for delivering information includes the following steps. First, adapter components for requesting information, information provider components, and navigator components are loaded into the memory of one or multiple computers. A navigator object, adapter factory object, and information provider factory object are created. When a request arrives from a requester on the network, the factory objects are called to create stream objects. The stream objects are used to stream information from an information source to the requester. The stream interface includes operations for writing and reading data to and from an information source. By utilizing this model, data can be streamed in discrete portions from the information source to the requester.
In another embodiment, an object-oriented information delivery system of the present invention includes at least one information provider component that provides information via a server or a gateway to another server and at least one adapter component for requesting information from the information provider component via a request. Each component is implemented as an implementation library. Numerous adapter components can be utilized in the system corresponding to the various protocols that are available. Each adapter component is equipped with numerous sub-components, including a dispatcher component that dispatches the request to the other sub-components an
Bonham Peter
De Borst Jeroen
Erlenkoetter Ansgar
Kaeser Reto
Schofield Andrew
Dinh Dung C.
Thompson & Knight LLP
LandOfFree
Object-oriented method and apparatus for information delivery does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Object-oriented method and apparatus for information delivery, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Object-oriented method and apparatus for information delivery will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2477956