Создание бизнес-процесса с помощью инструментов Rational и WebSphere

Важные моменты

Разбить на страницы
Показывать лекцию целиком

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

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

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

  • совершенствование интерфейса BPEL из WebSphere Business Integration Modeler;
  • совершенствование обработки XSLT в операции назначения (Assign activity) WebSphere Integration Developer, создающее реальную альтернативу использованию трансформационных служб;
  • поддержка агрегации для не MQ-протоколов в WebSphere Business Integration Message Broker;
  • публикация UML-профиля для программных служб, написанного Саймоном Джонсоном (Simon Johnson) на Web-сайте http://www.ibm.com/developerworks/rational/library/05/419_soa/
  • Подробную информацию о применении данного профиля и расширении возможностей Rational Software Architect для поддержки SOA можно найти в книге Patterns: Model Driven Development using Rational Software Architect, SG24-7105.

    Эти и другие усовершенствования должны подтолкнуть вас к тому, чтобы вы основывали свои новые интеграционные проекты на платформе WebSphere версии 6, а не версии 5.

    13.1 Уроки, которые мы извлекли

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

    13.1.1 Бизнес-моделирование и ИТ-архитектура

    Мы обнаружили, что WebSphere Business Integration Modeler является полезным инструментом для формулировки требований и анализа.

  • Этот инструмент помогает организовывать и документировать информацию об операциях, ролях, ресурсах, затратах и процессах, которую можно экспортировать для ИТ-архитектора в виде формальной модели. Это практический метод, помогающий ИТ-архитектору и бизнес-аналитику использовать общие термины при описании сценария и обмениваться общими частями моделей решения.
  • В руках опытного бизнес-аналитика модель является эффективным инструментом для получения быстрой окупаемости инвестиций и предсказания использования ресурсов.
  • Мы подчеркиваем слово "опытный", поскольку, когда целью является создание предсказаний на ранних стадиях, подробной информации о реализации процесса нет. Опытный бизнес-аналитик сможет указать элементы, имеющие значительную стоимость, и основные операции, не погружаясь в попытки моделирования деталей реализации процесса.

    Кто формирует исполняемый бизнес-процесс?

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

  • Вопрос времени.

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

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

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

  • Анализ и описание процесса вплоть до исполняемых деталей требует больших навыков в области ИТ-архитектуры, чем обычно есть у бизнес-аналитика.

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

  • Для распознания значимости изменений процесса для базовой ИТ-инфраструктуры необходим опыт в области информационных технологий.
  • В нашем проекте аналитик уделял основное внимание совершенствованию процесса, которое необходимо для компании LGI, но не бизнес- и ИТ-взаимосвязям, которые нужно создать между LGI и оценщиками, чтобы автоматизированный процесс мог заработать. Из-за отсутствия опыта и навыков работы с информационными технологиями типа "бизнес-бизнес" (Business to Business, B2B) важность замены ручного взаимодействия между LGI и оценщиками на автоматизированное не было оценена в достаточной степени.

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

    В разделе 10.4.7, "Конфигурирование потока для ожидания ответа от оценщиков", асинхронные ответы от выбранного оценщика реализованы так, что они получаются напрямую процессом RequestExternalReports.

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

    Если полагаться на выполнение двух приведенных ниже условий, реализация будет неустойчивой:

  • оценщик создаст оба ответа в нужном порядке;
  • инфраструктура не перепутает ответы.
  • Более совершенной архитектурой было бы использование схемы публичного/личного процесса, типичной для B2B, и моделирования взаимодействий с партнерами по отдельности из процесса RequestExternalReports компании LGI.

    Широко распространено мнение, что лучшей ИТ-моделью для взаимодействий с использованием протоколов является модель на основе конечных автоматов, а не модель процессов. В WebSphere Process Server Version 6 предлагается механизм реализации моделей конечных автоматов для бизнес-взаимодействий.

    Наш вывод состоит в том, что модель CIM должна быть результатом совместного технологического процесса, проводимого как бизнес-аналитаком, так и ИТ-архитектором. ИТ-архитектор при построении ИТ-модели бизнес-процесса выявляет перекрытия и несоответствия, которые приводят к созданию агрегаций или новых компонентов. Эти модификации должны обсуждаться с аналитиком, чтобы можно было понять бизнес-требования, предъявляемые к таким компонентам, и правильно выбрать ИТ-модель.

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

    С точки зрения процесса мы рекомендуем, чтобы:

  • CIM-модель принадлежала бизнес-аналитику, а одним из тех, с кем эту модель нужно согласовывать, был ИТ-архитектор;
  • PIM-модель принадлежала ИТ-архитектору, а одним из тех, с кем эту модель нужно согласовывать, был бизнес-аналитик.
  • 13.1.2 Экспортировать ли BPEL из WebSphere Business Integration Modeler?

    Мы решили импортировать BPEL-код из Modeler и детализовать его в WebSphere Studio Application Development Integration Edition.

    Этот подход зародился в нашей команде после разработки каскадной модели, поддерживаемой цепочкой инструментов. BPEL экспортировал бизнес-аналитик для специалиста по процессу.

    При разработке BPEL-модели аналитик и архитектор широко взаимодействовали друг с другом в духе кооперативной разработки. Полученный BPEL-код был импортирован в WebSphere Studio Application Development Integration Edition специалистом по процессу. Однако оказалось, что специалист по процессу, работающий со сгенерированным BPEL, столкнулся с трудностями, поскольку наши стандарты разработки, сформированные архитектором в Rational Software Architect, не были включены в модель, созданную аналитиком. Следовательно, ИТ-специалист по процессу выбрал практичный вариант и удалил несколько артефактов, сгенерированных на BPEL в WebSphere Studio Application Development Integration Edition.

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

    13.1.3 Имена

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

  • Особенно сложными становились проблемы изменения имен WSDL-компонентов, поскольку, помимо изменения имен файлов, нужно иметь дело с ограниченными возможностями реорганизации.
  • Ограниченные возможности контроля артефактов, к которым осуществлялся доступ со стороны различных инструментов, сделали особенно важным для команды систематический подход к выбору имен объектов и артефактов, точно определенное место контроля, например систему библиотек и права собственности на артефакты, а также тщательное изучение интерфейсов перед переходом к их реализации.
  • Особая проблема с системой имен в данном сценарии состоит в том, что существует множество связанных объектов, которые все в конечном счете имеют очень сходные имена. Поскольку взаимодействия переходят от одного компонента к другому, реально не меняется ничего, кроме конечных точек. Результат состоял в том, что попытка присвоить объектам описательные имена приводила к дубликатам и путанице. Это, вероятно, было для нас вторым по важности источником проблем. Выбор имен должен тщательно анализироваться архитектором решения.
  • Мы предлагаем давать артефактам имена, состоящие из краткой описательной части и простого уникального тега, например короткого числа. Имена можно объ- единять путем добавления к номеру префикса для каждого подразделения, например, AssessAvail_A1.wsdl. Избегайте любой ценой специальных символов, таких, как (, [, { и т. п. И старайтесь делать имена и пути действительно краткими, чтобы избежать проблем с ограничением максимальной длины пути в продуктах Eclipse, работающих в Windows. Может помочь создание соглашения об именах, основанного на компо- нентах. Мы постоянно спрашивали: этот запрос о доступности направляется в прокси или реальному оценщику? Этот ответ от оценщика возвращается в Choreographer или в прокси? Однако мы обнаружили, что простая нумерация потоков работает лучше, чем что-либо еще.

    13.1.4 Метаданные

    У нас были на выбор три формы метаданных для описания интерфейсов нашего решения:

  • UML,
  • WSDL,
  • смесь WSDL и XSD.
  • Мы решили использовать WSDL. Это привело к некоторым проблемам при обмене данными об интерфейсах между WebSphere Business Integration Message Broker и WebSphere Studio Application Development Integration Edition. Справиться с этими проблемами, возможно, было бы легче, если бы мы использовали в наших WSDL-описаниях импортированные, а не встроенные схемы. У нас было несколько случаев отклонения интерфейсов от стандарта, поскольку встроенные схемы в WSDL-интерфейсах без необходимости отклонялись от стандарта просто из-за того, что схемы разрабатывались в разное время.

    Теперь, когда WebSphere Business Integration Message Broker версии 6 поддерживает импорт WSDL, выбор использования WSDL породил бы меньше ошибок. Но мы в итоге пришли к выводу, что проблемы, возникающие из-за отсутствия синхронизации встроенных схем, настолько дорогостоящие, что более предпочтительным является применение WSDL с импортированными схемами. Использование общего хранилища схем, импортируемых в разные WSDL-файлы, в большей степени стимулирует многократное применение, и при этом меньше вероятность порождения различающихся форматов сообщений. Такой подход требует немного больше усилий, связанных с извлечением встроенных схем, которые автоматически сгенерированы в EJB.

    13.1.5 Сервисная шина

    Реализация потоков сообщений в брокере заняло больше времени, чем ожидалось. Частично это явилось результатом того, что Broker версии 5 не имел реализации схемы SOAP 1.1 и не мог импортировать WSDL, а частично – результатом того, что, используя SOAP/HTTP в качестве транспортного протокола, мы привнесли дополнительные затраты, связанные с распространением и агрегацией, из-за трудностей интеграции с SOAP/JMS.

    Также мы никогда не касались проблем, связанных с обработкой ошибок на транспортном уровне. Ошибки транспортных протоколов при использовании SOAP/JMS лучше обрабатывать при помощи промежуточного ПО, в отличие от использования SOAP/HTTP. Если применяются двусторонние взаимодействия SOAP, то хорошая SOA-архитектура должна решать вопрос обработки сообщений об ошибках SOAP от имени SOAP-клиентов.

    Некоторые из этих проблем сразу же разрешаются при переходе на WebSphere Business Integration Message Broker версии 6 и использовании WebSphere Platform Messaging и WebSphere MQ, где это необходимо. Некоторые другие проблемы решаются путем изучения шаблонов для SOA, например как описано в книге Patterns: Model-Driven Development Using IBM Rational Software Architect, SG24-7105.

    Уроки, которые мы извлекли из использования версии 5, следующие.

    Отделяйте архитектуру и реализацию сервисной шины от дизайна и реализации компонентов proxyAssessorSystem, реализованных на этой сервисной шине.

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

    При разработке сервисной шины и ее компонентов слишком мало учитывалась роль архитектуры. У архитектора не было инструментов для описания сервисной шины вплоть до уровня проектирования взаимодействий. Специалист по реализации обнаружил, что в версии 5 промежуточного ПО очень много работы требуется для того, чтобы создать сервисную шину, на основе которой строится система proxyAssessorSystem.

    Основная причина этих проблем состоит в том, что нам нужно было пересмотреть бизнес-требования с участием бизнес-аналитика, когда ИТ-архитектор выявил необходимость создания системы proxyAssessorSystem. Результатом было бы более четкое разделение проблем между ESB и уровнем процесса.

    Более совершенный инструментарий ESB в WebSphere Version 6, лучшие шаблоны и модели SOA и реализация конечных автоматов для бизнес-протоколов в WebSphere Process Server Version 6 улучшили бы проектирование и реализацию сервисной шины.

    13.1.6 Заключение

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

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

    Нам нужно было уделить больше внимания пониманию и формулировке проблем, связанных с ИТ: архитектурные вопросы были возложены на ИТ-специалистов, которые решали их в ходе реализации. Проект выполнялся бы более эффективно, если бы эти проблемы были решены заранее. Это, вероятно, было признаком работы в лаборатории, без работы с реальной ИТ-инфраструктурой. Если бы это был реальный проект, то ИТ-инфраструктура уже существовала бы и больше внимания нужно было бы уделять внесению в нее изменений.

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

    13.2 Изменения в инструментарии и промежуточном программном обеспечении

    С момента реализации данного сценария большая часть соответствующего программного обеспечения перешла с WebSphere версии 5 на версию 6. В некоторых случаях различия в архитектуре и реализации были очень незначительны, но в других – внесены существенные улучшения, как в области повышения производительности разработки, так и в области надежности решения.

    13.2.1 WebSphere MQ

    Система WebSphere MQ перешла с версии 5 на версию 6. Единственными изменениями, повлиявшими на проект, были следующие:

  • В WebSphere MQ версии 6 для управления используется обозреватель на основе Eclipse, а не на основе Microsoft Management Console;
  • версию WebSphere MQ Workflow необходимо обновить, чтобы конфигурация очередей могла свободно работать с WebSphere MQ версии 6.
  • 13.2.2 WebSphere MQ Workflow

    Версия WebSphere MQ Workflow повысилась с 3.1.4 до 3.1.7.

    13.2.3 WebSphere Application Server

    WebSphere Application Server V6.0 включает в себя платформу обмена сообщениями, построенную на основе JMS. Эта платформа существенно отличается от встроенной системы обмена сообщениями и дополнительно плагина WebSphere MQ messaging, имевшегося в версии 5. С точки зрения архитектуры система обмена сообщениями WebSphere Application Server интегрируется с сервером WebSphere MQ, работающим на другом сервере, и в то же время является составной частью WebSphere Application Server. Это должно упростить создание шины сообщений, интегрирующей те части решения, которые связаны с сервером приложений и WebSphere MQ, и должно сделать возможным (с точки зрения производительности и надежности) создание односторонних взаимодействий между Process Choreographer и такими компонентами приложений, как сообщения SOAP/JMS.

    13.2.4 WebSphere Business Integration Message Broker

    WebSphere Business Integration Message Broker включает в себя узел JMS, который значительно упрощает интеграцию с WebSphere Application Server при использовании шины SOAP/JMS.

    WebSphere Business Integration Message Broker поддерживает SOAP-схему для импортирования WSDL и для агрегирования запросов SOAP/http, что значительно повышает производительность ИТ-специалиста, отвечающего за создание брокерного компонента сценария.

    В WebSphere Enterprise Service Bus предлагается альтернативная связь с компонента сервисной шины в архитектуре решения с рабочей средой. Нужно провести дополнительные исследования решения, чтобы определить связи сервисной шины с продуктами для версии 6. Одной из областей для усовершенствований, которую ИТ-архитектор будет ждать от нового продукта WebSphere Enterprise Service Bus, является более совершенная интеграция с инструментарием для создания служб. Стоимость размещения службы на сервисной шине не должна быть выше размещения службы в соединении "точка-точка". Разница в стоимости размещения – это одна из причин, по которой ИТ-архитектор, работающий в версии 5, выбирает для связей с продуктами подход, ориентированный на процесс, а не на шину.

    13.2.5 WebSphere Business Integration Server Foundation

    WebSphere Business Integration Server Foundation был заменен WebSphere Process Server version 6. Это некоторым образом повлияло на архитектуру сценария. В WebSphere Process Server используется система обмена сообщениями платформы WebSphere (WebSphere Platform messaging), а не запуск WebSphere MQ в качестве службы обмена сообщениями. Одним из последствий является то, что соединение типа "точка-точка" между WebSphere MQ Workflow и WebSphere Business Integration Server Foundation нельзя автоматически перенести в WebSphere Process Server.

    Если вы помните, в разделе 5.5, "Шаг 3. Выбор и объединение шаблонов рабочих систем", мы выбрали шаблон рабочей системы, ориентированный на процесс, и дан- ное соединение типа "точка-точка" между WebSphere MQ Workflow и WebSphere Business Integration Server Foundation было одним из нескольких подобных соединений, которые следует перенести. Имеет смысл пересмотреть для версии 6 наш выбор шаблона рабочей системы и выбрать вариант с шаблоном, ориентированным на брокер (или ESB), вместо выбранного нами для версии 5 шаблона, ориентированного на процесс.

    13.2.6 WebSphere Studio Application Development Integration Edition

    В версии 6 WebSphere Studio Application Development Integration Edition был заменен на WebSphere Integration Developer.

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

  • Операция назначения (assign) теперь может обрабатывать ссылки на сложные сообщения. Это устраняет необходимость создания трансформаций для простых связей "один к одному" в процессе. Операции назначения на BPEL, экспортированные из Modeler, с большей вероятностью сохранятся в потоке выполнения.
  • Существует новая концепция проекта, во многом напоминающая идею набора сообщений (message set) в Broker, которая позволяет легко сохранять WSDL-файлы в отдельном проекте и ссылаться на него из разных потоков. Это способствует разработке более модульных потоков и должно унизить вероятность внесения ошибок размещения из-за сохранения по ошибке WSDL-файлов в папке, которая не видна мастеру размещения.
  • В интеграции тестового сервера из WebSphere Integration Developer используется подход, позаимствованный из инструментария Rational. Это тесная интеграция инструментария и сервера рабочей системы. Это упрощает тестирование на серверной рабочей системе без создания специального встроенного тестового сервера.
  • Одним из преимуществ, которые ощущаются сразу, является то, что обслуживать рабочий сервер гораздо удобнее, чем встроенный тестовый сервер, и, вероятно, серверных сред для управления станет меньше. Второе преимущество, касающееся разработчика, состоит в более простом переходе от модульного тестирования к полномасштабной тестовой среде.

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

    13.2.7 WebSphere Business Integration Modeler

    Modeler версии 6 является дальнейшим развитием версии 5. Главная область усовершенствований – моделирование бизнес-параметров – выходит за рамки нашего сценария.

    Существует несколько небольших изменений для улучшения интеграции Modeler с остальной частью решения, в частности:

  • BPEL-код, генерируемый для импортирования в WebSphere Integration Developer, удобнее в использовании.
  • Импортируемое содержимое разбивается на меньшие части, так что вместо импортирования всей модели можно импортировать процесс и не импортировать модель данных.
  • Эта возможность немедленно устранила бы первый шаг, который мы делали в ходе детализации BPEL из Modeler в WebSphere Studio Application Development Integration Edition. Нам приходилось удалять все ссылки на партнеров и связанные с ними структуры сообщений, такие, как интерфейсы, при импорте из Rational Software Architect.

    13.2.8 Rational Software Architect

    В этом сценарии мы уже использовали Rational Software Architect версии 6, и в данном курсе мы выполнили обновление его пакетом Fixpack 1, что повысило стабильность интеграции с WebSphere Business Integration Modeler.

    Функциональность, которая нам больше всего требовалась при разработке в Rational Software Architect, – это трансформация между UML и WSDL. Для нас стало возможным создать наш собственный трансформационный плагин, используя расширения Rational Software Architect, как это описано в книге Patterns: Model Driven Development using Rational Software Architect, SG24-7105.

    Проверьте: может быть, IBM или другой производитель уже разработали плагин. Существуют статьи, в которых обсуждаются проблемы, связанные с трансформацией между UML и WSDL. Обратитесь, например, к статье MS General Web services UML to WSDL Binding Auto-generation Guidelines, которую можно найти по адресу http://www.imsglobal.org/gws/gwsv1p0pd/imsgws_transfv1p0pd.html

    Страницы:

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

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

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

  • совершенствование интерфейса BPEL из WebSphere Business Integration Modeler;
  • совершенствование обработки XSLT в операции назначения (Assign activity) WebSphere Integration Developer, создающее реальную альтернативу использованию трансформационных служб;
  • поддержка агрегации для не MQ-протоколов в WebSphere Business Integration Message Broker;
  • публикация UML-профиля для программных служб, написанного Саймоном Джонсоном (Simon Johnson) на Web-сайте http://www.ibm.com/developerworks/rational/library/05/419_soa/
  • Подробную информацию о применении данного профиля и расширении возможностей Rational Software Architect для поддержки SOA можно найти в книге Patterns: Model Driven Development using Rational Software Architect, SG24-7105.

    Эти и другие усовершенствования должны подтолкнуть вас к тому, чтобы вы основывали свои новые интеграционные проекты на платформе WebSphere версии 6, а не версии 5.

    13.1 Уроки, которые мы извлекли

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

    13.1.1 Бизнес-моделирование и ИТ-архитектура

    Мы обнаружили, что WebSphere Business Integration Modeler является полезным инструментом для формулировки требований и анализа.

  • Этот инструмент помогает организовывать и документировать информацию об операциях, ролях, ресурсах, затратах и процессах, которую можно экспортировать для ИТ-архитектора в виде формальной модели. Это практический метод, помогающий ИТ-архитектору и бизнес-аналитику использовать общие термины при описании сценария и обмениваться общими частями моделей решения.
  • В руках опытного бизнес-аналитика модель является эффективным инструментом для получения быстрой окупаемости инвестиций и предсказания использования ресурсов.
  • Мы подчеркиваем слово "опытный", поскольку, когда целью является создание предсказаний на ранних стадиях, подробной информации о реализации процесса нет. Опытный бизнес-аналитик сможет указать элементы, имеющие значительную стоимость, и основные операции, не погружаясь в попытки моделирования деталей реализации процесса.

    Кто формирует исполняемый бизнес-процесс?

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

  • Вопрос времени.

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

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

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

  • Анализ и описание процесса вплоть до исполняемых деталей требует больших навыков в области ИТ-архитектуры, чем обычно есть у бизнес-аналитика.

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

  • Для распознания значимости изменений процесса для базовой ИТ-инфраструктуры необходим опыт в области информационных технологий.
  • В нашем проекте аналитик уделял основное внимание совершенствованию процесса, которое необходимо для компании LGI, но не бизнес- и ИТ-взаимосвязям, которые нужно создать между LGI и оценщиками, чтобы автоматизированный процесс мог заработать. Из-за отсутствия опыта и навыков работы с информационными технологиями типа "бизнес-бизнес" (Business to Business, B2B) важность замены ручного взаимодействия между LGI и оценщиками на автоматизированное не было оценена в достаточной степени.

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

    В разделе 10.4.7, "Конфигурирование потока для ожидания ответа от оценщиков", асинхронные ответы от выбранного оценщика реализованы так, что они получаются напрямую процессом RequestExternalReports.

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

    Если полагаться на выполнение двух приведенных ниже условий, реализация будет неустойчивой:

  • оценщик создаст оба ответа в нужном порядке;
  • инфраструктура не перепутает ответы.
  • Более совершенной архитектурой было бы использование схемы публичного/личного процесса, типичной для B2B, и моделирования взаимодействий с партнерами по отдельности из процесса RequestExternalReports компании LGI.

    Широко распространено мнение, что лучшей ИТ-моделью для взаимодействий с использованием протоколов является модель на основе конечных автоматов, а не модель процессов. В WebSphere Process Server Version 6 предлагается механизм реализации моделей конечных автоматов для бизнес-взаимодействий.

    Наш вывод состоит в том, что модель CIM должна быть результатом совместного технологического процесса, проводимого как бизнес-аналитаком, так и ИТ-архитектором. ИТ-архитектор при построении ИТ-модели бизнес-процесса выявляет перекрытия и несоответствия, которые приводят к созданию агрегаций или новых компонентов. Эти модификации должны обсуждаться с аналитиком, чтобы можно было понять бизнес-требования, предъявляемые к таким компонентам, и правильно выбрать ИТ-модель.

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

    С точки зрения процесса мы рекомендуем, чтобы:

  • CIM-модель принадлежала бизнес-аналитику, а одним из тех, с кем эту модель нужно согласовывать, был ИТ-архитектор;
  • PIM-модель принадлежала ИТ-архитектору, а одним из тех, с кем эту модель нужно согласовывать, был бизнес-аналитик.
  • 13.1.2 Экспортировать ли BPEL из WebSphere Business Integration Modeler?

    Мы решили импортировать BPEL-код из Modeler и детализовать его в WebSphere Studio Application Development Integration Edition.

    Этот подход зародился в нашей команде после разработки каскадной модели, поддерживаемой цепочкой инструментов. BPEL экспортировал бизнес-аналитик для специалиста по процессу.

    При разработке BPEL-модели аналитик и архитектор широко взаимодействовали друг с другом в духе кооперативной разработки. Полученный BPEL-код был импортирован в WebSphere Studio Application Development Integration Edition специалистом по процессу. Однако оказалось, что специалист по процессу, работающий со сгенерированным BPEL, столкнулся с трудностями, поскольку наши стандарты разработки, сформированные архитектором в Rational Software Architect, не были включены в модель, созданную аналитиком. Следовательно, ИТ-специалист по процессу выбрал практичный вариант и удалил несколько артефактов, сгенерированных на BPEL в WebSphere Studio Application Development Integration Edition.

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

    13.1.3 Имена

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

  • Особенно сложными становились проблемы изменения имен WSDL-компонентов, поскольку, помимо изменения имен файлов, нужно иметь дело с ограниченными возможностями реорганизации.
  • Ограниченные возможности контроля артефактов, к которым осуществлялся доступ со стороны различных инструментов, сделали особенно важным для команды систематический подход к выбору имен объектов и артефактов, точно определенное место контроля, например систему библиотек и права собственности на артефакты, а также тщательное изучение интерфейсов перед переходом к их реализации.
  • Особая проблема с системой имен в данном сценарии состоит в том, что существует множество связанных объектов, которые все в конечном счете имеют очень сходные имена. Поскольку взаимодействия переходят от одного компонента к другому, реально не меняется ничего, кроме конечных точек. Результат состоял в том, что попытка присвоить объектам описательные имена приводила к дубликатам и путанице. Это, вероятно, было для нас вторым по важности источником проблем. Выбор имен должен тщательно анализироваться архитектором решения.
  • Мы предлагаем давать артефактам имена, состоящие из краткой описательной части и простого уникального тега, например короткого числа. Имена можно объ- единять путем добавления к номеру префикса для каждого подразделения, например, AssessAvail_A1.wsdl. Избегайте любой ценой специальных символов, таких, как (, [, { и т. п. И старайтесь делать имена и пути действительно краткими, чтобы избежать проблем с ограничением максимальной длины пути в продуктах Eclipse, работающих в Windows. Может помочь создание соглашения об именах, основанного на компо- нентах. Мы постоянно спрашивали: этот запрос о доступности направляется в прокси или реальному оценщику? Этот ответ от оценщика возвращается в Choreographer или в прокси? Однако мы обнаружили, что простая нумерация потоков работает лучше, чем что-либо еще.

    13.1.4 Метаданные

    У нас были на выбор три формы метаданных для описания интерфейсов нашего решения:

  • UML,
  • WSDL,
  • смесь WSDL и XSD.
  • Мы решили использовать WSDL. Это привело к некоторым проблемам при обмене данными об интерфейсах между WebSphere Business Integration Message Broker и WebSphere Studio Application Development Integration Edition. Справиться с этими проблемами, возможно, было бы легче, если бы мы использовали в наших WSDL-описаниях импортированные, а не встроенные схемы. У нас было несколько случаев отклонения интерфейсов от стандарта, поскольку встроенные схемы в WSDL-интерфейсах без необходимости отклонялись от стандарта просто из-за того, что схемы разрабатывались в разное время.

    Теперь, когда WebSphere Business Integration Message Broker версии 6 поддерживает импорт WSDL, выбор использования WSDL породил бы меньше ошибок. Но мы в итоге пришли к выводу, что проблемы, возникающие из-за отсутствия синхронизации встроенных схем, настолько дорогостоящие, что более предпочтительным является применение WSDL с импортированными схемами. Использование общего хранилища схем, импортируемых в разные WSDL-файлы, в большей степени стимулирует многократное применение, и при этом меньше вероятность порождения различающихся форматов сообщений. Такой подход требует немного больше усилий, связанных с извлечением встроенных схем, которые автоматически сгенерированы в EJB.

    13.1.5 Сервисная шина

    Реализация потоков сообщений в брокере заняло больше времени, чем ожидалось. Частично это явилось результатом того, что Broker версии 5 не имел реализации схемы SOAP 1.1 и не мог импортировать WSDL, а частично – результатом того, что, используя SOAP/HTTP в качестве транспортного протокола, мы привнесли дополнительные затраты, связанные с распространением и агрегацией, из-за трудностей интеграции с SOAP/JMS.

    Также мы никогда не касались проблем, связанных с обработкой ошибок на транспортном уровне. Ошибки транспортных протоколов при использовании SOAP/JMS лучше обрабатывать при помощи промежуточного ПО, в отличие от использования SOAP/HTTP. Если применяются двусторонние взаимодействия SOAP, то хорошая SOA-архитектура должна решать вопрос обработки сообщений об ошибках SOAP от имени SOAP-клиентов.

    Некоторые из этих проблем сразу же разрешаются при переходе на WebSphere Business Integration Message Broker версии 6 и использовании WebSphere Platform Messaging и WebSphere MQ, где это необходимо. Некоторые другие проблемы решаются путем изучения шаблонов для SOA, например как описано в книге Patterns: Model-Driven Development Using IBM Rational Software Architect, SG24-7105.

    Уроки, которые мы извлекли из использования версии 5, следующие.

    Отделяйте архитектуру и реализацию сервисной шины от дизайна и реализации компонентов proxyAssessorSystem, реализованных на этой сервисной шине.

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

    При разработке сервисной шины и ее компонентов слишком мало учитывалась роль архитектуры. У архитектора не было инструментов для описания сервисной шины вплоть до уровня проектирования взаимодействий. Специалист по реализации обнаружил, что в версии 5 промежуточного ПО очень много работы требуется для того, чтобы создать сервисную шину, на основе которой строится система proxyAssessorSystem.

    Основная причина этих проблем состоит в том, что нам нужно было пересмотреть бизнес-требования с участием бизнес-аналитика, когда ИТ-архитектор выявил необходимость создания системы proxyAssessorSystem. Результатом было бы более четкое разделение проблем между ESB и уровнем процесса.

    Более совершенный инструментарий ESB в WebSphere Version 6, лучшие шаблоны и модели SOA и реализация конечных автоматов для бизнес-протоколов в WebSphere Process Server Version 6 улучшили бы проектирование и реализацию сервисной шины.

    13.1.6 Заключение

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

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

    Нам нужно было уделить больше внимания пониманию и формулировке проблем, связанных с ИТ: архитектурные вопросы были возложены на ИТ-специалистов, которые решали их в ходе реализации. Проект выполнялся бы более эффективно, если бы эти проблемы были решены заранее. Это, вероятно, было признаком работы в лаборатории, без работы с реальной ИТ-инфраструктурой. Если бы это был реальный проект, то ИТ-инфраструктура уже существовала бы и больше внимания нужно было бы уделять внесению в нее изменений.

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

    13.2 Изменения в инструментарии и промежуточном программном обеспечении

    С момента реализации данного сценария большая часть соответствующего программного обеспечения перешла с WebSphere версии 5 на версию 6. В некоторых случаях различия в архитектуре и реализации были очень незначительны, но в других – внесены существенные улучшения, как в области повышения производительности разработки, так и в области надежности решения.

    13.2.1 WebSphere MQ

    Система WebSphere MQ перешла с версии 5 на версию 6. Единственными изменениями, повлиявшими на проект, были следующие:

  • В WebSphere MQ версии 6 для управления используется обозреватель на основе Eclipse, а не на основе Microsoft Management Console;
  • версию WebSphere MQ Workflow необходимо обновить, чтобы конфигурация очередей могла свободно работать с WebSphere MQ версии 6.
  • 13.2.2 WebSphere MQ Workflow

    Версия WebSphere MQ Workflow повысилась с 3.1.4 до 3.1.7.

    13.2.3 WebSphere Application Server

    WebSphere Application Server V6.0 включает в себя платформу обмена сообщениями, построенную на основе JMS. Эта платформа существенно отличается от встроенной системы обмена сообщениями и дополнительно плагина WebSphere MQ messaging, имевшегося в версии 5. С точки зрения архитектуры система обмена сообщениями WebSphere Application Server интегрируется с сервером WebSphere MQ, работающим на другом сервере, и в то же время является составной частью WebSphere Application Server. Это должно упростить создание шины сообщений, интегрирующей те части решения, которые связаны с сервером приложений и WebSphere MQ, и должно сделать возможным (с точки зрения производительности и надежности) создание односторонних взаимодействий между Process Choreographer и такими компонентами приложений, как сообщения SOAP/JMS.

    13.2.4 WebSphere Business Integration Message Broker

    WebSphere Business Integration Message Broker включает в себя узел JMS, который значительно упрощает интеграцию с WebSphere Application Server при использовании шины SOAP/JMS.

    WebSphere Business Integration Message Broker поддерживает SOAP-схему для импортирования WSDL и для агрегирования запросов SOAP/http, что значительно повышает производительность ИТ-специалиста, отвечающего за создание брокерного компонента сценария.

    В WebSphere Enterprise Service Bus предлагается альтернативная связь с компонента сервисной шины в архитектуре решения с рабочей средой. Нужно провести дополнительные исследования решения, чтобы определить связи сервисной шины с продуктами для версии 6. Одной из областей для усовершенствований, которую ИТ-архитектор будет ждать от нового продукта WebSphere Enterprise Service Bus, является более совершенная интеграция с инструментарием для создания служб. Стоимость размещения службы на сервисной шине не должна быть выше размещения службы в соединении "точка-точка". Разница в стоимости размещения – это одна из причин, по которой ИТ-архитектор, работающий в версии 5, выбирает для связей с продуктами подход, ориентированный на процесс, а не на шину.

    13.2.5 WebSphere Business Integration Server Foundation

    WebSphere Business Integration Server Foundation был заменен WebSphere Process Server version 6. Это некоторым образом повлияло на архитектуру сценария. В WebSphere Process Server используется система обмена сообщениями платформы WebSphere (WebSphere Platform messaging), а не запуск WebSphere MQ в качестве службы обмена сообщениями. Одним из последствий является то, что соединение типа "точка-точка" между WebSphere MQ Workflow и WebSphere Business Integration Server Foundation нельзя автоматически перенести в WebSphere Process Server.

    Если вы помните, в разделе 5.5, "Шаг 3. Выбор и объединение шаблонов рабочих систем", мы выбрали шаблон рабочей системы, ориентированный на процесс, и дан- ное соединение типа "точка-точка" между WebSphere MQ Workflow и WebSphere Business Integration Server Foundation было одним из нескольких подобных соединений, которые следует перенести. Имеет смысл пересмотреть для версии 6 наш выбор шаблона рабочей системы и выбрать вариант с шаблоном, ориентированным на брокер (или ESB), вместо выбранного нами для версии 5 шаблона, ориентированного на процесс.

    13.2.6 WebSphere Studio Application Development Integration Edition

    В версии 6 WebSphere Studio Application Development Integration Edition был заменен на WebSphere Integration Developer.

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

  • Операция назначения (assign) теперь может обрабатывать ссылки на сложные сообщения. Это устраняет необходимость создания трансформаций для простых связей "один к одному" в процессе. Операции назначения на BPEL, экспортированные из Modeler, с большей вероятностью сохранятся в потоке выполнения.
  • Существует новая концепция проекта, во многом напоминающая идею набора сообщений (message set) в Broker, которая позволяет легко сохранять WSDL-файлы в отдельном проекте и ссылаться на него из разных потоков. Это способствует разработке более модульных потоков и должно унизить вероятность внесения ошибок размещения из-за сохранения по ошибке WSDL-файлов в папке, которая не видна мастеру размещения.
  • В интеграции тестового сервера из WebSphere Integration Developer используется подход, позаимствованный из инструментария Rational. Это тесная интеграция инструментария и сервера рабочей системы. Это упрощает тестирование на серверной рабочей системе без создания специального встроенного тестового сервера.
  • Одним из преимуществ, которые ощущаются сразу, является то, что обслуживать рабочий сервер гораздо удобнее, чем встроенный тестовый сервер, и, вероятно, серверных сред для управления станет меньше. Второе преимущество, касающееся разработчика, состоит в более простом переходе от модульного тестирования к полномасштабной тестовой среде.

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

    13.2.7 WebSphere Business Integration Modeler

    Modeler версии 6 является дальнейшим развитием версии 5. Главная область усовершенствований – моделирование бизнес-параметров – выходит за рамки нашего сценария.

    Существует несколько небольших изменений для улучшения интеграции Modeler с остальной частью решения, в частности:

  • BPEL-код, генерируемый для импортирования в WebSphere Integration Developer, удобнее в использовании.
  • Импортируемое содержимое разбивается на меньшие части, так что вместо импортирования всей модели можно импортировать процесс и не импортировать модель данных.
  • Эта возможность немедленно устранила бы первый шаг, который мы делали в ходе детализации BPEL из Modeler в WebSphere Studio Application Development Integration Edition. Нам приходилось удалять все ссылки на партнеров и связанные с ними структуры сообщений, такие, как интерфейсы, при импорте из Rational Software Architect.

    13.2.8 Rational Software Architect

    В этом сценарии мы уже использовали Rational Software Architect версии 6, и в данном курсе мы выполнили обновление его пакетом Fixpack 1, что повысило стабильность интеграции с WebSphere Business Integration Modeler.

    Функциональность, которая нам больше всего требовалась при разработке в Rational Software Architect, – это трансформация между UML и WSDL. Для нас стало возможным создать наш собственный трансформационный плагин, используя расширения Rational Software Architect, как это описано в книге Patterns: Model Driven Development using Rational Software Architect, SG24-7105.

    Проверьте: может быть, IBM или другой производитель уже разработали плагин. Существуют статьи, в которых обсуждаются проблемы, связанные с трансформацией между UML и WSDL. Обратитесь, например, к статье MS General Web services UML to WSDL Binding Auto-generation Guidelines, которую можно найти по адресу http://www.imsglobal.org/gws/gwsv1p0pd/imsgws_transfv1p0pd.html

    Вернуться к учебному плану