E-development:一场软件开发方法的革命
作者:贾育
email: jia_yu@263.net
一、软件开发面临的新挑战
纷繁复杂的数字化世界(e-world)呈现出分布性(distributed,)、并行性(concurrent)和协同性(connected)三大态势[Jim00]。海量信息散落在世界的各个角落,一台主机集中控制一切的时代一去不复返了;虽然用户面对的是一个整体的服务体系,它的后面却隐藏了一个巨大互联网络系统;一方面,“并行”是人类活动时空分散的必然产物,无论是电子化经济过程还是软件开发的生命周期,网络计算控制下的“多线程”方式给我们带来了巨大的社会和经济效益;另一方面,由于快速便捷的网络构成了信息时代的社会基础,协同工作代表了数字化世界的社会特征,是一条服务“供应链”将人们紧密地联系在一起。
由此可见,过去的梦想是今天的现实,服务、网络和经济的相互渗透,促进信息产业迅速的发展,同时也给软件开发带来前所未有的困难,2000年,以Rational公司首席科学家的Grady Booch为首的100位软件界权威对新经济下的软件业预测是[Paul01]:
§ 软件将变得越来越复杂(Software will continue to become increasingly complex);
§ 无线网将具备远程获取能力(The unwired Web will have far-reaching implications);
§ 新经济要求软件能够持续更新(The new economy requires software that can be continuously updated);
§ 软件在无限制地发展的同时,问题也在不断出现(There are unlimited possibilities for software's growth -- but there are some problems, too)。
因此,在追求数字革命给商业经济带来的极限利益过程中,我们不能简单地依赖于过去几十年在计算能力、带宽和存取能力方面取得的巨大成功,技术、经济和社会因素促使我们最大限度地、无止境地发展软件开发方法和技术,只有这样,才能保证新经济下大规模的、以软件为中心的系统获得可持续健康发展。
二、Web服务:对软件的新认识
面对新经济形势的诸多挑战,软件业正在发生全局性转折,在网络计算成为主流计算平台的今天,软件的网络化和服务化成为技术发展的首要标志[王怀民01],只有认识到软件和软件开发的这个变化本质,才能为制定正确的软件开发的技术和策略提供依据。
1. 软件向网络服务的转变
网络成为开发、部署、使用和管理软件系统的基本环境,软件产品的形态和传播方式将发生变化,软件不再是用户向开发商购买的信息处理工具,而是向服务商购买的信息处理服务。
2. 分布特征渗透到软件相关的各个层面
管理分布:软件开发管理不再以个人为单位,而是以能力、权利和责任的形式,分派给网络上多个组织的多个管理者;
信息分布:信息无所不在,软件通过互联网共享不同时空点的数据资源;
系统分布:软件系统由不同地点的服务组成,用户需求由开放的、分布的商业过程共同完成。
3. “即插即用”的软件开发模式
企业级商业系统将是业务构件的集成,商业成品软件COTS会替换商业系统中的业务模块,软件开发不再是“一切从零开始”的代码编写方式,而是构件的选取、调整和装配过程。
4. 软件越来越多地具有生物智能性
随着对生物智能行为机理认识的提高, 神经网络、模糊逻辑、遗传算法、混沌和分形科学等人工智能方法正逐渐融入软件技术之中,智能代理技术的迅猛发展便是这种潮流的典型代表。
5. 软件处处体现经济特征
传统上软件产业主导的商业模式是收取软件拷贝使用许可证费方法,但是这一商业模式引导软件公司封闭软件源码,束缚了软件生产力的提高,随着开放源码运动的兴起,软件业将提高提供软件服务获取利润的新型商业模式。
由此可见,软件业将由今天生产和销售有价的知识拷贝变为生产和销售原始知识创新和服务,相应地应用软件的开发技术也正经历一次巨变。传统上,软件开发人员通过组合本地系统逻辑处理能力的方式开发应用程序,使开发人员有权使用丰富的系统资源,精确地控制应用程序的性能;现今,开发人员正致力于构建具有复杂结构的N层系统,将网络中各处的众多的应用程序连接起来;于是,软件开发技术从研究如何开发应用系统产品向如何提供网络服务迁移,技术角度来看,网络服务是经过包装的应用软件或遗产系统,作为独立的、自包含的、自描述的原始构件体,在网络上可以被理解和交流信息,虽然它不一定具有完整的应用逻辑,但是通过与其他的服务共同协助,可以完成用户所要的全部功能,并通过网络传播给各种各样的数字化设备。一句话,网络服务真正实现了“let the Internet work for you, instead of you working the Internet”。
针对尚属形势和变化,我总结出软件行业里的新技术和新趋势[CD00,Dave00],详见如下:
§ 软件服务技术。服务替代软件,成为生成、部署、扩展和维护的信息实体,软件对用户具有技术透明性,比软件有价值更高的价值和更深的意义;
§ 信息沟通的公共语言。网络服务或构件之间采用统一描述、发现和集成的公共标准通信语言,主要是基于XML语言的UDDI规范和SOAP规范;
§ 分布式基础设施框架。让所有的计算机群、相关设备和服务商协同工作与网络计算环境,互联网以整体服务的形式展现在最终用户面前。
§ 支持基于互联网的软件服务市场的技术。市场中存在服务的提供者(构件)和消费者(应用),竞争机制是市场的运营法则;构件按服务封装,在发现(discovery)服务和宣传(advertise)服务过程中,通过软件复用把构件“替换”成为竞争的成功者;建立代理(
brokering)模式,按条件选择合适的网络服务提供商,获得“最好”的服务(技术关键是评价网络服务的方法和动态替换服务的能力);建立网络服务仲裁(mediated)机制,监督和审计构件之间的联系,确保通信安全性;从软件购买向“用时付费”(pay-per-use)的商业模式转变;
§ 面向复杂的异构环境,渗透到广泛的行业领域。用不同语言编写的服务构件,运行于不同的软硬件平台,在只要带有“芯片”的领域,构建全面的网络服务体系。
总之,以上的这些技术进步,促进了分布式计算从Client/Server阶段和
Browser-based阶段向第三阶段Service-oriented发展,如果认为网络服务是“some interaction offered to a user, across the Internet, that has meaning and economic value.”(一些提供给用户的、跨互联网的交互信息和行为,它具有一定意义和经济价值)[ CD00 ],那么分布式对象计算将是网络服务技术的理论基础,同时软构件作为提供一种或多种网络服务的软件实体,使基于构件的软件开发范型CBD(或基于构件的软件工程CBSE)成为未来软件开发方法学和工程学的核心,新近出现的UDDI、SOAP、WSDL技术充分证明了这一点,因此有理由认为,软件开发理论和技术正在走向“e-development”新时代。
三、基于构件的软件开发:软件开发新范型
“E-development”不能认为只是“Developing in the dot-com”,而是软件复用方法论在互联网环境下的技术实践和工程方法,它应该是这样一条技术路线:以领域知识建模为先导,以分布式计算(或Web服务)为技术基础,建立特定领域的软件体系结构标准,系统地复用商业软件构件,实施迭代增量式开发过程,在自动化的快速开发工具支持下,高效地、高质量地开发和集成基于构件或网络服务的应用软件系统。
E-development软件开发理论和实践面临的主要问题有:
§ 软件构件(或网络服务)的开发技术和工程化方法;
§ 异构环境下企业级应用系统的集成技术和方法,或Web服务的协同技术和方法;
§ 软件的智能计算方法和实现技术;
§ 可操作的、迭代增量式的开发过程控制方法和规范;
§ 适合分布式开发的组织结构和管理模式;
§ 可视化的、强表达力的、有形式理论支持的业务/领域建模方法;
§ 自动化的、智能化的快速软件开发工具和环境;
§ 软件的经济学分析方法,包括产品战略、市场定位和竞争分析;
§ 对市场环境、技术体系和政策框架的评估和预见方法。
本质地分析以上问题,可以说软件复用问题是一切问题的核心,也是是解决软件危机的唯一根本途径,近年来,软件工程学将分布式对象计算技术和软件复用的理论和方法结合在一起,正逐渐发展成为一门独立的软件工程分支学科 — “基于构件的软件工程(Component-Based Software Engineering,简称CBSE)”或称为“基于构件的软件开发方法(Component-Based Development,简称CBD)”,它涉及到领域分析、面向对象的分析和设计、分布式计算技术、软件体系结构和互联网技术等多门学科,被认为是当前最具广阔前景的软件开发技术实践和研究方向。
参考文献
[Jim2000]
Jim Rumbaugh,Trends in UML and e-Development,The Rational Edge, December 2000
[Paul01]
Paul Levy,Software and the New Business Economy,The Rational Edge -- February 2001
[王怀民01]
王怀民,软件业正发生全局性转折,中国计算机报,2001年4月9日
[CD20]
Cecile Peraire and Derek Coleman, Modeling for E-Service Creation, SRI International,2000
[Dave00]
Dave Fisco,IBM's Web Services architecture debuts An architecture overview and interview with Rod Smith. 2000
http://www-106.ibm.com/developerworks/library/w-int.html?dwzone=ws