
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