走在架構師的大道上 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 閱讀(2555) 評論(0)  編輯  收藏 所屬分類: 架構師篇
          主站蜘蛛池模板: 东至县| 宜川县| 会泽县| 白沙| 玉林市| 淮滨县| 张家界市| 柏乡县| 白山市| 丰宁| 天峻县| 阳信县| 建瓯市| 芒康县| 郁南县| 额尔古纳市| 绿春县| 新和县| 修水县| 英超| 肥乡县| 香格里拉县| 呼图壁县| 绥阳县| 彰化市| 丹东市| 东丽区| 睢宁县| 宁陕县| 江川县| 麟游县| 佛山市| 星子县| 乌兰县| 太康县| 普兰县| 三台县| 武安市| 定陶县| 皋兰县| 德惠市|