Resources
to get you productive quickly

Quick Start

In one minute you'll have built your first module, installed NetKernel and be playing with the code in Eclipse...

The GitHub getting-started project provides everything you need to get going really fast. Clone it and follow the 3-steps outlined in the readme...

  1. Build a getting started module
  2. Use gradle to install a copy of NetKernel, deploy the module and start NetKernel
  3. Set up an Eclipse project and start playing

Requirements

You don't need to download NetKernel in advance. All you need is a copy of Gradle and a Java JDK installation.

Download

In less than two minutes you can be running NetKernel Enterprise Edition...

NetKernel Enterprise Edition

  1. Download the NetKernel Enterprise Edition distribution JAR file from the NetKernel Portal. [Register for an account If you don't have one already].
  2. Boot NetKernel from the JAR file.
    java -jar 1060-NetKernel-EE-5.2.1.jar
  3. Point your browser to http://localhost:1060 to access the NetKernel management panels.
  4. Select the Install NetKernel service and then follow the directions.

NetKernel boots directly from its 25MB distribution JAR and can be explored immediately or use the installation service to create a fully customizable installation of NetKernel on your disk.

With NetKernel installed on your computer you can use the Apposite repository to obtain updates to modules and download and install new features. This will ensure you are running with the latest updates and capabilities. To access Apposite, select the Apposite tab and then the Apposite client service.

NetKernel Standard Edition

No thanks, I don't want the extra capabilities of NetKernel Enterprise Edition or free support in the NetKernel services portal, take me to NetKernel Standard Edition download

NetKernel Portal

The NetKernel Portal is the place to find our online Enterprise customer services

Support Channel

Contact the 1060 Support Team for help, assistance and advice.

Support

NKEE Download

Download copies of NetKernel Enterprise Edition

Download NKEE

NKEE License Administration

Request, manage and print license certificates

License Management

Newsletter

Our founder, Peter Rodgers, digs deep each fortnight and produces the NetKernel Newsletter. The newsletter is a mix of what's happening, repository updates and insightful editorial about ROC and the IT industry in general.

Read Latest Edition Browse Archive

To be notified of new newsletters sign up* here

* You will need to register with the NetKernel Portal to receive Newsletter notification emails.

FAQ

We're here to help!

Got a question that's not answered here?

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.

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

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

  • 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

Operations

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

Please take a look at our customer section for a list of customers we can publicly display.

Open Source

Share the value.

NetKernel® Standard Edition is the Open Source edition. The source code of every part of NetKernel is shipped with each library/module allowing you to inspect, debug and extend.

We publish NetKernel with a liberal open source license. Since NetKernel is an entirely modular platform, we had to write our own public license to meet our very specific intentions: we want you to be free to choose your own open source license for your own modules and not, as is often the case, have that choice imposed by the platform from below.

The overriding objective of NetKernel's 1060 Public License is that everyone should be able to share in the value of open-use of NetKernel's ROC abstraction. So the license requests that the modules you develop and deploy on NetKernel Standard Edition are OSI licensed and made publicly available with their sources so that everyone can reap the benefit.

Please read the 1060 Public License carefully and take a look through the FAQ for specific answers to licensing questions.

Powered By NetKernel®

Please remember to show your support for NetKernel in your open source software.

To satisfy the attribution clause (3b) of the 1060 Public License v1.2, have your application and services using NetKernel technologies clearly display a powered by NetKernel notice. If your software provides a graphical user interface then simply use this image (download from here):

Powered by Netkernel

Or, include the image within an HTML page by using the following snippet of HTML code:

				<a href="http://1060research.com">
					<img src="http://www.1060research.com/netkernel/poweredbynetkernel.png"
					alt="Powered by Netkernel"/>
				</a>

For more information about the attribution requirements for open source software, please read the license.

FAQ

Terms of Use

Yes, provided the applications and services you execute with the kernel are open sourced under an OSI certified license. You may only execute closed source applications if they have been certified by us. A supplier of closed source components will make it clear to you that their component has been certified.

If you want to execute closed source components and those components are not certified by us you must buy a commercial license from us.

You must also display clear end-user visible attribution that your system is Powered By NetKernel.

If you've read the 1060 Public License and this FAQ and you are either:

  1. Hosting remotely accessible applications or services on NetKernel for which you are not prepared to open source your code.
  2. Distributing the 1060 NetKernel in any form, including remotely accessible services (see below), with your application and you cannot allow your code to be open sourced
  3. Using the 1060 NetKernel to run closed-source components or applications not certified by us then Yes you must purchase a commercial license.
  4. Unable to clearly display "Powered By NetKernel" attribution notices.

For an explanation of remote accessible and distribution see below

You might also chose to purchase a commercial license as a less expensive alternative to the administrative costs of open source compliance - if you are happy to issue open source but it takes time and effort to ensure your code is publicly available and maintained then it may be convenient and cost effective to obtain a commercial license. You may also require a commercial license if you wish to purchase a support package - see support packages for options.

Source Code includes traditional procedural code such as Java classes, Java scripts, XQuery scripts etc, it also includes declarative code such as SQL queries, XSLT, DPML processes, XRL pages, XHTML pages etc, as well as any static configuration, documentation etc, necessary for the operation of the service or application.

All of these are considered to be source code and should be made available on a publicly accessible server under an OSI license.

Either your end-users need a commercial 1060 NetKernel license or you require a 1060 Development License. The 1060 Public License states that if your consumer has a publicly licensed distribution of the 1060 NetKernel, i.e. freely obtained, and they wish to install a component, that component must either be open source or must have been issued by an authorized 1060 Developer Licensee with permission to distribute and execute closed source executable components. If you do not obtain a Developer License then your consumer cannot execute your code or is obliged to obtain a closed source license. A 1060 Development License is a cost effective option, more details can be found atwww.1060research.com. Of course if you open source your component there is no problem.

Certainly, although if you publish your source you are free to use it anyway. Please contact us to discuss your requirements.

The 1060 Public License is carefully constructed to mandate that applications and services developed on top of NetKernel must also be open-sourced. In short, NetKernel is on the commons but you have to pay to take it off - in particular, unlike GPL, this kicks in when using NetKernel as a part of a remotely accessible service. To put it another way, our users must pay to keep their code private.

We believe that there are many applications for which the open source licensing conditions will be acceptable and this will encourage propagation of the 1060 NetKernel and increase the capability of the platform to everyone's benefit.

We also believe that in many commercial deployments it would cause difficulties to conform to an open source model. For example, an application that embodies a business relationship, a specialist application for a limited commercial market, a custom system integration application developed in confidence by a consultancy for a client. In these cases we offer a conventional closed source commercial license.

Even where open-source is not commercially sensitive the administrative cost of compliance with our open-source requirements may be higher than the cost of acquiring a license. In this case a commercial license is cost-effective compared with monitoring access to and maintaining public source code.

Lastly you may require a license if you require certain support packages.

Redistribution

Distribution is the deployment of 1060 copyright code or executable with your application to more than a single geographical site - by this we mean a location with a postal address characterized by a zip/postal code.

In particular we consider an application or service hosted at one physical location that is invoked from a remote physical location to be a distribution - as such any source code for the application or service must be published under an OSI approved open source license and made available on a publicly accessible server, unless closed licensing terms have been agreed with 1060 Research.

Yes, provided you are licensing your application under either the 1060 Public License or an OSI certified license. However only your own application source code is covered by your chosen license, the 1060 NetKernel must only be redistributed under the 1060 Public License.

In addition you must prominently display the 1060 copyright information and reproduce the 1060 Public License in full. The 1060 Public License obliges you to provide, with your distribution and on a publicly accessible server, the source code to any of your application code that invokes the kernel directly or embeds the kernel as a component of a larger application or invokes the kernel through an RPC or remote service call for example using SOAP.

If you cannot open source your application/component you must obtain a commercial license from us to distribute the 1060 NetKernel.

Yes. We require that remotely accessible code, or software as service as it is sometimes called, is equivalent to a full redistribution and so the usual distribution terms apply. Therefore you may freely use the 1060 NetKernel if you release the source code to your service - if you do not wish to release your source then you must obtain a closed license.

Yes. Even though the service is private you are allowing access from a different location and so this is a distribution. You are required to provide the source code to your application on a publicly accessible server, or obtain a commercial license.

No, you are free to use the 1060 NetKernel on as many machines as you wish at a single physical site. However if you require support you may need to purchase support licenses for each installation - please see the support packages for details.

Open Source

Yes and No.

The license requires that any component or application that is distributed with the 1060 NetKernel must be licensed under an OSI open source license. This is not viral it just says a redistribution must be open-source or else a commercial license must be obtained.

However if the 1060 NetKernel is modified, or combined with any other software either embedded or as part of service, then a distribution of the derivative software must be licensed under the 1060 Public License. This is a self-propogating license requirement similar to the self-propogation of the GPL.

The 1060 Public License is a commercial open-source license. It is designed to permit free use but place strong constraints on closed source redistributions. A license for closed source redistribution can be purchased from www.1060research.com

We believe that open source code offers many benefits over closed source code in particular for infrastructural software technologies - we believe the GPL should be recognized as largely responsible for this. We also recognize that for pragmatic reasons much commercial code will remain closed since it implements trade secrets or codifies business relationships.

We required a license that maintained the spirit of the GPL but also allowed us the opportunity to issue commercial licenses for those parties that cannot conform to a fully open source model. In addition we wanted usage terms (1a) that mandate open source technology - this requirement will have limited effect on the open source community's use of the software but will hinder commercial users who have not purchased a license.

Furthermore, we required a license that was compatible with the current growth of 'software as service'. The GPL has a traditional view of a software application and libraries, we wanted to clarify the usage and distribution terms for both the traditional application and the remote software service models.

We are exploring the relationship between the 1060 Public License and the GPL. Both make requirements about the licensing for a combined work. Until this is clarified the 1060 Public License is the only license under which you may redistribute a combined work. The relevant part of the GPL states:

"This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License."

Whilst we don't consider the 1060 NetKernel to be a "proprietary program" the simple solution is to license your component or application using the LGPL. If you really want to use a GPL license for your software then you cannot currently redistribute any 1060 Public licensed software with it. However, an end user may freely use the 1060 NetKernel with your GPL component but you must effectively make two separate distributions.

There are many open source models and philosophies. In practical terms we believe open source is the best model for developing robust, secure, trustworthy software. We believe open source provides the consumer with an assurance of openness from proprietary lock-in. We believe widespread propagation of a common open software infrastructure benefits everyone. We are pragmatic, we summarize our position as: If you're open we're free. If you cannot open your source code you need a license from us. We believe this position is to the maximum benefit of all.

There are several well known companies that offer closed licenses to their open source technologies. For example: Sleepycat and the Berkley DB, MySQL and the MySQL DB and GhostScript. We believe this will become an increasingly common model for commercial software companies.

We have not yet requested certification of the 1060 Public License. We are not clear whether our usage term 1a, which states that a licensee can freely execute open source components but cannot execute closed source components unless certified by us, is in accordance with the OSI. Not to be OSI certified may look hypocritical but we are also a commercial concern with a business model that is expressed through our license. We would very much like to receive OSI certification since we believe our license is closely in spirit with the OSI.

It turns out that there's no pleasantries permitted in law ;-) We don't want the license to be mean spirited and we hope you'll find it a generous proposition. However the lawyers insist that legal agreements are unambiguous and clear and so that means terse and sometimes hard-nosed language.

Software patents are increasingly recognized throughout the world as legitimate intellectual property rights and we have no choice but to respect them. Unfortunately software patents may prove to be disproportionately restrictive to the open source community since the source code is available and can be contested by a patent holder - unlike closed source which may be equally infringing but is not observable.

The open source community can best defend itself against patents by frequently publishing in the public domain as many software inventions as possible. An invention that has been publicly published cannot be protected by a future patent claim. In the case of a patent that has already been filed, the community can help by seeking to find prior art (previously published public knowledge) that defeats the claims of the patent.

For commercial reasons we must reserve the right to apply for patents in NetKernel technologies. Such patents as are granted will be used for defensive purposes both for ourselves and the broader open source community. We will create an open patent pool that will be free to license for legitimate open source projects.