[E-Lang] Capabilities and XML-RPC

Karp, Alan alan_karp@hp.com
Mon, 20 Aug 2001 11:16:35 -0700


Mark Miller wrote:
>
> 
> * E-Speak2.2 
> http://www.e-speak.hp.com/developers/beta22_readme.asp (Alan, 
> is this a good URL for 2.2?), is based on distributed "split capabilities"

> http://www.hpl.hp.com/personal/Alan_Karp/publications/keyslocks.pdf .  As 
> someone once said of Algol-60, "It's an improvement over most of its 
> successors."

Kind words, indeed.  Unfortunately, with e-speak's move to HP's Middleware
Operation, the old links have been removed.  The open source site still has
the documents, though.  http://www.e-speak.net/library/library_white.html is
your best bet.

_________________________
Alan Karp
Principal Scientist
Decision Technology Department
Hewlett-Packard Laboratories MS 1U-3
1501 Page Mill Road
Palo Alto, CA 94304
(650) 857-3967, fax (650) 857-6278
https://ecardfile.com/id/Alan_Karp
http://www.hpl.hp.com/personal/Alan_Karp/
 

> -----Original Message-----
> From: Mark S. Miller [mailto:markm@caplet.com]
> Sent: Monday, August 13, 2001 8:59 AM
> To: Brandon Wiley
> Cc: E Language Discussions
> Subject: Re: [E-Lang] Capabilities and XML-RPC
> 
> 
> At 12:42 PM Sunday 8/12/01, Brandon Wiley wrote:
> 
> >Blogger has a new XML-RPC API for posting which is capability-based.
> >
> >http://plant.blogger.com/api/
> >
> >This is where my personal interest in capabilities lies, exposing
> >capability-based APIs via RPC.
> 
> When you say "RPC", I assume you mean remote object invocation?
> 
> If you want a capability-secure remote object invocation 
> protocol, well, 
> that's sort of the point of all distributed capability systems -- 
> implementing the Granovetter operator when Alice, Bob, and 
> Carol may be in 
> three different locations  
> http://www.erights.org/elib/capability/ode/ode-protocol.html 
> .  The systems 
> listed below are only the ones I know to be currently 
> available, in use, or in 
> development.  See the citations at the above URL for others.
> 
> * E uses such a protocol in the currently shipping 0.8.9.1b 
> release.  An 
> improved version of this protocol (with full message pipelining  ), 
> described at http://www.erights.org/elib/distrib/index.html , 
> will be in the 
> upcoming 0.8.10 release.
> 
> * Waterken's system http://www.waterken.com uses a capability 
> protocol 
> that follows approximately the same security rationale, a similar but 
> different concurrency rationale, and is thoroughly standard 
> based.  The 
> capabilities are based on "https:" URLs, the underlying 
> secure data pipes are 
> therefore provided by https/SSL, and the encoding format is 
> based on XML-SOAP.
> 
> * Mozart http://www.mozart-oz.org apparently plans to go in a similar 
> direction as E, though you wouldn't know it from their 
> current web site.
> 
> * Toontalk http://www.toontalk.com is a capability-based pervasively 
> concurrent language for kids, semantically much closer to E's 
> ancestor Joule 
> http://www.agorics.com/joule.html .  (For kids who haven't 
> been corrupted by 
> sequential programming, it seems to be easier to teach pervasively 
> concurrency than sequentiality, and probably much easier than mixed 
> sequentiality/concurrency.)  It's now distributed, with a 
> protocol that 
> could easily be made capability secure as well.  However, I 
> don't think the 
> protocol is currently publicly documented.
> 
> * E-Speak2.2 
http://www.e-speak.hp.com/developers/beta22_readme.asp (Alan, 
is this a good URL for 2.2?), is based on distributed "split capabilities" 
http://www.hpl.hp.com/personal/Alan_Karp/publications/keyslocks.pdf .  As 
someone once said of Algol-60, "It's an improvement over most of its 
successors."


Distributed capability protocols that, AFAIK, are not invocation protocols:

* MojoNation http://www.mojonation.net .  (Jim, Zooko, what's a good URL for

the MojoNation protocol specifically?)

* SPKI http://www.ietf.org/rfc/rfc2693.txt is an almost capability system,
and 
is the basis for the production version of E-Speak http://www.e-speak.net/ .

http://www.erights.org/elib/capability/ode/ode-pki.html explains the sense 
in which SPKI is like a capability system.  http://www.capcert.org explains 
the sense in which it isn't, and takes steps towards proposing how to repair

the problems.


>This particular implementation is quite crude, but I think that some great
>things can be done in this vein. Using RPC between virtual machines allows
>for good security as objects in different process spaces can't modify
>things in each other's space without going through RPC. If capabilities
>are built directly into the RPC mechanism then you can get security almost
>for free. You just need to codify the methods by which you gain
>capabilities.

I'm glad to see further appreciation for this idea.  Before reinventing the 
wheel, I suggest you see if your goals can be met within one of the above 
frameworks.  If you instead build your own capability-based remote 
invocation system, and if you get serious about security, then please let us

know, and apply for inclusion in the Capability Security WebRing 
http://nav.webring.yahoo.com/hub?ring=capabilitysecuri .


>Additionally, by using something like XML-RPC you get secure access to
>remote objects in 13 different languages with no additional effort.

Would you not need per-language effort to speak the capability secure 
protocol securely, even if it is based on XML-RPC?


        Cheers,
        --MarkM

_______________________________________________
e-lang mailing list
e-lang@mail.eros-os.org
http://www.eros-os.org/mailman/listinfo/e-lang