Preface

Welcome. If you are reading this, you’ve probably heard NetKernel mentioned in some XML-related workshop, pretty much like I did back in 2006. Or maybe you have heard about Resource Oriented Computing (ROC) and want to see a practical implementation. Or maybe . . . Whatever your reasons for reading it, this book intends to take your hand to show you the wonderful world of NetKernel.[1]

Audience

This book is intended for beginning and intermediate ROC-ers.[2] There is a learning curve to ROC (and NetKernel), and this book will help you along that curve.

Downloads

Where relevant (when I feel the codelist is long), a Dropbox link will be provided in the chapter that discusses the module. Note that external softwares (usually found in the module’s lib-directory) are not included in the zip. I’m just a poor microserf, I can’t afford big downloads.

Conventions

This book was created with the Scite editor in the DocBook V5.1b2 format and adapted to the V4.5 format that O’Reilly uses.

Below you can see how I’ll be formatting operating system output. When instructions are mixed with output, the instructions will be put in bold.

your_user@ubuntumachine:~$ aptitude -vvvv moo
Okay, okay, if I give you an Easter Egg, will you go away?
your_user@ubuntumachine:~$ aptitude -vvvvv moo
All right, you win.
                            /----\
                    -------/      \
                   /               \
                  /                 |
-----------------/                   --------\
----------------------------------------------
your_user@ubuntumachine:~$ aptitude -vvvvvv moo
What is it? It’s an elephant being eaten by a snake, of course.

Screenshots in this book are from a live system. They are slightly edited with Gimp for efficiency and security reasons.

image with no caption

When something is expected from you (imagine that), you’ll find an operator (verb indicating an action) underlined in the text, followed by an operand (the thing acted upon) in italic.

  • Push this.

  • Shake that.

When relevant, you’ll find the exact instructions to execute nearby.

In Part I, the prerequisites for a given chapter will always include prior chapters (in order). In Part II, chapters can be read as needed. Chapter 3 is the exception to the rule, as it can be read separately from the rest of Part I.

Great expectations

I want to make something clear about this book. It is not a reference guide. We all know those; they contain each and every argument (described in one line of text) to each and every function (described in one line of text) of the library/tool/programming language under discussion. Examples—if any—run along the lines of computing Fibonacci numbers. Very practical . . .[3]

Even in the second part of this book, where I’ll discuss a couple of technologies in detail, I do not intend to write like that. I’m sorry. So sometimes I will point out where you can find the documentation, and you’ll have to go and look for yourself.

So why write this book if the available documentation is so great? Well, the available documentation is often in reference form. And while you can find everything in there (including a couple of excellent walk-through tutorials), you might get lost or stuck or frustrated because the thing you need only has a javadoc (it doesn’t get more reference than that) available.

Don’t know much about history. . .

1060 Research was founded as a spin-off of original research (codenamed dexter) undertaken at Hewlett-Packard labs. The 1060 team created and implemented the Resource Oriented Computing model in what you and I know as NetKernel. In the meantime, this technology is more than 10 years old and has proven itself in sectors ranging from telecoms, to insurance, to banking, to the military.

If you wonder about the 1060. have a look at how Roman numerals work and then try this: X + M + L = . . . Makes sense, doesn’t it?

10,600-foot view of ROC

If you want a more complete (and correct) explanation than you’ll get here, have a look at Introduction to Resource-Oriented Computing, Part I. Be warned though that it is a tough read and that intimate knowledge of both Plato and Jack and the Beanstalk could prove helpful.

So let me give you my view on ROC after working and experimenting with it for about six years:

  1. Everything is a resource. That includes your code, my code, the compiler, data in the database on my workstation, and data encrypted steganographically in an image from the National Art Gallery in Kuala Lumpur.

  2. After you’ve grasped the above (and that may take some time), you’ll slowly stop worrying about where and how those resources are implemented.

  3. Instead, you’ll focus on what you want to do with those resources, doing what you want to do with them in small, simple services that you can string together into as complex a system as you can imagine, and probably way beyond that.

  4. Last but not least, you’ll stand amazed at how your system scales in exactly the same way as the Internet scales.

Why bother?

When I was in school (Anno Domini Nostri Iesu[4] 1992) for my bachelor’s in IT, we got an introductory session on the NeXTSTEP platform, the platform that was going to make us obsolete within the next couple of years. And after the impressive session, most of us believed it.

Nineteen years later, I’m still in IT. People still use Cobol, PL1, and CICS as they—well, obviously not the same people . . . I hope—did before I was born. NeXTSTEP only survives in the Apple OS.

If you’ve been around in IT for a while, you’ll have such a story of your own. There’s always the next best thing that will take away all the pain of software development completely, and both teachers and managers will always love it. But if one really has to say what technology has worked in the last 15 years, one would have to say the Internet. It has grown beyond imagination.

Resource Oriented Computing combines the core ideas of the Internet, Unix, and Representational State Transfer (REST) into a new and potent whole:

  • From Unix—the idea of using simple tools that share a common interoperable data model (e.g., awk, grep, sed, etc.) 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 as the Web

NetKernel brings all this to an infrastructure near you!

“Don’t take my word for it”: in retrospect, I’d have liked to hear the guy who showed us NeXTSTEP say that. In fact, our class did meet him again as a mime at some IT gathering later that same year. It turned out that he was out of a job only weeks after giving us the presentation.

Each following chapter will contain a lot of hands-on NetKernel stuff you can try at home. In fact, I’m counting on you to try it at home!

Using Code Examples

This book is here to help you get your job done. In general, you may use the code in this book in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product’s documentation does require permission.

We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “Resource-Oriented Computing with NetKernel by Tom Geudens (O’Reilly). Copyright 2012 Tom Geudens, 978-1-449-32252-6.”

If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at .

Safari® Books Online

Note

Safari Books Online (www.safaribooksonline.com) is an on-demand digital library that delivers expert content in both book and video form from the world’s leading authors in technology and business.

Technology professionals, software developers, web designers, and business and creative professionals use Safari Books Online as their primary resource for research, problem solving, learning, and certification training.

Safari Books Online offers a range of product mixes and pricing programs for organizations, government agencies, and individuals. Subscribers have access to thousands of books, training videos, and prepublication manuscripts in one fully searchable database from publishers like O’Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology, and dozens more. For more information about Safari Books Online, please visit us online.

How to Contact Us

Please address comments and questions concerning this book to the publisher:

O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (in the United States or Canada)
707-829-0515 (international or local)
707-829-0104 (fax)

We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at:

http://oreil.ly/ROC-NetKernel

To comment or ask technical questions about this book, send email to:

For more information about our books, courses, conferences, and news, see our website at http://www.oreilly.com.

Find us on Facebook: http://facebook.com/oreilly

Follow us on Twitter: http://twitter.com/oreillymedia

Watch us on YouTube: http://www.youtube.com/oreillymedia

Acknowledgments

If Paul Hermans had not pointed out “a small company that is on the right track” in a technology session back in 2006, you would not be reading this today. Thank you, Paul! Nor would you be reading this if that small company—1060 Research—had not created ROC and NetKernel. Thanks there go especially to Peter Rodgers and Tony Butterfield, not only for the creating part but also for guiding a rebel system administrator with a thick skull (me)!

While the people at O’Reilly made this book happen, it was Joe Devon that linked me up with them. It probably was a small mail for him, but it was a giant leap for me. Thank you, Joe! At O’Reilly, I want to thank Simon St. Laurent for taking a new writer under his wings.

Feedback is essential for a book. I especially want to thank René Luyckx of Steria Benelux, Joe Devon (yes, him again), and Christopher Cormack of DeltaXML for doing the technical review. Thanks also to Fredrik Carnö and Andrew Hallam for going through and catching both typos and inconsistencies.



[1] 1060, NetKernel, Resource Oriented Computing, and ROC are, respectively, a registered trademark and trademarks of 1060 Research Limited.

[2] Puns with ROC(ks) are encouraged in all use of NetKernel. It does make asking for a drink with ice at a NetKernel meeting a rather tricky thing to do though.

[3] This is sarcasm.

[4] In

Get Resource-Oriented Computing with NetKernel now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.