Сервис-ориентированная архитектура: как бы вы ее определили? - PullRequest
15 голосов
/ 12 сентября 2008

Сервис-ориентированная архитектура в наши дни кажется все более и более горячей цитатой, но, посмотрев в офисе, я обнаружил, что у меня, похоже, есть много разных определений для нее. Как вы, ребята, определяете SOA? Что бы вы назвали официальным определением?

Ответы [ 9 ]

25 голосов
/ 12 сентября 2008

Как говорит Мартин Фаулер, это означает разные вещи для разных людей. Его статья на эту тему довольно хороша, хотя и не совсем определена.

http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html

Это может объяснить, трудно придумать конкретное определение.

6 голосов
/ 18 сентября 2008

Википедия: «SOA - это программная архитектура, которая использует слабосвязанные программные службы для поддержки требований бизнес-процессов и пользователей программного обеспечения. Ресурсы в сети в среде SOA доступны как независимые службы, доступ к которым возможен без знания их базовая реализация платформы. "

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

5 голосов
/ 12 сентября 2008

Я бы пошел с:

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

3 голосов
/ 12 сентября 2008

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

Сервисы в дизайне SOA обычно реализуются как совместимые веб-сервисы.

2 голосов
/ 15 сентября 2008

Официального определения Райана не упоминается. Тем не менее, я считаю, что взгляд Томаса Эрла на всю сервис-ориентацию достаточно хорошо структурирован и актуален. Вот определение SOA из его Глоссария SOA ( more ):

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

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

1 голос
/ 01 января 2009

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

У меня есть сценарий, в котором два приложения j2ee были интегрированы с использованием обмена сообщениями на основе событий. Здесь вышеупомянутые фразы системная интеграция и , подключающиеся к сервисам, предоставляемым другими работающими приложениями по сети , остаются в силе. Могу ли я назвать это SOA?

Следующие принципы будут в силе здесь 1) безгражданство 2) ориентированная на сообщения - слабо связанная 3) расширяемый.

Однако следующее не применяется 1) независимость от платформы - ни одно из интегрируемых приложений не было разработано для работы на другой платформе. 2) Приложения представляют собой простые приложения j2ee, которые не были разработаны со всеми концепциями soa.

1 голос
/ 24 сентября 2008

Я согласен со всеми людьми, которые указывают на это Фаулеру. По сути, это работает так: сервис-ориентированная архитектура имеет хорошую репутацию, поэтому все, что люди хотят ассоциировать с хорошим, называют SOA. На самом деле он имеет много недостатков и может создать сервис-ориентированный Gridlock или Dependency Oriented Architecture.

Вот мое определение: Сервис-ориентированная архитектура - это системная интеграция и подход повторного использования кода, когда приложения зависят от подключения к сервисам, предоставляемым другими работающими приложениями по сети. Это отличается от архитектуры компонентов, где программные компоненты статически распределяются между приложениями, например, в форме библиотек или SDK.

0 голосов
/ 05 мая 2015

Вот определение для вас:

SOA - Программное обеспечение перепроектировано. Включение бессмысленной, чрезмерно раздутой, функциональной структуры интерфейса, называемой архитектурой на симпатичном веб-сайте, с трехмерной графической папкой, летящей с одной стороны на другую, где «dir / s> a.txt | ftp -s: upload.ftp» сделал работу.

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

SCRUM ON!

0 голосов
/ 15 сентября 2008

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

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

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

...