Workflow и SOA - точки пересечения найдены.
Как можно постоить Workflow на веб-сервисах.
Один из основных принципов архитектуры SOA – взаимодействие сервисов между собой, что подразумевает их связку. Workflow тоже «выливается» в связку бизнес-блоков и элементов. У меня возник вопрос – а можно ли построить Workflow, используя принципы SOA?
Одно из решений я нашел. Правда, пока оно применимо только в отношении веб-сервисов и находится в стадии беты. Но решение интересное.
Известно, что главный минус использования веб-сервисов – это сложность при организации взаимодействия между ними. Многие существующие на сегодняшний день веб-сервисы выдают информацию в формате RSS, могут обрабатывать и принимать потоки данных. Как правило, практика связывания веб-сервисов предполагает построение mashup – гибридных сервисов, которые часть задач по взаимодействию и преобразованию решают самостоятельно, часть – делегируют готовым решениям.
Компания Yahoo решила упростить процесс создания mashup-ов, предоставив свой новый сервис Pipes. Как следует из описания сервиса, «чтобы соединить два или более веб-сервисов между собой, уже не нужно обладать квалификацией программиста». Сервис помогает преобразовывать потоки информации, соединяя между собой различные сервисы. Таким образом, процесс создания mashup-ов превращается в рисование схемы взаимодействия – а это уже напоминает Workflow. =)
Вот так в этом сервисе выглядит пример поиска документов в системе DIRECTUM (примерная схема взаимодействия). Имеются несколько организаций, использующие систему DIRECTUM. У каждой из них установлен веб-сервис поиска по документам. Тогда поиск по документам (например, по названию и(или) дате последнего изменения) в распределенной среде может выглядеть так:
Вот так этот pipe будет выглядеть для пользователя:
В результате выполнения pipe вернет информацию в следующем виде:
Как видно, результаты работы pipe – это RSS-поток. Соответственно, можно сохранять отдельные pipe и объединять их в новые.
На самом деле параметры pipe можно задавать не только интерактивно, но и через URL, позволяя полностью автоматизировать процесс.
Комментарии 3
2Ильдар Рахимов: До более-менее достойного Workflow Yahoo Pipes не достает как минимум одной вещи - это возможность добавлять свои компоненты с произвольным функционалом. Как только такая вещь появится, можно будет уже говорить о неком его подобии.
Однако одна из основных проблем веб-сервисов вообще и Pipes в частности - это проблемы аутентификации и авторизации для получения конфиденциальных данных. Пока хороших решений данной проблемы я не вижу...