Я не хочу начинать священную войну здесь, но большинство интернет-сервисов (flickr, twitter, facebook и т. Д.) Отказались от SOAP в пользу веб-сервисов RESTful и JSON в качестве сериализованного формата. Хотя сервисы REST по сути одинаковы, для определения того, что следует сделать, используются методы url и http, например
GET /articles - list all articles
POST /articles - add a new article
PUT /articles/123 - update article 123 with new data
JSON - описанный в json.org - также проще, чем XML, и, хотя, возможно, не имеет значения, сэкономит вам несколько байтов на запрос. Следуя предыдущему примеру, вот как статья будет описана в нотации JSON:
{
"id": 123,
"author": "Cyril",
"content": "Hello, this is an article",
"tags": [ "gamedev", "webservices", "multiplayer" ]
}
Для IOS есть хорошая статья http://petermcintyre.wordpress.com/2010/11/04/consume-json-rest-in-ios/, в которой упоминается
http://code.google.com/p/json-framework / для разбора и генерации данных.
Будучи пошаговыми, вы можете полагаться на http-сессии на сервере для поддержания состояния, поэтому нет необходимости поддерживать постоянное сокетное соединение с сервером. Любой серверный язык поддерживает это (php, python, java и т. Д.).
Эта архитектура позволяет масштабировать горизонтально (добавляя больше серверов) прозрачным способом.
Я думаю, что использование SOAP или даже HTTP излишне. Просто определите свой собственный протокол поверх ванильных TCP-соединений. Например, интерпретируйте каждую строку текста, отправляемую как команду. Определите, какие команды / ответы клиенту и серверу разрешено отправлять.
FICS работает таким образом и уже много лет обслуживает тысячи шахматистов. IRC работает так же (см. RFC 1459).
источник