NetKernel/News/1/46/September_17th_2010
search:

NetKernel News Volume 1 Issue 46

September 17th 2010

What's new this week?

Catch up on last week's news here

Repository Updates

The following updates are available in both the NKEE and NKSE repositories...

  • ext-system 0.16.1
    • Space Explorer enhancements, ModuleList accessor no longer issues scary warning when metadata is temporarily unresolvable during boot/reconfiguration.
  • layer0 1.42.1
    • To prevent false-negative log noise we changed the log level when taking a default setting from "warning" to "info". Added "warning" when a user specified setting is malformed and we fall back to the default.
  • layer1 1.19.1
    • Exec accessor fix to the logic of ignoreStderr flag in config
  • nkse-dev-tools 1.23.1
    • Added additional cross-links to space explorer so that you can now find all the references to a given space in the system
  • standard-module 1.27.1
    • Added metadata to overlay base class to support exposing space relationships
  • wiki-core 1.7.1
  • wink-slinki 1.7.1
    • Added "active macro" enhancement to the Wiki runtime (see below). Slinki updated to latest slidy.js plus gets new macros.

Wiki Engine - Active Macros

Brian Sletten and I have been pushing the usage of the SliNKi presentation application [I'll be using it for my slides on Tuesday evening (see below)].

It turned out that we needed to be able to provide arguments to macros. However it would have been disruptive and have added user complexity to have changed the WiNK core processing model. Which treats the enclosed content as an opaque string. Therefore I've enhanced the Wiki runtime to implement "Active Macros".

In essence an Active Macro is the regular WiNK macro syntax but augmented to support regular NK active URI argument syntax in the declaration. For example here is a dummy macro called "mymacro" with two active URI arguments...

{mymacro+arg@something+arg2@res:/some/thing/else} ...body string... {/mymacro}

As before, a WiNK macro is interpreted and translated to a corresponding ROC request, in this case the active arguments in the macro are relayed on to this request...

active:wikiTemplateEngine/MYMACRO/XHTML
	+operand@[...body string by value...]
	+arg@something
	+arg2@res:/some/thing/else

This new capability has been used to implement several new features in the SLiNKi app.

Full Story

For those that are interested, active macros are really syntactic conveniences since the full power of declarative requests is available anyway. For instance, the example above is exactly equivalent to...

{request}

<request>
  <identifier>active:wikiTemplateEngine/MYMACRO/XHTML</identifier>
  <argument name="operand">
    <literal type="string">....body string....</literal>
  </argument>
  <argument name="arg">something</argument>
  <argument name="arg2">res:/some/thing/else</argument>
</request>
{/request}

Which is a lot richer (supporting literal arguments and functional nesting) but is not so user friendly!

SliNKi

There is an updated version of the wink-slinki package in the repositories. This now features the most recent release of Dave Ragget's slidy.js which has improved browser coverage as well as being a major refactor to be more friendly to other javascript libraries by only instantiating a single w3c_slidy object with encapsulated functions.

In addition we've added several new macros to the SliNKi toolset. These include general background support...

  • {background} - very similar to {slidy} it declares a background template that will appear on all slides. You can use CSS positioning to place content at fixed locations in the slide.
  • {background+class@mystyle} - this is the active macro version of background and it declares a named background style (the name being defined by the class argument).
  • {slidy+class@mystyle} - this is a slide declaration that will use the class as its background template.

We've also added some layout helper tools

  • {centerh+width@200px} - this will horizontally center the enclosed content with the width specified in the argument.
  • {centerv} - this will vertically center the enclosed content.

Given that we now have extensible backgrounds etc we've put some effort into making the demo presentation look better...

http://wiki.netkernel.org/wink/wiki/slidy/demo

You can view the source of this presentation here.

Oh, so that's what ROC looks like

You know all these updates, apps and demos I keep posting each week. I know, you smile politely at them, and think "If I just humour him maybe he'll go away" as you would if I were a babbling madman on the underground.

Its not that I'm talking rubbish (well not all the time). Its just that when all you have is English and/or source code, it takes a lot of effort to describe stuff. And indeed, just as much effort for the reader to explore and get any real sense of what each of these ROC systems is doing and how they're structured.

For example, there's a tutorial that explores in depth the architecture of the WiNK application:

http://docs.netkernel.org/book/view/book:tutorial:wink/

Even though it took about a week to document and includes my best efforts at some ROC architecture diagrams, such as this...

...it still takes an effort of will for a reader to relate this back to the source code, the space explorer etc etc.

ROC Dark Matter

The situation is that for many years now, Tony and I have been inhabiting ROC world. We've gone native, we speak the language. Like breathing, we've forgotten we're doing it and we take many things for granted and, to be frank, its plain hard work stepping back to explain ourselves.

This isolation has been necessary. We could never have closed the circle on the ROC abstraction if we'd not stepped over and totally immersed ourselves. But today the circle is closed and we're well aware that we have to provide new ways to describe and allow others to explore and inhabit the ROC landscape.

This isn't a sudden confession or a new revelation. In fact, we've been painstakingly preparing the path to deliver ROC accessibility for four years. Indeed, about 50% of the effort in developing NK4 has been in ensuring that the system would provide a rich resource-oriented metadata model that would enable ROC architecture to become tangible.

To date this metadata has largely been the Dark Matter of NK4.

However, with this backstory, you'll appreciate that I'm more than a little bit excited to be able to reveal that: The ROC dark matter is starting to light up.

First Contact

This week we got the first glimpse from a new graphical ROC explorer tool. Its early days, the layout algorithms are in flux, but we've grabbed some snapshots to share with you.

Here, for example, is a view of a portion of the WiNK spacial architecture...

You can see that it starts on the left with the WiNK Web Application space and shows the public and protected channels discussed in the ROC architecture guide. You can see from the inset that its the same as my hand drawn diagram but with a horizontal layout and more depth than I could draw!

The tool reflects the realtime structure of the dynamic ROC system but at present is still only generating static snapshot diagrams. But the NK4 system is pre-wired with linked "Dark Matter" which, as the tool evolves, will be revealed to give a full interactive ROC architecture explorer.

Even at this preview stage its already showing huge potential. For example here's what my production HTTP Front-end-Fulcrum looks like. It looks scary but this is showing a very high altitude view of the full production-side of my system. The eventual tool will provide filtering, focused selection of regions of interest and much more. However even though this is an intricate satellite image it still reveals plenty of insight into the architectural landscape.

I've annotated the diagram to show some of the patterns I've used. Click the image to expand it then click again to toggle annotations (be patient the images are pretty big)...

A view inside an ROC architects head: 505 spaces with 454 links
[Click to expand, click again for annotations]
The region marked "YOU ARE HERE" is this WiNK wiki application which you're currently using.

Grasping ROC's power takes time when you're coming to it from a traditional perspective. Especially when you discover that ROC fundamentally decouples architecture from code. Over the next few newsletters I'll use the ROC architecture explorer tool to take you on a tour of the ROC world.

Talk: Resource Oriented Cloud Architectures

Don't forget, I'll be giving a talk on Resource Oriented Cloud Architectures at SkillsMatter in London on Tuesday (the 21st September). I'll certainly be using the new tool to illustrate the cloud architectures.

As usual its a free evening event which usually ends-up down the pub. It requires registration, so book here now.


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