(湖南工業大學 計算機與通信學院, 湖南 株洲 412008)
摘 要:提出了一個軟件行為監控框架,在此基礎上,從軟件行為描述、軟件行為監測、軟件行為可信管理和軟件行為控制四個方面,闡述了可信軟件行為監控的研究進展,分析了目前研究中存在的問題,并探討了其未來的發展趨勢。
關鍵詞:動態演化; 可信軟件; 行為監控; 行為可信
中圖分類號:TP311文獻標志碼:A
文章編號:10013695(2009)04120104
Research and development on behavior monitoring and controlling of trusted software in dynamic evolution environment
WAN Canjun, LI Changyun
(School of Computer Communication, Hunan University of Technology, Zhuzhou Hunan 412008, China)
Abstract:
Firstly, this paper presented a framework for behavior monitoring and controlling of software. Then, on this basis, discussed the research and development on behavior monitoring and controlling of trusted software, which including software behavior describing, software behavior monitoring, trust management of software behavior and software behavior controlling. Finally, analyzed the existing problems of research, and also discussed the development trend of future research.
Key words:dynamic evolution; trusted software; behavior monitoring and controlling; behavior trust
軟件可信是指軟件系統能按照其設定目標所期望的方式運行,能適應環境和需求的變化,有抵御異常情況的能力,在受到干擾時仍能持續提供服務。然而,軟件常常發生故障和失誤,甚至失效,給人們的工作和生活帶來不利影響,甚至造成巨大損失。軟件的可信性已成為一個相當普遍的問題,如僅2006年中航信離港系統發生了三次軟件故障,造成近百個機場登機系統癱瘓。因此,人們對軟件的可用性、可靠性和安全性等可信性十分關注,如何在軟件的開發和運行中保證軟件具有高可信性已成為軟件理論和技術的重要研究方向[1]。
持續可用性是軟件可信性的一個重要方面,也是許多應用領域中的一個關鍵性要求,軟件動態演化可提高軟件的持續可用性。軟件動態演化是指在軟件系統投入運行后,應環境和需求的變化而進行的變更[2]。然而,動態演化過程中可能出現異常,導致系統出錯,降低軟件的可信性。軟件本質上是代替人執行一定的行為。軟件的可信性主要表現在其行為可信上,即運行行為可監測、行為結果可評估、異常行為可控制。軟件行為的可信不是憑空而來的,需通過軟件運行時的行為監測,收集可信性相關數據,驗證軟件行為是否滿足行為規約,建立基于行為監測的可信評估和管理體系,并能根據行為可信評估結果和行為可信需求規約,對軟件行為進行動態調控,保障動態演化的正確性和一致性,提高軟件的可信性。軟件行為監控主要涉及到軟件行為的可信監測、可信管理和可信控制。本文旨在從行為描述、行為監測、行為可信管理和行為控制等方面探討如何進行軟件行為監控,為軟件動態演化提供可信保障機制,最終為用戶提供持續可用、可靠、安全的高可信服務。
1 軟件行為監控框架
本文所研究的軟件行為監控主要是面向基于中間件的構件軟件,所監控的實體主要是軟件構件,支持EJB/CORBA/COM/DCOM/Web services等不同形式的構件。如圖1所示,以中間件平臺為基礎,構建一個可信軟件行為監控框架,為基于中間件的構件軟件建立一個可信的軟件行為監控環境,提供軟件行為可信監測、軟件行為可信管理和軟件行為可信控制三個基本服務,各部分相互協作,共同完成軟件行為監控。
在圖1所示的軟件行為監控框架中,被監控實體稱為信任實體,分為信任者(trustor)和被信任者(trustee)。如果trustee能夠滿足trustor所期望的行為,則trustee被認為是可信的。Trustor若要信任trustee,需要對trustee的運行時行為進行監測,在此基礎上進行行為可信評估,從而決定是否信任trustee,并決定對其行為是否進行動態調控。在軟件行為監控框架中,軟件行為可信監測主要包括行為描述和行為監測;軟件行為可信管理主要包括行為可信建模、行為可信評估和行為可信管理框架;軟件行為可信控制主要包括異常行為控制和演化行為控制。
2 軟件行為可信監測
軟件行為可信監測是軟件行為可信評估的基礎,為行為可信評估提供核心依據,主要涉及行為描述和行為監測。
21 行為描述
在行為監測研究中,所關心的主體行為是軟件系統的體系行為,即軟件構件之間的交互行為和軟件系統的演化行為,對于軟件構件的內部微觀行為不必要也不可能被監測到。在構件軟件中,構件以主體的身份在完成某項協作活動時,通過構件的接口在運行環境中與其他構件進行交互活動,稱為構件的交互行為。為了能夠對軟件系統的體系行為進行監測、驗證、評估和控制,首先需要進行軟件行為描述。
行為描述是行為監測、驗證、評估和控制的基礎。一般而言,軟件行為描述均基于某種形式化方法進行,Petri網、自動機理論和進程代數是使用最多的三種方法。基于Petri網[3]和有限自動機[4]的方法在行為描述上采用圖形方式較為直觀,但當軟件實體間的交互過程變得復雜時,這種圖形方式容易出現狀態空間爆炸,其計算和驗證的復雜度也隨即增加。因此,有研究者提出采用進程代數的方法來刻畫軟件行為。π演算是Milner等人[5]對CCS(通信系統演算)進行擴充而得到的進程代數理論。高階多型π演算由Sangiorgi[6]在一階π演算的基礎上發展而來,旨在描述體系結構和體系行為都不斷變化的并發系統。DADL[7]是一種形式化的基于高階多型π演算的語言,從運行時角度支持軟件系統體系行為描述。相比其他形式化方法,π演算具有更強的行為規約描述能力,其行為模擬和等價理論為可信軟件的構造、驗證和演化提供了良好的理論基礎,比較適合于軟件行為描述。
已有的軟件行為描述研究沒有考慮到軟件可信性與軟件行為之間的關系。為了提高軟件行為的可信性,需要建立軟件可信性與軟件行為之間的內在聯系和嚴格描述。另外,采用形式化方法描述軟件行為后,一般需要進行形式化驗證。模型檢測是形式化驗證的一種重要途徑。常用的模型檢測工具有MWB、SMV、SPIN等。其中MWB適合于驗證用π演算描述的軟件行為。
22 行為監測
行為監測是行為可信評估的基礎,為行為可信評估提供原始數據。軟件行為的可信來源于軟件行為監測信息,需要對軟件行為進行全面、準確、實時的監測,收集可信性相關數據。目前,在行為監測方面已取得了許多研究成果。Li Jun[8]提出了一個軟件行為監測框架,基于全局因果跟蹤技術捕獲多維軟件系統行為。Diakov等人[9]提出了一種基于CORBA中間件平臺的軟件行為監測框架,能自動生成監測代碼來監測構件之間的交互行為。Chen Feng等人[10]提出了一種運行時行為監測框架MOP。該框架能根據給定的行為規約自動生成監測器,動態監測系統運行行為,一旦發現違約行為,能立即觸發用戶定義的操作進行容錯處理。Mariani等人[11]構建了一個自動捕獲構件行為的監測框架,使用構件包裝器截取被監視構件與其他構件之間的交互行為信息。Gao等人[12]引入了可追蹤構件的概念,提出基于事件的行為跟蹤模型,跟蹤構件之間的交互活動。Avgustinov等人[13]將AOP技術應用到行為監測中,使用Aspect來觀察系統中發生的被關注的事件。Bodden[14]開發了一種運行時行為監測工具,使用線性時序邏輯描述系統行為,基于AspectJ的織入機制在Java源代碼中植入行為監測工具。DynamicTAO[15]是一種反射式CORBA軟件,基于ORB的反射機制,通過在對象調用路徑中插入截取器,監測軟件系統體系行為。
如表1所示,上述行為可以分為基于框架的監測機制、自動代碼植入機制、自動構件包裝機制、反射機制四類。這四類行為監測機制各有優缺點,在實際應用中需要結合起來使用。為了保證軟件行為可信,不僅需要進行靜態的形式化驗證,而且還需要在軟件行為監測過程中驗證其行為是否滿足行為規約,分析其運行行為是否符合行為依據以及是否違背了行為約束。另外,基于中間件的構件軟件中的軟件實體大多來源于不同的第三方提供者,各軟件實體以開放、自主的方式存在于Internet的各節點之上,這也給行為監測帶來了挑戰。
3 軟件行為可信管理
軟件行為可信管理旨在為軟件動態演化提供可信保障機制,主要涉及行為可信建模、行為可信評估和可信管理框架。
31 行為可信建模
軟件行為可信建模是指構建一個描述、量化、傳遞軟件實體間行為可信關系的可信模型。行為可信模型所關注的內容主要有行為可信描述和行為可信評估。研究者提出了多個可信模型。AbdulRahman等人[16]從信任的概念出發,對信任內容和信任程度進行劃分,并從信任的主觀性入手提出了一個分布式信任模型。Beth等人[17]提出的信任模型引入了經驗的概念來描述和度量信任關系,將軟件實體之間的信任關系分為直接信任關系和推薦信任關系,分別用于描述信任主體與信任客體、信任主體與信任客體的經驗推薦者之間的信任關系。主體對客體的經驗既可以直接獲得,也可以通過推薦者獲得。而推薦者提供的經驗同樣可以通過其他推薦者獲得,直接信任關系和推薦信任關系形成了一條從主體到客體的信任鏈,而主體對客體行為的主觀期望則取決于這些直接的和間接的經驗。Herrmann[18]研究了一種構件化軟件的信任模型,提出信任適應安全策略實施的概念,采用形式化安全策略描述構件間的行為可信關系。
上述信任模型提供了描述、量化、傳遞信任關系以及綜合多方信任信息的功能,但是他們都試圖用概率理論作為數學工具來解決信任模型中遇到的各種問題,無法確切地描述信任模型中的不確定性因素。Jsang等人[19]提出了基于主觀邏輯的信任模型,使用DS(DempsterShafer)證據理論來試圖解決不確定性問題,但仍然將信任的主觀性和不確定性等同于隨機性,而沒有考慮信任本身的模糊性。為了更準確地把握和反映信任的本質屬性,唐文等人[20]考察了信任的模糊性,構造了一個基于模糊集合理論的主觀信任模型,但概念比較抽象,缺少具體化的深入描述。
已有的行為可信建模研究僅著重于信任客體的可信描述,而對于信任主體本身的可信需求描述,除文獻[21]提出的面向可信需求的描述框架外,很少引起研究者的足夠重視。另外,動態演化環境下軟件行為可信建模研究不應只關注軟件實體層次的可信性,還要考慮軟件系統體系結構層次的可信性。
32 行為可信評估
行為可信模型提供了建立和管理行為可信關系的框架。行為可信評估是行為可信模型的核心,它是指通過行為監測,評估主體收集,記錄自身與評估客體的直接交互行為信息,并根據經驗推薦者所提供的關于評估客體的間接經驗推薦信息,得出評估客體的可信評估值,最終對評估客體的行為得出是否可信的判斷,其結果將決定軟件系統是否需要演化以及如何演化。一般來說,可信評估分為直接的和間接的。直接可信評估是指評估主體與評估客體之間不需要經過任何第三方信任實體的可信評估;間接可信評估是指主體對客體的可信評估需要經過某個或某些第三方信任實體。如圖2所示,當評估主體A對評估客體B進行可信評估時,兩類信任關系參與評估:a)直接信任關系,評估主體A與評估客體B存在直接交互行為,A具有B能夠完成某項協作活動的直接可信評估;b)推薦信任關系,評估主體A與評估客體C沒有直接交互行為,需要推薦實體B提供關于C的協作經驗信息,B與C之間存在直接信任關系,A通過B提供的經驗推薦信息對C進行間接可信評估。
目前,在可信評估方面已有大量研究。AbdulRahman等人[22]提出的可信評估模型,強調可信度傳遞的條件性,給出了可信度的傳遞協議和計算公式,但沒有給出可信度綜合計算公式。Beth等人[17]提出了一種基于經驗和概率統計的可信評估模型,以對實體完成任務的期望為基礎,根據肯定經驗和否定經驗計算出實體能夠完成任務的概率,以此概率作為實可信度的度量,并給出了由經驗推薦所引出的可信度推導和綜合計算公式;但是其可信度計算采用簡單的加權求和與算術平均,無法反映信任關系的真實情況。Jsang[23]引入了事實空間和觀念空間的概念來表述和度量信任關系,以描述二項事件后驗概率的Beta分布函數為基礎,給出了一個由觀察到的肯定事件數和否定事件數來確定的概率確定性密度函數,并以此為基礎計算實體產生每個事件的概率可信度。Jsang還定義了一套用于可信度計算的主觀邏輯算子,主要包括推薦算子和合意算子,分別用于可信度推導計算和可信度綜合計算。Wang Yao等人[24]使用貝葉斯網理論來解決可信評估問題,但該方法過于依賴專家經驗,對經驗可靠性要求較高,主觀性較強。
對行為可信關系進行評價的主要依據來源于相關的直接交互行為信息和間接經驗推薦信息,判斷一個實體是否成功地完成某項協作活動與判斷一個實體是否誠實地提供推薦信息相比,要涉及較少的主觀判斷。上述可信評估方法大多依賴于主觀經驗數據,較少利用軟件行為本身的監測數據,而在動態演化環境下更應注重依賴實時監測到的可信相關數據,采用基于行為監測的可信評估方法。
33 可信管理框架
可信管理框架旨在為軟件行為可信建模和行為可信評估等提供管理活動。在可信管理框架方面,國內外也有比較深入的研究。Zheng Yan等人[25]研究了構件化軟件中的可信管理框架,重點關注基于運行觀察的自主可信管理,主要包括四個方面:信任建立、信任監控、信任評估、信任控制和重建。北京大學[26]以Internet環境下的軟件服務為研究實體,構建了一個基于中間件的五層可信管理框架,旨在提供通用的可信管理基礎設施。南京大學[27]針對當前軟件服務協同環境下安全問題呈現出的新特點,提出了一個基于經驗的可信度計算模型,并在此基礎上設計了一個基于可信度的可信管理框架。
上述可信管理框架對于軟件行為可信關注不足,尤其是對如何通過動態演化機制使得軟件行為可信關注不足。為了保障動態演化環境下軟件行為可信,需要多關注支持行為可信的軟件動態演化機制。鑒于上述研究工作中存在的問題,本文初步提出了一個基于行為監測的可信管理框架,如圖3所示。
基于行為監測的可信管理框架主要由行為監測器、行為記錄器、可信評估器和動態演化器構成,各部分相互協作,共同完成行為可信管理。在運行系統中每個軟件實體發生交互的地方植入行為監測器,監測實體的交互行為,收集其交互行為信息,并使用行為記錄器實時地存儲這些信息,為行為可信評估提供核心依據。可信評估器根據評估主體和評估客體的直接交互行為信息,以及推薦實體給出的經驗推薦信息,對評估客體的行為動態地進行可信評估,其結果為運行系統的動態演化提供依據。動態演化器根據行為可信需求規約和行為可信評估結果對運行系統進行動態演化,主要包括運行系統體系結構的動態配置和體系行為的動態調控。
4 軟件行為可信控制
軟件行為可信控制旨在提高軟件的持續可用性,提高軟件行為的可信性,主要包括異常行為控制和演化行為控制。動態演化環境下軟件可信要求軟件系統能隨環境和需求的變化而進行動態演化。Garlan等人[28]研究了基于運行時體系結構的自適應系統 Rainbow。它采用外置運行時體系結構,通過ProbeGaugeGauge Consumer三層監控機制,獲取和度量系統變化來觸發自適應規則實現自適應演化。南京大學[29]也提出了一種面向體系結構的自適應系統ArtermisARC。它采用內置運行時體系結構,通過AgentGaugeMonitor三層監控機制,驅動軟件系統進行自適應演化。
反射式中間件是一種能夠通過與系統運行狀態和行為具有因果關聯的系統自述來監測并調整系統狀態和行為的中間件系統。OpenCorba[30]是一種基于CORBA的反射式中間件,通過元類將ORB內部特征分離并單獨實現,從而允許軟件系統在運行過程中監測并調整這些內部功能單元。北京大學[31]開發的PKUAS是一個基于軟件體系結構的反射式中間件,它所提供的實時監控工具能監測到運行時體系結構的運行狀態和行為并加以調整。文獻[32]中提出了基于體系結構空間、支持動態演化的軟件模型SASM,使用反射技術通過對體系結構空間的觀察,可獲知系統的結構和行為信息,通過對體系結構空間的在線調整可實現系統的非預設動態演化。
從軟件行為可信的角度分析上述研究,在軟件動態演化過程中,它們都沒有將行為可信性考慮進去。由于缺乏行為監測,不能進行行為可信評估,不考察主體行為的可信性,很難保證動態演化的正確性,也難以滿足動態演化環境下軟件可信性需求。在軟件運行過程中,軟件系統依據行為可信需求規約和行為可信評估結果,可能需要采取相應的控制策略(如故障報警、容錯處理和診斷恢復等)使得異常行為可控制,采用合適的演化策略對軟件行為進行動態調控,從而提高軟件的自適應性和可信性。
5 結束語
本文已從軟件行為描述、軟件行為監測、軟件行為可信管理和軟件行為控制四個方面,總結歸納了動態演化環境下可信軟件行為監控的主要研究進展,并分析了其存在的主要問題。在此基礎上,筆者認為在如下幾方面值得進一步展開研究:a)在行為描述方面,需要建立軟件可信性與軟件行為之間的內在聯系和嚴格描述;b)在行為監測方面,需要設計有效的收集可信性相關數據的行為監測機制;c)在行為可信管理方面,需要研究基于行為監測的可信評估方法,構建基于行為監測的可信管理框架;d)在行為控制方面,需要研究支持行為可信的軟件動態演化機制。
參考文獻:
[1]陳火旺, 王戟, 董威.高可信軟件工程技術[J].電子學報, 2003, 31(12): 19331938.
[2]KRAMER J, MAGEE J. The evolving philosophers problem:dynamic change management[J]. IEEE Trans on Software Engineering, 1990,16(11):133.
[3]羅軍舟, 沈俊, 顧冠群.從Petri網到形式描述技術和協議工程[J].軟件學報, 2000,11(5):606615.
[4]HELKE S, KAMMIILLER F. Representing hierarchical automata in interactive theorem provers[C]//Proc of the 14th International Conference on Theorem Proving in Higher Order Logics. London: SpringerVerlag, 2001:233248.
[5]MILNER R, PARROW J, WALKER D. A calculus of mobile processes[J].Information and Computation, 1992,100(1):140.
[6]SANGIORGI D. Expressing mobility in process algebras:firstorder and higherorder paradigms[D]. Edinburgh: University of Edinburgh, 1992.
[7]李長云, 李贛生, 何頻捷.一種形式化的動態體系結構描述語言[J].軟件學報, 2006,17(6):13491359.
[8]LI Jun. Monitoring and characterization of componentbased systems with global causality capture[C]//Proc of the 23rd International Conference on Distributed Computing Systems. 2003: 422431.
[9]DIAKOV K, BATTERAM J, ZANDBELT H. Monitoring of distributed component interactions[C]//Proc of IFIP International Conference on Distributed Systems Platforms and Open Distributed Processing. New York:[s.n.], 2000:229243.
[10]CHEN Feng, GRIGORE R. MOP:an effcient and generic runtime verification framework[C]//Proc of OOPSLA 2007. 2007:569588.
[11]MARIANI L, PEZZE M. A technique for verifying componentbased software[J]. Electronic Notes in Theoretical Computer Science, 2005, 116(1): 1730.
[12]GAO J, ZHU Y, SHIM S, et al. Monitoring software components and componentbased software[C]//Proc of the 24th IEEE Annual International Computer Software and Applications Conference. Taiwan:[s.n.], 2000: 403412.
[13]AVGUSTINOV P, TIBBLE J, BODDEN E, et al. Aspect for trace monitoring[C]//Proc of Formal Approaches to Testing Systems and Runtime Verification. Seattle, WA:[s.n.],2006: 2039.
[14]BODDEN E. A lightweight LTL runtime verification tool for Java[C]//Proc of OOPSLA 2004. 2004: 306307.
[15]FABIO K, MANUEL R. Monitoring, security, and dynamic configuration with the dynamicTAO reflective ORB[C]//Proc of Middleware 2000. New York:[s.n.], 2000: 121143.
[16]ABDULRAHMAN A, HALIES S.A distributed trust model [C]//Proc of Workshop on New Security Paradigms. Langdale:[s.n.], 1997:4860.
[17]BETH T, BORCHERDING M, KLEIN B. Valuation of trust in open network [C]//Proc of the European Symposium on Research in Secuirty. Brighon:[s.n.], 1994:318.
[18]HERRMANN P. Trustbased procurement support for software components[C]//Proc of ICECR’01. Dallas:[s.n.]. 2001:505514.
[19]JSANG A, KNAPSKOG S J.A metric for trusted systems[C]//Proc of the 21st National Security Conference. 1998:541549.
[20]唐文, 陳鐘.基于模糊集合理論的主觀信任管理模型研究[J].軟件學報, 2003, 14(8):14011408.
[21]ZHU Manling, LIU Lin, JIN Zhi. A social trust model for services[C]//Proc of the 11th Australian Workshop on Requirements Engineering. Adelaide:[s.n.], 2006:3542.
[22]ABDULRAHMAN A, HALIES S. Using recommendations for managing trust in distributed systems[C]//Proc of IEEE Malaysia International Conference on Communication. Kuala Lumper:[s.n.], 1997
[23]JSANG A. An algebra for assessing trust in certification chains [C]//Proc of Network and Distributed Systems Security Symposium. San Diego:[s.n.], 1999.
[24]WANG Yao, VASSILEVA J. Bayesian network trust model in peertopeer networks[C]//Proc of the 2nd International Workshop on Agents and PeertoPeer Computing. Berlin:SpringerVerlag, 2004:2334.
[25]ZHENG Yan, MacLAVERTY R. Autonomic trust management in a component based software system[C]//Proc of the 3rd International Conference on Autonomic and Trusted Computing. Wuhan:[s.n.], 2006:279292.
[26]ZHOU Minghui, WEN Jiaopin, MEI Hong. Customizable framework for managing trusted components deployed on middleware[C]//Proc of the 10th ICECCS. Shanghai:[s.n.], 2005:283291.
[27]徐鋒, 呂建, 鄭瑋,等.一個軟件服務協同中信任評估模型的設計[J].軟件學報, 2003,14(6):10431051.
[28]GARLAN D, CHENG Shangwen, HUANG Ancheng, et al. Rainbow:architecturebased selfadaptation with reusable infrastructure[J].IEEE Computer, 2004, 37(10): 4654.
[29]馬曉星, 余萍, 陶先平,等.一種面向服務的動態協同架構及其支撐平臺[J].計算機學報, 2005, 28(4): 467477.
[30]LEDOUX T. OpenCorba:a reflective open broker[C]//Proc of the 2nd International Conference on Reflection. Heidelberg:SpringerVerlag, 1999: 197214.
[31]黃罡, 王千祥, 梅宏,等.基于軟件體系結構的反射式中間件研究[J].軟件學報, 2003, 14(11): 18191826.
[32]李長云, 李瑩, 吳健, 等.一個面向服務的支持動態演化的軟件模型[J].計算機學報, 2006, 29(7): 10201028.