8. Определение сервисно-ориентированной архитектуры
С функциональной точки зрения бизнес-приложение распадается на совокупность взаимодействующих между собой сервисов. Эту совокупность взаимодействующих сервисов можно отождествить с еще одним ключевым понятием - сервисно-ориентированной архитектурой:
Компонентная модель, состоящая из отдельных функциональных модулей приложений, называемых сервисами, имеющих определенные согласно некоторым общим правилам интерфейсы и механизм взаимодействия между собой, называется сервисно-ориентированной архитектурой (Service-Oriented Architecture, SOA).
Переходя в мир абстракций, можно дать следующее, более сильное, определение сервисно-ориентированной архитектуры:
Архитектура приложений, в рамках которой все функции приложения являются независимыми сервисами с четко определенными интерфейсами, которые можно вызывать в нужном порядке с целью формирования бизнес-процессов, называется сервисно-ориентированной архитектурой.
На сегодняшний день устоявшегося, принятого IT-сообществом, определения SOA нет. Здесь мы приводим определение, которое, на наш взгляд, наиболее полно и точно отражает современное состояние этой концепции).
Поясним второе определение:
- "все функции приложения" - как мы уже упомянули, любое приложение с функциональной точки зрения может быть представлено совокупностью функций; ресурс, реализующий функцию, есть сервис. Таким образом, приведенное определение требует для представления и реализации любого приложения в рамках SOA проведения его полной декомпозиции до уровня отдельных функций;
- являются независимыми сервисами" - в понятие независимости сервиса вкладывается следующий смысл: сервисы функционируют независимо от других информационных систем, являются функционально самостоятельными объектами. Они представляют собой "черные ящики" для любых внешних приложений: внешние приложения не знают, как сервис формирует из входных данных выходные. Все, что им известно - что необходимо подать на вход сервиса и что следует ожидать на его выходе;
"с четко определенными интерфейсами" - функция (или функции), которую реализует данный сервис, должна быть однозначно описана согласно определенным, принятым для всех сервисов, правилам. Должен быть описан набор и типы входных данных, а также набор и типы выходных данных;
"с ... интерфейсами, которые можно вызывать" - данное требование обусловлено необходимостью обеспечения взаимодействия между различными сервисами: для внешних по отношению к сервису информационных систем не должно иметь значения на каком языке программирования реализован сервис (точнее, здесь, веб-сервис), на какой программно-аппаратной платформе он функционирует, локально или удаленно он расположен. Внешняя информационная система должна иметь возможность взаимодействовать с сервисом (т.е. передать ему входные данные и получить выходные) вне зависимости от указанных его особенностей.
- Техническая организация распределенных систем Современные технологи разработки распределенных систем План
- Раздел.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. Принципы взаимодействия веб-сервисов в рамках сервисно-ориентированной архитектуры