(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Мониторинг нескольких модулей в среде V7 WebSphere BPM: Часть 1. Использование двух новых подключаемых модулей для WebSphere Business Modeler V7 для реализации сквозного мониторинга бизнес-процесса

Источник: IBM

Введение

В этой статье описывается, как реализовать мониторинг нескольких модулей с использованием новых возможностей, предоставленных нашими доступными для загрузки подключаемыми модулями для продукта IBM WebSphere Business Modeler V7 (сокращенно - Modeler). Подключаемые модули для версии V6.2 описываются в соответствующем варианте данной статьи. Описываемые в данной статье подключаемые модули предоставляют следующие возможности: .

  • Редактор набора мониторинга в Modeler, позволяющий задавать наборы мониторинга. Набор мониторинга (monitor set) состоит из атрибутов (одного или ), соответствующих атрибутам (одному или нескольким) бизнес-элемента. Эти атрибуты позволяют пользователю идентифицировать соответствующие экземпляры различных бизнес-процессов, которые в совокупности образуют сквозной процесс.
  • Новая опция экспорта, позволяющая пользователю экспортировать свой проект для реализации сквозного мониторинга одного или нескольких бизнес-процессов.

В статье описывается порядок использования доступных для загрузки подключаемых модулей при выполнении следующих операций с использованием продукта Integration Developer.

  1. Задание набора мониторинга.
  2. Автоматическая реализация мониторинга нескольких модулей с помощью опции экспорта WebSphere Business End-to-End Process Monitoring мастера экспорта подключаемых модулей.
  3. Импорт моделей мониторинга, автоматически сгенерированных нашим программным кодом, в продукт WebSphere Integration Developer (Integration Developer), редактирование этих моделей с помощью продукта Business Monitor (Monitor) с помощью редактора моделей мониторинга (MME) продукта Integration Developer, генерация проектов Monitor J2EE, публикация моделей в среде WebSphere Process Server (Process Server) и просмотр подвергаемых мониторингу действий посредством задания виджетов в представлении Business Space.

Предварительные условия

В вашей системе должен быть установлен продукт Modeler V7 с обновлением V7.0.0.3. Установка осуществляется следующим образом.

  1. С помощью инструмента IBM Install Manager установите продукт Modeler V7.
  2. С помощью инструмента IBM Install Manager V1.4 примените обновление Modeler V7.0.0.3 к установленному продукту Modeler V7.

Примечание. Для тестирования подключаемых модулей Modeler V7 вам потребуется версия WebSphere Integration Developer V7.

Базовые сведения

Как правило, создание процессов и бизнес-показателей в Modeler завершается созданием моделей мониторинга двух типов:

Высокоуровневая модель мониторинга (High-level monitor model, HMM-модель): модель мониторинга бизнес-уровня, экспортированная из Modeler, а затем импортированная в редактор моделей.

Низкоуровневая модель мониторинга (Low-level monitor model, LMM-модель): модель мониторинга ИТ-уровня, сгенерированная приложением Process Server, которое реализует бизнес-процесс, разработанный в Modeler

В статье Put new capabilities of business activity monitoring (BAM) to work, Part 6: Integrating high-level and low-level monitor models (developerWorks, 2008 г., авторы: Miles и Ewan), показано, как интегрировать высокоуровневую и низкоуровневую модели мониторинга. Совместная работа этих моделей реализуется посредством обмена т.н. "событиями". В данной статье демонстрируется применение редактора моделей мониторинга для интеграции двух моделей мониторинга: высокоуровневой модели, созданной в Modeler, и низкоуровневой модели, сгенерированной приложением Integration Developer, которое реализует бизнес-процесс, описанный в Modeler. На этом этапе осуществляются следующие шаги.

  • Создание XML-определения события.
  • Отправка исходящего события, базирующего на вышеуказанном определении события, из низкоуровневой модели.
  • Получение этого события в высокоуровневой модели как входящего события.
  • Обновление показателей и KPI (ключевых показателей эффективности) в высокоуровневой модели на основании информации от упомянутого входящего события.

На этапе исполнения осуществляются следующие шаги:

  1. Низкоуровневые модели получают события, эмитируемые приложением в ходе исполнения некоторой задачи T.
  2. Низкоуровневая модель (модели) посылает событие при каждом завершении задачи T.
  3. Высокоуровневая модель получает событие, посланное низкоуровневой моделью (моделями).
  4. Показатели и KPI в высокоуровневой модели получают свои значения на основании информации в вышеуказанном событии.

Два доступных для загрузки подключаемых модуля прилагаемых к данной статье, автоматизируют вышеописанный процесс. Входящий в состав Modeler редактор наборов мониторинга позволяет создать один или несколько наборов мониторинга, связанных с атрибутом (атрибутами) бизнес-элемента, который принадлежит процессам, подлежащим мониторингу. После этого вы сможете выбрать нужный набор мониторинга для использования при мониторинге и компоненты процесса, подлежащие мониторингу, а затем экспортировать их с помощью новой опции в мастере экспорта продукта Modeler, которая называется WebSphere Business Modeler End-to-End Process Monitoring.

В зависимости от выбранного набора мониторинга подключаемые модули автоматически генерируют показатели и XML-определения событий, которые затем вставляются в модели мониторинга, сгенерированные опцией продукта Modeler для экспорта в WebSphere Integration Developer. Эти показатели инициализируются посредством значений полей набора мониторинга (которые являются атрибутами бизнес-элемента) в низкоуровневых моделях мониторинга и передаются от низкоуровневых моделей мониторинга через исходящие события, которые высокоуровневая модель мониторинга принимает как входящие. Высокоуровневая модель мониторинга использует значения показателей, полученных от разных экземпляров сквозного бизнес-процесса, для связывания этого сквозного процесса. В данной статье этот процесс мониторинга сквозного процесса, состоящий из нескольких отдельных процессов, разделяется на детализированные шаги. После этого каждый из этих шагов объясняется в контексте чрезвычайно простого бизнес-процесса подачи заявки на кредит, который моделируется в инструменте Modeler. Для сценария сквозного мониторинга представлены соответствующие учебные проекты (см. раздел Материалы для загрузки).

Установка подключаемых модулей

Для установки подключаемых модулей выполните следующие шаги.

  • Скопируйте два предоставленных JAR-файла (см. раздел Материалы для загрузки в каталог \plugins своей установки Modeler V7. При установке Modeler в местоположение по умолчанию этот маршрут имеет вид C:\Program Files\IBM\WBModeler62\plugins.
  • Перезапустите продукт Modeler.

Обзор сценария

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

Чтобы помочь вам приступить к работе, мы создали готовую к применению и очень простую модель процесса Loan application (подача заявки на кредит) (см. раздел Материалы для загрузки). Распакуйте и импортируйте файл с расширением .mar в Modeler. Для этого выберите следующую опцию: File => Import => WebSphere Business Modeler Import => WebSphere Business Modeler project.

После завершения импорта вышеуказанного проекта откройте процесс LoanEndToEndProcess. Он должен выглядеть следующим образом (см. рис. 1).


Рисунок 1. Сквозной процесс Loan application

end-to-end loan application proces

Мониторингу подвергаются две задачи (или два процесса) в вышеупомянутом сквозном процессе. Третья задача с именем Review Loan And Update является ручным процессом и, соответственно, не подлежит мониторингу. Рассмотрим вкратце два процесса, которые подвергаются мониторингу - это процесс Loan_InitiationOne, показанный на рис. 2, и процесс Loan_CompletionOne, показанный на рис. 3.


Рисунок 2. Процесс Loan_InitiationOne
Loan_InitiationOne process

Рисунок 3. Процесс Loan_CompletionOne

Loan_CompletionOne process

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

Теперь можно просмотреть бизнес-показатели для процессов, которые будут подвергаться мониторингу. Для этого нажмите мышью в любом месте диаграммы соответствующего процесса. Вы увидите соответствующие данные, отображаемые в представлении Business Measures. На рис. 4 показаны бизнес-показатели для процесса Loan_InitiationOne.


Рисунок 4. Бизнес-показатели для процесса Loan_InitiationOne

Business measures                     for Loan_InitiationOne

Для мониторинга каких-либо действий в процессе Loan_InitiationOne необходимо поставить флажки в соответствующих окошках. Функция продукта Modeler под названием Export to WebSphere Integration Developer создает контекст мониторинга для каждого действия, подлежащего мониторингу в модели мониторинга для процесса Loan_InitiationOne. Для реализации сквозного мониторинга подключаемый модуль извлекает значения этих бизнес-показателей из контекстов мониторинга в низкоуровневых моделях мониторинга. Мы опишем это более подробно в разделе Создание набора мониторинга. Для процесса LoanCompletionOne бизнес-показатели должны иметь следующий вид (см. рис 5).


Рисунок 5. Бизнес-показатели для процесса Loan_CompletionOne

Business measures for Loan_CompletionOne

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

В общем случае флажок Processing Time вкладки Monitored Values на вкладке Business Measures должен быть установлен для каждого отдельного действия в каждом процессе (кроме всеобъемлющего процесса) проекта Modeler, который пользователь желает экспортировать в Integration Developer. Вы можете выбрать и другие контролируемые значения (в дополнение к значениям параметра Processing Time). Это необходимо для того, чтобы результирующие модели мониторинга, сгенерированные функцией экспорта, содержали контексты мониторинга для соответствующих действий. Контекст мониторинга в модели мониторинга получает низкоуровневые BPEL-события и гарантирует, что модель мониторинга получит значения данных (такие как значения атрибута бизнес-элемента), связанные с этими действиями.

Теперь рассмотрим реально используемые бизнес-элементы - LoanApplicationType (рис. 6) и LoanType (рис. 7).


Рисунок 6. Бизнес-элемент LoanApplicationType

LoanApplicationType business item

Каждый из этих бизнес-элементов имеет несколько атрибутов, любой из которых мы могли бы использовать для создания набора мониторинга. В созданной нами модели все атрибуты бизнес-элемента LoanApplicationType имеют тип Text, но вы можете использовать примитив любого типа, например, Integer или Date.

Например, в бизнес-элементе LoanType мы включили атрибуты типа Boolean и Date (см. рис. 7).


Рисунок 7. Бизнес-элемент LoanType

LoanType business item

Активация сквозного мониторинга

IВ этом разделе описывается, как создать набор мониторинга, как использовать существующие опции экспорта в Modeler для создания базовой модели мониторинга и как использовать новую опцию экспорта WebSphere Business Modeler End-to-End Monitoring, предоставляемую подключаемыми модулями, для интеграции базовых моделей мониторинга с целью мониторинга сквозного процесса. В разделе Ограничения функции сквозного мониторинга мы опишем ограничения этой новой опции экспорта.

Создание набора мониторинга

Для создания нового набора мониторинга выполните следующие шаги.

  1. Правой кнопкой нажмите в дереве проекта на пункт Business items и последовательно выберите: New => Business Item(см. рис. 8.)

    Рисунок 8. Создание набора мониторинга
    Create a monitor set
  2. В диалоговом окне New Monitoring Set задайте уникальное имя для набора мониторинга, как показано на рис.9, и нажмите Finish.

    Рисунок 9. Диалоговое окно создания нового набора мониторинга
    The monitor set creation dialog

Откроется редактор набора мониторинга (см. рис. 10).



Рисунок 10. Редактор набора мониторинга

The monitor set editor

Открыв экземпляр набора мониторинга, предоставленный вместе со сценарием проекта Loan application, вы увидите, что он уже имеет связывания (bindings), показанные на рис. 10. Вы всегда можете добавлять/удалять ключи (в левой панели редактора), создавать/изменять связывания любого ключа, а также удалять связывания (в правой панели редактора).

Кнопки Add и Remove функционируют примерно так же, как аналогичные кнопки в редакторе бизнес-элементов, с которым вы, вероятно, знакомы, за одним исключением: при редактировании столбца Type пользователю представляется список примитивов только тех типов (см. рис. 11), которые допустимы для соответствующего ключа в наборе мониторинга (Примечание. Порядок ключей не имеет значения).



Рисунок 11. Добавление ключа к набору мониторинга

Adding a                             key

Чтобы набор мониторинга имел непротиворечивое множество связываний, необходимо соблюдать следующие два условия. (1) любой бизнес-элемент, участвующий в любом связывании, должен присутствовать во всех связываниях; (2) любая пара "бизнес-элемент/атрибут" может быть связана лишь с одним ключом. Таким образом, при удалении какого-либо связывания (или при первом добавлении связывания) набор мониторинга будет временно находиться в несогласованном состоянии, на что будет указывать сообщение красного цвета в строке состояния.

  1. Чтобы создать новое связывание, выберите ключ в основной области редактора и нажмите на расположенную справа кнопку Bind (см. рис. 12).

    Рисунок 12. Связывание атрибута с ключом в наборе мониторинга
    Bind an attribute to a key

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

  1. На первой странице мастера (см. рис. 13) выберите нужный бизнес-элемент. Удостоверьтесь, что это именно тот элемент, который будет использоваться в процессах, мониторинг которых вы собираетесь осуществлять.

    Рисунок 13. Выбор бизнес-элемента для связывания с ключом набора мониторинга
    Select a business item for binding

Примечание. Бизнес-элемент не будет присутствовать в списке, если у него нет атрибутов корректного типа (т.е., атрибутов типа, соответствующего типу только что созданного вами ключа набора мониторинга). Кроме того, если бизнес-элемента имеет атрибут корректного типа, но этот атрибут уже связан в наборе мониторинга, такой бизнес-элемент также не будет присутствовать в списке.

  1. Нажмите на кнопку Next, а затем выберите атрибут бизнес-элемента для использования в связывании, как показано на рис. 14.

    Рисунок 14. Связывание атрибута бизнес-элемента с ключом набора мониторинга
    Bind an attribute to a key
  2. Нажмите на кнопку Finish. Вы увидите ваше новое связывание в редакторе наборов мониторинга.
  3. Сохраните набор мониторинга.

Экспорт модели мониторинга

Теперь все готово для экспорта модели мониторинга. Это двухступенчатый процесс, состоящий из экспорта в Integration Developer и последующего экспорта в Integration Developer, который интегрирует низкоуровневые модели мониторинга (LMM-модели) и высокоуровневую модель мониторинга (HMM-модель), сгенерированную для экспорта.

  1. Сначала экспортируйте проект в Integration Developer. Для этого нажмите правой кнопкой мыши на этот проект в дереве проектов и выберите File => Export => WebSphere Business Modeler Export => WebSphere Integration Developer.
  2. На первой странице задайте папку, в которой вы хотите разместить экспортируемые файлы. Мы рекомендуем создать для этого новую папку. Если вы зададите в поле Target directory новое имя каталога, то мастер запросит у вас подтверждение на создание этого каталога. Удостоверьтесь, что выбрана опция Export entire project and related projects, как показано на рис. 15, а затем нажмите на Next.

    Рисунок 15. Выбор целевого каталога для экспортируемого проекта
    Select target directory for exported project
  3. На следующей странице примите все значения по умолчанию и нажмите на Next.
  4. На следующей странице поставьте флажок в окошке Export business measures as a monitor model or models, удостоверьтесь, что выбрана опция Export to a single monitor model…, а затем нажмите на Next, как показано на рис. 16.

    Рисунок 16. Выбор бизнес-показателей для экспорта в качестве модели (моделей) мониторинга
    Select to export business measures
  5. Убедитесь в корректности экспорта, а затем нажмите на Finish. После завершения экспорта вы должны увидеть два предупреждения, показанные на рис. 17.

    Рисунок 17. Предупреждения после экспорта в Integration Developer
    Warnings after export

Теперь каталог Integration Developer, в который вы экспортировали свой проект, должен содержать следующие два архивированных файла (метки даты и времени генерации файлов будут другими):

    • wfm1_62c_WeFinanceLoanModelProject_2010-01-06T11.42.53.zip
    • wfm1_62c_WeFinanceLoanModelProject_Monitor_2010-01-06T11.42.52.zip

Архивированная папка с подстрокой _Monitor_ должна содержать модели мониторинга с суффиксом .mm на конце для каждого процесса в проекте, выбранного для экспорта. Помимо других файлов, в этой папке должны присутствовать следующие модели мониторинга

    • Loan_InitiationOne.mm
    • Loan_CompletionOne.mm
    • Loan_UpdateOne.mm
    • LoanEndToEndProcess.mm
  1. Выберите File => Export => WebSphere Business Modeler Export => WebSphere Business Modeler End-to-End Process Monitoring. (Примечание. Это новая опция, предоставленная подключаемым модулем).
  2. Выберите каталог, в который вы экспортировали проект на шаге 2, а затем выберите сквозной процесс, мониторинг которого вы собираетесь осуществлять (в нашем случае это процесс LoanEndToEndProcess - см. рис. 18). Затем нажмите на кнопку Next.

    Рисунок 18. Выбор сквозного процесса для экспорта
    Select the end-to-end process

    Примечание. Экспорт потерпит неудачу, если этот каталог будет содержать более двух архивированных файлов или более одного архивированного файла, содержащего подстроку
    _Monitor_.
  3. На следующей странице выберите набор мониторинга, который вы будете использовать (в этом примере это набор MyMonitoringSet, см. рис. 19) и нажмите на Finish.

    Рисунок 19. Выбор набора мониторинга для экспорта
     Select a monitor set

Как работает функция мониторинга сквозного процесса

После того как вы выполните шаги из предыдущего раздела, функция мониторинга сквозного процесса, предоставляемая модулем plug0-in, распакует архивированную папку с подстрокой _Monitor_ в заданный вами целевой каталог. Эта запакованная папка уже должна содержать модели мониторинга из выполненного вами экспорта в Integration Developer.

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

Кроме того, для каждого исходящего события программный код создает в высокоуровневой модели мониторинга входящее событие с именем как у сквозного процесса, а также задает показатель корреляции, который коррелирует полезные нагрузки входящих событий, полученных от высокоуровневых моделей мониторинга различных процессов в сквозном процессе. Сравнивая значения этих показателей, полученные от разных моделей (осуществляющих мониторинг отдельных частей сквозного процесса), высокоуровневая модель мониторинга идентифицирует соответствующие экземпляры сквозного процесса. Кроме того, программный код создает XML-определение для каждого входящего/исходящего события и сохраняет его в файле с именем ModelOutboundEvent.XSD.

К примеру, в учебном проекте Loan application, предоставляемым вместе с данной статьей, набор мониторинга MonitorSet_MS содержит ключ LoanID, который отображается на атрибут LoanId бизнес-элемента LoanApplicationType, а также на атрибут LoanID бизнес-элемента LoanType. На элемент LoanApplicationType ссылается процесс Loan_InitiationOne, а на элемент LoanType ссылается процесс Loan_CompletionOne. Таким образом, программный код опции экспорта WebSphere Business Modeler End-to-End Process Monitoring вставляет в модель мониторинга исходящее событие и показатель для процесса Loan_InitiationOne.

В листинге 1 показан XML-файл для исходящего события из модели Loan_InitiationOne_Mon.mm.


Листинг 1. Исходящее событие в модели мониторинга для процесса Loan_InitiationOne

 

<outboundEvent displayName="ModelOutboundEvent"

    extensionName="ActionServicesEvent"

    id="ModelOutboundEvent" rootElement="cbe:CommonBaseEvent">

    <eventPart displayName="correlation part"

        id="correlationpart"

        path="cbe:CommonBaseEvent/correlationpart" type="mn:ModelCorrelationEvent"/>

    <map>

        <trigger ref="Loan_InitiationOne_Termination_Trigger"/>

        <outputValue>

            <assignments>

            <assignment

                leftValue="ModelOutboundEvent/extendedData/BusinessSituationName"

                rightValue="'Loan_InitiationOne event'"/>

            <assignment

                leftValue="ModelOutboundEvent/correlationpart/ModuleName"

                rightValue=""Loan_InitiationOne""/>

            <assignment

                leftValue="ModelOutboundEvent/correlationpart/CorrelationString0"

                rightValue="LoanId"/>

            </assignments>

        </outputValue>

    </map>

</outboundEvent>

 

В листинге 2 показатель LoanId инициализируется посредством поля expression, которое указывает на местоположение в контексте мониторинга, где находится значение LoanId. Исходящее событие (в листинге 1) посылает это значение в высокоуровневую модель мониторинга. ReceiveLoanApplication в листинге 2 - это действие процесса Loan_InitiationOne.


Листинг 2. Вставленный показатель (с полезной нагрузкой) в модели мониторинга для процесса Loan_InitiationOne

 

<metric displayName="LoanId" id="LoanId" type="xsd:string">

   <map>

      <outputValue>

         <singleValue

            expression="ReceiveLoanApplication/ReceiveLoanApplicationENTRY/Input/LoanId"/>

      </outputValue>

   </map>

</metric>

 

Кроме того, этот код вставляет исходящее событие и показатель в модель мониторинга для процесса LoanCompletionOne (в данном случае это модель Loan_CompletionOne_Mon.mm). Это исходящее событие, поступающее в высокоуровневую модель мониторинга, содержит значение показателя, необходимое высокоуровневой модели мониторинга для коррелирования разных экземпляров одного и того же всеобъемлющего процесса. В листинге 3 показано это вставленное исходящее событие.


Листинг 3. Исходящее событие в модели мониторинга для процесса Loan_CompletionOne

 

<outboundEvent displayName="ModelOutboundEvent"

    extensionName="ActionServicesEvent"

    id="ModelOutboundEvent" rootElement="cbe:CommonBaseEvent">

    <eventPart displayName="correlation part"

        id="correlationpart"

        path="cbe:CommonBaseEvent/correlationpart" type="mn:ModelCorrelationEvent"/>

    <map>

        <trigger ref="Loan_CompletionOne_Termination_Trigger"/>

        <outputValue>

            <assignments>

                <assignment

                    leftValue="ModelOutboundEvent/extendedData/BusinessSituationName"

                    rightValue="'Loan_CompletionOne event'"/>

                <assignment

                    leftValue="ModelOutboundEvent/correlationpart/ModuleName"

                    rightValue=""Loan_CompletionOne""/>

                <assignment

                    leftValue="ModelOutboundEvent/correlationpart/CorrelationString0"

                    rightValue="LoanID"/>

            </assignments>

        </outputValue>

    </map>

</outboundEvent>

 

В листинге 4 показатель LoanID инициализируется посредством поля expression, которое указывает на местоположение в контексте мониторинга модели мониторинга для процессе Loan_CompletionOne, где находится значение LoanID. Значение VerifyRiskOfficerInvolvement в поле expression показателя - это действие процесса Loan_CompletionOne. Исходящее событие (см. листинг 3) посылает значение этого показателя из модели мониторинга процесса Loan_CompletionOne в высокоуровневую модель мониторинга.


Листинг 4. Вставленный показатель LoanID в модели мониторинга для процесса Loan_CompletionOne

 

<metric displayName="LoanID" id="LoanID" type="xsd:string">

   <map>

      <outputValue>

         <singleValue

expression="VerifyRiskOfficerInvolvement/VerifyRiskOfficerInvolvementENTRY/Input/LoanID"/>

      </outputValue>

   </map>

</metric>

 

В листинге 5 показано определение события для исходящих событий, автоматически созданное программным кодом подключаемого модуля. Это определение события сохраняется в файле ModelCorrelationEvent.XSD.


Листинг 5. XML-определение исходящего события.

 

<xsd:schema

            targetNamespace="http://MultiModuleMonitoring_lib"

            xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <xsd:complexType name="ModelCorrelationEvent">

        <xsd:sequence>

            <xsd:element minOccurs="0" name="ModuleName" type="xsd:string"/>

            <xsd:element minOccurs="0" name="ModuleId" type="xsd:string"/>

            <xsd:element minOccurs="0" name="ActivityId" type="xsd:string"/>

            <xsd:element minOccurs="0" name="EventId" type="xsd:string"/>

            <xsd:element minOccurs="0" name="CorrelationString0" type="xsd:string"/>

        </xsd:sequence>

    </xsd:complexType>

</xsd:schema>

 

Как показано в листинге 6, высокоуровневая модель мониторинга LoanEndToEndProcess_Mon.mm получает два входящих события: одно от низкоуровневой модели мониторинга для процесса Loan_InitiationOne и одно от низкоуровневой модели мониторинга для процесса Loan_CompletionOne.


Листинг 6. Два входящих события в высокоуровневой модели, полученные от низкоуровневых моделей мониторинга

 

<inboundEvent displayName="Loan_InitiationOne event"

    extensionName="ActionServicesEvent"

    id="Loan_InitiationOne_event"

    multipleCorrelationMatches="raiseException"

    noCorrelationMatches="createNewContext"

    oneCorrelationMatch="deliverEvent" rootElement="cbe:CommonBaseEvent">

    <eventPart displayName="correlation part"

        id="correlationpart"

        path="cbe:CommonBaseEvent/correlationpart"

        type="mn:ModelCorrelationEvent"/>

    <correlationPredicate

    expression="LoanID = Loan_InitiationOne_event/correlationpart/CorrelationString0"/>

    <filter expression="Loan_InitiationOne_event/extendedData/BusinessSituationName =

        'Loan_InitiationOne event'"/>

</inboundEvent>

 

<inboundEvent displayName="Loan_CompletionOne event"

    extensionName="ActionServicesEvent"

    id="Loan_CompletionOne_event"

    multipleCorrelationMatches="raiseException"

    noCorrelationMatches="createNewContext"

    oneCorrelationMatch="deliverEvent" rootElement="cbe:CommonBaseEvent">

    <eventPart displayName="correlation part"

        id="correlationpart"

        path="cbe:CommonBaseEvent/correlationpart"

        type="mn:ModelCorrelationEvent"/>

    <correlationPredicate

    expression="LoanID = Loan_CompletionOne_event/correlationpart/CorrelationString0"/>

    <filter expression="Loan_CompletionOne_event/extendedData/BusinessSituationName =

'Loan_CompletionOne event'"/>

</inboundEvent>

 

Как показано в листинге 7, высокоуровневая модель мониторинга инициализирует локальный показатель с именем LoanID посредством значений показателя LoanID, которые она получает от моделей мониторинга для процесса Loan_InitiationOne и для процесса Loan_CompletionOne. Высокоуровневая модель мониторинга сравнивает полученные показатели; в случае их совпадения локальный показатель считается верным.


Листинг 7. Значения показателей, полученные от низкоуровневых моделей мониторинга

 

<metric displayName="LoanID" id="LoanID" isPartOfKey="true" type="xsd:string">

    <map>

        <outputValue>

            <singleValue

             expression="Loan_CompletionOne_event/correlationpart/CorrelationString0"/>

        </outputValue>

    </map>

    <map>

        <outputValue>

            <singleValue

             expression="Loan_InitiationOne_event/correlationpart/CorrelationString0"/>

        </outputValue>

    </map>

</metric>

 

Код подключаемого модуля вставляет в высокоуровневую модель мониторинга булевский показатель, который индицирует получение HMM-моделью какого-либо входящего события. В сценарии Loan application код подключаемого модуля задает два булевских показателя - один из них показывает получение HMM-моделью входящего события от модели мониторинга для процесса Loan InitiationOne, а второй показывает получение HMM-моделью входящего события от модели мониторинга для процесса Loan_CompletionOne. В листинге 8 показан вставленный XML-фрагмент.


Листинг 8. Булевский показатель, указывающий на получение HMM-моделью входящего события

 

<metric

    displayName="Loan_CompletionOne_LoanID"

    id="Loan_CompletionOne_LoanID"

    type="xsd:boolean">

    <map>

        <outputValue>

            <singleValue

    expression="fn:exists(Loan_CompletionOne_event/extendedData/BusinessSituationName)"/>

        </outputValue>

    </map>

    <defaultValue>

        <singleValue expression="false()"/>

    </defaultValue>

</metric>

 

<metric

    displayName="Loan_InitiationOne_LoanId"

    id="Loan_InitiationOne_LoanId"

    type="xsd:boolean">

    <map>

        <outputValue>

            <singleValue

    expression="fn:exists(Loan_InitiationOne_event/extendedData/BusinessSituationName)"/>

        </outputValue>

    </map>

    <defaultValue>

        <singleValue expression="false()"/>

    </defaultValue>

</metric>

 

Выходные файлы

После завершения экспорта программный код создает новую запакованную папку (имя которой содержит подстроку EndToEndMonitor) с модифицированными моделями мониторинга, которые теперь обеспечивают сквозной мониторинг. Кроме того, в этой папке находится исходный набор файлов, созданных посредством экспорта в Integration Developer. На рис. 20 показан пример целевой папки после завершения экспорта с помощью опции WebSphere Business Modeler End-to-End Monitoring (ваши метки даты/времени будут другими). Эти архивированные папки также имеются в материалах для загрузки к данной статье.


Рисунок 20. Целевой каталог после экспорта с целью обеспечения сквозного мониторинга

Target directory after export

Ограничения функции сквозного мониторинга

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

Мониторинг в Integration Developer

Теперь вы готовы отредактировать свои модели мониторинга и развернуть их в Integration Developer V7. Мы протестировали продукт WebSphere Integration Developer с поддержкой генерации модели мониторинга и профиля WebSphere Business Monitor в среде WebSphere Process Server.

Импорт проектов в Integration Developer

Теперь вы должны импортировать в новое рабочее пространство два файла учебного проекта, предоставленные для загрузки вместе с данной статьей. Согласно требованиям Integration Developer, сначала следует импортировать папку модели, а затем папку мониторинга (т.е. импорт должен осуществляться поочередно, по одной папке).

  1. В Integration Developer выберите File => Import .
  2. В поле Select and import source введите inter или перейдите к пункту Project Interchange (см. рис. 21), а затем выберите Project Interchange и нажмите Next.

    Рисунок 21. Импорт проекта Modeler в Integration Developer
    Import a Modeler project
  3. На следующей странице перейдите к zip-файлу загружаемой модели и выберите ее, как показано на рис. 22 (метка даты будет отличаться). Будет показан список, состоящий из трех папок. Нажмите на кнопку Select All, а затем нажмите на кнопку Finish.

    Рисунок 22. Выбор папок для импорта
    Select folders to import
  4. Дождитесь завершения импорта, а затем импортируйте zip-файл проекта EndToEndMonitor, как показано на рис. 23 (метка даты будет другой).

    Рисунок 23. Выбор проекта EndtoEndMonitor для импорта
    Select project to impor
  5. Теперь рабочее пространство построено. После завершения вышеописанных операций (и только после этого) мы настоятельно рекомендуем "очистить" рабочее пространство. Для этого выберите Project => Clean => Clean all projects, а затем нажмите OK. Рабочее пространство будет построено заново. Прежде чем двигаться дальше, необходимо дождаться завершения построения рабочего пространства. Проверьте вкладку Problems на предмет наличия в рабочем пространстве каких-либо ошибок построения. Если вы наблюдаете какие-либо ошибки, обратитесь за рекомендациями в раздел Устранение неполадок.

После успешного импортирования файлов учебного проекта ваше рабочее пространство в перспективе Business Integration должно выглядеть следующим образом (см. рис. 24).



Рисунок 24. Рабочее пространство Integration Developer после импорта файлов учебного проекта

  1. Workspace after importТеперь внесем несколько рекомендованных изменений. Откройте процесс Loan_InitiationOne и в разделе Details представления Properties и измените значение параметра Automatically delete the process after completion (Автоматически удалять процесс после завершения) на No. Это позволит вам исследовать экземпляр процесса в инструменте Business Process Choreographer Explorer после успешного завершения потоков работ.
  2. В представлении Properties переключитесь на вкладку Event Monitor (рис. 25) и убедитесь в том, что события активированы, что события представлены в формате XML с поддержкой схемы и что соответствующие CEI-события (Common Event Infrastructure) отсылаются для всего процесса и для каждого контролируемого действия (Event Monitor).

    Рисунок 25. Вкладка Event Monitor в представлении Properties
    Event Monitor tab
  3. Повторите шаги 6 и 7 для процесса Loan_CompletionOne.
  4. BPEL-потоки работ, экспортируемые из Modeler, пока еще не готовы к исполнению. Для их успешного исполнения необходимы сервисы, вызываемые этими потоками. Вместо реализации Web-сервисов воспользуемся простой Java-реализацией, непосредственно связанной с BPEL-потоками.
  5. Для этого выберите wfm1_62c_WeFinanceLoanModelProject_impl => Assembly Diagram и нажмите правой кнопкой на порт Reference Partner в компоненте типа "посреднический поток" (mediation flow), представляющем сервис (напр., VerifyRiskOfficerInvolvement), а затем выберите Wire References to New => Components. В результате будет создан новый ссылочный компонент без контроля типов (untyped) с именем ReferencePartner.
  6. Для реализации этого компонента дважды нажмите на него мышью и выберите OK. В появившемся диалоговом окне выберите Java из списка типов для реализации, а затем выберите Default Implementation и нажмите OK. Откроется новый редактор с исходным кодом Java.
  7. В этом редакторе посмотрите на метод InputCriterion(DataObject input), показанный на рис. 26. Если этот метод возвращает void, то изменения не нужны, но если он возвращает DataObject, измените последнюю строку с return null; на return input;.
  8. Если вы хотите видеть в файлах системного журнала сервера, когда осуществляется вызов этого метода, добавьте следующую строку: System.out.println("VerifyRiskOfficerInvolvement method called").

    Рисунок 26. Метод InputCriterion() в Java-реализации BPEL-потока работ для действия VerifyRiskOfficerInvolvement
    he InputCriterion() method
  9. Повторите шаги 10-13 для каждого сервисного компонента в сборочной диаграмме. В качестве альтернативного варианта вы можете задать собственные реализации всех сервисов, за исключением сервиса StoreComment, который является частью процесса Loan_UpdateOne.

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

Генерация J2EE-проектов

После определения BPEL-потоков вам необходимо развернуть модели мониторинга на сервере. В представлении Integration Developer Business Monitoring вы должны видеть две низкоуровневые модели мониторинга (Loan_InitiationOne и Loan_CompletionOne) и одну высокоуровневую модель мониторинга (LoanEndToEndProcess). Вы можете проигнорировать модель мониторинга для процесса Loan_UpdateOne, поскольку он является ручным процессом.

  1. Правой кнопкой поочередно нажимайте на каждом файле модели мониторинга (кроме Loan_UpdateOne) и в ниспадающем меню выбирайте пункт Generate Monitor J2EE Projects, как показано на рис. 27.

    Рисунок 27. Генерация проектов типа Monitor J2EE
    Generate Monitor J2EE project
  2. Если сервер Monitor еще не запущен, запустите его из представления Servers, как показано на рис. 27.

    Рисунок 28. Запуск сервера Monitor
    Start the server
  3. После запуска сервера осуществите добавление проектов. Для этого нажмите правой кнопкой мыши на имя сервера и выберите опцию Add and Remove Projects.
  4. В появившемся диалоговом окне выберите все модули, включая wfm1_62c_WeFinanceLoanModelProject_implApp и wfm1_62c_WeFinanceLoanModelProject, и нажмите на кнопку Add, как показано на рис. 29.

    Рисунок 29. Публикация проектов на сервере
    Publish projects
  5. Теперь вы готовы к исполнению потоков работ и к осуществлению их мониторинга. Простейший способ исполнения потоков работ с целью быстрого рассмотрения мониторинга процесса Loan application состоит в использовании продукта Business Process Choreographer Explorer. Для открытия Choreographer укажите в своем Web-браузере его URL-адрес. Как правило, это адрес имеет вид https://localhost:9444/bpc/faces/pages/Login.jsp.
  6. Для запуска потока работ нажмите на Process Templates в левой части окна и поставьте флажок в контрольном окошке шаблона процесса, который вы хотите исполнять (см. рис. 30).

    Рисунок 30. Шаблоны процесса в инструменте Business Process Choreographer
    Process templates
  7. Поставьте флажок в окошке Loan_InitiationOne и нажмите на кнопку Start Instance.
  8. Задайте входные параметры, например, 455 для LoanID, и нажмите на кнопку Submit (см. рис. 31).

    Рисунок 31. Отправка процесса Loan_InitiationOne на исполнение
    Submit Loan_InitiationOne
  9. Повторите шаги 7 и 8 для шаблона процесса Loan_CompletionOne, как показано на рис. 32.

    Рисунок 32. Отправка процесса Loan_CompletionOne на исполнение
    Sbmit Loan_CompletionOne

Настройка представления Business Space для осуществления мониторинга

В ходе исполнения потоков работ вы можете воспользоваться виджетами мониторинга в представлении Business Space для наблюдения за состоянием этих потоков.

  1. Откройте Business Space, указав в Web-браузере соответствующий URL. Как правило, этот адрес имеет вид https://localhost:9444/BusinessSpace/login.jsp.
  2. Как показано на рис. 33, создайте новое представление с именем TestMonitoring и добавьте к нему следующие новые страницы.
    • Мониторинг процесса Loan Initiation (MonitorLoanInit)
    • Мониторинг процесса Loan Completion (MonitorLoanDone)
    • Мониторинг сквозного процесса (MonitorLoanEndToEnd)



Рисунок 33. Новое представление Business Space для просмотра событий, подвергаемых мониторингу

  1. new business spaceНа каждой странице добавьте два виджета, один типа Instances (экземпляры) и один типа Diagrams (диаграммы), а затем сконфигурируйте их, как показано далее.

    Рисунок 34. Конфигурирование виджета для процесса Loan_InitiationOne в представлении Business Space
    Configure Loan_InitiationOne
  2. Чтобы сконфигурировать виджет Instances для процесса Loan_InitiationOne, выберите соответствующую модель мониторинга (Loan_InitiationOne), нажмите на кнопку Set as default, а затем выберите все доступные столбцы для отображения. На вкладке Wiring нажмите на опцию Enable this widget to send events over wires, нажмите Apply, а затем OK.
  3. Чтобы сконфигурировать виджет Diagrams выберите в окошке Monitoring Context опцию Loan_InitiationOne (см. рис. 35) и Apply, а затем OK.

    Рисунок 35. Выбор диаграммы для отображения
    Select diagram to display

Теперь вы сможете открыть MonitorLoanInit и MonitorLoanDone. Вы увидите экземпляры процессов Loan_InitiationOne (рис. 36) и Loan_CompletionOne (рис. 37), которые вы исполняли в Business Process Choreographer Explorer, с соответствующим значением идентификатора LoanID.


Рисунок 36. Успешное исполнение экземпляра Loan_InitiationOne с идентификатором LoanId = 455
success 1

Рисунок 37. Успешное исполнение экземпляра Loan_CompletionOne с идентификатором LoanID = 455

success 2И, наконец, вы можете увидеть сквозной процесс мониторинга. Откройте виджет, который вы создали для мониторинга сквозного процесса Loan application (см. рис. 38).


Рисунок 38. Сквозной процесс с идентификатором LoanID = 455, обнаруженный HMM-моделью

Process with LoanID = 455 detectedИспользование редактора моделей мониторинга Integration Developer для дополнительной настройки

С помощью редактора моделей мониторинга (MME) из состава Integration Developer вы сможете при желании дополнительно настроить визуальное представление каждой модели мониторинга (например, менять цвета, если значения показателей загружены), как показано на рис. 39.


Рисунок 39. Редактирование визуальной модели в редакторе моделей мониторинга

editing the visual model

К примеру, вы можете менять цвета блоков для действий Loan_InitiationOne и Loan_CompletionOne в зависимости от того, какой из этих процессов исполнялся (согласно листу fill color в дереве, показанном рис. 39). Значения показателей, полученных посредством событий в Business Space, можно всегда отображать в виде текста. Вы можете отредактировать визуальное представление каждой модели мониторинга таким образом, чтобы действия в диаграммах (входящих в виджеты бизнес-пространства) могли менять отображаемые цвета и/или текст непосредственно в ходе мониторинга информации.

Результаты настройки, осуществленной на рис. 39, появятся в представлении Business Space, показанном на рис. 40. При обнаружении экземпляра Loan application с идентификатором LoanID = 222 блоки действий приобретают оранжевую окраску, а также выводятся значения показателей с соответствующим идентификатором LoanID.


Рисунок 40. Результаты настройки, показанные в представлении Business Space

customization results

Устранение неполадок

Если вы не видите экземпляров процесса в высокоуровневой модели мониторинга (на странице MonitorLoan в пространстве Business Space), проверьте отправку событий из моделей мониторинга для процессов Loan_InitiationOne и Loan_CompletionOne. Для этого откройте браузер Common Base Event Browser (как правило, он находится по адресу: https://localhost:9044/ibm/console/cbebrowser/), нажмите GetEvent, выберите временной диапазон создания Creation Time Date и нажмите Get Events.

Активируйте регистрацию событий в консоли WebSphere Integrated Solutions Console

Удостоверьтесь, что регистрация событий активирована в консоли WebSphere Integrated Solutions Console. Для этого выполните следующие шаги.

  1. Выберите Applications => Monitor Services => Recorded Events Manager (см. рис. 41).

    Рисунок 41. Устранение неполадок с помощью консоли Integrated Solutions Console
    Troubleshooting using the ISC
  2. Выберите вкладку Events Management, а затем опцию Enable events to be recorded.
  3. Экспортируйте события в XML-файл, чтобы увидеть, осуществляют ли низкоуровневые модели мониторинга получение/отправку событий. Откройте экспортированный XML-файл в Web-браузере или в текстовом редакторе и проанализируйте его на предмет отправки ожидаемых событий.
  4. Если вы запускаете процессы многократно, то можете удалить старые экземпляры - это упростит тестирование. Для этого откройте административную консоль Integration Developer (как правило, она находится по адресу: https://localhost:9044/ibm/console/secure/securelogon.do).
  5. Выберите Applications => Enterprise Applications. Вы увидите свои процессы, как показано на рис. 42. Для удаления старого экземпляра процесса сначала нажмите на него, а затем нажмите на Uninstall. После появления подсказки подтвердите свой выбор, затем нажмите на Save.

    Рисунок 42. Консоль администратора Integration Developer
    Integration Developer administrative console

Возможные ошибки

При импорте файлов своего проекта из Modeler в Integration Developer вы можете встретить ошибку компилятора в файле LoanEndToEndProcess_Mon.mm. Эта ошибка возникает при импорте проекта из версии Modeler V7 в версии Integration Developer V7. Эта ошибка находится в теге для контекста monitoringContext, у которого параметр displayName имеет значение LoanEndToEndProcess. Данная ошибка затрагивает атрибут eventSequenceIDPath. При возникновении этой ошибки попытайтесь удалить этот атрибут и его значение, а затем повторно скомпилировать свое рабочее пространство. С этой целью в меню Project выберите опцию Clean => Clean All Projects.

Заключение

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

С помощью инструмента Modeler вы выполнили следующие шаги.

  1. Сначала вы экспортировали проект Loan application в Modeler, а затем экспортировали его в Integration Developer.
  2. Затем указали на папку, содержащую экспортированные файлы, и снова экспортировали их в Modeler с помощью функции подключаемого модуля под названием WebSphere Business Modeler End-to-End Process Monitoring.

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

  1. В продукт Integration Developer были импортированы следующие два архивированных файла:
    • wfm1_62c_WeFinanceLoanModelProject_<DATE>.zip
    • wfm1_62c_WeFinanceLoanModelProject_EndToEndMonitor_<DATE>.zip
  2. В инструменте Integration Developer вы убедились в том, что файлы вашего проекта компилируются без ошибок, а затем переключились на представление Business Integration и задали BPEL-реализацию для всех действий своего проекта (за исключением действия, принадлежащего процессу LoanUpdate, который является ручным процессом). Затем вы сгенерировали файлы типа Monitor J2EE для моделей мониторинга Loan_InitiationOne, Loan_CompletionOne и LoanEndToEndProcess, после чего опубликовали эти файлы на сервере Monitor.
  3. В инструменте Business Process Choreographer вы запустили экземпляр процесса Loan_InitiationOne и экземпляр процесса Loan_CompletionOne посредством задания выбранного идентификатора LoanID.
  4. В представлении Business Space вы сформировали виджеты для просмотра событий, контролируемых вашими тремя моделями мониторинга, и визуально убедились в том, что высокоуровневая модель LoanEndToEndProcess получала события от низкоуровневых моделей Loan_InitiationOne и Loan_CompletionOne, а также была в состоянии использовать получаемый от них идентификатор LoanID для связывания экземпляров одного и того же сквозного процесса обращения Loan application.

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

Планируемые усовершенствования

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

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

 

Загрузка

 

Описание

 

Имя

 

Размер

 

Метод загрузки

 

Редактор набора мониторинга

com.ibm.btools.blm.ui.monitorseteditor_7.0.0.201008301317.jar

618 KБ

HTTP

Экспорт набора мониторинга

com.ibm.btools.blm.ui.monitorsetexport_7.0.0.201008301317.jar

67 KБ

HTTP

Модель Loan application

wfm1_WeFinanceLoanModelProject.mar

105 KБ

HTTP

Проект Loan application (1)

wfm1_WeFinanceLoanModelProject_2010-09-29T23.15.18.zip

673 KБ

HTTP

Проект Loan application (2)

wfm1_WeFinanceLoanModelProject_Monitor_2010-09-29T23.15.17.zip

2965 KБ

HTTP

Учебный проект, сгенерированный подключаемым модулем

wfm1_WeFinanceLoanModelProject_EndToEndMonitor_2010-09-29T23.18.16.zip

223 KБ

HTTP

 



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 21.08.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
IBM DOMINO ENTERPRISE CLIENT ACCESS LICENSE AUTHORIZED USER LICENSE + SW SUBSCRIPTION & SUPPORT 12 MONTHS
IBM Domino Enterprise Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
IBM Domino Messaging Client Access License Authorized User License + SW Subscription & Support 12 Months
IBM Domino Utility Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
IBM Domino Messaging Server Processor Value Unit (PVU) License + SW Subscription & Support 12 Months
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Работа в Windows и новости компании Microsoft
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100