Добавление BizTalk в поток приложения, который вы описали, добавит много накладных расходов. Было бы проще, работать быстрее и, вероятно, дешевле создать службу WCF, которая находится между веб-приложением и базой данных поставщика для заказов.
BizTalk обеспечивает надежную передачу сообщений. Таким образом, поток приложения, как описано в вопросе, будет выглядеть примерно так:
- Отправка / отправка веб-приложений (IIS)
- BizTalk Receive (IIS или MSMQ или любой другой адаптер, который вы хотите)
- База данных SQL BizTalk
- BizTalk Отправить (Запрос)
- Результат запроса SQL Server
- BizTalk Получение (Ответ)
- База данных BizTalk
- BizTalk Send
- Веб-приложение получает ответ (IIS)
С этим вы получаете постоянство и надежность сообщения. Если что-то сломается (например, база данных SQL поставщика отключена), в BizTalk будет приостановлено сообщение, и веб-приложение будет ожидать тайм-аут в ожидании синхронного ответа от BizTalk. Или вы можете также зафиксировать ошибку и передать ее обратно в веб-приложение с помощью BizTalk и добавить дополнительные издержки к процессу.
Если вы только получаете существующих заказов (т. Е. Не создаете / не обновляете / не удаляете заказы), то вам не нужно, чтобы ваши сообщения / транзакции были настолько надежными или дорогими. Если что-то не получается, пользователь увидит ошибку и просто отправит ее снова, пока она не заработает (вы можете регистрировать ошибки на сервере, чтобы при необходимости уведомить администратора).
Использование чего-то вроде службы WCF - возможно, с Entity Framework , расположенной поверх базы данных поставщика & mdash;, все равно позволит вам абстрагировать базу данных поставщика от вашего веб-приложения, а также обеспечить:
- Быстрое время отклика
- Отсутствует дополнительная инфраструктура (например, дополнительные службы BizTalk и базы данных SQL Server), так как просто запускается в IIS
- Меньше дополнительного обучения для разработчика, который уже знаком с ASP.NET, а не с BizTalk