|
|
|
Advertisement
|
The purpose of JERI is to expose more of the underlying protocol
stack layers than are currently exposed in J2SE or JRMP. JRMP has a
notion of object references, for example, but it is not exposed in public
Java classes. They are internal com.sun classes you are
not supposed to use. There's a description in the RMI specification for
protocol layering, but none of those services are public classes. So the
idea behind JERI is to expose those layers explicitly within part of
your public specification and allow customization.
In JERI, you can customize the different layers by plugging in different pieces or subclassing different pieces in order to tailor the behavior. JERI has three layers. There is a marshaling layer, where the marshaling of arguments and marshaling of return values and thrown exceptions takes place. There is an object invocation layer, which is a thin layer that identifies what remote object you try to make a call on. And then there is a transport layer that implements the messaging protocol of sending the remote call or the request to the server and getting the response back. The messaging layer doesn't know about these other layers above. It's a request/response messaging layer that has arbitrary bytes in it. It doesn't know what the bytes are. It is just responsible for transporting the bytes.