Information Technology Reference
In-Depth Information
RIDL's DJNaming class is a wrapper class that interacts with Java's RMI
Naming class and is therefore tied to a single protocol, RMI. Objects that export
these remote object references are explicitly tied to the RIDL specific naming
framework, thereby tying them to the framework.
Client calls to remote methods are exactly the same as calls to local methods
with the following exceptions:
• The run-time exception DJInvalidRemoteOp may be thrown.
• RIDL framework elements must be used to locate the remote method.
For example, to bind to the remote object, BoundedBuffer , the RIDL specific
naming framework must be used:
BoundedBuffer1 bb = new BoundedBuffer(100);
String url = "rmi://parc.xerox.com/BoundedBuffer" ;
// bind url to remote object
DJNaming.bind(url, bb);
...
// lookup bounded buffer
bb = (BoundedBuffer)DJNaming.lookup(url);
One of the compelling features of RIDL is the ability to pass or return partial
copies of objects in the remote call. For example, the portal:
portal BoundedBufferV1 {
int capacity();
void put(Book x) {
x: gref;
}
Book take() {
return: copy {Bookbypass title, ps; }
}
}
declares that the returned Book object does not contain the title or ps fields. This
feature can dramatically reduce the overhead of a remote call. If the programmer
inadvertently refers to the title or ps fields, an error is generated.
RIDL programmers are required to adhere to RIDL's naming framework and
the use of the RIDL specific exception, DJInvalidRemoteOp . RIDL is therefore
not entirely transparent to the programmer and by being so is intrusive in nature
although this intrusiveness is fairly limited.
3.8.1.2
AWED
AWED [73] is a comprehensive aspect language for distribution which provides
remote pointcuts, distributed advice, and distributed aspects and is implemented
by extensions to the JAsCo [106] AOP framework called DJAsCo.
Search WWH ::




Custom Search