Web-приложение направлено на работу с пользователем и имеет пользовательский интерфейс. В противоположность этому, web-сервис работает либо с другими web-сервисами, либо с web-приложениями. Обмен при этом происходит точно так же, как и в случае с приложениями, то есть по схеме запрос-ответ. В качестве клиента может выступать любая программа, которая правильно сформирует НТТРзапрос и расшифрует полученный HTTP-ответ. Однако для общения стандартной версии HTML может оказаться недостаточно, поэтому используются его расширения: JSON, XML-RPC, SOAP, REST и так далее. Общая схема работы web-сервиса представлена на рис. 1.3.
Рис. 1.3 Общая схема взаимодействия пользователя с web-сервисом.
Для описания сервиса существует специальный язык, называемый WSDL (Web Service Definition Language). При помощи WSDL можно запросить у web-сервиса сведения о существующих методах и необходимых параметрах, то есть получить полную описательную информацию о предоставляемом сервисе. Кроме собственно информативной составляющей, WSDL несет и другую нагрузку: на его основе строятся различные средства автоматизированного проектирования web-сервисов — программные средства, позволяющие из WSDL файла создавать скелеты классов и наоборот.
В современном интернете существует множество web-сервисов. В качестве примера можно указать Яндекс-XML. Существует всем известная поисковая система Яндекс. Однако для ее использования не обязательно заходить на http://yandex.ru. Вы можете использовать ее в любом созданном приложении (и не обязательно web-ориентированном). Сервис Яндекс-XML позволяет обратиться с запросом к самой поисковой системе, получить результат выполнения этого запроса в виде XML и использовать полученный результат в своем приложении. Разумеется, при этом существует вопрос лицензионности: придется пройти ряд предписанных Яндексом шагов и обязательно указать в своем приложении ссылку, на основе чего сформирован данный ответ. Но суть остается прежней: предлагается некий сервис, данные из которого могут использоваться по своему усмотрению.