Сервис-ориентированная архитектура
Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Се́рвис-ориенти́рованная архитекту́ра (англ. SOA, service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании сервисов (служб) со стандартизированными интерфейсами.
В основе SOA лежат принципы многократного использования функциональных элементов ИТ, ликвидации дублирования функциональности в ПО, унификации типовых операционных процессов, обеспечения перевода операционной модели компании на централизованные процессы и функциональную организацию на основе промышленной платформы интеграции.
Компоненты программы могут быть распределены по разным узлам сети, и предлагаются как независимые, слабо связанные, заменяемые сервисы-приложения. Программные комплексы, разработанные в соответствии с SOA, часто реализуются как набор веб-сервисов, интегрированных при помощи известных стандартных протоколов (SOAP, WSDL, и т. п.)
Интерфейс компонентов SОА-программы предоставляет инкапсуляцию деталей реализации конкретного компонента (ОС, платформы, языка программирования, вендора, и т. п.) от остальных компонентов. Таким образом, SOA предоставляет гибкий и элегантный способ комбинирования и многократного использования компонентов для построения сложных распределённых программных комплексов.
SOA хорошо зарекомендовала себя для построения крупных корпоративных программных приложений. Целый ряд разработчиков и интеграторов предлагают инструменты и решения на основе SOA (например, платформы IBM WebSphere, Oracle/BEA Aqualogic, Microsoft Windows Communication Foundation, SAP NetWeaver, ИВК Юпитер, TIBCO, Diasoft).
Содержание |
[править] Определение SOA
OASIS (Организация по распространению открытых стандартов структурированной информации) определяет SOA следующим образом (OASIS Reference Model for Service Oriented Architecture V 1.0): Сервисно-ориентированная архитектура — это парадигма организации и использования распределенных информационных ресурсов таких как: приложения и данные, находящихся в сфере ответственности разных владельцев, для достижения желаемых результатов потребителем, которым может быть: конечный пользователь или другое приложение.
[править] Введение
Основная причина появления SOA — старозаветная мечта индустрии программирования о замене «кустарного» кодирования программ «от и до» на «промышленную» сборку приложений из «стандартных комплектующих», как в автомобильной, или других «традиционных» отраслях промышленности.
[править] Цели
Для крупных информационных систем, уровня предприятия, и выше:
- сокращение издержек при разработке приложений, за счёт упорядочивания процесса разработки,
- расширение повторного использования кода,
- независимость от используемых платформ, инструментов, языков разработки,
- повышение масштабируемости создаваемых систем,
- улучшение управляемости создаваемых систем.
[править] Принципы SOA
- Архитектура, как таковая, не привязана к какой-то определённой технологии,
- Независимость организации системы от используемой вычислительной платформы (платформ),
- Независимость организации системы от применяемых языков программирования,
- Использование сервисов, независимых от конкретных приложений, с единообразными интерфейсами доступа к ним,
- Организация сервисов как слабо-связанных компонентов для построения систем
[править] Другие SOA-Концепции
Архитектура не привязана к какой-то определённой технологии. Она может быть реализована с использованием широкого спектра технологий, включая такие технологии как REST, RPC, DCOM, CORBA или веб-сервисы. SOA может быть реализована используя один из этих протоколов и, например, может использовать, дополнительно, механизм файловой системы, для обмена данными.
Главное, что отличает SOA, это использование независимых сервисов, с чётко определёнными интерфейсами, которые, для выполнения своих задач, могут быть вызваны неким стандартным способом, при условии, что сервисы заранее ничего не знают о приложении, которое их вызовет, а приложение не знает, каким образом сервисы выполняют свою задачу.
SOA также может рассматриваться как стиль архитектуры информационных систем, который позволяет создавать приложения, построенные путём комбинации слабо-связанных и взаимодействующих сервисов. Эти сервисы взаимодействуют на основе какого-либо строго определённого платформенно-независимого и языково-независимого интерфейса (например, WSDL). Определение интерфейса скрывает языково-зависимую реализацию сервиса.
Таким образом, системы, основанные на SOA, могут быть независимы от технологий разработки и платформ (таких как Java, .NET и т. д.). К примеру, сервисы, написанные на C#, работающие на платформах .Net и сервисы на Java, работающие на платформах Java EE, могут быть с одинаковым успехом вызваны общим составным приложением. Приложения, работающие на одних платформах, могут вызывать сервисы, работающие на других платформах, что облегчает повторное использование компонентов.
SOA может поддерживать интеграцию и консолидацию операций в составе сложных систем, однако SOA не определяет и не предоставляет методологий или фреймворков для документирования сервисов.
Языки высокого уровня, такие как BPEL, или спецификации, такие как WS-CDL и WS-Coordination, расширяют концепцию сервиса, предоставляя метод оркестрации, для объединения мелких сервисов в более обширные бизнес-сервисы, которые, в свою очередь, могут быть включены в состав технологических процессов и бизнес-процессов, реализованных в виде составных приложений или порталов.
Использование компонентной архитектуры (SCA) для реализации SOA — это область текущих исследований.
[править] См. также
- Enterprise Application Integration
- Веб-служба
- SOAP
- SODA
- Подпрограммное обеспечение
- Распределённые вычисления
- Установку системы SOA см. в статье BPEL.
[править] Ссылки
- Материалы по SOA на портале ERPNEWS
- OASIS SOA Reference Model TC
- OASIS Reference Model for Service Oriented Architecture V 1.0 (Перевод на русский)
- Материалы по SOA на сайте компании IBM
- IBM Systems Journal issue on SOA
- Norbert Biebertein (Норберт Биберштейн)et a. Service-Oriented Architecture Compass Компас в мире сервис-ориентированной архитектуры (SOA) 2006
- Материалы по SOA на сайте компании Microsoft
- Материалы по SOA на сайте корпорации ORACLE
- Статьи о Сервисной Архитектуре
- Статьи по SOA
- Статьи по SOA и WEB-сервисам на русском языке
- Книга SOA Adoption for Dummies(2009) на сайте компании Software AG