Появление архитектуры, ориентированной на сервисы, является следствием новых задач и потребностей, возникающих при создании и эксплуатации современных информационных систем:
- оперативного реагирования на изменение условий ведения бизнеса и быстрой адаптации под новые бизнес-задачи;
- оптимизации управления бизнес-процессами;
- эффективного обеспечения внешних взаимодействий.
Можно выделить несколько основных принципов сервис-ориентированной информационной системы.
- Система строится на основе набора сервисов – независимых компонентов с опубликованными стандартизированными интерфейсами. Внутренняя реализация сервисов может быть выполнена на любом языке программирования, платформе, операционной системе. Сервисы взаимодействуют между собой и вспомогательными службами посредством открытых стандартов.
- Каждый сервис информационной системы реализует отдельную функцию, которая является логически обособленной, повторяющейся задачей.
- Сервисы могут быть реализованы в независимости от других элементов системы, необходимо только знание интерфейсов других сервисов.
SOA – это парадигма, предназначенная для проектирования и разработки приложений как набора взаимосвязанных сервисов в вычислительной среде; модульный подход к разработке программного обеспечения, основанный на использовании распределенных слабо связанных заменяемых компонентов, оснащенных интерфейсами для взаимодействия по стандартизированным протоколам. В основе SOA лежит понятие сервисов, являющихся базовыми элементами для построения бизнес-приложений и обеспечения взаимодействия между ними. В архитектуре SOA приложение рассматривается как сервис, который можно найти и далее получить доступ к нему через локальную сеть или Интернет. Приложение может реализовать определенную функцию или набор функций как самостоятельно, так и обращением к другим сервисам. При этом данное приложение может быть доступно сторонним пользователям в качестве сервиса. Сервисы являются автономными, но для того чтобы их можно было найти и использовать, они снабжены соответствующими интерфейсами.
Идея сервисов в информационных системах имеет довольно длинную историю. Хорошо известны следующие подходы:
- Java RMI (Java Remote Method Invocation);
- CORBA(Common Object Request Broker Architecture);
- DCE (Distributed Computing Environment);
- Microsoft DCOM (Distributed Component Object Model).
Следует отметить, что SOA имеет одно существенное отличие от вышеперечисленных, а именно – наивысшую степень абстракции понятия сервиса.
Наиболее распространенными среди сервисных архитектур являются:
- web-ориентированные;
- композитные сервис-ориентированные;
- событийно упрявляемые.
Web-Сервис – это приложение, доступное через Интернет и предоставляющее определенные услуги, форма которых не зависит от поставщика (так как используются универсальные форматы данных и платформы функционирования). Существует несколько различных технологий, поддерживающих концепцию распределенных объектных web-систем. К ним относятся технологии EJB, CORBA и DCOM. В этом случае между серверами и клиентами нет различий и систему можно представить как набор взаимодействующих объектов, местоположение которых не имеет особого значения. Главным отличием от многоуровневых клиент–серверных архитектур здесь является то, между поставщиками сервисов и их потребителями не существует различий.
Отличительные особенности современных прикладных веб-систем связаны с широким использованием технологий, интенсивное развитие и внедрение которых происходило в последнее десятилетие (так называемые принципы Веб 2.0):
- новые форматы информационного обмена данными между клиентом и сервером на основе протокола HTTP – WMS, WFS, XML, JSON, и проч.;
- асинхронное взаимодействие клиента и сервера по технологии AJAX – подход к построению интерфейсов, при котором веб-страница, не перезагружаясь, асинхронно загружает нужные данные;
- веб-синдикация – механизм распространения информации, автоматического встраивания информационного контента в заданные разделы веб-приложения или на веб-страницы;
- мэшапы – веб-сервисы, объединяющие данные из нескольких источников;
- теги и таксономия – способ классификации информации, организации доступа к со держанию через автоматически формируемые категории / разделы в информационной системе;
- социализация – возможность создания индивидуальных настроек веб-приложения, создание персонального раздела (личные файлы, изображения, мультимедиа и проч.).
Сервис-ориентированная архитектура – парадигма, основанная на превращении функций и компонентов информационной системы в «услуги», к которым можно обратиться через стандартный интерфейс независимо от местоположения или технической составляющей функции или части данных. SOA отвечает следующим характеристикам:
- позволяет потребителям услуг и поставщикам взаимодействовать независимо от технической составляющей или от местоположения;
- позволяет потребителям идентифицировать и обнаруживать услуги, которыми они интересуются, с минимальным уровнем взаимодействия (являющимся необходимым) между потребителем и поставщиком этих услуг;
- поддерживает взаимодействия, в которых определенная система запрашивает часть информации или выполнение функции от определенного поставщика услуги и этот поставщик впоследствии посылает ответ, обеспечивающий работу системы;
- поддерживает синхронное обращение и выполнение услуг.
Событийно-управляемая архитектура – парадигма, основанная на использовании событий как пусковых механизмов, которые инициируют немедленную доставку сообщения, информирующего многочисленных получателей о событии.
Существуют противоречивые мнения по поводу развития сервис-ориентированных и событийно-управляемых архитектур. Одни аналитики считают, что событийно-управляемые архитектуры придут на смену сервис-ориентированным, другие полагают, что предстоит их интеграция, которая позволит использовать преимущества каждого из подходов.
Одним из факторов, обеспечивающих активное развитие SOA, является активная деятельность специальных групп и комитетов по разработке стандартов, формализующих протоколы взаимодействия и интерфейсы, необходимые для обеспечения интероперабельности, безопасности, мобильности (возможности переноса) и динамической интеграции информационных систем.
Среди основных направлений работы в области развития стандартов следует выделить ряд магистральных направлений:
- Cоздание на базе Web services и XML технологии UDDI (Universal Description, Discovery and Integration). UDDI обеспечивает создание реестров организаций и сервисов, которые являются интегральными компонентами сервис-ориентированной архитектуры любой информационной среды.
- Cоздание на базе технологии UDDI глобального регистра UDDI (Business Registry, UBR). UDDI Business Registry является глобальным общедоступным реестром организаций и их сервисов. Он рассматривается в качестве ключевого компонента единой информационной среды.
- Разработка спецификаций электронного бизнеса ebXML. Группа стандартов ebXML строится на основе модульной архитектуры и с учетом мирового опыта применения стандартов EDI и web-services. ebXML обеспечивает ряд компонентов технической инфраструктуры.
- Разработка и продвижение современных стандартов электронного правительства (e-Government) для обеспечения взаимодействия государственных структур друг с другом, с коммерческими компаниями, с общественными организациями и с рядовыми гражданами.
Применение на практике основных принципов SOA повышает эффективность процесса разработки и внедрения приложений, обеспечивает повышение производительности и сокращение времени реализации, более быструю и менее дорогую интеграцию приложений.