网构软件:未来的新型软件形态(转载)

 

    Internet作为不同于传统计算机的硬件平台,具有如下基本特征:

    无统一控制的“真”分布性

    节点的高度自治性

    节点链接的开放性和动态性

    人、设备和软件的多重异构性

    实体行为的不可预测性

    运行环境的潜在不安全性

    使用方式的个性化和灵活性

    网络连接环境的多样性

    由于软件系统所基于的计算机硬件平台正经历从集中封闭的计算平台向开放的Internet平台的转变,软件系统作为计算机系统的灵魂,随着其运行环境的演变也经历了一系列的变革。目前,面向网络的计算环境正由Client/Server发展为Client/Cluster,并正朝着Client/Network和Client/Virtual Environment的方向发展。那么,未来的基于Internet平台的软件系统又将会呈现出一个什么形态呢?

    从技术的角度看,以软件构件等技术支持的软件实体将以开放、自主的方式存在于Internet的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其它软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息Web类似的Software Web。Software Web不再仅仅是信息的提供者,而是各种服务(功能)的提供者。由于网络环境的开放与动态性,以及用户使用方式的个性化要求,从而决定了这样一种Software Web并不能够像传统软件那样一蹴而就,它应能感知外部网络环境的动态变化,并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化,以使系统具有尽可能高的用户满意度。我们将这样一种新的软件形态称为网构软件(Internetware)。

    网构软件区别于传统软件形态的独有特征

    网构软件是在Internet开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于在集中封闭环境下发展起来的传统软件形态的独有的基本特征:

    自主性

    指网构软件系统中的软件实体具有相对独立性、主动性和自适应性。自主性使其区别于传统软件系统中软件实体的依赖性和被动性。

    协同性

    指网构软件系统中软件实体与软件实体之间可按多种静态连接和动态合作方式在开放的网络环境下加以互连、互通、协作和联盟。协同性使其区别于传统软件系统在封闭集中环境下单一静态的连接模式。

    反应性

    指网构软件具有感知外部运行和使用环境并对系统演化提供有用信息的能力;反应性使网构软件系统具备了适应Internet开放、动态和多变环境的感知能力。

    演化性

    指网构软件结构可根据应用需求和网络环境变化而发生动态演化,主要表现在其实体元素数目的可变性,结构关系的可调节性和结构形态的动态可配置性;演化性使网构软件系统具备了适应Internet开放、动态和多变环境的应变能力。

    多态性

    指网构软件系统的效果体现出相容的多目标性。它可根据某些基本协同原则,在动态变化的网络环境下,满足多种相容的目标形态。多态性使网构软件系统在网络环境下具备了一定的柔性和满足个性化需求的能力。

    可以说,网构软件的概念是普适而广泛的。实际上,从单机结构上的软件系统、到主/从结构的软件系统、到客户机/服务器模式的软件系统、一直到现有的浏览/服务器结构的软件系统,从本质上来说,都是网构软件系统的一种特例(具有网构软件的某些特性)。例如,当今有代表性的Browser/Server结构在Server端具有相对独立性,而众多Browser与Server端的连接则具有开放环境下跨网络的初级协同性;而Browser搜索引擎搜索结果的多重性则体现了其随网络环境变化而产生的多态性;JINI技术中所倡导的软件实体的动态联盟和Applets技术等则在某种意义下体现了演化性的需求;而Active Software 和 Autonomous Software 则反映了在网络环境下对软件实体自主性的需求。因此,有理由相信,网构软件概念基本概括了在Internet开放、动态和多变环境下软件技术的发展趋势,它将在未来5-10年成为软件的一种主流形态。

    传统软件形态的局限性

    从网构软件的角度来考察当今主流软件技术,可以发现现有软件技术体系由于其本质上是一种静态和封闭的框架体系,难以适应Internet开放、动态和多变的特点。从技术框架看,软件方法学的核心是程序设计方法学,而程序设计方法学考虑的重点是软件结构。软件结构主要包括程序实体和协同方式两部分。目前在软件领域占主导地位的软件方法是面向对象方法。从网构软件的角度来看面向对象软件结构,可以发现以下三方面的问题:

    系统目标和结构确定性的限制

    一般说来,在构建系统的过程中,系统的基本功能和基本结构是按照系统所要解决的问题和问题领域的特性通过系统分析与设计逐步确定的,未能兼顾Internet开放、多变和动态的特性。因此,它难以适应网构软件系统的动态协同、逐步适应和不断演化的需求。

    实体单元自主性的欠缺

    面向对象方法中的对象概念通常是静止和被动的,它难以在Internet开放、动态和多变环境下调整自己的目标和行为,以适应网络环境的变化和用户的个性化要求。

    协同方式的单一性

    程序实体间传统的协同方式是过程调用和对象允引(Reference)。一般说来,由于其时间和空间耦合的特征,过程调用和对象允引通常只适合于程序实体功能固定、位置固定、以及协同逻辑固定的静态和封闭世界,难以满足开放、动态和多变的Internet环境对时间或空间的紧耦合或松散耦合等多种协同方式的需要。

    面向网构软件的挑战

    可以说,传统的软件理论、方法和技术等在处理网构软件时遇到了一系列的挑战。

    软件基本模型的变化

    软件基本模型的发展,表现为一个逐步追求更具表达能力、更符合人类思维模式、更具可构造性和演化性的软件结构的过程。目前,软件模型已经发生了重要变化,面向对象、面向构件的软件模型已逐步成为主流。对基于Internet环境的网构软件系统而言,其基本的计算单元应该是分布、自治、异构的“构件”,而它们之间的“交互”则可能是从简单的消息传递到复杂的通信协议和协同模式。这种模型将由于所处平台的特性和开放应用的需求而变得比任何传统的计算模型都更为复杂,开放、动态和演化等是其基本属性。

    软件开发技术的变化

    软件开发技术的变化:由于所基于的平台是封闭静态框架,传统软件系统的开发基本都是采用自顶向下的途径,确定系统的范围(即Scoping)总是建立需求的第一步,然后通过分解而实施分而治之的策略,整个开发过程处于有序控制之下。而网构软件系统的开发所基于的平台是一个有丰富基础软件资源但同时又是开放、动态和多变的框架,开发活动呈现为通过基础软件资源组合为基本系统,然后经历由“无序”到“有序”的往复循环过程,基本上是一种自底向上、由内向外的螺旋方式。另一方面,在静态和封闭的环境下,传统软件开发方法和技术并没有将对软件的可信性(安全性和可靠性)考虑融合在其中,从而致使在Internet环境下开发软件系统时,缺乏可以保证系统可信性的有效手段。

    软件生命周期概念的变化

    在传统的软件工程体系中,软件生命周期概念所强调的是从问题提出到软件提交的整个开发过程的重要性,而对于提交使用之后的软件变化过程往往只采用“软件维护”加以简单概括。这样一种软件生命周期概念对于处于静态封闭环境下的软件系统的开发是合适的,但对处于Internet开放、动态和多变环境下网构软件系统的开发则有局限性。对网构软件系统来说,系统提交之后的动态的自适应性和演化性是其基本特征。因此,对运行阶段之后的演化过程的关注是必需的,甚至显得更为重要。因此,结合“无序”到“有序”的循环,网构软件系统所呈现的是一个不同于传统生命周期概念的“大生命周期概念”。目前,围绕这种新的大生命周期概念的相关理论、方法和技术基本上还是空白。

    程序正确性概念上的变化

    对传统软件系统,正确性的概念和相应的质量标准是确定的,正确性的验证与质量测试和评价均依此而定。然而,在Internet环境下,一个软件系统所能达到的目标不仅取决于系统的输入,而且还取决于开放和动态变化的外部环境。因此,一个软件系统所能达到的目标难以用传统的正确性概念加以概括。也就是说,网构软件系统是一个具有多个相容目标的系统,其正确性可能表现为传统正确性描述的一个偏序集。同时,多目标的正确性概念也是网构软件演化的基本依据。正确性概念的变化,可能会导致传统软件工程体系中与正确性相关的软件规约、程序语义和程序验证等理论体系的变化。更进一步,多目标正确性概念还可能导致软件测试和评价技术的根本改变。

    软件体系结构侧重点的变化

    传统软件系统的体系结构更多地关注于软件实体,是以实体为中心的结构模式。虽然最近关于软件体系结构的研究已开始关注软件实体间的连接,但就体系结构的整体拓扑建模来说,仍是实体驱动的。这样的模式适合于封闭和静态环境的需求。在Internet开放、动态和多变的环境下,由于存在众多的基础软件资源,体系结构研究的出发点将从软件实体转向实体间的动态协同。因此,从基于实体的结构分解到基于协同的实体聚合将会是软件体系结构研究的重大转变。

    软件生产过程和环境的变化

    在Internet开放的环境下,网络上必然存在大量可供用户直接使用的软件资源。在某种意义下,软件开发过程就是将这些资源加以适当协同并进行逐步演化的过程。由于软件协同模式与功能体的分离,程序设计的本质就成为进行协同的过程,这就形成基于Internet的面向用户的虚拟工厂的概念。在这样一个工厂中,不仅软件生成过程的控制和质量保证等会发生较大变化,而且开发环境和运行环境会融为一体。

    综上所述,Internet及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。

    网构软件的研究

    面对这种新型的软件形态,传统的软件理论、方法、技术和平台面临了一系列挑战。从宏观上看,这种挑战为我们研究软件理论、方法和技术提供了难得的机遇,使我们有可能建立一套适合于Internet开放、动态和多变环境的新型软件理论、方法和技术体系。从微观的角度,Internet的发展将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。

    归结起来,网构软件理论、方法、技术和平台的主要突破点在于实现如下转变,即,从传统软件结构到网构软件结构的转变,从系统目标的确定性到多重不确定性的转变,从实体单元的被动性到主动自主性的转变,从协同方式的单一性到灵活多面性的转变,从系统演化的静态性到系统演化的动态性的转变,从基于实体的结构分解到基于协同的实体聚合的转变,从经验驱动的软件手工开发模式到知识驱动的软件自动生成模式的转变。

    建立这样一种新型的理论、方法、技术和平台体系具有两个方面的重要性。一方面,从计算机软件技术发展的角度,这种新型的理论、方法和技术将成为面向Internet计算环境的一套先进的软件工程方法学体系,为二十一世纪计算机软件的发展构造理论基础。另一方面,这种基于Internet计算环境上软件的核心理论、方法和技术,必将为我国在未来5-10年建立面向Internet的软件产业打下坚实的基础,在基于Internet新型中间件平台等方面形成具有特色的技术标准和技术专利,为我国软件产业的跨越式发展提供核心技术的支持。

    网构软件的主要研究内容包括:基于Internet的开放软件模型及其性质、网构软件模型的形式化体系、基于Agent的网构软件模型与方法、面向构件的网构软件开发方法学、网构软件中间件平台基准模型、网构软件可信性理论及其度量评估体系,以及网构软件平台技术规范标准体系。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值