11. Стек технологий веб-сервисов
Итак, концепция сервисно-ориентированной архитектуры подразумевает реализацию бизнес-процессов предприятия в виде совокупности сервисов, взаимодействующих друг с другом либо с пользователями в определенной последовательности и в соответствии с определенными правилами. Отметим, что, вообще говоря, это весьма нетривиальная задача - определить эту "определенную последовательность" и "определенные правила" таким стандартным для разработки приложений образом, чтобы охватить весь спектр существующих сценариев взаимодействия бизнес-объектов, учитывая исторически сложившееся многообразие технической и технологической реализации этого взаимодействия и самих бизнес-объектов. Решить эту задачу в рамках какой-либо единой технологии пока не удалось. И хотя тенденция консолидации существующего множества технологий веб-сервисов в настоящее время налицо, для реализации сервисно-ориентированных архитектур с помощью веб-сервисов сейчас применяется совокупность технологий, образующих так называемый стек технологий веб-сервисов (см. рис. 1).
Рис. 4: Стек технологий веб-сервисов
Стек технологий веб-сервисов принципиально разбивается на следующие две составляющие:
технологии, обеспечивающие функциональность веб-сервисов (Functions);
технологии, обеспечивающие качество сервиса веб-сервисов (Quality of service).
Эти составляющие в свою очередь образуются несколькими слоями (layers):
технологии, обеспечивающие функциональность веб-сервисов:
транспортный слой (transport layer);
коммуникационный слой (service communication layer);
слой описаний сервисов (service description layer);
сервисный слой (service layer);
слой бизнес-процессов (business process layer);
слой реестров сервисов (service registry layer).
технологии, обеспечивающие качество сервиса веб-сервисов:
слой политик (policy layer);
слой безопасности (security layer);
слой транзакций (transaction layer);
слой управления (management layer).
В целях понимания назначения слоев, дадим краткое описание каждого из них.
№ п/п | Наименование слоя | Назначение слоя | Технологии, реализующие слой |
Функциональность (Functions) | |||
1 | Транспортный слой (Transport layer) | Описывает средства обмена данными между веб-сервисами | Стандартные: HTTP, JMS (для Java-приложений), SMTP Нарождающиеся: WS-ReliableMessaging, BEEP |
2 | Коммуникационный слой (Service communication layer) | Описывает средства формализации механизмов использования транспортных протоколов веб-сервисами. Используя метафоры, можно отождествить транспортный протокол с дорогой между веб-сервисами, а механизмы его использования, определяемые коммуникационным слоем, с грузовыми машинами, перевозящими по ней от сервиса к сервису сообщения | Стандартные: SOAP Нарождающиеся:REST |
3 | Слой описаний сервисов (Service description layer) | Описывает средства формализации интерфейсов веб-сервисов с целью обеспечения их функционирования независимо от программно-аппаратной платформы реализации или языка программирования. Различают два вида описаний сервиса: - операционное (operational); - полное (complete) | Стандартные: XML, WSDL Нарождающиеся: ebXML |
4 | Сервисный слой (Service layer) | Описывает программное обеспечение, вызываемое с помощью WSDL-описаний интерфейсов веб-сервисов. В частности, это сами веб-сервисы |
|
5 | Слой бизнес-процессов (Business process layer) | Описывает возможности организации веб-сервисов для реализации бизнес-процессов и потоков работ. При этом определяются правила, задающие последовательность взаимодействия веб-сервисов с целью удовлетворения бизнес-требованиям | Стандартные: в настоящее время нет Нарождающиеся: BPEL4WS |
6 | Слой реестров сервисов (Service registry layer) | Описывает возможности организации веб-сервисов в иерархические библиотеки, позволяющие публикацию, поиск и вызов веб-сервисов по их WSDL-описаниям интерфейсов | Стандартные: UDDI Нарождающиеся: WS-Inspection |
Качество сервиса (Quality of service) | |||
7 | Слой политик (Policy layer) | Описывает правила и условия, согласно которым веб-сервисы могут быть использованы. Поскольку данные правила и условия относятся как к функциональному аспекту веб-сервисов, так и к аспекту обеспечения качества сервиса на Рис. 1, данный слой является общим для обоих аспектов | Стандартные: в настоящее время нет Нарождающиеся: WS-Policy, WS-PolicyAssertions и WS-PolicyAttachment |
8 | Слой безопасности (Security layer) | Описывает возможности обеспечения безопасности веб-сервисов и безопасности их функционирования (авторизация, аутентификация и разделение доступа) | Стандартные: WS-Security Нарождающиеся: WS-SecureConversation, WS-Federation, WS-Authorization, WS-Trust и WS-Privacy |
9 | Слой транзакций (Transaction layer) | Описывает свойство транзакционности распределенных систем на основе веб-сервисов для обеспечения надежности их функционирования | Стандартные: в настоящее время нет Нарождающиеся: WS-Transaction и WS-Coordination |
10 | Слой управления (Management layer) | Описывает возможности управления веб-сервисами и характеристиками их функционирования |
|
Представленный выше стек технологий веб-сервисов вводит иерархию во множество технологий веб-сервисов в соответствии с их функциональным назначением. При этом в таблице указаны лишь наиболее широко применяемые и устоявшиеся технологии. Стандартными названы технологии, получившие официальный статус стандартов международных консорциумов по разработке IT-стандартов (W3C). В действительности, спектр технологий, описывающих те или иные аспекты использования веб-сервисов либо сервисно-ориентированных архитектур, крайне широк, в частности, потому, что процесс разработки данных технологий является открытым - любая компания, некоммерческое объединение специалистов или даже один специалист может разработать и опубликовать спецификацию разработанной им технологии. В настоящее время это даже стало серьезной проблемой рынка веб-сервисов - количество спецификаций стало столь велико, что при фактической нерегламентированности глобального процесса их разработки, ввода в действие и использования, появляется опасность ввергнуть индустрию в хаос и технологическую разобщенность. А технологическая разобщенность - как раз то, от чего хотели уйти прежде всего, разрабатывая веб-сервисы и закладывая в качестве их концептуальной и технологической основы открытые и наиболее широко применяемые IT-технологии.
- Техническая организация распределенных систем Современные технологи разработки распределенных систем План
- Раздел.1. Техническая организация распределенных систем
- 1. Понятие рис как совокупности автономных процессоров и систем
- 2. Концепции аппаратных решений
- 3. Концепции программных решений
- 5. Службы промежуточного уровня
- 6. Промежуточный уровень и открытость.
- 7. Выводы
- Раздел 2. Современные технологи разработки распределенных систем
- 1. Технология Web-сервисов Определение веб-сервиса
- 1.1 Основы Web-сервисов
- 2. Следующее поколение Сети
- 3. Преимущества и недостатки веб-сервисов.
- 4. Rpc-ориентированные взаимодействия
- 5. Документно-ориентированные взаимодействия
- 6. Технология веб-сервисов
- 7. Пример использования
- 8. Определение сервисно-ориентированной архитектуры
- 9. Требования к soa
- 10. Различия soa и веб-сервисов
- Преимущества soa
- 11. Стек технологий веб-сервисов
- 12. Принципы взаимодействия веб-сервисов в рамках сервисно-ориентированной архитектуры