Сервис-Ориентированная Архитектура:Как бы вы это определили

StackOverflow https://stackoverflow.com/questions/59537

  •  09-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

Я бы пошел с:

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

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

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

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

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

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

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

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

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

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

Следующие принципы сохранятся хорошо здесь 1) без сохранности 2) Ориентация на сообщение - слабо связанная на самом деле DE -COUPED 3) Расширяется.

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

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

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

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

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

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

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

СКРАМ ВКЛЮЧЕН!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top