Определение набора адресатов сообщений во время выполнения в приложении BizTalk - PullRequest
1 голос
/ 29 сентября 2010

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

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

Я не знаю, как это сделать. Создать набор портов отправки во время выполнения, каждый для каждого пункта назначения? Является ли это возможным? Использовать один порт, меняя его привязку? Будет ли это работать правильно с одновременными отправками? Есть ли другие способы?

EDIT

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

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

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

Если можете, попробуйте убрать сложность. Если вы знаете, что вам не нужно быть по-настоящему динамичным при добавлении подписчиков (т.е. подписчик и его правила могут быть настроены только один раз), и у вас есть управляемое количество подписчиков, тогда я бы предложил настроить каждого подписчика, используя свой собственный порт отправки и использовать фильтр для создания подписок на основе свойств контекста сообщения. Прелесть этого подхода в том, что вам не нужно создавать и развертывать оркестровку, и это становится высокопроизводительным и масштабируемым решением.

1 голос
/ 30 сентября 2010

Если изменения в назначении будут частыми, вы правы в поиске более динамичного решения.Хорошее решение - использовать динамические порты отправки и механизм бизнес-правил.Вы создаете набор правил для сообщений, которые вы получаете.Это может быть основано на свойстве назначения или идентификаторе клиента в сообщении.Используя эти факты, механизм правил может возвращать кучу информации, такой как маска файла, имя сервера, IP-адрес сервера-удалителя и т. Д. Затем вы можете использовать эту информацию для настройки динамической отправки в оркестровке.Самое приятное в этом то, что вы можете обновить набор правил в движке правил без повторного развертывания решения.Как новичок, это некоторые продвинутые концепции, но не такие сложные, как вы думаете.

Для более простого решения вы, возможно, захотите взглянуть на установку свойств адаптеров FILE Send через его правильную схему (т. Е. Имя файла, каталог и т. Д.).Вы можете извлечь эти значения из базы данных с помощью вспомогательного класса в форме выражения.В каждом сообщении ogig out используйте свойство shcema, чтобы указать, куда сообщение будет отправлено и названо.Таким образом, вы просто обновляете базу данных по мере изменения.

Удачи!

...