Мне нужно получить некоторые данные из некоторых внешних приложений для отображения на веб-портале.
Я могу добиться этого, создав простую веб-службу, используя, например, REST или SOAP, возвращающую данные внешнего приложения в представлении путем доступа к базе данных внешнего приложения.
Я также могу добиться этого, используя обмен сообщениями с шаблоном запрос-ответ.
Это то, что я собрал до сих пор с учетом проблем масштабируемости и доступности. Пожалуйста, поправьте меня, если я ошибаюсь.
С подходом RESTful:
Я могу себе представить, что архитектура REST без сохранения состояния легко масштабируется, как и веб-серверы, которые можно кластеризовать, чью пропускную способность можно контролировать (например, сколько потоков обслуживать и т. д.), но я думаю, что узким местом будет тогда доступ к базе данных.
Если база данных внешнего приложения почему-то недоступна, REST может просто вернуть некоторый статус ошибки, а веб-приложение портала может распечатать успокаивающие сообщения об ошибках.
С подходом обмена сообщениями:
Я потенциально могу «буферизировать» все сообщения в каналах, даже иметь несколько каналов, если есть много запросов, и в то же время могу контролировать скорость потребления, которая является разумной для мощности обработки базы данных.
Проблемы недоступности должны изящно обрабатываться с помощью постоянных каналов, но в этом случае это синхронный доступ, и необходимо реагировать в течение ограниченного времени, если база данных внешнего приложения недоступна. Я не думаю, что это выгодно для этой синхронной потребности.
Почему-то я предпочитаю подход RESTful для этого случая, так как это действительно синхронный доступ и, конечно, его гораздо проще реализовать. Но я все еще в сомнениях.
Пожалуйста, поделитесь своими мыслями. Спасибо !