Warning:
JavaScript is turned OFF. None of the links on this page will work until it is reactivated.
If you need help turning JavaScript On, click here.
This Concept Map, created with IHMC CmapTools, has information related to: Object Model, Communication between distributed objects: each process contains objects, some of which can receive remote invocations, others only local invocations those that can receive remote invocations are called remote objects contains the distributed object model: remote object reference- other objects can invoke the methods of a remote object if they have access to its remote object reference remote interface- every remote object has a remote interface that specifies which its method can be invoked remotely, Object model has interfaces: an interface provides a definition of signatures of a set of methods, types of their arguments and return values, without specifying their implementation, Communication between distributed objects: each process contains objects, some of which can receive remote invocations, others only local invocations those that can receive remote invocations are called remote objects contains design issues for RMI, implementation of RMI: has the RMI software: proxy: to make remote method invocation transparent to clients by behaving like a local object to the invoker by forwarding a message instead of executing an invocation dispatcher: a server has one dispatcher and skeleton for each class representing a remote object skeleton: implements the methods in the remote interface, Object model has object references: objects can be accessed via object references. the object whose method is invoked is sometimes called the target and also called the reciever, Communication between distributed objects: each process contains objects, some of which can receive remote invocations, others only local invocations those that can receive remote invocations are called remote objects contains Object model, Communication between distributed objects: each process contains objects, some of which can receive remote invocations, others only local invocations those that can receive remote invocations are called remote objects contains distributed garbage collection: as soon as no object any longer holds a reference to it, it will be collected and the memory it uses is recovered, distributed andlocal garbage collectors work together as follows: 1 each server process maintains a set of the names of the processes that hold remote object references for each of its remote objects 2 when a client C first receives a remote reference to a particular remote object B 3 when a client C's garbage collector notices that a proxy for remote object B is no longer reachable it makes a invocation to the corresponding server and then deletes the proxy 4 when B .holders is empty, the servers local will reclaim the space, Object model has exceptions: provide a clean way to deal with error conditions without complicating the code, encounters of unexpected errors is not rare, a block of code may be defined to throw an exception whenever particular error occurs, meaning the control is passed to another block of code that catches the exception, implementation of RMI: has communication module: two cooperating communication modules carry out request reply protocol, transmits request reply messages between client and server, uses only first three items: message type, requestID, remote reference of object to be invoked, RMI invocation semantics: dooperation delivery guarantees- retry request message: whether to retransmit the request message until either a reply is received or the server is assumed to have failed duplicate filtering: when retransmissions are used, whether to filter out duplicate requests at the server retransmission of results: whether to keep a history of result messages to enable lost results to be retransmitted without reexecuting the operations at the server comtains at least once invocation semantics: the invoker receives either a result, which case the invoker is informed that the method was executed at least once or a message saying that no result was received, at least once invocation semantics: the invoker receives either a result, which case the invoker is informed that the method was executed at least once or a message saying that no result was received has 1 crash failures when the server containing the remote object failed, the distributed object model: remote object reference- other objects can invoke the methods of a remote object if they have access to its remote object reference remote interface- every remote object has a remote interface that specifies which its method can be invoked remotely contains garbage collection in a distibuted object system: if a language, like Java, supports garbage collection, then any associated RMI system should allow garbage collection of remote objects by adding a module to the existing local garbage collector, implementation of RMI: has generation of the classes for proxies, dispatchers and skeletons: the classes for the proxy, dispatcher and skeleton used in RMI are generated automatically by an interface compiler, distributed garbage collection: as soon as no object any longer holds a reference to it, it will be collected and the memory it uses is recovered, distributed andlocal garbage collectors work together as follows: 1 each server process maintains a set of the names of the processes that hold remote object references for each of its remote objects 2 when a client C first receives a remote reference to a particular remote object B 3 when a client C's garbage collector notices that a proxy for remote object B is no longer reachable it makes a invocation to the corresponding server and then deletes the proxy 4 when B .holders is empty, the servers local will reclaim the space has leases in Jini: leases are given to avoid complicated protocols to discover whether the resource is still wanted, Object model has garbage collection: providing a means of freeing the space occupied by objects when they are no longer needed, detection automatically of unused objects and recovers the space and makes it available, implementation of RMI: has remote reference module: responsible for translating between local and remote object references and creating remote object references, the remote object reference in each object has a remote object table that records: remote objects held by process, each local proxy, implementation of RMI: has object location: location services helps clients to locate remote objects from their remote object references by using database maps remote object references to their probably current locations, RMI invocation semantics: dooperation delivery guarantees- retry request message: whether to retransmit the request message until either a reply is received or the server is assumed to have failed duplicate filtering: when retransmissions are used, whether to filter out duplicate requests at the server retransmission of results: whether to keep a history of result messages to enable lost results to be retransmitted without reexecuting the operations at the server has at most once invocation semantics: the invoker receives either a result, in which case the invoker knows that the method was executed exactly once or not at all, Object model actions: action in an object oriented program is initiated by an object invoking a method in another object, 1 state of the reciever may be changed 2 a new object may be instantiated 3 further invocations on methods in other objects may take place, the distributed object model: remote object reference- other objects can invoke the methods of a remote object if they have access to its remote object reference remote interface- every remote object has a remote interface that specifies which its method can be invoked remotely consists of remote interfaces: the class of a remote object implements the methods of its remote interface, objects in other processes can invoke only the methods that belong to its remote interface. CORBA system provides an interface defintion language IDL, the classes of remote objects and the client programs may be implemented in any language such as c++, java or python for which an IDL compilier is available