Что такое SOA “на простом английском языке”? [закрытый]

112
задан Jonathan 15 May 2012 в 09:32
поделиться

10 ответов

Вы можете найти в этой статье (что объяснено SOA? - SOA и веб-сервисы) полезно.

Маленький тизер:

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

  • Существует 2 роля в SOA - поставщику услуг и услуга потребителя. Агент программного обеспечения может играть в обе роли. SOA не совсем новая концепция - однако эта статья в основном ориентирована на SOA, как это реализовано с веб-сервисами.

49
ответ дан 24 November 2019 в 02:49
поделиться

Послушайте подкаст этой недели Floss Weekly , который охватывает SOA. Описания довольно высокого уровня и не вдаются в слишком много технических деталей (хотя были бы полезны более конкретные и узнаваемые примеры проектов по SOA.

.
1
ответ дан 24 November 2019 в 02:49
поделиться

Традиционная архитектура приложения - это:

  • Пользовательский интерфейс
  • Неопределенные вещи (реализации), которые инкапсулированы/скрыты за пользовательским интерфейсом

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

SOA кажется мне архитектурой, которая фокусируется на открытии машиночитаемых данных и/или API, а не на открытии UI.

.
1
ответ дан 24 November 2019 в 02:49
поделиться

SOA - аббревиатура для Service Oriented Architecture.

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

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

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

Практика SOA дает высокую степень повторное использование путем принуждения ДРИ [Не надо] Повторяй за собой] что приводит к высокотехнологичное программное обеспечение. Удобство обслуживания - это первое, что архитектура программного обеспечения думает о - SOA дает вам понять, что файлы

10
ответ дан 24 November 2019 в 02:49
поделиться

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

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

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

  1. Аналогичная функция реализовывалась несколько раз

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

  3. Приложения были ориентированы на отделы.

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

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

  2. Облегчает интеграцию приложений вместе и доступ к общим данным или функциям

  3. Разработка, ориентированная на предприятия

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

Это взгляд SOA на 1000 футов. Однако на этом он не заканчивается. Есть и другие понятия, дополняющие SOA, такие как оркестровка бизнес-процессов (BPM), служебная шина предприятия (ESB), комплексная обработка событий (CEP) и т. д. Все они решают проблему IT/business alignmentement, то есть, как иметь возможность IT эффективно поддерживать бизнес.

.
17
ответ дан 24 November 2019 в 02:49
поделиться
[

] Предположим, что у вас четыре повара. В SOA вы предполагаете, что они ненавидят друг друга, поэтому стараетесь позволить им как можно меньше разговаривать друг с другом.[

] [

] Как вы это делаете? Ну, сначала вы определите роли и интерфейс - повар 1 приготовит салат, повар 2 приготовит суп, повар 3 приготовит стейк и т.д... Затем вы разместите хорошо организованные блюда на столе (так что это интерфейсы) и скажете: "Пожалуйста, разместите ваше творение в назначенных вам блюдах". Не заботьтесь ни о ком другом".[

] [

]Таким образом, четыре повара должны как можно меньше разговаривать друг с другом, что очень хорошо при разработке программного обеспечения - не обязательно потому, что они ненавидят друг друга, но по другим причинам, таким как физическое расположение, оперативность в принятии решений и т.д. [

] [

]Это также означает, что вы можете перекомбинировать посуду (услуги) так, как вам нравится. Например, вы можете просто использовать десерт для обслуживания кафе, или просто взять суп и совместить его с хлебом, купленным у другой компании, чтобы обеспечить более дешевое меню, или позволить другим ресторанам использовать ваши салаты для сочетания с их блюдами и т.д.[

] [

]Одним из самых успешных применений SOA было на Amazon. Благодаря своему дизайну они могли переупаковать всю свою инфраструктуру и продавать ее как Amazon Web Service. [

] [

]*Это только один аспект SOA.[

]
27
ответ дан 24 November 2019 в 02:49
поделиться
[

]SOA - это новый бейдж для некоторых очень старых идей:[

] [
    ] [
  • ][

    ]Разделите ваш код на модули многоразового использования.[

    ][
  • ] [
  • ][

    ]Зафиксируйте в модуле любое конструктивное решение, которое может измениться.[

    ][
  • ] [
  • ][

    ]Проектируйте свои модули таким образом, чтобы их можно было комбинировать различными полезными способами (иногда их называют "семейством" или "линейкой продукции"). [

    ][
  • ] [
] [

]Это все основополагающие принципы разработки программного обеспечения, многие из которых впервые сформулированы Дэвидом Парнасом.[

] [

]Новым в SOA является то, что[

] [
    ] [
  • ][

    ]Вы делаете это по сети.[

    ][
  • ] [
  • ][

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

    ][
  • ] [
]
64
ответ дан 24 November 2019 в 02:49
поделиться

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

3
ответ дан 24 November 2019 в 02:49
поделиться

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

Итак, вы определяете протокол, который вы будете использовать для взаимодействия (скажем, это может быть веб-сервисы SOAP) и пусть ваша «система - это некоторая деловая работа», чтобы взаимодействовать с небольшими сервисами для достижения вашего « Большая цель ».

6
ответ дан 24 November 2019 в 02:49
поделиться

Это также может стоять за «структуру массивов» (в отличие от «массива структуров»), которая является общей темой параллельно (особенно SIMD) программирования, но я предполагаю, что это не то, что вы имеете в виду здесь!

2
ответ дан 24 November 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: