Table Of ContentМинистерство образования Республики Беларусь
Учреждение образования
«Белорусский государственный университет
информатики и радиоэлектроники»
Факультет компьютерных систем и сетей
Кафедра информатики
Р
И
И. И. Пилецкий, В. Н. Козуб
У
Г
Б
СОВРЕМЕННЫЕ СРЕДСТВА ПРОЕКТИРОВАНИЯ
а
ИНФОРМАЦИОННЫХ СИСТЕМ. SOA-АРХИТЕКТУРЫ
к
е
Рекомендовано УМО по образованию в области информатики
т
и радиоэлектроники в качестве пособия для специальности
о
1-40 01 03 «Информатика и технологии программирования»
и
л
б
и
Б
Минск БГУИР 2017
УДК 004.415.23(076)
ББК 32.971.32-02я73
П32
Рецензенты:
кафедра многопроцессорных систем и сетей факультета прикладной
математики и информатики Белорусского государственного университета
Р
(протокол №3 от 31.10.2016);
И
заведующий лабораторией информационного обеспечения научных
исследований государственного научного учреждения «УОбъединенный
институт проблем информатики Национальной академии наук Беларуси»,
Г
кандидат технических наук, доцент Р. Б. Григянец
Б
а
к
е
т
о
и
л
Пилецкий, И. И.
б
П32 Современные средства проектирования информационных систем.
SOA-архитектуры : пособие / И. И. Пилецкий, В. Н. Козуб. – Минск :
и
БГУИР, 2017. – 64 с. : ил.
Б
ISBN 978-985-543-319-5.
УДК 004.415.23(076)
ББК 32.971.32-02я73
ISBN 978-985-543-319-5 © Пилецкий И. И., Козуб В. Н., 2017
© УО «Белорусский государственный
университет информатики
и радиоэлектроники», 2017
Содержание
1. Сервис-ориентированная архитектура ................................................... 4
1.1. Движущие силы SOA .......................................................................... 4
1.2. Основные принципы SOA .................................................................. 6
1.3. Преимущества SOA ............................................................................ 8
1.4. Определение SOA ............................................................................... 8
1.5. Понятие службы .................................................................................. 9
1.6. Фундамент SOA (IBM SOA Foundation) ......................................... 10
Р
2. Web-сервисы ............................................................................................ 13
2.1. Распределенная система ................................................................... 13
И
2.2. Понятие web-сервиса ........................................................................ 13
2.3. Основные технологии web-сервисов ..........................У..................... 16
2.4. Использование web-сервисов ........................................................... 16
Г
2.5. Язык XML .......................................................................................... 18
2.6. Simple Object Access Protocol ......................Б..................................... 19
2.7. Web Service Definition Language ...................................................... 22
2.8. Отправка сообщений ......................................................................... 25
а
2.9. Universal Description, Discovery and Integration .............................. 25
к
2.10. Web-сервисы и SOA ........................................................................ 26
е
2.11. Свойства web-сервисов ................................................................... 26
3. Сервисная шина ESB ........т...................................................................... 28
3.1. Что такое «сервисная шина предприятия» ..................................... 28
о
3.2. Вызов сервисов .................................................................................. 30
и
3.3. Синхронный и асинхронный вызовы сервисов ............................. 31
3.4. Другие сволйства ESB ........................................................................ 38
4. Архитектура сервисных компонентов .................................................. 44
б
4.1. Основные понятия SCA .................................................................... 44
и
4.2. Посреднические функции, потребители и поставщики служб .... 45
4.3. Элементы SCA ................................................................................... 46
Б
4.4. Посреднические модули ................................................................... 48
4.5. Компоненты посреднических потоков ........................................... 49
4.6. Сервисные объекты-данные ............................................................. 49
4.7. Пример SDO ....................................................................................... 51
4.8. Структура документа WSDL ............................................................ 53
4.9. Пример разработки на ESB-шине .................................................... 54
Приложение ................................................................................................. 57
Перечень принятых терминов ................................................................... 61
Список использованных источников ...................................................... 613
3
1. СЕРВИС-ОРИЕНТИРОВАННАЯ АРХИТЕКТУРА
1.1. Движущие силы SOA
«Ненадежные, негибкие системы». «Дорогостоящее в обслуживании про-
граммное обеспечение». Часто можно услышать такие фразы об ИТ. «Прихо-
дится иметь дело с системами, будто отлитыми из бетона». «Можно подумать,
что приложения разрабатывались в расчете на то, что ничто и никогда не изме-
нится». Автоматизация внесения изменений в системы почти отсутствует, по-
Р
скольку для этого требуется вмешательство человека и перепрограммирование
со стороны отделов ИТ, а сама подгонка технологии под бизнес-цИели увязает в
проблемах интеграции.
У
В повседневной практике термин «сервис» означает, что одна сторона
предоставляет нечто, запрашиваемое другой стороной согласно условиям кон-
Г
тракта. Если обслуживание стоит слишком дорого или не соответствует требо-
Б
ваниям компании, то она может обратиться к другому поставщику того же са-
мого сервиса. Парадигма сервисов включает в себя и систему взаимоотношений
в процессе совместного оказания услуг, когдаа несколько партнеров объединяют
свои усилия для удовлетворения насущных нужд клиентов.
к
Руководители бизнес-подразделений требуют от поставщиков приложе-
е
ний, чтобы они лучше обеспечивали поддержку динамических взаимоотноше-
т
ний сервисов. Бизнес-менеджеры хотят определять сервисы, а затем в сотруд-
ничестве с внутренними илио внешними ИТ-провайдерами развертывать их со-
гласно условиям, прописанным в соглашении SLA (Service-Level Agreement).
и
Наиболее продвинутые из них мечтают о том, чтобы самим определять процес-
л
сы и сервисы, причем делать это непринужденно, изменяя их или вводя в дей-
ствие одним щеблчком мыши. Но пока это действительно лишь мечты, посколь-
ку каждый, кто ясно представляет себе реальное положение дел, знает о том,
и
сколько сил уходит даже на простую интеграцию процессов или согласование
форматБов данных с поставщиками и партнерами.
Ответом ИТ-отрасли на все эти вызовы времени стала сервис-
ориентированная архитектура (SOA). Быстро развивающиеся стандарты XML-
и web-сервисов революционным образом меняют то, как разработчики компо-
нуют свои системы и интегрируют их в распределенные сети. Программистам
больше не нужно иметь дело с жесткими фирменными языками и объектными
моделями, царившими в эпоху архитектур CORBA и DCOM (Common Object
Request Broker Architecture и Distributed Component Object Model). С появлени-
ем SOA в среду разработки приходит новый подход, характерный для распре-
деленной обработки данных на базе web. Распространение архитектуры SOA
4
приведет к революционным изменениям средств BPM, EAI и связующего ПО
на базе обмена сообщениями.
Основные проблемы ИТ:
− размножение систем ведет к беспрецедентной сложности;
− паутина технологий и поставщиков;
− 50 % бюджета направлено на сопровождение (Back Office);
− несоизмеримость затрат со значением для бизнеса;
− длительный возврат инвестиций;
Р
− не достигаются требования бизнеса;
− запаздывание с внедрением новых услуг. И
Сервис-ориентированная архитектура представляет собой стиль создания
У
архитектуры ИТ, направленный на превращение бизнеса в ряд связанных сер-
висов – стандартных бизнес-задач, которые можно при Гнеобходимости вызы-
вать через сеть.
Б
Это может быть Интернет, локальная сеть или географически распреде-
ленная сеть, объединяющая различные техноло гии и сочетающая сервисы из
а
Нью-Йорка, Лондона и Гонконга так, как если бы они были установлены на ло-
кальной машине. Для выполнения определенной бизнес-задачи можно будет
к
объединять множество таких сервисов. Это позволит компании быстро адапти-
е
роваться под изменение условий и требований рынка.
т
Основные преимущества SOA приведены в табл. 1.1.
о
Таблица 1.1
и
Преимущества SOA
л
Преимущества Вместе с SOA Без SOA
1 б 2 3
SOA повышает способ- ИТ-инфраструктура бо- ИТ-инфраструктура не-
и
ность бизнеса реагиро- лее гибкая и быстрее ре- способна быстро реаги-
Б
вать на потребности агирует на потребности ровать на изменение
рынка благодаря более бизнеса рынка, запросы клиен-
гибкой инфраструктуре тов, партнеров и конку-
рентов
SOA позволяет бизнесу Сервисы являются кир- ИТ-инфраструктура со-
расти благодаря созда- пичиками для ИТ- стоит из инфраструк-
нию ИТ-сервисов в со- инфраструктуры турных компонентов
ответствии с бизнес-
процессами
5
Окончание табл. 1.1
1 2 3
SOA помогает бизнесу Интеграция возможна Интеграция возможна
снижать расходы благо- «сцеплением» модулей «жесткой» сцепкой
даря простой интегра-
ции
SOA помогает бизнесу Новые услуги могут Приложения должны
снижать расходы благо- быть легко добавлены быть полностью заме-
Р
даря повторному ис- благодаря повторному нены
пользованию активов использованию активов И
SOA снижает бизнес- Простота и гибкость Сложность и негибкость
риски, предлагая другое уменьшают риски повышУают риски
качество, простоту и
Г
управляемость
Б
Основные движущие факторы внедрения SOA приведены на рис. 1.1.
а
к
е
т
о
и
л
б
Рис. 1.1. Основные движущие факторы внедрения SOA
и
1.2. Основные принципы SOA
Б
Популярность и широкое распространение при разработке информацион-
ных систем SOA-архитектура получила благодаря своим основным принципам:
1. Открытость исходного кода дает возможность компаниям, внедрившим
у себя систему c SOA-архитектурой, обслуживать себя самим, участвовать в
разработке новой функциональности и сообщать поставщику программного
обеспечения о необходимости доработки SOA-платформы с целью ее дальней-
шего развития. Этот принцип позволяет компании сохранить важное для бизне-
са программное обеспечение, даже когда поставщик программного продукта
прекратит его техническую поддержку.
6
2. Стандартизация производственных задач в системе управления в виде
сервисов. SOA-система ориентирована на предоставление сервисов. SOA поз-
воляет выстраивать логику процесса в системе управления отдельно от логики
определенной производственной задачи (бизнес-логики), исполнение которой
разрабатывается в виде стандартизованного сервиса. Весь процесс представляет
собой объединение производственных задач. Так, например, процесс приемки
товара на склад является объединением таких производственных задач, как
сортировка прихода, идентификация товара, маркировка, палеттизация, печать
Р
актов приемки.
Работу сервиса в системе управления можно разделить на три этапа: по-
И
лучение данных на входе, обработка информации и формирование результата
на выходе. Сформированные данные на выходе сервиса перУедаются на вход
следующего сервиса или выводятся в том или ином виде пользователю системы
Г
(на монитор или в виде печатных отчетов). Сервис должен быть слабосвязан-
ным и автономным. Б
3. Принцип повторного использования. SOA-архитектура предоставляет
возможность комбинирования и многократного использования стандартизован-
а
ных производственных задач системы (сервисов). Например, такие операции,
к
как обработка серийных номеров при приемке товара, учет партии, алгоритмы
е
перемещения, пополнения и отбора товара могут быть стандартизированы в си-
стеме управления в виде сервисовт и многократно использоваться для построе-
ния процессов в системе управления складом.
о
4. Гибкость при разработке и внесении изменений в систему управления
и
позволяет запустить новые процессы или модифицировать существующие, со-
храняя основные процлессы неизменными. Например, если необходимо доба-
вить в процесс приемки задачу учета серийных номеров, бизнес-логика задачи
б
реализуется в системе управления в виде сервиса (подпроцесса), и затем сервис
и
добавляется в процесс.
5. SOA основана на принципе слабосвязанности, который ведет к умень-
Б
шению числа взаимозависимостей компонентов в процессах системы. Если в
системе управления процессы имеют наименьшее количество связей, это упро-
щает процесс разработки новой функциональности и изменения процессов.
Однако при внедрении SOA-системы необходимо помнить, что эти пре-
имущества обеспечивает не сама архитектура, а ее правильное использование.
7
1.3. Преимущества SOA
Создание сервис-ориентированной архитектуры может помочь подгото-
вить как ИТ, так и бизнес-процессы к быстрым изменениям. Даже на ранних
стадиях внедрения SOA организация получит преимущества за счет:
− роста доходов из-за создания новых рыночных возможностей и полу-
чения новых преимуществ от существующих систем;
− предоставления гибкой бизнес-модели, позволяющей быстрее реагиро-
Р
вать на вызовы рынка;
− снижения стоимости в связи с устранением дублирующих систем,
И
наращиванием возможностей уже имеющихся систем и сокращением
времени до выхода на рынок; У
− снижения рисков и количества дефектов благодаря повышению
Г
наглядности бизнес-операций.
Подход, основанный на SOA, позволяет сокраБтить разрыв между тем, что
вы хотите от бизнеса, и инфраструктурными инструментами, которые для этого
нужны:
а
− сокращает время на разработку и размещение благодаря использова-
к
нию уже созданных сервисов, пригодных для повторного использова-
е
ния, в качестве строительных блоков;
− позволяет интегрироватть в масштабах предприятия даже те системы,
которые всегда были изолированы, и облегчает поглощение и приобре-
о
тение предприятий;
и
− сокращает время цикла и стоимость за счет перехода от ручных к авто-
матизированлным транзакциям;
− облегчает взаимодействие с бизнес-партнерами благодаря повышению
б
гибкости;
и
− предлагает адаптируемые и масштабируемые решения сложных про-
Бблем бизнеса, основанные на передовом опыте, таком как разделение
приложения на слои и слабосвязанные компоненты.
1.4. Определение SOA
Сервис-ориентированная архитектура – это подход к созданию интегра-
ционных архитектур, основанный на такой концепции, как «служба» (service).
Приложения взаимодействуют, вызывая службы, входящие в состав дру-
гих приложений, и эти службы могут объединяться в более крупные последова-
тельности, реализуя бизнес-процессы.
8
SOA – это подход к интеграционной архитектуре, основанный на концеп-
ции служб.
Бизнес-функции и инфраструктурные функции, которые необходимы для
построения распределенных систем, реализуются в форме служб, которые, в
сочетании или по отдельности, предоставляют прикладную функциональность
либо приложениям, работающим с конечным пользователем, либо другим
службам.
SOA определяет, что внутри любой архитектуры должен быть единый
Р
механизм взаимодействия служб. Этот механизм должен строиться на основе
свободных связей и должен поддерживать использование формальных интер-
И
фейсов.
Википедия определяет SOA как модульный подход кУ разработке про-
граммного обеспечения, основанный на использовании распределенных, слабо
Г
связанных (loose coupling), заменяемых компонентов, оснащенных стандарти-
зированными интерфейсами для взаимодействия по сБтандартизированным про-
токолам.
Программные комплексы, разработанные в соответствии с сервис-
а
ориентированной архитектурой, обычно реализуются как набор web-служб,
к
взаимодействующих по протоколу SOAP, но существуют и другие реализации
е
(например, CORBA на основе REST).
В сети Интернет вызов удалтенной процедуры может представлять собой
обычный HTTP-запрос («GET» или «POST»; такой запрос называют «REST-
о
запрос»), а необходимые данные передаются в качестве параметров запроса.
и
Интерфейсы компонентов в сервис-ориентированной архитектуре инкап-
сулируют детали реаллизации (операционную систему, платформу, язык про-
граммирования) от остальных компонентов, таким образом обеспечивая ком-
б
бинирование и многократное использование компонентов для построения
и
сложных распределенных программных комплексов, обеспечивая независи-
мость от используемых платформ и инструментов разработки, способствуя
Б
масштабируемости и управляемости создаваемых систем.
1.5. Понятие службы
Поскольку мы определили SOA как подход к созданию интеграционных
архитектур, основанных на службах, важно определить, что же представляет
собой служба в данном контексте, чтобы можно было полностью описать SOA
и понять, чего можно добиться с ее помощью.
На рис. 1.2 приведена схема связи служб с бизнес-задачами, или функци-
ями.
9
Р
И
У
Г
Б
а
к
е
Рис. 1.2. Связь служб с бизнес-задачами, или функциями
т
Службой можно назваоть любую дискретную функцию, которая может
быть предложена внешнему потребителю. Это может быть отдельная бизнес-
и
функция или набор функций, которые формируют процесс.
л
Общепринятыми являются положения, согласно которым службы:
− включаюбт в себя многократно используемые бизнес-функции;
− определены с использованием формальных, не зависящих от реализа-
и
ции, интерфейсов;
− Бвызываются при помощи протоколов связи, обеспечивающих прозрач-
ность местонахождения и возможность взаимодействия.
1.6. Фундамент SOA (IBM SOA Foundation)
Фундамент SOA – это интегрированный открытый набор программного
обеспечения, лучшие методы и шаблоны, которые предоставляют вам все, что
необходимо для того, чтобы приступить к созданию SOA.
Фундамент SOA обеспечивает полную поддержку жизненного цикла SOA
с помощью интегрированного набора инструментов и компонентов времени
10