Transport independent invocation and servant interfaces that...

Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06389484

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of Invention
The present invention relates to the fields of distributed computing systems, client-server computing, and object-oriented programming. More particularly, the invention relates to data structures, methods, and devices for facilitating servant invocation.
2. Description of the Prior Art
A computing environment in which objects located on different computers are linked by a network is typically referred to as a client-server computing environment. Some of the computers act as providers of services or functionality to other computers. Others of the computers act as consumers of services or functionalities. The providers of service or functionality are known as “servers”, and the consumers of the service or functionality are called “clients”. The client-server model may also be generalized to the case where distinct programs running on the same computer are communicating with one another through some protected mechanism and are acting as providers and consumers of service or functionality.
Attempts to provide such a distributed system have been made using object-oriented methodologies that are based upon a client-server model in which server objects provide interfaces to client objects that make requests of the server objects. Typically, in such a distributed system, the servers are objects consisting of data and associated methods. The client objects obtain access to the functionalities of the server objects by executing calls on them, which calls are mediated by the distributed system. When the server object receives a call, it executes the appropriate method and transmits the result back to the client object. The client object and server object communicate through an Object Request Broker (ORB) which is used to locate the various distributed objects and to establish communications between objects. Distributed objects may exist anywhere in a network, as for example in the address space of the client, in multiple address spaces on the client machine, and in multiple machines across the network.
The software industry has responded to the need for a distributed object technology by forming the Object Management Group (OMG). The goal of the OMG is to define the Object Management Architecture (OMA), which has four major components: the Object Request Broker (ORB), Object Services, Common Facilities, and Application Objects. The Object Request Broker provides basic object communications and management services, thereby forming the basis of a distributed object system. A standard for an Object Request Broker is contained in the Common Object Request Broker Architecture (CORBA) specification from the OMG, Revision 2.0, dated July 1995.
In typical client-server systems, performance overhead can be costly. That is, the speed and quality of a process within the system may be compromised by inefficient uses of application code and methods associated with transmitting information between distributed objects. By way of example, the performance overhead associated with repeatedly extracting information, from buffers or portions of code, each time that information is required by the client-server system, is high. Further, as will be appreciated by those skilled in the art, client-server systems typically use separate interfaces for compiled invocation and non-compiled invocation. The use of separate interfaces is inefficient. Consequently, the provisions of methods, data structures and/or devices which reduce the performance overhead associated with communicating information between distributed objects would be desirable. Further, the provision of a mechanism that would enable common base code to be shared between compiled invocation and non-compiled invocation would provide for the improved performance of a client-server system.
SUMMARY OF THE INVENTION
To achieve the foregoing and other objects and in accordance with the purpose of the present invention, data structures, methods and devices for facilitating servant invocation in a distributed client-server based object oriented operating system are disclosed. In one aspect of the invention, descriptor data structures, which contain a typecode indicator, a marshaling function identifier, and an unmarshaling function identifier, are used to enable modules of application code to be shared between different objects, thereby facilitating servant invocation by increasing the amount of commonized code in the operating system.
In various embodiments of the invention, the descriptor data structure is a parameter descriptor data structure which may additionally include one or more of the following fields: a direction indicator to identify a processing direction of an entity associated with the descriptor data structure; a name indicator that provides a name for the entity associated with the descriptor data structure; and a size indicator that indicates the amount of memory that must be allocated by a process which is to receive the entity associated with the descriptor data structure. In other embodiments of the invention the descriptor data structure takes the form of an exception descriptor data structure that is used to describe an exception.
In another aspect of the invention, the exception descriptor data structure includes a typecode indicator and a throw function indicator arranged to identify a throw function arranged to specify the nature of an exception when the throw function is called. In some embodiments, the exception descriptor data structure also includes a repository identifier arranged to uniquely identify the exception associated with the exception descriptor data structure.
In another aspect of the invention, a server invocation object is used to facilitate communications between a requesting process and a servant object. A server invocation object includes a pointer arranged to identify an associated marshal buffer for the server invocation object, and pointers arranged to identify descriptor data structures associated with the server invocation object. In various embodiments, the server invocation object includes one or more of: a pointer to a context associated with the server invocation object; and a call-back closure which contains a pointer arranged to identify a call-back function-associated with the server invocation object.
In still another aspect of the invention, a method of calling an invoke method of a distributed client-server based object oriented operating system having a plurality of client representations that are associated with one of a local stub and a remote stub involves the use of a common code which includes the determination of whether the call, or request, to the invoke method is a typecode interpreted call or a compiled call. When the call is typecode interpreted, arguments in the call are marshaled using a typecode marshaling routine. When the call is compiled, arguments in the call are marshaled using a marshal method associated with the argument. In some embodiments, the call, or request, is transmitted over a selected transport to an endpoint associated with a server process. The received request is unmarshaled, processed and a reply is transmitted to the client process from the server process. The reply is encapsulated in the marshal buffer of the client, and the arguments are unmarshaled using the same descriptor data structures. In a preferred embodiment, the client and the server use the same descriptor data structures for their respective marshaling and unmarshaling functions.


REFERENCES:
patent: 5577251 (1996-11-01), Hamilton et al.
patent: 5737607 (1998-04-01), Hamilton et al.
patent: 5758186 (1998-05-01), Hamilton et al.
patent: 5787251 (1998-07-01), Hamilton et al.
patent: 5815708 (1998-09-01), Kessler et al.
patent: 0 643 349 (1995-03-01), None
Peter B. Kessler, A Client-Side Stub Interpreter, Jan. 1994, Proceedings of the Workshop on Interface Definition Languages, Carnegie Mellon University.
Hamilton et al., Subcontract: A flexible base for distributed programming, Nov. 1993, Proceedings of 14thACM Symposium on Operating Systems Princip

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Transport independent invocation and servant interfaces that... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Transport independent invocation and servant interfaces that..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Transport independent invocation and servant interfaces that... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2844717

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.