Сценарии использования ESB
В данной статье рассмотрены основные сценарии использования сервисной шины с целью демонстрации возможных архитектурных решений, влияющих как на выбор продукта, так и на список задач, которые можно решить путем установки ESB. Сценарии использования ESB не ставят своей целью отразить всю полноту требований организации к SOA или ESB. Например, сценарий «Интеграция двух систем» с течением времени может развиться в более сложный сценарий «Сервисы прикладных систем».
Отдельно взятый сценарий может решать отдельную задачу, но возможно комплекс задач, взятых вместе, нуждается в более сложном сценарии, нежели в комбинации простых. Поэтому имеет смысл рассмотреть сценарий «Сервисно-ориентированный бизнес с расширенным управлением», как один из наиболее полных, и сравнить его с поэтапным выращиванием SOA-инфраструктуры за счёт внедрения отдельных простых сценариев.
Рассматриваемые далее сценарии включают:
- Интеграция двух систем;
- Сервисы прикладных систем;
- Интеграция с базами данных;
- Использование ранее установленного связующего ПО
- Межорганизационное взаимодействие;
- Автоматизация процессов посредством оркестровки сервисов;
- Сервисно-ориентированный бизнес с расширенным управлением.
Интеграция двух систем
Задача: В компании существует потребность интеграции между двумя системами, реализованными на основе различных технологий или платформ, таких как J2EE, .NET и др. Необходимо осуществлять передачу данных между этими системами, синхронизировать состояние некоторых объектов, включить их в общий бизнес-процесс.
Решение:
- Для интеграции можно использовать связующее ПО для обмена сообщениями или реализовать доступ к каждой системе в виде веб-сервисов;
- Среды обеих прикладных систем должны каким-либо образом поддерживать работу со связующим ПО или веб-сервисами;
- Поддержка реализуется при помощи адаптеров и оболочек (или встраивается в прикладную систему, если это возможно).
Для этого сценария важно определить нагрузку на интерфейс взаимодействия и критичность к задержкам. Использование связующего ПО обеспечит более высокую скорость и надежность, реализация веб-сервисов не требует установки связующего ПО.
Второй важный вопрос, потребуется ли впоследствии интеграция с дополнительными системами. Если да, то имеет смысл рассмотреть следующие сценарии.
Сервисы прикладных систем
Задача: В компании установлено несколько приобретенных или разработанных приложений (например, решения класса CRM, ERP и т. д.), реализованные на платформе сервера приложений. Доступ к функциональности данных приложений нужен не только через графический интерфейс приложений, но и через программный интерфейс другими системами. Необходимо организовать взаимодействовать с этими системами и обеспечить программный доступ к ним клиентам или партнёрам.
Решение:
- Организовать доступ к функциональности систем через открытые стандарты и протоколы;
- Реализация при помощи адаптеров и оболочек к приобретенным системам, и встраивание сервисных интерфейсов в собственные разработки;
- Для доступа к приложениям извне добавить шлюз, выполняющий проверку корректности обращения и наличие полномочий, реализованный в виде набора сервисов;
- Если есть требования к надежности и скорости, нужно добавить брокер сообщений;
- Если необходима координация и управление процессами, использовать продукт, реализующий оркестровку сервисов.
Интеграция с базами данных
Задача: В компании установлены системы, не имеющие никакие программные интерфейсы. Использовать или разработать к ним адаптер нельзя. Тем не менее, всю информацию данные системы хранят в одной или нескольких базах данных. Необходимо обеспечить доступ к данным, обеспечив при этом их целостность и транзакционность операций. Доступ к данным требуется в других системах. Также необходимо обеспечить синхронизацию вносимых в БД изменений в одной системе в базы данных других систем.
Решение:
- Если баз несколько, выберите те, изменения в которых должны быть переданы другим системам,
- Используйте адаптеры к БД, позволяющие передавать в сервисную шину изменения в данных в виде событий;
- Используйте готовые продукты представляющие работу с базой данных в виде набора сервисов, либо разработайте собственные сервисы, если их количество невелико и изменения в них будут редки,
- Для взаимодействия сервисов используйте брокер сообщений, обеспечивающий гарантированную доставку,
- Транзакционность работы с данными заложите в логику сервисов, в маршрутизацию по контенту, или используйте более гибкий вариант — сервис оркестровки.
Использование ранее установленного связующего ПО
Задача: В компании несколько лет назад было внедрено интеграционное ПО, работающее как брокер сообщений и поддерживающее стандарт JMS. Данное связующее ПО используется для надежной передачи данных между удаленными офисами в рамках одной системы. Теперь существует задача интеграции с другими системами, часть из которых не поддерживает JMS.
Решение:
- Если производитель связующего ПО имеет в портфеле решение ESB, основанное на уже установленном брокере, и его функциональность удовлетворяет, то провести модернизацию системы;
- В противном случае, использовать решение ESB другого производителя и убедиться, что оно поддерживает JMS.
- Для интеграции с существующими системами не поддерживающими JMS и SOAP использовать адаптеры;
- Настроить на сервисной шине сервисы преобразований данных и маршрутизации по контенту, если это требуется.
- Если потребуется надежная доставка данным между системами, которые нельзя подключить к существующему брокеру, установить дополнительный брокер, тем самым, сформировать на сервисной шине несколько узлов надежной доставки.
Межорганизационное взаимодействие
Задача: Компания желает предоставить своим клиентам, поставщикам и партнерам возможность осуществить непосредственную интеграцию с функциями, обеспечиваемыми одной или несколькими прикладными системами. Необходимо обеспечить безопасный и управляемый доступ внешних участников к таким прикладным системам.
Решение:
- Использовать решения на основе открытых стандартов, чтобы упростить использование сервисов клиентами и партнерами.
- Включить в сервисную шину шлюз, выполняющий проверку корректности обращения и наличие полномочий, реализованный в виде одного или нескольких сервисов;
- Использовать сервис учета обращений клиентов и партнеров к сервисам;
- Для внешних обращений использовать предпочтительно веб-сервисы, с защитой на уровне протокола SSL;
- Если предоставление сервисов является платным и/или необходимо обеспечивать высокий уровень обслуживания, внедрить систему управления SOA-инфраструктурой, позволяющую отслеживать все обращения к сервисам, их длительность и места возникновения ошибок.
Автоматизация процессов посредством оркестровки сервисов
Задача: Помимо интеграции на уровне данных компании требуется автоматизировать бизнес-процессы и отслеживать эффективность их работы. В процессах участвуют CRM и ERP-системы, корпоративная электронная почта, портал и система заказов у внешнего партнёра. За счёт проведенного ранее внедрения SOA-инфраструктуры на базе сервисной шины, все перечисленные системы представлены в виде сервисов, но пока не увязаны между собой в бизнес-процессы.
Решение:
- Использовать сервис оркестровки;
- Описать бизнес-процессы и смоделировать их в среде разработки для сервиса оркестровки;
- Выбрать события, инициирующие описанные бизнес-процессы, и обеспечить появление на сервисной шине сообщений, информирующих о данных событиях.
Сервисно-ориентированный бизнес с расширенным управлением
Задача: Компания приняла решение о перестройке бизнеса в сервисно-ориентированный. На основе внутреннего аудита и проведенного анализа путей реализации были описаны новые бизнес-процессы и требования к их автоматизации. Также принято решение о перестройке ИТ-инфраструктуры с возможным привлечением сторонних сервисов, повышением прозрачности и надежности проводимых операций. В результате приобретения новых программных продуктов, доработки собственных разработок и выбора внешних партнеров, предоставляющих сервисы, поставлена задача выстроить все ИТ-системы на обслуживание бизнес-задач и бизнес-процессов, описанных на верхнем уровне компании.
Решение:
- Необходимо использовать инструменты формализации бизнес-процессов и их отображение в использование внутренних сервисов компании и внешних сервисов партнеров, например, на основе сервиса оркестровки;
- Выбрать ключевые показатели KPI и привязать их к используемым сервисам;
- Обеспечить взаимодействие сервисов на уровне сервисной шины, применяя надежную доставку в тех случаях, когда это необходимо;
- Использовать сервисы преобразования данных и маршрутизации по контенту для реализации переходов между шагами бизнес-процессов;
- Внедрить систему управления SOA-инфраструктурой, позволяющую отслеживать все обращения к сервисам, их длительность и места возникновения ошибок. На её основе отслеживать изменения KPI и использовать при принятии бизнес-решений о развитии компании.
- Войдите на сайт для отправки комментариев