|
|
|||||||||||||||||||||||||||||
|
Интеграция Rational Team Concert с использованием языка сценариев Visual BasicИсточник: IBM
IBM Rational Team Concert - это динамичная система управления жизненным циклом приложений (application lifecycle management - ALM), предназначенная для коллективной разработки программного обеспечения независимо от местоположения членов группы. Она обладает разнообразными возможностями, включая управление задачами, управление дефектами, управление конфигурациями исходного кода, управление компоновками и т.д. Она реализует открытый сервис под названием Open Services for Lifecycle Collaboration (OSLC), который позволяет интегрировать ее с существующей системой, такой, например, как средства управления проектами или работой. В данной статье рассказывается, как воспользоваться преимуществами сервиса Rational Team Concert OSLC при помощи языка сценариев Visual Basic, и как интегрировать его с существующей системой. Предположим, что для обеспечения совместимости вы работаете с системой, построенной на новейшей технологии. Ввод информации о разработке является обязательным. Система стала достаточно стабильной, поэтому ИТ-менеджер решил осуществлять поддержку только проблем уязвимости защиты и дефектов, связанных с новыми пакетами исправлений операционной системы. Также предположим, что группе разработчиков для поддержки глобальной поставки была предложена система IBM Rational Team Concert. Вероятно, разработчики не хотят тратить драгоценное время на ввод одной и той же информации в обе системы. Цель данной статьи - продемонстрировать методики интеграции системы такого рода. Цель данной статьи схематически показана на рисунке 1. Система My System используется для ввода определенного вида информации о разработке при помощи интерфейса COM+, а для ускорения глобальной поставки предлагается система Rational Team Concert. Rational Team Concert имеет открытый интерфейс OSLC (Open Services for Lifecycle Collaboration). Рисунок 1. Цель - интегрировать существующую систему My System с Rational Team Concert Отказ от ответственности и предварительные требования для использования примеров сценариев Представленный здесь сценарий следует рассматривать только как пример. Если при выполнении сценария отображается одно из следующих сообщений об ошибке, вероятно, сервер Rational Team Concert настроен на использование самосертификации: msxml3.dll: System Error: -2146697191 При доступе к серверу из Microsoft Internet Explorer отобразится сообщение об ошибке сертификата. Причина заключается в том, что клиент не доверяет серверу, поскольку сервер настроен на самосертификацию. Для использования примера сценария необходимо прежде всего решить эту проблему. OSLC - это открытое сообщество организаций и разработчиков ПО, занимающееся стандартизацией интеграции различных инструментов управления жизненным циклом разработки ПО. Оно также определяет спецификации интеграции инструментальных средств. Базовая спецификация определяет использование RDF (Resource Description Framework) для представления данных и RESTful Web-сервисов для доступа к данным. Но My System предоставляет свой собственный интерфейс. В нашем примере это COM+ (Component Object Model+), к которому можно обращаться на разных языках, включая Microsoft Visual Basic или язык сценариев Visual Basic. В данной статье рассматривается обращение к обеим системам при помощи языка сценариев Visual Basic. Примеры сценариев поставляются вместе со статьей (см. раздел Загрузки). В примерах сценариев используется спецификация OSLC Change Management и Rational Team Concert в качестве инструментального средства. Сценарий управляет данными, которые называются workitem (задача). Сценарий может создавать, обновлять или запрашивать задачи Rational Team Concert. Обзор OSLC-сервиса и сценария на Visual Basic На рисунке 2 представлена схема потока OSLC-сервисов из Root Service Document (корневой документ сервиса) через Catalog (каталог) и Service Provider (поставщик сервиса) в Work Item (работа).
Первый шаг - обращение к Root Service Document. Этот сервис предоставляет каталог сервиса. Например, он предоставляет каталог сервиса CM (Change Management - управление изменениями), показанного на рисунке 2, каталог сервиса SCM (source code management - управление исходными кодами), каталог сервиса Project Area Management (управление областью проекта) и т.д. В данном примере:
Наш сценарий использует набор сервисов, называемых Microsoft XML Core Services (MSXML). MSXML может быстро и эффективно обрабатывать XML-приложения. Он также имеет различные API для обработки содержимого XML-документов. OSLC использует RDF для представления данных, а MSXML может обрабатывать RDF-документы. В таблице 1 приведены основные функции доступа к задачам, предоставляемые сценарием. Таблица 1. Основные функции для управления задачами Rational Team Concert
Примечание. Перед выполнением примера сценария взгляните на листинг 1, в котором приведена главная часть сценария. Это поможет понять, насколько просто обращаться к интерфейсу задач Rational Team Concert при помощи сценария. Листинг 1. Главная часть сценария
В данном разделе мы рассмотрим использование сценария для доступа к задачам Rational Team Concert. Сначала следует войти в Rational Team Concert. Для этого сценарий предоставляет функцию JazzLogin(). Листинг 2. Вход в Rational Team Concert
Функция JazzLogin() принимает три аргумента.
В случае успешного входа возвращается объект MSXML2.XMLHTTP, являющийся, по существу, HTTP-подключением к серверу. Rational Team Concert предоставляет различные сервисы. Сценарий предоставляет три функции для получения сервисов:
В листинге 3 приведена процедура получения сервисов задач. Листинг 3. Пример кода сервисов получения фабрики
Первый шаг - получение URL сервиса для указанного проекта Rational Team Concert. На рисунке 1 показаны четыре шага. Однако шаги 1, 2 и 3 выполняются в одной функции GetServicebyProjectName(). После получения URL сервиса функция GetFactoryService() получает сервис создания задач. Перед созданием или обновлением задачи необходимо подготовить для нее атрибуты. Эти атрибуты имеют вид простой строки в следующем формате:
Например, если вы хотите создать задачу только с заголовком, параметр должен иметь следующий вид:
Если вы хотите создать задачу с заголовком и описанием, укажите параметр следующим образом:
В примере сценария аргумент подготавливается так, как показано в листинге 4. Листинг 4. Пример кода подготовки аргумента
При указании Функции создания и обновления задач В таблице 2 приведен список функций создания и обновления задач. Пример сценария имеет также функцию установки между задачами отношения родитель-потомок. Таблица 2. Три функции, предоставляемые для создания и обновления задач
Использование функций создания и обновления задач показано в листинге 5 и листинге 6. Листинг 5. Создание новой задачи
Запрос задач и отображение результатов запроса Для запроса задач и отображения результатов запроса используются функции QueryWorkitems() и DisplayResultSet(). Аргумент функции QueryWorkitems() принимает во втором и третьем аргументах oslc.where и oslc.select. Чтобы продемонстрировать формирование этих значений, рассмотрим запрос к базе данных (см. листинг 7). Листинг 7. Пример запроса к базе данных
Этот запрос будет возвращать id и title (идентификатгор и заголовок) записи, id которой равен числу 100. Функция QueryWorkitems() ведет себя аналогично. В примере сценария она используется аналогично коду из листинга 8 (немного модифицирован, чтобы показать запрос задачи с id=100). Листинг 8. Запрос задачи с идентификатором, равным 100
Запрос возвратит несколько задач в зависимости от оператора where . По этой причине функция QueryWorkItems() возвращает объект collection. Функция DisplayResultSet() подготавливается так, что может выводить возвращаемый объект collection в читабельном виде. Это похоже на большинство результатов запросов к базам данных. Примеры использования сценария Для выполнения примера сценария некоторые параметры нужно изменить. В листинге 9 показан фрагмент сценария, в котором указываются параметры. Листинг 9. Часть сценария с определением параметров
В таблице 3 описан каждый параметр Таблица 3. Описание параметров
Результаты выполнения сценария будут выглядеть примерно так, как показано в листинге 10. Листинг 10. Результаты выполнения сценария
При выполнении сценария создается и обновляется задача 503. На рисунке 3 показан графический интерфейс задачи в Eclipse-клиенте. Рисунок 3. Графический интерфейс задачи, созданной сценарием
На рисунке 3 показаны фрагменты вкладок Overview и History. Поле Summary вкладки History показывает, что эта задача была обновлена. Заголовок This is sample title изменился на This is sample title with update. Расширенное использование сценария Рассмотренный сценарий можно расширить для различных применений. В листинге 11 приведен фрагмент сценария, создающего родительскую задачу и девять задач-потомков. Листинг 11. Создание родительской задачи и 9 задач-потомков
Перед циклом создается родительская задача. Затем сценарий создает девять задач-потомков. Идентификатор задачи имеет тип array . Эта родительская задача и задачи-потомки передаются в функцию CreateParentChild(). Графическое представление выполнения данного сценария показано на рисунке 4. Рисунок 4. Результат работы сценария в графическом интерфейсе задачи
На рисунке 4 показано, что вкладка Links содержит ссылки на задачи-потомки, созданные этим сценарием. До сих пор наш сценарий занимался только созданием задач и некоторыми обновлениями, например обновлением информации задачи или добавлением задач-потомков. Основным назначением данного сценария является предоставление самого простого способа интеграции с существующей системой. Такой тип интеграции следовало бы назвать интеграцией с обменом данными (рисунок 5). Рисунок 5. Стратегия интеграции между My System и Rational Team Concert
Если существующая система имеет такой интерфейс как COM+, она может обеспечить более простой способ доступа к языку сценариев Visual Basic. Типичный интерфейс может быть похож на код, приведенный в листинге 12. Листинг 12. Типичный код на Visual Basic для доступа к информации в My System
В этом псевдопримере объект application предоставляет интерфейс для получения всех записей и доступа к каждой из них в цикле. Пример можно расширить для создания задач Rational Team Concert (см. листинг 13). Листинг 13. Пример кода для создания задач в Rational Team Concert
В цикл добавлен вызов псевдофункции ConvertRecord(), которая должна преобразовывать запись My System в пары атрибутов. Затем они передаются в функцию CreateWorkItem(). В данном примере вся информация записей интегрируется с Rational Team Concert. Следует отметить, что сценарий интеграции должен использовать функцию UpdateWorkItem() для обмена данными между My System и Rational Team Concert. В идеале система должна интегрироваться посредством ссылок, а не обмена данными. Дополнительная информация о ссылочном типе интеграции приведена на странице проекта Eclipse Lyo сайта Eclipse.org. Этот проект предоставляет SDK для реализации ссылочного типа интеграции. Технология, используемая в сценарии Поскольку вы можете захотеть модифицировать примеры сценариев, приведенные в данной статье, рассмотрим два фрагмента примера. В листинге 14 приведен код функции UpdateWorkItem(). Листинг 14. Фрагмент функции UpdateWorkItem()
Технология MSXML позволяет простым способом подключаться к Web-серверу. Например, первая строка листинга 14 должна открыть HTTP PUT-запрос с указанным URL. Затем отправляется информация о заголовке и реальный XML-документ, созданный функцией CreateWorkItemDocument(). Важно не забыть указать в заголовке OSLC-Core-Version, чтобы сервер Rational использовал спецификацию OSLC V2.0. В сценарии используются различные функции работы с XML. В листинге 15 приведен фрагмент работы с XML-документом. Листинг 15. Фрагмент работы с XML-документом
http.ResponseXML получает объект XML-документа, возвращенный с сервера Rational Team Concert. Для поиска тега в XML-документе используется doc.getElementsByTabName(). При помощи этого метода можно легко найти информацию, связанную с тегом в XML-документе. Альтернативный способ - использовать XPath, но в данном примере сценария он не использовался. Дополнительная информация о MSXML (Microsoft XML Core Service) находится на MSDN.microsoft.com.
|
|