Перенос решений EDI BizTalk Server в службы BizTalk: техническое руководство

Обновлено: Июль 2015 г.

Автор: Тим Виман (Tim Wieman) и Нитин Мехротра (Nitin Mehrotra)

Рецензенты: Картик Бхарти (Karthik Bharthy)

Написано с использованием: Службы BizTalk Microsoft Azure — выпуск за февраль 2014 г.

Электронный обмен данными (EDI) является одним из наиболее распространенных средств электронного обмена данными между предприятиями. Его также называют B2B-транзакциями. Поддержка EDI в BizTalk Server обеспечивается свыше десяти лет с момента первоначального выпуска BizTalk Server. Благодаря Службы BizTalk корпорация Майкрософт продолжает поддерживать решения EDI на платформе Microsoft Azure. B2B-транзакции в основном являются внешними по отношению к организации, и, следовательно, их проще реализовать в облачной платформе. Microsoft Azure предоставляет такую возможность посредством Службы BizTalk.

Хотя некоторые клиенты смотрят на Службы BizTalk как на незрелую платформу для новых решений EDI, в настоящее время многие клиенты располагают решениями EDI на основе BizTalk Server, которые им хотелось бы перенести на Azure. Поскольку система EDI в Службы BizTalk спроектирована на основе тех же ключевых сущностей, что и EDI-архитектура BizTalk Server (торговые партнеры, сущности, соглашения), можно переносить артефакты EDI из BizTalk Server в Службы BizTalk.

В этом документе рассматриваются некоторые отличия, связанные с переносом артефактов EDI из BizTalk Server в Службы BizTalk. Авторы документа предполагают, что читатель владеет рабочими знаниями об EDI на основе BizTalk Server, а также о соглашениях между торговыми партнерами. Дополнительные сведения о BizTalk Server EDI см. в разделе Управление торговыми партнерами с помощью BizTalk Server.

Модуль BizTalk Server EDI был значительно усовершенствован для BizTalk Server 2010, когда в него были включены партнеры, профили и соглашения. Службы BizTalk использует ту же модель для упорядочения торговых партнеров и их бизнес-подразделений. Как следствие, перенос артефактов EDI из BizTalk Server 2010 и более поздних версий в Службы BizTalk является намного более простым процессом. Для переноса артефактов EDI, связанные с версиями BizTalk Server до BizTalk Server 2010, необходимо сначала обновиться до BizTalk Server 2010 и затем перенести артефакты EDI в Службы BizTalk.

Как и в случае BizTalk Server, обработка EDI в Службы BizTalk построена вокруг решения для управления торговыми партнерами (TPM). TPM-решение состоит из следующих основных компонентов:

  • Торговые партнеры, которые представляют организации в B2B-транзакции.

  • Профили, которые представляют подразделения внутри торговых партнеров.

  • Соглашения торговых партнеров (соглашения), в которых представляются бизнес-соглашения между двумя партнерами или профилями.

На следующей иллюстрации показаны сходства и различия между решением BizTalk Server EDI и Службы BizTalk EDI.

Поток сообщений EDI — BizTalk Server и служба BizTalk Service

Ключевые отличия и сходства между работой решения EDI в BizTalk Server и службах BizTalk:

  • BizTalk Server использует конвейер EDIReceive для получения сообщений EDI и конвейер EDISend для отправки сообщений EDI. EDI в Службы BizTalk использует мост EDI Receive для получения сообщений EDI и мост EDI Send для отправки сообщений EDI. В BizTalk Server конвейеры связываются с соглашением с помощью порта получения или отправки. В службах BizTalk само соглашение обозначает мост отправки и получения.

  • В BizTalk Server, когда конвейер EDIReceive обработал сообщение EDI, оно помещается в базу данных SQL Server. Конвейер EdiSend затем извлекает сообщение из базы данных SQL Server, обрабатывает его и отправляет его торговому партнеру.

    В Службы BizTalk, после того как мост получения EDI обрабатывает сообщение EDI, он осуществляет маршрутизацию сообщения во внешний процесс. Внешний процесс может быть запущен локально или в Microsoft Azure. Внешний процесс должен отправить сообщение в мост отправки EDI; этот мост не извлекает сообщения самостоятельно. После обработки сообщения мост отправки EDI направляет его торговому партнеру.

Службы BizTalk предоставляет удобные средства настройки для быстрого создания и развертывания B2B-соглашений между торговыми партнерами без настройки экземпляров вычислений Microsoft Azure (веб- и рабочие роли), База данных SQL Microsoft Azure и учетных записей хранения Microsoft Azure. Более сложные сценарии требуют привязок в рабочих процессах или другой работы служб вне пределов соглашения между торговыми партнерами, т. е. до или после обработки мостами EDI соглашений между торговыми партнерами. Следующие последовательности событий возникают в потоке сообщений EDI в Службы BizTalk.

  1. Сообщение EDI получено от торгового партнера Fabrikam. В целях получения сообщений EDI от торговых партнеров Службы BizTalk поддерживает такие транспортные протоколы, как FTP, SFTP, AS2 и HTTP/S.

  2. Обработка на стороне получателя в соответствии с соглашением между торговыми партнерами дизассемблирует сообщение EDI в формат XML. Дизассемблированное сообщение EDI (в формате XML) можно направить к конечным точкам служб Служебная шина, таким как конечная точка служб передачи Служебная шина, раздел Служебная шина, очередь Служебная шина или мост Службы BizTalk.

  3. Дизассемблированные XML-сообщения затем могут быть получены из конечной точки для дальнейшей пользовательской обработки. Эти конечные точки могут обрабатываться локальным процессом или экземпляром вычислений Microsoft Azure для дальнейшей обработки сообщения, например, в рабочем процессе Windows (WF) или службе Windows Communication Foundation (WCF).

  4. Затем «обработка на стороне отправителя» соглашения между торговыми партнерами выполняет сборку XML-сообщения в формат EDI и отправляет ее торговому партнеру Contoso. Для отправки сообщений EDI торговым партнерам Службы BizTalk поддерживает те же протоколы, которые используются для получения сообщений EDI.

В этом документе также содержатся подробные указания по переносу некоторых артефактов BizTalk Server EDI в Службы BizTalk.

В BizTalk Server нужно настроить расположения получения и порты получения для приема сообщений EDI/XML от торговых партнеров, а также настроить порты для отправки сообщений EDI/XML торговым партнерам. Затем нужно связать эти порты с соглашением между торговыми партнерами с помощью консоли администрирования BizTalk Server. В Службы BizTalk расположения, где происходит получение сообщений от торговых партнеров и отправление сообщений торговым партнерам, настраиваются как составная часть соглашения (в рамках параметров транспорта) между торговыми партнерами в Портал служб BizTalk. Таким образом, в сущности, концепция «портов отправки» и «расположений получения» отсутствует в Службы BizTalk. Дополнительные сведения см. в разделе Создание соглашений.

В BizTalk Server EDI конвейеры — это сущности для обработки сообщений, которые могут также включать настраиваемую логику, чтобы реализовать особые вычислительные возможности, необходимые для приложения. В Службы BizTalk эквивалентом будет мост EDI. Однако сейчас в Службы BizTalk мосты EDI закрыты. Это значит, что пока нельзя добавлять настраиваемые действия в мост EDI. Любая настраиваемая обработка должна выполняться вне EDI мост в приложении до или после попадания сообщения в мост, настроенный в соглашении между торговыми партнерами. Мосты EAI имеют возможность вести настраиваемую обработку. При необходимости настраиваемой обработки можно использовать мосты EAI до или после обработки сообщения мостом EDI. Дополнительные сведения см. в разделе Включение настраиваемого кода в мосты.

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

Шаблон потока сообщений см. в разделе Сценарии и поток сообщений.

Если вы знакомы с соглашениями между торговыми партнерами BizTalk Server 2010, используемыми для обработки EDI, то соглашения между торговыми партнерами Службы BizTalk будут для вас очень знакомыми. Большинство параметров соглашения одинаковы и используют ту же терминологию. В некоторых случаях параметры соглашения гораздо проще по сравнению с теми же параметрами в BizTalk Server. Службы BizTalk Microsoft Azure поддерживает транспорт X12, EDIFACT и AS2.

Службы BizTalk Microsoft Azure также предоставляет средство переноса данных TPM для переноса торговых партнеров и соглашений из модуля торговых партнеров BizTalk Server в Портал служб BizTalk. Средство переноса данных TPM входит в состав пакета средств, который можно скачать на странице http://go.microsoft.com/fwlink/?LinkId=235057. Пакет также содержит файл сведений, который включает инструкции по использованию средства и устранении неполадок.

Службы BizTalk включает схемы EDI, которые можно использовать в решениях Службы BizTalk. Кроме того, можно использовать схемы BizTalk Server EDI с Службы BizTalk, поскольку корневой узел схемы EDI для BizTalk Server и Службы BizTalk совпадает. Таким образом, можно будет напрямую использовать схемы EDI BizTalk Server в решениях EDI, разработанных в Службы BizTalk. Схемы можно также скачать с сайта http://go.microsoft.com/fwlink/?LinkId=235057.

Сопоставления в BizTalk Server называются преобразованиями в Службы BizTalk. Миграция сопоставлений из BizTalk Server в Службы BizTalk может оказаться одной из более сложных задач (в зависимости от сложности сопоставления). Средство сопоставления для Службы BizTalk отличается от модуля сопоставления BizTalk. Хотя внешне модуль сопоставления выглядит схоже, базовый формат сопоставления иной. Отличаются также функтоиды (именуемые Операция сопоставления в Службы BizTalk), доступные пользователям. В сущности, нельзя напрямую использовать сопоставление BizTalk в Службы BizTalk. Кроме того, не все функтоиды из BizTalk Server доступны как операции сопоставлений в Службы BizTalk.

Может показаться, что список доступных операций сопоставления преобразования значительно отличается от присутствующего в модуле сопоставления BizTalk Server, но в преобразованиях Службы BizTalk появились новые способы выполнения тех же задач. Например, преобразования Службы BizTalk имеют операции списка. Этого не было в модуле сопоставления BizTalk. Операции списка позволяют создавать список и работать с ним, где список представляет собой набор элементов (также известных как строки), в котором каждый элемент может иметь несколько членов (также именуемых столбцами). Список можно сортировать, выбирать элементы на основе условий и т. д.

Другой пример новой функциональности в преобразованиях Службы BizTalk — операции цикла. В модуле сопоставления BizTalk Server сложно создавать вложенные циклы. Именно поэтому операции сопоставления цикла были добавлены для преобразований Службы BizTalk.

Еще один пример — операция сопоставления If-Then-Else. Выполнение операции if-then-else было возможно в модуле сопоставления BizTalk, но при этом для выполнения этой внешне простой задачи было необходимо использовать несколько функтоидов.

Службы BizTalk Microsoft Azure предоставляет средство для переноса сопоставлений BizTalk Server в преобразования Службы BizTalk. Средство BTMMigrationTool доступно в пакете средств, предоставляемом с пакетом SDK служб Службы BizTalk, и его можно скачать на сайте http://go.microsoft.com/fwlink/?LinkId=235057. Дополнительные сведения о средстве см. в разделе Преобразование сопоставления BizTalk в преобразование служб BizTalk.

Также можно посмотреть пример Сандро Перейра, BizTalk MVP, позволяющий переносить сопоставления BizTalk Server в преобразования Службы BizTalk. Он находится здесь. Статья на основе данного примера есть здесь.

Если нужно перенести обработку взаимодействий BizTalk Server в Microsoft Azure, требуется перезаписать оркестрации, так как Microsoft Azure не поддерживает выполнение оркестраций BizTalk Server. Можно повторно переписать функциональность взаимодействия в службе Windows Workflow Foundation 4.0 (WF4). Придется повторно писать все, поскольку в настоящее время не существует переноса из оркестраций BizTalk Server в WF4. Ниже приведены некоторые ресурсы для рабочего процесса Windows.

  • Как интегрировать службу WCF Workflow Service с очередями Service Bus и разделами Паоло Сальватори. См. по этому адресу (http://go.microsoft.com/fwlink/?LinkId=237313).

  • Занятие Построение приложений с помощью Windows Workflow Foundation и Azure конференции Build 2011. См. по этому адресу (http://go.microsoft.com/fwlink/?LinkId=237314).

  • Центр разработчиков Windows Workflow Foundation в MSDN. См. по этому адресу (http://go.microsoft.com/fwlink/?LinkId=237315).

  • Документация по Windows Workflow Foundation 4 (WF4) в MSDN. См. по этому адресу (http://go.microsoft.com/fwlink/?LinkId=237316).

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

Обработка BizTalk Server EDI использует концепцию "резервных соглашений". Службы BizTalk не использует понятие стандартного соглашения. Сведения о том, как стандартные соглашения используются в BizTalk Server, см. в разделах документации BizTalk Роль соглашений в обработке EDI и Настройка свойств глобального и стандартного соглашения.

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

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

См. также

Другие ресурсы

Developing Enterprise Apps with Azure

Показ: