This is terrific. Thank you.
On Dec 13, 6:18 am, Kenton Varda <ken...@google.com> wrote: > Hi all, > > As I've mentioned a couple times in other threads, last weekend I wrote up a > simple RPC system based on Protocol Buffers which treats services as > capabilities, in the sense of capability-based security. > > http://en.wikipedia.org/wiki/Capability-based_security > > Essentially what this means is that you can construct a service > implementation and then embed a reference to it into an RPC message sent to > or from some other service. So, for instance, if a client wants a server to > be able to make calls back to the client, it can simply send the server a > reference to a service implemented by the client. Or, for another example, > a service which acts as a resource broker could grant a client access to a > particular resource by sending it a reference to a service object > representing that resource, to which the client can then make calls. Note > that a particular service object cannot be accessed over a particular > connection until that service object has actually been sent in an RPC over > that connection. This property is useful for security, as described in the > above link. > > In any case, the project is called Captain Proto and can be found here: > > http://code.google.com/p/capnproto/ > > Currently it only has Java support, though I hope it will eventually support > other languages as well. The wire protocol is itself defined in terms of > protocol buffers: > > http://code.google.com/p/capnproto/source/browse/proto/capnproto.proto > > There is basic documentation here: > > http://capnproto.googlecode.com/hg/doc/java/index.html > > You can also look at the test for an example: > > http://code.google.com/p/capnproto/source/browse/java/test.proto > http://code.google.com/p/capnproto/source/browse/java/Test.java > > I expect the API to change quite a bit, so be warned that if you write code > based on it, that code will have to change at some point. > > Future hopes/plans: > - Improve API by taking advantage of code generator plugins. > - Define a standard "ServiceDirectory" service which can serve as the > default service on servers that export multiple services. The directory > would have a method like Open() which takes the name of some particular > service and returns a reference to the corresponding service object. > - Provide a library of capability design pattern implementations, e.g. the > revocable membrane. > - Define a capnproto-over-HTTP protocol which can be used by AJAX clients. > - Support C++ and Python. > > For the time being, this is not an official Google project. It's just > something I wrote for fun -- or, more accurately, to support some other fun > stuff that I want to work on. That said, due to the obviously wide > applicability, I might try to make it more official at some point. -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To post to this group, send email to proto...@googlegroups.com. To unsubscribe from this group, send email to protobuf+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/protobuf?hl=en.