Application Server
This section shows how NetKernel's unique properties are perfectly matched to many styles of Web-application. In addition it shows that NetKernel is
not limited to the Web and can support applications using other network protocols
such as email or SMS text-messaging.
AJAX Application Server
AJAX enables rich end-user browser-based applications. User interactions with
a page initiate Javascript HTTP calls to fine-grained data services.
The data received from these calls is presented to the user by
dynamically modifying the browsers document which gives a
feeling of immediacy to the user.
Data is exchanged using
either XML, HTML or JSON
as the over-the-wire data format.
AJAX applications can make frequent data services calls to keep the
browser display current with user actions.
An AJAX server must be very responsive to these calls.
NetKernel is a superior server for Ajax applications. NetKernel's URI addressing of server-side
code makes creating fine-grained 'data-channels'
for AJAX applications very natural. Since NetKernel is REST-based each channel
acquires scaling, performance and cacheing from the underlying infrastructure.
Furthermore by scripting services using NetKernel's server-side Javascript language,
NetKernel AJAX applications gain a unique symmetry between the client-side
development environment and the server-side service implementations. Working in a single language on
both sides of the client-server boundary eliminates the need for a developer to context switch.
This symmetry extends to data formats - whether you prefer to use XML, HTML or JSON, NetKernel
provides a rich range of service-based tools for processing inbound data and for constructing and
issuing outbound responses.
NetKernel readily supports client-side AJAX toolkits. However, NetKernel offers a unique ability,
since the toolkits are Javascript they may be imported and used in any server-side Javascript code too! And since NetKernel
dynamically compiles server-side Javascript to bytecode, performance is on a par with native Java.
CRUD Application Server
Create, Read, Update, and Delete (CRUD)
applications are simple business systems with persistence.
Their main attraction is the rapid speed with which they can be developed and deployed.
NetKernel is a superior platform for CRUD applications because it eliminates the
need to develop, maintain and bind to an object model.
NetKernel uses a resource oriented approach in which messages and
data are routed using simple scripts assembled with NetKernel tools.
Data or requests coming from the client browser are automatically
transformed into an XML message which can then be routed to a
URI addressed
application service for processing - including storage in the RDBMS.
Data from RDBMS queries can be returned as XML documents
which can then be transformed easily into a presentational view.
There is no need to use or bind to an object model.
NetKernel's URI service addressing is a natural match to the Web-application structured
URL interfaces.
URI addressing allows applications
to be partitioned into tiers for ease of management, development and deployment.
In addition, each tier benefits from
NetKernel's fine-grained caching ensuring the system is always balanced.
Email Application Server
Email messaging with the SMTP, POP3 and IMAP protocols is a robust store-and-forward
system.
NetKernel can act as the infrastructure for an email based application.
With NetKernel's POP and IMAP client capabilities, a NetKernel application can
poll email delivery boxes for messages and when found it can read, interpret,
and process them.
An email-based system offers the ability to mix human readable messages with application data,
such as purchase orders,
as attachments to an email message.
NetKernel's ability to orchestrate
long running processes allows innovative systems to be developed that
accommodate human agents working with these messages along side NetKernel's application processing.
NetKernel offers easy to use mail sending capabilities, either to provide data processing applications that respond with email
responses or to provide email responses for Web-applications etc.