注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络信息系统企业架构实用指南

企业架构实用指南

企业架构实用指南

定 价:¥32.00

作 者: James McGovern[等]著;李琦,郭耀译;李琦译
出版社: 清华大学出版社
丛编项:
标 签: 暂缺

ISBN: 9787302114017 出版时间: 2005-09-01 包装: 胶版纸
开本: 23cm 页数: 249 字数:  

内容简介

  来自杰出企业构架师的不可或缺的技术、过程和业务观点。当前许多企业组织面临着设计、建造和维护大规模分布式企业系统的挑战,以便能够适应不断变化的业务需要。许多人重复着其他人的错误,导致费用超支、完成日期拖延,乃至丧失了机遇。今日的商业环境为IT造成额外的交付负担。不断调整的业务驱动脱离了当前的企业IT系统能力;尤其如果系统是复杂、脆弱,难以容纳变化的。企业架构能有助于今天做出前瞻性的IT投资。企业架构实用指南帮助读者为企业架构的成功实现而建立适应性的架构策略。这本经典的手册超越了理论,基于跨越多个行业立面组织中的实际经验,讲解了企业架构的策略。每个观点、技术和原则之后是由今日最知名的业界领袖提供的丰富知识。几位作者已为金融服务、电信、传媒和电子商务领域中许多全球杰出企业架构了工业级的软件和基础设施。他们讲解了实践指南,对已有的实践进行坦率的评价,并从亲身经验中提供详细的实例。本书前言从前,某位训练有素的科学家在他的实验室里工作,他把盛满试剂液的烧杯放到本生灯上,又拿起另一个烧杯,把内盛的试剂倒到前一个烧杯里。随着温度的升高,混合液的颜色开始变化,随即突然泡腾起来,散发出非常美妙的芳香。“我找到了!”科学家欢呼着冲出实验室,把这个好消息带给他的主管们。“我们一定要将它立即投产!”CEO说,“我们今年就能卖20亿加仑!”于是建筑队受命修建一个200英尺高的本生灯以及220英尺高的基座来安放50万加仑的烧杯,还需要建一个500英尺高的起重机来高高举起第二个烧杯,以便把内盛液体倾倒于第一个烧杯里制成混合液。然而,不行,这样的做法将会是愚不可及的。实验室中的试验和大规模生产相当不同。因此,企业系统若和实验室的原型系统采用同一架构,未免有点古怪,是愚不可及的。企业系统异于诸如“餐厅局域网”式的原型小系统,但是这种差异体现于架构,而不是设计思想。可是架构经常会被混淆于设计。架构表现的是在某类事物中普适的特征、结构、行为和关系。设计表现的是细节,说明某类事物中特定的个体该如何建造。架构和设计总是存在的。但在许多时候,它们埋没在程序员的意识里,踪影难觅。如果现在所有的程序员都是精干的架构师/设计师,如果大家都具备长期卓有成效的企业系统开发经验,如果大家在开发企业系统或其他相关项目时都愿意和其他程序员交流思想,如果在系统开发完成后不需要其他人员做维护、甚至另起炉灶再开发一个新的企业系统,那么架构和设计难觅踪影的状况会一去不返。可惜实际情况并非如此,而是恰恰相反。因而,架构和设计必须分开,并且明确化。架构由知识丰富的专家制造,负责沟通、启发和领导。仅有设计是不够的。企业系统的设计必须适合此类系统的外延功能需求——可伸缩性、完整性、灵活性、可建造性等——这些都是由架构决定的。企业系统经常失败的一个重要原因是架构和设计被合并。其他一些和企业系统同样复杂的人类活动,并没有出现和这些大型IT项目相同的失败率。这是为什么?我的回答是当前IT产业在三个主要方面存在显著欠缺:*企业层的架构(企业架构)。*支持企业架构的工具。*支持企业架构的组织。架构知识的燃眉之需设计一个企业系统是困难的。它要求大量的知识和技巧。在其他产业中,专业人员在开始工作前就被授予许多必要的知识。这些产业可以说是“知识专门化”。知识被划分为各个专门的需求领域。在建筑业里,建筑师知道工厂设计和公寓设计是相当不同的,公寓设计又与教堂设计和办公楼设计不同。又如,工程师明白设计磁盘驱动器和设计飞机是相当不同的(尽管它们都会用到空气动力学)。汽车设计师了解十八轮大货车的设计和家用轿车的设计不同。所有领域都有它自己的架构,设计特定的产品要遵从它的架构。在一个产业中,每个被关注领域以所谓的“架构方法”(architecturalapproach)为特征。(RichardHubert称之为“架构风格”,参见ConvergentArchitecture,Wiley,2002。)涉及不同架构方法产品的项目少有相同之处,相反地,生产含有相同架构方法产品的项目会有许多共同点。因而,项目中所使用的技术和工具也可能是相同的。设计特定的产品有据可查,有章可循,由架构方法规定其中的设计。那些跨领域(有些时候还会跨产业)的普适技术是非常重要的,但更重要的是这些技术对各种架构方法的不同应用。按照客户需求的架构方法,制造产品所需的知识各有差别,客户经常会指定架构方法:亦即,你会听到“我需要一辆家用汽车”,而绝少听说“我需要一辆车”。我们的产业倚重于技术,较少倚靠架构方法。显然,一个单机的图形用户界面应用程序和一个企业系统相当不同,这两者又都不同于一个工厂自动控制系统。这些应用系统都各自体现着不同的架构方法,架构方法服务于相应的那类应用系统项目,这类项目具备大量普适知识。然而,许多IT项目仍然由掌握着一套技术工具的专业人员着手进行,他们并不具备必需的有关架构方法的知识,而不得不在项目开发过程中艰难地逐渐学习。显而易见,因为项目架构师们被迫一边自学一边探索,许多项目无法表达出所需的信息。我们需要掌握有关架构的知识,并使它应用于我们的产业。本书为满足这个需求而跨出了重要一步。架构工具的迫切之需世上计算机化程度最低的组织机构可能是IT应用系统开发机构。不过,等一下!它们不是在每张工作台上都有昂贵的PC和网络连接,并且装配着昂贵的软件开发工具吗?当然,不错。然而它们中相当一部分仍然停留在棉纺产业的工业化水平上。犹如一伙机械工程师被要求用他们的本行工具——焊枪、车床、千斤顶——来制造一种新型汽车。设计方案交予了他们,详细到每一个螺母和螺钉,但是没有针对“这类汽车”架构方法的产品线(或者基础设施)缝合生产过程。他们80%的精力用于建造这些产品线,只有20%的精力用于生产所需数量的汽车。当他们完成时,早已超过了预算经费和期限。他们的产品线也该被丢弃了,因为这是为某类特定型号汽车而修建的。同样,应用系统开发人员也可能具备良好的工具和精深的技巧,但是没有架构方法来教授、规约、定义开发人员的努力。每个项目必须定义它自己的企业架构,并建造自己的基础设施、“粘合”代码、过程定制等(产品线)。当前的工具支持特定的技能与技术,可在多个架构方法间通用。但是,我们没有能够支持特定的架构方法的工具——称为“架构支持工具”。也许这就是我们的开发过程被割裂的缘故:一个可用的过程针对一个架构方法。然而许多通用过程要求额外的缝合和定制。你最近什么时候看到过市面上某个通用客户关系管理(CRM)过程是可以用来解决你的CRM的过程需求的?为了提高效率,过程必须是有针对性的——直到底层步骤。它们必须以制造出你的所需为目的。缺乏此类定位就是当前许多无目标(并且刻意如此)的超重过程被广泛拒用的原因。我们需要支持工具来支持企业系统所要求的架构方法,本书描述了许多对此类工具的需求。对适当组织的紧要之需设想一个IT部门拥有一批经验丰富的企业系统架构师、能干而积极的开发人员,以及出色的工具和过程,包括企业架构支持工具。这样就一切齐备了吗?可惜并不是。企业架构师也需要一个合适的人员组织,架构师在其中能如鱼得水地发挥效用。衡量架构师的效用的标准是应用系统开发项目工作的简化程度。许多IT部门在项目(或产品)基础上进行组织。除了一些基本的通用基础设施,比如硬件、操作系统和数据库管理系统(DBMS),每个项目都要自己决定其余部分。我见过许多创建者以这种方式安排人员和配备设施,但在可能是最困难的部分失败了:人员组织出现了问题。一个解决这个问题的方法是把组织分为两部分。一部分提供开发和运行时基础设施来建立和使用企业应用系统,另一部分则制造企业应用系统。后者尽可能在技术、开发和企业构架方法等诸多方面严格地促进前者。当前业界所采用的组织形式完全不是这样的。无论组织最后怎么设定,重点在于组织是来支持某个特定的活动的。如果组织不能直接支持和启动这种活动,那么就失败在望了。为了让应用系统开发项目成功运作而采用企业架构,需要妥善考虑人员组织。本书将介绍有关企业架构的组织形式。本书的重要性许多企业系统具有相同的架构方法,这已然成为现今企业架构领导者们间一个鼓舞人心的公论——虽然有些人使用不同的方式来表达,但相似的是都陈述了独立于特定应用领域的种种技术、模式和设计,用来有效地制造出反应灵敏的、可伸缩的、灵活的、标准化的企业应用系统。本书的重要性在于从多方面概括了这种共性。本书从数据基础要素(即计算机关机后永久保存的部分)到运行时软件设计,到按关注面进行的架构划分,到可伸缩模式,乃至总被忽略的用户界面,全方位地说明了一个成功企业系统所需的知识,并把许多标准综合起来。本书的价值还在于:它不仅讨论了需要建立些什么,而且谈论了如何去建立从工具和模型,到开发过程和方法学,到产品线方法,到敏捷开发,也包括人员组织的重要问题。此外,本书的闪光点是作者们源自多年经验的、无懈可击的、踏实实践的工作经验和扎实技能。本书包括许多知识点——或者说介绍了许多知识点——采用易读、中肯、不教条的方式讲述,这正是一个成长中的企业架构师所需要的。它是一本基础性著作,可以作为企业架构研究生课程的理想教材。实际上,我预期它能成为在我们这个神奇而生气蓬勃的产业中,企业系统知识领域的重要组成部分。

作者简介

  麦克高文,哈特福德金融服务公司企业架构师,是畅销书Java Web Service Architecture 和Agile Enterprise Architecture的作者之一。SCOTT W.AMBLER,Ronin国际公司资深顾问,专攻面向对象的分析/设计、敏捷建模和重要系统架构审计。他的畅销书包括Agile Modeling和The Elements of Java Style。

图书目录

第1章 系统架构 1
1.1 卡纳夏引入外来的架构师 2
1.1.1 基础设施的架构方法 3
1.1.2 其他关于系统架构的关注点 4
1.1.3 工作于现有的系统架构 5
1.1.4 系统架构类型 6
1.1.5 使用系统架构增强系统价值 12
1.2 网络协议 13
1.2.1 TCP/IP 13
1.2.2 其他协议 15
1.2.3 系统架构和业务智能 17
1.2.4 服务层协议 19
1.3 小结 27
第2章 软件架构 29
2.1 软件架构的定义 30
2.2 软件架构师的角色 30
2.3 为什么需要软件架构 31
2.3.1 两个极端 32
2.3.2 折中方案 32
2.4 系统涉众 33
2.5 创建软件架构的例子 34
2.5.1 业务实例 36
2.5.2 理解需求 36
2.5.3 创建或者选择架构 36
2.5.4 架构表示及通信 39
2.5.5 分析和评估架构 40
2.5.6 保证一致 41
2.6 架构描述语言与UML 41
2.7 品质属性 42
非功能性需求和品质属性 47
2.8 架构级的观点 48
2.8.1 软件架构的4+1视图模型 48
2.8.2 应用软件架构观点 49
2.9 架构级风格、模式和隐喻 51
2.10 小结 53
第3章 面向服务的架构 54
3.1 SOA的优点 54
3.2 SOA的特征 57
3.2.1 服务具有明确定义的接口与
策略 57
3.2.2 服务代表业务领域 61
3.2.3 服务拥有模件化的设计 62
3.2.4 服务应该被松散地耦合在
一起 63
3.2.5 服务是可以被发现并且支持
内省的 64
3.2.6 服务是独立于传输机制的 65
3.2.7 服务的位置是对客户
透明的 65
3.2.8 服务应该是独立于平台的 65
3.3 Web服务 66
Web服务的问题 68
3.4 卡纳夏的服务 69
3.4.1 卡纳夏的SOA分析 69
3.4.2 内部服务 69
3.4.3 卡纳夏的Web服务 71
3.4.4 国际化 71
3.5 SOA的问题 71
3.6 SOA管理 73
3.7 SOA的最佳实践 75
3.8 SOA反面典型 76
3.8.1 SOA就是一切。基础设施
什么都不是 76
3.8.2 关于SOA,我们只需知道
Web服务就可以了吗 76
3.8.3 SOA讲的是技术 77
3.8.4 任何东西都是一项服务 77
3.9 小结 77
第4章 软件产品线 78
4.1 卡纳夏的产品线 79
4.2 产品线的历史 80
制造业隐喻 81
4.3 软件产品线是什么 81
4.3.1 核心资产开发 82
4.3.2 产品开发 83
4.3.3 管理 83
4.4 产品线的优点 83
4.4.1 降低的费用 83
4.4.2 缩短上市时间 84
4.4.3 灵活的人员配备和生产能力 84
4.4.4 更高的可预测性 84
4.4.5 更高的品质 84
4.5 产品线特性 84
4.5.1 相关的业务优势 85
4.5.2 核心资产 85
4.5.3 共享的技术和工具 89
4.5.4 支持组织 90
4.6 小结 96
第5章 方法学概述 97
5.1 软件开发生命周期 98
SDLC的变化 99
5.2 极限编程 100
5.2.1 持续的计划 102
5.2.2 持续的设计 102
5.2.3 持续的编码 103
5.2.4 持续的测试 104
5.2.5 XP好处和不足 105
5.3 SEI/CMM 105
5.3.1 初始级 107
5.3.2 可重复级 107
5.3.3 已定义级 108
5.3.4 已管理级 108
5.3.5 优化级 109
5.3.6 CMM的好处和不足 109
5.4 Zachman框架 110
Zachman框架的优缺点 112
5.5 模型驱动的架构 113
MDA 的优缺点 114
5.6 Rational统一过程(Rational Unified
Process) 116
5.6.1 统一建模语言(UML) 117
5.6.2 核心过程流程(Core Process
Discipline) 117
5.6.3 Rational工具集 119
5.6.4 RUP的优缺点 119
5.7 使用这些方法学 120
5.8 小结 122
第6章 企业统一过程 123
6.1 企业统一过程概述 124
6.2 产品阶段 125
6.3 退休阶段 126
6.4 运作和支持流程 127
6.5 企业管理流程 127
6.6 为何要采用EUP 128
6.7 小结 128
第7章 敏捷架构 129
7.1 敏捷简介 129
7.2 传统企业架构方法的潜在问题 131
7.3 一个架构的敏捷方法 132
7.3.1 聚焦于人,而不是工艺或
技术 132
7.3.2 保持简单 134
7.3.3 迭代和递增地工作 134
7.3.4 亲自动手 135
7.3.5 在开口谈论之前先实践 136
7.3.6 观察全局 136
7.3.7 让架构吸引你的客户 136
7.4 敏捷架构的投入所产生的结果 136
7.5 卡纳夏的敏捷架构 137
7.6 在你的组织中引入敏捷方法 139
7.7 还有其他架构是敏捷的吗 140
7.8 敏捷方法的潜在问题 141
7.9 小结 142
第8章 敏捷建模 143
8.1 敏捷建模的目的 143
8.1.1 价值观 144
8.1.2 敏捷建模的原则 145
8.1.3 敏捷建模实践 148
8.2 敏捷模型 150
8.3 敏捷文档 152
对架构师的影响 152
8.4 小结 153
第9章 表示层架构 154
业务需求和表示要求 154
9.1 关键表示层组件 155
9.1.1 主表示层组件 155
9.1.2 次表示层组件 157
9.1.3 业务层组件 160
9.1.4 数据层组件 160
9.2 通用设计建议 161
设计表示层 162
9.3 界面组件的设计纲要 164
设计用户界面过程组件 169
9.4 小结 174
第10章 可用性和用户体验 175
10.1 理解可用性 176
10.2 用户体验组件 178
人机交互原则 179
10.3 可用性和用户体验设计过程 184
10.4 可用性技术 185
10.4.1 需求阶段 185
10.4.2 设计、开发和测试阶段 188
10.4.3 实施以及进行改良 189
10.5 共享可用性测试报告 189
10.6 即购即用体验 190
10.7 小结 191
第11章 数据架构 192
11.1 业务问题 192
11.2 基准线数据架构 193
11.3 框架 195
11.3.1 业务架构 196
11.3.2 业务对象建模 197
11.3.3 业务数据 197
11.3.4 架构 199
11.3.5 验证和最终复查 199
11.4 元数据 199
联合元数据 200
11.5 高级元数据架构 204
对业务问题应用元数据 205
11.6 数据安全 205
11.7 敏捷数据库技术 206
11.7.1 运用敏捷方法 207
11.7.2 使用脚本工作 209
11.7.3 规格化 211
11.8 小结 217
第12章 思想领袖 219
12.1 组织矩阵 219
12.2 外包和核心能力 219
12.3 强有力的技术领导 221
12.4 架构师面对时代的考验 222
12.5 对最佳实践的热衷追逐 223
12.6 敏捷CIO 224
12.7 神奇的开放源码 225
12.8 101咨询师 226
12.9 为什么我应该成为CIO 227
12.10 下一时刻 228
12.11 小结 228
附录A 业务案例 229
附录B 实用的考虑 232
附录C 敏捷企业架构的七种习惯 233
附录D 模型 234
附录E 参考文献 236
附录F 进阶阅读 241
敏捷 241
数据架构和数据库 241
开发 242
企业架构 242
模式 242
表示和可用性 243
职业 243
面向服务的架构 243
软件架构 243
UML 244
其他主题 244
附录G 未来的书 246
关于作者 248

本目录推荐