本书强调合适的体系结构是成功开发大规模软件系统的关键要素。本书基于聚合软件工程的基本原理,讨论聚合体系结构的概念、框架及其实际应用。首次将业务设计、项目设计与系统设计统一起来,勾勒出由体系结构框架生成应用程序的蓝图。书中介绍了许多实用的软件新技术,如模型驱动的体系结构(MDA)、职责驱动设计(RDD)与统一建模语言,并系统讨论了聚合体系结构的原理与应用实例。具体包括IT领域广泛存在的体系结构风格;聚合体系结构的发展历程;从聚合体系结构的元模型、聚合构件的元模型、IT组织模型与开发过程模型四方面论述的聚合体系结构的框架原理;体系结构开发环境等内容。
第1章 IT体系结构风格
1.1 发现高回报的资源
1.2 设计一个IT体系结构风格
1.3 小结
第2章 聚合体系结构的路线图
2.1 聚合体系结构剖析
2.2 操作环境
2.3 累积改善的总结
2.4 小结
第3章 聚合体系结构元模型
3.1 整个体系结构的三个支柱
3.2 聚合与聚合工程
3.3 机器车间的观念
3.4 精简抽象集计算
3.5 概念同态
3.6 构件的演进
3.7 小结
第4章 聚合构件元模型
4.1 概述与基本原理
4.2 体系结构的层次
4.3 所有聚合构件的共性
4.4 装配件
4.5 访问器构件
4.6 OPR业务构件
4.7 衫工具构件
4.8 小结
第5章 IT组织模型
5.1 所有IT组织的共性
5.2 IT组织
5.3 体系结构组织
5.4 IT支持组织
5.5 系统开发组织
5.6 系统运行组织
5.7 小结
第6章 开发过程模型
6.1 基础和结构
6.2 准备和跨项目工作流
6.3 项目管理工作流
6.4 开发环境工作流
6.5 配置和变更管理工作流
6.6 边设计边分析的工作流
6.7 实现周期工作流
6.8 测试工作流
6.9 文档编制工作流
6.10 部署和监控工作流
6.11 小结
第7章 体系结构集成开发环境
7.1 聚合业务对象建模器
7.2 UML/XML联模型库
7.3 聚合模式求精助理
7.4 聚合UML求精助理
7.5 聚合翻译生成器
7.6 实现、部署和测试环境
7.7 小结
第8章 教程范例: 聚合体系结构的应用
8.1 J2EE/EJB系统: 聚合iBank
8.2 用C-BOM进行业务建模
8.3 用C-RAS进行求精
8.4 用C-REF/UML进行J2EE/EJB建模
8.5 用C-GEN生成EJB构件
8.6 构建、部署和测试EJB构件
8.7 建立C-REF中的Web访问器模型
8.8 用C-GEN生成Web应用程序
8.9 构建、部署和测试Web应用程序
8.10 小结
参考文献
书籍
论文
标准(RFC, ITU推荐标准等)
工具
首先,让我们来想像这样一幅画面:每栋办公大楼都将重新设计与施工。我的意思是真正地从零开始,也就是每名建筑师都从运用基本原理开始工作,从原材料加工直至得到完整的大楼结构,提供保护措施,配备灭火装置,为不同楼层之间的人员提供传输工具,还要为用户提供通风、照明、电力和自来水等相关设备。如果是这样,那将是一场灾难。而且这样做的代价将是一个天文数字;每栋大楼将是脱离系统的一座座孤立的塔楼,其维修工作实施起来也难以想像。更糟糕的是,由于建筑失败事件很可能层出不穷,以致于它们都不能成为早报新闻了。
这是不是使人感到有些熟悉呢?应该如此。如今的业务软件设计和构造与上述写照就非常相似,其结果并不比我们设想的好多少。
将来某一天,应用软件的开发也将经历其痛苦的“青春期”,然后到达与目前建筑物设计同样成熟的阶段。与现代的办公大楼相比,业务应用程序将由经过证明了的构件组装而成,这些构件提供了重复出现的问题的解决方案。与建筑大楼相似,尽管每个应用程序系统都具有惟一的构造结构,但是它们共享一些兼容的子系统。这些子系统易于维护并且提供可靠的服务。
本书希望对上述目标进行初步的试探性研究。通过对相关内容和例子的讨论,说明为业务软件构造一致体系结构的可能性。这里所说的体系结构是指聚合体系结构(Convergent Architecture)。到目前为止,聚合体系结构是适用于大规模业务应用软件的最为综合、最为具体的框架。尽管体系结构的许多部分是新出现的,但是它已经融合了当前最好的实践经验,比如模型驱动体系结构(MDA,Model Driven Architecture)、职责驱动设计(RDD,Responsibility Driven Design)和统一建模语言(UML,Unified Modeling Language)。
激发聚合体系结构出现的火花是一门称做聚合工程的学科。我和我的同事在十年前就提出聚合工程,试图用来解决可扩展、可维护的业务系统的设计工作。聚合工程最基本的假设是:业务及其支撑软件的设计应该是合二为一的。对于业务的每个关键要素而言,存在一个相应的软件对象与之匹配。这些对象存在多种形式,但最终分为三大类:组织的、过程的和资源的。由规则将三类对象结合起来,并且控制它们之间的交互。例如,过程对象消费与产生资源对象,这些活动只能在拥有这些资源对象的组织对象上下文环境中发生。而规则为业务再工程这类困难的任务提供了有用的规程,它们也以同样的方式直接指明了支持该业务的软件再工程的规程。 1996年5月,Richard Hubert学习了聚合工程,他参加了我在聚合工程研究所(CEI,Convergent Engineering Institute)举办的为期一周的认证课程。一年之内,Richard又获得了主任认证师的头衔,从而有资格认证其他的人员,他在德国的Freiburg还创办了CEI的第二个国际分支。在德国若干大规模开发项目中,他和交互对象软件(iO,Interactive Objects Software)公司的顾问工作人员一起应用了聚合工程,并且与其他的技术结合起来,将其扩展成为一种更为全面的体系结构风格。
由于工具的相对贫乏,Richard一度受到挫折。Richard和他所在的小组开始开发软件来更好地捕获设计工作的结果,并且支持代码自动生成。经过他们的努力,最终发布了曾获得iO奖的ArcStyler产品。ArcStyler是一组从组织、过程和资源角度支持业务建模的工具集,然后驱动这些模型直到生成一个可执行的系统,这些系统可以部署在任意一个主Java应用程序服务器上。引人注目的是,业务模型在整个开发生命周期中是可见的。如果过程改进或者组织重构,则可以使用高层设计工具对相应的业务对象进行必要的改动,而不是改动低层的代码。这些工具是使聚合体系结构非常具有竞争力的展示。对于现实中艰难的软件开发而言,该工具为软件体系结构打下了坚实的基础。
对软件业界而言,本书所描述的体系结构有两个层面上的重要贡献:表面上来看,聚合体系结构提供了一种详细的应用程序开发方法,该方法可以被完全采纳,也可以适当地裁减;从深层次的角度来看,它展示了一种努力的方向,使软件工业从拖延的“青春期”走出来,成为一门更为成熟的工程学科。第一次使我们看到了一致的、引人注目的应用程序体系结构的发展方向,而且结合了如何实现该体系结构的精确指导,包括从概念到代码需要的所有工具。这种结合在应用程序开发领域无疑是一项了不起的创新。