NetKernel/News/3/22/May_4th_2012
search:

NetKernel News Volume 3 Issue 22

May 4th 2012

What's new this week?

Catch up on last week's news here

Repository Updates

No repository updates this week, steady as you are...

Updated HTTP Transport

We've done the work to update the HTTP transport to Jetty 7.6.3. The backstory is that we've held off on updating Jetty too frequently since its a critical component in many production systems. Furthermore since last summer NK5 added early WebSockets support but chasing this too closely was futile since the HTML5 standard and web-browser support were rapidly evolving.

WebSockets now seems to be more stable and so we've put the effort in to update our implementation to use the most current version present in the latest stable 7.6.x branch of Jetty.

The main work required was a small rewrite of the WebSockets support. The good news is that this now seems well supported on modern browsers and the existing early demos still "just work".

Release Plan

As ever with HTTP we're going to allow some time to watch this in production use before we release to the repositories. Our servers are running it now (including this wiki). You can try it out for yourself here...

http://temp.1060research.com/2012/05/urn.org.netkernel.tpt.http-2.21.1.jar

One word of caution - if you're an NKEE user and you're using the AsyncHandler you should not use this candidate. We discovered that the core Jetty continuations API was fairly radically revised and this required a rewrite of the AsyncHandler. We're actually also running the AsyncHandler in production too (including this site) and will release it to the repos when we're happy with core update.

In testing we've done production log replays using httperf and have seen rock steady performance of both sync and async for over 3-million requests at a constant rate of 250 requests/sec. So indications are that things look very solid.

But we still prefer to live with it in production for a while just to make sure there are no surprises.

Tom Latest

Tom has set the cat amongst the ducks...


Today I discuss ... the nature of ducks.

http://practical-netkernel.blogspot.com/2012/05/nature-of-ducks.html

A special discussion topic for this post has been opened at

http://www.netkernelroc.org/nk4um/topic/71/.

Do join the fray !

As always, your feedback and ideas for future posts are most welcome at practical<dot>netkernel<at>gmail<dot>com.

RESTOverlay <verbTranslate>

Tom's blog entry is a recurring topic. I don't have time today, but next week I'll try to provide an overview of why it is actually a deep and subtle topic. Also, why historically I have been reticent to have infrastructural tools perform automated verb translation.

However, since I was just about to ship the HTTP updates discussed above anyway, I was spurred into action. So this morning I went and refamiliarised myself with the RESTOverlay implementation. After 30mins I'd implemented a general user configurable REST->ROC verb translation option. Here are the docs...

<verbTranslate>

Purpose

The RESTOverlay can perform dynamic REST to ROC verb translations. If this tag is specified the following default translations will occur

  • GET: SOURCE
  • POST: SINK
  • PUT: SINK
  • DELETE: DELETE

Otherwise default to SOURCE.

If the target verb is SINK, the httpRequest:/body resource will be SOURCEd and then used as the Primary argument in the SINK request.

Tag Value

If the tag has a value it may provide arbitrary overrides for method to verb mappings. The syntax is a comma separated list of method:verb mappings. For example:

POST:NEW,HEAD:EXISTS

These values will override any setting in the defaults and any unchanged defaults will be used.

Note - if you choose to use verb translation, you should be aware that the opportunity which ROC enables to cache POSTs (and other entity bearing HTTP methods) will no longer be available. There are deep and subtle differences between REST and ROC. ROC is a more general abstraction and can systemically normalize state - which means that it is possible that state transfer is not required at all. But we're also pragmatic - so if this verb translation is useful for you then its simple to set up.

This new feature is available in the preview http module.

As it says above, if this helps make life simpler for you then no sweat. But next time I'll try to attempt to explain the branching "many-worlds model of state and reality" that lurks beneath.

In the mean time, please let us know how you get on with the HTTP update and this new verb-translation capability.

Supporters Found

We're very pleased with the response we've received to the vacancy notices. Its enormously flattering that so many of you have indicated you would be inclined to throw your lot in with us. Its especially humbling given the quality and depth of talent that you possess.

We're expecting to be moving forward with the process over the summer/autumn so watch this space.

Its not too late to be considered. We're going to need smart guys who can assist in every area. Support, development, training, consulting etc etc... and there are still so many things to do on the research/dev side we have barely scratched the surface...




Have a great weekend.

Comments

Please feel free to comment on the NetKernel Forum

Follow on Twitter:

@pjr1060 for day-to-day NK/ROC updates
@netkernel for announcements
@tab1060 for the hard-core stuff

To subscribe for news and alerts

Join the NetKernel Portal to get news, announcements and extra features.

NetKernel will ROC your world

Download now
NetKernel, ROC, Resource Oriented Computing are registered trademarks of 1060 Research


WiNK
© 2008-2011, 1060 Research Limited