IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  WebSphere  >

Продвинутые приемы и шаблоны для разработки клиентов бизнес-процессов

developerWorks
Опции документа

Опции документа, требующие включения JavaScript, не отображаются

Обсудить


Выскажите мнение об этой странице

Помогите нам улучшить содержание


Уровень сложности: сложный

Сандро Шведлер, консультант по ИТ, IBM

02.10.2009

Эта статья познакомит вас с технологиями и шаблонами, которые можно использовать при разработке персонализированных пользовательских интерфейсов для бизнес-процессов. Хотя в данной статье в качестве обработчика процессов используется IBM® WebSphere® Process Server, большинство описанных подходов и механизмов для создания клиентских приложений можно использовать и для других обработчиков процессов, например, IBM Lotus Workflow® и SAP Business Workflow. Основное внимание в статье уделяется продвинутым приемам разработки в WebSphere Portlet Factory, WebSphere Portal и WebSphere Process Server, а подробные инструкции не приводятся. Для получения дополнительной информации обратитесь к разделу Ресурсы в конце статьи.

Введение

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



В начало


Взаимодействие человека и процесса

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

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

Если сотрудник работает в основном с клиентом электронной почты, например, IBM IBM® Lotus Notes®, то обработчик процессов для организации общения с пользователем может отправлять и оценивать сообщения электронной почты.

И, наконец, клиенты корпоративных пользователей, работающие через Web, могут предоставить интуитивно понятный и современный интерфейс процесса с минимальными требованиями к системе клиента. Для этого в WebSphere® Portal предусмотрены динамические пользовательские интерфейсы и агрегирование на стороне пользователя. Кроме того, Portal Factory позволяет ускорить разработку Web-приложений Интернет-порталов без программирования на JavaJava™.



В начало


Обращение к интерфейсу программирования обработчика процессов

Для разработки пользовательского интерфейса в обработчике процессов должны быть соответствующие API, например, для запуска процесса, формирования перечня задач или завершения задачи. В зависимости от обработчика процессов это может быть Web-сервис, Java-интерфейс или специальный интерфейс программирования, такой как DIIOP для Domino или Remote Function Calls (RFC) для систем SAP R/3.

Для реализации этих задач в Process Server есть интерфейс на основе Web-сервисов и объектов Enterprise Java Bean (EJB) (за более подробной информацией об устройстве и архитектуре процессов обратитесь к разделу Ресурсы).


Рисунок 1. IBM WebSphere Process Server представляет интерфейс на основе Web-сервисов и EJB для обеспечения взаимодействия с клиентом

Используя EJB-интерфейс, приложения, работающие в J2EE-контейнере (клиентском), могут обращаться к функциям Process Server (сервер процессов) в J2EE-среде. Для прохождения процедуры авторизации и проверки подлинности контекст защиты передается от контейнера клиента серверу процессов (Process Server).

Интерфейс Web-сервисов представляет более слабосвязанный подход для обращения к операциям Process Server. Хотя он предоставляет только часть набора операций, доступных в EJB-интерфейсе, в нем есть все операции, необходимые для разработки клиента. Для обеспечения безопасности интерфейс Web-сервисов сервера процессов требует наличия аутентификационного заголовка WS-Sec. Это может быть LTPA-маркер или комбинация из имени пользователя и пароля.



В начало


WebSphere Portlet Factory как средство разработки клиента бизнес-процессов

Для разработки клиентов процессов можно использовать целый ряд различных инструментальных средств. В средствах, ориентированных на работу с формами, например, IBM Lotus Forms Designer, есть WYSIWIG-редактор для визуализации создания форм, однако в этом случае требуется больше кодирования со стороны сервера при написании программы - обработчика процессов. В Rational Application Developer есть полный набор модулей оперативной справки и редакторов, необходимых для реализации всего жизненного цикла J2EE-разработки.

WebSphere Portlet Factory (далее именуемый Portlet Factory) реализует подход к разработке Web и portlet-приложений без написания кода и с использованием модулей оперативной справки.

Приложения Portlet Factory основаны на генераторах программного кода, которые называются построителями (builder) (в разделе Ресурсы есть введение в Portlet Factory). Существуют построители для интеграции данных, например, построитель SQL Call или SAP Function Call, и другие построители, ориентированные на интерфейс пользователя, например, View & Form или Dojo Drag Source. Возможность объединения этих построителей, не прибегая к программированию, значительно повышает результативность и производительность труда разработчиков.

Построители для объединения обработчиков процессов

В Portlet Factory есть различные построители для обращения к обработчикам процессов:

  • На основе Lotus Domino (например, Lotus Workflow). Построитель Domino Access применяется для обращения к приложениям потока операций на основе Domino, например, Lotus Workflow.
  • SAP R/3. RFC-интерфейс используется для обращения к таким приложениям, как, например, SAP Business Workflow. В Portlet Factory имеется компоновщик SAP Function Call, который позволяет использовать данный интерфейс более выгодным образом.
  • Интерфейс WebSphereProcess Server. Для обращения к интерфейсу Process Server можно использовать различные построители. Для простой технической интеграции можно воспользоваться построителем Web Services Call или EJB Call.
    В Business Process Integration Extension для WebSphere Portlet Factory содержатся новые ориентированные на результат построители для вызова функций Process Server. В частности, имеется построитель Task Processing для работы над задачами человека (например, инициализация Originating Task или завершение Processing Task) и построитель Human Task Query для создания приложений по перечню задач. Более подробную информацию об этом пакете расширений можно посмотреть в разделе Ресурсы.

Таблица 1. Описание обработчиков процессов и доступных построителей
Обработчик процессов Интерфейс программирования Аутентификация Построители для Portlet Factory
На основе IBM Lotus Domino, например, Lotus Workflow DIIOP LTPA, Имя пользователя/Пароль Domino Data Access
На основе SAP R/3, например, SAP Business Workflow SAP Remote Function Calls (RFC) SAP Logon Ticket, Имя пользователя/Пароль SAP Function Call
IBM Process Server Enterprise Java Beans, Web-сервисы J2EE Security Context, LTPA, Имя пользователя/Пароль Task Processing Action, Human Task Query

Провайдер услуг (Service provider) как уровень абстрагирования для программных интерфейсов обработчика процессов

Стандартным рекомендованным подходом к разработке Portlet Factory является разделение логики пользовательского интерфейса и логики доступа к данным с помощью провайдера услуг. Провайдер услуг – это отдельная модель Portlet Factory, которая предоставляет строго определенный интерфейс для доступа к данным и к бизнес-логике.

В Business Process Integration Extension для WebSphere Portlet Factory есть «готовое к использованию» средство доступа для интерфейса Process Server Web Services. В действительности построитель Task Processing и Human Task Query просто генерируют код для добавления и исполнения этого провайдера услуг.


Рисунок 2. Рекомендуемый подход – разделение логики доступа к данным и пользовательского интерфейса



В начало


Шаблоны пользовательских интерфейсов для разработки клиентов бизнес-процессов

Персонализированные перечни задач для управления задачами

Перечень задач – это приложение, отображающее индивидуальные списки задач, которые должны быть выполнены корпоративным пользователем. Обычно перечень задач отображает стандартную информацию, такую как владелец задачи, дата ее создания и описание.

Для реализации перечня задач в Process Engine должны быть операции для считывания перечня задач и соответствующих атрибутов. Для считывания этих атрибутов в Process Server есть язык запросов, аналогичный языку SQL. С помощью выражений select («выбор»), where («условие») и order by («сортировка»), данный язык “запросов задач” позволяет считывать все задачи или конкретный набор задач, доступных для текущего пользователя.

Эти выражения являются параметрами запросов, доступных в EJB и интерфейсе Web-сервисов сервера Process Server.

При использовании Portlet Factory в качестве инструмента разработки клиента построитель Human Task Query, имеющийся в Business Process Integration Extension для IBM WebSphere Portlet Factory, предоставляет очень удобный способ описания и выполнения запросов задач. Определяя выражения запроса задач, построитель создает итоговую переменную, в которой хранится массив задач, а также команду для занесения результатов запроса задач в эту переменную.


Листинг 1. Пример запроса, отображающего атрибуты задачи. Выражение Select определяет столбцы итогового набора. Выражение Where определяет строки итогового набора.
                
                Пример запроса задач, отображающего атрибуты задачи:
id (номер), name (имя), originator (создатель) и owner (владелец)
для всех задач, находящихся в состоянии готовности.
Select Clause:
DISTINCT TASK.TKIID AS TKIID, TASK.NAME AS TASKNAME, TASK.ORIGINATOR AS ORIGINATOR, 
      TASK.OWNER AS OWNER
Where Clause:
TASK.PRIORITY<5 AND TASK.STATE=TASK.STATE.STATE_READY AND TASK.KIND = 
      TASK.KIND.KIND_PARTICIPATING
			

Отображение бизнес-свойств в перечне задач

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

Язык запросов Process Server позволяет запрашивать такие пользовательские свойства, которые были инициализированы во время выполнения процесса.


Листинг 2. Пример запроса задачи, который отображает стандартные атрибуты задачи и один пользовательский атрибут ‘jobID’.
                
                Пример запроса задач, отображающего атрибуты задачи: id (номер),
name (имя), originator (создатель), owner (владелец) и пользовательский
атрибут “jobID” для всех задач, находящихся в состоянии готовности.
Select Clause:
DISTINCT TASK.TKIID AS TKIID, TASK.NAME AS TASKNAME, TASK.ORIGINATOR AS ORIGINATOR, 
      TASK.OWNER AS OWNER, TASK_CPROP1.STRING_VALUE AS JOB_ID
Where Clause:
TASK.PRIORITY<5 AND TASK.STATE=TASK.STATE.STATE_READY AND TASK.KIND = 
      TASK.KIND.KIND_PARTICIPATING AND TASK_CPROP1.NAME='jobID'

Чтобы инициализировать такой атрибут и задать его значение, разработчик процесса может добавить Snippet Action и воспользоваться методом setActivityCustomProperty HTM API сервера Process Server.

Обработка и завершение задач

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

Линейное завершение

Простым действиям, которым не требуется ввод дополнительной информации от пользователя, перечень задач может предоставлять командные кнопки и меню для завершения задачи. Например, для этапа одобрения в HR-процессе перечень задач может предложить меню с двумя командами: Approve (одобрить) и Deny (отклонить). При использовании Portlet Factory в качестве средства разработки клиента бизнес-процесса можно использовать такие построители, как Contextual Menu и Image Button. Если в перечне задач отображаются задачи разных типов, то и пункты меню могут различаться в зависимости от типа задачи. Для этого построитель Contextual Menu позволяет динамически включать и отключать элементы на основе данных ячейки таблицы. Чтобы динамически спрятать кнопку, можно воспользоваться построителем Visibility Setter.


Рисунок 3. Специальный портлет перечня задач для организации меню для завершения задачи

Параллельное открытие задач в клиенте процессов на основе IBM WebSphere Portal

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

Используя Dynamic User Interface API в WebSphere Portal, это требование можно реализовать путем динамического добавления новых страниц портала в навигационное дерево. На этих динамических страницах могут находиться различные портлеты для завершения задачи. Кроме того, эти страницы могут содержать портлеты, предоставляющие дополнительную информацию или функции. Например, такие «портлеты для поддержки задач» (Task Supporting) могут показывать виджет Google Map или динамический список контактов Sametime, отображающий всех пользователей, принимающих участие в выполнении процесса.

Во встроенном Task List (перечень задач) WebSphere Portal данный подход применяется для объединения задач на основе Process Server.


Рисунок 4. Динамические страницы в WebSphere Portal – это временные страницы, которые видны, только пока задача не завершена. В приложении клиента бизнес-процесса временные страницы содержат портлеты задач для выполнения задач человека (human task).


В информационном центре Portal Server предоставлена более подробная информация о том, как можно использовать этот API программно. Если вы хотите применить данную функцию в портлетах на основе Portlet Factory, можно воспользоваться построителем Dynamic Portal Page Processing из упомянутого выше пакета Business Process Integration Extension.

В построителе есть два разных режима. Если вы хотите создавать новые динамические страницы, выберите “Launch Dynamic Portal Page”, чтобы задать свойства новой динамической страницы, а также ввести свойства, которые будут переданы новой странице. Например, портлету задачи необходим идентификатор (id) задачи, над которой следует работать. Этот идентификатор задачи может быть передан временной странице в качестве свойства страницы.


Рисунок 5. Интерфейс построителя Dynamic Portal Page Processing

Кроме Action Type, в построителе предусмотрены следующие входные данные:


Таблица 2. Входные данные построителя
Входные данные построителя Описание
Unique Name of Dynamic Page Уникальный идентификатор шаблона динамической страницы. С помощью средств администрирования портала, можно задать уникальный идентификатор странице портала, которая будет выступать в роли шаблона для динамических страниц.
Unique Name of Extension Node Уникальный идентификатор страницы портала, которая работает с контейнером для динамической страницы. Новая страница будет потомком этого контейнера. Замечание: чтобы страница запускалась как Extension Node, у нее должно быть соответствующее разрешение. Для этого запустите соответствующую задачу конфигурирования, например, в WebSphere Portal 6.1:
wp_profile_path$/ConfigEngine.bat action-enable-page-as-extension-node-wp.dynamicui.config -DPageUniqueName=wps.dynamicUIContainter -DPortalAdminPwd=wpadmin -DPortalAdminId=wpadmin (Для получения дополнительных данных обратитесь к ссылке на информационный центр Portal в разделе Ресурсы.)
Title of Dynamic Page Название создаваемой страницы.
Dynamic Page Properties Перечень свойств, которые должны быть переданы новой странице, например, идентификатор выбранной задачи, над которой должен работать портлет задач.
Dynamic Page Instance Identifier Эти входные данные не являются обязательными и описывают копию динамической страницы. Изменяя их, вы можете задать, каким образом будет идентифицироваться копия страницы в том случае, если уже открытая страница будет запущена еще раз.

Для случая, когда портлет работает на динамических страницах портала и должен получать свойства, в построителе предусмотрен режим “Initialize Properties from Dynamic Page”. В этом режиме Portlet Factory просто перечисляет названия тех свойств, которые должны быть получены. Для каждого свойства построитель создает переменную, которую можно использовать в качестве входной для других вызовов построителя.

Перенаправление на обобщенный пользовательский интерфейс

Очень часто обработчик процессов уже содержит типовой пользовательский интерфейс для управления процессами и задачами, например, Domino Web Access для Domino-процессов или SAP Web Dynpro для SAP-процессов. Иногда такой уже существующий интерфейс необходимо использовать повторно. В этом случае перечень задач может перенаправлять этот интерфейс пользователю при запуске задачи. Для реализации такого подхода обработчик процессов должен предоставить динамический URL или URL должен создаваться автоматически.

Заключение

Для эффективных бизнес-процессов нужен интуитивно понятный пользовательский интерфейс. Качественное проектирование и разработка пользовательского интерфейса делает бизнес-процесс более понятным и простым для восприятия. Такой пользовательских интерфейс легко создать с помощью современных средств разработки и стандартных интерфейсов программирования. Данная статья познакомила вас с технологиями и шаблонами, которые можно использовать при разработке индивидуальных пользовательских интерфейсов для бизнес-процессов с помощью WebSphere Process Server.



Ресурсы

Научиться

Получить продукты и технологии
  • Загрузите Business Process Integration Extension для IBM WebSphere Portlet Factory (EN)
    Данный пакет ускоряет, упрощает и делает доступной широкому кругу пользователей разработку пользовательских интерфейсов (UI), работающих на базе Web или порталов, для задач человека в области решений Business Process Management (BPM). . (EN)

Обсудить


Об авторе

Сандро Шведлер (Sandro Schwedler) работает ИТ-специалистом в подразделении IBM Technical Sales в Германии. Он специализируется в разработке межплатформенного программного обеспечения, XML, портлетов и J2EE. Он получил ученую степень в области ИТ в Беруфсакадеми г. Штутгарт, Германия. Связаться с Сандро можно по адресу sandro.schwedler@de.ibm.com.




Выскажите мнение об этой странице


Пожалуйста, найдите минутку и заполните форму, чтобы повысить уровень сервиса.



 


 


 


Поделиться этой статьей:

забобрить забобрить memori сохранить в memori




В начало


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

IBM обладает всеми авторскими правами касательно информации, расположенной на developerWorks. Использование информации приведенной на этом ресурсе без явного письменного разрешения от IBM или первоначального автора запрещены. Если Вы желаете использовать информацию с developerWorks, пожалуйста воспользуйтесь регистрационной формой для того, чтобы связаться с нами запрос на использование материалов developerWorks Россия.
    IBM в России Конфиденциальность Контакты