В чем разница между API и SOA - PullRequest
       22

В чем разница между API и SOA

31 голосов
/ 29 февраля 2012

Существует множество What is the difference between... вопросов, но я не смог найти этот.

Википедия говорит об этом API

Интерфейс прикладного программирования (API) - это спецификация на основе исходного кода, предназначенная для использования компонентами программного обеспечения в качестве интерфейса для связи друг с другом.

И это примерно SOA

SOA также, как правило, предоставляет потребителям услуг, таких как веб-приложения, возможность узнать о доступных сервисах на основе SOA.

Не обе технологиигде вы предоставляете услуги другим службам?
Может ли кто-нибудь рассказать об этом?

Ответы [ 4 ]

39 голосов
/ 29 февраля 2012

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

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

API - это интерфейс, предоставляемый компонентом / службой, чтобы другие компоненты могли взаимодействовать с ним. В приведенном выше примере шина предоставляет общий API для ряда служб для связи.

В итоге:

API = любой способ связи, предоставляемый программным компонентом.

SOA = набор принципов корпоративного архитектурного проектирования для решения проблем масштабируемости путем разделения ответственности на сервисы.

4 голосов
/ 23 ноября 2014

Другими словами:

SOA - это образец архитектуры.

API - это один из способов принятия или включения шаблона SOA.

SOA - это метод проектирования "Планирование" {Blue Print}.

API - это фактическая реализация проекта.

1 голос
/ 28 октября 2015

Краткая и краткая версия:

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

SOA - это еще один уровень бизнес-решений A2A и B2B, на котором, когда бизнесу необходимо передавать данные между различными типами среды, создаются API и на этом основываются бизнес-правила. Технологии - это обычно XML, RPC и SOAP.

Оба используют взаимозаменяемые технологии. Безопасность может быть решена на обоих, SOA обычно так, API меньше, если его целью является обслуживание открытых данных.

0 голосов
/ 27 октября 2016

Похоже, что есть много мнений по этому поводу;это интересное чтение.Вот мое мнение.

SOA: SOA - это сервис-ориентированный архитектурный шаблон для создания и доступа к наборам программных компонентов / сервисов (как было отмечено в ответе выше).Принципы SOA, которые формируют шаблон SOA, можно найти во многих местах, не все из которых соответствуют друг другу, что делает SOA несколько туманным термином.Сервис SOA может быть создан практически с любым современным набором технологий разработки программного обеспечения (см. Ниже).

API: Обычно термин «API» используется для обозначения спецификации программного использования или взаимодействия с программным решением.Это может относиться к таким вещам, как спецификации языка программирования и его компонентов (API Java), спецификация того, как получить доступ и / или расширить решение COTS, спецификация того, как использовать сервис или набор сервисов (включая сигнатуру)или структура данных, связанная с взаимодействием со службой) и т. д.

SOA и API: API для службы SOA может включать концептуальные, не зависящие от технологии спецификации службы (например, один элемент данных будетфамилия клиента), а также физические, специфичные для технологии спецификации использования для каждого физического экземпляра этой службы SOA (например: будут доступны два экземпляра, один с использованием макета JSON, а другой - с макетом XML, каждый из которых содержит примерноэквивалентные физические спецификации для элемента данных 'LAST NAME').

Заблуждение: термин API следует использовать только для обозначения интерфейсов RESTful, «простых, легких» или JSON (примечание: RESTful не эквивалентен «простым» или «легким»).На самом деле API может быть структурирован по множеству шаблонов с использованием многих типов технологий, включая службы на основе WS *.

Заблуждение: SOA строго следует WS * или другим «сложным, тяжелым» интерфейсным подходам.На самом деле сервисы SOA могут создаваться и использоваться с использованием практически любого современного набора технологий разработки программного обеспечения, включая подходы RESTful или файлы JSON.

Подробнее о SOA: SOA - это шаблон архитектуры, основанный на концепции, что возможности должны быть реализованы каксервисы, которые имеют четкую спецификацию использования и могут использоваться любым программным компонентом «клиент», который может следовать этой спецификации использования, независимо от технологий, на которых была разработана услуга или на которых был разработан «вызывающий клиент».Хорошо написанные сервисы должны быть в высокой степени совместимы между собой.

Поскольку многие провайдеры и поставщики с открытым исходным кодом создали ориентированные на SOA структуры, основанные на подходах, основанных на XML, в частности, на наборе стандартов WS *, SOA иногда ошибочно ограничивающе ассоциировали с подходами, связанными с WS * и / или XML.,Но на самом деле SOA как концептуальная модель не зависит от технологий.Один концептуальный сервис SOA может быть создан один или несколько раз во многих формах, причем каждый экземпляр выбирается из множества технологий (XML, JSON, WS *, подход REST, Java, C ++, LAMP, ...), как определено разработчикамии разработчики этого экземпляра.

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

...