[cap-talk] Objects and Facets
Charles Landau
clandau at macslab.com
Sun Aug 6 22:02:56 EDT 2006
At 5:56 PM +0100 8/3/06, David Hopwood wrote:
>Neal H. Walfield wrote:
>> I understand the terms object and facet in the following way: an
>> object encapsulates some state which can be sensed or manipulated
>> through capability invocations; a facet presents an object with
>> diminished authority, e.g. a read-only facet.
>
>My understanding is that the facet pattern
>(http://c2.com/cgi/wiki?FacetPattern) is a particular simple kind of
>authority diminishment, in which the facet presents a subset of the
>interface of the object to which authority is to be diminished.
This definition of facet in terms of an object interface raises the
question, what is an object?
Neal and many others associate an object with some state. Consider
then a stateless capability such as the Discrim key in KeyKOS
(http://www.cis.upenn.edu/~KeyKOS/agorics/KeyKos/Gnosis/43.html#discrim)
and EROS (http://www.eros-os.org/devel/ObRef/kernel/Discrim.html).
Does it refer to an object?
My belief is that while the term "object" is a wonderful informal
concept, it has no formal definition. Consider a start key to a
process implementing an Ethernet socket. From the kernel's
perspective, the start key is a facet of a process object, and an
invocation of the key just delivers a message to the process. From a
higher perspective, the object is the socket service, and an
invocation of the key sends a message on the socket. From a yet
higher perspective, the object is something on the other end of the
socket, and an invocation of the key sends a message and receives a
response from that thing.
Thus I also believe that the term "facet" is a wonderful informal
concept with no formal definition.
The only formal reality is capabilities and processes.
More information about the cap-talk
mailing list