Click here to Skip to main content
15,887,427 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi ,
I am making an application using component technology and i want to make the interactions between the components located in different hosts. I know the basics of Remote procedure calls(RPC) ,is RPC still an easy methods to do it or some friends suggested to use COM , i have no idea about that .

I would like to know any tutorials and book available for using RPC with c++, I have to invoke several methods from a class located in the one component acting as server from another component in the client , i found some interesting materials through google, tutorials in MSDN and introduction to RPC in codeproject also , but they all did not gave information on accessing objects in the server side , can any one suggest some starting materials ,


suggest me some good methods to work on this .

thanks ,
hari
Posted

1 solution

This is a good article on RPC where some RPC analogues are listed; you can follow a reference on each of them:
http://en.wikipedia.org/wiki/Remote_procedure_call[^].

My own opinion? Hard to say. I think, in the words of C++ and Windows, COM and DCOM (http://en.wikipedia.org/wiki/Component_Object_Model[^], http://en.wikipedia.org/wiki/Distributed_Component_Object_Model[^]) got the most of popularity and are well established, but view of them is very cautious.

I could see that COM appeared as a transitional stage between such non-object-oriented system as Windows (at least from the API point of view; and, despite the fact that the APIs are mostly kept in OOP style, technically this is not OOP at all) and object-oriented technologies, such as those related to C++. This measure could not cure non-object-oriented nature of OS and created a number of artificial constructs and made the system considerably bloated. In my string opinion, COM should go, and CLR-based systems should replace Windows. Microsoft is already working in this direction:


COM later made its way to the word of CLR and .NET, as a glue used to create a bond with legacy code; but .NET is a truly object-oriented system, top to bottom, it does not need COM at all. What I really would prefer to recommend, is either classical .NET remoting (many say it is obsolete, but I'm not so sure) and WCF. The problem is: if you consider this, you should consider C++/CLI or C#, not C++. C++/CLI is very close to C++ though, but essentially different. If you are interested, see also:

http://en.wikipedia.org/wiki/.NET_Remoting[^],
http://msdn.microsoft.com/en-us/library/2e7z38xb%28v=VS.100%29.aspx[^],
http://en.wikipedia.org/wiki/Windows_Communication_Foundation[^],
http://msdn.microsoft.com/en-us/netframework/aa663324.aspx[^],
http://msdn.microsoft.com/en-us/library/dd456779.aspx[^],
http://en.wikipedia.org/wiki/C%2B%2B/CLI[^],
http://en.wikipedia.org/wiki/C%2B%2B/CLI[^],
http://www.ecma-international.org/publications/standards/Ecma-372.htm[^].

Supplement:


To get an idea of how managed CLR platform can be used in development of OS, please read about the following projects:

Microsoft Singularity:
http://en.wikipedia.org/wiki/Singularity_%28operating_system%29[^],
http://research.microsoft.com/en-us/projects/singularity/[^];

Cosmos:
http://en.wikipedia.org/wiki/Cosmos_%28operating_system%29[^],
http://cosmos.codeplex.com/[^];

SharpOS:
http://en.wikipedia.org/wiki/SharpOS_%28operating_system%29[^],
http://www.sharpos.org/[^];

ETH Zurich — Microsoft Research Barrelfish:
http://en.wikipedia.org/wiki/Barrelfish[^],
http://www.barrelfish.org/[^].

Microsoft Midori (code name):
http://en.wikipedia.org/wiki/Midori_%28operating_system%29[^].

—SA
 
Share this answer
 
Comments
hariharansa 26-Dec-11 22:05pm    
Hi Sakryukov ,
Many thanks for you help , i will go through them soon , but in the RPC analogues on wiki they have CORBA , i also found lots of article and some sample codes , is it a good idea to use that .
P.S:I have to use C++ in my application and i am quite new to C++ environment.
BrainlessLabs.com 27-Dec-11 14:49pm    
Nice links.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900