网构软件-Internetware

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

本文转自BlogJava 新浪blog的博客,原文链接:网构软件-Internetware,如需转载请自行联系原博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285082.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

List集合的remove一个对象的方法

import java.util.ArrayList;import java.util.List;class A{   public boolean equals(Object obj){     return true;   }} public class ListTest2 { public static void main(String[] args) {   // TODO Auto-generated method stub     System.out.println…

【ArcGIS微课1000例】0009:ArcGIS影像拼接(镶嵌、镶嵌至新栅格)

本课程以 DEM数据为例,讲述ArcGIS中影像的拼接方法及注意事项。 文章目录 方法一:Mosaic工具方法二:Mosaic To New Raster工具实验数据下载观察两个数据,接边处切合效果很好。 方法一:Mosaic工具 使用Mosaic工具要千万注意,Mosaic的结果是将输入栅格追加到目标栅格上,…

Python:file (read,readline,readline )使用方法

Python读取文件时,在使用readlin、readlines时会有疑惑,下面给大家详解:一、例:a.txt的内容为 aaa 123 bbb 456二、首先我先设置个变量: a"a.txt" cfile(a)三、此时我们分别看下使用read、readl…

C语言试题170之矩阵转置

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:设有一矩…

【ArcGIS微课1000例】0010:ArcGIS影像裁剪(裁剪、掩膜提取)

文章目录 裁剪方法方法一:Extract By Mask(按掩膜提取)方法二:Clip(裁剪)数据下载裁剪方法 方法一:Extract By Mask(按掩膜提取) 加载配套的实验数据,运行Extract By Mask(按掩膜提取)工具,参数设置如下: 掩膜提取结果: 方法二:Clip(裁剪) 加载配套的实验…

阿里创新自动化测试工具平台--Doom

背景 信息系统上线后通常会需要迭代升级甚至重构,如何确保系统原有业务的正确性非常重要。曾经有一家叫瑞穗证券的证券公司因为一个系统bug导致了数亿美金的损失,赔掉了公司一年的利润。这样的极端例子虽然少见,但是却像达摩克利斯之剑警示着…

《微信读书》自定义样式

一直用微信读书看书,但是微信读书的Web版的布局不太喜欢。 重写下它的样式再加上单击关闭工具栏,这样看着舒服多了^_^: /*浮动工具栏*/ document.getElementsByClassName("readerControls")[0].style.left"0"; document.…

内核态和用户态的区别

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内…

C# NanoFramework WIFI扫描、连接和HttpWebRequest 之 ESP32

可喜可贺新板子终于到了,啥也不说,赶紧搞起来。ESP32的主要功能就是WIFI,有了WIFI ,就可以直接连接家里的WIFI路由器啥的,直接连接到外网了,这个时候,它就相当于是一个小型的电脑或手机&#xf…

【ArcGIS微课1000例】0011:ArcGIS空间查询(按位置选择Select by Location)完全案例详解

利用按位置选择工具,您可以根据要素相对于另一图层要素的位置来进行选择。例如,如果您想了解最近的洪水影响了多少家庭,那么可以选择该洪水边界内的所有家庭。 您可使用多种选择方法,选择与同一图层或其他图层中的要素接近或重叠的点、线或面要素。 文章目录 1、点—点查询…

C语言试题171之实现希尔排序算法

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目: 实现希…

[转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation

原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果。 1.交互篇 2.视觉篇 交互篇 1.SlidingUpPanelLayout 项目介绍:他的库提供了一种简单的方式来添加一个可拖动滑动面板…

EntityFramework用法探索(三)CodeFirst流畅API

Code First Fluent API,使用流畅API来定义模型映射。 同样使用与上文 Database First 模式相同的例子,假设需要设计一个零售系统,我们先构建一个 Customer 类。 1 public class Customer 2 { 3 public long Id { get; set; } 4 p…

[转]JS导出PDF

通过纯js将网页保存为pdf&#xff0c;A4分页&#xff0c;无需服务端参与 1.引入js库文件&#xff1a; <script src"../static/jspdf/html2canvas.js"></script><script src"../static/jspdf/jsPdf.debug.js"></script> 2.思路&a…

js浏览器对象模型(BOM)

浏览器对象模型(Browser Object Model,BOM)&#xff1a;浏览器为js提供的对象集合。 1 windows对象 windows对象&#xff1a;表示浏览器的框架以及与其相关的内容&#xff0c;比如滚动条和导航栏图标等等。或者说windows对象就代表浏览器本身。windows对象是个全局对象&#xf…

Hello Playwright:(8)等待页面加载

在我们前面的文章中&#xff0c;我们始终使用await page.GotoAsync(url);加载页面&#xff0c;我们的目的是等待足够长的时间让页面上的元素出现。但是&#xff0c;我们更希望永远不要因为等待浪费任何时间。WaitUntilGotoAsync方法的定义如下&#xff1a;Task<IResponse?&…

【ArcGIS微课1000例】0012:ArcGIS创建及连接ArcSDE企业级地理数据库实例

文章目录 实验材料实验过程创建企业级数据库连接企业级数据库创建要素类要素入库实验材料 ArcGIS:版本为10.2Server.ecp:版本为10.2SQL Server:版本为2008实验过程 创建企业级数据库 企业级地理数据库的创建需要通过工具箱来实现。 数据库平台:SQL Server 实例:localhos…

C语言试题172之实现冒泡排序算法

📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款刷算法、笔试、面经、拿大公司offer神器👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 题目:实现冒泡…

Qt移动应用开发(八):实现跨平台的QML和OpenGL混合渲染

Qt移动应用开发&#xff08;八&#xff09;&#xff1a;实现跨平台的QML和OpenGL混合渲染 上一篇文章讲到了利用C这个桥梁&#xff0c;我们实现了QML和Java的交互。Qt 5大力推崇的QML/JS开发&#xff0c;让轻量、高速开发的QML/JS打头阵&#xff0c;让重量的C撑腰&#xff0c;差…

【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放

导航【初探HTML5之使用新标签布局】用html5布局我的博客页&#xff01;【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放【HTML5初探之绘制图像&#xff08;上&#xff09;】看我canvas元素引领下一代web页面【HTML5初探之绘制图像&#xff08;下&#xff09;】看…