NetKernel Concepts
In one line: NetKernel Standard Edition is a simple system for building complex systems. This section describes
the core concepts of the NetKernel system.
What is NetKernel?
NetKernel is a new approach to enabling the development of complex software systems. It borrows from the principles of Unix and REST in its design
and yet it is an entirely new, simple, clean and self-consistent abstraction.
By reading this NetKernel Concepts section you will get a concise picture of how NetKernel operates - as ever, there is no substitute for actually trying things for yourself.
When you start to explore you may find that solutions on NetKernel are often built from layers of services which, taken all at once, can appear highly complex -
remember that everything you see and do is implemented using the four simple concepts outlined below. Most importantly remember at any level of granularity everything
is just a REST-like service with a URI and that applications are just sequences of composed services.
On NetKernel complexity emerges from the combination of simple things - everything is simple up close...
The NetKernel URI Address Space
The NetKernel microkernel manages URI address spaces and schedules URI requests into these spaces.
It embodies a set of simple self-consistent concepts.
- All software components are services which are addressed by URI.
- A component's URI is published in an internal URI Address Space.
- URI Address Spaces are encapsulated in modules which can be layered into larger virtual URI address spaces.
- Software components may be clients which issue URI requests against the Virtual URI Address Space.
It is very important to appreciate that a NetKernel URI address space is an internal abstraction which has no relationship with HTTP.
It is useful to think of NetKernel's URI address space management as like the virtual memory management in a modern operating system.
Later, in the section on Transports, it will be explained how the internal address space can be exported over an application protocol such as HTTP.