Соединяем ИТ-системы в единое целое с помощью Biztalk Server
Практически всегда одной из задач построения автоматизированной системы является ее интеграция с существующей ИТ-инфраструктурой предприятия. Обусловлено это в первую очередь необходимостью сохранения инвестиций в ИТ. Это значит, что при автоматизации той или иной сферы деятельности предприятия мы должны закладывать в новые системы механизмы взаимодействия с уже существующими. С одной стороны, необходимо реализовать интерфейсы к используемым системам, а с другой — организовать механизмы прозрачного взаимодействия будущих систем с создаваемой. Очевидно, что системы других компаний тоже развиваются и эволюционируют, что влечет за собой необходимость доработки новых решений, развертываемых на предприятии. Вот вам и концептуальная задачка для системного архитектора: как реализовать механизмы организации и управления связями между системами? При ее решении возможны два подхода. Первый — поручить эту работу системному программисту. Но тогда каждый раз при смене форматов данных придется опять дорабатывать и собирать модули системы. И второй — внедрение промышленной интеграционной платформы, которая позволит гибко управлять процедурой «взаимоувязки» систем. Думаю, для всех предпочтительнее второй вариант. На данный момент такие интеграционные решения представлены практически у всех крупных производителей: Microsoft, IBM, ВЕА, Oracle и др.
Решение от Microsoft
Данная статья открывает цикл, посвященный особенностям разработки и внедрения систем на базе Microsoft Biztalk Server 2004 и ее задача — дать общее представление о Biztalk и принципах его работы. Итак, Microsoft BizTalk Server 2004 — это интеграционная платформа компании Microsoft, основным назначением которой является организация управляемых бизнес-процессов для взаимодействия различных автоматизированных систем.
Первая версия Microsoft Biztalk Server вышла в декабре 2000 года. Biztalk предоставлял разработчикам компаний простой графический инструментарий (тогда еще на базе Visio) для управления бизнес-процессами и интеграции приложений на базе XML. Текущая версия Biztalk — Microsoft Biztalk Server 2004. Это уже третье поколение интеграционной платформы. По сравнению с предыдущими версиями в Biztalk 2004 существенно расширена функциональность основного механизма сопряжения — оркестровок, а также добавлена машина бизнес-правил. Отличительной особенностью данной версии является тесная интеграция с Microsoft Visual Studio .NET 2003 и Microsoft Office System. В 2006 году корпорация Microsoft планирует выпустить новую версию Biztalk — Microsoft Biztalk Server 2006. Biztalk 2006 будет реализован на ядре 2004-го, однако планируется ряд новаций: встроенная поддержка SharePoint Portal Server, Microsoft SQL Server 2005, Microsoft Visual Studio 2005 и 64-разрядных платформ.
Microsoft Biztalk Server поставляется в трех редакциях: Enterprise, Standard и Partner edition.
Функционально они не отличаются, а основные различия заключаются в лицензионной политике корпорации Microsoft для каждой версии (см. таблицу). Здесь стоит пояснить, что имеется в виду под «внутренними приложениями» и «торговыми партнерами». Внутреннее приложение — это самостоятельное приложение, работающее на отдельном сервере в сети компании, например система ERP или CRM. А торговый партнер — это любая система, взаимодействующая с сервером Biztalk через Internet.
Что внутри?
BizTalk Server состоит из принимающих и передающих адаптеров, принимающих и передающих конвейеров, оркестровок, почтового ящика BizTalk Server и машины бизнес-правил (см. рис. 1). Рассмотрим назначение каждого из компонентов.
Рисунок 1. Структура BizTalk Server |
Для начала надо сделать небольшое отступление. Основным элементом обработки в Biztalk является сообщение (message), которое представляет собой документ XML, отвечающий определенной схеме данных XSD.
Итак, начнем с адаптеров. Фактически адаптер — это интерфейс к внешним системам. Основной его функцией является прием или отсылка сообщения сторонним системам. Задача же конвейеров заключается в преобразовании сообщений из одного формата в другой. В почтовом ящике Biztalk хранятся полученные и готовые к отправке сообщения.
Теперь перейдем к основному компоненту решений на базе Biztalk — оркестровке. Оркестровка — это и есть тот самый управляемый бизнес-процесс, в котором задается последовательность операций над сообщениями. Оркестровки частично совместимы со стандартом BPEL, что теоретически позволяет использовать их в других интеграционных платформах.
Теперь немного о том, как это работает. Сообщение принимается адаптером и преобразовывается в формат XML принимающим конвейером, после чего попадает в очередь сообщений. Оркестровка получает сообщение из очереди и обрабатывает его в соответствии с заданным бизнес-процессом. На данном этапе также можно использовать машину бизнес-правил (Business Rules Engine). Машина бизнес-правил предоставляет дополнительный инструментарий для управления бизнес-процессами, вынося управление ими в отдельную процедуру. По завершении процесса сообщение попадает в очередь на отправку. После чего оно преобразуется передающим конвейером в необходимый формат и отсылается передающим адаптером.
И что снаружи
Сегодня на рынке представлены адаптеры к большинству промышленных систем, к MQ Series, MySap, Siebel и т. д. Также существует набор разработчика SDK для программирования адаптеров. Таким образом, BizTalk Server позволяет интегрироваться практически с любой системой.
В качестве среды разработки под BizTalk используется Microsoft Visual Studio .NET и Business Rule Composer, входящий в комплект поставки Biztalk. Visual Studio позволяет визуально проектировать бизнес-процессы (см. рис. 2), а Rule Composer — правила их исполнения.
Рисунок 2. Проектирование бизнес-процессов в Visual Studio |
Помимо стандартного инструментария, мы можем использовать внутри оркестровок сборки .NET, что делает функциональность Biztalk практически неограниченной. Отдельно стоит отметить поддержку Web-служб XML, которая существенно облегчает нам построение межкорпоративных B2B-решений. Biztalk позволяет задействовать Web-службы внутри оркестровок, а также публиковать сами оркестровки как Web-службы.
За работу
Как уже отмечалось выше, Biztalk используется для решения двух основных задач. Во-первых, для интеграции приложений (Enterprise Application Integration), а во-вторых, для построения B2B решений. Остановимся подробнее на каждой из этих задач.
Интеграция приложений. Допустим, на предприятии уже сложилась какая-то инфраструктура. Пусть это будет парочка прикладных систем, написанных корпоративными программистами. И возникла задача построения, скажем, системы управления справочной информацией НСИ, т. е. нужно вести все справочники, необходимые предприятию, централизованно. Идея, конечно, хорошая, но каждая унаследованная система в свою очередь тоже является потребителем НСИ, причем каждая в своем объеме. Зная только форматы обмена данными, мы можем интегрировать на базе управляемых бизнес-процессов Biztalk все системы предприятия в единую информационную сеть. При этом нам не обязательно вникать в тонкости реализации каждой из них. В итоге мы получаем интегрированную и управляемую информационную среду на предприятии и закладываем мощный базис для дальнейшего наращивания инфраструктуры. Эта задача особенно остро стоит в крупных, географически распределенных предприятиях. Хрестоматийным случаем возникновения «острой необходимости» внедрения интеграционной платформы является объединение ИТ-инфраструктур нескольких предприятий, например, в результате слияния. В этом случае вы единомоментно получаете несколько систем, о которых мало что знаете, но должны использовать их в повседневной производственной деятельности предприятия.
B2B-решения. Задача построения B2B-решений очень похожа на интеграцию приложений, с той лишь разницей, что сторонние системы являются «чужими» по отношению к предприятию. А иногда вы просто не знаете, кто будет потребителем данных ваших систем. Большим подспорьем в реализации подобных решений является поддержка Web-служб в Biztalk, т. е. можно опубликовать свой управляемый бизнес-процесс в качестве Web-службы, тем самым предоставив сторонним системам интерфейс к своей корпоративной инфраструктуре. Передав партнеру так называемый интеграционный пакет, состоящий из файлов описания ваших Web-служб и схем данных сообщений XML, вы организовываете двусторонний обмен данными между системами.
Простота установки и настройки, а также наглядный инструментарий разработчика делают Microsoft Biztalk Server одной из лидирующих платформ на рынке. Компания Nucleus Research, занимающаяся глобальными исследованиями окупаемости, поставила Biztalk на первое место в сравнительном анализе современных средств интеграции. А огромный портфель проектов, реализованных с применением данной технологии, среди которых корпоративные информационные системы крупнейших российских компаний, говорит о безусловной технической зрелости продукта.
Компания IBS использует Biztalk Server с момента выхода его первой версии (Microsoft Biztalk Server 2000) и с 2000 года накопила внушительный объем технической экспертизы данного продукта и солидный багаж реализованных с использованием данной технологии проектов. На базе Biztalk департаментом интеграционных решений был разработан и внедрен ряд корпоративных информационных систем. Хотелось бы отдельно отметить некоторые из них.
- Корпоративная система словарей и справочников для компании ЛУКОЙЛ. В рамках этой системы реализованы функции централизованного управления НСИ - было создано единое хранилище нормативно-справочной информации, потребителями которой являются сторонние системы предприятия, включая SAP.
- Система управления нормативно-справочной информацией для компании "Уралсиб"
- Ряд проектов по сбору корпоративной отчетности. Данные проекты объединяет технологическая связка нескольких продуктов компании Microsoft (Biztalk Server + Sharepoint Portal Server + InfoPath) для организации сбора структурированных данных.
Алексей Берзин - Руководитель группы департамента интеграционных решений компании IBS