WARNING: This server provides a static reference view of the NetKernel documentation. Links to dynamic content do not work. For the best experience we recommend you install NetKernel and view the documentation in the live system .

System Overview

The following diagram shows the NetKernel system...

image/svg+xml Master slide Master slide Slide Drawing Kernel General ROC Abstraction Request Space Endpoint Drawing Layer0 Drawing ClassLoaders Drawing Module/Boot Support Drawing Grammars Drawing NetKernel Foundation API Drawing HDS / URI Drawing Cache Drawing Standard Module Drawing Classic Module Drawing Boot Drawing HTTP Server Drawing HTTP Client Drawing Lang Groovy Drawing Lang Ruby Drawing Lang DPML 2.0 Drawing Lang XRL Drawing Lang Freemarker Drawing Res Model XML Drawing Res Model System Drawing Res Model Layer1 Drawing Lang Beanshell Drawing Res Model RDBMS Drawing Res Model Wiki Drawing Doc System Drawing Introspect Tools Drawing Xunit Test

Boot

This provides the bootloader. The bootloader provides the core system Java classloader.

It discovers the kernel and low-level Java libraries for the system by reading the file [ install ] /etc/bootloader.cfg

Kernel

This is the NetKernel microkernel. It is provided in two jar files in the [ install ]/lib/ directory.

  • lib/urn.com.ten60.core.netkernel.api-x.x.x.jar - provides the Kernel API
  • lib/urn.com.ten60.core.netkernel.impl-x.x.x.jar - provides an implementation of the API

The Kernel embodies the general ROC abstraction. All resource requests are mediated by the kernel.

Cache

The cache block shown here, consists of a resource resolution and resource representation caches.

NetKernel is able to determine the cacheability of all requests and will automatically attempt to minimize total system computation cost by providing resolution and representation responses from cache.

Layer0

Layer0 provides infrastructure for the upper level implementation of the ROC system. It hosts the grammar technology, dynamic module classloader, module manager and some boot support classes.

It also provides some common low-level resource models such as HDS.

NetKernel Foundation API (NKF)

NetKernel Foundation API is provided in the layer0 library. It is the NetKernel equivalent of the Unix posix abstraction layer and provides a safe and consistent API over the core kernel.

All end-user code should be written to the NKF layer.

Standard Module

The Standard Module is an implementation of a configurable ROC address space. All NetKernel modules provided are Standard Modules.

For reference, NetKernel does not have a hard coded model for spaces and modules. It is possible to create alternative implementations that would run equally well on the general ROC kernel (one such is an implementation of the classic NetKernel 3 module).

Creating module models is non-trivial - but if required there are Java base classes in layer0 that can be extended to create brand new address space models.

Library Modules

Above the Standard Module are a range of library modules, these provide horizontal technologies such as programming language runtimes, resource models such as XML, transports such as HTTP, clients such as relational database query etc etc.

Library modules have little cross-dependence and typically are self-contained requiring only the NKF foundation.

NetKernel System

The NetKernel system (tools, services, Apposite module management, XUnit, Documentation system, log management, search etc etc) consists of a set of loosely coupled ROC applications written as Standard Modules that run on the kernel. NetKernel Standard Edition is itself an ROC application.