I recommend using RPC instead of pure TCP / IP communication over sockets.
If you have few customers and donβt want to deal with complex technologies, use something like JsonRPC or XMLRPC. (Note that Pyro can only be used when the server and client are written in Python. If you plan to switch to Java later, you should consider this.)
If performance and security are important (for example, many clients send requests at the same time or you need an SSL connection) use something like Ice . I prefer Ice over Korba because it is simpler, more modern, and yet as good as Korba (maybe even better).
Update . After I read your comments, I really recommend you use Ice. Ice and Corba, as well as technologies like them, are called ORB (Object Request Broker). They do not use the traditional server / client model. Thus, all objects in the application can interact with each other. No matter where they are. In this case, you will have a real distributed application.
source share