The 1060 REST microkernel and XML app server

1060 NetKernel Suhail Ahmed alerted me, via email, to a really interesting project called NetKernel, from 1060 Research. The docs describe it as "a commercial open-source realisation of the HP Dexter project." Here's the skinny:

Today's Web-servers and Application Servers have a relatively flat interface which creates a hard boundary between Web and non-Web. This boundary defines the zone of URI addressable resources.

What if the REST interface (URI address space) didn't end at the edge of your external interface?

NetKernel uses REST-like service interfaces for all software components. The services are fully encapsulated in modules which export a public URI address space. A module may import other module's address spaces, in this way service libraries may be combined into applications. [NetKernel Essentials]
What if, indeed? I downloaded the 20MB NetKernel JAR file, installed the system, and took it for a spin. Fascinating concept. As advertised, it offers a suite of XML services -- including XSLT, and the Saxon implementation of XQuery -- in a composable architecture based on URIs. These include the familiar http: and file: plus NetKernel's own active: which is a URI scheme for NetKernel processes scheduled by the "REST microkernel."

You compose primitive URI-based services like so :

Here's an example of a DPML [Declarative Processing Markup Language] 
instruction to perform an XSLT transform:
 
<idoc>
  <seq>
    <instr>xslt</instr>
    <operand>document.xml</operand>
    <operator>transform.xml</operator>
    <target>this:response</target>
  </seq>
</idoc>
 
Which the DPML runtime compiles to the active URI 
 
<code>active:xslt+operand@document.xml+operator@transform.xsl </code>
Since all the supported XML processing technologies use the active: resolver, you could use active: URIs as the operand and/or operator, and you could source the resource described by this active: URI into another processing step, say an XSLT transform or an XQuery query.

I never heard the phrase "REST microkernel" before, but I had an immediate expectation of what that would mean. An hour's experimentation with the system met that expectation. Wildly interesting stuff. Thanks for the pointer, Suhail!


Former URL: http://weblog.infoworld.com/udell/2004/02/26.html#a929