Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I need to create add network communication to a server written in the Java that will be connected to through a C# application.

I have very little experience in networking and I'm struggling to decide on the best strategy for this.

I only need a request/response model. I can use any serialisation mechanism I want (but the company uses Protobuf a lot so that's looking tempting)

What is my best option here? I've looked at Thrift, or RESTful, or ZeroMQ. There seems to be a tonne of options available and someone with little experience in this I'm finding it impossible to determine what's appropriate here.

share|improve this question
Are you having problems determining the means of data transport or how the transported data should look like? If you just need response-reply pattern, using REST should be the fastest and easiest way since it's only HTTP with different verbs. Using ZeroMQ is awesome, if you have the time to learn it properly and implement your own authentication - trust me, it'll take time and this is coming from someone who is using ZeroMQ for quite some time. – N.B. Aug 24 '12 at 11:26

closed as not constructive by MainMa, gnat, Matthieu, Jim G., Karl Bielefeldt Sep 10 '12 at 21:23

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

4 Answers

There are protobuf option for C# too. If you already know protobuf, I'd consider this direction.

http://code.google.com/p/protobuf-net/

I'd go for RESTful or some simple plain proprietary Web API if you want something RPC'ish.

share|improve this answer
Except that protocol buffers are just about the DATA not the RPC methodology. I think the OP is asking about the RPC, not the serialization. – Peter K. Aug 24 '12 at 14:56
the question title says "remoting and serialisation". Remoting may imply some RPC framework, yes. Simple RPC can just be handcrafted I am saying not need for a framework. – Joppe Aug 24 '12 at 15:06
Ya. Been there, done that. Got bitten in the a$$ by a "handcrafted RPC". :-) – Peter K. Aug 24 '12 at 15:17
frameworks can bite also.. – Joppe Aug 24 '12 at 15:23
True, but there are more a$$es that might have been bitten... and misery loves company. :-) – Peter K. Aug 24 '12 at 15:32

You might be suffering from a common case called 'information overload'. There are so many options and so many comparisons to be made.

The reality of it all is that, with little experience you are going to need help. Therefore you should really use 'Protobuf', because you are saving yourself hours of troubleshooting and scouring the web, when you can just interact with your peers and get into the mix at work.

Keep it simple!

share|improve this answer

If you are not experienced on this, this is a very good reason to keep things simple.

As far as i know the protobuf from Google are deadly simple and they have a good series of tutorials and docs too.

The only downside is that you are expected to deal with the data directly, or in better terms, with the containers, the protobuf is just a protocol for serialization and you have no other functionalities other than just the serialization itself.

share|improve this answer

There are several third party protocol buffer RPC implementations referenced here. Take a look at them.

Note that protocol buffers BY THEMSELVES do not define the service layer (RPC methodology).

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.