程序实体间传统的协同方式是过程调用和对象允引(Reference)。一般说来,由于其时间和空间耦合的特征,过程调用和对象允引通常只适合于程序实体功能固定、位置固定、以及协同逻辑固定的静态和封闭世界,难以满足开放、动态和多变的Internet环境对时间或空间的紧耦合或松散耦合等多种协同方式的需要。
面向网构软件的挑战
可以说,传统的软件理论、方法和技术等在处理网构软件时遇到了一系列的挑战。
软件基本模型的变化
软件基本模型的发展,表现为一个逐步追求更具表达能力、更符合人类思维模式、更具可构造性和演化性的软件结构的过程。目前,软件模型已经发生了重要变化,面向对象、面向构件的软件模型已逐步成为主流。对基于Internet环境的网构软件系统而言,其基本的计算单元应该是分布、自治、异构的“构件”,而它们之间的“交互”则可能是从简单的消息传递到复杂的通信协议和协同模式。这种模型将由于所处平台的特性和开放应用的需求而变得比任何传统的计算模型都更为复杂,开放、动态和演化等是其基本属性。
软件开发技术的变化
软件开发技术的变化:由于所基于的平台是封闭静态框架,传统软件系统的开发基本都是采用自顶向下的途径,确定系统的范围(即Scoping)总是建立需求的第一步,然后通过分解而实施分而治之的策略,整个开发过程处于有序控制之下。而网构软件系统的开发所基于的平台是一个有丰富基础软件资源但同时又是开放、动态和多变的框架,开发活动呈现为通过基础软件资源组合为基本系统,然后经历由“无序”到“有序”的往复循环过程,基本上是一种自底向上、由内向外的螺旋方式。另一方面,在静态和封闭的环境下,传统软件开发方法和技术并没有将对软件的可信性(安全性和可靠性)考虑融合在其中,从而致使在Internet环境下开发软件系统时,缺乏可以保证系统可信性的有效手段。
软件生命周期概念的变化
在传统的软件工程体系中,软件生命周期概念所强调的是从问题提出到软件提交的整个开发过程的重要性,而对于提交使用之后的软件变化过程往往只采用“软件维护”加以简单概括。这样一种软件生命周期概念对于处于静态封闭环境下的软件系统的开发是合适的,但对处于Internet开放、动态和多变环境下网构软件系统的开发则有局限性。对网构软件系统来说,系统提交之后的动态的自适应性和演化性是其基本特征。因此,对运行阶段之后的演化过程的关注是必需的,甚至显得更为重要。因此,结合“无序”到“有序”的循环,网构软件系统所呈现的是一个不同于传统生命周期概念的“大生命周期概念”。目前,围绕这种新的大生命周期概念的相关理论、方法和技术基本上还是空白。
程序正确性概念上的变化
对传统软件系统,正确性的概念和相应的质量标准是确定的,正确性的验证与质量测试和评价均依此而定。然而,在Internet环境下,一个软件系统所能达到的目标不仅取决于系统的输入,而且还取决于开放和动态变化的外部环境。因此,一个软件系统所能达到的目标难以用传统的正确性概念加以概括。也就是说,网构软件系统是一个具有多个相容目标的系统,其正确性可能表现为传统正确性描述的一个偏序集。同时,多目标的正确性概念也是网构软件演化的基本依据。正确性概念的变化,可能会导致传统软件工程体系中与正确性相关的软件规约、程序语义和程序验证等理论体系的变化。更进一步,多目标正确性概念还可能导致软件测试和评价技术的根本改变。
软件体系结构侧重点的变化
传统软件系统的体系结构更多地关注于软件实体,是以实体为中心的结构模式。虽然最近关于软件体系结构的研究已开始关注软件实体间的连接,但就体系结构的整体拓扑建模来说,仍是实体驱动的。这样的模式适合于封闭和静态环境的需求。在Internet开放、动态和多变的环境下,由于存在众多的基础软件资源,体系结构研究的出发点将从软件实体转向实体间的动态协同。因此,从基于实体的结构分解到基于协同的实体聚合将会是软件体系结构研究的重大转变。
软件生产过程和环境的变化
在Internet开放的环境下,网络上必然存在大量可供用户直接使用的软件资源。在某种意义下,软件开发过程就是将这些资源加以适当协同并进行逐步演化的过程。由于软件协同模式与功能体的分离,程序设计的本质就成为进行协同的过程,这就形成基于Internet的面向用户的虚拟工厂的概念。在这样一个工厂中,不仅软件生成过程的控制和质量保证等会发生较大变化,而且开发环境和运行环境会融为一体。
综上所述,Internet及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。
网构软件的研究
面对这种新型的软件形态,传统的软件理论、方法、技术和平台面临了一系列挑战。从宏观上看,这种挑战为我们研究软件理论、方法和技术提供了难得的机遇,使我们有可能建立一套适合于Internet开放、动态和多变环境的新型软件理论、方法和技术体系。从微观的角度,Internet的发展将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。
归结起来,网构软件理论、方法、技术和平台的主要突破点在于实现如下转变,即,从传统软件结构到网构软件结构的转变,从系统目标的确定性到多重不确定性的转变,从实体单元的被动性到主动自主性的转变,从协同方式的单一性到灵活多面性的转变,从系统演化的静态性到系统演化的动态性的转变,从基于实体的结构分解到基于协同的实体聚合的转变,从经验驱动的软件手工开发模式到知识驱动的软件自动生成模式的转变。
建立这样一种新型的理论、方法、技术和平台体系具有两个方面的重要性。一方面,从计算机软件技术发展的角度,这种新型的理论、方法和技术将成为面向Internet计算环境的一套先进的软件工程方法学体系,为二十一世纪计算机软件的发展构造理论基础。另一方面,这种基于Internet计算环境上软件的核心理论、方法和技术,必将为我国在未来5-10年建立面向Internet的软件产业打下坚实的基础,在基于Internet新型中间件平台等方面形成具有特色的技术标准和技术专利,为我国软件产业的跨越式发展提供核心技术的支持。
网构软件的主要研究内容包括:基于Internet的开放软件模型及其性质、网构软件模型的形式化体系、基于Agent的网构软件模型与方法、面向构件的网构软件开发方法学、网构软件中间件平台基准模型、网构软件可信性理论及其度量评估体系,以及网构软件平台技术规范标准体系。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。