As we know, netlets provide services. In programming terms, a consumer
is given a service interface by a netlet. See Figure (c)
which is a refinement of Figure
.
A facet is an interface to use a feature of a service.
A service can be quite complex and may need serveral facets. For example, a service may offer two facets: one facet for general use and one for usage accounting. A storage service may offer one facet for file read/writes and one for transactions. Our hello world service offers one facet, through which the message is obtained.
Just like services, a facet needs to be bound. A netlet cannot get a hold of a facet without binding to it, but once bound it can use it just like any other object.
So the general procedure for a netlet to grasp a facet is: (1) bind to a service; (2) get its list of facets; (3) bind to one of them. Step (1) is achieved just by presenting a warrant to a node, and if the netlet already knows the name of facet it wants then it can skip step (2), so the the procedure is really (1) bind to service; (2) bind to facet.
Figure (d) is a refinement of
Figure
(c). It shows how netlets
provide services which provide facets.
Nik Silver 2002-03-09