SOA против базы данных - PullRequest
1 голос
/ 05 мая 2011

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

Общение с двумя различными приложениями на разных языках внутри двух разных систем может осуществляться в центральной базе данных. Скажем, у вас есть клиент, который размещает заказ, который приложение, написанное вами на Java, сохраняет его в вашей базе данных MySql, а затем человек в отделе доставки получает заказ через свое приложение, которое автоматически проверяет наличие новых заказов из MySql через программу. Поэтому я не уверен, где веб-сервисы вписываются в общую схему вещей. Какие примеры случаев, когда вы хотите использовать SOA поверх базы данных?

Ответы [ 3 ]

5 голосов
/ 05 мая 2011

Я не уверен, что вы можете даже сравнить SOA (такой широкий термин) с базой данных.Определение для SOA в Википедии:

Сервисно-ориентированная архитектура (SOA) - это гибкий набор принципов проектирования, используемых на этапах разработки систем и интеграции в вычисления. Система, основанная на SOA, будет паковатьфункциональность как набор взаимодействующих сервисов, которые могут использоваться в нескольких отдельных системах из нескольких бизнес-доменов. Цитируется из Википедии

Таким образом, речь идет не только о двух приложениях, которые взаимодействуют с базой данных, как вы заявили.Речь идет о более широком взгляде на всю вашу бизнес-систему.Уровень SOA будет предоставлять услуги всем вышестоящим приложениям, которые можно рассматривать как потребителей.Уровень SOA может взаимодействовать с любым количеством баз данных.Может быть в MySQL, SQL Server, Informix все одновременно.Потребителю этих уровней SOA не придется беспокоиться о нисходящих системах, и он может использовать бизнес-функции, доступные в сервисах.

Надеюсь, это поможет вам понять, что такое SOA.Чтобы прочитать, что такое SOA, прочитайте эту статью в Википедии http://en.wikipedia.org/wiki/Service-oriented_architecture

2 голосов
/ 05 мая 2011

Использование базы данных для интеграции часто не очень хорошая идея

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

  2. при непосредственном доступе к базе данных вы не можете изменить схему БД без обновления других приложений

это всего лишь несколько примеров - есть еще

1 голос
/ 05 мая 2011

Обычно вы используете базу данных в качестве механизма хранения для вашего сервиса - это не выбор между SOA и базой данных - это вопрос "нужно ли мне выставлять свои данные / сервис за пределы моей организации?" Да? -> использовать сервис. Нет? -> Просто иметь базу данных.

...