I have a design decision to make. I need your advice.
Requirements:
- A server and a client. client is typically a mobile phone.
- Connected through the Internet.
- Server and client want to talk to each other.
- Exchange of text, multimedia between the client and the server.
- Text would be some standard format. that is predecided.
- Real time requirements
- Session would typically last for 5-15 minutes. In some cases for under a minute. assume 5 minutes as the session duration.
- The protocol should adhere to standards.
- It must be efficient.
Option 1 A binary protocol that I design for my application.
Option 2 Implement my server as an HTTPServlet. Client sends post requests and the query in the post message and servlet sends response in the message. However, I think that for real time interaction, this is not a good option as a new thread would be created for each post request even for the same client and session. Please comment on the efficiency of this.
Option 3 Use a normal servlet. Would face the same problem as above.
Option 4 Use SOAP
Option 5 Use REST
Option 6 Use Google Wave (I haven't read the specification yet)
Option 7 Suggest some other protocol
Right now, I don't have experience with web services, but if it is the option then I don't mind investing time in it.
Basically, I want the speed and efficiency of option 1 with a standard way of doing things.
Thank you