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

[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м откат правок 217.170.93.158 (обс) к версии Bezik
Строка 4:
 
Интерфейсы компонентов в сервис-ориентированной архитектуре [[Инкапсуляция (программирование)|инкапсулируют]] детали реализации ([[Операционная система|операционную систему]], [[Кроссплатформенность|платформу]], [[Язык программирования|язык программирования]]) от остальных компонентов, таким образом обеспечивая комбинирование и [[Повторное использование кода|многократное использование]] компонентов для построения сложных [[Распределённые вычисления|распределённых программных комплексов]], обеспечивая независимость от используемых [[Компьютерная платформа|платформ]] и инструментов разработки, способствуя [[масштабируемость|масштабируемости]] и [[Управляемость (теория управления)|управляемости]] создаваемых систем.
 
== Определение SOA ==
[[OASIS]] определяет SOA следующим образом (Reference Model for Service Oriented Architecture): Сервисно-ориентированная архитектура — это парадигма организации и использования распределенных информационных ресурсов таких как: приложения и данные, находящихся в сфере ответственности разных владельцев, для достижения желаемых результатов потребителем, которым может быть: конечный пользователь или другое приложение.
== Цели ==
 
Для крупных информационных систем, уровня предприятия, и выше:
* сокращение издержек при разработке приложений, за счёт упорядочивания процесса разработки,
* расширение повторного использования кода,
* независимость от используемых платформ, инструментов, языков разработки,
* повышение масштабируемости создаваемых систем,
* улучшение управляемости создаваемых систем.
 
== Принципы SOA ==
# Архитектура, как таковая, не привязана к какой-то определённой технологии,
# Независимость организации системы от используемой вычислительной платформы (платформ),
# Независимость организации системы от применяемых языков программирования,
# Использование сервисов, независимых от конкретных приложений, с единообразными интерфейсами доступа к ним,
# Организация сервисов как слабо-связанных компонентов для построения систем
 
== Другие SOA-концепции ==
Строка 33 ⟶ 15 :
SOA также может рассматриваться как стиль архитектуры информационных систем, который позволяет создавать приложения, построенные путём комбинации слабо-связанных и взаимодействующих сервисов. Эти сервисы взаимодействуют на основе какого-либо строго определённого платформенно-независимого и языково-независимого интерфейса (например, [[WSDL]]). Определение интерфейса скрывает языково-зависимую реализацию сервиса.
 
Таким образом, системы, основанные на SOA, могут быть независимы от технологий разработки и платформ (таких как [[Java]], [[Microsoft .NET|.NET]] и  т.  д.). К примеру, сервисы, написанные на [[C Sharp|C#]], работающие на платформах .Net и сервисы на Java, работающие на платформах [[Java Platform, Enterprise Edition|Java EE]], могут быть с одинаковым успехом вызваны общим составным приложением. Приложения, работающие на одних платформах, могут вызывать сервисы, работающие на других платформах, что облегчает повторное использование компонентов.
 
SOA может поддерживать интеграцию и консолидацию операций в составе сложных систем, однако SOA не определяет и не предоставляет методологий или [[framework|фреймворков]] для документирования сервисов.
Строка 39 ⟶ 21 :
Языки высокого уровня, такие как [[BPEL]], или спецификации, такие как [[WS-CDL]] и [[WS-Coordination]], расширяют концепцию сервиса, предоставляя метод [[Оркестровка (ИТ)|оркестрации]], для объединения мелких сервисов в более обширные бизнес-сервисы, которые, в свою очередь, могут быть включены в состав технологических процессов и бизнес-процессов, реализованных в виде составных приложений или [[Интернет-портал|порталов]].
 
Использование [[Компонентная архитектура|компонентной архитектуры]] (SCA) для реализации SOA  — это область текущих исследований.
 
== См. также ==
* [[Enterprise Application Integration]]
* [[Веб-служба]]
* [[SOAP]]
* [[SODA]]
* [[Подпрограммное обеспечение]]
* [[Распределённые вычисления]]
* [[BPEL]]
 
== Ссылки ==