Что такое сервис-ориентированная архитектура? - PullRequest
14 голосов
/ 01 октября 2010

Что такое сервис-ориентированная архитектура?

Ответы [ 5 ]

20 голосов
/ 01 октября 2010

SOA - это способ разработки сервис-ориентированных приложений, а WCF - это технология, которую можно использовать для разработки сервис-ориентированных приложений.НО SOA определяет строгие правила (известные как принципы SOA) для приложений.Если вы не следуете этим правилам, вы создаете сервисы, но эти сервисы не соответствуют SOA.

WCF позволяет разрабатывать множество видов услуг.Вы можете разрабатывать совместимые сервисы SOAP, которые соответствуют SOA или нет.Вы можете разрабатывать чистые .NET-сервисы с не совместимыми функциями и разрабатывать REST-сервисы.

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

Принципы SOA:

  • Границы являются явными - сервис неделиться чем-либо с другими службами (даже таблицы базы данных и данные не могут быть общими)
  • Службы являются автономными - каждая служба является независимой, может быть развернута отдельно и иметь версии
  • Схема совместного использования служб и контракт,не класс - сервисы описаны в WSDL, транспортируемые данные описаны в XSD, оркестрации (агрегация) описаны в BPEL
  • Совместимость сервисов основана на политике - WSDL содержит WS-Policies для описания конфигурации, необходимой для взаимодействия

Как видите, первые два принципа могут быть легко нарушены при создании службы WCF.

6 голосов
/ 01 октября 2010

SOA - это способ разработки законченного решения, это набор общепринятых практик для связи, управления состоянием, совместимости и т. Д. В частности, в архитектуре программного обеспечения SOA - это набор служб (не обязательно веб-служб), построен независимо для поддержки целого ряда клиентских приложений. Модульная конструкция помогает в обслуживании, деловом сотрудничестве. SOA также предоставляет некоторые рекомендации по разработке:

  • Ограничения обратной совместимости
  • Экспозиция метаданных
  • Обнаруживаемость услуг

С другой стороны, WCF - это просто поддерживающая технология, которая помогает вам создавать сервисы в .NET.

Вы можете создать SOA без WCF, точно так же, как создание группы служб WCF не делает вашу архитектуру ориентированной на службы.

2 голосов
/ 26 августа 2015

Сервис-ориентированная архитектура - это программная архитектурная концепция, в которой один или несколько сервисов взаимодействуют друг с другом.Здесь сервис означает единицу работы для достижения цели.Например, продажа онлайн-билетов на железные дороги - это услуга, онлайн-бронирование отелей - это услуга, обеспечение онлайн-платежей - это услуга и т. Д. Теперь давайте рассмотрим, как гостиничная компания продает свои номера онлайн со своего собственного веб-сайта.В этом случае сайт использует локальный сервис.Этот же отель может также продавать номера через сторонний туристический портал.Во втором случае сторонний туристический портал использует удаленный сервис или веб-сервис.Продажа онлайн-бронирования отелей через туристический портал является примером Сервис-ориентированной архитектуры .В сервис-ориентированной архитектуре две или более стороны взаимодействуют друг с другом с помощью веб-сервисов.Среди них мало поставщиков веб-услуг и лишь немногие являются потребителями веб-услуг.Программный компонент может быть построен с использованием сервис-ориентированной архитектуры с использованием веб-сервисов.WCF - это технология для создания сервиса.

1 голос
/ 27 апреля 2012

SOA - это просто метод, с помощью которого мы можем взаимодействовать между различными технологиями, такими как .NET и JAVA, используя веб-службы. Для этого вам нужно знание нескольких вещей, показанных ниже.

  1. XML
  2. 1007 * WSDL *
  3. UDDI
  4. SOAP

зная эти вещи, вы можете легко применить эту SOA

1 голос
/ 01 октября 2010

WCF - это технология, которая облегчает создание сервисов, и она работает на всех транспортах, не только HTTP, поэтому она более универсальная, чем веб-сервисы, которые работают только по протоколу HTTP.

...