走在架构师的大道上 Jack.Wang's home

Java, C++, linux c, C#.net 技术,软件架构,领域建模,IT 项目管理 Dict.CN 在线词典, 英语学习, 在线翻译

BlogJava 首页 新随笔 联系 聚合 管理
  195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks
网构软件,973项目提的一个概念。概念。
作为一种新型软件形态,它应该涵盖哪些研究范畴?评价它成功的基本标准是什么?
我们看待一件事物,首先都会从已知的认知空间里寻找与之对应者。那么,能与网构相对应的大概就是面向对象。
面向对象是一种paradigm。作为一种paradigm,应该有什么?
归根结底,paradigm需要将问题空间映射到计算机解空间。
对于面向对象来说,首先,面向对象分析、设计和开发方法用以分析需求,设计软件结构,以及建立软件。其次,面向对象编程语言服务于在计算机空间建立解。语言,需要一个编译器,以及相应的运行平台。
若然如此对比,那么,对于网构来说,重点是要建立一套开发方法以及一个编程语言?
即使如此对比,网构相对于对象的突破点在哪里,就如同面向对象相对面向过程的突破点?
若只是如此对比,世界上从无到有的理念又是如何来的?
并且,计算机需要完全创新的理念吗?
当然,创新理念随时都需要的,比如突破Turing machine的限制。
这问题应该是:在turing machine模型下,计算机领域存在科学问题么?

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开放、动态和多变环境下调整自己的目标和行为,以适应网络环境的变化和用户的个性化要求。

【出处不明】





本博客为学习交流用,凡未注明引用的均为本人作品,转载请注明出处,如有版权问题请及时通知。由于博客时间仓促,错误之处敬请谅解,有任何意见可给我留言,愿共同学习进步。
posted on 2008-10-26 00:00 Jack.Wang 阅读(2540) 评论(0)  编辑  收藏 所属分类: 架构师篇

只有注册用户登录后才能发表评论。


网站导航: