Node facets

In addition to service facets and netlet facets, nodes can offer facets, too. These are called node facets.

Node facets are available to netlets running in that node, and provide a way of nodes offering facilities to netlets.

For example, one facet offered by Nodality is its ``execution'' facet. Through this a netlet can terminate other netlets, groups, and so on. However, this is generally available only to the external netlet since that is the privileged system administrator's connection.

Also Nodality offers an administration facet through which any netlet may choose to add to the node facets already available. This is what one of our hello world examples uses: an initial netlet provides the node with its hello facet. A client netlet can then pick it up from the node--see Figure [*].

Figure: Consumer netlets bind to node facets. In (a) the facet is provided directly by the node. In (b) the node gets the facet from a provider netlet, although this is invisible to the consumer netlet.
\resizebox*{0.75\textwidth}{!}{\includegraphics{images/node-facets-colour.eps}}

It is worth mentioning that we don't require execution and administration facets to exist on a node. It's something particular to Nodality. Nor do we insist that netlets can add to the node facets currently available. Again, this is a feature of Nodality. But it's a very useful feature. For example, Nodality could offer a hello world service as standard, and have this service hardcoded into it, but it doesn't seem very futureproof. More to the point, it could offer a banking service as standard, but banking standards and affliliations are bound to change and may not always be needed. Nodality's solution is to allow these services to be supplied by netlets which in turn provide them to the node. When needs change it is just a matter of changing the netlet, not rewriting Nodality. This elegant ``plug-in'' architecture gives us a node which is small, expandable and futureproof.

Nik Silver 2002-03-09