Лаборатория сервисно-ориентированной архитектуры

Направление деятельности лаборатории

Сервисно-ориентированная архитектура (англ. SOA, service-oriented architecture) — модульный подход к разработке программного обеспечения, основанный на использовании сервисов (служб) со стандартизированными интерфейсами и единой системной шиной.

В основе лежат принципы многократного использования функциональных элементов ИТ, ликвидации дублирования функциональности в ПО, унификации типовых операционных процессов. Принципы СОА - обеспечивать перевод операционной модели компании на централизованные процессы и функциональную организацию на основе промышленной платформы интеграции.

Компоненты программы распределяются по разным узлам сети и предлагаются как независимые, слабо связанные, заменяемые сервисы-приложения. Программные комплексы, разработанные в соответствии с часто реализуются как набор веб-сервисов, интегрированных при помощи известных стандартных протоколов (SOAP, WSDL, и т. п.).

Интерфейс компонентов СОА-программы предоставляет инкапсуляцию деталей реализации конкретного компонента (ОС, платформы, языка программирования, вендора, и т. п.) от остальных компонентов. хорошо зарекомендовала себя для построения крупных корпоративных программных приложений. Целый ряд разработчиков и интеграторов предлагают инструменты и решения на основе  (например, платформы IBM WebSphere, Oracle/BEA Aqualogic, Microsoft Windows Communication Foundation, SAP NetWeaver, ИВК Юпитер, TIBCO, Diasoft).

Цели

Для крупных информационных систем, уровня предприятия, и выше:

  • сокращение издержек при разработке приложений, за счёт упорядочивания процесса разработки;
  • инвариантность к предметной области;
  • снижение затрат на реализацию программных средств моделирования сервисов;
  • независимость от используемых платформ, инструментов, языков разработки;
  • повышение масштабируемости создаваемых систем;
  • улучшение управляемости создаваемых систем.

Принципы CОА

  • архитектура не ориентирована на конкретную технологию;
  • инвариантность программных средств системы к набору аппаратных средств;
  • независимость организации системы от применяемых языков программирования;
  • использование сервисов,  независимых от конкретных приложений,  с едиными интерфейсами доступа к ним;
  • организация сервисов как слабо-связанных компонентов для построения систем.