Information Technology Reference
In-Depth Information
language used to describe the interfaces between client and server applications in
a language-neutral way and is used by many different distributed systems, such as
the Networking Computing Architecture [26], Sun's ONC [98]andCORBA[77]
amongst others 1 .
In common with an IDL, the DDL allows for the definition of remote inter-
faces. However, the DDL differs from an IDL in a number of important ways:
• Unlike the DDL, an IDL has no concept of the recovery concern and most
implementations use the RPC concept of hiding the application's distributed
nature.
• The DDL assumes a single implementation language, Java, while IDLs are
generally designed to support multiple languages.
• IDL's generate stubs and skeletons, as described in Section 2.3.6,whichare
used by the developer to implement the client and server portions of the
application. In contrast, the DDL requires the classes and associated methods
defined in the DDL to exist so that the compiler may rewrite the bytecode
directly.
4.5 Current Limitations
There are a number of limitations in the DDL that restrict the types of distributed
applications that the RemoteJ system is suitable for.
4.5.1
Callbacks
There is currently no support for callbacks , in the case where a server calls back
into a client, or support for a server that is also a client to another server, which
may possibly use a different protocol.
While RemoteJ is not unique in this limitation (the limitation is present in
both RIDL [65] and J-Orchestra [113]) the class of applications to which RemoteJ
may be applied to is limited as a result. For example, applications that implement
a server process that needs to inform multiple clients via a callback of a state
change cannot currently be supported. This is an area for additional research.
4.5.2
Object Passing
Some protocols, such as RMI, allow objects to be passed either by reference
or by value. If the object to be passed is a remote object (it implements the
java.rmi.Remote interface) a remote reference is passed. If, however, the object
is not a remote object, a copy of the object is passed and changes to that copy are
not reflected in the client (in the case of parameters) or server (in the case of a
1 See Section 2.3.6 foranoverviewofSun'sONCIDLandSection2.4 foranoverviewofthe
CORBA IDL.
Search WWH ::




Custom Search