Сервис-ориентированная архитектура: различия между версиями

[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м Заменила на определенную величину
м Добавила ссылки и исправила орфографические ошибки
Строка 1:
{{стиль}}
'''Се́рвис-ориенти́рованная архитекту́ра''' (''СОА'', {{lang-en|service-oriented architecture}}- ''SOA'') — [[Модульное программирование|модульный]] подход к разработке [[Программное обеспечение|программного обеспечения]], базирующийся на обеспечении удаленного использования по стандартизированным [[Сетевой протокол|протоколам]] [[Распределённые вычисления|распределённых]], {{iw|Слабое связывание|слабо связанных|[[:en:Loose_coupling|loose coupling}} (слабосвязанных)]], легко заменяемых компонентов (сервисов) со стандартизированными [[Интерфейс программирования приложений|интерфейсами]].
 
Программные комплексы, разработанные в соответствии с СОА, обычно реализуются как набор [[Веб-служба|веб-служб]], взаимодействующих по протоколу [[SOAP]], но есть и другие реализации (например, на базе [[jini]], [[CORBA]], на основе [[REST]]).
Строка 11:
Сервис-ориентированная архитектура не привязана к определённой технологии. Она может быть реализована с использованием широкого спектра технологий, включая такие технологии как [[REST]], [[Remote Procedure Call|RPC]], [[DCOM]], [[CORBA]] или [[Веб-служба|веб-сервисы]]. SOA может быть реализована с использованием одного из этих протоколов и, например, дополнительно может использовать механизм файловой системы для обмена данными.
 
Основная особенность SOA — это использование независимых [[Сервис|сервисов]], выполняющих определённые задачи, вызываемые стандартным способом через определённые интерфейсы, при отсутствии у сервисов знаний о вызывающих их приложениях, а у приложений — о способах, которыми сервисы выполняют свою задачу.
 
[[Файл:SOA Elements.png|thumb|right|Элементы сервис-ориентированной архитектуры, по: Dirk Krafzig, Karl Banke, and Dirk Slama. Enterprise SOA. Prentice Hall, 2005]]
 
SOA также может рассматриваться, как стиль архитектуры информационных систем, который позволяет создавать приложения, построенные путём комбинации слабо связанных взаимодействующих сервисов. Эти сервисы взаимодействуют на основе строго определённого платформенно- и языково-независимого интерфейса (например, [[WSDL]]). Определение интерфейса скрывает языковую реализацию сервиса.
 
Таким образом, системы, основанные на SOA, могут быть независимы от технологий разработки и платформ (таких как [[Java]], [[Microsoft .NET|.NET]] и т. д.). К примеру, сервисы, написанные на [[C Sharp|C#]], работающие на платформах [[.NET]] и сервисы на Java, работающие на платформах [[Java Platform, Enterprise Edition|Java EE]], могут быть одинаковым образом вызваны общим составным приложением. Таким образом, приложениям, работающим на одних платформах, обеспечивается возможность вызывать сервисы, работающие на других платформах, что облегчает повторное использование компонентов.
 
SOA может поддерживать интеграцию и консолидацию операций в составе сложных систем, однако SOA не определяет и не предоставляет методологии или [[framework|фреймворки]] для документирования сервисов.
 
Языки высокого уровня, такие как [[BPEL]], или спецификации, такие как [[:en:Service_choreography#Web_Service_Choreography:~:text=22%5D%5B23%5D-,Web%20service%20choreography,-%5Bedit%20source|Web_Service_Choreography]]{{iw|WS-CDL||en|WS-CDL}} и {{iw|[[:en:WS-Coordination||en|WS-Coordination}}]], расширяют концепцию сервиса, предоставляя метод [[Оркестровка (ИТ)|оркестровки]], для объединения сервисов низших уровней в более обширные бизнес-сервисы, которые, в свою очередь, могут быть использованы технологическими и бизнес-процессами, реализованными в виде составных приложений или [[Интернет-портал|порталов]].
 
Использование [[Компонентная архитектура|компонентной архитектуры]] (SCA) для реализации SOA — это область текущих исследований.