第1章绪论
随着技术的进步,信息系统的规模越来越大,复杂程度越来越高,系统的结构显得
越来越重要。对于大规模的复杂系统来说,对总体的系统结构设计比起对计算的算法和
数据结构的选择已经变得更重要,在这种情况下,人们认识到系统架构的重要性,设计
并确定系统整体结构的质量成为了重要的议题。系统架构对于系统开发时所涉及到的成
熟产品与相关的组织整合问题具有非常重要的作用,而系统架构师正是解决这些问题的
专家。系统架构作为集成技术框架规范了开发和实现系统所必需的技术层面的互动,作
为开发内容框架影响了开发组织和个人的互动,因此,技术和组织因素也是系统架构要
讨论的主要话题。在系统开发项目中,系统架构师是项目的总设计师,是生产企业新产
品、新技术体系的构建者,是目前系统开发中急需的高层次技术人才。
系统架构师是近几年来在国内外迅速成长并发展良好的一个职业,它对系统开发和
信息化建设的重要性及给IT业所带来的影响是不言而喻的。在我国,虽然系统架构师的
职业在工作内容、工作职责以及工作边界等方面还存在一定的模糊性和不确定性,但它
确实是时代发展的需要,并正在实践中不断完善和成熟。
1.1系统架构的概念及其发展历史
1.1.1系统架构的概念
架构是一个古老的研究领域。在现实中,很多人认为架构就是一个有关建造一个物
理结构的学科。但是,在设计一个信息系统架构时,计划(规划)的概念把架构和建设
分割开来。
古代的文明对架构的发展有三个主要的贡献。一是多个建筑结构的完美结合。例如
在用于装饰和建筑元素中的横梁、拱扇和柱子间的结合。第二个是建筑装饰形式和模式
的广泛普及,这当中许多已经成为东西方宝贵文化遗产的一部分,许多还在被用于今天
的建筑当中。第三就是有序规划的概念,规划是架构的基石,也就是这三个贡献中最重
要的。现代信息系统的“架构”要素亦继承了这三个要素,即构件、模式和规划。
现代信息系统的“架构”本质上存在两个层次:一个是概念的层次,一个是物理的
层次。而概念层次则包含了艺术、科学、方法和建设风格。物理的层次是指在一系列的
架构工作之后而产生的物理结构及其相互作用的结果。
在实际工作中,为了有效地管理公司和运营业务,首先必须定义和建立一系列清晰
2系统架构设计师教程
的、实用的信息及其处理流程。这就是在一个企业中的企业总体业务架构观念,所谓软
件架构必须支持这一观念。
目前,软件架构已经成为软件工程领域的研究热点。作为大型软件系统与软件产品
线开发中的关键技术之一,已发展为软件工程领域的一个独立学科分支。由于所属的专
业领域、学术研究和实践内容的不同,研究人员对软件架构有不同的理解和定义。这里,
定义如下:
软件系统架构是关于软件系统的结构、行为和属性的高级抽象。在描述阶段,其对
象是直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致地描述组
件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体类或者对象。
软件系统架构不仅指定了软件系统的组织结构和拓扑结构,而且显示了系统需求和构成
组件之间的对应关系,包括设计决策的基本方法和基本原理。
1.1.2简要的发展历史
企业软件架构(EnterpriseSoftwareArchitecture),也叫做企业架构,是应用全面的
和严格的方法描述一个针对信息系统、流程处理、个人和组织当前和/或未来行为的抽象
结构集合,所以它们与组织的核心目标和战略方向结合,尽管一般来说与信息技术高度
相关,但也与商业流程优化密切相关,因此也涉及商业模式、功能管理和过程架构。
企业软件架构的雏形来自企业建模的理论和思想。在20世纪80年代早期,除了学
术界,很少有人对企业流程再造或企业建模的思想感兴趣,而且使用的理论和模型通常
被限于某个信息系统的设计和开发。
到20世纪80年代中期,还在IBM工作的JohnZachman首先引入“信息系统架构
框架”的概念。Zachman被公认为是企业架构领域的开拓者,他认为使用一个逻辑的企
业构造蓝图(即一个架构)来定义和控制企业系统和其组件的集成是非常有用的。为此,
Zachman提出从信息、流程、网络、人员、时间和基本原理等6个视角来分析企业,并
提供了与这些视角相对应的6个模型,包括语义、概念、逻辑、物理、组件和功能模型。
当时,Zachman并没有使