Службы OSLC DXL для Rational DOORS

Источник: ibm

Служб DXL OSLC позволяют запускать сценарии DXL IBM® Rational DOORS с помощью протоколов HTTP и HTTPS.
 
Прим.: Пример содержит действия по установке файла DXL в качестве службы с помощью утилиты Службы DXL OSLC. Эта утилита доступна в Rational DOORS версии 9.6.1.3 и выше. Для установки файла DXL без помощи этой утилиты обратитесь к документации по предыдущему выпуску.

Rational использует технологию на основе Open Services for Lifecycle Collaboration (OSLC) для повышения эффективности интеграции с инструментами Rational и других компаний. Поиск служб OSLC является расширяемым. Таким образом, разработчики Rational и разработчики других фирм могут добавлять службы, которых на данный момент нет в реализованном стандарте или которые не могут быть включены в текущую или будущую версии по причине их специализированности.

В Rational DOORS реализация спецификации OSLC Requirements Management (RM) версии 2 содержит API, который можно использовать для запуска сценариев DXL Rational DOORS с помощью протоколов HTTP и HTTPS. Этот API расширяет возможности интеграций обеспечивая безопасный доступ к данным Rational DOORS и управление ими. Он основан на концепции библиотеки сценариев DXL. Администраторы могут добавлять, изменять и удалять сценарии DXL с помощью пользовательского интерфейса Службы DXL OSLC.

Ниже приведено описание процесса применения службы DXL OSLC:
  1. Найдите сценарий DXL OSLC.
  2. Вызовите сценарий, чтобы упаковать обязательные параметры, в вызове OSLC. Если вы отправляете запрос GET на получение URI службы DXL, то ответ содержит справочную информацию о сценарии, которую предоставил автор. Если передается запрос PUT с необязательными параметрами на получение URI службы DXL, то вызывается служба.
  3. Сценарий выполняется на сервере взаимодействия.
  4. Результаты возвращаются.

Сценарии управляются и настраиваются администратором Rational DOORS, который определяет, какие сценарии DXL будут доступны через интерфейс служб. Администратор может запретить вызов определенных функций, которые могут представлять риск для безопасности, например "runDXL". Отдельные DXL, например виджеты пользовательского интерфейса, не поддерживаются.

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

Стандартные действия для применения службы DXL OSLC:
  1. Создайте сценарий DXL.
  2. Установите сценарий DXL как службу.
  3. Найдите службу в каталоге служб.
  4. Вызовите службу.
  5. Получите из ответа возвращаемое значение.

Пример

  1. Создайте файл DXL с именем helloWorld.inc, содержащий следующий исходный код:void getHelloString(string language) { string hello = null if ("French" == language) { hello = "Bonjour le monde" } else if ("Finnish" == language) { hello = "Hei maailma" } else if ("Latin" == language) { hello = "Ave mundi" } else { hello = "Hello world" } setDxlServiceResult hello print hello "\n" }
  2. Скопируйте файл helloWorld.inc в каталог /addins/services. Расположение каталога по умолчанию: C:\Program Files\IBM\Rational\DOORS\9.версия\lib\dxl\addins\services.
  3. Откройте клиент Rational DOORS и войдите в систему от имени администратора.
  4. Для установки DXL выберите Файл > OSLC > Службы DXL .
  5. В окне Службы DXL OSLC нажмите кнопку Добавить.
  6. В окне Добавить службу DXL OSLC введите следующие значения:
    • Имя: helloWorld
    • Описание: Hello world in several languages
    • DXL: #include <addins/services/helloWorld.inc>
    • Имя функции: getHelloString
    Создается служба с именем helloWorld.OSLCDXLService os = null string err = null string dxlCode = "#include <addins/services/helloWorld.inc>\n" err = addOrUpdateOSLCDXLService("helloWorld", "Hello world in several languages", dxlCode, "getHelloString") if (!null err) { print err } else { print "Installed Service\n" }
  7. Вызовите службу. URI аналогичен следующему примеру: http://servername:portnumber/dwa/rm/dxl/helloWorld
  8. В заголовках accept и content-type укажите следующую запись: application/rdf+xml
  9. Содержимое запроса должно выглядеть следующим образом:<?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/"> <doors:Arguments> <doors:arguments>English</doors:arguments> </doors:Arguments> </rdf:RDF>
  10. Для передачи аргументов службе применяется элемент <doors:arguments>. Введите строку, описывающую обязательные аргументы, в тексте элемента. Служба DXL преобразует строку в аргументы, необходимые для работы служб DXL. В предыдущем примере показан один параметр English, который передается функции getHelloString. Если функция DXL ожидает два параметра, то запрос выглядит следующим образом: <doors:Arguments> <doors:arguments>English,French</doors:arguments> </doors:Arguments>Принимающая служба DXL разбивает разделенный запятыми список в отдельные строки: English и French.
  11. Нестроковые аргументы необходимо преобразовать в соответствующие типы с помощью DXL. Например, если аргумент является целым числом, то с помощью операции intOf можно преобразовать строку, извлеченную из разделенного запятыми списка в целое число. Затем значение можно передать методу.
    Содержимое ответа:<?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:doors="http://jazz.net/doors/xmlns/prod/jazz/doors/2.0/"> <doors:DxlServiceResult rdf:about="http://my-desktop:8080/dwa/rm/dxl/helloWorld> <doors:result>Hello world</doors:result> </doors:DxlServiceResult> </rdf:RDF>

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

Примеры файлов включены в установку Rational DOORS. Пример файла hierarchy.dxl показывает, как можно использовать службу OSLC DXL для получения информации о иерархии модулей.

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=38553