IBM Rational Jazz - открытая и расширяемая платформа для разработки программного обеспечения

Источник: developerworks
Александр Климов (Alexander.s.klimov@gmail.com), специалист в области разработки программного обеспечения, IBM Игорь Сухарев (igor.sukharev@gmail.com), к.т.н., ведущий программист, IBM

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

Вступление

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

Попробуем проанализировать ситуацию и обратимся к цифрам, то увидим следующие данные :

  • 34% проектов считаются успешными, суммарный бюджет 300 млрд. дол. США
  • 37% клиентов удовлетворены скоростью разработки ПО
  • 42% пользователей удовлетворены качеством ПО

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

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

Географические барьеры:

  • Временная разница в часовых поясах
  • Географическая распределенность команд

Культурные барьеры:

  • Языковые различия
  • Культурные различия
  • Менталитет

Организационные барьеры

  • Недостаточной уровень экспертизы
  • Невысокая координированность работы подразделений бизнеса (организации)
  • Политики безопасности для интеллектуальной собственности при аутсорсинге
  • Недостатки организации работы

Инфраструктурные барьеры

  • Несовместимые средства разработки
  • Долгий процесс вхождения в команду
  • Высокий порог вхождения

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

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

Как правило, можно отметить следующие пожелания основных ролевых групп в проектах (рис. 1):

 

 

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

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

Что такое Jazz Platform

IBM, как один из передовых игроков на рынке IT, предлагает свой подход для решения этих проблем - платформу Jazz.

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

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

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

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

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

  • Командная работа - предоставлять информационную прозрачность команд для сотрудничества
  • Автоматизация - автоматизировать рутинные задачи за счет удобных процессов и средств
  • Отчетность - предоставлять актуальную информацию о проектах и утилизации ресурсов.

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


Продукты на основе платформы Jazz

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

  • IBM Rational Team Concert является рабочей средой для разработчиков, архитекторов и менеджеров проектов, включающий управление элементами работ, версиями, сборкой и поддержку планирования итераций. Эти элементы лежат в основе любого процесса и определяют шаблоны для планирования процессов, такие как Scrum и Eclipse Way.
  • IBM Rational Quality Manager является веб-приложением для организации управления тестированием и работы специалистов по контролю качества. Это настраиваемое средство для планирования тестирования, автоматизации рабочих процессов, отслеживания и мониторинга влияния решений, принимаемых в ходе проекта, на бизнес-цели и результаты.
  • IBM Rational Requirements Composer - средство для систематизации бизнес-требований проекта, предоставляющее возможности визуализации, согласования и уточнения тех или иных характеристик. Requirements Composer позволяет фиксировать и управлять описаниями бизнес потребностей проекта, преобразовывать их в понятные и прозрачные требования, что в свою очередь приводит к повышению качества, скорости разработки и более эффективной организации процессов.
  • IBM Rational Focal Point for Project Management, является рабочей средой для управления ходом и ресурсами проекта, и предназначен для менеджеров проектов. Rational Focal Point for Project Management предоставляет возможности для эффективного и удобного планирования, управления и распределения рабочей силы.

Подробная информация о лицензировании продуктов Rational на платформе Jazz представлена на jazz.net . Также на портале youtube.com опубликован официальный 11-минутный ролик с презентацией и комментариями относительно большинства аспектов лицензирования продуктов на Jazz .


Архитектура Jazz

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

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

Интеграционная архитектура Jazz (Jazz Integration Architecture) - JIA - определяет общий набор сервисов JFS (Jazz Foundation Services), которые входят в состав любого инструмента Jazz и описывают правила получения доступа и его использования (рис. 2). Сюда также относятся спецификации, определенные стандартами OSLC (Open Services for Lifecycle Collaboration), представляющие собой описания независимых и унифицированных протоколов для обмена данными между широким набором различных инструментов поставщиков ПО. Основная цель архитектуры JIA - объединить разнообразные средства, используемые специалистами в организациях, которые занимаются разработкой информационных систем.

 

 

Основой и центральной частью JIA является Jazz Team Server (JTS) (рис. 3). JTS предлагает базовые сервисы - Jazz Foundation Services (JFS) - которые реализуют концепции высокой степени интеграции и позволяют различным инструментам работать совместно.

 

 

Физически JTS может быть как одним сервером, так и набором серверов, работающих вместе (рис. 4).

 

 

JTS предоставляет основной фундаментальный набор REST веб-сервисов (RESTful web services), которые дают возможность интеграции средств разработки, о которой говорилось чуть ранее.

Огромным преимуществом и достоинством JIA является стандартизация программного интерфейса (API) в виде, так называемого, RESTful API, а также унифицированные правила определения ресурсов, которые легко позволяют взаимодействующим инструментам совместно работать с данными (рис. 5).

 

 

Все взаимодействия между средствами осуществляются с использованием REST API. Для обеспечения тесной интеграции инструментария все средства используют уникальные ссылки (URL) для обращения друг к другу (за исключением обращения к самим себе) не делая никаких предположений, где развернуто то или иное средство. То же самое должно соблюдаться для всех клиентов, если необходимо, чтобы эти клиенты плотно взаимодействовали с сервисами. JIA также позволяет добавлять к тому или иному серверу JTS множество других серверов, каждый из которых отвечает за управление своим собственным URL и обработку приходящих запросов.

Для того, чтобы понять архитектуру JTS, необходимо рассмотреть подробнее основные сервисы, которые предоставляет сервер - JFS.

JFS - набор RESTful веб-сервисов для администрирования пользователей (управления доступом и правами) и проектов, управления безопасностью и коммуникациями, выполнения запросов данных и другие возможности для построения интегрированных и распределенных гетерогенных систем. Чуть ниже представлены основные категории сервисов.

Сервис обнаружения (Discovery Service). Данный сервис является механизмом, который позволяет получать и отслеживать важную информацию о самом сервере JTS. С помощью ссылок сервиса обнаружения можно найти REST API для идентификации тех или иных сервисов и специфических возможностей JTS, таких как интерфейс пользователя для вывода веб-представлений конкретных ресурсов. Сервис обнаружения используется всеми сервисами также для обнаружения сервисов, предоставляемых другими инструментами, размещенными на данном JTS.

Сервисы администрирования (Administration Services). Каждый сервер JTS  имеет набор основных сервисов администрирования для работы с пользователями, проектами, настройками безопасности и лицензиями. Например, различные средства и расширения используют эти сервисы для обеспечения единого механизма аутентификации, которая может быть реализована на базе LDAP-сервера организации. Другое преимущество заключается в том, что администрирование пользователей и проектов может осуществляться централизованно и в унифицированной форме.

Сервисы процессов (Process Services). При рассмотрении различных сервисов следует отметить, что инновационность Jazz прежде всего находится в области управления процессами. Предоставляя основной механизм Jazz Process Engine (JPE) в виде сервисов REST API, каждый отдельный сервер может быть адаптирован для текущего процесса и полностью участвовать в управлении этим процессом. Это может включать контроль прав доступа и наличия лицензий, проверку наличия специфических предусловий на различных этапах процесса и автоматизации действий, которые должны обязательно выполняться при заранее определенных ситуациях. Этот сервис также сохраняет записи любых успешных действий, тем самым обеспечивая централизованный механизм отслеживания операций, выполненных в соответствии с правилами, определенными в рамках такого процесса.

Сервисы управления данными (Storage Services). JTS также предоставляет сервисы для управления данными, которые могут быть использованы инструментами при выполнении высокоуровневых операций над данными. Это позволяет исключить необходимость прямой работы с конкретными базами данных и, таким образом, зависимость от них.

Сервисы запросов (Query Services). Различным клиентам необходимо осуществлять поиск данных на JTS. Здесь необходимо учитывать то обстоятельство, что некоторые специфические ресурсы можно разместить на Jazz Team Server Extension (JTSE) - сервере расширений JTS - который, в свою очередь, может быть развернут в виде отдельного сервера. Сервера JTSE необязательно должны быть гомогенными, и каждый из них может хранить свои ресурсы в собственной базе данных. Такой подход предполагает, что данные каждого отдельного инструмента могут извлекаться из базы и сохраняться в виде поисковых индексов. Это позволяет объединять индексы независимо от используемых средств, развернутых на JTS, и обеспечивать централизованный механизм запросов с помощью сервисов запросов (Query Services) для осуществления поиска информации по запросам, сформулированным на унифицированном и понятном языке. Для возможности получения структурированной информации по ресурсам извлекаемые индексы основываются на стандартах RDF и SPARQL. Для осуществления полнотекстового поиска используется механизм на основе продукта Apache Lucene.

Сервисы представления (Presentation Services). Четко определенные типы ресурсов и стандартизация RESTful API обеспечивают необходимый фундамент для JIA, но это может оказаться недостаточным для ряда сценариев организации взаимодействия между различными инструментами разработки. Сложность состоит в наличии связей на другие ресурсы, находящихся под управлением других инструментов. Например, в случае, когда один артефакт проекта (скажем, элемент работы) может быть проассоциирован с другим (например, с одним из бизнес-требований). Типична ситуация, что инструмент, в котором используется первый артефакт, будет неспособен предоставить полноценный пользовательский интерфейс для отображения ассоциированного артефакта другого типа.

 

 

Сервисы представления дают возможность для клиентского средства запросить URL пользовательского интерфейса, размещенного на экземпляре JTS (вместе со всеми необходимыми расширениями). При их наличии, этот сервис возвращает список URL по доступным пользовательским интерфейсам, которые могут быть использованы для работы с таким ресурсом (рис. 6).

Сервисы хранилища данных (Data Warehousing Services). Корпоративное хранилище данных может объединять данные одного или более серверов JTS, а также данные из других источников. Определенные компоненты JTS могут периодически делать снимки данных и экспортировать информацию в хранилище корпоративных данных с помощью сервисов хранилища данных.

Сервисы коллективной работы (Collaboration Services). Кроме того, JTS предоставляет также другие важные сервисы, поддерживающие механизмы общения, включая сервисы рассылки электронной почты и текстовых сообщений SMS, поддержку механизма подписок на информацию (RSS) и т.д.

Jazz предоставляет дополнительную гибкость посредством возможности выбора т.н. "тонкого" или "толстого" клиента. Для компаний, в которых используются различные системы разработки, есть возможность интеграции платформы Jazz со сторонними средствами, например с Microsoft Visual Studio, IBM ClearCase и ClearQuest.

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



Анализ различных сценариев использования платформы Jazz

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

Вариант, базирующийся на открытом ПО (рис. 7) включает в себя Apache Tomcat, который используется как сервер приложений - центральная часть ядра Jazz Team Server, Apache Derby используется в качестве базы данных для хранения данных проекта, протокол коммуникации Jabber/XMPP для обмена мгновенными сообщениями.

 

 

Решение, построенное на проприетарных продуктах и технологиях IBM (рис. 8), состоит из сервера приложений WebSphere Application Server, базы данных DB2 и средства обмена мгновенными сообщениями Lotus Sametime.

 




Что такое IBM Rational Team Concert

IBM Rational Team Concert (RTC) - это первый продукт на базе технологии Jazz, предоставляющий пользователям все преимущества технологий Jazz, а также интегрирует клиента системы контроля версий, управление задачами, сборками, автоматически собирает и консолидирует информацию о проекте.

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

Можно выделить следующие особенности RTC:

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

Различные аспекты архитектуры RTC представлены на рис. 9.

 

 

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

Платформа Jazz и RTC стали доступны для клиентов IBM с 2008 года. Многие из них уже успели попробовать Rational Team Concert в действии на проектах самого разного рода.

Результатом использования платформы и RTC явилось повышение показателей возврата инвестиций (ROI). По отзывам клиентов, применивших продукты в своих проектах, произошли следующие изменения:

  • Производительность команд возрастает до 50%:
    • Улучшенное управление проектами
    • Эффективное использование и координация действий удаленных команд
    • Эффективная работа внутри распределенных команд
  • Взаимодействие и сотрудничество в командах возрастает до 25%:
    • Удобный обмен информацией
    • Удобная координация между участниками команд
    • Плавная передача работы
  • Показатели качества ПО повышаются до 12%:
    • Уменьшение проблем с ПО у заказчиков
    • Снижение количества проблем при сборках проекта
    • Пониженный уровень рисков для проекта
  • Степень управления проектом повышается до 12%:
    • Автоматическое управление процессами
    • Внедрение улучшенных методик работы и передового опыта
    • Регулирование качества/рисков с фазами жизненного цикла разработки ПО

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



Заключение

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


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