Developing simple applications is one matter but NetKernel has unique characteristics which make it
a platform that scales well to large scale projects.
Decomposing an application into layers
Depending upon the application or service it can usually be broken down into a number of
separate layers whose dependencies form a graph. Starting with technology libraries which encapsulate standard
technologies into accessors, transports, transreptors etc. These have few external module dependencies. In parallel,
and equally independently you can build application logic usually providing public interfaces using usually XML.
Creating flexible interfaces to users be they humans or machines can be separated from the business logic
and put into a layer that integrates with transports to provide external connectivity.
NetKernel offers complete flexibility for decomposing functionality into modules. The guidelines above
are just that- guidelines. See the examples section below or take a look at the structure of the Standard
Edition distribution for more ideas.
Distributed Services
As you know by now, every service is addressed by a URI. The most direct way to invoke a service is
for a client module to import a service module and then make a request targeted at that URI. However a
separation between client and server can be acheived by using rewrite rules and placing a proxy service
between client and server. Such a proxy may provide an abstraction such as transparent resolution and
tunnelling over a transport, security or other add-in style functionality in a similar way to cross-cutting
with aspects in a technique known as Aspect oriented programming.
Examples
A number of large showcase applications have been developed using NetKernel. For more
information see http://www.1060.org/applications.