Não pretendo iniciar uma guerra santa aqui, mas a maioria dos serviços de Internet (flickr, twitter, facebook e outros) tem descartado o SOAP em favor dos serviços da web RESTful e JSON como o formato serializado. Embora essencialmente os mesmos, os serviços REST contam com o método url e http para definir o que deve ser feito, por exemplo
GET /articles - list all articles
POST /articles - add a new article
PUT /articles/123 - update article 123 with new data
JSON - descrito em json.org - também é mais simples que XML e, embora talvez irrelevante, economize alguns bytes por solicitação. Seguindo o exemplo anterior, veja como um artigo seria descrito na notação JSON:
{
"id": 123,
"author": "Cyril",
"content": "Hello, this is an article",
"tags": [ "gamedev", "webservices", "multiplayer" ]
}
Para o IOS, existe este belo artigo http://petermcintyre.wordpress.com/2010/11/04/consume-json-rest-in-ios/, que menciona
http://code.google.com/p/json-framework / para analisar e gerar os dados.
Sendo baseado em turnos, você pode confiar em sessões http no servidor para manter o estado, portanto, não há necessidade de manter uma conexão de soquete persistente com o servidor. Qualquer linguagem do lado do servidor suporta isso (php, python, java, etc).
Essa arquitetura permite escalar horizontalmente (adicionando mais servidores) de maneira transparente.
Eu acho que usar SOAP ou mesmo HTTP é um exagero. Apenas defina seu próprio protocolo através de conexões TCP baunilha. Por exemplo, interprete cada linha de texto enviada como um comando. Defina quais comandos / respostas o cliente e o servidor podem enviar.
O FICS funciona dessa maneira e atende milhares de jogadores de xadrez há muitos anos. O IRC também funciona dessa maneira (consulte a RFC 1459).
fonte