Что такое BizTalk? Взгляд изнутри

Что такое BizTalk?

Из моего опыта – самая большая проблема с BizTalk именно в этом. Программисты, ИТ менеджеры не могут понять, зачем им нужен BizTalk.

Сейчас я попробую подойти к этому вопросу со стороны разработчика.

BizTalk изнутри

BizTalk – это большая система. И этому есть веские причины. Кроме того, BizTalk – дорогая система. Что же такого сосредоточено внутри, за что надо платить, что нельзя быстро и дешево воспроизвести в домашних условиях?

Я буду оценивать разные части BizTalk-а по их размеру.

Не будем говорить, будем считать. Числа покажут в нужном направлении.

Основные части BizTalk

Повторю, что я классифицирую части BizTalk только по их размеру. А именно, по размерам библиотек, количеству артифактов баз данных и т.п. В качестве базы использую BizTalk 2009.

.NET assemblies

В таблицу сведены и разнесены по разным группам dll и exe файлы из каталога и подкаталогов “Microsoft BizTalk Server 2009”.

Objects Group Subgroup  Files  Size, MB
AllFolders   All Folders 2,200 352.0
Files   Microsoft BizTalk Server 2009 (root) 157 36.0
Files Adapter Microsoft.BizTalk.Adapter. 18 3.4
Files Edi Microsoft.BizTalk.Edi 13 7.8
Files Core Microsoft.XLANG 15 2.6
Files BAM  BAM Portal 90 1.5
Files Core Bins32 30 4.9
Files Core Bins64 20 4.6
Files Dev Developer Tools 68 10.0
Files DevHelp Documentation 17 52.0
Files Core Pipeline Components 5 0.7
Files Core Schema 122 4.4
Files DevHelp SDK 1,602 12.6
Files BAM Tracking 67 8.0
Files EdiSchemas XSD_Schema\EDI 5 211
Files EdiSchemas XSD_Schema\EDI\MicrosoftEdiXSDTemplates.exe (zip) 8,074 4,200
Files Adapter Microsoft BizTalk Adapter Pack (root) 29 7.5

Кроме файлов в каталоге “Microsoft BizTalk Server 2009”, я подсчитал еще файлы в каталоге «Microsoft BizTalk Adapter Pack», который создается при установке WCF-SQL адаптера, который дэ факто используется сейчас практически во всех BizTalk приложениях. Кроме того был разархивирован файл XSD_Schema\EDI\MicrosoftEdiXSDTemplates.exe, содержащий EDI схемы. В упакованном формате его размер около 200МБ, в распакованном – 4.2ГБ.

Не учитывались дистрибутивы различных наборов адаптеров и акселераторов (об этом ниже). Не учитывался код из набора ESB Toolkit, что, конечно, неверно. Он, по сути, является официальным расширением BizTalk Server, поставляется в виде скомпилированного пакета и официально поддерживается Microsoft. ESB Toolkit дал бы нам прирост двух групп, Core и Dev.

SQL artifacts

В таблице приведены сведения по базам данных для SQL Server, создаваемым при установке BizTalk Server. Подсчитаны количества таблиц и процедур в каждой базе.

Objects Group Subgroup Number
DB BAM BAMArchive 1
Table BAM   2
StoredProcedures BAM   18
DB BAM BAMPrimaryImport 1
Table BAM   24
StoredProcedures BAM   108
DB BAM BAMStarSchema 1
Table BAM   4
StoredProcedures BAM   17
DB BAM BizTalkDTAdb 1
Table BAM   60
StoredProcedures BAM   152
DB Core BizTalkMgmtDb 1
Table Core   92
StoredProcedures Core   351
DB Core BizTalkMsgBOxDb 1
Table Core   83
StoredProcedures Core   269
DB Core BizTalkRuleEngineDb 1
Table Core   15
StoredProcedures Core   63
DB Core SSODB 1
Table Core   16
StoredProcedures Core   70

 Для базы BizTalkMsgBOxDb количество объектов зависит от количества созданных хостов:
                Tables = 69 + Hosts*7
               SPs = 149 + Hosts*60

Сводные данные

Для .NET объектов:

Groups Files Size, MB
Adapter 29 8
BAM 157 10
Core 253 37
Dev 68 10
DevHelp 1,619 65
Edi 13 8
EdiSchemas 8,079 4,411
Total 10,157 4,528

 

Для SQL объектов:

Group DB StoredProcedures Tables Total
BAM 3 295 90 388
Core 4 753 206 963
Total 7 1,048 296 1,351

 

Усредненные сводные данны

Как производились усреднения смотрите в разделе «Оценка»

Для .NET объектов:

Group Size  %% ~%%
Adapter 22 20% 20
BAM 10 9% 10
Core 37 33% 30
Dev 20 18% 20
Edi 23 21% 20
 Total 112 100% 100

 

 Для SQL объектов:

Group Objects %%  ~%%
BAM 388 29% 30%
Core 963 71% 70%
Total 1,351 100% 100%

 

Группы

Dev, DevHelp

Это средства создания BizTalk приложений.  Все, что четко относится к Design-time фазе BizTalk приложений. К разработке (development).

Группа Dev: Редакторы, интегрированные с Visual Studio, такие, как Schema Editor, Map Editor (Mapper), Orchestration Editor, Pipeline Editor.  Это — Wizards, создающие схемы, порты и т.п. BizTalk артифакты для отдельных адаптеров. Это независимы утилиты, такие как Tracking Profile Editor (TPE), BRE Composer, утилиты командной строки для установки и насройки BizTalk артифактов.

В группу DevHelp я внес файлы документации по BizTalk и файлы SDK, это десятки проектов с примерами использования BizTalk. Эту группу я буду принимать во внимание, но количество файлов и их размер я учитывать не буду. Условно приму, что группа DevHelp по трудозатратам такая же, как и группа Dev. Что мне остается делать. Заранее согласен с любой критикой.

Итак, результирующая группа Dev получилась путем объединения групп Dev и DevHelp. Размер ее принят, как двукратный размер группы Dev.

EDI, EDI Schemas

Почему я выделил EDI в отдельную группу?

Достаточно взглянуть на количество схем, включенных в EDI-подсистему BizTalk-а. Их 8074 и занимают они более 4ГБ. Что это значит? Это означает промышленный подход к обработке EDI документов. Это означает хорошее «покрытие» наиболее используемых EDI стандартов. Это означает, что любое приложение в этой области, сделанное своими силами, будет неизбежно проигрывать BizTalk-у по множеству параметров.Только большие программистские фабрики могут себе позволить выпускать универсальные приложения для EDI. Слишком велики и замысловаты используемые стандарты.

Итак, результирующая группа EDI получилась путем объединения групп EDI и EDI Schemas. Размер ее принят, как трехратный размер группы EDI.

BAM

Группа BAM – Business Activity Monitoring

Я включил в нее и все артефакты, относящиеся к Tracking.
Это очень интересная часть BizTalk. Обычно начинающие разработчики активно восстают против использования BAM в проектах. Требуется много месяцев, прежде чем приходит понимание полезности BAM. BAM решает задачи по получению оперативной информации о бизнес-процессах, происходящих на предприятии. Сколько и каких документов поступило в обработку, на каком этапе обработки они находятся. Где и когда произошли ошибки. Сырые данные поступают в SSAS (SQL Server Analyze Services), где строятся кубы, агрегаторы. Можно посмотреть среднее время обработки в разных цепочках. Можно оценить количество документов, полученных от разных партнеров в разрезе дней, недель, часов, продуктов. И т.д, и т.п. Причем система по извлечению данных для BAM работает как бы поверх BizTalk процессов. BAM подсистему можно построить, не затрагивая работающих приложений. Вся работа с SSAS
скрыта за простым редактором.
Существуют проекты, где BAM является основой частью системы а BizTalk используется только для того, чтобы использовать его BAM функционал. BizTalk является местом, где протекают основные потоки информации, поэтому BAM легко контролирует эти потоки и делает это великолепно.

BAM построен на базе SSAS и SSIS сервисов SQL Server. Большая его часть реализована объектами SQL. Простота использования BAM достигается довольно интересными и продуманными архитектурными решениями.

Core

Ядро BizTalk это его run-time часть. Ядро это около 40МБ .NET кода и около тысячи SQL таблиц и процедур. Главная его часть – это сервер очередей сообщений. Сообщения попадают внутрь BizTalk и попадают в очереди. Сервер имеет подсистему публикования-подпски (publish-subscribe). Кроме того есть система управления процессами, реализованными в виде orchestration, которые в свою очередь являются реализацией языка WS-BPEL, языка выполнения бизнес-процессов.

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

Адаптеры

В сводной таблице подсчитаны только файлы, относящиеся к набору адаптеров чуть больше минимального. Устанавливать все адаптеры и акселераторы — неблагодарная задача, поэтому для адаптеров я попробовал изменить критерий оценки. Решил, не буду оценивать размер библиотек, буду оценивать размер дистрибутива. Если учитывать размер дистрибутива, то вклад адаптеров будет значительно больше. Дистрибутивы адаптеров размещены не только на MSDN Subscriber Download сайте разделах “BizTalk Server 2009” и “BizTalk Server Accelerators and Adapters”, но и на http://www.microsoft.com/downloads/ сайте, как например Microsoft BizTalk Server Adapter for Microsoft Dynamics CRM 4.0.

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

Group Size, MB
Adapter 349
Core 279
DevHelp 49
EDI 223
RFID 135
Grand Total 1,035

 Размер группы Adapter того же порядка, что и размер группы Core.

Цифры очень и очень приблизительны, так как часть файлов на дистрибутивах повторяется в нескольких копиях. Размер такой большой системы после установки сильно отличается от размра дистрибутива. Кроме того большинство адаптеров повторно использует код либо из Adapter Framework, либо из похожих по функционалу адаптеров, что снижает трудозатраты на единицу кода. Для нас сейчас достаточно сказать, что трудоемкость разработки адаптеров в отношении общей трудоемкости разработки BizTalk можно оценить, как сравнимую с трудозатратами на код ядра. «Наукоемкость» разработки адаптеров, как правило, значительно меньше в ядре.  Но объем кодирования и широта предметных областей, использованных при этом, очень большие.

RFID

По размеру дистрибутива я смог и оценить размер кода, относящийся к RFID. Дело в том, что BizTalk RFID сейчас представляет собою практически отдельный продукт и устанавливается тоже отдельно. Но почему бы не оценить и его? Из размера дистрибутива можно принять, что трудоемкость RFID составляет где-то половину от трудоемкости Core.

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

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

Окончательная оценка

Group .NET SQL Total  %% ~%
BAM 10 13 22 18% 20
Core 30 30 60 49% 50
Dev 20   20 16% 15
Edi 20   20 16% 15
 Total     122 100% 100

 

Мне надо было объединить две таблицы. Одну с .NET объектами, другую  — SQL объектами. Здесь я опять принял очень сомнительное допущение, что трудозатраты на создание Core для .NET и SQL были приблизительно одинаковыми.

Кроме того я исключил из таблицы группу Adapters. Про нее известно, что абсолютно базовый набор адаптеров по размеру кода не уступает размеру группы Dev, т.е.средствам разработки. Приму, что полный набор адаптеров и акселераторов не уступает по трудозатратам ядру BizTalk.

Вся возня с числами нужна была только для того, чтобы получить приблизительную оценку трудозатрат  Microsoft на разработку основных функциональных блоков BizTalk Server.

  • Core run-time ядро. Обеспечивает работу очередей, работу процессов, транзакций.
  • Adapters Средства обмена данными в разных форматах и протоколах.
  • BAM Средства мониторинга и анализа бизнес-процессов.
  • Dev Средства разработки.
  • EDI Средства работы с EDI документами.

 

Разработчик, имевший дело с вышеперечисленным, уже может представить себе, что из себя представляет BizTalk. Тем, кто не работал с подобным функционалом, нужно больше информации. Отложим это до следующего раза.

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

Filed under BizTalk

7 responses to “Что такое BizTalk? Взгляд изнутри

  1. DSezganov

    Лёня, я правильно понял что у тебя есть MVP по BizTalk-у?

  2. DSezganov

    Вау! Много вас таких в америке?

  3. Bill Guest

    количество классов не оправдание для закупки этого зверя

  4. — знач рассказываю:
    system32 — 1,2G
    assembly — 0,6G
    drivercache — 1G
    уже круто? это только начало!
    Installer — 2G
    servicepackfiles — 500M
    ie8updates — 332M!!!
    Вы себе это представляете? там только dll-ек на 3G, представляете что с этим можно сделать? и стоит всего навсего 150баксов!!! купите?
    — ДА НИКОГДА!!!
    — а ведь это WindowsXP Professional…
    — аа, ну тогда купим🙂
    ———
    ну короче, на главный вопрос, что такое BizTalk сервер автор так и не ответил, померялся размерами и на сим успокоился🙂

  5. вообще, если конструктивно, как девелопер я предпочёл бы увидеть:
    1) описание продукта, не маркетинговое, а пользовательское (поскольку пользователи сего зверя и есть программисты)
    2) краткий перечень использованных технологий и их приложение к конкретным компонентам бизтолка
    3) несколько незамысловатых примеров использования (насколько возможно его использовать незамысловато, и желательно с сэмплами)
    3) возможно, какой-то сравнительный анализ функциональности с аналогами, но понимаю, что это уже высший пилотаж, поскольку аналогов на шарпе скорее всего нет, а на джаве — другая конфессия
    хотя по цене очевидно, что продукт для СНГ не массовый, так что можно и на англ. почитать.
    и в любом случае, спасибо автору за проделанную работу!

  6. Уведомление: BizTalk Server: Built-In Traking vs. BAM vs. Custom Code | Biztalkien

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

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

Логотип WordPress.com

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

Фотография Twitter

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

Фотография Facebook

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

Google+ photo

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

Connecting to %s