首页>参考读物>计算机科学与技术>综合

大规模基于构件的软件开发
作者 : [美]Alan W.Brown
译者 : 赵文耘 张志
出版日期 : 2003-07-01
ISBN : 7-111-11918-5
定价 : 25.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 184
开本 : 16开
原书名 : Large-Scale Component-Based Development
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

随着Internet时代的到来,计算机界面临着一系列的变化,这些变化使得传统的软件开发方法不能满足商业界对于软件的需求,软件业面临着越来越大的压力。
  本书针对这个背景,提出了大规模基于构件的软件开发方法。其主要内容包括:应用程序开发所面临的挑战,基于构件的开发方法学相关技术和标准,面向构件建模的方法,以及对未来发展方向的展望。
  本书作者对计算机界的历史、现状和未来发展趋势的见解十分深刻,把基于构件的开发方法的理论与实践很好地结合在一起。
  本书适合IT相关管理与技术人员以及大学计算机及相关专业的本科生、研究生阅读。
  这本权威性的著作由世界顶尖软件公司的研发领导人撰写,针对以Internet为中心的、基于构件的开发提出了完整的概念性框架。
  Alan W.Brown介绍了企业级开发技术中的一种“最佳实践”,这些技术可以减少开发时间、提高质量,并提高复用水平。他深入探讨了如何使用Enterprise JavaBeansTM、COM+和CORBA/IIOP这样的技术以更低的成本,更好的灵活性、响应度、用户友好性进行分布式访问。
  本书内容包括:
  针对电子商务进行开发:业务驱动因素和技术支持
  中间件、应用服务器和企业应用集成的角色
  选择技术、定义架构、为应用程序建模以及管理基于构件的项目
  基于构件开发领域的新方向:把先进的研发成果转化为现实世界的企业级解决方案
  本书为管理推动电子商务的Web技术和构件技术提供了一幅完整的蓝图。对于每一个与以Internet为中心的多层企业级系统相关的决策制定者来说,这都是宝贵的资源。

图书特色

Alan W.Brown是冠群(Computer Associates)公司的一位战略家,并且是一位世界公认的软件界的领导者。在这之前他曾经担任Sterling软件公司的技术副总裁。

图书前言

软件工程正在进入一个新时代。Internet以及与它相关的技术正在改变着顾客、供应商和公司之间相互作用来实施业务活动、通信以及合作的方式。结果是创造了扩展现有业务的巨大机会,可以随时随地的把更多样的和更深层次的信息传送给那些需要这些信息的人,完全新型的商业模式兴起了,如果没有Internet时代所孕育的业务和技术进步,这些商业模式是不能想像的。就像美国商业部长William Daley所说的那样:
“技术正在改造着现在的经济并且正在改变着企业和顾客。这不仅仅是电子商务、也可能是电子邮件、或是电子交易、电子文件。它是经济机遇中的‘e’。”
这种影响最近已经被由Booz-Allen&Hamilton的经济学家情报联合会(Economist Intelligence Unit,EIU)所做的研究证实。他们调查了500多个高级主管,所问的问题是Internet怎样改变了他们的企业策略。结果显示超过90%的人相信Internet将在未来的三年内改变他们的企业策略或对其产生重要影响。而且,其中许多主管都认为有必要重构他们的业务,以利用其业务环境发生的基本变化。
然而,伴随着这些变化而来的是一系列威胁。许多单位对这些新技术必存畏惧,不知道怎样去利用它们,而且不知道这些技术怎样与现有的在技能和基础设施方面的投资相结合。它们需要的是一个理解Internet时代软件解决方案的概念性框架,以及技术如何驱动这场革命的现实观点。
基于构件的开发(Component-Based Development, CBD)和构件是满足这些需要的方法。我们看到,越来越多的组织开始采用构件作为“封装现有功能、获取第三方解决方案以及建造支持新业务过程的新服务的”方法。最新的分布式系统技术支持并且鼓励用构件的观点来进行应用集成和部署。而且,基于构件的开发提供了一种很适合于今天的以Internet为中心的软件解决方案的设计范型。本书考察了构件和基于构件的开发,以及它们在Internet时代提供企业级解决方案中所扮演的角色。
基于构件开发的起源和角色
从根本上说,基于构件的开发(CBD)是一种主要靠组合以前已经开发出来的软件来进行应用程序开发的技术。软件业中的很多人开始把CBD看作是一种令人激动的全新应用程序开发方法,它提供了减少软件开发时间、提高所发布的应用程序质量的希望。
复用以前开发的构件并不是什么新的想法。自从软件开发活动出现以来,就有了在减少创建新软件的工作量方面的努力,包括像宏语言这样小规模的努力,像过程资产库(process asset library)这样大规模的努力。虽然每一种努力都对软件的复用产生了影响,但没有一种达到了人们所期待的或要求的全部效果。
最近,计算机技术有很多重要的进展。这些进展促使软件业重新考虑怎样来开发软件,并且为计算机支持的软件制品的复用提供了新的机遇。这些进展直接影响到软件业中的每一个人。其中的三项进展特别值得注意:
第一,硬件技术的快速发展已经持续了不止一个年代,结果是计算机技术的性能价格比持续提高。各单位在计算能力上比几年前都已经有了很大提高,这具体体现在分布在单位各级的数目巨大的桌面计算机。
第二,对远程信息的分布式访问的开发代价更低,维护更方便,对用户更加友好,响应更加迅速。这是一系列在支持客户机/服务器构架的分布式基础设施的技术、高吞吐量网络以及分布式数据管理等方面的进展的结果。许多分布式基础设施技术现在都已经很普遍,支持下面一系列协议和标准,包括TCP/IP(transmission control protocol/internet protocol)、RPC(remote procedure call)、HTTP(hypertext transmission protocol)、CORBA(Common Object Request Broker Architecture)以及IIOP( Internet inter-ORB protocol)。
第三,在万维网、Internet以及intranet技术方面的令人兴奋的进展,改变了人们对信息访问和可用性的看法。这导致了许多新的工具、过程和技术的出现来支持新的思维和工作方式。最终用户对应用程序的期望与几年前相比,已经有了很大的不同。
在这些进展的基础之上,一种称为基于构件的开发的新的解决方法产生了。从CBD的最纯粹的本质上来说,它就是利用这些进展来为未来的应用程序提供一个基础设施,这个基础设施可以为单独开发的软件制品的连接提供更加方便的手段。结果,无论是从组织内部还是从世界上任何一个地方得到的软件制品的集成,以及减轻从许多不同地方获取的软件制品的演化、转换和集成的负担而使用可用的计算能力来实现智能协助,它都提供了更大的机会。
在遵循了CBD方法后,软件设计、实现、部署和演化的所有方面都会受到影响。结果,软件项目可以从一个以代码编写和错误修正为中心的过程转变为一个更为受控的组装过程,在这个过程里新代码的开发降到了最低程度,系统的升级变成了替换具有良好边界的系统功能单元的过程。这是许多不同方法和技术的目标,这些方法和技术在软件业中赢得了大量的关注,它们现在都归在了企业应用集成(Enterprise Application Integration, EAI)领域。
采用基于构件的方法的必要性和回报都是很明显的。然而,就像任何新的软件方法一样,现在在希望实现CBD的人员与实现CBD的工具、过程和技术之间存在着一条明显的鸿沟。为了成为一个效果良好的、可重复的、能为每一个应用领域开发大规模的和健壮的解决方案的过程,CBD有很多障碍需要去克服。
目前软件实践者所面临的最紧迫的任务是理解促使转向CBD的业务驱动的因素,获得构筑CBD的基础技术,以及获得为了理解怎样及何时在特定情形下应用CBD技术所需的洞察力。这些都是本书所要回答的问题。
本书的目标
本书提供了理解CBD以及把它成功地应用于企业级解决方案所需的相关内容。CBD是一种新的软件开发方法,它将在未来显著地影响软件开发的实践。本书的目标有以下三个:
(1)对CBD的基本技术进行介绍。有很多技术都对这种方法做出了贡献。其中的每一种都要根据这种技术是怎样产生的、它的主要优势和弱点以及它可能的发展方向来进行研究。
(2)不仅仅是简单地枚举每一种技术的进展,本书还提供了每一种技术怎样对CBD的更大目标做出贡献的整体视图。为了更完整地理解每种技术的相关性和影响,读者可以把这种技术发展应用到需要的环境中去。
(3)虽然我们讨论了这些技术的学术背景,但本书实际上是非常实用的。在讨论这些技术的时候,都结合了它们对现在和未来的大多数软件工程实践的影响。
读完本书之后,读者将理解在软件工程领域的关键技术进展,了解这些内容有助于软件工程师在利用这些技术的时候将处于领先地位。
本书的读者
本书的主要读者是信息技术(Information Technology, IT)经理、软件工程实践者,以及对在组织中提高软件工程实践能力感兴趣的项目经理。正在学习高级软件工程课程的学生也可以获得对现代软件工程实践和技术的有价值的观点。本书给这些读者提供了理解范围如此之广的技术所需的背景知识。具备了这些知识,读者将能更好地对相关和感兴趣的技术进行细致的研究。
描述性的文字是针对那些想增长见闻的经理、分析员和类似程序员这样的人。本书不想用详细的业务案例来说明CBD,也不使用需要在你的工作站上录入的代码实例。本书中的内容相当宽泛,提供了丰富的各类读者都感兴趣的材料,并且提供了每一个领域相关的参考文献。
本书的结构
本书由四个部分组成。不同的读者可根据兴趣分别阅读。这四个部分如下:
(1)第一部分包括电子商务的背景信息,即在Internet时代的企业级解决方案的驱动力。这个部分是任何对现代软件工程发展趋势和技术有兴趣的人进行深入学习的基础。
(2)第二部分介绍了基于构件方法的关键要素和CBD在整个软件解决方案生命周期中的角色。这一部分回答了三个基本问题:什么是CBD,什么是构件,怎样定义构件的行为。
(3)第三部分描述了CBD的实践。更详细地考虑了各种CBD技术,提供了一个应用CBD技术的说明,并且考虑了这些思想将怎样影响未来的企业级解决方案。
(4)第四部分提供了一些关于Internet时代的企业级解决方案的展望和建议。它包括对CBD现在和未来的发展方向的看法,并提供了本书相关的参考资料。
致谢
如果没有许多人的辛苦工作、支持和洞察力,本书是不可能完成的。我非常高兴地感谢他们的贡献。
本书的很多思想基于我现在的和以前的在Sterling Software(现成为Computer Associate International, Inc的子公司。网址为www.cai.com/sterling)的同事的工作。我从很多人的著作以及与他们的讨论中获益匪浅,这些人包括:Balbir Barn、Bill Barnett、John Cheesman、Doug Conley、John Daniels、John Dodd、David Helffrich、Mike Jones、David Marshall和Doug McCammish。除此之外,Bill Gibson、Keith Short、Desmand D' Souza和Alan Wills对本书的方向也做出了重要的早期贡献。特别是,John Cheesman和John Dodd的工作对本书的形式和内容有重要的影响。
很多人都对本书内容的改进提供了帮助。我特别要感谢Paul Allen、Scott Farris和Fred Long 在我写作本书的时候对草稿进行了评审。我要感谢他们的友谊、洞察力和耐心。
最后,最衷心的感谢要送给Moria West-Brown。她不间断的支持和鼓励对这本书的完成至关重要。
—Alan W.Brown
alan@CBDEdge.com

图书序言

商业杂志连篇累牍地告诉我们,Internet改变了一切。软件工作者长期以来帮助自己以外的所有行业实现了自动化,现在他们也应该在业务模式创新方面与时俱进。
但我们知道怎样去做吗?答案是并不十分清楚。如果我们知道怎样去做,那么软件就不会在商业圈子里得到现在这样的名声—总是延期、超过预算以及实现不了预期的功能;经理们也不必把精力放在解决缺少开发者这样的问题上;并且我们都可以早点下班回家。但我们还是有了一点解决问题的线索,并且可以从最近工具、技术和标准上的进展得到一点希望。
本书在清晰和全面地总结这些进展方面所做的工作非常出色。大多数软件书籍都属于以下两类:面向开发者的技术书籍或面向管理者的管理书籍。虽然分两类书籍并没有什么错,但本书的与众不同之处在于它把两类读者的兴趣集中在一起,同时研究三个内容:应用程序开发、Internet以及构件的兴起。
今天的应用程序开发面临着相当大的压力。在业务方面,我们要支持持续不断发生的变化,这种变化在企业界已经习以为常。在用户方面,在任何时间、任何地点、对任何人,一切都必须可以通过万维网(World Wide Web)得到—并且不必担负把关键业务过程的完整性和安全性暴露给整个世界的危险。在人力资源方面,我们必须忍受软件天才的缺乏,并且在竞争对手把我们最好的开发人员在一夜之间挖走的情况下仍然可以生存。好像这还不够,我们很少能用得到那些在软件工程入门课程上所教的内容。尽管每一个有自尊心的软件工作者的梦想是从零开始建立一个完美的系统,但我们实际所做的是对前辈留给我们的一些“遗产系统”进行一次次的包装。
Internet不仅仅意味着“天涯若比邻”的美妙图景,它也引起了今天的几乎所有企业级开发中的问题,要求每一个应用程序包括所有可能的构件—业务逻辑、一个或多个(通常是数个)图形用户界面、中间件、分发、数据库、安全性、可伸缩性、内置的演化计划,以及与本公司内外其他系统的接口。
基于构件的开发似乎对任何一种解决方案都是必需的。对象技术中深奥的软件工程原理与最初简单的Windows世界中的“用户控件”的结合产生的构件,为清晰、规范地重新封装遗产系统带来了希望,同时也为新开发的系统带来了希望:可以使用模块化、可插拔、可演化并且与世界的其它部分有着良好接口的元素。随着通信标准的不断提出,我们正走在通往应用程序开发新时代的路上。
在这条路上,由于我们仍然必须掌握多种技术、标准、元标准以及使标准之间互联的标准,实际数量如此之大以至于那个古老的笑话(“我们热爱标准,而且关于标准我们最欣赏的是有许多标准可供我们选择”)失去了讽刺意味,并且变成了构件和中间件世界中目前事实的客观描述。Alan Brown做出了非凡的工作来引导读者穿过技术和缩写词的丛林,从EAI到ERP,从EJB到RMI,从UML到XML,从RPC到MOM等等。在整个讨论中,他把技术以及技术在业务中的应用结合在一起,向开发者、管理者,以及两者兼任的人,说明了基于构件的Internet企业级应用程序开发。
—Bertrand Meyer
现代软件工程先驱
Eiffel语言之父

作者简介

[美]Alan W.Brown:暂无简介

译者简介

赵文耘 张志:暂无简介

译者序

计算机技术对人类社会产生了巨大的影响,许多人的工作和生活已经离不开计算机了。而软件是计算机系统中的关键部分。在过去的10年中,随着Internet的出现,计算机领域面临着巨大的变化。Internet对计算机领域产生的影响是深刻的。商业界对于软件的需求也越来越热切了,他们希望软件系统能够更好地支持他们的业务。但面对这些变化和需求,传统的软件开发方法显得力不从心,因此就需要有一种新的更有效的软件开发方法。基于构件的开发方法由于其自身的特点越来越受到人们的重视,它对于解决软件开发所面临的挑战具有十分重要的意义。现在出现了很多讨论EJB、COM+、CORBA等构件技术的书籍,但对于基于构件的开发方法进行总体讨论的书籍还不多见,本书的出现可以使人们对于基于构件的开发方法有更为清晰和深刻的认识,而不仅仅局限于某种特定的技术。
本书介绍了在Internet时代的电子商务革命,分析了促使软件开发发生变化的业务驱动因素和新技术,指出了当今的软件开发所面临的挑战。针对这些挑战,本书提出了对于开发企业级解决方案非常关键的一些重要技术,这些技术是基于构件的开发方法的基础。作者介绍了基于构件的开发方法的基础理论,以及怎样应用构件技术。关于构件技术的应用,书中对基于构件的开发方法相关的技术、方法和标准做了介绍和比较,并且给出了实例。在最后一部分,作者还对未来的软件开发做了展望。
本书没有对各种技术的细节做过多的介绍,而是从整个计算机业发展的高度对软件开发进行了深刻的论述。本书介绍了基于构件的软件工程(CBSE)的原理,但更多的是结合软件开发的实践发展来展开论述的,这是由于CBSE本来就是软件复用理论与众多的实践相结合而产生的。因此,即使读者没有软件复用理论基础,在读完本书后,对于基于构件的开发方法也会获得清晰的认识。本书的作者对于软件开发的认识是十分深刻的,论述也是十分严谨的,相信读者必定能够从中得到不少的启发。本书不仅适合软件技术人员和学生阅读,对于想了解软件开发的现状和未来发展方向的决策者也会有很大帮助。
参加本书翻译工作的有:赵文耘、张志、李川、奚德、沈铖,张志负责统稿,赵文耘审阅全文。在翻译过程中,我们力求忠实于原文。但是由于译者的知识水平有限,以及时间仓促,难免有翻译不当之处,欢迎读者批评指正。
2002年10月于上海

图书目录

译者序
序言
前言
第一部分  电子商务和正在改变的
应用程序开发的角色
第1章  引言 2
1.1  动机 2
1.2  软件开发的挑战 3
1.3  通向未来的关键:控制复杂性和快
速适应变化 3
1.3.1  管理复杂性 4
1.3.2  适应变化 6
1.4  业务驱动及IT策略 8
1.5  小结 9
第2章  应用程序开发的进展 11
2.1  引言 11
2.2  应用程序开发支持的进展 12
2.2.1  过去—客户机/服务器应用程序 13
2.2.2  当前—N层分布式系统 13
2.2.3  未来—移动的、面向服务的
解决方案 15
2.3  未来应用程序开发的关键问题 17
2.3.1  表示大规模分布式软件构架 18
2.3.2  为系统的可复用部分建模 19
2.3.3  对新型应用程序的改进的方法支持 20
2.3.4  已有的应用程序开发工具提供商的
务实性 23
2.4  小结 24
第3章  Internet时代的企业级解决方案 26
3.1  引言 27
3.1.1  电子商务革命 27
3.1.2  当前关键的IT问题 28
3.2  中间层的重要性 30
3.2.1  从客户机/服务器到N层构架 31
3.2.2  中间层在基于Web的系统中的角色 31
3.3  应用服务器 33
3.4  企业应用集成 35
3.4.1  应用程序集成……关于开发的
新观点 36
3.4.2  通过连接器来实施EAI 36
3.4.3  EAI的更广泛的观点 37
3.5  构件和构件模型 39
3.5.1  使用构件的设计 40
3.5.2  构件的实现 41
3.6  小结 42
第二部分  构件和基于构件的方法
第4章  基于构件开发的基础 44
4.1  引言 44
4.2  构件方法的目标 45
4.3  为什么要使用基于构件的开发 45
4.4  什么是构件 46
4.4.1  构件和对象 47
4.4.2  构件和分布式系统 49
4.4.3  构件的要素 51
4.5  怎样使用CBD组装应用程序 52
4.5.1  构件来源 53
4.5.2  关注于接口的设计 54
4.5.3  应用程序和构件构架 54
4.6  在CBD领域中当前的实践是什么 55
4.6.1  专门兴趣小组 55
4.6.2  提供商领导的用户小组 56
4.6.3  专业构件服务提供者 56
4.6.4  经验报告和建议 57
4.7  小结 57
第5章  深入了解基于构件的开发 58
5.1  引言 58
5.1.1  可复用服务的提供 58
5.1.2  服务的独立交付 59
5.2  对构件概念更为深入的理解 59
5.2.1  包装的观点 60
5.2.2  服务的观点 60
5.2.3  完整性的观点 61
5.2.4  一个说明性的实例:Microsoft Excel 62
5.3  构件规格说明的重要性 63
5.3.1  接口的角色 64
5.3.2  模型的重要性 65
5.3.3  协作和角色 66
5.4  基于构件开发方法的各种要素 68
5.4.1  由构件组装成应用系统 69
5.4.2  提供独立的服务 71
5.4.3  通用构件基础设施 71
5.4.4  使用通用的服务 73
5.5  小结 75
第三部分  应用构件技术
第6章  CBD技术和标准 78
6.1  引言 79
6.2  统一建模语言 80
6.2.1  什么是UML 80
6.2.2  UML的背景 81
6.2.3  UML定义了什么 82
6.2.4  用UML支持构件建模 82
6.2.5  高级UML概念 84
6.3  Microsoft构件库 85
6.3.1  背景 85
6.3.2  构件库的概念设计 86
6.3.3  CBD的信息模型 86
6.4  构件基础设施技术 87
6.4.1  构件基础设施服务 87
6.4.2  构件基础设施实现 88
6.5  小结 91
第7章  面向构件的建模方法 92
7.1  引言 92
7.2  CBD生命周期 93
7.2.1  Rational统一过程 93
7.2.2  Sterling Software的Enterprise
CBD方法 95
7.3  关注于接口的设计方法 97
7.3.1  一个受UML启发的构件建模方法 97
7.3.2  一个受Catalysis启发的构件
建模方法 102
7.4  小结 109
第8章  基于构件方法的示例 111
8.1  引言 111
8.2  理解上下文 112
8.2.1  需求定义 112
8.2.2  用例建模 113
8.2.3  业务类型建模 114
8.3  定义构架 116
8.3.1  构件构架建模 117
8.3.2  上下文建模 118
8.3.3  接口建模 120
8.3.4  接口定义 120
8.4  提供解决方案 121
8.4.1  构件实现 122
8.4.2  构件包装 122
8.4.3  构件组装 123
8.4.4  系统部署 123
8.5  小结 123
第四部分  展望未来
第9章  业务的迫切需求: 迅速进入
数字时代 126
9.1  引言 126
9.2  电子信息技术在各个领域的存在
和发展 127
9.3  软件开发的结束 129
9.4  小结 131
第10章  技术响应:灵活的服务和
解决方案 133
10.1  引言 133
10.2 基础设施和平台技术 134
10.3  标准化活动 135
10.3.1  XML 136
10.3.2  EJB与CORBA构件模型 137
10.4  工具的发展方向 138
10.4.1  提高产品的集成度以支持基于
构件的开发 138
10.4.2  新一代构件设计和实现工具 139
10.5  研究方向 141
10.5.1  模式和框架的使用 141
10.5.2  遵循更为严格的构件规范 142
10.5.3  改进的构件构架建模 143
10.6  小结 143
附   录
附录A  关于企业级应用开发的一些
有用的资源 146
附录B  一个详细的CBD建模实例 151
附录C  参考文献 166
索引 174

教学资源推荐
作者: 赵淑芬 主编  康宇光 副主编
作者: (英)Robert Spence 著
参考读物推荐
作者: [美]约翰·贝拉马里奇(John Belamaric) [美]克里凯特·刘(Cricket Liu) 著