複製鏈接
請複製以下鏈接發送給好友

網構軟件

鎖定
網構軟件從軟件形態的角度考察開放、動態、多變的Internet環境對軟件理論、方法和技術,是傳統軟件結構的自然延伸, 網構軟件具有自主性、演化性、協同性、多態性和反應性等特徵。從網構軟件的角度來看傳統的軟件工程方法學體系其本質上是一種靜態和封閉的框架體系, 難以支持由開放、動態、多變的Internet環境衍生的網構軟件的開發。
中文名
網構軟件
外文名
InternetWare
特    徵
自主性、演化性、協同性、多態性和反應性等

網構軟件軟件簡介

從技術的角度看, 網構軟件在Internet上展現為一種與當前的信息Web類似的Software Web. 以軟件構件等技術支持的軟件實體將以開放、自主的方式存在於Internet的各個節點之上, 任何一個軟件實體可在開放的環境下通過某種方式加以發佈, 並以各種協同方式與其他軟件實體進行跨網絡的互連、互通、協作和聯盟.
由於Internet的開放、動態和多變, 以及用户使用方式的個性化要求, 決定了網構軟件的開發不同於傳統軟件開發的“一次成型”式, 具體表現為, 網構軟件在發佈之後, 能夠感知外部網絡環境的動態變化, 並隨着這種變化按照功能指標、性能指標和可信性指標等進行靜態的調整和動態的演化, 以使系統具有儘可能高的用户滿意度, 而且, 由於用户需求的多樣化和個性化以及投資回收等因素,一個軟件系統往往存在時間較長, 因此, 網構軟件的演化過程也在長時間內持續不斷. 因此開發具有上述技術特點的網構軟件面臨着開發過程、開發方法以及支持技術3 個方面的挑戰.
在軟件開發過程方面, 傳統軟件系統的開發因所基於的平台相對封閉、靜態、穩定, 採用自頂向下的途徑, 確定系統的範圍(即scoping)總是建立需求的第一步, 然後通過分解而實施分而治之的策略, 整個開發過程處於有序控制之下.
而網構軟件系統的開發所基於的平台是一個有豐富基礎軟件資源但同時又是開放、動態和多變的框架, 開發活動呈現為通過將原本“無序”的基礎軟件資源組合為“有序”的基本系統, 隨着時間推移, 這些系統和資源在功能、質量、數量上的變化導致它們再次呈現出“無序”的狀態, 這種由“無序”到“有序”的過程往復循環, 基本上是一種自底向上、由內向外的螺旋方式.

網構軟件週期侷限性

此外, 在傳統的軟件工程體系中, 軟件生命週期概念所強調的是從問題提出到軟件交付的整個開發過程的重要性, 而對於交付之後的軟件變化過程往往只採用“軟件維護”加以簡單概括.這樣一種軟件生命週期概念對處於靜態封閉環境下的軟件系統的開發是合適的,但對處於Internet 開放、動態和多變環境下網構軟件系統的開發則有明顯的侷限性.
首先, 新的軟件實體往往通過已有的軟件實體組裝而成, 由於這些實體彼此獨立、自主運行, 不受任何機構或組織的統一控制, 因此, 在系統交付運行之前,很難由這些被組裝的軟件實體準確無誤地推演出目標系統的功能和質量.
其次,環境的開放、動態和多變決定了軟件實體及其之間的協同均面臨着諸多變化, 不論這些變化能否在運行前準確預知, 運行系統都必須進行持續的適應性調整.
再者, 網構軟件既服務於處在不同時區的用户也服務於隨時到達的其他網構軟件的請求, 而且, 一個網構軟件系統本身往往由散佈在Internet 上的其他軟件組成,因此, 一個網構軟件系統一旦交付使用, 往往就不能完全停機. 這意味着改錯、優化、增加新功能等活動均需在線執行, 這些活動也需要經歷分析、設計、實現、測試、部署, 而傳統軟件生存週期中的維護期難以準確刻畫這些活動.
要實現對網構開發的有效支持,必須對網構軟件的以下特徵進行深入認識:
首先,網構軟件自主性是指軟件實體具有相對獨立性、主動性和自適應性. 從技術角度看, 網構軟件實體一般都是獨立開發和管理的, 它們可能在不同的網絡節點上獨立運行. 它們的目標和所提供的服務由其所有者來決定, 其行為受自身的目標驅動, 而並非單純地被動用於組裝或部署. 它們在運行過程中可能實時收集環境的各種變化信息, 並根據預先設定好的策略, 在必要時自動調整自身的行為以適應環境的變化;
其次, 協同性是指網構軟件系統中軟件實體與軟件實體之間可按多種靜態連接和動態合作方式在開放的網絡環境下加以互連、互通、協作和聯盟. 從技術角度看, 傳統軟件系統在封閉集中環境下往往採用單一靜態的連接模式, 而網構軟件則支持連接模式的適應性調整, 如, 不同互操作協議的切換, 連接安全級別的升降, 同步異步的轉變, 消息傳遞可靠性的調整等;
第3, 反應性是指網構軟件具有感知外部運行和使用環境並對系統演化提供有用信息的能力. 從技術角度看, 網構軟件的外部環境由其他網構軟件以及底層支撐平台組成, 因此, 反應性既要求網構軟件能夠以某種方式暴露自身的狀態和行為信息, 也要求網構軟件支撐平台能夠開放底層實現細節及運行狀態;
第4, 演化性是指網構軟件結構可根據應用需求和網絡環境變化而發生動態演化, 主要表現在其實體元素數目的可變性,結構關係的可調節性和結構形態的動態可配置性. 從技術角度看, 演化性要求軟件體系結構具備動態調整能力;
最後, 多態性是指網構軟件系統的效果體現出相容的多目標性, 它可根據某些基本協同原則, 在動態變化的網絡環境下, 滿足多種相容的目標形態. 從技術角度看, 多態性既要求系統開發過程中需要支持多目標建模, 又要求系統運行時能夠基於環境變化進行動態目標的適應性選擇.
基於上述分析, 網構軟件諸多特性在技術上的主要共性可歸結為自適應性, 具體表現為軟件實體的自適應性和件結構的自適應性, 即, 網構軟件在運行過程中能夠在合適的時刻、合適的場合、準確捕捉變化並進行合理的適應性調整, 以滿足功能和質量的需求.

網構軟件關鍵挑戰

網構軟件簡介

人在網構軟件適應過程中的參與程度決定了網構軟件自適應能力的高低. 因此, 如何開發出具有這種自適應能力的軟件系統, 並儘可能減少運行過程中人的參與, 是網構軟件開發方法的關鍵挑戰.
在軟件運行支撐技術方面, 傳統的軟件開發工具往往針對軟件交付前的分析、設計、實現、測試中的一個或幾個階段, 而軟件交付後則部署在運行平台上,並利用各種管理工具進行維護.

網構軟件軟件分析

而基於上述分析, 網構軟件的開發已經不僅僅侷限於軟件交付之前, 軟件開發的重心從交付前逐漸轉移到運行過程中, 而網構軟件自動或手動的調整往往依賴於軟件生存週期各個階段的活動與製品. 因此, 網構軟件開發工具不僅要覆蓋整個軟件生存週期, 還有必要與運行平台融合, 從而支持軟件運行中持續不斷的開發活動.
另一方面, 網構軟件的諸多特性對運行平台提出了極大的挑戰, 首先, 運行平台不僅要具備實時顯示自身運行狀態和行為的能力, 還應協助實現上層軟件實體內部狀態和行為的實時展現, 其次, 運行平台必須支持網構軟件實體與結構的動態調整, 否則, 自適應很難甚至在某些情況下無法實現.

網構軟件總結

綜上所述, 網構軟件的開發在過程方面, 需要遵循自底向上、從“無序”到“有序”的新型構造途徑, 開發重心由系統交付前向系統運行時轉移; 在開發方法方面, 需要重點考慮軟件實體和結構的自適應性; 在支持技術方面, 需要整合開發工具和運行平台以支持跨整個軟件生存週期的開發, 而運行平台應提供軟件實體和結構自適應所需的基本機制.

網構軟件基本特徵

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開放、動態和多變環境下調整自己的目標和行為,以適應網絡環境的變化和用户的個性化要求。
協同方式的單一性