BizTalk and around

Stas Kondratyev (MSFT)

  • BizTalk Hotrod #6

    Вышел 6 номер журнала BizTalk Hotrod.

    В новом выпуске:

    • Обзор утилит для авторматизации командной разработки решений на BizTalk
    • Подробный разбор решений различных задач при формировании карт преобразований
    • Обзор принципов наименования разрабатываемых артефактов и инструмента верификации их соблюдения
    • и многое другое.

    последний номер журнала можно скачать здесь - http://biztalkhotrod.com/Documents/BizTalk_HotRod_Issue6_Q2_2009.pdf

  • Managed Services Engine – February 2009 CTP

    Сегодня вышла новая версия MSE (Managed Services Enginge) – бесплатное средство для построения серсвис-ориентированной инфраструктуры и виртуализации сервисов. Мы уже рассказывали о нём недавно.

    Основные нововведения в этой версии:

    • Совершенно новая консоль управления, созданная на базе технологии WPF (см. ниже).
    • Поддержка REST сервисов
    • Мастер импорта метаданных
    • и дргуие дополнительные компоненты

    Скачать последнюю версию MSE можно здесь: http://www.codeplex.com/servicesengine

    Capture

  • BizTalk Hotrod номер 5

    Вышел 5 номер журнала BizTalk Hotrod, о котором я упоминал в предыдущем посте. Его можно скачать здесь - http://biztalkhotrod.com/Documents/BizTalk%20HotRod%20Magazine%20Q1%202009.pdf

     

  • HotRod

    Я почему-то до этого не упоминал очень полезный ресурс, полный статей по разработке различных компонентов BizTalk Server, советов, и т.п. - электронный журнал BizTalk HotRod.

    Исправляюсь :) Вы можете закачать его номера вот с этого сайта - http://biztalkhotrod.com/Issues.aspx.

  • Создание сервис-ориентированной инфраструктуры с помощью Managed Services Engine

    Практически все организации сегодня в своей информационной инфраструктуре тем или иным способом используют сервисы, и всё большая часть из них имеет целенаправленную стратегию развития информационной инфраструктуры в соответствии с принципами сервис-ориентированной архитектуры (SOA). На любом уровне зрелости информационной инфраструктуры перед организацией стоят задачи управления, мониторинга, миграции своих сервисов, и чем больше сервисов организация использует, тем острее необходимы инструменты по их централизованному управлению. В данный момент на рынке существуют множество решений по управлению сервис-ориентированной инфраструктурой (SOA Governance), например AmberPoint или SOA Software.

    Кроме них существует ещё один интересный инструмент - Managed Services Engine (MSE) – позволяющий формировать сервис-ориентированную инфраструктуру за счет виртуализации сервисов. Данный инструмент разрабатывается при участии Microsoft Services и предоставляется бесплатно.

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

    Сценариев, в которых MSE может использоваться множество. Например, в случаях когда необходимо:

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

    и во многих других случаях.

    Архитектурно MSE состоит из нескольких модулей: Messanger, Broker и Dispatcher реализованных на технологиях .Net Framework (в частности WCF), а так же репозитория сервисов использующего SQL Server для хранения метаданных.

    mse

    Консоль управления MSE вполне доступна для понимания и легка в использовании.

    OpVerScreen

    Скачать последнюю версию MSE можно здесь: http://www.codeplex.com/servicesengine

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

  • BizTalk Server 2009 Beta

    BizTalk Server 2009 beta доступен для скачивания через сайт http://connect.microsoft.com/. Вам потребуется регистрация на сайте, для доступа к бетте.

    ESB Guidance 2.0 CTP так же доступен для скачивания на http://www.codeplex.com/esb

  • Веб-каст 16.12.2008

    В следующий вторник, 16 декабря, мы проведем очередной вебкаст, в котором расскажем вам о примере автоматизации процесса бронирования билетов компании Contoso. В этом примере мы постарались сделать акцент на использовании стандартных возможностей таких продуктов, как BizTalk Server для интеграции систем, управления бизнес процессом а также для сбора аналитической информации о процессах, Forms Services для заполнения заявок на бронирование билетов сотрудниками компании, Excel Services для отображения собраной аналитической информации а также MOSS для интеграции уровня представления и предоставления единой точки входа для разных классов пользователей системы.

     

    Ссылка для регистрации на веб-каст: http://www.microsoft.com/Rus/events/detail.mspx?eventid=1032398823

     

    Присоединяйтесь!  

     

  • WCF адаптер для очередей Oracle AQ

    Продолжая предыдущий пост, поделюсь опытом разработки транзакционного WCF адаптера для очередей Oracle Advanced Queuing (AQ).

    Предыстория

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

    clip_image002

    Для решения этой задачи нужно было найти существующий или разработать собственный адаптер, который бы умел подсоединяться к AQ и забирать данные внутри транзакции объединяющей источник данных (в данном случае AQ) и BizTalk MessageBox. На момент выбора адаптера для Oracle AQ у партнеров Microsoft уже существовали адаптеры умеющие работать с Oracle AQ, но все они имели некоторые ограничения, например отсутствие поддержки транзакций. Поэтому было принято решение разработать свой адаптер с помощью WCF LOB Adapter SDK.

    Разработка адаптера

    Для решения задачи взаимодействия с AQ было рассмотрено множество вариантов, вот некоторые из них:

    • JMS – нужен адаптер для JMS, подтверждение возможности транзакционной передачи получено не было.
    • SOAP – дополнительное звено и необходимость развертывания веб-сервера на стороне базы данных. Транзакционность тоже под большим вопросом.
    • PL\SQL через ODP.NET – нужна установка Oracle Client и ODP.NET.

    В итоге единственным приемлемым вариантом удовлетворявшим большинству требований оказался PL\SQL, который предоставляет простые команды для работы с очередями AQ, а ODP.NET предоставляет прозрачный интерфейс для работы с .NET транзакциями.

    После выбора способа взаимодействия дальнейшая реализация WCF адаптера заняла минимальное кол-во времени, включая поддержку транзакций и выгрузку метаданных для использования в BizTalk решении. Это говорит не столько об опытности Microsoft Consulting Services :), сколько о простоте инструментария WCF LOB Adapter SDK. Так что если перед вами стоит задача подключения к одной из унаследованных систем, или системе для которой ни у Microsoft ни у партнеров нет адаптера, вы можете написать его самостоятельно, это не так сложно как может показаться.

  • Разработка транзакционных адаптеров для BizTalk с помощью WCF LOB Adapter SDK

    Сегодня я расскажу о том, как разработать собственный адаптер для BizTalk с помощью WCF LOB Adapter SDK  и сделать его транзакционным.

    Перед началом разработки адаптера нужно убедиться, что у вас уже установлено:

    ·         BizTalk Server 2006 R2

    ·         Visual Studio 2005 SP1

    ·         .NET Framework 3.0

    ·         WCF LOB Adapter SDK 1.1

     

    После этого, открыв Visual Studio 2005, вы увидите в списке шаблонов проектов WCF LOB Adapter.

    Можно попробовать сразу начать писать адаптер с нуля, используя шаблон, но если нет опыта, рекомендую выполнить пошаговый пример разработки эхо-адаптера. Если времени совсем нет, можно посмотреть исходный код готового эхо-адаптера, он поставляется вместе с  WCF LOB Adapter SDK. Его можно найти тут: C:\Program Files\WCF LOB Adapter SDK\Documents\Samples.  Кстати в состав готового эхо-адаптера так же входит проект для сборки установочного msi пакета, позволяющий автоматизировано развертывать адаптер на других компьютерах.

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

    Поддержка транзакций

    После того как мы научились создавать WCF адаптер, можем усложнить задачу и сделать его транзакционным. Зачем это нужно. Например, если вы хотите быть уверены  в том, что данные не удаляться из источника пока они не попадут в надежное хранилище, например BizTalk Message Box. Для этого нужно чтобы запись в Message Box и удаление уже считанных данных из источника производилось в одной транзакции. Сначала это может показаться сложной задачей, ведь прежде чем попасть в Message Box сообщение может проходить сложную обработку в receive pipeline, используя большое кол-во компонентов. Сразу возникает много вопросов, как создать транзакцию, как заставить BizTalk использовать эту же транзакцию при записи сообщения в Message Box, кто всем этим процессом будет управлять? Ответ прост, практически всю работу по созданию и управлению транзакцией берёт на себя WCF LOB Adapter Framework, нужно только указать, что мы хотим использовать транзакции.  

    Для исходящих (outbound) операций, транзакция создается автоматически. То есть метод  Execute в IOutboundHandler,  будет выполняться внутри TransactionScope, созданного WCF LOB Adapter Framework и если проверить значение переменной Transaction.Current,  то мы увидим, что оно не null.

    Для входящих (inbound) операций включить транзакции немного сложнее, существует 2 способа, для одностороннего (oneway) типа канала и канала запрос-ответ (request-reply). Реализовать 1й намного проще, начнем с него.

    Односторонний (OneWay):

    1.       В конструкторе вашего адаптера установите  свойство SupportsTransactedInbound в true

    2.       В методе CreateBindingElements  вашего Binding класса, добавьте в начало коллекции BindingElements элемент  OneWayBindingElement.  Обратите внимание, что его нужно добавлять только во время работы адаптера, то есть в случаях когда адаптер выполняет выгрузку метаданных этот элемент добавлять нельзя. Для этой цели можно добавить к списку свойств адаптера дополнительную булевою переменную. Её мы будем устанавливать только когда адптер выполняется, например, когда настраиваем параметры адаптера в свойствах BizTalk Receive location.

    3.       После этого WCF будет самостоятельно создавать транзакцию и вызывать ваш метод TryReceive внутри неё. Так же он самостоятельно выполнит фиксацию транзакции после того как ваше сообщение попадет в MessageBox. Если же при обработке сообщения в pipeline произойдет исключение, то выполниться откат транзакции.

    Примечание: В BizTalk нужно создать OneWay receive порт.

    Запрос-ответ (Request-Reply):

    1.       В конструкторе вашего адаптера установите  свойство SupportsTransactedInbound в false

    2.       В методе TryReceive создайте транзакцию самостоятельно.

    3.       Присвойте сообщению созданную транзакцию с помощью TransactionMessageProperty.Set

    4.       В методе Reply вашей реализации IInboundReply зафиксируйте транзакцию.

    Примечание: В BizTalk нужно создать Request-Reply receive порт.

    Поддержка транзакций источником данных

    Если ваш источник данных транзакционный и его SDK умеет работать с механизмом транзакций .NET, то вам, скорее всего, ничего не придется делать. Например, Oracle провайдер ODP.NET такую поддержку имеет, и если открыть соединение внутри .NET транзакции (TransactionScope) то все операции с базой данных Oracle будут выполняться в этой транзакции.

    Заключение

    Если вы всё сделали правильно, то вы получили WCF адаптер, который вы можете использовать в своих решениях построенных на BizTalk Server или в любых других .NET приложениях.

    P.S. В следующей версии WCF LOB Adapter SDK реализация односторонних операций станет ещё проще, достаточно будет установить одно свойство. О выходе новой версии мы обязательно сообщим, так что заходите на наш блог почаще, либо получайте обновления автоматически через RSS.

  • BizTalk Server Performance Optimization Guide на MSDN и TechNet

    Я уже упоминал ранее о вышедшем недавно документе по оптимизации производительности BizTalk Server. Теперь он так же доступен on-line на MSDN и TechNet
  • Pipeline компонент для парсинга DBF и Excel сообщений

    Мэтт Мелески недавно опубликовал пост, в котором он описывает созданный им Pipeline компонент для преобразования в вид XML входящих сообщений через интерфейс ODBC (используя ADO.NET).

    Код компонента доступен для скачивания.

  • ARIS интегрирован с BizTalk Server!

    Два дня назад, IDS Scheer анонсировали интеграцию ARIS с BizTalk Server 2006 R2!

    Прочитать анонс.

    Статья в новостях.

     

  • BizTalk Performance Optimization Guide

    Недавно опубликован документ по оптимизации производительности BizTalk решений - Microsoft® BizTalk® Server Performance Optimizations Guide

     

     

  • Постер BAM

    К серии BizTalk постеров, недавно был добавлен постер Business Activity Monitoring, наглядно показывающий жизненный цикл реализации BAM решения: создание модели бизнес аналитиками, соединение модели и реализации конечного решения разработчиками, развертывание системными администратороми и использование информации конечными пользователями.

    Enjoy. http://www.microsoft.com/downloads/details.aspx?FamilyId=C2A332C7-687A-448A-BBDF-5FEC51476BF6&displaylang=en

     

  • Июньские MSDN веб-касты о WCF/WF

    Начиная со следующей среды (18.06) наши коллеги из Редмонда организуют серию MSDN веб-кастов о WCF и WF.

    Ссылки на касты доступны здесь: :  http://www.microsoft.com/events/series/msdnnetframework35.aspx?tab=webcasts&id=liveall

    Программа следующая:

     

    Webcast Title

    Date/ Time

    Presenter

    Beyond the Endpoints with Windows Communication Foundation

    6/18/2008 10:00 AM PST

    Juval Lowy

    geekSpeak: Workflow Services in .NET 3.5 with Jon Flanders

    6/18/2008 12:00 PM PST

    Jon Flanders

    Calling Services from Silverlight 2.0

    6/23/2008 09:00 AM PST

    Jon Flanders

    Windows Communication Foundation and Windows Workflow Foundation Integration in Depth

    6/25/2008 10:00 AM PST

    Jesus Rodriguez

    Windows Workflow Communication in Depth

    6/26/2008 09:00 AM PST

    Matt Milner

More Posts Next page »

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Microsoft
Page view tracker