Лаборатория сервисно-ориентированной архитектуры
Направление деятельности лаборатории
Сервисно-ориентированная архитектура (англ. SOA, service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании сервисов (служб) со стандартизированными интерфейсами и единой системной шиной.
В основе лежат принципы многократного использования функциональных элементов ИТ, ликвидации дублирования функциональности в ПО, унификации типовых операционных процессов. Принципы СОА - обеспечивать перевод операционной модели компании на централизованные процессы и функциональную организацию на основе промышленной платформы интеграции.
Компоненты программы распределяются по разным узлам сети и предлагаются как независимые, слабо связанные, заменяемые сервисы-приложения. Программные комплексы, разработанные в соответствии с часто реализуются как набор веб-сервисов, интегрированных при помощи известных стандартных протоколов (SOAP, WSDL, и т. п.).
Интерфейс компонентов СОА-программы предоставляет инкапсуляцию деталей реализации конкретного компонента (ОС, платформы, языка программирования, вендора, и т. п.) от остальных компонентов. хорошо зарекомендовала себя для построения крупных корпоративных программных приложений. Целый ряд разработчиков и интеграторов предлагают инструменты и решения на основе (например, платформы IBM WebSphere, Oracle/BEA Aqualogic, Microsoft Windows Communication Foundation, SAP NetWeaver, ИВК Юпитер, TIBCO, Diasoft).
Цели
Для крупных информационных систем, уровня предприятия, и выше:
- сокращение издержек при разработке приложений, за счёт упорядочивания процесса разработки;
- инвариантность к предметной области;
- снижение затрат на реализацию программных средств моделирования сервисов;
- независимость от используемых платформ, инструментов, языков разработки;
- повышение масштабируемости создаваемых систем;
- улучшение управляемости создаваемых систем.
Принципы CОА
- архитектура не ориентирована на конкретную технологию;
- инвариантность программных средств системы к набору аппаратных средств;
- независимость организации системы от применяемых языков программирования;
- использование сервисов, независимых от конкретных приложений, с едиными интерфейсами доступа к ним;
- организация сервисов как слабо-связанных компонентов для построения систем.