NetKernel TM

Resource Oriented Computing

The NetKernel Resource Oriented Computing (ROC) platform separates architecture from code. Now you can compose your architectural design, prove that it works with unit tests and modify and perfect your design with agility before you even consider if code is needed.

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.

ROC in a Nutshell

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.

Information integration, ESB, general middleware, REST service platform, embeddable cache/transform process engine, XML pipelines, multi-transport adaption and bridging. It also makes an excellent and very high performance web platform, especially with the XRL composition language. Check out our NetKernel Portal to see a live example of a NetKernel web application.

Whatever you need to build, spend some time learning the basics of ROC and then leverage the new high-level architectural elements such as space, resources, endpoints and requests in your architectural designs.

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.

Editions

Two editions are available:

NetKernel Standard Edition - the open-source platform.

NetKernel Enterprise Edition - assured production stability, support and an enhanced tool set for deployment and development.

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 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.

download now