1060 NetKernel Standard Edition is an Application Server built on the 1060 NetKernel microkernel. The system provides a modular
operating environment for developing applications and services. The system is pre-configured with an HTTP transport for Web-applications
and Web-services but NetKernel is transport independent and other transports are supplied or can be easily added.
The system has a web-based management and system services index which runs as HTTP on port 1060 of the host platform.
The index also provides developer tools, wizards and structured documentation.
A front-end application server is provided over HTTP on port 8080. Web-applications can be developed or installed
to the front-end independently of the back-end system management.
System Architecture
NetKernel Standard Edition is a collection of modules which together comprise the Application Server infrastructure. Below is
a high-level map of the structure of the App Server. You can inspect the Kernel's realtime module deployment here.
Below is a map of the Standard Edition System each block consists of one or more modules - click a block for the description.
MicroKernel
The 1060 NetKernel microkernel is the core of the system. It manages modules and schedules URI requests for software components.
Every process on NetKernel is a managed series of requests against layered URI interfaces. Every request is resolved and scheduled by the microkernel. The microkernel also
manages caching and transports.
Layer1 provides fundamental low-level system components and services. These include low-level resource representation implementations (such as
ByteArrayAspect which holds a resource in a byte array). Layer1 also hosts Accessors for servicing requests for file:, http: and data: URI schemes.
Layer1 is the home of the NetKernel Foundation API - which presents a clean abstraction of the raw Kernel APIs and offers base-classes for all
of the different types of NetKernel components.
Generally you can think of Layer1 as a fundamental part of the infrastructure, most of the higher level modules use the services of layer1 - in a less
modular architucture the functions of layer1 might be incorporated in the kernel. NetKernel's philosophy is to allow every piece to
be a replaceable unit so if necessary, for example for an embedded system, Layer1 could be replaced by one or more other modules.
XML-Core provides fundamental XML infrastructure. This includes various document object models, caching XPath engines, default parsers and serializers. It also
provides NetKernel's XPath Document API (IXDA, DOMXDA etc) which offers a convenient semi-declarative XPath based API for XML processing.
XML-Accessors is a large set of XML technologies provided as URI addressable services. This is a set of modules, the most important of which is xml-ura
which provides XSLT, STM and many forms of Schema validation
and other general XML utilities. The ext_xquery module hosts the XQuery engine, other modules provide XML security.
tools etc.
This is a large set of modules that provide general application-level services. Examples include ext-sys for general system-level services such as log,
mod-db for RDBMS integration services, ext_xforms for Xforms services,
ext-xhtml for XHTML services etc etc.
Accessors are fully documented with each document reference providing the URI of the module in which it is hosted.
Runtimes are services that execute processes by scheduling sequences of service requests. The system provides both declarative and
procedural runtimes:
declarative runtimes include DPML for assembly language-like composition of
processes and XRL for recursive pull composition of XML resources. Procedural runtimes include the
NetKernel scripting framework
which supports Groovy, Beanshell, Javascript and Python dynamic languages.
Most applications and services consist of processes executed on one or more runtime. The NetKernel
system is totally flexible, runtimes can be replaced or new ones added.
This is where applications and services are developed. NetKernel applications are developed in modules which may import the modular services provided by
the lower-level Application Server infrastructure. As an example, all of the NetKernel back-end administrative applications, services, wizards, documentation etc are NetKernel applications in this layer.
Fulcrums are modules which host transports and connect transport requests to applications or services. In the default NetKernel system there are two fulcrums, the back-end fulcrum
hosts an HTTP transport on port 1060 and imports all of the administrative applications. The front-end fulcrum hosts an HTTP transport on port 8080 and is
provided for deployment and development of user applications.
Transports map externally generated events into NetKernel requests. The most widely used transport is the HTTP Transport which receives HTTP REST requests. Also
provided is the Intray transport which polls a directory for files, processes them with an application and places the result in another directory. NetKernel is completely transport (application protocol)
independent it is easy to create new transports for example for email, instant messaging, SOAP messages etc etc etc.