Обзор нового продукта IBM Rational Team Concert и открытой платформы Jazz

Источник: jazz

Автор: Трофимов Алексей (Технический специалист компании "Интерфейс")

Сотрудничество и интеграция на протяжении всего жизненного цикла разработки

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

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

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

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

Процессы служат для управления проектами Rational Team Concert и позволяют настраивать работу данного продукта. Процесс представляет собой набор ролей, методик, правил и рекомендаций, используемых для организации процесса работы над проектом и управления им. Приложение Rational Team Concert обеспечивает поддержку выполнения группой такого процесса.

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

Интерфейс клиента Eclipse и веб-интерфейс

Приложением Rational Team Concert предоставляется пользователям и интерфейс клиента на основе Eclipse, и веб-интерфейс. Благодаря клиентскому интерфейсу разработчики получают в свое распоряжение богатую возможностями, интегрированную среду разработки для создания и выпуска объектов. Веб-интерфейс хорошо подходит для администрирования серверов и руководства проектами и позволяет пользователям иметь доступ к разделам проектов, знакомиться с информацией в репозиториях, обновлять задачи или узнавать о последних событиях.

Использование платформы Jazz

Приложение Rational Team Concert - первый продукт, поставляемый на технологической платформе Jazz. Jazz представляет собой масштабируемую, расширяемую платформу для сотрудничества рабочих групп, которая интегрирует задачи на протяжении жизненного цикла приложений. Платформа также обеспечивает полезные для применения составные блоки и базовые структуры, которые облегчают разработку новых продуктов и инструментария.

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

Приложение Rational Team Concert разрабатывается на основе веб-узла Jazz.net, где можно зарегистрироваться, чтобы участвовать в форумах для обсуждения, в группах новостей и в процессе фактической разработки.

Варианты приложения Rational Team Concert 1.0 и лицензии

Приложение Rational Team Concert 1.0 доступно в нескольких различных вариантах с различными конфигурациями лицензирования и функциональных возможностей. В зависимости от варианта, лицензированного для использования на сервере Jazz Team Server, пользователям будут доступны различные наборы функций. Кроме того, различные варианты включают различное число клиентских лицензий.

В этом разделе:

  • Варианты
  • Клиентские лицензии

Варианты

Таблица 1. Варианты приложения Rational Team Concert 1.0

Функция

Express-C

Express

Standard

Максимальное число пользователей

10

50

250

База данных (включенная в состав)

Derby

DB2 Express

DB2 Express

База данных (поддерживаемая)

нет

DB2, Oracle

DB2, Oracle

Сервер приложений (включенный в состав)

Tomcat

Tomcat

Tomcat

Сервер приложений (поддерживаемый)

нет

IBM® WebSphere® Application Server

IBM WebSphere Application Server

Управление исходным кодом

включено

включено

включено

Отслеживание элементов потока операций

включено

включено

включено

Управление сборкой

включено

включено

включено

Гибкое планирование

включено

включено

включено

Интеграция с приложением Subversion

включен

включен

включен

Полномочия на уровне сервера

включен

включен

включен

Аутентификация по протоколу LDAP

включена

включена

включена

Возможность настройки процессов

включена

включена

включена

Настраиваемые атрибуты элементов потока операций и поток операций

не включены

включены

Отчеты

включены

Информационная панель

включена

Полномочия на уровне процесса

включены

Приложение ClearCase® Connector

включено

Приложение ClearQuest Connector

включено

Импорт протокола LDAP

включен

Клиентские лицензии

Число клиентских лицензий определяется вариантом сервера Jazz Team Server.

Таблица 2. Клиентские лицензии

Клиентская лицензия

Описание

Contributor

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

Developer

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

Build System

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

ClearCase Connector

  • Только для варианта Standard.
  • Клиентская лицензия ClearCase Connector назначается только для идентификаторов пользователей, используемых приложением ClearCase Connector для доступа к управлению исходным кодом. Возможности ограничены только теми возможностями, которые необходимы приложению ClearCase Connector.
  • Эти идентификаторы пользователей не учитываются как часть предельного числа пользователей сервера

ClearQuest Connector

  • Только для варианта Standard.
  • Клиентская лицензия ClearQuest Connector назначается только для одного идентификатора пользователя, используемого приложением ClearQuest Connector. Возможности ограничены только теми возможностями, которые необходимы приложению ClearQuest Connector.
  • Этот идентификатор пользователя не учитывается как часть предельного числа пользователей сервера

Справка по платформе Jazz

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

Данная часть состоит из следующих разделов:

  • Терминология и понятия платформы Jazz
  • Элементы интерфейса пользователя Eclipse
  • Представления
  • Редакторы
  • Элементы строки состояния

Объекты платформы Jazz хранятся в репозитории, который доступен только авторизованным пользователям.

Репозиторий содержит области проектов, которые, в свою очередь, содержат объекты для проектов. Каждая область проекта имеет связанный с нею процесс, который управляет выполнением проекта и настраивает параметры платформы Jazz. Процесс определяется спецификацией процесса и описанием процесса. Спецификацией процесса определяются циклы проекта и характеристики выполнения этих циклов. Описание процесса соответствует веб-сайту, содержащему объяснение процесса.

 
 

Доступны для выбора два предварительно определенных процесса: Eclipse Way и OpenUP (разработка не завершена). Можно, однако, также определить свои собственные процессы или изменить существующий.

При подключении к области какого-либо проекта появляется доступ к объектам данного проекта.

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

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

Запланированная работа описывается элементами потока операций. Типы элементов потока операций, используемые в области проекта, определяются процессом. Например, процессом Eclipse Way определяются типы элементов потоков операций для дефектов, задач и дополнений. Каждый тип элемента потока операций может иметь свои собственные переходы из одного состояния в другое и поля настройки. Элементы потока операций сопоставляются категориям, которые позволяют организовать элементы по функциональным областям. Областью каждого проекта определяется список доступных категорий. Каждая область группы связана с категорией для функциональной области, за которую ответственна группа.

Элементы потока операций можно найти, выполняя запросы. Запросы могут быть индивидуальными или общими для группы.

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

Для работы над файлами проекта, которые находятся под управлением исходным кодом, используются персональные рабочие пространства репозитория. Необходимо загрузить рабочее пространство репозитория для копирования файлов и папок в свое рабочее пространство Eclipse на своем компьютере. Сервером Jazz Team Server отслеживаются все изменения, сделанные в файлах под управлением исходным кодом, с помощью наборов изменений. Каждый набор изменений содержит измененные файлы и папки, сопровождается комментарием и ссылается на соответствующие элементы потока операций, которые послужили причиной изменений. Наборы изменений регистрируются для загрузки измененных файлов и папок из персонального рабочего пространства Eclipse в рабочее пространство репозитория. Зарегистрированные наборы изменений сохраняются в репозитории, но еще недоступны остальным членам группы разработчиков, пока эти наборы изменений не будут выпущены. Процесс регистрации и выпуска обеспечивает дополнительную защиту изменений, позволяя в то же время продолжать внесение изменений без их немедленного выпуска.

Группами используется поток для сохранения главной копии файлов проекта; копия содержится в каждом рабочем пространстве репозитория. Рабочее пространство репозитория и поток группы соединяются последовательностью операций. Наборы изменений выпускаются из рабочего пространства репозитория в поток, чтобы включить изменения в главную копию; это исходящие наборы изменений. Входящие наборы изменений - наборы, выпущенные в поток остальными членами группы. Разработчик принимает входящие наборы изменений, чтобы встроить их в свои рабочее пространство репозитория и рабочее пространство Eclipse.

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

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

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

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

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

Элементы интерфейса пользователя Eclipse

Компонентами платформы Jazz добавляются различные элементы в пользовательский интерфейс Eclipse, включая представления, редакторы и элементы строки состояния.

Представления

Представление

Описание

Team Artifacts

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

Team Central

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

Pending Changes

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

My Work

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

Work Items

Показ элементов потока операций, найденных по запросу таких элементов

Build

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

Team Advisor

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

Редакторы

Редактор

Описание

Project Area

Доступ к спецификации процесса для областей проектов, к направлениям разработки и к категориям

Team Area

Доступ к списку членов группы и их ролей. Здесь также группой настраивается ее процесс

Work Item

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

Planning

Используется для создания или изменения плана итераций. План цикла определяется для конкретной цели цикла

Build Result

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

Элементы строки состояния

Элемент строки состояния

Описание

Current Work

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

Work Item

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

Instant Messaging Status

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

Обзор и цели разработки платформы Jazz

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

Совет: Платформа Jazz открыто разрабатывается на основе веб-узла Jazz.net, где можно зарегистрироваться, чтобы участвовать в форумах для обсуждения, в группах новостей и в процессе фактической разработки.

Цели разработки и создания платформы Jazz:

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

Принципиальная задача платформы Jazz - предоставление создателям программного инструментария механизмов для применения и правил для выполнения, результатом чего является согласованная интеграция инструментария выполнения жизненных циклов разработок. Эти механизмы проявляют себя через строго определенные интерфейсы API. Платформой Jazz также обеспечиваются полезные для применения составные блоки и базовые структуры, которые облегчают разработку нового инструментария.

Архитектура платформы Jazz

Основой платформы Jazz является архитектура клиент-сервер. Сервер Jazz, обычно выполняющийся на защищенном компьютере серверного класса, содержит набор служб и репозиторий. Удаленные клиенты осуществляют связь с сервером Jazz по сети с помощью протокола HTTP.

Удаленные клиенты

Удаленные клиенты поставляются во многих формах, типичной формой является интегрированная среда разработки, например, Eclipse. Другие удаленные клиенты, например, инструментарий командной строки Jazz или сценарии Ant, функционируют без графического интерфейса. Веб-клиенты Jazz обращаются к серверу непосредственно через веб-обозреватель, без установки на компьютере какого бы то ни было программного обеспечения платформы Jazz.

Сервер Jazz

Сервер Jazz представляет собой веб-приложение на основе языка Java, которое выполняется в составе любого сервера приложений, совместимого со спецификацией Java EE 1.4. Данной версией поддерживаются два различных сервера приложений: Apache Tomcat и IBM WebSphere Application Server. Сервер Apache Tomcat представляет собой сервлет-контейнер с открытым исходным кодом, который может устанавливаться на машинах класса ПК. Сервер IBM WebSphere Application Server - коммерческий продукт, для которого предлагаются решения различных масштабов. Семантика служб и интерфейсов API на стороне сервера Jazz не зависят от выбора сервера приложений, позволяя вводить поддержку других серверов приложений в будущих версиях.

Базовые компоненты платформы Jazz

Базовые компоненты платформы Jazz включают компоненты "Репозиторий" и "Групповой процесс". Набор компонентов, образующих платформу Jazz, разрабатывается в проекте Jazz. Другие члены сообщества Jazz, включая независимых поставщиков программного обеспечения, могут разрабатывать дополнительные компоненты, чтобы добавить новые возможности для платформы Jazz. На рис. 1 ниже показаны основные компоненты платформы Jazz.

 Рис. 1 . Компоненты платформы Jazz

 

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

Компонент "Репозиторий"

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

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

Операции чтения и записи репозитория являются элементарными. Интерфейсы API на стороне сервера также включают операцию явного группирования произвольной последовательности операций чтения и записи в единую элементарную транзакцию. Платформа Jazz имеет интерфейсы API на стороне сервера для передачи объектов содержимого в репозиторий и из него, устроенного таким образом, что передача может выполняться безопасным образом за пределами транзакции репозитория.

Компонент "Групповой процесс"

Компонент "Групповой процесс" является основой процесса, поддерживаемого платформой Jazz. В этом контексте процесс ссылается на набор методик, правил, рекомендаций и соглашений, которые используются группой для организации своей работы. Для очень малых по размеру групп процесс обычно является неформальным и недокументируемым. По мере роста группы части процесса могут документироваться на домашней странице проекта группы, поэтому новые члены группы могут быстро с ними ознакомиться. Крупная компания может иметь письменные описания принятых методик и процедур, которые следует выполнять их проектным группам; предполагается, что проектная группа начинает работу со стандартных шаблонов процессов и настраивает их для проекта и для себя. Некоторые компании и группы идут дальше и создают формальные модели, охватывающие значительные доли их процессов.

Платформой Jazz процесс поддерживается несколькими способами.

  • Состояние платформы Jazz зависит от процесса. Вообще говоря, групповой процесс может влиять на любую сторону работы члена группы. Понятие процесса является составной частью платформы Jazz. Групповой процесс представлен в явной форме, и вся работа, выполняемая членами группы в пределах системы, совершается в контексте данного процесса.
  • Компоненты платформы Jazz активизируются процессом. Все компоненты Jazz, включая исходные базовые, спроектированы так, чтобы позволить основополагающему процессу оказывать влияние на операции и элементы компонентов.
  • Платформа Jazz представляет процесс с помощью стандартных элементов Jazz, которые хранятся в репозитории. Такое представление процесса может описывать процессы всех типов, а также может фиксировать и определять, в большей или меньшей степени, групповой процесс для практического применения.
  • Платформа Jazz допускает применение любого процесса. Платформа Jazz сама по себе не имеет встроенного процесса, обязательного для выполнения в любом конкретном случае. На усмотрение группы оставлено определение соответствующего управляющего процесса для принятия таких решений для своего проекта. В данный выпуск включены несколько шаблонов процессов, включая версию шаблона, заключающего в себе процесс, используемый самой проектной группой Jazz.

Клиентские интерфейсы Jazz

Платформа Jazz обеспечивает интеграцию со средой разработки Eclipse, предоставляя ряд представлений и проекций. Некоторыми компонентами Jazz поддерживается также веб-клиент.

В данном выпуске за счет интеграции со средой разработки Eclipse последней обеспечивается главный клиентский интерфейс пользователя для платформы Jazz. Платформой Jazz предоставляются два значимых представления для Eclipse: Team Central и Team Artifacts. Оба представления служат для сбора информации и могут дополняться компонентами платформы Jazz.

Рис. 1 . Приложение Rational Team Concert - клиентский интерфейс Eclipse

Представление Team Central

Представление Team Central является ядром сотрудничества платформы Jazz. Оно может настраиваться пользователями и представляет собой центральное место, где члены группы могут видеть, что происходит в их группе (рис. 2). Team Central - представление Eclipse с несколькими разделами, предоставляемое как расширение. В типичном разделе приводится краткая информация и подключаются другие представление или редактор, в которых представлена более подробная информация. Пользователь при настройке может указывать разделы, видимые постоянно. Платформой Jazz предоставляется простая основа для записи разделов и обеспечиваются специальные графические элементы для получения кратких наглядных итогов. В разделах базовых компонентов платформы Jazz обычно отображается такая полезная информация, как веб-каналы и списки коллег для обмена информацией. В разделах других компонентов платформы Jazz содержится относящаяся к ним информация, например, об элементах потока операций и о сборках.

Рис. 2 . Представление Team Central

Представление Team Artifacts

Представление Team Artifacts представляет собой центральную точку доступа к объектам в репозитории (рис. 3). В данном представлении показываются объекты, сгруппированные по областям проектов и отфильтрованные для области группы. Записи представляются как расширение. В записях базовых компонентов платформы Jazz содержится такая информация, как, например, подписки веб-каналов. В разделах других компонентов платформы Jazz отображаются относящиеся к ним объекты, например, сборки, планы, потоки и рабочие пространства.

Рис. 3 . Представление Team Artifacts

Веб-клиенты

Кроме среды разработки Eclipse, некоторые компоненты платформы Jazz позволяют пользователям обращаться к серверу Jazz непосредственно из веб-обозревателя. Такую возможность обеспечивает пользовательский веб-интерфейс Jazz. Этот интерфейс больше подходит для временных или эпизодических пользователей, а не для интегрированной среды разработки, потому что он не требует установки никакого специального программного обеспечения на клиентском компьютере; все, что необходимо - веб-обозреватель. Каждый сервер Jazz имеет главную веб-страницу, на которой пользователь может выбрать область проекта и войти в систему. После входа пользователь может взаимодействовать с сервером Jazz и изучать информацию в репозитории Jazz, включая ознакомление с последними событиями, ввод и обновление элементов потока операций, а также загрузку сборок. На рисунке 4 показан пользовательский веб-интерфейс Jazz, отображающий элемент потока операций.


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