999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

動態軟件體系結構研究綜述

2009-01-01 00:00:00
計算機應用研究 2009年6期

摘 要:近年來,隨著Internet的迅猛發展和應用形式的不斷更新,傳統的軟件體系結構(SA)已無法完全適應需求,動態軟件體系結構(dynamic software architecture,DSA)逐漸成為SA研究人員關注的焦點之一。描述了DSA的研究背景及研究意義;總結了DSA的研究內容及國內外的研究現狀;最后探討了DSA研究的主要發展方向。

關鍵詞:軟件體系結構; 動態軟件體系結構; 動態演化; 描述語言; 執行工具

中圖分類號:TP311文獻標志碼:A

文章編號:1001-3695(2009)06-2352-04

doi:10.3969/j.issn.1001-3695.2009.06.106

Overview on research of dynamic software architecture

LI Qiong, JIANG Ying

(School of Information Engineering Automation, Kunming University of Science Technology, Kunming650051, China)

Abstract:

In recent years, with the rapid growth of Internet and the continuous improvement of the application styles, traditional SA could not fully meet the requirements. Dynamic software architecture (DSA) gradually became the focus of attention of SA researchers. At first, described the background and meaning of the DSA, summarized the main research areas of the DSA and its present research situation both at home and abroad. Finally discussed some significantly promising tendency about DSA research.

Key words:(software architecture)SA; DSA; dynamic evolution; description language; implementation tool

0 DSA研究背景及意義

SA是對軟件系統整體組織結構和控制結構的刻畫,包括系統中各計算單元(構件)的功能分配、各單元之間的高層交互說明(連接件)以及SA的約束。當前,SA研究主要集中在靜態體系結構上,這種體系結構在運行時不能發生改變。而對于一些需要長期運行且具有特殊使命的系統(如航空航天、生命維持、金融、交通等),如果系統需求或環境發生了變化,此時停止系統運行進行更新或維護將會產生高額的費用和巨大的風險,對系統的安全性也會產生很大的影響。靜態體系結構缺乏表示動態更新的機制,很難用其分析、描述這樣的系統,更不能用它來指導系統進行動態演化。因此,DSA的研究應運而生。隨著網絡和許多新興軟件技術(如agent、網格計算、普適計算、移動計算、網構軟件等)的發展,對SA提出了許多更高的要求,如SA的擴展性、復用性、適應性等,而傳統的靜態體系結構已難以滿足這些要求。Perry在2000年第十六屆世界計算機大會主題中提出,SA中最為重要的三個研究方向即體系結構風格、體系結構連接件和DSA,再次說明了DSA研究的重要性。與靜態體系結構相比,研究DSA的意義主要在于能夠減少系統開發的費用和風險。由于采用DSA,一些具有特殊使命的系統能夠在系統運行時根據需求對系統進行更新,并降低更新的費用和風險。此外,DSA能增強用戶自定義性和可擴展性,并可為用戶提供更新系統屬性的服務。

1 DSA研究內容及現狀

DSA指那些在軟件運行時刻會發生變化的體系結構[1,2]。與傳統(靜態)SA相比,DSA的特殊之處在于它的動態性。SA的動態性指由于系統需求、技術、環境、分布等因素的變化而導致SA在軟件運行時刻的變化[1],主要通過SA的動態演化來體現。目前,對DSA的研究主要集中在動態演化、模擬/描述SA動態演化的語言和支持SA動態演化的執行工具等方面展開。

1.1 動態演化

現階段,對于DSA動態演化的研究主要圍繞動態演化的需求來源、動態演化時期、動態演化類型、動態演化方法等方面。

SA的動態演化主要來自兩類需求:a)軟件內部執行所導致的體系結構改變。例如,許多服務器端軟件會在客戶請求到達時創建新的構件來響應用戶需求。b)是軟件系統外部的請求對軟件進行的重配置。例如,操作系統在升級時無須重新啟動,在運行過程中就完成對體系結構的修改。DSA的演化一般發生在四個時期:a)設計時期,演化發生在體系結構模型和與之相關的代碼編譯之前;b)預執行時,演化發生在執行之前、編譯之后,這時由于應用程序并未執行,修改時可以不考慮應用程序的狀態,但需要考慮系統的體系結構,且系統需要具有添加和刪除構件的機制;c)受約束的運行時,演化只發生在某些特定約束滿足時;d)運行時,系統的體系結構在運行時不能滿足要求時發生的改變,包括添加構件、刪除構件、升級替換構件、改變體系結構的拓撲結構等。此時的演化是最難實現的。事實上,對DSA的演化研究應重點放在后兩個時期發生的演化。

在SA動態演化類型的研究上,Cuesta等人將軟件的動態性分為三個級別:a)交互動態性,僅僅要求固定結構里的動態數據交流;b)結構動態性,允許結構的修改,即構件和連接件實例的創建、增加和刪除;c)體系動態性,允許SA的基本構造的變動,即結構可以被重定義,如新的構件類型的定義。以此標準衡量,目前DSA的動態演化研究大多僅支持發生在層次a)b)上的動態性,而對層次c)上的動態性支持甚少。

一般而言,實現SA動態演化的基本原理是使DSA在可運行應用系統中以一類有狀態、有行為、可操作的實體顯式地表示出來,并且被整個運行環境共享,作為整個系統運行的依據。也就是說,運行時刻體系結構相關信息的改變可用來觸發、驅動系統自身的動態調整。此外,對系統自身所作的動態調整結果可反映在體系結構這一抽象層面上。在系統結構上,通過引入運行時體系結構對象,使得相關協同邏輯可從計算部件中分離出來,顯式地、集中地得以表達,符合關注分離的原則;同時又解除了系統部件之間的直接耦合,這些都有助于系統的動態調整。由于動態演化實現起來比靜態演化復雜得多,系統必須提供SA動態演化的一些相關功能。首先,要求系統必須提供保存系統當前的SA信息(拓撲結構、部件狀態和數目等)的功能;其次,實施動態演化還需設置一個監控管理機制,對系統有無需求變化進行監視。當發現有需求變化時,應能分析、判斷可否實施演化、何時演化及演化范圍,并最終分析或生成演化策略。再者,還應保證演化操作原子性,即在動態變化過程中,如果其中之一的操作失敗了,整個操作集都要被撤銷,從而避免系統出現不穩定的狀態。DSA實施動態演化大體遵循以下四步:a)捕捉并分析需求變化;b)獲取或生成體系結構演化策略;c)根據步驟b)得到的演化策略,選擇適當的演化策略實施演化;d)演化后的評估與檢測。

目前,在DSA演化研究中,對系統的完整性及演化的一致性的保證、檢查的研究還不夠深入。此外,由于DSA自身的復雜性,當前對于動態演化理論的研究還不成熟,缺乏統一性,仍處于摸索階段。

1.2 描述語言

連接件概念誕生后,一般從構件、連接件及它們之間的配置描述軟件系統的結構。支持構件、連接件及其配置的描述語言即體系結構描述語言(architecture description language,ADL)。ADL是研究和應用SA的基礎,通常用來對SA進行建模?如何在SA層次上刻畫軟件的運行時動態行為、如何描述動態的SA,使得動態ADL成為設計和實現DSA的基礎和關鍵。動態ADL可分為形式化和非形式化兩類,目前的研究以形式化描述語言為主流。

形式化語言要求:能夠描述構件、連接件等單獨的實體,體現SA關于構件、連接件的屬性,如構件的抽象特點、連接件的通用性等;能夠描述構件和連接件的交互,進行構件與連接件之間的一致性檢查;能夠描述系統SA的運行時演化。目前用于描述DSA的形式化語言主要集中在對現有的一些ADLs的擴展上,采用到的技術主要有以下幾類:a)基于圖論的方法。該方法主要用圖的頂點表示構件,邊表示連接件,并引入協調機制管理體系,動態性由圖的重寫(graph rewriting)規則體現。b)進程代數方法。該方法通常用于研究并發系統,一般基于代數及微分知識——具體涉及到的知識有通信交互系統演算(calculus of communicating systems,CCS)、通信順序進程(communicating sequential processes,CSP)及Pi演算。c)基于邏輯重寫(時序邏輯)的方法。該方法是DSA描述的形式化基礎。非形式化方法主要是采用XML技術。表1是對動態ADL及其采用的相關技術、對DSA的支持情況等的歸納與總結。

能用圖重寫來規約體系結構動態行為的途徑

支持動態的建模和分析,用于死鎖檢測、模型一致性驗證等工作

對基于消息傳遞的分布式系統進行描述和動態配置,支持預設的動態演化

支持動態體系結構建模和驗證

支持系統聯機演化及SA求精

適用于基于構件的軟件系統的動態演化,支持動態體系結構建模、分析與驗證

支持對JB/HMB(青鳥基于層次消息總線的SA)風格的系統進行規范化描述,并可在工具的支持下進行系統性質分析、動態模擬運行、動態演化和代碼框架自動生成

主要面向C2風格的SA描述,支持體系結構演化、動態配置

支持有限度的動態體系結構行為

一種通用類型的ADL,用于支持基于體系結構、面向構件的軟件開發方法

如表1所示,各種描述方法各有其特點。例如圖形化描述方法能夠很直觀地表示出軟件系統的動態結構和風格,但在具體的動態行為描述上就受到一定的限制;進程代數方法能夠詳細描述系統的動態行為;邏輯重寫方法在對體系結構風格的描述上比較困難等。此外,與形式化方法相比,雖然非形式化方法表達直觀、易理解,但是不及形式化方法精確,也不能支持各種特性的分析與驗證。現有的多數動態ADL都是在進行某種特殊應用的研究開發中設計和發展出來的,均有各自的側重點,雖然在某些方面存在相同點,但在適用范圍上卻存在一定的局限性。

1.3 動態演化的執行工具

目前,國內外對SA動態演化的執行工具研究較多,從SA指導軟件系統演化時采用到的技術,可將動態演化的執行工具分為如下幾類:

a) 基于反射原理。一般認為,反射是一種計算系統能監控自己狀態并能改變自身運行方式的一種能力。通常,基于反射的系統其體系結構為分層系統,最底層稱為基本層,它通常由與應用有關的軟件對象構成;除此之外的層稱為元層,多個元層構成反射塔。元層由元對象構成,其提供的訪問接口協議稱為元對象協議。一個反射系統的工作過程可以描述為:基本層對象為實現應用功能而開始運行活動,其運行活動被元層對象捕獲,導致計算上下文切換到元層(這個過程稱為上行活動);元對象根據其運行邏輯將元計算結果反過來作用和影響基本層的對象,上下文再次切換到基本層(這個過程稱為下行活動)[12]

基于該原理的動態演化執行工具主要有J.Dowling等人[13]設計的K-Component框架元模型、北京大學研究的PKUAS系統[8],以及文獻[14]提出的基于體系結構空間、支持動態演化的軟件模型(software architecture space-based model, SASM),文獻[10]介紹的Artemis-ARC支撐系統。

b) 基于構件操作。在基于構件的DSA中,作為軟件系統的一個特定功能單位,構件主要由三部分組成,即一組信息、一組行為和一組接口。信息保存在構件的內部,包括構件內部的狀態等;行為是構件所能實現的功能;接口是構件對外的表現,包括構件對外的屬性和方法的調用,通過接口而且只能通過接口才能實現構件與其他構件之間的相互作用。此時,軟件系統的演化可有兩種情形:(a)整體結構的演化,這種情況通常將構成系統的各個構件按新的要求重新組裝,增加或刪除系統的一些構件,或者修改整個系統的拓撲結構關系;(b)整個結構的拓撲關系并不改變,僅是系統中某個構件的演化,這種情況通常是修改構件的接口、功能,也可能修改單個構件的某些功能的實現方法。

基于該技術的動態演化執行工具主要有文獻[15,16]提出的一種基于構件的動態體系結構模型(component based dynamic architecture,CBDA);文獻[17]設計的一個面向應用的、開放的、SA驅動的分布式運行環境SADRE;文獻[18]提出可通過基于C2風格的應用程序的實現類及一系列方法來完成增加/ 刪除構件、增加/ 刪除連接器、改變構件與連接器的連接關系的操作,最終實現系統運行期的演化。

c) 基于反演工作流。反演計算是一個程序在執行時對描述自身的數據進行操作的能力。通常來說,一個反演計算系統在兩個邏輯空間內運行。其中:被反演的系統運行的空間叫做基空間;對它進行反演的空間叫做元空間。通過具體化這一操作,系統從基空間轉移到元空間;通過反演這一操作,系統從元空間轉移到基空間。更進一步,元空間在它自身的上面還可以有元元空間,形成元空間塔的結構。而工作流模型則是業務過程的計算模型,即將相應的業務邏輯和業務規則在計算機中以恰當的模型進行表示并對其實施計算。

中國科學院計算技術研究所網格與服務計算研究中心在“基于反演工作流和動態體系結構的信息系統演進技術研究”項目中,研究了信息系統動態重構和持續演進的方法、技術,將反演計算引入到工作流和系統資源管理中,再用反演工作流實現SA的動態控制,并研究演進過程中的一致性問題,以保證演進的正確性。

d) 基于Pi演算。Pi演算是在CCS基礎上提出的、基于命名概念的進程代數并發通信行為演算方法,它包含一套完整的理論、方法體系,包括語法定義、操作語義和重要的互模擬等價理論。Pi演算的前綴算子、選擇算子和并發合成算子,使得研究人員可以采用自頂向下或自底向上的方法對復雜的并行行為進行形式化建模;其所具有的進程演算能力,使得研究人員可直接驗證形式化模型的正確性和完備性;而其完備的互模擬等價理論,又為研究人員驗證模型實現的有效性提供新的思路。Pi演算可以用來描述結構不斷變化的并發系統。

文獻[7]中的軟件體系抽象模型 (software architecture abstract model, SAAM) 便是通過一系列的Pi演算進程對SA實施演化,并利用Pi演算的相關分析方法,對SA的一致性進行分析。

e) 基于不動點轉移的矩陣變換。文獻[19]提出:(a)在SA動態演化過程中,可以設想信息流(數據流或控制流)是通過NSA中的連接件在構件之間流動的,當這種流動到達某一構件時,繼續驅動目標構件,進而輻射出去或終止,這種反復出現的過程稱為NSA浸潤;(b)在浸潤過程中,當時刻t到達某一時刻T時,如果出現了X(T+1)=X(T),S(T+1)=S(T),則稱此時刻的點為不動點(其中:X表示某時刻SA狀態的鄰接矩陣;S為某時刻SA的動態語義網GSA的全部狀態集合)。文獻[20]基于SA的構件—連接件動態語義模型,建立了SA動態語義網GSA,憑借動態語義網中的浸潤理論和不動點特征,分析了SA動態語義網的浸潤過程及其收斂性,并指出SA動態演化過程可用一個不動點轉移序列對應的一個矩陣(X 原子過濾)序列來刻畫和描述。總體上來看,文獻[19]將SA作為一個整體來觀察它運行時的整體變化,這種變化其實就是不同時刻的SA穩態之間的遷移和波動。

f) 利用一個外部的體系結構演化管理器。加州大學Irwine分校提出了基于SA的開發和運行環境——ArchStudio,該執行工具包含三種體系結構變更源(sources of architectural modification)工具:Argo、ArchShell和擴展向導(extension wi-zard)。Argo提供一個體系結構的圖形描述和操作手段;ArchShell提供一個文本的、命令式的體系結構變更語言;擴展向導提供一個可執行的腳本更改語言用來對體系結構進行連續演化。其所定義的系統動態演化方法是如何使在體系結構層面表達的動態調整在具體系統中得以實施的一個典型代表,動態演化模型如圖1[20]所示。

表2是對目前較典型的幾個DSA演化的執行工具及其對動態演化支持情況的歸納。如表2所示,盡管各種動態演化的執行工具實現形式各異,但在原理上有相似點:(a)將SA以某種形式在軟件運行時表示出來;(b)在SA與軟件之間建立某種聯系,以便讓SA控制和指導軟件系統的演化。有的執行工具將體系結構內置于計算部件中,有的則將SA與計算部件分離,且后者居多。目前基于反射原理和構件技術的研究相對較成熟,大多數模型對運行時體系結構的行為語義描述不夠嚴密,在系統完整演化和演化過程的一致性、DSA的追溯性方面還有待完善。此外,模型一般只能適用于某些特定體系結構風格或某些特定領域,通用性需要進一步加強。有的執行工具未能完全達到Carlese Cuesta等人提出的第三級別的體系動態性,且對非預設的動態演化支持不夠充分。

統的動態演進并保證演進的正確性

Pi演算進程SAAM[7]于振華等三元組支持基于構件的SA的動態演化及體系結構的一致性分析

矩陣變換SA動態語義網絡模型[19]王映輝等SA動態語義網支持SA的動態演化

利用一個外部體系結構演化管理器ArchStudio[20]加州大學Iwine分校用Argo進行圖形化表示體系結構模型支持Java編寫的C2體系結構風格軟件的動態更改,不限制變化類型,理論上允許體系結構的任意修改

2 DSA研究的發展方向

通過總結DSA的研究現狀,當前的研究主要集中在DSA的理論研究上,實際應用較少,因而解決軟件的演化問題將成為DSA應用研究領域的一個重要方向。其次,對于與DSA研究相關概念的統一、通用性支持工具、動態演化完整性、一致性、追溯性等問題都有待進一步深入。此外,隨著DSA研究的深入,基于DSA的一些新興軟件體系結構的研究,如自適應軟件體系結構、正交軟件體系結構、自省動態軟件體系結構、網格動態體系結構等,將會成為DSA研究的發展方向。

3 結束語

隨著移動計算、普適計算和Web services等技術的迅速發展,軟件系統所面臨的計算環境變得開放、多元和易變。為適應運行時刻計算環境中網絡、設備、資源等的變化和用戶需求的改變,在不中斷系統運行的情況下進行在線演化,一些研究者開始由傳統的SA轉向對DSA的研究。DSA具有動態性,支持動態演化,能很好地解決軟件的動態性問題。目前,DSA的研究主要集中在動態演化及其支持語言/執行工具的研究上。但是,由于DSA自身的復雜性,當前仍缺乏通用的結構模型、有效的形式化描述機制和分析工具,相關研究需進一步深入。鑒于DSA的動態性及軟件發展的現狀,一些基于DSA的新興SA研究已開始嶄露頭角,并有可能成為DSA研究的重要方向和熱點。

參考文獻:

[1]張友生.軟件體系結構[M].2版.北京:清華大學出版社,2006:49-169.

[2]張海波,王小非,曹萬華,等.新型軟件體系結構研究[J]. 計算機與數據工程,2005,35(1):50-54.

[3]INBERARDI P,WOLF A L. Formal specification and analysis of software architectures using the chemical abstract machine model[J]. IEEE Trans on Software Engineering, 1995, 21(4):373-386.

[4]BRADBURY J S, CORDY J R, DINGEL J, et al. A survey of self-management in dynamic software architecture specifications[C]//Proc of the 1st ACM SIGSOFT Workshop on Self-Managed Systems. New York:ACM Press, 2004:28-33.

[5]OQUENDO F .Pi-ADL:an architecture description language based on the higher-order typed Pi-calculus for specifying dynamic and mobile software architectures[J]. ACM Software Engineering Notes,2004,29(4):1-13.

[6]李長云,李贛生,何頻捷. 一種形式化的動態體系結構描述語言[J].軟件學報,2006,17(6):1349-1359.

[7]于振華,蔡遠利,徐海平.動態軟件體系結構建模方法研究[J].西安交通大學學報,2007,41(2):167-171.

[8]張世琨,王立福,常欣,等.基于層次消息總線的軟件體系結構描述語言[J].電子學報,2001(5):581-584.

[9]TAYLOR R N, MEDVIDOVIC, ANDERSON K M, et al. A component-and message-based architectural style for GUI software [J]. IEEE Trans on Software Engineering, 1996, 22(6):390-406.

[10]余萍,馬曉星,呂建,等.一種面向動態軟件體系結構的在線演化方法[J].軟件學報,2006,17(6):1360-1371.

[11]王曉光,馮耀東,梅宏.ABC/ADL:一種基于XML的軟件體系結構描述語言[J].計算機研究與發展,2004,41(9):1522-1531.

[12]黃曉冬,李伯虎,柴旭東.基于反射的分布交互仿真軟件框架[J].北京航空航天大學學報,2007,33(8):995-999.

[13]DOWLING J,CAHILL V,CLARKE S.Dynamic software evolution and the k-component model[C]//NORTHROP L,VLISSDES J. Proc of Workshop on Software Evolution, Conferece on Object-Oriented Programming Systems, Languages, and Applications. New York: ACM Press, 2001.

[14]李長云,李瑩,吳健,等.一個面向服務的支持動態演化的軟件模型[J].計算機學報,2006,29(7):1021-1028.

[15]王海燕.一種基于構件的可動態更新的體系結構模型[J].農業網絡信息,2006(3):9-11.

[16]馬曉星.Internet軟件協同技術研究[D].南京:南京大學,2003.

[17]李長云,鄔惠峰,李贛生,等.軟件體系結構驅動的運行環境[J].小型微型計算機系統,2005,26(8):1358-1363.

[18]薛云皎,余枝強,錢樂秋,等. C2風格軟件構架的演化研究[J].計算機工程與應用,2002,38(11):83-86.

[19]王映輝,王立福.軟件體系結構演化模型[J].電子學報,2005(8):1381-1386.

[20]OREIZY P,MEDVIDOVIC N,TAYLOR R N. Architecture-based runtime software evolution[C]//Proc of ICSE’20. Washington DC:IEEE Press, 1998:177-186.

[21]黃罡,梅宏,楊芙清.基于反射式軟件中間件的運行時軟件體系結構[J].中國科學E:輯技術科學,2004,34(2):121-138.

[22][EB/OL]. http://vega.ict.ac.cn/reflect_workflow.isp?id=dir13.

主站蜘蛛池模板: 狠狠色丁香婷婷| 国产在线自揄拍揄视频网站| 日韩资源站| 中文字幕无线码一区| 四虎国产在线观看| 粉嫩国产白浆在线观看| AV无码一区二区三区四区| 91无码视频在线观看| 97精品国产高清久久久久蜜芽| 一级毛片免费的| 丰满人妻被猛烈进入无码| 97国产精品视频自在拍| 好吊妞欧美视频免费| 欧美日韩在线亚洲国产人| 四虎永久免费地址在线网站| 欧美97色| 亚洲国产天堂久久综合226114| 国产毛片基地| 国产精品一区二区不卡的视频| 国产网站免费看| 欧美国产日韩另类| 最新国产网站| 亚洲人成网站18禁动漫无码| 国产欧美日韩91| 欧美日本激情| 国产亚洲精品97在线观看| 国产丝袜91| av在线5g无码天天| 亚洲性视频网站| 国产精品高清国产三级囯产AV| 伊人婷婷色香五月综合缴缴情| 中国国产A一级毛片| 深爱婷婷激情网| 99精品伊人久久久大香线蕉| 美女内射视频WWW网站午夜| a级免费视频| 第一页亚洲| 中美日韩在线网免费毛片视频| 91美女视频在线| 重口调教一区二区视频| 欧美日韩v| 99re在线观看视频| 欧洲av毛片| 久久综合一个色综合网| 亚洲日韩图片专区第1页| 成人福利免费在线观看| 国产欧美精品一区二区| 青青草综合网| 亚洲高清无在码在线无弹窗| 欧美色视频在线| 欧美亚洲日韩不卡在线在线观看| 99热这里只有精品免费国产| 免费一级无码在线网站| 美女扒开下面流白浆在线试听| 天天色天天操综合网| 日韩国产综合精选| 久久国语对白| 亚洲国产中文在线二区三区免| 片在线无码观看| 999国产精品永久免费视频精品久久| 中文字幕资源站| 日本妇乱子伦视频| 91精品人妻互换| 国产成人精品高清不卡在线| 欧美日韩中文国产| 国产一区亚洲一区| 国产偷倩视频| 国产一二三区在线| 在线va视频| 在线国产你懂的| 超碰精品无码一区二区| 青青青亚洲精品国产| 一级毛片在线播放免费观看| 亚洲最新网址| 日韩欧美国产综合| 黄色网页在线观看| 日韩美一区二区| 沈阳少妇高潮在线| 五月婷婷中文字幕| 国产va免费精品观看| 国产美女一级毛片| 亚洲日本中文字幕乱码中文|