浅谈深析面向服务的软件工程
2008-6
清华大学出版社
蔡维德,白晓颖,陈以农 著
160
无
《浅谈深析面向服务的软件工程》从历史发展的角度探讨了面向服务体系结构(service-oriented architecture,SOA)的本质和战略意义,以及它将给计算机技术带来的深远影响。着重分析了SOA作为一种新的计算范型,将给软件开发和软件工程带来的革命性变化。 全书分为三大部分共12章。第一部分分析了SOA的产生历史和发展现状。指出SOA作为一种新的软件范型,将对软件技术、产业、商业、教育等各方面的发展产生深远影响,特别是分析了SOA给中国软件产业发展带来的机遇和挑战。第二部分介绍了SOA的基本概念和技术。涵盖了SOA为软件工程的架构思想、分析与设计、测试这三个主要方面的方法和技术带来的潜在变化。第三部分介绍了面向服务的高级计算技术。主要探讨SOA中的策略支持、服务协同、数据溯源、信息服务和硬件服务化等支撑技术的概念及其发展前景。 这《浅谈深析面向服务的软件工程》写给软件开发人员、决策人员、教育工作者,以及所有期望了解SOA、理解SOA重要性和深刻意义的人们。
图表索引前言致谢内容提要引子第一部分 面向服务——一种新的计算范型第1章 为什么面向服务是一种新的计算范型1.1 什么是面向服务的体系结构1.2 为什么面向服务是一种新的计算范型第2章 为什么要关注面向服务2.1 超级程序员2.2 面向服务带来全球竞争2.3 “以人为本”的计算机教育2.4 以史为鉴2.5 以邻为镜2.6 软件比硬件硬2.7 对中国软件发展的建议第3章 面向服务的应用战略第二部分 面向服务计算技术第4章 面向服务计算基本概念4.1 服务化4.2 面向服务与面向对象4.3 面向服务的系统工程4.4 面向服务与本体第5章 面向服务的体系结构5.1 SOA服务组装语言5.2 以服务消费者为中心的SOA5.3 以最终用户为中心的SOA第6章 面向服务的分析与设计——新的“拿来主义”6.1 基本原则6.2 基于体系结构的分析6.3 模型驱动的开发第7章 面向服务测试7.1 协同验证与确认7.2 面向服务测试方法概述7.3 WebStrar——“The Power of Us”第三部分 高级面向服务计算技术第8章 基于策略的面向服务计算8.1 策略8.2 策略系统8.3 面向服务的策略架构8.4 模型驱动的策略计算第9章 服务协同9.1 协同简介9.2 协同的层次9.3 SOA协同的特点与问题9.4 协同的体系结构9.5 SOA协同协议9.6 “NOMADS共和国”9.7 CCSOA与动态过程协同第10章 数据溯源10.1 什么是SOA的数据溯源10.2 如何解决数据溯源问题10.3 服务数据对象与数据溯源第11章 信息服务11.1 信息服务的概念11.2 信息服务在SOA数据溯源系统中的体现11.3 信息服务对数据库的影响第12章 硬件服务化12.1 从软件服务化到硬件服务化12.2 面向服务的基础设施12.3 面向服务的基础设施框架12.4 SOI的实现——平台作为服务12.5 SOI的工程化挑战12.6 SOI的可扩展性12.7 小结后记参考文献相关公司和机构主页
第2章 为什么要关注面向服务 SOA可谓是来势汹涌,包括IBM、Intel、Microsott、SAP、Oracle在内的各大计算机公司都在积极倡导和大力推动SOA;Gartner预测,到2008年,面向服务的体系结构将成为80%开发项目的基础,它将结束传统的软件体系结构长达40年的统治地位,成为占有绝对优势的软件工程实践方法。 我们必须密切关注SOA的走向,并积极参与到由此而来的新一轮计算机技术的全球竞争之中,充分发挥各方面的潜能,力争站到世界前沿。这正是本书最主要的目的之一。 一种新的范型的出现所造成的影响,不单单只是学科性的,而是整个商业性的、教育性的,它所造成的改变,是彻底的改变。 范型的改变 20世纪90年代中期,我当时是美国一家公司的顾问。在没有进入这家公司时,他们还在用C语言,可自从我进入该公司之后,他们就开始改用Java语言了,并且本来他们是用英文写系统需求的,但是后采全面改成用UML了。与此同时,整个社会也发生改变了,大家不再谈论是不是懂FORTRAN和C了,而是问你是不是懂C++和Java;另外人们对一个公司的评价标准也改变了,不再单单看公司所用的语言是不是FORTRAN或C语言,大家更关心的是这个公司是不是采用了面向对象的思想来完成一个项目,所有的人都必须学习这种面向对象的程序设计思想和相关的语言、文档和测试。这就表明,在一个新的计算范型出来以后,整个商业界的编程语言就改变了,他们的设计思路也都随之改变了。 面向对象的范型差不多在1983年就开始出现了,但到1995年或1996年才被所有人接受,这个转变过程经历了十多年的时间。而这一转变造就了很多人的富有,也造成了很多人的失业,那些不肯学习新技术和新思想的人最后只有失业。自从2000年以后,又出现了一种全新的范型,那就是SOA。如果SOA真像OO那样是一种全新的计算处理范型的话,那么相应地,它会使企业界、教育界以及整个社会都会发生重大的改变。 现在的关键是我们要怎样做好准备迎接SOA的到来。面向对象范型造福了很多公司,也弄垮了很多公司;不符合潮流的公司会慢慢萎缩,而那些符合潮流的公司会兴旺发达起来。SOA将会为全世界计算机界带来重大改变,而面对这个改变,我们是必须要有所准备的,而且现在就要准备,不然就会来不及的。 老祖母的SOA 以前我有一位日本朋友,有一天收到电子邮件,是他老祖母发来的,他惊呼道:不得了了,老祖母都用电子邮件!说不定以后你们的老祖母也要用SOA。因为在家里用电脑时,她们要用的都是软件服务,这些服务以后可以通过电话、有线电视或者手机从网上获取。她们可能需要一个软件,这时就可以自己去搜索,下载或是在线租用服务,然后根据租用的日寸间、次数交费,这时软件就变成一种随需而到的服务,就像现在家里用水、电和家用电器一样。 连老祖母也要用SOA,这代表什么意思?这代表了以后不论是商学院的,工学院的,还是各行各业的人都要学SOA,并要在以后的日常生活中用到;甚至如果不学习使用SOA,连生活都会有问题。这个改变是巨大的,大到了超乎许多人想像的地步。 2.1 超级程序员 正如我们在前面讨论过的,SOA会改变整个应用系统的开发方式和方法。如果以现在的软件开发标准来衡量,SOA可以使每个人都变成“超级程序员”。 如果把一项技术比作一盘菜的话,那么要看菜里面有多少种东西才能判断这个菜是不是美味可口。我们会发现:在过程语言里面,有数据、子程序、数据抽象;而在面向对象范型里面,那盘菜里的原料突然多起来了,多了类、子类,还有继承和重载。也就是说,当你用FORTRAN语言写程序时,你所能看到的基本上就是若干数据和方法;而用一种面向对象程序语言编程时,你可以看到里面可能有几百个类、子类、接口等,你可以在这个基础上用继承、重载等多种“烹饪”方法。SOA在前面OO、CBSE技术的基础上,又增添了服务化、工作流、组装、协同等多种原料。所以说经历每一次范型的革命后,“菜”的种类多了,“调料”多了,“烹饪”方法多了,“烹调”工具也更强了,可以在更短的时间内烹制出更多更美味的“菜肴”了。 在此之前的范型,因为缺少共同遵循的标准,使得软件的重用往往仅局限于一个公司内部。但SOA提出了全世界软件都要遵照的互操作标准,并且将这些可重用的软件放在了公开的数据库中(服务注册中心),这样,所有的软件——只要愿意公开服务一就可以在全世界范围内重用。 在这种情况下,整个软件开发的模式将发生根本的改变。设想一下,全世界无以计数的可重用服务可以通过中介查询获取,并通过标准的网络协议访问、绑定和使用。那么,你该如何开发软件呢?可以想像,社会分工的改变导致出现各种服务提供者和服务消费者。服务开发人员并不需要知道其开发的服务将被谁使用、如何使用,而只关注于保证某一个特定服务节点的正确、可靠、高效、稳定即可。应用软件的开发不再是进行功能分解、代码编程,而是采用“模型+服务绑定+数据集成”的模式,即 (1)建立系统的业务模型; (2)针对模型的每一部分,查询并获得公开可用的服务资产;
《浅谈深析面向服务的软件工程》从历史发展的角度探讨了面向服务体系结构(SOA)的本质和战略意义,以及它将给计算机技术带来的深远影响。着重分析了SOA作为一种新的计算范型,将给软件开发和软件工程带来的革命性变化。全书分为三大部分。第一部分分析了SOA的产生历史和发展现状。第二部分介绍了SOA的基本概念和技术。第三部分介绍了面向服务的高级计算技术。
无