Jazz 是一个用于整个软件生命周期的团队协作平台,旨在支持跨所有软件生命周期阶段的任务的无缝集成。Jazz 在客户端和服务器端都设计为可扩展的,并且可以从非常小的团队扩展到大型企业环境。Jazz 整合了工具支持的流程指南的概念,其中工具了解团队已决定使用的开发流程,并无缝地帮助团队成员遵循该流程而不会妨碍他们。Jazz 不仅旨在集成现有的点工具 (point tool),而且还旨在提供一个平台,在该平台上可以构建比以前更加集成的生命周期工具功能。当以这种方式在整个生命周期中集成开发工具时,使用一组结合在一起的点解决方案 (point solution) 来完成难以想象的事情将成为可能。像这样的集成端到端工具可以帮助团队更有效地构建软件,并使得软件开发活动更加令人愉快。
|
Jazz 平台的设计和构建目的是:
- 支持整个软件生命周期中的任务的无缝集成。
- 促进团队协作和整个软件生命周期中的协作。
- 提供一个可扩展的平台。
- 帮助团队更有效地构建软件。
- 支持全局分散的开发团队。
- 提供可从小型团队一直扩展到大型企业的解决方案。
- 维护审核跟踪和自动化簿记工作,以便能够追究团队的责任。
- 支持适合客户需要的 UI 集成(IDE、Web 浏览器等等)。
- 培育工具提供商的广泛生态系统,包括独立软件供应商 (ISV)。
- 使软件开发工作更加令人愉快。
Jazz 平台的主要作用是为工具编写人员提供要使用的机制和要遵循的规则,这些机制和规则可产生无缝集成的生命周期工具。这些机制通过定义良好的 API 来公开。Jazz 平台还提供了帮助开发新工具的有用构件和框架。
Jazz 是一个基于客户机-服务器体系结构的平台。通常在受保护的服务器级计算机上运行的 Jazz 服务器承载一组服务,并在其存储库中存放数据。远程客户端通过网络使用 HTTP 与 Jazz 服务器通信。远程客户端具有多种形式(图 1),典型的形式是带有集成的 Jazz 支持的 IDE,这种形式由用户参与的协作软件开发所推动。其他远程客户端(例如 Jazz 特定的命令行工具或 Ant 脚本)在 Headless 模式下操作。还有其他远程客户端则使用 Web 浏览器直接访问服务器,而不需要在本地计算机上安装 Jazz 特定的软件。
Jazz 具有两个匹配的部分:服务和客户端库(图 2)。服务在服务器端。服务的实现采用 Java® 编写。服务使用者通过服务接口来联系服务。服务接口充当Web 服务接口的 Java 服务定义,Web 服务接口用于从客户端到服务器的 RPC 样式的同步通信。
对应的客户端部分是一个基于 Java 的客户端库,该库公开一个客户端接口。客户端库向对应的服务接口发出调用,调用通过网络发送到服务器上的对应服务以进行处理。客户端库提供缓存、事件通知和其他使得该 API 比原始服务接口更易于使用的功能。
诸如 Eclipse IDE 和 Ant 等基于 Java 的 Jazz 前端使用客户端接口中的方法。(可以编写类似的客户端库以供非基于 Java 的客户端使用。)
Web 浏览器客户端以类似的方式进行处理,并使用一个更适合于从 JavaScript® 中访问的相关服务接口(将在稍后有关Web UI 的部分中讨论)。
Jazz 具有模块化和可扩展的体系结构。称为 Jazz 组件 的典型模块提供有助于软件开发生命周期某些方面的功能,例如缺陷跟踪或自动化构建。典型的组件提供一个或多个服务和对应的客户端库,以及建立在这些较低层基础上的领域特定的 UI 部分。将某个组件安装在 Jazz 服务器上将使该组件的服务普遍可用,而将组件安装在 Jazz 客户端上则为一个用户提供对新服务的访问。Jazz 组件可以独立存在(仅依赖基本的内置功能),或者可以利用其他已安装组件所提供的功能。
虽然组件的概念对于解释 Jazz 的扩展方式非常方便,但是 Jazz 并没有提供新的通用组件机制。相反,Jazz 同时在服务器和基于 Java 的客户端利用