Компания делится с разработчиками секретами построения сервис-ориентированных архитектур

Распределенные приложения, различные компоненты которых располагаются на серверах сети и взаимодействуют между собой по стандартным протоколам, становятся все популярнее. Наиболее перспективной технологией для их создания является сервис-ориентированная архитектура (Service-Oriented Architecture, SOA), которая базируется на XML. При этом поиск и применение нужных сервисов обеспечивается с помощью описания на языке WSDL, которое хранится в UDDI-репозитарии доступных сервисов. Подобная технология создания распределенных приложений известна уже давно, но только сейчас разработчики платформ начали реализовывать необходимые для ее внедрения компоненты.

Поддержку SOA в своих продуктах реализовала, в частности, компания Oracle. Этой теме был посвящен проведенный ею семинар для разработчиков.

Основную сложность при создании SOA-приложений представляют подготовка всех описаний, работа с репозитариями UDDI и использование внешних Web-сервисов в приложениях. Собственно, автоматизация каждой из этих задач и обеспечивает поддержку SOA в технологических платформах. В частности, в программном продукте Oracle, который называется JDeveloper, реализована система автоматической генерации WSDL-описания Web-сервиса по исходному тексту Java-класса. Также автоматизирована процедура развертывания созданной службы, которая заключается в том, чтобы поместить компонент на сервере приложений и внести ссылки на него в необходимые UDDI-репозитарии. Кроме того, JDeveloper по WSDL-описанию генерирует Java-код, который позволяет использовать в приложении внешний Web-сервис, автоматически выполняя значительную часть работы по интеграции частей распределенного приложения.

Впрочем, SOA позволяет создавать такие распределенные приложения, компоненты которых могут быть написаны на наиболее подходящем в каждом конкретном случае языке программирования. Поэтому Oracle не ограничилась поддержкой Java в своих средствах разработки и серверах приложений, а реализовала аналогичные возможности и для своего языка программирования PL/SQL, на котором определяются хранимые процедуры баз данных. Теперь средства разработки баз данных позволяют из процедуры, реализованной на PL/SQL, сделать полноценный Web-сервис — для этого в Oracle разработан генератор WSDL-описаний и автоматизирована процедура регистрации его в UDDI-репозитарии. Таким образом, Oracle позволяет превратить все приложения, написанные для своей базы данных, в Web-сервисы.

Однако на Java и PL/SQL разрабатываются только компоненты. Чтобы объединить их в единую систему, необходим простой инструмент разработки приложений из подготовленных ранее компонентов. В частности, такими возможностями обладает принятый недавно организацией OASIS стандарт на бизнес-процессы, который называется BPEL. С его помощью компоненты Web-сервисов из UDDI-репозитария можно ввести в бизнес-процесс, который будет вызывать Web-сервисы в нужной последовательности. При этом проектирование BPEL-сценария можно выполнить с помощью специализированных визуальных средств разработки бизнес-процессов, причем для этого не нужны навыки программирования. Таким образом, даже не знающий программирования менеджер может самостоятельно из отдельных компонентов собирать необходимые ему сценарии работы с корпоративными приложениями. Oracle поддерживает BPEL в своей платформе для разработки Oracle Developer Framework.

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

В качестве примера подобной межкорпоративной системы была приведена разработка компании UnitSpace для рынка книготорговли. Он подвержен быстрым изменениям; при этом торговцы хотят знать о планах издательств на публикацию тех или иных произведений, а издательства — об остатках на складах торговцев. Такая интеграция позволяет всем участникам минимизировать свои издержки и более точно удовлетворить спрос клиентов. Разработанная UnitSpace система etradebook, которая является реализацией Web-сервисов на основе Oracle AS, позволяет издательствам и торговым домам организовывать взаимодействие их информационных систем. Со временем на этот сервер можно будет помещать BPEL-сценарии, которые упростят разработку новых схем взаимодействия участников книжного рынка. В процессе реализации проекта уменьшилось время реакции на заказ и появился канал для обмена необходимой информацией между партнерами. Сейчас этот проект находится в стадии опытной эксплуатации, а сама UnitSpace уже инициировала еще два проекта с государственными структурами: по разработке ресурса деловой информации региона для «Электронной России» и среды электронного взаимодействия для правительства Москвы.