Microsoft BizTalk Server: Что это такое?

Что такое Microsoft BizTalk Server?

Вопрос кажется простым , но на него вы вряд ли найдете внятный ответ. Вам будут долго и красиво рассказывать. Скоро у вас закружится голова и вы будете радостно кивать, слушая красивые рассказы ни чем, рассказы людей, которые в лучшем случае сделали пару простеньких проектов, но обычно просто — хорошо смазанные сейлзы. Первые ни разу не видели, как это все работает с реальными данными. Вторые не понимают практически ничего, о чем с таким задором рассказывают.

Интеграция?

BizTalk позиционируется, как пакет для интеграции систем.

Что Microsoft вкладывает в понятие «интеграция», применительно к BizTalk?
Здесь три главных аспекта:

  • обмен данными
  • преобразование форматов данных
  • бизнес процессы

Обмен данными

Обмен данными в разных форматах и по разным протоколам и стандартам. Имеются в виду форматы данных, такие, как многочисленные текстовые форматы, SQL, Xml. Протоколы, такие, как HTTP, SOAP, SMTP, POP3, FTP, MSMQ, которые обычно включают в себя и стандарты форматов данных. Форматы приложений, таких, как, SAP/R3, Siebel и индустриальные стандарты, такие как EDI, SWIFT, HL7, HIPPA, которые включают в себя форматы данных, протоколы, системы аудита, защищенности.
Иногда в понятие обмена данными вкладывается структурное преобразование данных между форматами (например, данные надо преобразовать из текстового формата в формат Xml) плюс использование нужного протокола обмена (пример, данные надо передать по протоколу SOAP, что означает преобразование данных в формат Xml, упаковку этих данных в SOAP-пакеты и использование протокола SOAP для отправки этих пакетов).
Иногда понятие обмена данными расширено настолько, что включает в себя стандарты безопасности, средства аудита, архивирования, синхронизации данных и т.п. К примеру, модули, ответственные за обмен EDI данными, представляют из себя целые системы, состоящие из множества частей и удовлетворяющие множествам EDI стандартов. Одних только схем EDI в составе BizTalk поставляется несколько тысяч. Для обмена данных BizTalk включает в себя большое количество адаптеров, как простых (File, SOAP, FTP), так и сложных (SAP, J.D.Edvards, HL7…).

BizTalk генерирует XML схемы для инегрируемых систем с помощью визардов либо адаптором, автоматически при подключении к интегрируемой системе.

Обычно операция получения схем недооценивается, особенно в BizTalk. Но попробуйте сами создать парсер для преобразования csv файла в XML. Попробуйте найти утилиту, которая это сделает корректно.  То же касается и SQL процедур и таблиц.

BizTalk делает очень много, чтобы предоставить или создать девелоперу качественные XML схемы.

Преобразование форматов

Другая сторона обмена данных – это преобразование форматов данных между системами. В BizTalk преобразование данных реализуется так: все внешние форматы данных преобразуются к одному внутреннему формату — Xml. Все адаптеры осуществляют такое преобразование, как в одну, так и в другую сторону. Сообщения в формате Xml описываются схемами — Xsd. Чтобы осуществить структурные преобразования, то есть когда требуется часть данных поменять местами, часть данных удалить и т.п, используется стандарт Xslt. Документ Xslt (карта — map) описывает, как исходный (source) XML документ преобразовывается в конечный (destination) XML документ. BizTalk имеет для этих целей два редактора: Schema Editor и Mapper. Первый редактирует и создает Xsd схемы, второй –Xslt преобразования.

Маpper – это один из лучших редакторов в мире для создания Xslt преобразований.

Бизнес процессы

Microsoft добавило в BizTalk средства, которые имеют более широкое использование, чем просто обмен данными. Это Business Process Orchestration – бизнес процессы «между системами». Тут нужно отметить, что большая часть бизнес процессов должна происходить внутри систем, не между ними, не между интегрируемыми системами. Но это в идеале. В реальной жизни, приходится встраивать бизнес процессы между системами. Но всегда помните, что это не совсем правильный подход.

Вернемся к тому, как бизнес процессы реализуются в BizTalk. В BizTalk встроены следующие средства: редактор для создания бизнес процессов и среда выполнения этих процессов. К примеру, нам потребовалось создать систему, координирующую продажи товаров. Сейчас система состоит из нескольких независимых приложений. Одно приложение этой системы инициирует обработку, например выдает счет на товары. Другие приложения отвечают за утверждение счета, комплектации заявки на отгрузку товара, комплектации отгрузки, обработки сопутствующих финансовых транзакций. Все эти приложения могут быть независимы друг от друга, могут даже принадлежать разным компаниям. В BizTalk создается координирующие программы, бизнес процессы, Orchestration, которые и управляют всем бизнес процессом. Запуск бизнес процесса, а значит и Orchestration инициируется одним из внешних приложений. Orchestration запрашивает у других приложений недостающие данные, дает им задания на обработку, и таким образом интегрирует их в один бизнес процесс. Когда все данные введены и обработаны, Orchestration завершает процесс. Orchestration может ожидать данные от других программ дни, а то и месяцы. Интересно то, что одновременно могут работать многие тысячи экземляров Orchestration для многих тысяч заявок.
Возникающие при этом проблемы очень интересны и на практике бывают довольно сложны в реализации: это и обеспечение бесперебойного восстановления системы после сбоев оборудования, и обеспечение стабильной работы большого количества приложений, обеспечение синхронизации тысяч документов, программ, партнеров и т.д. Простая интеграция, когда данные берутся из одного источника, преобразуются в формат другой программы и передаются этой программе, не решает проблемы асинхронной обработки. Что будет, если принимающая данные сторона временно не работает? Что делать, если исходная системы выдала несколько комплектов данных, а принимающая сторона все еще не работает или не успевает их принять в том же темпе? Business Process Orchestration решает и эти проблемы.
BizTalk предоставляет среду, которая ответвечает за создание огромного количества процессов, за управление этими процессами. BizTalk предоставляет специальный редактор Orchestrations, позволяющий моделировать разнообразные бизнес процессы с помощью простых блок-схем.
Основное применение Orchestrations — координация обработки интегрируемых данных, а не только согласование форматов данных. Это консолидация данных из разных источников, реализация бизнес логики по промежуточной обработке данных, синхронизация данных из разных источников, поддержка транзакций и т.п. Создана теория и несколько стандартов, посвященных именно долгоживущим процессам, называющимися Long Running Transactions. Основные игроки в данном сегменте, это IBM, Microsoft, Siebel, TIBCO и ряд других.

Как видите, решаемые задачи объективно трудоемкие, что неминуемо и приводит к тому, что на этом рынке конкурируют всего несколько пакетов.

Инструментарий разработчика

BizTalk можно рассматривать с двух сторон: С одной стороны — это инструментарий разработчика, включающий в себя многочисленные редакторы (схем, maps, Orchestrations…). Часть средств BizTalk работают, как независимые программы, но большая часть средств — как редакторы в Microsoft Visual Studio. Все о чем я говорил выше, относится как раз к инструментарию разработчика.

Среда выполнения

С другой стороны — это среда выполнения, обеспечивающая работу процессов обработки данных. При этом среда выполнения обеспечивает очень высокую надежность обработки данных и высокую степень масштабируемости. Оптимальные системы работают и на одном компьютере, и на серверных фермах, состоящих из десятков и сотен серверов. BizTalk Server работает в среде Windows и в качестве хранилища требует Microsoft SQL Server.

Поподробнее

Среда выполнения частично состоит из .NET кода, работающего на нескольких Windows services (это — BizTalk application servers), частично из SQL баз данных, таблиц, процедур, jobs и много другого (это — SQL Servers). Обе части могут работать в кластерах, либо все — на одном компьютере. Сервера приложений кластеризуются средствами самого BizTalk. Добавить сервер — тривиальная задача. Весь код создан для работы в полностью автоматическом режиме. Система восстанавливается автоматически после сбоев питания, сети и других неприятностей.

BizTalk может работать под нагрузкой разного типа. Могут обрабатываться маленькие килобайтные сообщения, большие много-мегабайтные, пакеты сообщений. Могут обрабатываться пиковые одномоментные нагрузки из десятков тысяч сообщений, может поддерживаться постоянная нагрузка из сотен сообщений в секунду.

Один из нюансов использования BizTalk состоит в том, что он используется прежде всего для интеграции систем в автоматическом режиме, для интеграции программ с минимальным участием человека. Одни приложения поставляют данные, другие их потребляют. В промежутке располагается BizTalk Server, который согласовывает форматы обмена, координирует обмен данных и их обработку. Обычно система на базе BizTalk работает без участия человека. BizTalk – это типичная back-end система. Ее многочисленные и мощные средства для разработчика контрастируют с минимальным набором средств для оператора, которому надо лишь в ограниченных пределах наблюдать за работающей системой, подстраивать ее. В BizTalk есть четкое деление между средой разработки (development) и средой исполнения (runtime).

Чтобы продемонстрировать надежность BizTalk, я демонстрирую простую операцию. Я запускаю на обработку побольше данных, после чего просто выключаю сервер. Выдергиваю вилку из разетки. Еще не разу не было такого, чтобы после включения сервера пропало хоть одно сообщение. Пробовал я такое и на кластере BizTalk серверов. Результат тот же, 100% надежность.

Суммируя вышеизложенное, BizTalk — это интеграционная система, обеспечивающая обмен данными в разных форматах и протоколах, преобразование данных и выполнение бизнес процессов, плюс всеобъемлющая среда разработки.

Типичные примеры использования BizTalk:

Синхронизация данных между системами

Приложение или оператор выкладывает готовые данные в определенном формате в файлы. BizTalk процесс с заданным промежутком просматривает нужный каталог и забирает файлы. Данные из файлов преобразуются во внутренний формат (Xml). Другие приложения, подписанные на эти данные, получают их. Данные предварительно преобразовываются в формат этих приложений. Данные хранятся в BizTalk до тех пор, пока принимающая сторона не будет готова принять их.

Синхронизация данных между приложениями в реальном масштабе времени

BizTalk процесс с определенной периодичностью запрашивает SQL базу на предмет появления новых данных. Процесс стартует, когда обнаруживаются новые данные. Процесс рассылает эти данные в другие приложения и ожидает от этих приложений ответа, что данные обработаны. Когда все ответы получены, данные в SQL базе помечаются, как обработанные.

Композитный распределенный сервис

Приложение обращается к Web-сервису за данными. Web-сервис запускает BizTalk процесс, который обращается к другим Web-сервисам за дополнительными данными, после чего консолидирует данные и выдает их первому приложению. (Это типичный пример создания композитных Web-сервисов.)

RFID

Складская система на базе RFID (радио кодов). BizTalk процессы получают данные с RFID считывателей установленных на воротах склада и носимых считывателей, фильтруют их и передают данные в многочисленные складские приложения для учета и мониторинга движения товара.

1 комментарий

Filed under BizTalk, BizTalk course

One response to “Microsoft BizTalk Server: Что это такое?

  1. Уведомление: Microsoft BizTalk Server: Что же это такое? | Biztalkien

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s