По мере развития информационных технологий возникали разные подходы к написанию программ: модульное программирование, событийно-ориентированное программирование, компонентно-ориентированное программирование и проектирование. Логическим продолжением этих подходов стала сервисно-ориентированная разработка программного обеспечения.
Применение сервисно-ориентированных подходов позволяет говорить о повторном использовании (reuse) на макро-уровне (уровне сервисов), в отличие от микро-уровня (уровня объектов). Сервисно-ориентированный подход предполагает использование простых и общепринятых стандартов, что позволяет самым разным приложениям использовать функциональность друг друга. Сервисы могут быть написаны с использованием самых разных языков программирования, на различных платформах. Кроме того, сервисы могут быть развернуты отдельно или в рамках программного комплекса в любой точке земного шара и будут таким образом предоставлять доступ к своей функциональности по сети.
Назовем сервисом (service) ресурс, реализующий бизнес-функцию и обладающий следующими свойствами:
• является повторно используемым;
• определяется одним или несколькими явными технологически-независимыми интерфейсами;
• слабо связан с другими подобными ресурсами и может быть вызван посредством коммуникационных протоколов, обеспечивающих возможность взаимодействия ресурсов между собой.
Частным случаем сервиса является XML web-сервис.
XML Web-сервис — это особый тип web-приложения, который:
• развертывается на web-сервере;
• публикует web-методы, которые могут быть вызваны внешними клиентами;
• ожидает поступления HTTP-запросов, являющихся командами вызовов web-методов;
• исполняет web-методы и возвращает результаты.
В отличие от традиционного web-приложения, у web-сервиса нет пользовательского интерфейса. Вместо этого у него есть программный интерфейс, то есть web-сервис предоставляет функции (web-методы), которые могут быть вызваны удаленно (например, по сети Internet). Web-сервис не предназначен для обслуживания конечных пользователей. Его задача — предоставление услуг другим приложениям, будь то web-приложения, приложения с графическим пользовательским интерфейсом или консольные приложения.
Web-сервис может предоставлять в реальном времени информацию о курсах акций, проверять кредитные карты или сообщать прогноз погоды. Web-сервисы столь же разнообразны, как и обычные приложения.
Web-сервисы — не собственность конкретной компании. Это промышленный стандарт на основе открытых протоколов (SOAP, HTTP и т. д.). Web-сервисы развертываются на различных платформах (в том числе на серверах под управлением Windows или UNIX). Web-сервисы можно разрабатывать с применением многих средств разработки (от текстового редактора до семейства Microsoft Visual Studio).
Методы большинства web-сервисов вызываются HTTP-запросами, содержащими сообщения SOAP SOAP — это XML-язык (XML vocabulary) для вызова удаленных процедур по HTTP и другим протоколам.