The urrequest package contains the interfaces that implement the design
pattern that is the NetKernel. It builds upon the essentially static interfaces
of urii package to provide a
framework for making requests about URI and receiving results.
UML Diagram
A IURRequestor can make an asynchronous URRequest to
an IURRequestee for an action to be performed on a URI.
After the action has been attempted a URResult is returned to the
IURRequestor. An IURRequestor must pass an
IRequestContext with the request to indicate within what context the URI
is to be evaluated. An IURRequestor must pass an
IRequestSession with the request a session is assigned to a request when
it first enters the NetKernel through a transport, all sub-requests must inherit
this same session.
The IURSynchRequestor interface provides a mechanism for a client
to make a sychronous request. Synchronous requests block until a URResult
is available and return it. Failures throw a com.ten60.netkernel.util.NetKernelException
.
The NetKernel scheduler acts as a universal IURRequestee that
can create and forward requests to IURAccessors that are also reqestees.
For more details on the scheduler operation see the process scheduling page.
Initial requests are created by transports and sub-requests can be created by accessors
which act as IURRequestors. Modules define a unique
IRequestContext which gives each module a unique address space.