Веб-сервис против обмена сообщениями для получения данных просмотра

Мне нужно получить некоторые данные из некоторых внешних приложений для отображения на веб-портале.

Я могу добиться этого, создав простую веб-службу, используя, например, REST или SOAP, возвращающую данные внешнего приложения в представлении путем доступа к базе данных внешнего приложения.

Я также могу добиться этого, используя обмен сообщениями с шаблоном запрос-ответ.

Это то, что я собрал до сих пор с учетом проблем масштабируемости и доступности. Пожалуйста, поправьте меня, если я ошибаюсь.

С подходом RESTful:

  1. Я могу себе представить, что архитектура REST без сохранения состояния легко масштабируется, как и веб-серверы, которые можно кластеризовать, чью пропускную способность можно контролировать (например, сколько потоков обслуживать и т. д.), но я думаю, что узким местом будет тогда доступ к базе данных.

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

С подходом обмена сообщениями:

  1. Я потенциально могу «буферизировать» все сообщения в каналах, даже иметь несколько каналов, если есть много запросов, и в то же время могу контролировать скорость потребления, которая является разумной для мощности обработки базы данных.

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

Почему-то я предпочитаю подход RESTful для этого случая, так как это действительно синхронный доступ и, конечно, его гораздо проще реализовать. Но я все еще в сомнениях.

Пожалуйста, поделитесь своими мыслями. Спасибо !


person Albert Gan    schedule 29.12.2011    source источник
comment
Согласен ! Попробуйте использовать REST независимо от его недостатков, которые вы упомянули. Это дает высокую масштабируемость на более поздних стадиях разработки. Спасибо   -  person Nasruddin    schedule 07.01.2014


Ответы (1)


http://blogs.msdn.com/b/nickmalik/archive/2005/04/14/408328.aspx

Немного староват, но разграничивает SOA и MOA. Ваш случай выглядит как SOA, где вы хотели получить данные и просто опубликовать их на странице. МОА совершенно другой с точки зрения проблемного пространства.

person Nageswara Rao    schedule 07.01.2014