Introduction to NetKernel

27 May 2014 14:36
Tags netkernel

Back to list of posts

In March 2014, I met the founders of 1060Research at a training course given by Tom Gilb held at the British Computer Society in London. Over the past 12 years, Peter Rodgers and Tony Butterfield have developed the concept of something they named Resource-Orientated Computing ("RoC"), which attempts to bring the scaleability and zero-coupling economy of the world - wide web into the domain of individual applications. The NetKernel platform is their concrete, production-hardened implementation of the RoC principles. In a short 40 minute presentation, I saw enough to be immediately intrigued by this new approach.

In a nutshell, RoC and NetKernel focus on the information (or "resources") present in a software system as the primary architectural and compositional entity, rather than the physical code. In fact, everything becomes a resource, including the application state , but also the code itself, and all of the configuration needed to wire up the application. To the kernel, everything is normalised to the same core few ideas of requests, endpoints, representations and resolution. Once you have understood this, everything changes compared with the static object-orientated programming model.


Over the next few weeks, I read through much of the extensive documentation, installed the NetKernel server, watched some Youtube videos and walked through some of the available tutorials.

I then decided the best way to really gain a working understanding of RoC and NetKernel was to implement a real-world application based in some of my recent work experience. I also decided to keep a detailed diary of my progress through the implementation, recording lessons learnt and issues encountered along the way. I therefore started work on the NK-PKS prototype project, which I open-sourced on my github page. The "PKS Diary' documentation is embedded in the main PKS NetKernel module, and can be viewed in the NetKernel Documentation portal once the NK-PKS modules have been installed in a NK instance.

Comments: 0

Add a New Comment

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License