Содержание


Использование MDM Application Toolkit для создания MDM-центричных бизнес-процессов. Часть 5

Безопасность

Comments

Серия контента:

Этот контент является частью # из серии # статей: Использование MDM Application Toolkit для создания MDM-центричных бизнес-процессов. Часть 5

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Использование MDM Application Toolkit для создания MDM-центричных бизнес-процессов. Часть 5

Следите за выходом новых статей этой серии.

В настоящей статье рассматриваются некоторые аспекты безопасности InfoSphere Master Data Management (MDM) Application Toolkit. В статье описывается, как обеспечить обмен зашифрованными потоками данных между разными конечными точками в сети, использующими инструментарий Application Toolkit. В статье также обсуждаются вопросы управления сертификатами для доступа к данным на рабочем сервере MDM с помощью бизнес-объекта MDM_Connection.

Отметим, что в настоящей статье не рассматриваются вопросы безопасности IBM Business Process Manager (BPM). Подробная информация о безопасности IBM BPM приводится в публикации серии IBM Redbooks® под названием "IBM Business Process Manager Security: Concepts and Guidance" («Безопасность IBM Business Process Manager: Концепции и рекомендации»).

Шифрование потоков

На рисунке 1 показана схема потоков данных в сети, связанных с использованием инструментария Application Toolkit и каждого из его компонентов – компонента для IBM BPM и компонента для сервиса REST (Representational State Transfer).

Рисунок 1. Потоки в сети, связанные с использованием Application Toolkit
Image shows network flows relating to Application Toolkit
Image shows network flows relating to Application Toolkit

Потоки данных между сервисом REST и рабочим сервером MDM

Сервис REST используется компонентом MDM Tree Coach View (входит в состав инструментария MDM Application Toolkit) и интеграционным сервисом Get MDM Entity. Для того чтобы использовать протокол безопасных соединений SSL для шифрования потоков между сервисом REST и рабочим сервером MDM:

  • Измените конфигурацию сервиса REST.
  • Убедитесь, что «сертификат подписчика» (Signer Certificate) рабочего сервера MDM был импортирован в BPM Process Center или в доверительное хранилище сервера BPM Process Server, где развернут сервлет сервиса REST.

В предыдущих статьях этого цикла было описано, как редактировать файл BPMConfig.xml для конфигурирования вашего сервиса REST и развертывания обновленного EAR-файла.

  1. Выберите адаптер с атрибутом servicePath, который вы хотите задействовать для зашифрованных потоков. Добавьте атрибут usessl элементу Server и установите для него значение true.
  2. Вы должны также изменить значение параметра port дочернего элемента на корректный номер защищенного порта рабочего сервера MDM. Например, значение по умолчанию для номера порта: 9443.

В листинге 1 показан раздел файла BPMConfig.xml с изменениями, описанными выше.

Листинг 1. Пример описания Adaptor для зашифрованных потоков
         <Adaptor servicePath="PhysicalRelationship"
          adaptorClass="com.ibm.im.mdm.bpm.adaptors.PhysicalRelationship"> <server
          usessl=>
        <host>testmdmserver.torolab.ibm.com</host>
        <port>9443</port>

После того как вы переупаковали EAR-файл сервиса REST, вы можете повторно развернуть EAR-файл сервиса REST в вашем сервере обработки данных IBM BPM Process Server или в центре обработки данных BPM Process Center. Если вы забыли импортировать свой сертификат, сервер приложений IBM WebSphere® Application Server генерирует сообщение об ошибке с подробным описанием того, как вы должны импортировать сертификат в вашу среду Process Server или Process Center. В листинге 2 показано это сообщение об ошибке.

Листинг 2. Сообщение об ошибке от WebSphere Application Server
WPKI0428I: Сторона, подписывающая сертификат, должна быть
        добавлена в локальное доверительное хранилище. Вы можете использовать опцию
        Retrieve from port в консоли управления для получения сертификата и решения
        проблемы. Если вы установили, что запрос заслуживает доверия, выполните следующие
        действия: 1. Войдите в консоль управления. 2. Раскройте Security и щелкните по
        SSL Certificate and Key management. В разделе установок Configuration settings щелкните
        по Manage endpoint security configurations. 3. Выберите подходящую выходную
        (исходящую) конфигурацию для перехода в область управления
        cell):Test1Node01Cell:(node):Test1Node01. 4. В Related Items щелкните по Key stores and
        certificates и, затем, выберите хранилище ключей NodeDefaultTrustStore. В Additional
        Properties щелкните по Signer certificates и выберите опцию Retrieve From Port. 6. В поле
        Host введите testmdmserver.torolab.ibm.com, в поле Port введите 9443 и в поле Alias введите
        testmdmserver.torolab.ibm.com_cert. 7. Щелкните по кнопке Retrieve Signer Information.
        8. Убедитесь, что сведения о сертификате соответствуют сертификату, которому вы можете
        доверять. 9. Нажмите на кнопки Apply и Save.

Используйте консоль управления WebSphere Application Server Admin Console для получения сертификата подписчика от вашего рабочего сервера MDM.

Рисунок 2. Диалоговое окно для получения SSL-сертификата подписчика
Image shows dialog to retrieve SSL signer certificate
Image shows dialog to retrieve SSL signer certificate

Потоки данных между Application Toolkit и рабочим сервером MDM

Для всех интеграционных сервисов в Application Toolkit (кроме интеграционного сервиса Get MDM Entity) потоки данных взаимодействуют с рабочим сервером MDM напрямую, а не через сервис REST. Это контролируется экземпляром бизнес-объекта MDM_Connection, созданным в вашем процессе для обработки информации о соединении с сервером MDM. Для организации зашифрованных потоков убедитесь, что сертификат подписчика рабочего сервера MDM импортирован в ваш Process Server или Process Center, где развернут процесс. Это тот же сертификат, который был импортирован в целях шифрования потоков для вашего сервиса REST (см. выше).

Для того чтобы гарантировать шифрование потока при вызове интеграционного сервиса, в экземпляре бизнес-объекта MDM_Connection установите для параметра usessl значение true, а для параметра port укажите номер соответствующего защищенного порта для вашего сервера приложений MDM.

Потоки данных между браузером и сервисом REST

Иерархическое дерево MDM, отображаемое в браузере, использует сервис REST для получения данных. Когда вы запускаете процесс через IBM BPM Process Portal, процесс по умолчанию использует HTTP в качестве протокола для обслуживания различных взаимодействий «человеческого сервиса» Human Service в рамках задач вашего процесса. Когда страница, содержащая дерево MDM, посылается браузеру по защищенному протоколу HTTPS, все потоки данных между деревом MDM и сервисом REST зашифрованы.

Потоки данных между Application Toolkit и сервисом REST

Интеграционный сервис Get MDM Entity будет вызывать сервис REST для получения информации. Поскольку вызовы не пересекают границ домена, незашифрованные потоки данных не должны компрометировать безопасность. Тем не менее, в соответствие с политикой безопасности, установленной в вашей организации, вы, возможно, захотите запретить все соединения по HTTP с сервером, на котором выполняются задачи вашего процесса и сервис REST. С другой стороны, вы можете отредактировать дескриптор (конфигурационный файл) развертывания сервиса REST перед его развертыванием, чтобы сервис REST принимал только зашифрованные потоки. В таких ситуациях интеграционный сервис Get MDM Entity должен быть настроен на использование зашифрованных потоков. Как показано на рисунке 3, в разделе Data Mapping вкладки Properties установите для параметра usessl интеграционного сервиса Get MDM Entity значение true и укажите для параметра restPort номер защищенного порта вашего Process Server или Process Center.

Рисунок 3. Пример определения соответствий данных для зашифрованных потоков от интеграционного сервиса Get MDM Entity
Image shows example data mapping for encrypted flows for Get MDM Entity
Image shows example data mapping for encrypted flows for Get MDM Entity

Управление учетными данными MDM

В этом разделе статьи описывается, как вы можете управлять данными сервера и учетными данными пользователей (user credentials), используемыми для подключения к рабочему серверу MDM. В предыдущих статьях этого цикла рассматривались экземпляры бизнес-объекта MDM_Connection, содержащие данные сервера и учетные данные пользователей. Эта информация может быть определена в описаниях процесса или загружаться в виде значений из переменных среды; при этом может не требоваться, чтобы все пользователи процесса применяли те же самые учетные данные.

Получение информации о подключении от пользователя

Учетные записи, которые пользователь использует для входа в IBM BPM Process Portal, недоступны в пределах бизнес-процесса. Давайте посмотрим на представление пользователя с помощью панели входа (login panel), которая запрашивает информацию о пользователе для подключения к рабочему серверу MDM. На рисунке 4 показан простой coach-элемент с данными пользователя для входа в систему.

Рисунок 4. Простой coach-элемент для ввода информации при подключении к рабочему серверу MDM
Image shows simple coach for entering MDM operational server connection details

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

Text Coach View для пароля

Для создания панели авторизованного входа вам, в первую очередь, необходимо поле для ввода пароля. В BPM нет coach-элемента такого типа, но вы можете быстро создать свое собственное поле для пароля. Начните с расширения одного из представлений (view) coach-элементов пользовательского интерфейса (UI), которые предоставляет BPM, выполнив следующие действия:

  1. Откройте ваше приложение процесса в BPM Process Designer.
  2. В разделе Toolkits раскройте набор инструментов Coaches toolkit.
  3. Щелкните по кнопке в строке User Interface и прокрутите список Coach View, пока не найдете Text Coach View.
  4. Щелкните правой кнопкой мыши по строке Text списка Coach View и в появившемся контекстном меню выберите пункт Copy item to, как показано на рисунке 5.
  5. Щелкните по пункту Other Process App и выберите ваше приложение процесса.

С помощью этих несложных операций вы можете скопировать Text Coach View в ваше приложение процесса.

Рисунок 5. Копирование Text Coach View в ваше приложение процесса
Image shows copying the Text Coach View to your process application
Image shows copying the Text Coach View to your process application

Теперь вы можете открыть Coach View в вашем приложении процесса. Щелкните по строке User Interface в боковой панели вашего приложения процесса и выберите Text Coach View в списке Coach Views.

Следующим шагом будет изменение элемента Text Coach View для превращения его в поле пароля и переименование Coach View.

Рисунок 6. Контекстное меню для Coach View
Image shows context menu for Coach View
Image shows context menu for Coach View
  1. Для вызова контекстного меню щелкните правой кнопкой мыши в рамке выбора (выше вкладки Overview), содержащей слово Text, как показано на рисунке 6.
  2. В контекстном меню щелкните по пункту Rename и измените название Coach View на Password Text.
  3. Вам нужно внести изменение в код JavaScript. Выберите вкладку Behavior в Coach View Designer и в разделе Behavior выберите Inline JavaScript.
  4. Найдите следующую строку кода:
    var _bpmComboBox = declare([ComboBox], { templateString:
  5. Измените атрибут templateString в JavaScript таким образом, чтобы HTML-тег input создавал поле для ввода password. Для этого найдите строку, где определен тег <input>, и измените тип с text на password.

В примере, приведенном в листингах 3 и 4, показано исходное и новое значение для тега <input>.

Листинг 3. Исходное значение
 <input class="dijitReset dijitInputInner" ${!nameAttrSetting}
          type="text" autocomplete="off" data-dojo-attach-point="textbox,focusNode"
        role="textbox" aria-haspopup="${hasDownArrow}"/>'
Листинг 4. Новое значение
 <input class="dijitReset dijitInputInner" ${!nameAttrSetting}
          type="password" autocomplete="off"
        data-dojo-attach-point="textbox,focusNode" role="textbox"
        aria-haspopup="${hasDownArrow}"/>'

Рисунок 7 поможет вам найти тег <input> в тексте кода JavaScript.

Рисунок 7. Строка текста кода JavaScript для изменения
Image shows changing the inline JavaScript code for a control
Image shows changing the inline JavaScript code for a control

Нажмите комбинацию клавиш Ctrl+S для сохранения выполненных изменений. Теперь у вас есть представление coach-элемента Password Text Coach View.

Информация о подключении (соединении) для сервиса Human Service

В этом разделе будет описано создание человеческого сервиса Human Service для запроса учетных данных пользователей и создания бизнес-объекта MDM_Connection. Для того чтобы иметь дело с несколькими экземплярами рабочего сервера, вам нужно создать бизнес-объект со следующими параметрами:

  • servername (String)
  • hostname (String)
  • port (String)
  • usessl (Boolean)

Создайте бизнес-объект с именем MDMServerMapping. На рисунке 8 показаны параметры, заданные для нового бизнес-объекта MDMServerMapping.

Рисунок 8. MDMServerMapping
Image shows MDMServerMapping business object
Image shows MDMServerMapping business object

На этом этапе вам нужно создать новый сервис Human Service с названием Server Selection. Сервису Human Service потребуются следующие определения переменных:

  • выходная переменная connection с типом MDM_Connection
  • частная переменная serverList с типом MDMServerMapping и кнопка-флажок Is List
  • частная переменная selectedServer с типом MDMServerMapping
  • частная переменная username с типом String
  • частная переменная password с типом String

На рисунке 9 показаны созданные вами выходная и частные переменные.

Рисунок 9. Переменные
Image shows variables
Image shows variables

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

Вам нужно построить диаграмму человеческого сервиса Server Selection, содержащую три серверных сценария Server Script, Coach-элемент, событие Error End и событие Stay On Page. На рисунке 10 показана готовая диаграмма сервиса Server Selection.

Рисунок 10. Диаграмма человеческого сервиса Server Selection Human Service
Image shows Server Selection Human Service Diagram
Image shows Server Selection Human Service Diagram

Сначала в диаграмму человеческого сервиса Server Selection добавьте Coach-элемент с именем Collect Information. На рисунке 11 показан готовый макет Coach-элемента.

Рисунок 11. Макет Coach-элемента
Coach Design

Вставьте в Coach-элемент представления полей Select Coach View, Text Coach View и Password Text Coach View, а также две кнопки (OK и Cancel). Кнопки сгруппированы по горизонтали в нижней части макета, а поля сгруппированы по вертикали.

  1. Свяжите следующие переменные с соответствующими полями Coach View:
    • serverList[] с Select Coach View (поле выбора сервера)
    • username с Text Coach View для поля Userid (имя пользователя)
    • password с Password Text Coach View для поля Password (пароль)
  2. Щелкните по Select Coach View и выберите Configuration во вкладке Properties.
  3. Для конфигурационного параметра Selected Item назначьте частную переменную selectedServer, которую вы описали ранее.
  4. Убедитесь, что в качестве значения конфигурационных параметров Display Name Property и Value Property указано servername.
  5. Нажмите комбинацию клавиш Ctrl+S для сохранения выполненных настроек. Теперь можно вернуться к диаграмме человеческого сервиса Server Selection.

На рисунке 12 показаны значения конфигурационных параметров для Select Coach View.

Рисунок 12. Конфигурация Select Coach View
Image shows Coach View configuration
Image shows Coach View configuration

Выполните предварительное назначение параметров для Coach-элемента (pre-execution assignment), чтобы значение по умолчанию для User ID могло отображаться в Collect Information Coach View. В следующей строке JavaScript показан код pre-execution assignment:

tw.local.username = tw.system.user_loginName;

Добавьте три узла серверного сценария (Server Script) в диаграмму, как показано на рисунке 10.

Серверный сценарий (скрипт) Define Server List в диаграмме сервиса Human Service использован для создания списка бизнес-объектов MDMServerMapping, который представляет собой список всех доступных серверов, как показано в листинге 5. В данном примере представлены жестко запрограммированные значения.

В реальном приложении вы будете формировать эту информацию из разных источников, таких как переменные среды приложения процесса. Применение переменных среды позволяет контролировать, какие серверы доступны, и используется ли для подключения к ним протокол безопасных соединений SSL. В качестве альтернативы, вы можете использовать сервис выбора для Select Coach View, чтобы реализовать возможность выбора сервера.

Листинг 5. Код JavaScript для серверного сценария Define Server List
         tw.local.serverList = new
        tw.object.listOf.MDMServerMapping(); var newServer = new
        tw.object.MDMServerMapping(); newServer.servername = "(Unsecure) MDM Server 1";
        newServer.hostname = "testmdmserver.torolab.ibm.com"; newServer.port = "9080";
        newServer.usessl = false; tw.local.serverList.insertIntoList(0, newServer);
        newServer = new tw.object.MDMServerMapping(); newServer.servername =
        "(Secure) MDM Server 1"; newServer.hostname = "testmdmserver.torolab.ibm.com";
        newServer.port = "9443"; newServer.usessl = true;
        tw.local.serverList.insertIntoList(1, newServer);

Как показано в листинге 6, серверный сценарий в диаграмме сервиса Human Service (см. рисунок 10) использован для инициализации экземпляра бизнес-объекта MDM_Connection на основе значений, введенных в Coach-элемент.

Листинг 6. Код JavaScript для серверного сценария Create Connection
         tw.local.connection = new tw.object.MDM_Connection();
        tw.local.connection.hostname = tw.local.selectedServer.hostname; tw.local.connection.port =
        tw.local.selectedServer.port; tw.local.connection.usessl = tw.local.selectedServer.usessl;
        tw.local.connection.username = tw.local.username; tw.local.connection.password =
        tw.local.password;

Сценарий Validate Server для Coach-элемента использован для гарантии корректности входных данных. Код JavaScript в листинге 7 демонстрирует процедуру проверки.

Листинг 7. Код JavaScript для сценария Validate Server
if (tw.local.username == "") {
        tw.system.addCoachValidationError(tw.system.coachValidation, "tw.local.username", "The name
        cannot be empty."); } if (tw.local.password == "") {
        tw.system.addCoachValidationError(tw.system.coachValidation, "tw.local.password", "The
        password cannot be empty."); } if (tw.local.selectedServer.servername ==
        "") { tw.system.addCoachValidationError(tw.system.coachValidation,
        "tw.local.selectedServer", "A Server must be selected"); }

И, наконец, добавьте в диаграмму человеческого сервиса Server Selection узел Stay on Page и узел Error End Event, названный Cancelled Login. У вас должен быть код ошибки для события Error End.

  1. Выберите узел Cancelled Login в диаграмме.
  2. Во вкладке Properties выберите Implementation.
  3. В поле параметра Error code укажите LoginCancelled, как показано на рисунке 13.
    Рисунок 13. Реализация события Error End
    Image shows Error End Event Implementation
    Image shows Error End Event Implementation

Завершите построение диаграммы созданием связей между узлами, как показано на рисунке 10. Для создания связи к сценарию Validate Server включите проверку достоверности на Coach-элементе Collect Information. Щелкните по связи к Create Connection и в разделе Behavior установите для Fire Validation значение Before. Это приведет к появлению зеленой галочки на Coach-элементе Collect Information. Создайте связь от этой галочки к сценарию Validate Server.

Теперь у вас есть человеческий сервис Human Service, который может создать экземпляр бизнес-объекта MDM_Connection, и этот экземпляр MDM_Connection, в свою очередь, может быть использован другими интеграционными сервисами Application Toolkit.

Использование сервиса выбора Selection Service для интеграционного сервиса MDM Get Options и обработка информации о соединении

С помощью Application Toolkit вы можете получить перечислимые типы данных (Enumerated Data Type, EDT) от рабочего сервера MDM, используя интеграционный сервис Physical MDM Get Options или интеграционный сервис Virtual MDM Get Options. Представлять эти значения конечному пользователю удобно с помощью Select Coach View.

У Select Coach View есть конфигурационный параметр с названием Selection Service. Этот параметр может быть определен с помощью сервиса Ajax, который будет извлекать элементы списка. Вы можете создать сервис Ajax, который будет вызывать интеграционный сервис Physical MDM Get Options или интеграционный сервис Virtual MDM Get Options, и возвращать перечислимые типы данных в виде элементов списка. Однако, при создании сервиса Ajax у вас может возникнуть вопрос: как гарантировать, что сервис будет использовать корректные данные о подключении к рабочему серверу MDM для пользователя? Как этот сервис выбора узнает, к какому серверу подключаться и какие пользовательские учетные данные использовать?

Возможным решением может быть применение shared business object – общих или разделяемых бизнес-объектов. Разделяемые бизнес-объекты могут совместно использоваться задачами и процессами, и храниться в базе данных IBM BPM, пока не завершится процесс-владелец (owning process). Если вы используете разделяемые бизнес-объекты для хранения информации, мы рекомендуем вам шифровать базу данных IBM BPM (подробнее см. в руководстве IBM Business Process Manager Security: Concepts and Guidance – «Безопасность IBM Business Process Manager: Концепции и рекомендации»).

Для использования разделяемого бизнес-объекта вам нужно создать разделяемый бизнес-объект, содержащий атрибут MDM_Connection. Создайте бизнес-объект с именем Shared_MDM_Connection и выберите в качестве Definition Type значение Complex Structure Type, как показано на рисунке 14. Активируйте кнопку-флажок Shared Object. Бизнес-объекту нужно назначить параметр с названием connection, которым является MDM_Connection. На рисунке 14 показано содержимое бизнес-объекта.

Рисунок 14. Бизнес-объект Shared_MDM_Connection
Image shows Shared_MDM_Connection business object
Image shows Shared_MDM_Connection business object

Для того чтобы протестировать и убедиться, что интеграционные сервисы Get Options работают с общими соединениями к рабочему серверу MDM, мы в качестве примера создадим простой человеческий сервис Human Service, чтобы отобразить список статусов marital state («семейное положение»), получаемый от виртуальной машины с установленным мультидоменным хабом. Диаграмма этого человеческого сервиса содержит два серверных сценария Server Script и Coach-элемент.

Рисунок 15. Тест Get Options, человеческий сервис Human Service
Image shows Get Options Test Human Service diagram
Image shows Get Options Test Human Service diagram

Нужно определить следующие переменные:

  • входную переменную connection с типом MDM_Connection.
  • частную переменную selection с типом NameValuePair и кнопку-флажок Is List.
  • частную переменную connectionKey с типом String.
  • частную переменную martstat с типом String.
  • частную переменную sharedConnection с типом Shared_MDM_Connection.
Рисунок 16. Заданные переменные
Image shows defined variables
Image shows defined variables

В следующих примерах, сценарий создания общего (shared) соединения (подключения) Server Script инициализирует частную переменную sharedConnection с экземпляром объекта Shared_MDM_Connection и определяет для параметра connection входную (Input) переменную connection, как показано в листинге 8. Сценарий затем извлекает из метаданных sharedConnection и сохраняет ключ, который затем может быть использован другими задачами для получения этого экземпляра разделяемого бизнес-объекта. Процедура очистки (сброса) Server Script, которая приводится в листинге 9, обеспечивает аннулирование параметра connection внутри объекта после завершения использования разделяемого бизнес-объекта sharedConnection.

Листинг 8. Код JavaScript для сценария создания общего соединения Server Script
 // Создаем разделяемый объект tw.local.sharedConnection =
          new tw.object.Shared_MDM_Connection();
        tw.local.sharedConnection.connection = tw.local.connection;
        tw.local.sharedConnection.save(); // Создаем ключ для разделяемого объекта
		tw.local.connectionKey =
        tw.local.sharedConnection.metadata("key");
Листинг 9. Код JavaScript для сброса сценария Server Script
var shared_connection = new
        tw.object.Shared_MDM_Connection(tw.local.connectionKey); shared_connection.connection =
        null;

Coach-элемент display в диаграмме сервиса Human Service содержит Select Coach View и кнопку, как показано на рисунке 17.

Рисунок 17. Coach-элемент
Image shows Coach

Теперь нужно настроить Select Coach View, чтобы указать, какие перечислимые типы данных (EDT) нас интересуют. Мы также должны убедиться, что сервис Ajax, который мы создаем для конфигурационного параметра Selection Service, будет подключен к нужному рабочему серверу MDM. Используйте конфигурационный параметр Selection Service Input Text для передачи информации:

  1. Щелкните по Select Coach View и, затем, выберите Configuration во вкладке Properties.
  2. Назначьте конфигурационному параметру Selection Service Input Text частную переменную martstat, как показано на рисунке 18. Инициализируйте переменную marstat в разделе предварительного назначения параметров (pre-execution assignment) для Coach-элемента, как показано в листинге 10.
Листинг 10. Код JavaScript для назначения параметров в разделе pre-execution assignment
 //Передаем ключ для этого экземпляра общего бизнес-объекта connection и EDT. //Используем запятую для разделения значений – AJAX выполнит затем разделение запятой
        tw.local.martstat = tw.local.connectionKey +",MARTSTAT";
Рисунок 18. Настройка Select Coach View
Image shows Coach View configurations
Image shows Coach View configurations

Создайте сервис Ajax для конфигурационного параметра Selection Service следующим образом:

  1. Убедитесь в отсутствии связи Select Coach View с переменной.
  2. В разделе Configuration вкладки Properties щелкните по кнопке New конфигурационного параметра Selection Service для создания нового сервиса Ajax.
  3. Присвойте новому Ajax-сервису имя Get Options Selection Service.
  4. Появляется редактор диаграмм. Добавьте в диаграмму:
    • сценарий Server Script с именем parse text
    • вложенный сервис Nested Service с именем Get Options

На рисунке 19 показаны элементы диаграммы.

Рисунок 19. Диаграмма Ajax-сервиса Get Options Selection Service
Image shows Get Options Selection Service Diagram
Image shows Get Options Selection Service Diagram

Конфигурационный параметр Selection Service у Select Coach View имеет определенную сигнатуру входной/выходной переменной, и присвоение имен этим переменным имеет важное значение. Вам нужно определить следующие переменные:

  1. Входную переменную с названием text и типом String. Она содержит значение параметра Selected Service Input Text в Select Coach View.
  2. Выходную переменную с названием results, типом Any и признаком is List.

Частные переменные не являются частью сигнатуры. Вам нужно определить следующие переменные:

  1. connection с типом MDM_Connection
  2. edtCode с типом String

На рисунке 20 показаны заданные переменные.

Рисунок 20. Заданные переменные
Image shows variable definition
Image shows variable definition

В этом сервисе Ajax вам нужно выделить входные данные из Selected Service Input Text в Select Coach View и предоставить корректную информацию интеграционному сервису Virtual MDM Get Options. Параметр Selected Service Input Text был связан с переменной marstat и содержит ключ бизнес-объекта connection и код EDT с запятой, разделяющей значения. Интеграционный сервис требует код EDT и информацию о подключении к рабочему серверу MDM. В листинге 11 показан серверный сценарий разбора (parse) текста.

Листинг 11. Разбор входного текста
var list = tw.local.text.split(","); var key = list[0];
        tw.local.edtCode = list[1]; var shared_connection = new
        tw.object.Shared_MDM_Connection(key); tw.local.connection = shared_connection.connection;

Сценарий Server Script разделяет входной текст с помощью запятой. В результате разделения выделяется ключ connection и код EDT. Ключ бизнес-объекта connection применяется для получения экземпляра объекта Shared_MDM_Connection, который использовался совместно с недавно созданным нами сервисом Get Options Human Service. Код EDT и ключ бизнес-объекта connection передаются в интеграционный сервис Virtual MDM Get Options.

Вы должны настроить вложенный сервис Get Options для вызова интеграционного сервиса Virtual MDM Get Options. В разделе соответствий данных (data mapping) интеграционного сервиса установите соответствие следующих переменных корректным входным и выходным данным, как показано на рисунке 21:

  • переменной tw.local.connection входным данным connection.
  • переменной tw.local.edtCode входным данным edtcode.
  • переменной tw.local.results выходным данным optionList.
Рисунок 21. Соответствия данных для интеграционного сервиса Virtual MDM Get Options
Image shows data mappings for the Virtual MDM Get Options integration service
Image shows data mappings for the Virtual MDM Get Options integration service

Теперь создание сервисов Human Service завершено. Однако, вы не можете автономно протестировать эти человеческие сервисы, поскольку разделяемые бизнес-объекты работают только в рамках полного описания бизнес-процесса (Business Process Definition).

Для того чтобы протестировать два человеческих сервиса Human Service, вы можете создать единый сервис Human Service с именем Test Example (содержащий оба эти человеческих сервиса) путем растягивания (на диаграмме) двух элементов вложенного сервиса. Создайте переменную Private connection с типом MDM_Connection и установите соответствие переменной Private выходным данным Output вложенного сервиса Select Server, реализацией которого является человеческий сервис Server Selection Human Service. Для переменной Private параметра connection также установлено соответствие входным данным Input вложенного сервиса Select Server, реализацией которого является человеческий сервис Get Options Human Service. Как показано на рисунке 22, вы также можете присоединить к сценарию Select Server узел Error Intermediate Event; если пользователь щелкает по кнопке Cancel в Select Server Coach, то процесс сразу же идет к завершению.

Рисунок 22. Человеческий сервис Test Example Human Service
Test Example Human Service
Test Example Human Service

Таким образом, вы создали описание бизнес-процесса для выполнения этого человеческого сервиса.

Рисунок 23. Описание бизнес-процесса для человеческого сервиса Test Example
Image shows Test Example Business Process Definition
Image shows Test Example Business Process Definition

Заключение

В этой статье были рассмотрены базовые аспекты обеспечения безопасности при использовании инструментария Application Toolkit. В частности, были описаны методики реализации защищенных потоков данных и управления сертификатами безопасности MDM. На подробных примерах было показано, как решать проблемы безопасности при проектировании процессов, которые применяют Application Toolkit.


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Information Management
ArticleID=1036185
ArticleTitle=Использование MDM Application Toolkit для создания MDM-центричных бизнес-процессов. Часть 5: Безопасность
publish-date=08162016