I want to design a protocol between several components I have. each can run in separate process on a different host. There is always an initiator (client) and someone who respond (server). the client might be in several languages java/c#/c++/cli. The server in my case is always in java.
So I thought about the following properties:
- It should by plain text so it will be easy to debug.
- It should allow upgrade seemplessly of one side (it means no class serialization and no strict method signatures).
- If it is a framework, the in should be thin (WSDL looks too much for my needs).
I thought using http over tcp.
I am interested mostly in the syntax and if there are frameworks in java which already provides such capabilities. I remember vaguely that there is something like that in Spring.
EDIT: I prefer a thin framework, and also I am afraid that changing method signature in RPC will cause competability problems.
I found this example and it might feet my needs as I am already using jaxb.
I would go with SOAP. While not the easiest, there are various libraries on nearly all language/platform combinations and it is quite extendible.
XML-RPC might also be suggested, but SOAP is its successor so I’d recommend against using XML-RPC.