[cap-talk] Another "core" principle

Marc Stiegler marcs at skyhunter.com
Mon Dec 18 13:40:48 CST 2006


Jonathan S. Shapiro wrote:

> This is all true, but completely irrelevant. The type of intertwining
> that concerns me does not arise from cruddy engineering. It arises from
> the fact that real users in real systems are going to build *documents*
> consisting of intertwined capbilities. It is not the underlying
> applications that are unstructured. Rather, the claim is that in an
> object system the natural content model for document-like content is an
> intertwined space of capabilities.
> 
> Regarding your claim that this hasn't been seen in the field: perhaps
> you haven't heard of the MS Object Linking and Embedding protocol.
> 
> In OLE, the bad effect results from files being deleted rather than
> capabilities being severed, but the end result is precisely the same.
> For document transmission, application authors have been forced to bad
> expedients such as caching a WMF image in the document containing the
> OLE link source. Meanwhile, users have learned that out-of-document
> object references cannot be relied on.
> 
> I claim that not only is the problem real, but it has been observed
> continuously in the wild for at least 10 years, and it is the single
> greatest impediment to the utility of OLE.
> 
> Fundamentally, the OLE problem is a failure of GC and object reference
> preservation of exactly the type I anticipate will occur under membrane
> revocation.

Great example problem, and I agree that I was answering the wrong 
question earlier. Let me break this down into 2 problems that we can 
discuss independently:

-- Problem 1: Document composition has some hard problems for which the 
Windows solution is inadequate, and caps don't help.

-- Problem 2: With a cap system, document composition will be a more 
common, more popular pattern. Therefore, without a better solution to 
problem 1, the resulting system of mixing docs with caps will be a 
solution that is worse for the user.

You may find my answers to both these problems inadequate. I find my 
answers barely satisfactory, and look forward to having a caps-oriented 
desktop with which to experiment some day, to build better answers.

Answer to question 1: do caps help with document composition? The answer 
is, it sometimes helps, but not often enough to make one feel great. In 
my current visualization of a real CapDesk, the concept of "document" in 
Windows is separated into 2 distinct notions: a "live document", which 
is the persistent state of a document+app and a "dead document" that is 
just data. On windows, this distinction is partially implemented in the 
difference between rtf (dead) and doc (live) files: rtf is just the data 
for the document, but the doc file remembers various state features, 
such as the size, shape, location of the window, and where the cursor 
was in the file. On CapDesk, a live document remembers its state, which 
includes all its authorities. So if I send you a reference to my live 
doc, or a copy of my live doc, a correct implementation will send either 
a ref with all the auths, or a copy of all the things at the ends of all 
the auths. In other words, if I send you a copy of the live document, 
you will receive a copy of all the documents in the composition. But if 
I send you a copy of the dead document, you have the traditional OLE 
problem.

Answer to question 2: Truthfully, I can't get myself worked up over this 
problem because the answer to problem 2 is, people will work at a level 
of abstraction, and a level of granularity, that works well for them. 
Humanity has done experiments with level of granularity at which to 
handle data and docs in the past, and the answer always winds up being, 
people gravitate to something coarse enough to handle easily, and fine 
enough to be useful in the context of the project being undertaken. 
StarOffice aggregated office apps too coarsely, and Open Office fixed 
that. There were products for the Mac in the late 80s that tried to 
compose larger documents from smaller ones, and they failed because they 
were too small to handle easily (I can't even remember the names any more).

With caps, the natural level of abstraction/granularity at which to work 
is the level of abstraction at which our acts of designation give us 
convenient handles. As our tools for designation improve, so do the 
handles, and so do the caps that ride up on them. Hence, with a cap 
system, the quality of our security machinery might indeed improve as an 
emergent property of our improvements in user interface design. But 
forget such hopefulness and let us move straight to grumpy skepticism. 
As a worst case, even the simple current CapDesk demonstrates that caps 
work well with the document level of coarseness/abstraction. In the 
absence of improvements in tools of designation, the default is people 
continue to work with objects at the level of granularity at which they 
are currently accustomed, and use revokers at that same level of 
granularity -- which is, incidentally, even on its worst day a better 
situation than the situation that arises when you have security that 
operates at some different level of granularity/abstraction than the 
level of natural designation, because the level of granularit of the 
security action maps naturally to what you were doing.

Will this neat rationale fail sometimes? Sure. Will it fail at times and 
in ways that the current system does not? Probably, it is sufficiently 
different so we can expect human failures, with the quite different user 
interfaces to these things, to fail at differently. Will it fail more 
often than with current systems? That is just hard to believe, because 
people will have tools better in tune with their own mental models of 
what they are doing than today's systems allow.

P.S. It occurs to me that the OLE problem is the opposite failure from 
the problem we have been arguing about up to this point. The last 
arguments we were having were about the risk that caps would result in 
giving too much authority away too easily. The OLE argument is an 
argument that caps will lead us to not give enough authority away often 
enough. It is certainly the case that a technology can simultaneously 
make it more likely that we give too much authority away, and give too 
little away, at the same time. That is exactly the problem with acls, 
and is what we are trying to escape from :-) The caps answer is, 
delegate easily through designation, and VOC to prevent bad accidents, 
thus winning on both fronts :-)

--marcs



More information about the cap-talk mailing list