Oracle UCM + BPM: теория

Источник: ashmakov
Антон Шмаков

Автор: Антон Шмаков

Системы управления бизнес процессами (Business Process Management) становятся все более и более популярными в последнее время. Вообще говоря, BPM берет свое начало от технологии Workflow, которая в первую очередь была направлена на автоматизацию работы некого процесса. Она направляла потоки операций (собственно перевод слова workflow) в соотвествии с определенными правилами и законами. Системы BPM выполняют более сложные задачи, в первую очередь они моделируют реальные бизнес процессы предприятия, а во-вторую они являются интеграционной платформой, которая объединяет всех участников процесса, неважно люди это или системы. В целом получается трехзвенная модель: процессы - люди - системы. Причем процессы с участием людей обладают целым рядом особенностей таких как:

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

С другой стороны процессы без участия людей отличаются следующими особенностями:

  • Большие объемы данных;
  • Применение жестких стандартов и правил;
  • Автоматическая оработка событий;
  • Постоянный контроль и верификация шагов;
  • Высока производительность;
  • и т.д.

Среди всех бизнес процессов существует целый ряд процессов, которые связаны с контентом, такие процессы будем называть контент-ориентированными бизнес-процессами. Таким образом дадим определение контент-ориентированному бизнес-процессу - это процесс, для которого выполняется хотя бы одно из следующих условий:

  • Контент является входом процесса;
  • Контент определяет ход процесса;
  • Контент является результатом процесса.

По моему мнению, все контент-ориентированные бизнес-процессы можно разделить на 4 группы (тут можно поспорить конечно :-) ):

  • Жизненный цикл контента;
  • Транзакционный контент;
  • Коллективная работа c контентом;
  • Подпроцесс большого корпоративного бизнес-процесса;

Компания Oracle предлагает целую линейку продуктов для работы с контентом - Enterprise Content Management. Основным продуктом линейки является Oracle Universal Content Management (UCM). В составе решения есть встроенный механизм Workflow, который полностью ориентирован на автоматизацию потока операций, связанных с жизненным циклом контента таких как: регистрация, классификация, эскалация, продвижения по жизненному циклу, совместная работа, редакционные правки, утверждения, согласования и контроль версий. Особенность заключается в том, что механизм UCM Workflow достаточно прост и легок. Технологически он построен на внутреннем языке контент-сервера - IDoc Script. При необходимости интеграции некого процесса с внешними системами приходится программировать. С другой стороны вместе c UCM поставляется BPEL Process Manager (урезанная лицензия, которая позволяет использовать его только совместно с UCM) и специальный компонент UCM-BPEL Component, который позволяет вызывать BPEL процессы из стандартного UCM Workflow. В целом BPEL PM - это мощная технологичная промышленная платформа, позволяющая реализовывать бизнес-процессы любой сложности. Но его основная проблема - необходимость программирования и глубоких знаний в XML и Java.  BPEL - это продукт для сервис-ориентированной среды, основной задачей которого является оркестровка Web-сервисами и интеграция приложений. В его арсенале конечно есть возможность включения человека в бизнес процесс по средством механизма Human Task"ов, но возможности ограничены. Существует еще стандарт BPEL4People - это как раз попытка добавить в стандарт BPEL недостающих элементов, связанных с участием людей в бизнес процессах. Но это пока будущее.

Кроме стандартного механизма Workflow  и BPEL в UCM можно использовать еще механизм BPM (ALBPM). BPM ориентирован именно на бизнес-процессы с участием людей. Он работает на более высоком уровне, нежели BPEL, тем самым позволяя построить общую картину. Также надо отметить, что BPM - это не просто движок, а целый подход к моделированию, автоматизации, управлению и оптимизации корпоративных бизнес-процессов. Причем он также включает в себя и BPEL - это технологическую платформу для интеграции. Ниже представлена функциональная архитектура BPM:

bpm_components

Кроме того BPM предоставляет целый набор решений для построения бизнес-процессов с участием людей:

bpm_humantask

Готовых средств для интеграции UCM и BPM на сегодняшний день пока нет. Но настроить такую интеграцию достаточно легко и просто.

Интеграция UCM и BPM бывает в двух направлениях:

1. Из UCM вызывается BPM процесс.

  • В BPM Studio создается процесс, формы, объекты, атрибуты, роли, участники и т.д. Далее для вызова этого процесса из внешних приложений необходимо создать интерфейс процесса (Generate Process Interface), т.е. по сути создать набор Java-классов, которые являются прокси классами для указанного процесса (Web-сервиса).  Из этих классов необходимо сформировать библиотеку.
  • В UCM необходимо создать специальный компонент для работы с BPM-процессом. К созданному новому компоненту необходимо подключить Java-библиотеки: activation.jar, appserv-ws.jar, javaee.jar и созданную на предыдущем шаге прокси-библиотеку. После этого необходимо создать сервис в компоненте, который будем реализовываться на Java. Написать на Java вызов BPM-процесса с передачей параметров и указать его для сервиса.
  • Создать в UCM workflow и на первом шаге вызывать созданный ранее сервис.

2. Из BPM вызываются сервисы UCM

  • BPM поддерживает кучу различных внешних интерфейсов:
    • CORBA Service
    • Enterprise Java Bean
    • J2EE Applcation Server
    • JMS Messaging Service
    • JMX Service
    • JNDI Directory Server
    • JPD
    • Java Class Library
    • Mail Incoming Service
    • Mail Outgoing Service
    • Microsoft .NET Service
    • Microsoft COM Service
    • Oracle Service Bus
    • SAP Service
    • SQL Database
    • Server Configuration
    • Web Service
  • UCM поддерживает (наружу) также целый ряд интерфейсов:
    • Web Service
    • J2EE
    • Enterprise Java Bean
    • Apache Axis
    • Java
    • и т.д.
  • Собственно необходимо выбрать пересечение технологий и настроить интеграцию. Самая простая  - это интеграция с помощью Web-сервисов. Для этого надо зарегистрировать в BPM: Server Configuration - адрес доступа к серверу UCM (http://server:80) с указанием логина и пароля, затем Web-сервисы, которые смотрят наружу и внутрь. Например: для Web-сервиса CheckInService надо указать транспорт (HTTP), конфигурацию сервера, созданную на предыдущем шаге и путь к сервису (/idc/idcplg). Также достаточно просто настроить интеграцию с помощью Java Class Library. В состав UCM входит Content Integration Suite - это набор Java библиотек для интеграции. Он состоит из двух частей: собственно Content Integration Suite Client (CIS) - для интеграции (J2EE) с объектной моделью и enterprise бинами и Remote IntraDoc Client (RIDC) - для удаленного вызова сервисов контент-сервера посредством HTTP или Socket транспорта. Самое простое подключить RIDC в BPM проект и вызывать методы RIDC в BPM процессах.

В интеграции остаются не решенными два вопроса:

  • Передача параметров и объектов - решается достаточно просто, из UCM в BPM передается идентификатор объекта (dID, dDocName), затем BPM открывает этот объект посредствов выбранного вами механизма (Web-сервисы, CIS, RIDC). BPM процесс изменяет атрибуты объектов и вызывает сервисы.
  • Пользователи и роли - эта проблема сложнее, поскольку либо надо настраивать UCM и BPM на один внешний каталог пользователей, либо синхронизовать два каталога, либо настраивать алгоритм динамического соотвествия пользователей и ролей (например на основе специальных атрибутов из UCM).

В скором времени появяться примеры указанных интеграций.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=21162