|
||||
|
|
The urii package contains the key interfaces for Universal Resource Infrastructure abstraction. This is THE key abstraction in the NetKernel. It defines how URIs relate to accessors and in-memory representations of the state of a URI. Also see the urrequest design page for details on how this abstraction is made dynamic. UML Diagram
URIdentifierEvery resource has an identity. URI stands for Uniform Resource Identifier. URIs are not universally unique. In Netkernel they are only guaranteed unique within a module. IURAccessorURIs define identity but don't define how they can be resolved.
There are standard URI schemes such as
IURRepresentationWhen the current state of a URI is brought "into memory" it is represented as an IURRepresentation. This representation contains metadata about the URI and a set of Aspects on the data state of the URI. A key point is that they are immutable if you wish to change the state of a URI you must transform a representation and then sink that representation back to the accessor. IURAspectAn IURRepresentation has a number of Aspects. Aspects are APIs for accessing the state of an accessor. Different types of URI have different aspects with varying capabilities. XML typed data is an interesting example as it can have aspects which expose DOM, SAX events, character streams or raw binary streams. IURMetaThe IURMeta is metadata about a URI. It contains information on its type, validity and its cost of retrieval. IURAccessorMetaAn IURAccessor is itself and IURRepresentation. It has a little more metadata than the basic. It contains information on thread safety and supported request types. ITransreptorAccessors are free to create the simplest aspect of a URI in any representations that they create. If a client process of that representation wants it in a specialised form that it must be transrepresented, its representation must be changed. Using the XML example, this might mean parsing the binary representation of a document into an aspect that can emit SAX events. Take a look at urrequest design this shows how IURAccessors and ITransreptors are orchestrated to the satisfy requests of client processes
|
|||
|
© 2003,2004, 1060® Research Limited
1060 registered trademark, NetKernel trademark of 1060 Research Limited
|
||||