Веб-приложение ASP.Net с использованием BizTalk 2009 - PullRequest
0 голосов
/ 27 июня 2011

Я создаю веб-приложение, для которого мне нужно немного советов по дизайну.У нас есть одно приложение от поставщика, которое использует SQL Server 2005 в качестве базы данных.Допустим, приложение поставщика предоставляет подробную информацию о заказе и т. Д.

У создаваемого мной веб-приложения будет собственная база данных (SQL Server 2005).Чтобы мое приложение получило какую-либо информацию о «Заказах», оно должно пройти через BizTalk.Таким образом, поток будет, как показано ниже

  • a.Пользователь будет вводить идентификатор заказа в TextBox (веб-приложение), нажимать кнопку отправки.
  • b.Biztalk должен получить этот идентификатор заказа, передать этот идентификатор заказа в базу данных поставщика SQL Server для получения сведений о заказе.
  • c.Детали заказа следует отправить обратно в веб-приложение.
  • d.Я также хочу убедиться, что весь этот процесс (от ac) должен быть очень быстрым, поскольку мы выполняем обратную передачу для извлечения информации из базы данных.

Ответы [ 2 ]

3 голосов
/ 27 июня 2011

Добавление BizTalk в поток приложения, который вы описали, добавит много накладных расходов. Было бы проще, работать быстрее и, вероятно, дешевле создать службу WCF, которая находится между веб-приложением и базой данных поставщика для заказов.


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

  1. Отправка / отправка веб-приложений (IIS)
  2. BizTalk Receive (IIS или MSMQ или любой другой адаптер, который вы хотите)
  3. База данных SQL BizTalk
  4. BizTalk Отправить (Запрос)
  5. Результат запроса SQL Server
  6. BizTalk Получение (Ответ)
  7. База данных BizTalk
  8. BizTalk Send
  9. Веб-приложение получает ответ (IIS)

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

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

Использование чего-то вроде службы WCF - возможно, с Entity Framework , расположенной поверх базы данных поставщика & mdash;, все равно позволит вам абстрагировать базу данных поставщика от вашего веб-приложения, а также обеспечить:

  • Быстрое время отклика
  • Отсутствует дополнительная инфраструктура (например, дополнительные службы BizTalk и базы данных SQL Server), так как просто запускается в IIS
  • Меньше дополнительного обучения для разработчика, который уже знаком с ASP.NET, а не с BizTalk
2 голосов
/ 29 июня 2011

Это действительно не подходит для BizTalk. Было бы более уместно написать WCF Serivce на вашем веб-сервере для предоставления данных SQL. Пусть приложение позвонит в сервис напрямую. Это будет соответствовать вашим требованиям очень быстро. Надежный обмен сообщениями BizTalk стоит дорого ... очков жизни. К тому времени, когда вы запрашиваете и получаете данные, BizTalk будет много раз записывать и считывать данные в базу данных. Если пользователь отправлял заказ, для этого предпочтительнее было бы BizTalk, так как после того, как веб-приложение передает заказ в BizTalk, вы гарантированно не потеряете его.

Как еще одно быстрое замечание, я не в курсе всех новых интересных функций в SQL Server, но я считаю, что есть способ, позволяющий SQL отображать ваши данные непосредственно как веб-сервис для потребления вашим веб-приложением.

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