Activity creation and Deployment.
1. Первый шаг предназначен для бизнес-аналитиков и состоит в использовании Excel Add-In. В Excel 2007 он расположен под закладкой "Add-Ins" :
[648x183]
Обратим внимание на то, что этот Add-In устанавливается независимо от остальной инфраструктуры BizTalk на любой компьютер бизнес-аналитика, оборудованный единственно что Office. Его использование состоит в определении составляющих единиц исполнения - Activities и CheckPoints (кот. в UI называются 'items') -естественно, в бизнес-понимании этого слова. Например, хорошим Activity будет, скажем, время старта оркестрации. Определение Activities требует понимания бизнес-процесса, во всяком случае его основных показателей, и исполняется Wizard'ом, по завершении которого бизнес-аналитику предлагается сохранить результаты своей деятельности в XML-файле. Вот для примера фрагмент такого файла :
2. Этот файл, известный как BAM definitions, передается разработчику или лучше - администратору для того чтобы тот "опубликовал" его содержимое. Под этим понимают автоматический ( с помощью bm.exe ) процесс создания таблиц, views и stored procedures в специально приготовленной для этого базе данных.
База эта называется BAMPrimaryImport (BTI).
Instrumenting Orchestrations, Pipelines and Ports.
Как видно из предыдущего рисунка, любое приложение, может использовать специально разработанный API для дальнейшей работы с BAM. Прежде всего этот API предназначен для приложений BizTalk, но ничто не мешает и другим приложениям .NET обращаться к нему, причем единственное, что для этого требуется - это присутствие на вызывающей машине файла Microsoft.BizTalk.Bam.EventObservation.dll без никаких других компонентов BizTalk Server 2006 (В BizTalk 2004 это не так!). Здесь подчеркивается, что это единственный поддерживаемый способ обращения к BAM, т.е. прямое обращение к созданным в базе объектам настоятельно не рекомендуется.
В рамках этого подхода, существует два способа обратиться к BAM. Первый - это использовать DirectEventStream/BufferedEventStream classes для непосредственной работы с Activities , второй - использовать BAMInterceptor. Первый способ имеет существенный недостаток связанный с тем, что с изменением модели соответствующие вызовы в коде должны изменяться. Это совершенно не приемлемо для оркестраций, поскольку сам смысл использования BAM в BizTalk состоит в изоляции бизнес-модели от ее реализации. Именно поэтому BizTalk-приложения используют только BAMInterceptor. ( Как мы увидим в дальнейшем, для полной изоляции потребуется еще BTT)