New: NetKernel Enterprise Edition
Available now, the premier platform for Enterprise resource oriented
systems.
- Assurance and long-term stability
- NetKernel Cloud Infrastructure
- ROC Architecture library
- Enterprise management and deployment tools
The future of enterprise systems is
here today.
|
Separates Architecture from Code
The NetKernel Resource Oriented Computing (ROC) platform
separates architecture from code.
With ROC you can compose your architectural design
independently from implementation code.
By keeping the details of code separate
from high-level information architecture you gain:
- freedom of choice in implementation language
- rapid click-fit compositional development
- long-term evolvable solutions
Threading and scheduling is managed by the microkernel so your code execution is
efficiently optimised with linear scaling on multi-core without
the need to learn new languages.
Something brand-new also comes from separating architecture and code. NetKernel provides system-wide caching
of every area of your system. For free. No configuration.
NetKernel learns what information is
reusable and reuses it. This makes NetKernel systems fast. Very fast.
ROC Cornerstones
ROC combines the core ideas of
Unix
and
REST
into a new and general model for creating powerful software solutions.
From Unix - the idea of creating composite tools by combining simple tools
sharing interoperable data models (resource models) to build solutions.
From REST - address everything (resources,
services and code) with a URI to loosely couple the internals
of your software making it as flexible and powerful as the Web.
ROC offers a generalisation of REST. It takes the next step and answers the question - what happens if
we take the ideas behind the Web and apply them, not just externally, but take them inside software?
Can we make the way we create and evolve software solutions gain the same power and flexibility as the Web?
NetKernel is a software platform that implements the ROC abstraction and answers these questions:
you can take the next step beyond REST, you can take the Web inside, you can reach new levels of power and
flexibility in information engineering...
Frequently asked questions
Find answers to common questions about NetKernel. If there's something you're not finding here, try our getting help page.
NetKernel is a software platform that implements the Resource Oriented Computing (ROC)
abstraction.
ROC allows code and architecture to be cleanly decoupled,
enabling more powerful and elegant solutions to be realized.
NetKernel may be deployed as a standalone application server,
embedded in an existing Java container
or used as the foundation for a cloud computing system.
Unix and REST are actually closely related. NetKernel is related to both. It adds some new generalisations,
some of which are new conceptual leaps.
We regularly publish articles in the weekly newsletters exploring the concepts within ROC. This
article provides
a side-by-side comparison table of Unix, REST and ROC.
The Resource Oriented Computing abstraction provides several
very simple concepts - spaces, resources, endpoints, requests,
which are used to compose the architecture of an application.
Requests are processed by service endpoints dynamically discovered within spaces.
Endpoints can issue their own requests
which themselves discover their processing endpoints.
Dynamic discovery of endpoints for all requests enables architectural designs
with flexibility not possible with object-oriented approaches.
In fact, NetKernel systems are as flexible
and malleable as the World Wide Web.
Code is not banished, it's just cleanly separated from the architectural
design.
Each endpoint can be considered an object-oriented container
and the spaces "containers of containers".
These endpoint containers can host your existing code and then
ROC can provide a new level of abstraction to your enterprise software, a new dimension in
which you can step up from the low-level objects and
APIs of traditional coding.
ROC's new level lets you focus on the core information and system structure as the primary concern.
This step up from low-level coding minutiae
means you get direct flexible control of...
- information structure, lifetime and computation cost
- logical boundaries: layers and vertical channels
- modular physical system partitioning
- system-wide ultra-fine grained caching and cache control
- multicore CPU utilization and throughput
- concurrency and thread safety
- transport independence with impedance matching normalization layers
- implementation language independence and freedom of choice.
- constraint boundaries: access, audit, developer tool set, statistical monitoring
- dynamic profiling of performance and state reporting
- Hot, fine-grained, versioned production deployment and transactional rollback
The NetKernel foundation is ROC-solid.
At its core lies a precision crafted microkernel which directly
embodies the ROC abstraction.
Above the kernel is a POSIX-like abstraction layer, called the
NetKernel Foundation API;
along with the Standard Module infra-structure, this
supports all the service modules, tools and features of
NetKernel.
Beyond this core, NetKernel comes with dozens of click-fit library modules
with services such as dynamic language runtimes and domain specific processing tools.
Many applications can be built exclusively
using the supplied services.
However, if you do need new services, build their endpoints
with any of the supported
languages (Java, Groovy, Scala, Python, Ruby, JavaScript, BeanShell,
Clojure, XSLT, XQuery, DPML, etc.) and extend the platform.
Need a different language? That can be added also.
NetKernel is fully extensible and ultimately flexible.
NetKernel can be embedded in any Java program, in a
JEE Servlet, run as its own application server or
deployed in a cluster providing cloud computing services.
NetKernel is also incredibly small and scales.
Because ROC requests specify logical processing,
NetKernel is free to cache previous results keyed on the
request identifier; subsequent requests are serviced
from cache instead of running endpoint code.
If processing is required, the kernel can employ one of
its worker threads, essentially providing
load balancing across CPU cores.
Fundamentally NetKernel and ROC offer a new way to do software.
New software with new higher-order qualities...
Malleability
- Incredible flexibility
- Long term stability - generational stability of information and structure
- Dynamic type adaptation and pipelined conversion discovery
- Elimination of brittleness
Throughput Performance
- Higher performance - typically 2-3x on the same hardware.
- Scale your solution - add more cores and see your system scale linearly
- Do more with less - deploy more applications per system.
-
Memory Efficient -
unexpectedly perhaps, NetKernel's abstraction actually leads to reduced memory footprints and is more JVM GC friendly
-
For example, this dynamic web site and the
NetKernel Portal
are running
on a single NetKernel instance with 128MB heap.
-
Also running are the
Bugxter
bug tracking system, download and mirroring services, REST SOA callback services and
mailing list services.
- Typically it balances with a total memory footprint of about 40MB. So we have 3x margin of comfort.
Development Performance
- Faster development - less code, less coupling, more reuse.
- Human-scale modularity - partition your problem in to engineer sized units, bring them together without needing glue code.
- Shorter code, test, deploy lifecycles
Lifetime
- Hot deployment and transactional rollback
- Progressive update and version migration
- Legacy coexistence - new features never need to disturb existing functionality allowing for progressive evolutionary solutions.
A growing number of people are using and applying NetKernel
and ROC in a wide range of industries. A selection are presented here
A detailed analysis of NetKernel's performance and multi-core scaling is provided here. To see this for yourself
on your own systems, download NetKernel and try out some of the demos.
Especially look at the detailed nk-perf Benchmarking tool -
it will show detailed evidence of the linear scaling and constant load-line
throughput capabilities on your own hardware.
Strangely perhaps, but less so when you've played with NetKernel and explored some of the concepts behind ROC,
our most compelling evidence is the World Wide Web; the most successful
software system ever created. The Web succeeds because of its fundamental economic property:
All information systems are compelled to change. For the Web,
the value added by a change is greater than its cost.. More concisely, the Web is a software
model in which change is cheap.
You might not have realized it but the Web is an ROC system.
We demonstrate this in the first
NetKernel tutorial, where it shows that the Web is an instance of just one
basic ROC pattern using a single ROC address space.
Its cheap to create, modify, augment and evolve solutions
in the Web. The Web is an instance of an ROC system, it follows that it is cheap to create, modify, augment and evolve solutions
in ROC. The existence and success of the Web demonstrates this over the long term.
NetKernel is a generalization of the ideas behind the Web, for the first time it allows the Web's economic
values to be applied to any class of software problem both Web and non-Web.
Architects will instantly appreciate the potential and new
clean patterns they can design in the ROC domain.
But moving to and using ROC doesn't require a sudden and complete conversion.
Existing code can be brought to an ROC architecture unchanged and then progressively
adapted to take advantage of the new flexibility.
When you know ROC, it takes about 2 days for you to get an existing Java developer up to speed with
the new dimensions offered by ROC.
One of the beauties of ROC is that it allows architects to focus on what they do best -
designing the structure of information systems.
Because code is separate from architecture, the high-level design can be refined without
concern for code details and if code is required, that development can be left to
the coding experts - using which ever language they prefer.
Take the red pill and you will certainly see the world with new eyes.
How much you gain from this depends on what motivates you. Is your motivation
to solve problems or to write code? If it's the latter then you are taking a
risk since with ROC you will solve problems with much less code.
There is a learning curve to ROC, just like there was when you learned object oriented programming.
It is no longer and no steeper, just different.
You can teach yourself ROC by playing with NetKernel and its hot-installable tutorials.
Your risk is the investment of time. Learning ROC is as much about letting go of
your preconceptions of what software is and does. You will reduce your risk by
retaining an open mind and a willingness to play and explore the new
landscape.
Watching and learning from an expert will shorten your time to productivity and
certainly lower your risk. We can help with a range of training to accelerate your
success.
NetKernel implements the Resource Oriented Computing abstraction and as such it is a general purpose platform.
NetKernel powers very large scale telecoms systems, very large online-retail web-properties, critical internet infrastructure such as purl.org,
commercial publishing platforms etc. It's scale invariant nature means it can solve small workgroup problems, and yet seamlessly
grow and scale to high-end architectural engineering systems.
Here are some typical uses:
- Information integration - a set of rapidly composable endpoints which adapt to many industry standard technologies means NetKernel is ideally suited to information integration. Examples include HTTP (REST/WS) , JMS, email, SMS and relational,xmldb and semantic databases.
- REST service platform
- Web application platform - especially with the XRL/TRL composition languages. Check out our NetKernel Portal to see a live example of a NetKernel web application.
- Language-X Enterprise Platform - Use NK as the X2EE platform where X is Groovy, Ruby, Scala, Python etc etc. Enterprise infrastructure and modularity for any language.
- ESB - with the unique property of coherent distributed caching.
- Cache-transform process engine
- Complex analysis and recursive algorithm optimisation (statistical reduction in O-complexity of traditional algorithms).
- XML/RDF/xxx pipeline processes
- Multi-transport adaption and bridging.
- Visual composition - with nCoDE, create palleted end-user-composable software solutions that you could even give to the CEO to "program" safely.
Perhaps one of the best examples of the use of NetKernel, is... NetKernel. All of the tools, services and systems of the NetKernel platform are themselves
ROC applications dynamically composed into the framework you're using now.
Download NetKernel Enterprise Edition to get complementary support - we'll help you get started
and show you how easy it can be to tap the potential of ROC.
For a fast track, schedule some training from a NetKernel ROC expert.
NetKernel and ROC is the result of over 10 years of hard-core computer science research,
painstaking care over implementation and real-world production experience
(NetKernel has been in production for mission critical customers, such as telecoms, for six years).
The foundational ideas were conceived back in 1999 when the founders of 1060 Research were in HP Labs.
We were experimenting with very large-scale internet payment systems and we learned that
low-level code was the wrong level for modern information problems.
You know things are wrong when the cost of developing a system exceeds
the transaction value or when the cost of change is higher than the value added.
We set out to develop a way to design and build software that transformed these economics -
to reach higher orders of solution, and drive down the cost of change when a businesses
information model must flex in response to changes in the real world.
In short we wanted software to be cheaper, malleable, and reach to wider scale.
NetKernel and ROC does this.
There is no single category of users.
NetKernel is a scalable, flexible and comprehensive platform.
You can find it powering Enterprise Service Bus architectures,
the Permanent URL System,
information gathering systems embedded deeply in telecom networks
or powering web sites and web services.
There's no catch. It's a cliche, but ROC really is a new paradigm. It works.
Its more fun than the old way of doing things. ROC solutions are less expensive,
more flexible and reach a wider scale. Look at the Web.
|
|
Configurations
Application Server
- server platform with multiple transports, advanced
modular hot-deployment and management tools.
Embedded
- use NetKernel as a POJO to introduce
caching and ROC scalability
inside
existing Java containers,
including Servlets.
Cloud
- virtualized NetKernel for high-availability
and easy cluster management.
|
|
"Since I have adopted NK at my company, it has started to fill blanks in much of our architecture whilst giving us massive productivity gains."
-
Chris Wensel
Fortune 500 Enterprise Architect
Enterprise Trial Offer
Try NetKernel Enterprise Edition free for 90 days.
Includes free access to the support portal
where you can get help, submit and track questions, collaborate and document
your project.

|