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

Этот документ устарел.  Рекомендуется читать здесь.

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

Веселый и простенький вопрос.
BizTalk позиционируется, как пакет для интеграции систем.
Что Microsoft вкладывает в понятие «интеграция», применительно к BizTalk?
1). Это обмен данными в разных форматах и по разным протоколам и стандартам. Имеются в виду форматы данных, такие, как многочисленные текстовые форматы, SQL, Xml. Протоколы, такие, как HTTP, SOAP, SMTP, POP3, FTP, MSMQ, которые обычно включают в себя и стандарты форматов данных. Форматы приложений, такие, как, SAP/R3, Siebel, Dynamics CRM, и индустриальные стандарты, такие как EDI, SWIFT, HL7, HIPPA включают в себя форматы данных, протоколы, системы аудита, защищенности.
Иногда в понятие обмена данными вкладывается элементарное структурное преобразование форматов (например, данные надо преобразовать из текстового формата в формат Xml) плюс использование нужного протокола обмена (пример, данные надо передать по протоколу SOAP, что означает преобразование данных в формат Xml, упаковка этих данных в SOAP-пакеты и использование протокола SOAP для отправки этих пакетов).
Иногда понятие обмена данными расширено настолько, что включает в себя стандарты безопасности, средства аудита, архивирования, синхронизации данных и т.п. К примеру, модули, ответственные за обмен EDI данными, представляют из себя целые системы, состоящие из множества частей и удовлетворяющие множеству EDI стандартов. Одних только XML схем для EDI в составе BizTalk поставляется около 7 тысяч. Для обмена данных BizTalk включает в себя большое количество адаптеров, как простых (File, SOAP, FTP), так и сложных (SAP, J.D.Edvards, HL7…).
2). Другая сторона обмена данных — это преобразование форматов данных. В BizTalk преобразование данных реализуют простую идею: все внешние форматы данных преобразуются к одному внутреннему формату — Xml. Это так называемый Брокер. Все адаптеры осуществляют такое преобразование, как в одну, так и в другую сторону. Сообщения в формате Xml описываются XML схемами — Xsd. Чтобы осуществить структурные преобразования, то есть когда требуется часть данных поменять местами, часть данных просто удалить и т.п, используется стандарт Xslt. Документ Xslt (карта — map) описывает, как исходный (source) XML документ преобразовывается в конечный (destination) XML документ. BizTalk имеет для этих целей два редактора: Schema Editor и Mapper. Первый редактирует и создает Xsd документы, второй — Xslt.
3). Microsoft добавил в BizTalk средства, которые имеют более широкое использование, чем просто обмен данными. Это Business Process Orchestration. Это инструментарий для создания бизнес процессов и для поддержки среды выполнения этих процессов. К примеру, нам потребовалось интегрировать несколько систем продажи товаров. Одна система инициирует весь процесс, например клиент выписывает счет на товары. Другие приложения отвечают за утверждение счета, комплектации заявки на отгрузку товара, комплектации отгрузки, обработки сопутствующих финансовых транзакций. Все эти приложения могут быть независимы друг от друга, могут даже принадлежать разным компаниям. В BizTalk-е создаюся координирующий бизнес процесс, Orchestration, который и управляет обмен данными между всеми приложениями. Сначала запуск бизнес процесса, а значит и Orchestration инициируется одним из внешних приложений. Другие приложения добавляют в систему недостающие данные, а Orchestration интегрирует их в один бизнес процесс. Когда все данные введены и обработаны, Orchestration завершает процесс. BizTalk предоставляет специальный редактор Orchestrations, позволяющий моделировать разнообразные бизнес процессы с помощью простых блок-схем.
Orchestration может ожидать данные от других программ дни, а то и месяцы. Ситуация интересна тем, что одновременно могут работать многие тысячи Orchestration для многих тысяч заявок.
Возникающие при этом технические проблемы очень интересны, в принципе элементарны, но их реализация на практике нетривиальна: это  обеспечение восстановления системы после неизбежных сбоев оборудования, обеспечение стабильной работы большого количества приложений, обеспечение синхронизации тысяч документов, программ, партнеров и т.д. Простая интеграция, когда данные берутся из одного источника, преобразуются в формат другой программы и передаются этой программе, не решает проблемы асинхронной обработки. Что будет, если принимающая данные система временно не работает? Что делать, если исходная система выдала несколько документов, а принимающая сторона все еще загружена или не успевает их принять в том же темпе? Business Process Orchestration помогает решить и эти проблемы.
BizTalk предоставляет среду, которая ответвечает за создание огромного количества процессов, за управление этими процессами.
Основное применение Orchestrations — координация обработки интегрируемых данных, а не только согласование форматов и протоколов передачи данных. Это консолидация данных из разных источников, реализация бизнес логики по промежуточной обработке данных, синхронизация данных из разных источников, поддержка транзакций и т.п. Созданы технологии и несколько стандартов, посвященных именно долгоживущим процессам, называющимися Long Running Transactions. Основные игроки в данном сегменте, это IBM, Microsoft, Siebel, TIBCO и ряд других.
Как видите, решаемые задачи объективно трудоемкие, что неминуемо и приводит к тому, что на этом рынке конкурируют всего несколько пакетов.
BizTalk можно рассматривать с двух сторон: С одной стороны — это инструментарий разработчика, включающий в себя многочисленные редакторы (схем, maps, Orchestrations…). Часть средств BizTalk работают, как независимые программы, но основные редакторы работают в Microsoft Visual Studio.
С другой стороны — это среда выполнения, обеспечивающая работу разработанных процессов обработки данных. При этом среда выполнения обеспечивает очень высокую надежность обработки данных, очень высокую степень масштабируемости. Оптимальные системы работают и на одном компьютере, и на серверных фермах, состоящих из десятков серверов. BizTalk Server работает в среде Windows и в качестве временного хранилища данных использует Microsoft SQL Server.
Один из нюансов использования BizTalk состоит в том, что он используется прежде всего для интеграции систем в автоматическом режиме, для интеграции программ с минимальным участием человека. Одни приложения поставляют данные, другие их потребляют. В промежутке располагается BizTalk Server, который согласовывает форматы обмена, координирует обмен данных и их обработку. Типичная система на базе BizTalk работает без участия человека. BizTalk – это типичная back-end система. Ее многочисленные и мощные средства для разработчика контрастируют с минимальным, хотя и мощным, набором средств для оператора, которому надо лишь в ограниченных пределах наблюдать за работающей системой, подстраивать ее. В BizTalk есть четкое деление между средой разработки (development) и средой исполнения (runtime).
Суммируя вышеизложенное, BizTalk — это интеграционный пакет, обеспечивающий обмен данными в разных форматах, преобразование данных, создание и обеспечение работы бизнес процессов, плюс среда разработки.
Типичные примеры использования BizTalk:
1) Приложение или оператор выкладывает готовые данные в определенном формате в файлы в определенный каталог. BizTalk процесс с заданным промежутком времени просматривает этот каталог и забирает файлы. Данные из файлов преобразуются во внутренний формат (Xml). Другие приложения, подписанные на эти данные, получают их. Данные предварительно преобразовываются в формат этих приложений. Данные хранятся в BizTalk до тех пор, пока принимающая система не будет готова принять их.
2) BizTalk процесс с определенной периодичностью запрашивает SQL базу на предмет появления новых данных. Процесс стартует, когда обнаруживаются новые данные. Процесс рассылает эти данные в другие приложения и ожидает от этих приложений ответа, что данные обработаны. Когда все ответы получены, данные в SQL базе помечаются, как обработанные.
3) Приложение обращается к Web-сервису за данными. Web-сервис запускает BizTalk процесс, который обращается к другим Web-сервисам за дополнительными данными, после чего консолидирует данные и выдает их первому Web-сервису. (Это типичный пример создания модных сейчас композитных Web-сервисов.)
4) Складская система на базе RFID (радио кодов). BizTalk процессы получают данные с RFID считывателей установленных на воротах склада, фильтруют их и передают данные в многочисленные складские приложения для учета и мониторинга движения товара.
————————————————————
[1] BizTalk Server – главная страница в интернете http://www.microsoft.com/biztalk/
[2] BizTalk Server документация на сайте MSDN http://msdn.microsoft.com/en-us/library/bb430723.aspx
[3] BizTalk datasheet: версии, цены, список адаптеров http://download.microsoft.com/download/c/2/2/c22737c1-707e-42a3-ae45-5df40973a0a7/BizTalk%202006%20R2%20Datasheet.pdf

6 комментариев

Filed under BizTalk, Microsoft

6 responses to “Microsoft BizTalk Server: Что же это такое?

  1. tertium alter ego

    дядь лёнь, офигевать от могутности орудия для профессионального бойца дело чести, но исключительно опосля боя. одиннадцать раз использовать слово «сложность» для вводной статьи, призванной, насколько я понял, заинтересовать потенциального читателя этой гаубицей, вряд ли можно назвать удачным педагогическим приёмом. сумлеваюсь, что найдётся много желающих зарядить её и выстрелить в сторону неприятеля. не говоря уже о службе по контракту.

    но я не из пугливых — жду статью «просто о сложном бизтоке».

    моя рыжая говорит, что усложнять — просто, а упрощать — сложно.

  2. Leonid Ganeline

    Я в свою очередь офигиваю от богатства и красочности втоих выражений. По-белому завидую.
    Критику с радостью принимаю. Буду переделывать сейчас.
    С упрощением я понимаю. Дабы как-то отвести от себя огонь, прошу посмотреть официальные странички БизТолка. Если там будет проще, то посыплю свою голову пеплом и застрелюсь.😉
    Спасибо еще раз!

  3. tertium alter ego

    1. либо точку, либо скобку используй для обозначения очередного пункта

    2. микрософт добавила (она, компания)

    3. хорошо бы давать ссылки на используемые термины, такие как xml и проч. по ходу дела.

    4. обрати внимание, как оформляется «такие как» в предыдущем пункте.

    5. ссылки делай ссылками, а не текстом.

    6. отбивай параграфы новой строкой.

    7. в смысл не вчитывался — оставил на сладкое.

  4. Лида

    Ни чего проще и понятней пока ещё не читала))

  5. Лида

    И большое спасибо))

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

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

Логотип WordPress.com

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

Фотография Twitter

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

Фотография Facebook

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

Google+ photo

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

Connecting to %s