Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

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

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Управление версиями и динамичность: Часть 1. Создание нескольких версий бизнес-процесса

Марк Фасбиндер, ИТ-консультант, IBM
Марк Фасбиндер, специалист по WebSphere® Business Modeler, отвечает на десять самых распространенных вопросов по данному продукту.

Описание:  В первой части данной серии статей рассказывается, как использовать WebSphere Process Server V6.1 для создания, развертывания и тестирования нескольких версий бизнес-процесса.

Больше статей из этой серии

Дата:  30.10.2009
Уровень сложности:  средний
Активность:  1270 просмотров
Комментарии:  


Обзор

IBM® WebSphere® Process Server V6.1 поддерживает управление версиями бизнес-процесса во время исполнения, машины бизнес-состояний и задания для пользователя (human tasks). В данной статье рассказывается, как одновременно развернуть на одной машине несколько версий процесса. Вы узнаете, как создать несколько версий бизнес-процесса, одновременно развернуть их на сервере и осуществить тестирование всех версий процесса.

Основы управления версиями

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

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

  • Свойства. Бизнес-артефакт, поддерживающий управление версиями во время исполнения, такой как бизнес-процесс, использует несколько свойств для самоидентификации. Это название артефакта, используемое пространство имен, спецификации интерфейса, наборы корреляции (correlation sets) и дата начала работы (valid-from date). Если первые четыре свойства артефактов одинаковы, а дата начала работы разная, они будут считаться разными версиями.

    Дата начала работы используется также для определения, когда артефакт начнет "жить" при использовании позднего связывания. Например, если текущая дата - 2 августа, а время начала работы артефакта - 10 августа, пока что будет использоваться более старая версия. При наступлении даты и времени начала работы эта версия становится правомерной и она будет запущена вместо более старой версии.

  • Раннее связывание. Раннее связывание гарантирует, что всегда используется определенная версия артефакта. Раннее связывание поддерживается через SCA-соединения, а также интерфейсы Business Process Choreographer (BPC) API.
  • Позднее связывание. Позднее связывание гарантирует, что всегда используется текущая версия артефакта. Позднее связывание поддерживается через партнерские ссылки в процессе (для артефактов, которые вызывает процесс), а также через интерфейсы BPC API.

Пример процесса

Теперь мы готовы исследовать пример процесса.

Импорт примера

Прежде всего, импортируйте файл обмена (interchange file) проекта VersioningSample.zip в пустую рабочую область.

  1. В WebSphere Integration Developer щелкните правой кнопкой мыши на пустом месте панели Business Integration, см. рисунок 1.


    Рисунок 1. Диалоговое окно Import
    Рисунок 1. Диалоговое окно Import

  2. Нажмите кнопку Import.
  3. Выберите Project Interchange, а затем нажмите кнопку Next.
  4. Нажмите кнопку Browse и найдите файл VersioningSample.zip. Выберите его и нажмите кнопку Open.
  5. Отметьте флажок перед Process_Module1.
  6. Нажмите кнопку Finish для выполнения операции импорт.

Исследование примера

При ближайшем рассмотрении вы увидите, что RequestProcess (используемый в данной статье пример процесса) по своей природе является очень простым бизнес-процессом. Он имеет два BPEL-действия invoke - Step 1 и Step 2 (см. рисунок 2).


Рисунок 2. RequestProcess
Рисунок 2. RequestProcess

В закладке details свойств процесса этот процесс отмечен как долго работающий. Дата начала работы установлена в 2 августа, 2007, 12:00:00. В примере эта дата используется в качестве версии процесса (см. рисунок 3).


Рисунок 3. Настройка процесса
Рисунок 3. Настройка процесса

1-й шаг (Step 1) реализован в виде Java™-компонента. Код просто возвращает входные данные как выходные и записывает сообщение в консоль для указания того, что выполняется этот шаг (см. листинг 1).


Листинг 1. Java-код для шага Step 1
/**
 * Метод сгенерирован для поддержки реализации операции 
   "doStep1", определенной для типа порта WSDL 
 * под названием "interface.Step1_Interface".
 * 
 * Присутствие commonj.sdo.DataObject в качестве типа возврата и/или типа параметра 
 * сообщает о том, что это сложный тип. Дополнительная информация по типам входных,
 * выходных данных и неисправностей приведена в WSDL Definition.
 */

	public DataObject doStep1(DataObject step1Input) {
		System.out.println("Doing step 1....");
		return step1Input;
	}

2-1 шаг (Step 2) реализован как задание для пользователя под названием Step2_HumanTask с командой для персонала 'Everybody'. Процесс будет запускать Step 1 автоматически, затем блокироваться на Step 2, ожидая завершения задания для пользователя. Это будет использоваться при тестировании. Аналогично процессам, версии задания для пользователей тоже управляются на основе даты начала работы. Step2_HumanTask имеет ту же дату начала работы, что и процесс.

Развертывание примера

Если вы этого еще не сделали, запустите экземпляр сервера модульного тестирования WebSphere Process Server, для того чтобы можно было развернуть и протестировать пример.

  1. Выберите закладку Servers.
  2. Щелкните правой кнопкой мыши на WebSphere Process Server V6.1, а затем выберите Add and remove Projects.
  3. Выберите Proccess_Module1App, затем нажмите кнопку Add. Модуль переместится в правую часть экрана.
  4. Нажмите кнопку Finish. Процесс будет развернут на сервере. Подождите, пока не увидите сообщение о начале работы Process_Module1App (см. рисунок 4).


    Рисунок 4. В консоли указывается, что приложение было запущено
    Рисунок 4. В консоли указывается, что приложение было запущено

Запуск экземпляра процесса

Теперь запустим экземпляр процесса.

  1. В закладке Server щелкните правой кнопкой мыши на WebSphere Process Server 6.1, нажмите кнопку Launch, а затем Business Process Choreographer Explorer. При появлении предупреждения системы безопасности нажмите кнопку OK.
  2. Для входа в систему введите имя пользователя admin и пароль admin.
  3. Нажмите My Process Templates. Вы увидите несколько сообщений в консоли, а затем экран обновится. Обратите внимание на Valid From date и на то, что этот процесс является долго работающим. Показываемое время может отличаться, поскольку время в WebSphere Integration Developer - это UTC-время, тогда как отображаемое во время исполнения - это время вашего часового пояса.
  4. Отметьте флажок для RequestProcess, как показано на рисунке 5, а затем нажмите кнопку Start Instance.


    Рисунок 5. Запуск экземпляра процесса
    Рисунок 5. Запуск экземпляра процесса

  5. В экране process input message введите любые значения имени, адреса электронной почты и количества. Вы можете ввести любое имя процесса, либо система сама сгенерирует его. Для данного примера введите Version1 в качестве имени процесса. Нажмите кнопку Submit для запуска процесса.
  6. В консоли вы должны увидеть сообщение из Java-компонента "Doing step 1…". Теперь процесс ждет выполнения задания для пользователя (см. рисунок 6).


    Рисунок 6. Сообщения консоли
    Рисунок 6. Сообщения консоли

  7. Проверьте задание для пользователя, нажав My To-dos под Task Instances. Экран обновится, и вы увидите ожидающее задание для пользователя.
  8. В области Process Instances нажмите кнопку Started By Me для просмотра информации о выполняющемся процессе. Именем процесса является Version1, как вы и указали (см. рисунок 7).


    Рисунок 7. Окно Process Instances Started By Me
    Рисунок 7. Окно Process Instances Started By Me

Выполните задание для пользователя, чтобы завершить процесс.

  1. Выберите My To-dos.
  2. Отметьте флажок для Step2_HumanTask и нажмите кнопку Work On.
  3. Нажмите кнопку Complete.

Процесс завершен. Можно вернуться назад к просмотру окна Process Instances Started By Me, чтобы убедиться в том, что ничего сейчас не выполняется.

Затем отмените развертывание модуля.

  1. В закладке server щелкните правой кнопкой мыши на WebSphere Process Server V6.0.
  2. Выберите Add and remove projects.
  3. Выберите Remove all и нажмите кнопку Finish.

Теперь сервер чист.

Создание новой версии процесса

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

Копирование и рефакторинг модуля

WebSphere Integration Developer V6.0.2 не может напрямую копировать модуль в рабочей области. При использовании версии V6.0.2 можно воспользоваться приведенными ниже инструкциями. При использовании версии V6.1 или выше можно просто выбрать ваш проект, выбрать Copy, щелкнуть кнопкой мыши на пустом месте дерева проектов и выбрать Paste. Будет запрошено новое имя. Затем можно перейти к разделу ниже для обновления переименованного модуля. Для копирования и рефакторинга модуля с использованием WebSphere Integration Developer V6.0.2 необходимо экспортировать, переименовать и импортировать оригинал снова:

  1. Щелкните правой кнопкой мыши на Process_Module1 и выберите Export.
  2. Выберите Project Interchange, а затем нажмите кнопку Next.
  3. Отметьте флажок только для Process_Module1. Остальные три папки сгенерированы, и их не нужно включать в экспорт.
  4. Нажмите кнопку Browse, а затем введите путь и имя экспортируемого ZIP-файла. Нажмите кнопку Save.
  5. Нажмите кнопку Finish.

Для рефакторинга проекта с новым именем:

  1. Щелкните правой кнопкой мыши на Process_Module1, выберите Refactor, а затем Rename.
  2. Укажите новое имя Process_Module2, убедитесь в том, что отмечен флажок Update references, а затем нажмите кнопку Preview.
  3. Диалоговое окно preview сообщит о том, что нечего просматривать. Нажмите кнопку OK.
  4. Теперь проект будет появляться как Process_Module2.

Для обновления переименованного модуля:

  1. Выберите Process_Module2 => Business Logic => Processes и измените процесс. Выполните двойной щелчок левой кнопкой мыши на RequestProcess для его открытия.
  2. В закладке properties для процесса обновите дату начала работы и укажите текущую дату и время дня, меньшее текущего. Если выбрать более позднее время, процесс нельзя будет запустить до наступления этого времени.
  3. Сохраните изменения и закройте редактор процессов.
  4. Выберите Process_Module2 => Business Logic => Java. Выполните двойной щелчок левой кнопкой мыши, чтобы открыть Java-компонент Component1Impl.
  5. Измените текст на "Doing step 1 in Module 2".
  6. Сохраните изменения и закройте Java-редактор.
  7. Выберите Business Logic => Human Tasks => Step2_HumanTask in Process_Module2, чтобы открыть задание для пользователя. Обновите дату начала работы в соответствии с шагом 6.
  8. Сохраните изменения и закройте редактор заданий для пользователя.

Важно! При использовании WebSphere Integration Developer V6.1 перейдите сразу к разделу "Развертывание обновленной версии".

Затем импортируйте оригинальный Project Interchange обратно в WebSphere Integration Developer:

  1. Щелкните правой кнопкой мыши на пустом пространстве под папкой Process_Module1 и выберите Import. Выберите Project Interchange и нажмите кнопку Next.
  2. Нажмите кнопку Browse и найдите файл, который только что экспортировали. Выберите файл и нажмите кнопку Open.
  3. Отметьте флажок для Process_Module1 и нажмите кнопку Finish.
  4. Чтобы гарантировать, что все сделано правильно, выберите ниспадающее меню Project и нажмите Clean для перекомпоновки. Нажмите кнопку OK. Перекомпоновка проекта займет некоторое время.

Теперь обе версии модуля находятся в вашей рабочей области.

Развертывание обновленной версии

Для развертывания обновленной версии:

  1. В закладке servers щелкните правой кнопкой мыши на WebSphere Process Server V6.1 и выберите Add and remove projects.
  2. Нажмите кнопку Add All, а затем Finish.
  3. Наблюдайте за консолью. Вы должны увидеть, что обе версии модуля process запущены.

Тестирование двух версий

Business Process Choreographer Explorer использует позднее связывание. Он будет запускать экземпляры только текущей версии. Поскольку сейчас установлены две различные версии, вы должны использовать модульный тестер для запуска процесса. Модульный тестер использует раннее связывание и может запускать любую версию.

  1. Щелкните правой кнопкой мыши на Process_Module1 и выберите Test => Test Module (см. рисунок 8).

    Рисунок 8. Тестирование Process_Module1
    Рисунок 8. Тестирование Process_Module1

  2. Отроется модульный тестер. Эта программа может тестировать любой компонент модуля. В данном случае нужно протестировать процесс. В ниспадающем меню компонента выберите RequestProcess.
  3. Ведите любые значения имени, адреса электронной почты и количества (см. рисунок 9).

    Рисунок 9. Модульный тестер
    Рисунок 9. Модульный тестер

  4. Выберите пиктограмму Continue для запуска процесса.
  5. В диалоговом окне deployment location нажмите кнопку Finish. При запросе информации для входа в систему введите имя пользователя admin и пароль admin, а затем нажмите кнопку OK. Модульный тестер будет развернут, и процесс начнет работу. Убедитесь в том, что сообщение из Step 1 появилось в консоли.
  6. Повторите шаги 1-5, используя Process_Module2. Используйте другие значения имени, адреса электронной почты и количества. Вы должны увидеть другое сообщение, указывающее на то, что выполняется step 1 в модуле 2.

Проверка результатов

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

  1. Запустите WebSphere Process Server Business Process Choreographer Explorer, если он еще не открыт.
  2. Выберите My Todos (см. рисунок 10).


    Рисунок 10. My To-dos
    Рисунок 10. My To-dos

  3. Имеется два задания, одно из каждого процесса. Было бы легче идентифицировать эти задания, если бы они назывались по-разному. В данном случае они являются двумя версиями одного и того же задания, поэтому их названия должны быть одинаковыми.
  4. Выберите первое задание. Проверьте, что оно содержит данные, которые вы использовали при запуске Process_Module2. Завершите задание.
  5. Повторите шаг 4 для проверки того, что второе задание содержит данные из Process_Module1. Завершите задание.

Поздравляем, вы запустили две версии процесса одновременно!

Соглашения по развертыванию

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

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

Заключение

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



Загрузка

ОписаниеИмяРазмерМетод загрузки
Готовый экспорт проекта для статьиFinalProjectExport.zip29 КБHTTP
Архив примераVersioningSample.zip15 КБHTTP

Информация о методах загрузки


Ресурсы

Об авторе

Марк Фасбиндер, специалист по WebSphere® Business Modeler, отвечает на десять самых распространенных вопросов по данному продукту.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


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

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=WebSphere
ArticleID=442153
ArticleTitle=Управление версиями и динамичность: Часть 1. Создание нескольких версий бизнес-процесса
publish-date=10302009
author1-email=mfasbind@us.ibm.com
author1-email-cc=crothemi@us.ibm.com

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).