谈谈软件技术发展和网络技术发展.docx
浅谈软件技术发展和网络技术发展之间的关系软件技术和网络技术的发展状况:Tnternet无疑是20世纪末伟大的技术进展之一,为我们提供了一种全球范围的信息基础设施。这个不断延伸的网络基础设施,形成了一个资源丰富的计算平台,构成了人类社会的信息化、数字化基础,成为我们学习、生活和工作的必备环境。Internet平台具有如下基本特征:无统一控制的“真”分布性;节点的高度自治性;节点链接的开放性和动态性;人、设备和软件的多重异构性;实体行为的不可预测性;运行环境的潜在不安全性;使用方式的个性化和灵活性;网络连接环境的多样性等。因此,Internet平台和环境的出现,对软件形态、技术发展、理论研究提出新的问题,也提供了新的契机。传统软件的开发基于封闭的静态平台,是自顶向下、逐步分解的过程,因此传统软件的开发,基本都是首先确定系统的范围(即SCoPing),然后实施分而治之的策略,整个开发过程处于有序控制之下。而未来软件系统的开发所基于的平台是一个有丰富基础软件资源但同时又是开放、动态和多变的框架,开发活动呈现为通过基础软件资源组合为基本系统,然后经历由“无序”到“有序”的往复循环过程,是动态目标渐趋稳态。未来软件基本模型由于所处平台的特性和开放应用的需求而变得比任何传统的计算模型都更为复杂,软件生命周期由于“无序”到“有序”的循环而呈现出不同于传统生命周期概念的“大生命周期概念”,程序正确性由于目标的多样化而表现为传统正确性描述的一个偏序集,软件体系结构侧重点从基于实体的结构分解转变为基于协同的实体聚合,软件生产过程和环境的变化导致基于Internet的面向用户的虚拟工厂的形成。由于软件系统所基于的计算机硬件平台正经历从集中封闭的计算平台向开放的Internet平台的转变,软件系统作为计算机系统的核心,随着其运行环境的演变也经历了一系列的变革。目前,面向网络的计算环境正由Client/Server发展为Client/Cluster,并正朝着Client/Network和ClientZVirtualEnvironment的方向发展。那么,未来的基于Internet平台的软件系统又将会呈现出一个什么形态呢?从技术的角度来看,以软件构件等技术支持的软件实体将以开放、自主的方式存在于Internet的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其他软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息Web类似的SoftwareWeboSoftwareWeb不再仅仅是信息的提供者,它还是各种服务(功能)的提供者。由于网络环境的开放与动态性,以及用户使用方式的个性化要求,从而决定了这样一种SoftwareWeb,它应能感知外部网络环境的动态变化,并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化,以使系统具有尽可能高的用户信赖度。我们将具有这种新形态的软件称为网构软件(internetware)。网构软件是在Internet开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于在集中封闭环境下发展起来的传统软件形态的独有的基本特征,Internet及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。面对这种新型的软件形态,传统的软件理论、方法、技术和平台面临了一系列挑战。从宏观上看,这种挑战为我们研究软件理论、方法和技术提供了难得的机遇,使我们有可能建立一套适合于Internet开放、动态和多变环境的新型软件理论、方法和技术体系。从微观的角度来看,Internet的发展将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。归结起来,网构软件理论、方法、技术和平台的主要突破点在于实现如下转变:即,从传统软件结构到网构软件结构的转变,从系统目标的确定性到多重不确定性的转变,从实体单元的被动性到主动自主性的转变,从协同方式的单一性到灵活多变性的转变,从系统演化的静态性到系统演化的动态性的转变,从基于实体的结构分解到基于协同的实体聚合的转变,从经验驱动的软件手工开发模式到知识驱动的软件自动生成模式的转变。建立这样一种新型的理论、方法、技术和平台体系具有两个方面的重要性,一方面,从计算机软件技术发展的角度,这种新型的理论、方法和技术将成为面向Internet计算环境的一套先进的软件工程方法学体系,为21世纪计算机软件的发展构造理论基础;另一方面,这种基于Internet计算环境上软件的核心理论、方法和技术,必将为我国在未来510年建立面向Internet的软件产业打下坚实的基础,为我国软件产业的跨越式发展提供核心技术的支持。当前的软件技术发展遵循软硬结合、应用与系统结合的发展规律。“软”是指软件,“硬”是指微电子,要发展面向应用,实现一体化;面向个人,体现个性化的系统和产品。软件技术的总体发展趋势可归结为:软件平台网络化、方法对象化、系统构件化、产品家族化、开发工程化、过程规范化、生产规模化、竞争国际化。软件技术发展网络技术发展之间的关系:在“融合”技术架构下,特别是网格应用技术条件下,软件技术向强调开发效率、缩短开发周期、具备工业化开发标准的方向发展。面向对象(OoP)的技术走向完全成熟,同时基于组件对象技术的构件软件开发技术成为软件开发技术的主流。软件开发技术的演化体现的主题是:软件复用是解决软件危机的现实途径;软件构件技术是实现软件复用的核心技术。新的软件技术体系的特点是:以软件构件技术为基础,结合信息安全技术、网络服务技术、人机交互技术使之成为各类应用软件的支撑技术。网络构件技术对软件开发思想提出了新的挑战:传统软件形态基于实体驱动,而新的网络环境下的软件形态基于协同驱动。新网络环境下软件技术的总体发展趋势是:平台网络化、方法对象化、系统构件化、产品家族化、开发工程化、过程规范化、生产规模化、竞争国际化。方法对象化、系统构件化是网络构件技术的核心所在,构件间的协同体现了各构件接口的相互集成关系。当前的主流软件技术中,网络构件开发技术将由分布对象技术进行支撑。分布对象技术是分布式计算技术与面向对象技术的结合,为构件的实现和构件的组装提供了基础设施层的支持,且能够解决对象之间的互操作问题。网络技术与软件技术的相互促进:随着网络应用的逐步增多,为了解决平台异构性和互操作问题,中间件作为一种新的软件类型或层次)开始出现。从中间件提出的初始动因来看,是指网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互联与互操作问题,它可屏蔽实现细节,提高应用系统的易移植性。随着Internet的快速发展,中间件的定义正在走出其狭义空间,逐步形成更为广义的内涵。其发展主要呈现出两方面的技术趋势:一方面,支撑软件越来越多地向运行层渗透,提供更强的对系统实现的支持;另一方面,中间件也开始考虑对高层设计和运行部署等开发工作的支持。而这两个技术趋势从木质上正是源于软件体系结构和软件构件等技术的发展和应用。从广义的角度看,中间件代表了处于系统软件和应用软件之间的中间层次的软件,其主要目的是对应用软件的开发和运行提供更为直接和高效的支撑。中间件技术己成为软件技术的研究热点。