網構軟件-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.pswp.cn/news/285082.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285082.shtml
英文地址,請注明出處:http://en.pswp.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;】看…