级别: 初级 宁 德军, 高级技术经理, IBM 朱 育雄, 资深技术顾问, IBM 孙 昕, 资深技术顾问, IBM
2009 年 9 月 10 日
Jazz 平台是 IBM Rational 面向软件交付技术的下一代协作创新平台,它经过精心设计,专门面向全球化和跨地域团队开发,将改变人们协作构建软件的方式——提高软件交付的自动化、协作性和透明度。您可以将 Jazz 技术视为一个可扩展的框架,能动态地集成和同步与软件开发项目关联的人员、流程和资产,它会改变开发团队如何进行软件开发的方式,使软件交付活动具有更加高效的协作、更高生产率、更加透明并且富有乐趣。
我们推出了本书的 前言 和 第 2 章、第 3 章 及 第 5 章 供大家在线浏览。更多推荐书籍请访问 developerWorks 图书频道。
 | |
|
|
书名:奏响软件交付的爵士乐 —— Jazz 平台实践者之路
作者:宁德军、朱育熊、孙昕 等编著
出版社:清华大学出版社
出版日期:2009 年 8 月
ISBN:978-7-302-20719-1
购买:
中国互动出版网、当当网、卓越网
| |
推荐章节:
更多推荐书籍,请访问 developerWorks 图书频道。
欢迎您对本书提出宝贵的反馈意见。您可以通过本页面最下方的 建议 栏目为本文打分,并反馈您的建议和意见。
如果您对 developerWorks 图书频道有什么好的建议,欢迎您将建议发给我们。
|
|
|
“是人构建了伟大的软件,而不是组织。”—— Jazz.net
在金融危机横扫全球之际,全球大多数企业都在思索危机的应对策略,冬天的丝丝寒意已经蔓延到了 IT 企业或企业的 IT 部门,迫使我们不得不重新思考我们的软件生活。创新的时代呼唤软件交付的创新,Jazz 平台是 Rational 研发部和 IBM 实验室最新推出的软件协作创新平台,使软件开发团队能够像爵士乐队那样把一群专业的演奏家很好地协作在一起,演奏出最优美最动听的曲子。
Jazz 平台是 IBM Rational 面向软件交付技术的下一代协作创新平台,它经过精心设计,专门面向全球化和跨地域团队开发,将改变人们协作构建软件的方式——提高软件交付的自动化、协作性和透明度。您可以将 Jazz 技术视为一个可扩展的框架,能动态地集成和同步与软件开发项目关联的人员、流程和资产,它会改变开发团队如何进行软件开发的方式,使软件交付活动具有更加高效的协作、更高生产率、更加透明并且富有乐趣。
Jazz 的理念和核心能力
为何取名为 Jazz?在团队中开发软件非常类似于在乐队中演奏乐器。每个音乐家必须集中精力演奏好自己的部分,同时还要与乐队保持合拍和同步。他们必须就将要如何沟通达成一致,每个成员都要密切注意指挥的信号和同伴的状态,否则表演就会失败。强有力的协作和个人的精湛技艺都是出色的乐队表演所必需的。类似地,开发人员一定不能仅集中于构建高质量的代码,他们还必须对自己的活动进行协调,使项目中的各个部分都能完美地结合在一起。我们期望软件开发人员也能像乐队一样进行团队协作,并提供支持这种工作方式的途径,实现工作效率的提升。Jazz 是技能娴熟的专业人员的集体工作结晶——既体现了高度精湛的个人技术,同时也表现出高度的控制和自律。Jazz 是伟大团队的成果,团队中的成员既是出色的精英人才,也具有高度的团队协作精神。
Jazz 是一个旨在通过变革团队协作方式,改进团队绩效,提高软件投资回报率的创新项目和平台。它基于开放的标准、开放的 OSGI 组件架构,实现了可扩展、可伸缩的软件生命周期管理平台框架,可以动态地集成和同步与开发项目相关的人(People)、过程(Process)和工件(Artifacts);它基于 Web 2.0 技术,实现了全球分布的协作模式,适应团队的动态变化;它通过开源社区驱动的商业软件开发模式,基于 jazz.net 开放社区完成软件开发。作为一个生命周期服务整合平台,Jazz 提供了团队上下文中实时协作能力和治理流程的定义及执行能力。实时协作能力能够为团队提供透明的工作环境,使得团队中每个人都能够实时、方便地知道“谁、在何时、干什么、为什么”,有效加强团队协作,打造高效团队。而基于治理流程的定义及执行能力,开发团队首先可以基于自身项目特点,选择合适的开发方法,例如敏捷开发(如 Scrum、Eclipse Way、OpenUP 等),迭代式软件开发(如 RUP 等)或传统的瀑布模型。然后,通过在 Jazz 平台上定义指定的开发方法,教会 Jazz 如何执行开发流程,从而指挥整个团队,通过有效的分工协作,完成开发任务。如图 2.1 所示表示 Jazz 平台的核心理念。
图 2.1 Jazz 平台的核心理念
Jazz 平台的出现具有划时代的意义,它预示了软件交付 2.0 时代的到来,揭开了软件交付历史上新的篇章。它顺应软件工程发展趋势,完全符合了软件交付 2.0 团队协作创新的要求,能够帮助软件企业快速打造软件交付 2.0 平台。其核心理念主要体现在协作、自动化和透明的报告三个方面。
-
Jazz 平台的协作理念,首先体现在 Jazz 由功能优先向团队优先的转变,它更强调通过基于上下文的团队协作实现高效的软件交付,从而变个人绩效为团队绩效;其次, Jazz 基于统一的数据存储库,提供了完整的软件生命周期服务的整合能力和细粒度的软件开发过程定制能力。同时,基于 OSGi 的组件架构模式,它使软件开发团队能够根据自身实际需求和规模要求,动态扩展软件生命周期管理服务,实现真正意义上的、以团队为核心的协作开发;最后,Jazz 平台本身基于 Internet 的软件交付协作平台架构,完全屏蔽了地域概念,有效地支持了企业快速建立全球化软件协作交付能力。
-
Jazz 平台的自动化理念,首先体现在其创新的流程感知能力,通过简单的流程定制,实现细粒度的流程自动化,能够启发式地执行流程,使整个软件开发团队,能够轻松的围绕软件开发过程翩翩起舞,协作开发。其次,Jazz 提供了很多手工任务的自动化,包括工作日志的自动化、需求全生命周期追踪的自动化、工作状态监控的自动化等。
-
Jazz 透明的报告很大程度上得力于其创新能力和 Web 2.0 技术的发展,通过流程的透明,它第一次使软件开发过程最大限度的贴近开发人员,为软件开发团队服务;通过订阅和报告技术,它赋予管理者实时的信息采集和报告能力;通过 Web2.0 技术,实现了团队成员之间信息的透明交换,距离不再是问题,团队沟通也不再是问题。
Jazz 是一个用于整个软件生命周期的团队协作平台,旨在支持跨所有软件生命周期阶段的任务的无缝集成。Jazz 在客户端和服务器端都设计为可扩展的,并且可以从非常小的团队扩展到大型企业环境。Jazz 整合了工具支持的流程指南的概念,其中工具了解团队已决定使用的开发流程,并无缝地帮助团队成员遵循该流程而不会妨碍他们。Jazz 不仅旨在集成现有的工具,而且还在于提供一个平台,在该平台上可以构建比以前更加整合的生命周期管理功能。当以这种方式在整个生命周期中集成开发工具时,使用一组结合在一起的解决方案来完成难以想象的事情将成为可能。像这样的集成端到端的工具可以帮助团队更有效地构建软件,并使得软件开发活动更加令人愉快。
Jazz 的整体框架
Jazz 的架构基础—OSGi
众所周知,Eclipse 是目前著名的跨平台的集成开发环境(IDE),通过实现基于插件(Plug-in)的即插即用的扩展机制,Eclipse 统一了软件交付的桌面(Desktop)。基于 Eclipse,IBM Rational 实现了从需求管理、架构管理、开发、测试到配置管理、变更管理整个应用生命周期管理能力,通过众多插件的支持,使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件开发商都以 Eclipse 为框架,开发自己定制的功能插件。究竟是什么赋予了 Eclipse 这种即插即用的组件架构模式呢,答案正是 OSGi。如图 2.2 所示,Eclipse 是 OSGi 最早的产品化实现之一,其核心部分正是 OSGi。
图 2.2 基于 OSGi,Eclipse 实现了即插即用的组件架构
如果说 Eclipse 统一了软件交付平台的桌面环境,则 Jazz 第一次实现了软件交付生命周期服务的整合能力。它以 OSGI 为基础,将 Eclipse 基于 Plug-in 的即插即用的、基于组件架构模式的扩展能力,延伸到了服务器端。由图 2.3 可见,Jazz 的服务器端内置了 Eclipse Equinox,它是 OSGi 的一个实现,是一组实现各种可选的 OSGi 组件和一些开发基于 OSGi 技术的系统所需要的基础组件。通过它 Jazz 实现了服务器端的组件架构和编程模式。
图 2.3 Jazz 平台在服务器端对 OSGi 的实现
那么,到底什么是 OSGi,为什么他能够为我们带来组件编程模式呢?
OSGi 是一个基于 Java 语言的服务规范,即 OSGi 服务平台,是面向 Java 的动态模型系统,允许多个基于 Java 的组件在单个 Java 虚拟机(JVM)之中有效协作。其核心部分是一个框架,这个框架实现了一个优雅、完整和动态的组件模型,它明确地定义了什么是组件,明确地定义了组件之间的交互方式,支持组件化的开发和部署。基于这一组件模型,组件(称为 Bundle)无需重新引导可以被远程安装、启动、升级和卸载等生命周期管理。服务注册允许组件(Bundles)去检测新服务和取消的服务,实现有效协作。
图 2.4 OSGi 分层模型及工作机制
如图 2.4 所示,OSGI 规范就是由核心框架以及基于其上的各类服务组成的。核心框架中主要包含四层部件,第一层就是运行时环境,它提供了组件运行时协作环境;第二层是模块(Module)层,它定义了组件的打包和重用方式;第三层就是典型的组件生命周期的管理,它提供组件生命周期管理,包括组件的安装、启动、停止、更新和卸载;第四层其实是服务层,就是 OSGI 组件提供的服务。为了解决组件之间的通信,OSGi 约定每个组件通过提供各自开放的服务(Services)实现相互间的协作。但如何知道哪个组件拥有哪些服务呢,OSGI 规范通过服务注册表(Service Registration)来解决服务的查询、定位和调用问题。在 OSGI 的世界里,Bundle 即可理解成为组件。
打造基于 Internet 的全生命周期服务整合平台
同样基于 OSGi,Jazz 将 Eclipse 基于 Plug-in 的即插即用的扩展机制,延伸到了服务器端,但同时也带来了新的问题。如果在同一个 OSGi 的运行环境中,组件可以通过调用服务实现相互间的协作。但 Jazz 的客户端和服务器端跨越 Internet,两个 OSGi 的运行环境中的组件如何实现服务调用的呢?解决这一问题的方法就是 Roy Fielding 博士在 2000 年他的博士论文中提出来的一种软件架构风格:表形化状态转变(Representational State Transfer,REST)。REST 从资源的角度来观察整个网络,分布在各处的资源由 URI 确定,而客户端的应用通过 URI 来获取资源的表形。获得这些表形致使这些应用程序转变了其状态。随着不断获取资源的表形,客户端应用不断地在转变着其状态,所谓表形化的状态转变(Representational State Transfer)。通过 REST 服务接口,Jazz 的客户端可以通过标准的 HTTP 协议访问服务器端组件的服务,从而实现了跨越 Internet 的组件间的协作,如图 2.5 所示。
图 2.5 Jazz 平台基于 Internet 的组件架构模式的实现
REST 服务接口提供了以下三个方面的重要帮助。
一是提供稳定的数据 URL。正像基于 Web 的超链接文本(HyperText)一样,有了 URL 的数据也会变成超数据(Hyper-Data),使得软件交付生命周期的各种数据能够像超链接一样,被方便连接使用。
二是提供标准的数据表述方式。通过开放的生命周期协作服务(Open Services for Lifecycle Collaboration,OSLC),整个软件交付生命周期中的各种资源不但以“超数据”的方式存在,还都使用了标准的 XLM 定义的规格说明,方便不同厂商工具间的整合。
三是提供基于标准的 HTTP 的数据操作方法。通过和 Web 一样的原理,任何客户端都可以使用“超数据”的 URL 实现对其的访问、数据的交互和增删改等操作,而不管具体的服务器的位置和分布。
由此可见,基于国际开放的 Web 和 OSGi 标准之上,Jazz 平台的客户端、服务器和 Web 界面都是基于开放标准 Eclipse 的插件式、可扩展的架构技术,因此,Jazz 本身就是一个开放的技术平台,它的开放性、可扩展的架构将导致许许多多基于 Jazz 的新产品诞生,使我们能够根据选择自己喜爱的生命周期服务组件来组装自己独特的软件交付平台。
开放的生命周期协作服务(OSLC)和 Jazz 整合架构(JIA)
如果我们定义了软件交付生命周期资源的规格说明及其共享方法,那么各种软件交付工具的集成将会变得更加容易。由 IBM 于 2008 年 6 月建议的开放的生命周期协作服务,提供了一个联合开发和共享供应商无关的服务规格说明的场所。通过提供标准应用生命周期(ALM)资源的 XML 描述和基于表形化状态转变(RESTful)的整合架构,建立了不同厂商、不同功能的软件交付生命周期工具间的整合框架,OSLC 奠定了软件交付 2.0 的基础。
基于 OSLC,Jazz 整合架构(Jazz Integration Architecture ,JIA)实现了更高层次的整合能力,它由参考架构、API 规格说明、一组公共服务和工具构造块组成,进一步定义了不同工具间互通互联的技术和规格说明,以支持企业或工具厂商能够快速开发新的生命周期工具和实现工具间的快速整合,如图 2.6 所示。
图 2.6 基于 Jazz 平台实现生命周期服务组件
Jazz 整合架构的核心部分是 Jazz 团队服务器(Jazz Team Server,JTS),它提供了 Jazz 基础服务(Jazz Foundation Services,JFS) 和一定数量的工具服务器扩展(Tools Server Extension)。Jazz 基础服务包括用户和项目管理、安全、协作、查询、工具互通互联和其他公共能力。它提供了软件交付生命周期服务组件共同需要的一些基本服务。而其他的服务器扩展则使用基础服务实现某个领域(例如需求定义、质量管理)的特定服务,这样就可以使不同的工具组合成为一个逻辑的整体进行工作。而在底层,Jazz 基础服务和工具服务器扩展都会以一个或多个 OSGi 的组件方式实现。Jazz 团队服务器逻辑架构如图 2.7 所示。
图 2.7 Jazz 团队服务器逻辑架构说明
由此可见,正是开放的生命周期协作服务(OSLC)和 Jazz 整合架构(JIA),使软件交付 2.0 时代以人为核心的软件交付流程和工具的服务组件化成为可能,从而揭开了软件交付 2.0 时代的序幕。
基于 Jazz 平台开发新的生命周期服务组件
任何企业都可以通过增加插件(Plug-in)的方式来对 Jazz 平台进行功能扩展。基于 Jazz 开发新的生命周期服务组件,主要任务就是基于 Jazz 平台,分别开发出服务器端和客户端的服务组件,即插件(Plug-in)。例如,在 RTC 的开发过程中,如图 2.8 所示,开发人员要在服务器端和客户端分别实现公共插件(Common Plug-in)、服务插件(Service Plug-in)、Web UI 插件、Eclipse 客户端插件、客户端库插件(Client Library)等基本插件和其他的具体功能插件。基本插件中,公共插件同时存在于客户端和服务器端,主要用于通过扩展点注册组件的服务接口;服务插件用于通过服务器端的扩展点注册相应的服务实现;Web UI 插件安装在服务器端用来实现 Web 界面相关服务;客户端库插件(Client Library)则用于通过客户端的扩展点注册客户端的接口。Eclipse 客户端插件主要用来实现 Eclipse 客户端的视图、编辑器等相关界面功能。
图 2.8 基于 Jazz 平台实现生命周期服务组件
Jazz 的现状与未来
Jazz 作为 Rational 下一代产品的基础平台,为整个 Rational 软件交付平台的发展提供了远景,不但 Rational 未来的新产品都将基于 Jazz 技术平台构建,而且 Rational 的现有产品也会逐渐迁移到 Jazz 平台,被赋予 Jazz 平台的协作能力。同时,因为 Jazz 的开放性、标准化和其特有的社区驱动的开发模式,吸引了众多合作伙伴基于 Jazz 开发自己的协作产品,它们与 IBM 一道共同构成了快速成长的 Jazz 社区和生态圈,如图 2.9 所示。
图 2.9 围绕 Jazz 平台的生态圈
在 2008 年,IBM Rational 已经推出了 3 款基于 Jazz 的新产品,如图 2.10 所示。Rational Team Concert 是 IBM 推出的第一个商业产品,其中包括 Jazz 平台的所有协作功能。它提供了对软件配置管理、团队构建和工作项的支持——其所属的协作环境针对中小型敏捷团队进行了优化。IBM Rational Team Concert 是一个协作软件交付环境,可以帮助项目团队简化、自动化和监管软件交付过程。自动化数据收集以及报表能力减轻了传统软件交付管理上的过度管理的问题,并提供了实时的监控能力使得软件项目的监管更加有效;动态的项目配置增强了团队在立项前期的生产力;实时协作功能可显著降低资源浪费和返工。Rational Team Concert 通过提供整合的项目计划、工作管理、配置管理、版本构建、报告能力,同时基于 Jazz Team Server,为整个团队提供了协作基础设施,增强了团队能力。
IBM Rational Quality Manager(简称 RQM)是一个协作性的、基于 Web 2.0 的全生命周期质量管理平台。它在软件开发的整个生命周期之内,提供了从测试需求管理、测试规划、测试用例设计、测试执行、测试评价和缺陷管理等整个测试生命周期管理方法。它建立在 Jazz 平台的基础之上,允许团队成员(包括管理员、测试设计师、测试经理、测试人员以及实验室管理员等)无缝共享信息,使用自动化加速项目进度,为项目管理收集指标和发布决策,实现了质量驱动的软件交付能力,帮助确保其应用程序满足所需的业务目标。RQM 实现了跨地域的团队协作能力,能够很好地支持各种规模的测试团队,通过和 IBM Rational Test Lab Manager 进行集成,还能提供自动化的测试环境、测试资源的管理能力,包括测试资源的规划、分配和测试环境的全自动构建能力。
图 2.10 2008 年发布的基于 Jazz 的工具
IBM Rational Requirements Composer 是 Rational 基于 Jazz 平台推出的下一代需求开发管理工具。它将各种需求定义手段及需求相关人员有机地结合在一个协作平台上,帮助开发团队将软件开发生命周期当中的需求定义阶段进一步前移。务求在开发之前将需求定义清楚,减少因为需求不清晰给后续开发带来的返工、延迟等等问题。并且,它提供了项目各种利益干系人方便使用的用户界面、Web 2.0 风格的链接、标签和交谈能力,使他们可以快速完成业务流程图、界面草图、故事板、用例图、需求文档、词汇表等需求开发工作,使非 IT 背景的客户代表等业务领域专家可以更加便捷参与需求定义过程。通过提供的一系列的需求定义技术和协作功能进行需求的引导、获取、详述、讨论和复审。
在 2009 年,IBM 还将基于 Jazz 平台推出企业报告工具、项目管理工具,以及完成众多现有 Rational 产品的 Jazz 化过程,目前已经完成了 ClearCase、ClearQuest 和 BuildForge 的 Jazz 整合能力,如图 2.11 所示。
图 2.11 2009 年基于 Jazz 平台的工具
让我们一起畅想未来基于 Jazz 的软件开发平台:基于 Jazz,企业可以自由选择各种组件化的软件交付产品和流程,其中既可以包括各种商业组件,例如来自 IBM Rational 的需求管理、架构管理、安全保障、质量保证、项目管理、配置和变更管理及构建管理等组件,也可以包括客户自己定制开发的各种功能组件,它们以服务组件的方式,通过 Jazz 提供的统一企业服务总线和数据管理能力,组成了灵活的、可扩展的企业软件交付生产线,实现企业软件交付业务流程,如图 2.12 所示。
图 2.12 Jazz 平台的未来
小结
Jazz 平台凝聚了 IBM 多年的软件工程研究成果,它是业界最先进的软件交付 2.0 平台,包含了最新的软件工程思想。本章从架构的角度,向您展现了 Jazz 平台如何基于业界标准 OSGi、REST 等,实现可扩展的组件架构模式,实现基于 Internet 的软件交付全生命周期管理平台。从发展的角度,向您详细说明了 Jazz 平台如何站在软件交付 1.0 时代的肩膀之上,提供核心存储库,实现全生命周期的可追踪性;提供智能的流程感知能力,确保团队能够基于统一主旋律密切协作;提供 Web 2.0 的众多功能,保证整个软件开发团队自由的交流协作。
本章的主要知识点包括:
-
Jazz 的理念和核心能力。
-
什么是 OSGi:Jazz 如何实现可扩展的组件架构模式,实现可拔插的组件开发模式。
-
什么是 REST:Jazz 如何实现基于 Internet 的全生命周期服务整合平台。
-
什么是开放的生命周期协作服务:它提供标准应用生命周期(ALM)资源的 XML 描述,提供了一个联合开发、共享供应商无关的服务规格说明的场所。
-
如何基于 Jazz 平台开发新的生命周期服务组件。
-
Jazz 的现状与未来。
读者反馈
欢迎您对本书提出宝贵的反馈意见。您可以通过本页面最下方的 建议 栏目为本文打分,并反馈您的建议和意见。
如果您对 developerWorks 图书频道有什么好的建议,欢迎您将建议发给我们。
参考资料 学习
获得产品和技术
讨论
作者简介  | 
|  | 宁德军,现任 IBM Rational 中国区高级技术经理,PMP。有超过 15 年的软件工程经验,曾为数十家公司提供过软件工程管理和项目管理的咨询服务。目前专注于软件过程改进、敏捷开发过程、项目管理和架构技术等的研究。 |
 | 
|  | 朱育雄,现任 IBM Rational 资深技术顾问,PMP。有超过 10 年的软件开发和管理经验,曾经为华为、ZTE、中国移动、南航、深圳软件园等多家单位提供过软件管理技术服务。目前专注于软件过程改进、软件项目管理、软件配置管理和面向对象分析设计等技术的研究。 |
 | 
|  | 孙昕,硕士。现任 IBM 中国有限公司软件部资深技术顾问,PMP。加入 IBM 之前,在国内外多家大型企业任职,从事软件开发和管理工作,超过 10 年的软件工程实施和咨询经验,对于软件工程方法、理论、工具有着非常深刻的理解和认识。 |
对本文的评价
|