Элементы подписки, определенные клиентом Biztalk - PullRequest
3 голосов
/ 08 декабря 2010

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

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

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

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

Мне кажется, что мое решение для брокера сообщений удваивает то, в чем должен быть хорош Biztalk, поэтому я предполагаю, что где-то упускаю некоторые важные функции. Кто-нибудь пробовал такое приложение раньше и может подсказать? Стоит ли инвестировать средства ESB в качестве решения? Я посмотрел в сети, но ничто не делает это очень ясно для этого типа модели подписки на темы.

Спасибо, Фил

1 Ответ

2 голосов
/ 18 декабря 2010

Взгляните на ESB Toolkit.Вы можете использовать функциональность маршрута, добавляемую в BizTalk, либо с одним из встроенных преобразователей (например, UDDI), либо с вашим собственным настраиваемым преобразователем.Это позволяет вам маршрутизировать сообщения на основе конфигурации (хранящейся в бизнес-правилах или где-либо еще).

Вы найдете ориентированное на разработчиков видео-обзор ESB Toolkit на MSDN, которое представляет собой достойное введение в процесс проектирования иинструментов.Там также есть несколько других полезных видео.

Ваш конкретный сценарий может быть реализован с помощью одного маршрута, как описано здесь .Используйте приемный конвейер с компонентом ESB Dispatch Disassembler, настройте несколько распознавателей, и для каждого распознавателя создается новое сообщение.

Есть также два примера для просмотра:

  1. Пример On-Ramp Маршрут - создает набор заголовков SOAP, содержащих маршрут, который вы создаете в тестовом клиенте, загружает конкретный файл сообщения с диска, добавляет заголовки маршрута в сообщение и отправляет его вESB через встроенный маршрут для обработки.
  2. Образец Scatter-Gather - также добавляет заголовки SOAP, содержащие маршрут, к сообщению, которое передается в ESB через on-lineрампа для обработки.Оркестровка брокера анализирует настройки для своего этапа маршрута, извлекает коллекцию преобразователей, связанных с этапом маршрута, и для каждого из этих преобразователей разрешает конечную точку службы.После этого оркестровка активирует надлежащие экземпляры оркестровки ServiceDispatcher для отправки сообщений исходящих запросов.

Вы также должны посмотреть на " Как: маршрутизировать одно сообщение нескольким получателям с использованием маршрутизации маршрутаПроскользните"или, возможно, посмотрите на создание пользовательской службы сообщений о маршруте (документация здесь ).

...