Вы можете найти в этой статье (что объяснено SOA? - SOA и веб-сервисы) полезно.
Маленький тизер:
SOA - это стиль архитектурных приложений таким образом, что они состоят из дискретных программных агентов, которые имеют простые, четкие интерфейсы, которые имеют простые, хорошо определенные интерфейсы и организуются через свободную связь для выполнения требуемой функции.
Существует 2 роля в SOA - поставщику услуг и услуга потребителя. Агент программного обеспечения может играть в обе роли. SOA не совсем новая концепция - однако эта статья в основном ориентирована на SOA, как это реализовано с веб-сервисами.
Послушайте подкаст этой недели Floss Weekly , который охватывает SOA. Описания довольно высокого уровня и не вдаются в слишком много технических деталей (хотя были бы полезны более конкретные и узнаваемые примеры проектов по SOA.
.Традиционная архитектура приложения - это:
Если вы хотите получить программный доступ к данным, вам, возможно, придется прибегнуть к скрин-скрейпингу.
SOA кажется мне архитектурой, которая фокусируется на открытии машиночитаемых данных и/или API, а не на открытии UI.
.SOA - аббревиатура для Service Oriented Architecture.
SOA проектирует и пишет программные приложения таким образом. что отдельные программные модули могут быть бесшовно интегрированный с высокой степенью повторного использования.
Большинство людей ограничить SOA в качестве пишущего клиента/сервера программно-веб-сервисы. Но это тоже небольшой контекст SOA. SOA - это много более того, и за последние несколько лет годами веб-сервисы были основными средство коммуникации, которым является вероятно, причина, по которой люди думают SOA как веб-сервиса в целом ограничение границ и смысла SOA.
Можно подумать о написании модуля доступа к базе данных, который настолько независим, что может работать самостоятельно без каких-либо зависимостей. Этот модуль может выставлять классы, которые могут использоваться любым программным обеспечением хоста, нуждающимся в доступе к базе данных. В хост-приложении нет конфигурации запуска. Все, что необходимо или требуется, передается через классы экспозиции модулем доступа к базе данных. Мы можем называть эти классы сервисами и рассматривать модуль как поддерживающий сервис.
Практика SOA дает высокую степень повторное использование путем принуждения ДРИ [Не надо] Повторяй за собой] что приводит к высокотехнологичное программное обеспечение. Удобство обслуживания - это первое, что архитектура программного обеспечения думает о - SOA дает вам понять, что файлы
SOA - это архитектурный стиль, но также видение о том, как гетерогенное приложение должно быть разработано и интегрировано. Основной целью SOA является отход от монолитных приложений и вместо этого имеет набор многоразовых сервисов , которые могут быть составлены для сборки приложений.
IMHO, SOA имеет смысл только на уровне предприятия и ничего не значит для одного приложения.
Во многих организациях каждый департамент имел свой собственный набор корпоративных приложений, что подразумевало
Аналогичная функция реализовывалась несколько раз
Данные (например, данные о клиентах или сотрудниках) должны были совместно использоваться между Несколько приложений
Приложения были ориентированы на отделы.
С SOA идея заключается в том, чтобы сделать многоразовые сервисы доступными для всего предприятия, так чтобы приложение могло быть построено и составлено из них. Обещание SOA
Нет необходимости снова и снова реализовывать аналогичные функции (например обеспечение обслуживания клиентов или сотрудников)
Облегчает интеграцию приложений вместе и доступ к общим данным или функциям
Концепция SOA требует технологического сдвига, а также организационного сдвига. В то время как оно решает одни проблемы, оно также вводит и другие, например, с SOA гораздо труднее обеспечить безопасность, чем с монолитным приложением. Поэтому SOA является предметом обсуждения, работает она или нет.
Это взгляд SOA на 1000 футов. Однако на этом он не заканчивается. Есть и другие понятия, дополняющие SOA, такие как оркестровка бизнес-процессов (BPM), служебная шина предприятия (ESB), комплексная обработка событий (CEP) и т. д. Все они решают проблему IT/business alignmentement, то есть, как иметь возможность IT эффективно поддерживать бизнес.
.] Предположим, что у вас четыре повара. В SOA вы предполагаете, что они ненавидят друг друга, поэтому стараетесь позволить им как можно меньше разговаривать друг с другом.[
] [] Как вы это делаете? Ну, сначала вы определите роли и интерфейс - повар 1 приготовит салат, повар 2 приготовит суп, повар 3 приготовит стейк и т.д... Затем вы разместите хорошо организованные блюда на столе (так что это интерфейсы) и скажете: "Пожалуйста, разместите ваше творение в назначенных вам блюдах". Не заботьтесь ни о ком другом".[
] []Таким образом, четыре повара должны как можно меньше разговаривать друг с другом, что очень хорошо при разработке программного обеспечения - не обязательно потому, что они ненавидят друг друга, но по другим причинам, таким как физическое расположение, оперативность в принятии решений и т.д. [
] []Это также означает, что вы можете перекомбинировать посуду (услуги) так, как вам нравится. Например, вы можете просто использовать десерт для обслуживания кафе, или просто взять суп и совместить его с хлебом, купленным у другой компании, чтобы обеспечить более дешевое меню, или позволить другим ресторанам использовать ваши салаты для сочетания с их блюдами и т.д.[
] []Одним из самых успешных применений SOA было на Amazon. Благодаря своему дизайну они могли переупаковать всю свою инфраструктуру и продавать ее как Amazon Web Service. [
] []*Это только один аспект SOA.[
]]SOA - это новый бейдж для некоторых очень старых идей:[
] []Разделите ваш код на модули многоразового использования.[
][]Зафиксируйте в модуле любое конструктивное решение, которое может измениться.[
][]Проектируйте свои модули таким образом, чтобы их можно было комбинировать различными полезными способами (иногда их называют "семейством" или "линейкой продукции"). [
][]Это все основополагающие принципы разработки программного обеспечения, многие из которых впервые сформулированы Дэвидом Парнасом.[
] []Новым в SOA является то, что[
] []Вы делаете это по сети.[
][]Модули общаются, посылая сообщения друг другу по сети, а не с помощью более торговых механизмов программирования на языке программирования, таких как вызовы процедур. В частности, в сервис-ориентированной архитектуре части, как правило, не имеют общего мутирующего состояния (глобальные переменные в традиционной программе). Или если они разделяют состояние, то это состояние тщательно блокируется в базе данных, которая сама по себе является агентом и может легко управлять несколькими параллельными клиентами.[
][Видите ли ... SOA означает сервисно-ориентированную архитектуру ... Проще говоря, вы пишете фрагмент кода, который является очень общим, т.е. он выполняет некоторые функции, которые можно использовать во многих приложениях ... может быть чем-то вроде адресной книги или может быть калькулятором. и вы запускаете этот код в IIS. Таким образом, вы предоставляете услугу через свой код. Итак, вы поставщик услуг. Теперь кто-то хочет использовать аналогичный код, тогда ему не нужно писать код снова. Он просто использует ваш код, возможно, через веб-службу. Следовательно, он становится потребителем услуг. Следовательно, создание программы с использованием таких сервисов называется SOA. И существует слабая связь, поскольку поставщик услуг и потребитель могут взаимодействовать, даже если они используют языки программирования diff. Надеюсь ты понимаешь.
Насколько я понимаю, базовая концепция существует, что вы создаете небольшие «услуги», которые предоставляют что-то полезное для других систем и избежать создания крупных систем, которые имеют тенденцию делать все внутри системы.
Итак, вы определяете протокол, который вы будете использовать для взаимодействия (скажем, это может быть веб-сервисы SOAP) и пусть ваша «система - это некоторая деловая работа», чтобы взаимодействовать с небольшими сервисами для достижения вашего « Большая цель ».
Это также может стоять за «структуру массивов» (в отличие от «массива структуров»), которая является общей темой параллельно (особенно SIMD) программирования, но я предполагаю, что это не то, что вы имеете в виду здесь!