Boost logo

Boost :

From: Jeff Garland (jeff_at_[hidden])
Date: 2008-03-21 09:28:21


salinda h wrote:
> Hi All,
>
> For the google summer of code 2008, I wish to build a Cross
> Platform Remote Method Invocation Framework for C++ using Boost.Asio,
> similar to Java's remote method invocation (RMI). I will provide some macro
> definitions to create the proxy code.

Interesting. Have you checked that there isn't something available already on
asio...not sure, but I think someone might have already done something like
this. That said, AFAIK it's not in Boost so this would be a nice extension.

> Please provide me your comments to adjust this idea to best suit the
> interests of boost community. I higly appreciate your suggestions.
>
> A sample code that will use this framework wold look like,
>
> account.h
> --------------
> DECLARE_BEGIN_PROXY(account)
> DECLARE_METHOD_1(deposit, void, double);
> DECLARE_METHOD_0(get_balance, double);
> DECLARE_END;

Have a look at Boost.Interface

http://www.cdiggins.com/bil.html

This library was never fully proposed for Boost, but it has alot of the same
ideas/needs as you do w.r.t. binding with C++ interfaces.

Also, a totally different way to go would be to support an IDL like language
and write a tool to generate the needed C++.

> class account
> {
> ..........
> .........
> }
>
> Server Code
> -----------------
> account acc = new account("Foo", 250);
> Server s = new server(server::TCP, 19000);
> s.attach("Foo", acc);
> s.run();
>
> Client Code
> ----------------
> account_proxy acct = account_proxy::get_proxy("172.25.44.195", server::TCP,
> 19000, "Foo");
> acct.deposit(100);
> double balance = acct.get_balance();

What do you have in mind for the transport protocol?

Thanks!

Jeff


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk