[
Lists Home |
Date Index |
Thread Index
]
On Mon, 2004-01-05 at 12:19, bryan wrote:
> >
> >active:xslt+operand@file:///mydocument.xml+operator@file:///mytransform
> .xsl
>
> >References:
>
> >NetKernel www.1060.org
> >ActiveURI Specification
> >http://www.ietf.org/internet-drafts/draft-butterfield-active-uri-00.txt
>
> active-uri looks interesting, however what makes me wonder is:
>
> 5. Examples
>
> An "active" URI might define an XSLT transform on an XML document:
>
> active:xslt+stylesheet@foo.xsl+operand@bar.xml
>
> or conversion to upper-case of a data[RFC2397] URI:
>
> active:toUpper+operand@data:text/plain,foobar
>
> however there doesn't seem to be any specification of what an active uri
> has to support, what is optional for it to support, and how one can
> differentiate between these. You have to admit that the two examples
> given indicate a wide range of possibilities, in that I suppose we're
> not just saying it can do either xsl-t transforms or toUpper case
> conversions.
>
> Am interested as I am doing something similar to this, although my goal
> is not identifying intermediate results in XML pipelines.
Active URI is the internal addressing scheme for NetKernel. As such it
is used as the core addressing syntax for the NetKernel microkernel
above this we have built a full featured XML runtime / application
server.
The 'types' that can be addressed are totally extensible (we call them
URAs - they're endpoints for an active URI if you like). We include
XSLT, XQuery, all the standard validation technologies, ... in all there
are currently about 70 URAs components. Each active URI request is
mapped to a URA through a hierarchical modular URI address space. The
address space exposes public interfaces and encapsulates a private
internal address space - you can think of a module as a bubble of URI
addressable resources with a REST-like public interface. [public as in
OO not as in WWW]
Active URIs are nestable so a high-level pipeline language such as DPML
or XRL is compiled into a deeply nested active URI. It need only be
evaluated when a condition or transient resource is encountered. In
this way the active URI is the primary key to a dependency tree of
intermediate processing results. What this means is very highly
efficient caching and virtual elimination of duplicate transforms etc.
In fact an entire process can be written in a single URI though this is
not recommended. The supplied runtimes compile a high-level language to
active URIs and ensure each URI argument is escaped.
In brief, NetKernel is an operating system for processing active URI's.
activeURIs can be matched to REST-like service interfaces we call
URA's. All processing results are cacheable to any granularity.
There's is a lot more information provided in the NetKernel
documentation http://www.1060.org. The current release's docs are not
as navigable as we'd like - we will be issuing a new release 2.1 kernel
and system very shortly with many enhancements and much improved
documentation and examples.
Peter
PS The use of the data: URI scheme with active URIs is very valuable as
a server side technology (data: URI was originally proposed as an inline
URI for evaluation by web-browsers). Since a data: URI is a static data
resource it can be included in the active URI and hence the key to the
cached resource - this way intermediate processing steps involving
transient data can be decoupled from dependent processes which are then
cacheable.
--
pjr@1060.org
Architect 1060 NetKernel, http://www.1060.org
|