計算機應用技術碩士學位畢業(yè)論文網(wǎng)格環(huán)境下的異構動態(tài)實時系統(tǒng)服務質量的面向方面建模_第1頁
計算機應用技術碩士學位畢業(yè)論文網(wǎng)格環(huán)境下的異構動態(tài)實時系統(tǒng)服務質量的面向方面建模_第2頁
計算機應用技術碩士學位畢業(yè)論文網(wǎng)格環(huán)境下的異構動態(tài)實時系統(tǒng)服務質量的面向方面建模_第3頁
計算機應用技術碩士學位畢業(yè)論文網(wǎng)格環(huán)境下的異構動態(tài)實時系統(tǒng)服務質量的面向方面建模_第4頁
計算機應用技術碩士學位畢業(yè)論文網(wǎng)格環(huán)境下的異構動態(tài)實時系統(tǒng)服務質量的面向方面建模_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘摘 要要 復雜動態(tài)分布式實時系統(tǒng)中的服務質量qos的描述、控制、管理、協(xié)商及保 證是一項非常復雜和具有挑戰(zhàn)性的工作,服務質量qos直接關系到系統(tǒng)的性能。 但是qos的研究仍缺乏完整、清晰的技術體系,沒有一種qos解決方案成功地滿 足了復雜動態(tài)分布式實時系統(tǒng)環(huán)境中的所有服務質量需求。 由于復雜動態(tài)分布式實時系統(tǒng)具有的異構性、分布性、動態(tài)性和自治性, 對分布式系統(tǒng)的建模和實現(xiàn)中經(jīng)常會出現(xiàn)同樣的問題。如果不考慮局部故障、 帶寬的動態(tài)變化、安全要素等等,面向對象是一種很合適的抽象。但是當處理 分布式系統(tǒng)中出現(xiàn)的方面時,面向對象的設計很明顯地失去了它的優(yōu)勢。我們 對服務質量(qos)的處理提出了一種將

2、各分散服務中的方面融合起來的機制, 可以把qos作為分布式程序中的一個方面來進行處理。 本文通過對統(tǒng)一建模語言uml的擴展,對分布式系統(tǒng)的qos建立模型。首 先對qos建立框架元模型,再建立qos的剖面圖,將uml擴展成支持面向方面 的qos建模語言qml,并通過簡單實例來分析這一建模語言的應用,最后,通 過一個分布式系統(tǒng)中qos的面向方面應用,說明了如何利用基于uml的面向方 面編程(aop)技術來建模實時系統(tǒng)。 我們通過結合傳統(tǒng)的網(wǎng)格qos結構模型,把qos關注從系統(tǒng)中抽象為一個獨 立于系統(tǒng)的qos方面,從結構建模、行為建模、方面織入以及代碼產生幾個方 面實現(xiàn)面向方面的建模方法,更好的提供

3、網(wǎng)格環(huán)境下qos保證,分離了qos關注, 提高軟件的重用性。 關鍵詞:關鍵詞:網(wǎng)格 qos;統(tǒng)一建模語言;實時系統(tǒng);面向方面;uml 擴展 abstract in the complex dynamic distributional real time system,the description, the control, the management, the consultation and the guarantee of qos is a very complex and challenging work,quality of service(qos) is directly rel

4、ated to systems performance. but the there are still have a completely, workable technical system in qos research, without a solution successfully satified all the requirement in the complex dynamic distributional real time system environment.because of the isomerism, the distributivity, the dynamic

5、 and the autonomy in complex dynamic distributional real time system, there always has the similar problem in distributional systems modelling. without considering of the partial failure, the dynamic changing of bandwidth , the security essential factors and so on, object-oriented is a very good abs

6、tracts way. but when it faces time aspect appearing in the distributional system, the object-oriented design has lost its superiority very obviously. we introduce a mechanism called aspect-oriented to intergrate each dispersion service in aspect, this mechanism could take qos in the distributional s

7、oftware as an aspect. this article build the distributional systems qos model. through extensing the unification modelling language(uml), first, we establish a qos frame metamodel, then we establish a qos profile model, extense the uml to qos modelling language(qml) for supporting aspects, and analy

8、zes this modelling language through the simple example. finally, we explained how to establish real time systems model, using aop based on uml. we can abstract qos concern to a independent qos aspect from the whole system, through integrating with the traditional qos architecture. then we can implet

9、e the aspect-oriented modeling mathod, through the structure modelling, the behavior modelling, the aspect weaving, as well as the code producing, provide better qos guarantee in grid environment, separate the qos concern, enhances the softwares reusability. keywords: grid qos; unified modelling lan

10、guage; real-time system; aspect- oriented; uml extension 目目 錄錄 摘 要 .i abstract.ii 目 錄 .iv 第一章 緒論 . 1.1研究背景. 1.2本課題研究的現(xiàn)狀和意義. 1.3本文的工作和結構. 第二章 面向方面相關理論和應用 . 2.1面向方面技術的發(fā)展 . 2.2面向方面的基本概念 . 2.3aosd 建模 . 2.4aspectj 介紹. 第三章 基于 uml 的面向方面建模方法 .1 3.1 統(tǒng)一建模語言 uml.1 3.1.1uml 重要元素.1 3.1.2uml 的可擴展性.3 3.2 用 uml 進行面

11、向方面建模 .3 3.2.1 方面的描述.4 3.2.3 方面和方面之間關系的描述.5 3.3 面向對象編程 aop 元素 uml 表示.6 3.3.1 表示切入點.6 3.3.2 表示通知與引入.7 3.3.3 表示方面.8 第四章 實時系統(tǒng) qos 面向方面的建模 .9 4.1 網(wǎng)格服務質量 qos 基本概念和關鍵技術.9 4.1.1 網(wǎng)絡 qos 與網(wǎng)格 qos 的關系.10 4.1.2 網(wǎng)格 qos 的要求.10 4.1.3 網(wǎng)格 qos 控制模型.11 4.1.4 網(wǎng)格 qos 關鍵技術.13 4.2qos 的分層模型.15 4.2.1 網(wǎng)格 qos 參數(shù)劃分.15 4.2.2 網(wǎng)格

12、 qos 的層次結構模型.16 第五章基于 uml 的 qos 建模 .19 5.1 基本原理和概要模型.19 5.1.1 qos 建模語言構造器.19 5.1.2 qos 建模元素.20 5.2qos 框架元模型.21 5.2.1 一般 qos 框架.21 5.2.2 qos 屬性.22 5.2.3 qos 約束.24 5.2.4 qos 級別.24 5.2.5 基于 aspectj 的 qos 面向方面建模.26 5.3qos 剖面圖.27 5.3.1 qos 屬性子剖面圖.28 5.3.2 qos 約束子剖面圖.32 5.3.3 qos 行為子剖面圖.34 5.3.4 統(tǒng)一資源集成子剖面

13、圖.35 5.4 使用 qml 進行面向方面的擴展和應用.36 5.4.1 qml 的基本設計思路.36 5.4.2 qml 的實例應用.37 5.5 面向方面的 qos 實際應用分析.40 5.5.1qos 在簡單網(wǎng)絡收音機系統(tǒng)中的應用.40 5.5.2 傳統(tǒng)的 qos 特性描述模型.41 5.5.3 qos 方面的結構模型.42 5.5.4 結構關系.42 5.5.5 系統(tǒng)實時方面的分析.44 5.5.6 織入 qos 方面.46 結 論. 參 考 文 獻 .49 攻讀學位期間發(fā)表的論文.53 獨創(chuàng)性聲明 .54 致 謝.55 contents chinese abstract.i eng

14、lish abstract.ii chinese contents.v english contents .vii chapter1 introduction . 1.1research backgroud. 1.2the meaning and innovation of this article. 1.3the content and the chapter of this article. chapter2 introduction of aop. 2.1the devolopment of aop technology . 2.2the basic concept of aop. 2.

15、3aosd modeling . chapter3 aop modeling mathod based on uml.8 3.1 uml .8 3.1.1important element in uml.8 3.1.2the expansibility of uml.10 3.2aspect oriented modeling in uml .10 3.2.1 aspects description.11 3.2.3 description between aspects.12 3.3descripe aop element using uml .13 3.3.1 description of

16、 pointcut.13 3.3.2 description of advice and introduce.14 3.3.3aspects representation.15 chapter4 aspect-oriented modeling of realtime system qos.16 4.1basic concept and key technology of grid qos.16 4.1.1relationship between grid qos and web qos.17 4.1.2requirement of grid qos.17 4.1.3control model

17、 of grid qos.18 4.1.4key technology of grid qos.20 4.2submodel of qos.22 4.2.1grid qos characteristic.22 4.2.2architecture of grid qos.23 chapter5qos modeling based on uml.26 5.1basic principle and brief model.26 5.1.1 constructors of qos modeling languages.26 5.1.2 qos modeling elements.27 5.2 qos

18、framework metamodel.27 5.2.1 general qos framework.28 5.2.2 qos characteristic.29 5.2.3 qos constraint.31 5.2.4 qos level.31 5.3 uml qos profile.33 5.3.1qos characteristics subprofile.33 5.3.2 qos constraints subprofile.38 5.3.3 qos behavior subprofile.40 5.3.4 integration of general resource subpro

19、file.41 5.4ao extestion and application using qml.42 5.4.1 basic design thought in qml.42 5.4.2 example of qml.43 5.5example of aspect-oriented qos.46 5.5.1an application in corba event service.46 5.5.2traditional qos characteristic description model.46 5.5.3 architectrue model of qos aspect.48 5.5.

20、4 architectrue relationship.48 5.5.5weaving in qos aspect.49 conclusion. references.53 publications during masters study.57 promethean announcement.58 acknowledgement.59 第一章 緒論 隨著軟件行業(yè)的飛速發(fā)展,分布式實時系統(tǒng)的應用越來越廣泛,服務質量 保證作為一個網(wǎng)絡服務中最基本的問題也越來越重要。 在應用面向方面方法對分布式實時系統(tǒng)的建模和應用研究上已經(jīng)有了初步 的成果,但是應用面向方面方法對網(wǎng)格環(huán)境下的實時系統(tǒng)的服務質量進行

21、建模 和應用基本上是一片空白,在網(wǎng)格環(huán)境下的實時系統(tǒng),尤其是其服務質量的保 證,存在許多應用面向方面方法的空間,例如時間方面的問題,安全機制方面 的問題。 分布式實時系統(tǒng)的時間分析是非常復雜的,不同的分布式實時系統(tǒng)具有不 同的時間特性需求。它的時間方面包括確定的時間、不確定的時間和模糊時間 等。為了簡化多種時間混淆在一起形成的復雜性,我們可以把這些時間進行分 類,并分離出來形成子時間方面。根據(jù)面向方面的思想,不同的時間子方面還 可以利用不同的形式化語言來表達。在實現(xiàn)所有方面模型之后,又可以把它們 織入到系統(tǒng),完成它在系統(tǒng)特定的作用。目前,各種形式化語言都是通過擴展 實時性來建模實時系統(tǒng),還沒有

22、一種較完善的語言能夠表達所有的時間特性。 復雜動態(tài)分布式實時系統(tǒng)中的服務質量qos的描述、控制、管理、協(xié)商及保 證是一項非常復雜和具有挑戰(zhàn)性的工作,服務質量qos直接關系到系統(tǒng)的性能。 但是qos的研究仍缺乏完整、清晰的技術體系,沒有一種qos解決方案成功地滿足 了復雜動態(tài)分布式實時系統(tǒng)環(huán)境中的所有服務質量需求1。 本文通過面向方面的方法對實時系統(tǒng)的 qos 建立模型,首先使用面向方面 的方法對實時系統(tǒng)中服務質量層次結構的各個子層分別建立模型,綜合上面建 立的模型對實時系統(tǒng)中服務質量建立面向方面完整的模型,再通過擴展 omg idl(對象管理組織 接口定義語言)將建立的 qos 模型集成到一般

23、的面向對象 的中間件中去,檢驗建立的 qos 模型的能效。 1.1 研究背景 由于復雜動態(tài)分布式實時系統(tǒng) 具有的異構性、分布性、動態(tài)性和自治性,對分布 式系統(tǒng)的建模和實現(xiàn)中經(jīng)常會出現(xiàn)同樣的問題。如果不考慮局部故障、帶寬的動態(tài)變 化、安全要素等等,面向對象是一種很合適的抽象。但是當處理分布式系統(tǒng)中出現(xiàn)的 方面時,面向對象的設計很明顯地失去了它的優(yōu)勢。對服務質量(qos)的處理提出 了一種將各分散服務中的方面融合起來的機制。因此,可以把qos作為分布式程序中 的一個方面來進行處理。 1.2 本課題研究的現(xiàn)狀和意義 在應用面向方面方法對分布式實時系統(tǒng)的建模和應用研究上已經(jīng)有了初步的成 果,但是應用面

24、向方面方法對網(wǎng)格環(huán)境下的實時系統(tǒng)的服務質量進行建模和應用基 本上是一片空白,在網(wǎng)格環(huán)境下的實時系統(tǒng),尤其是其服務質量的保證,存在許多 應用面向方面方法的空間,例如時間方面的問題,安全機制方面的問題。 分布式實時系統(tǒng)的時間分析是非常復雜的,不同的分布式實時系統(tǒng)具有不同的 時間特性需求。它的時間方面包括確定的時間、不確定的時間和模糊時間等。為了 簡化多種時間混淆在一起形成的復雜性,我們可以把這些時間進行分類,并分離出 來形成子時間方面。根據(jù)面向方面的思想,不同的時間子方面還可以利用不同的形 式化語言來表達。在實現(xiàn)所有方面模型之后,又可以把它們織入到系統(tǒng),完成它在 系統(tǒng)特定的作用。目前,各種形式化語

25、言都是通過擴展實時性來建模實時系統(tǒng),還 沒有一種較完善的語言能夠表達所有的時間特性。 復雜動態(tài)分布式實時系統(tǒng) 中的服務質量qos的描述、控制、管理、 協(xié)商及保證是 一項非常復雜和具有挑戰(zhàn)性的工作,服務質量 qos直接關系到系統(tǒng)的性能。但是 qos 的研究仍缺乏完整、清晰的技術體系 ,沒有一種qos解決方案成功地滿足了 復雜動態(tài)分 布式實時系統(tǒng) 環(huán)境中的所有服務質量需求。 面向方面軟件設計 (aosd)方法是基于關注分離技術,能夠把系統(tǒng)劃分為不同的 方面,并且每個方面能夠單獨地設計和實現(xiàn)。 實時系統(tǒng)的面向方面建模就在于能把時間方面獨立處理,因此可以建立一個時 間方面模型來統(tǒng)一表達系統(tǒng)的時間特性。

26、并且,這個時間模型可以根據(jù)需要進一步 細化為多個子方面,例如確定時間方面、隨機時間方面和模糊時問方面等,每個時間 子方面根據(jù)各自的特點利用不同的形式化方法來表示。這些不同的時間子方面實現(xiàn)之 后能夠重新構造成一個時間方面,并管理著系統(tǒng)的實時性。 通過面向方面的方法對實時系統(tǒng)的 qos建立模型可以把整個系統(tǒng)中的 qos抽取出 來進行建模,再通過 擴展uml可以將qos擴展為滿足qos需求的qml,滿足所需求的 系統(tǒng)的qos保證建模。 1.3 本文的工作和結構 本文的基本思路:應用面向方面的方法對實時系統(tǒng)的 qos 進行建模。即首 先對網(wǎng)格服務質量 qos 進行層次分析,提出合理的層次結構,應用基于

27、 uml 的 面向方面建模方法對各個層次建模。再通過擴展 uml 建模方法的 qml 對 qos 建 模,最后通過實例分析面向方面技術在 qos 建型中的應用。 本文的主要工作:基于 uml2.0 建立各個層次 qos 的模型,擴展 uml 為 qml,通過面向方面的方法進行 qos 建模,通過應用實例,分析面向方面技術在 qos 建模中的應用。 本文的結構:第一章緒論,分析了本文的研究背景和課題研究現(xiàn)狀。第二 章介紹了本文關注的面向方面開發(fā)技術;第三章詳細介紹了基于 uml 的面向方 面建模方法;第四章討論了 qos 的基本概念和關鍵元素,并提出了 qos 的層次 模型。第五章是本文的主體部

28、分,應用擴展 uml 的方法建立 qos 分層模型,并 對前面層次模型進行整合,并通過應用實例分析面向方面技術在 qos 中的應用。 第二章 面向方面相關理論和應用 本章介紹面向方面技術的發(fā)展和特點,重點介紹面向方面編程(aop)技 術的特點。同時介紹面向方面的一些基本概念,為本文后面應用面向方面的方 法建立 qos 的模型提供理論基礎。 2.1 面向方面技術的發(fā)展 當前,面向對象編程(oop) 2和基于組件的軟件開發(fā)得到了廣泛的使用, oop 表明了它處理復雜問題的能力,但是 oop 無法模塊化橫切(crosscut)整個 系統(tǒng)的關注點(concerns),這些關注點稱為橫切關注點(cros

29、scutting concerns),如時間要求、安全、qos 監(jiān)測、日志等。這些非功能單元彌散在 整個系統(tǒng)中,導致了代碼分散(code scattering);并且與功能單元混雜在一 起,導致了代碼糾纏(code tangling),降低了程序的可理解性、可復用性和 可維護性。 解決問題需要分離關注點,將不同的關注點分離成模塊。面向方面編程 (aop)將關注點實現(xiàn)為分離的方面, 然而實現(xiàn)僅僅是軟件開發(fā)過程中的一個階 段。要在整個軟件開發(fā)過程應用面向方面技術, 就需要對 aop 中元素進行詳 述、可視化、構造和文檔化。 2.2 面向方面的基本概念 面向方面編程(aop)把系統(tǒng)不同的關注分離出來

30、并單獨設計,可以解決面向 對象編程不能簡單解決的復雜問題3 4。面向方面建模技術允許系統(tǒng)開發(fā)者在 系統(tǒng)設計時,從核心功能性需求中分離出不同的關注,例如實時性、安全性、 錯誤和異常處理、日志、同步控制、調度、分布式管理等,并且支持各個方 面的組合和綁定來實現(xiàn)系統(tǒng)的集成。從系統(tǒng)分離出來的各類關注可以與系統(tǒng)其 他部分同步開發(fā),進行單獨設計而不必考慮其他方面和系統(tǒng)的核心組件。實時 性是實時系統(tǒng)的最重要特性,可以利用 aop 技術把實時系統(tǒng)的實時性作為開發(fā) 系統(tǒng)的一個獨立的方面,并建立相應的時間模型來實現(xiàn)和管理時間方面,從而 方便實時系統(tǒng)的設計和開發(fā),確保系統(tǒng)的實時性。 下面我們將簡單介紹一下面向方面的

31、基本概念,包括連接點、橫切點、通 知、類型間聲明、方面等。 連接點(join point)是程序運行流程中的一點,可以看成是在程序運行的 過程中發(fā)生的一個事件(things that happen)。典型的連接點有方法的調用、 對象的初始化、域的讀寫、異常處理的執(zhí)行等。 橫切點( pointcut )收集程序運行流程中的連接點;換句話說,橫切點是某些連 接點的集合,這些連接點或是通過邏輯關系組合起來,或是通過通配、 正則表 達式等方式集中起來。橫切點代表了具有某個或某些特征的一類連接點,如 “某個類所有方法的調用” 、 “所有名字含set子串的方法的執(zhí)行” 、 “對某個 類所有字符串類型的域成

32、員的讀取”等。橫切點是面向方面理論的重要概念。 一般來說,連接點極少單個出現(xiàn),通常都是以橫切點的形式出現(xiàn)在方面中。 通知(advice)定義了當程序到達某些連接點時需要執(zhí)行的操作。通知通常有 三種:before 通知、after 通知和 around 通知,分別表示在連接點之前、之后和 代替連接點執(zhí)行的操作。通知的威力在于它可以訪問在連接點運行時的上下文 中的值,因此可以根據(jù)情況作出不同的反應。 類型間聲明(inter-typedeclaration)是指那些跨越類/構件和它們的層次結構的 聲明。這些聲明可能是橫跨多個類的成員聲明或者是類之間繼承關系的改變。 不像通知是動態(tài)操作,類型間聲明是編

33、譯時的靜態(tài)操作。典型的類型間聲明有 定義類的成員方法、定義類的域成員、定義類的繼承關系、定義異常等。 在類型間聲明中對類/構件的定義或層次結構的改變,只在相關的方面中有 效;在其他方面或類/構件中則不產生任何作用。也就是說,類型間聲明實際上并 沒有影響到原來的面向對象結構,即沒有破壞原來面向方面所定義的內容。 上述的橫切點、通知以及類型間聲明,組成了方面(aspect)的最核心部分(同 時也是方面有別于類的最明顯特征) ;核心部分再加上方面自身的域成員和方法 定義,構成了一個完整的方面。換句話說,方面是橫切點、通知和類型間聲明 等的聯(lián)合體。從結構上講,方面很像面向對象中的類,類是數(shù)據(jù)對象和數(shù)據(jù)

34、操 作的統(tǒng)一體。 編織是把特定連接點的實現(xiàn)代碼( advice )插入到相應的連接點代碼上。通 過編織工具,通知會“插入”到通知對應的連接點的前面、后面或連接點所在 的代碼中。編織技術主要有兩種,一種是靜態(tài)編織,即在系統(tǒng)編譯時把方面編 織到構件中;另一種時動態(tài)編織,即在系統(tǒng)運行時把方面部署到構件中。靜態(tài)編 織要求程序員在系統(tǒng)編譯前就確定方面的實現(xiàn)代碼,而動態(tài)編織則可以在系統(tǒng) 運行后自由地啟用和禁用方面。靜態(tài)編織對系統(tǒng)性能損耗較少,而動態(tài)編織對 系統(tǒng)性能損耗相對較多,但運用更靈活,而且系統(tǒng)性能的損耗可以通過并發(fā)處 理等方法來彌補。因此,動態(tài)編織是編織技術的主流趨勢。 2.3 aosd 建模 ao

35、sd 即面向方面軟件的開發(fā)方法5為我們提供了一個分別獨立分析和設計 系統(tǒng)的各個核心關注點和橫切關注點(系統(tǒng)級關注點) 的機制,并能夠在軟件開 發(fā)后期實現(xiàn)橫切關注點與相關核心關注點的集成,甚至能夠將一個橫切關注點 實現(xiàn)代碼織入(weave)到軟件系統(tǒng)中,而無須改動原系統(tǒng)的各個模塊。 這種方法解決了面向對象方法遇到的難題 aosd 方法是面向對象方法的演 繹與發(fā)展,該方法引入了“方面”( aspect)來描述橫切關注點,并給出了將方 面與原系統(tǒng)相合成的技術。aosd 方法根據(jù)系統(tǒng)分析的結果,分離出系統(tǒng)關注 點與一般關注點,對于一般關注點可以使用面向對象(oo) 方法實現(xiàn),而對于用 oo 方法難以

36、清晰的封裝并模塊化實現(xiàn)的系統(tǒng)關注點,可以用面向方面( ao) 方法封裝為獨立的模塊。方面的實現(xiàn)與傳統(tǒng)的開發(fā)方法中模塊的實現(xiàn)不同,方 面之間是一種弱藕合的關系,各 aspect 的開發(fā)以及各核心關注點的開發(fā)彼此獨 立,只有在系統(tǒng)組裝時刻,才將各方面和主代碼編排、融合在一起。這使得軟 件開發(fā)過程中不需考慮各個模塊之間錯綜復雜的關系,在很大程度上降低了軟 件開發(fā)的難度;同時在軟件的維護階段,要將一個橫跨系統(tǒng)多個模塊的新特性 加入到系統(tǒng)中去,無須分別修改各個模塊,只須將此橫切特性設計成一個方面, 再和相關模塊編譯一次即可,這可以極大地降低軟件維護的難度和復雜度。 aosd 方法是構建在 oosd 方法

37、的基礎上的,是對 oosd 方法的一種繼承 與發(fā)展, aosd 方法可以更好地描述 oosd 方法不擅長描述的橫跨多個模塊的 需求或特性,很好地將關注點分離,從而可以模塊化地實現(xiàn)橫切特性,有效地 解決復雜系統(tǒng)的橫切關注點分離、設計和實現(xiàn)的問題,實現(xiàn)各構件或模塊的弱 藕合性。在系統(tǒng)功能設計時,不需考慮散雜在對象中的關注點,降低了開發(fā)和 維護難度的同時也提高了代碼的復用粒度。 2.4 aspectj 介紹 在所有aop的java實現(xiàn)中,開放源碼產品aspectj最受矚目。aspectj對java 語言進行了擴展,通過引入方面aspect等基本元素,使其成為面向方面編程語 言。 aspectj語言是

38、java語言的超集,所有java程序均可視為aspect程序。讀者 可從/aspectj免費下載asepctj。aspectj包括語言規(guī)范和 語言實現(xiàn)兩部分。語言規(guī)范規(guī)定如何書寫程序。其中,未擴展的java被用于實 現(xiàn)核心關注點和橫切關注點的基本邏輯部分(橫切模塊);java的擴展用于實現(xiàn) 關注點的橫切,即定義編排規(guī)則。語言實現(xiàn)部分提供編排器。aspectj的編譯器 集成了java編譯器,因而大多數(shù)情況下被稱為aspectj編譯器。 橫切(crosscutting):在aspectj中,對編排規(guī)則的實現(xiàn)稱為橫切。 aspectj提供了兩類橫切模型:第一類是在某

39、些明確定義的程序執(zhí)行點上,定義 附加操作,及運行條件。這類橫切稱為動態(tài)橫切(dynamic crosscutting)。動 態(tài)橫切非常類似于corba中的攔截器(interceptor),其功能是在執(zhí)行程序中的 特定點攔截并獲得控制權。第二類是對已有的java對象類型,改變其構造,例 如增加類的成員數(shù)據(jù)。這類橫切稱為靜態(tài)橫切(static crosscutting)。 動態(tài)橫切(dynamics crosscutting):相對于靜態(tài)橫切,動態(tài)橫切在軟件項 目中使用更為廣泛。與aspectj動態(tài)橫切機制有關的基本概念,有連接點(join point)、切點(pointcut)、通知(advic

40、e)等。 連接點(join point):連接點, 即程序流程中某個可以被識別的點或位置。 如對一個方法的調用,或是對一個成員的賦值。連接點是一個抽象概念,而非 aspectj的語言元素。引入這一概念,可方便地表達橫切操作。在一個程序流程 中存在多種各不相同的連接點。 切點(pointcut):切點是連接點的集合,它定義了程序流程中的若干連接 點。 切點聲明可出現(xiàn)在方面(aspect)、類(class)、界面(interface)定義中,與成 員數(shù)據(jù)、成員方法一樣,切點也具有訪問屬性(public、protected、private等)。 在aspectj的語言規(guī)范中, 切點可以用署名或匿名形

41、式聲明。其作用與類的署 名或匿名形式相同。署名形式是為了多次引用,而匿名形式是為了方便一次性 的使用,例如在通知(advice)聲明中,一次性使用。 通知(advice):通知是aspectj的語言結構,與java方法(method)類似。它 表述在切點所選定的連接點處要執(zhí)行的橫切行為。通知的一般表述為:通知類 型:切點執(zhí)行邏輯。其中切點可以是署名切點名或匿名切點?;ɡㄌ杻鹊?執(zhí)行邏輯將在連接點本身、之前或之后被運行。aspectj根據(jù)執(zhí)行邏輯運行的位 置,提供了三種通知類型: 1before。此類通知規(guī)定,在連接點之前運行執(zhí)行邏輯。 例如,通知before():mypointcut()表示在

42、程序執(zhí)行署名切點 mypointcut()選定的連接點之前,完成內的執(zhí)行邏輯。 2after。此類通知規(guī)定,在連接點處程序執(zhí)行返回之后,完成執(zhí)行邏輯。 返回可以是正常的,也可能拋出例外(throw exception)。aspectj提供三種 after類型的通知,分別表示三種不同的返回方式:正常返回、拋出例外、正常 返回或拋出例外。a 正常返回: 例如after()returning:mypointcut() 。b 拋出例外: 例如after()throwing : mypointcut()。c 正常返回或拋出例外: 例如after():mypointcut()。 3around。此類通知規(guī)

43、定,其執(zhí)行邏輯將取代連接點處的執(zhí)行邏輯。要注 意的是,如果在通知的執(zhí)行邏輯中需要完成連接點處的執(zhí)行邏輯,程序員必須 在其中使用特殊關鍵詞-process(),而不能作簡單的調用。如果在通知的的執(zhí) 行邏輯中對其連接點處的執(zhí)行邏輯作任何直接或間接調用,就會再次觸發(fā)該通 知而引發(fā)死循環(huán)(infinity loop)。 第三章 基于 uml 的面向方面建模方法 統(tǒng)一建模語言6( unified modeling language ,uml)是一種對軟件系統(tǒng)制 品(artifact) 進行詳述、可視化、構造和文檔化的圖形語言。uml 廣泛用于面 向對象系統(tǒng)的建模。uml 由對象管理組織(object m

44、anagement group , omg)管 理。omg 于 1997 年發(fā)布了 uml1.1,現(xiàn)在發(fā)展到 uml2.0。 uml 是可擴展的,這樣可以將其用于不同領域的建模。對面向方面建模的 研究主要集中在如何擴展 uml 使其支持面向方面領域。 3.1 統(tǒng)一建模語言 uml 面向對象的分析與設計(ooa因此,方面與類之間的作用是單向的,也就是說, 只是方面里含有類的描述,而類里沒有方面的描述。 方面與類的關系有兩種:一種是繼承關系方面可以繼承類和實現(xiàn)接口(但類 不能繼承方面);另一種是編織關系方面在指定橫切點上執(zhí)行相應的通知,對 面向對象中的類產生編織作用。對于繼承關系,子方面繼承了父類

45、的域成員和 方法,或者子方面實現(xiàn)了父接口。同時,子方面還可以定義自己的域成員、方 法、橫切點、通知等。但是,反過來不成立類不能繼承方面。方面只支持單 繼承,即一個方面最多只能有一個父類。但一個類可以被多個方面繼承 ( 即方 面繼承類是多對一的關系)。一個方面可以實現(xiàn)多個接口,一個接口也可以被多 個方面實現(xiàn)(即方面實現(xiàn)接口是多對多的關系)。 對于編織關系,實際上就是面向方面理論最基本最核心的部分。方面應用 于某個類,其實就是方面在橫切點(橫切于各個模塊中的關注點) 上對類進行附 加處理 (通知)。方面與類的編織關系是多對多的關系,即一個方面可以與多個 類發(fā)生編織關系,同時一個類也可以與多個方面發(fā)

46、生編織關系(即方面編織類是 多對多的關系)。 圖 3-1 描述了方面繼承類的 uml 表示法。圖 3-2 描述了方面實現(xiàn)接口 的 uml 表示法。圖 3-3 描述了方面編織類的 uml 表示法。 圖 3-1 方面繼承類的 uml 表示法 figure3-1uml model of aspect class 圖 3-2 方面實現(xiàn)接口的 uml 表示法 figure3-2uml model of aspect application interface 圖 3-3 方面編織類的 uml 表示法 figure3-3uml model of aspect weaving class 3.2.3方面和方

47、面之間關系的描述 跟類與類之間產生作用相似,方面與方面之間也產生作用。方面與方面之 間的作用關系有兩種:一種是縱向的層次結構關系 繼承關系,即方面可以繼 承方面(子方面繼承了父方面的域成員、方法和橫切點等) ;另一種是橫向的疊 加關系多個方面有序地同時編織于某個類。 縱向的繼承關系類似于面向對象中類的繼承。子方面繼承了父方面的域成 員、方法、橫切點、通知等,同時也可以具有自己獨特的域成員、方法、橫切 點和通知等元素。一個方面最多只能有一個父方面,但一個方面卻能被多個子 方面繼承,即方面繼承方面是多對一的關系。對于橫向的疊加關系,多個方面 同時編織于某個類,當方面應用的次序不同時可能會產生不同的

48、效果。例如, 方面 a、b、c 同時編織于某類 j,先應用 a 后應 b 再應 c 產生的效果就可能 同先應用 b 后應用 c 再應用 a 不同。當應用于某個類的多個方面按一定的先后 次序進行編織時,它們就構成了疊加關系。疊加關系是一種有序的線性關系。 圖 3-4 描述了方面繼承方面的 uml 表示。 圖 3-4 方面繼承方面的 uml 表示法 figure3-4uml model of aspect 3.3 面向對象編程 aop 元素 uml 表示 3.3.1表示切入點 aspect c+有兩種切入點:名字切入點和代碼切入點。名字切入點是類型、 屬性、函數(shù)、變量和名字空間的名字,其中類和名字

49、空間可用于引入,即結構 橫切。代碼切入點調用 aspect c+定義的函數(shù)且以名字切入點為參數(shù)來形成, 與 aspect )中的切入點一樣,用于行為橫切。而在 aspect 中,類型間聲明并沒 有用到名字切入點概念,雖然這時用到的也是類型名13。 在 uml 建模時,將切入點作為特征的子類,因為在 uml 規(guī)范中,特征 的語義是作為類元的一部分,本文將方面建模為類元的子類,這樣切入點就是 方面的一部分。切入點的語義是組件里方面可以干涉的一系列點,它包括了 aspect c+中的名字切入點和代碼切入點,也包括了 aspect 中的切入點和類型 間聲明時的類型名,即它用于所有結構橫切和行為橫切中。

50、 切入點的組成部分為:名稱;參數(shù)列表;可見性;多態(tài)性;切入點表達式。其中 切入點表達式用標記值 p c e ( pointcut expression ) 表示。切入點用構造型 +pointcut 表示,其語法為:+pointcut ;可見性 名字(參數(shù)列表) pee =切入點 表達式。用斜體來表明這個切入點是抽象的。切入點圖符顯示了一個切入點由 多個子集構成。這主要是為了清晰描述多個方面在相同的連接點橫切組件。 3.3.2表示通知與引入 在 aspect c+中,同一個 a d v i c e 關鍵字既用于結構橫切 ( 即引入)也用 于行為橫切,而在 aspect 中通知的概念僅與行為橫切相

51、關,結構橫切用了類型 間聲明。 在用 uml 建模時,將它們相同對待,因為它們都表示橫切了組件,統(tǒng)一 用通知表示。由于通知是方面的一部分,所以將通知作為特征的子類。并用構 造型 表示。在 aspect 或 aspect c+中,沒有給通知命名,但在順 序圖等行為圖中,消息傳遞要用到消息名,所以在用建模行為橫切 時,給通知加了一個偽名。用標記值 pce 表示通知要橫切的點.通知的語法為: 可見性通知規(guī)范集合pce=切入點表達式。其中通知規(guī)范集合 為: ( 1 ) 對于行為橫切:“偽名通知行為說明” 。其中通知行為說明為 before,after,after returning ,after th

52、rowing , around。 ( 2 ) 對于引入成員變量:可見性名字多重性:類型=初始值 。 與 uml 中屬性的定義一樣。 ( 3 ) 對于引入操作:可見性名字 ( 參數(shù)): 返回值 。與 uml 中操 作的定義一樣。 ( 4 ) 對于引入要繼承的基類:可見性) extends:基類名。 ( 5 ) 對于引入要實現(xiàn)的接口:implements:接口名。 ( 6 ) 對于說明在切入點各個方面的橫切順序: precedence:方面列表。對于 成員引入,如果寫在受影響的組件里,則在引入成員的下面用標記 introducedby +方面名 說明這個成員 是由指定方面引入的。對于引入的基類 和

53、接口.如果要在類系上顯示時,要在繼承和實現(xiàn)關系上用標記值 introducedby =方面名 說明這個關系是由指定方面引入的。 3.3.3表示方面 aspect 與 aspectc+ 中方面的語義基本相同,不同點來自于 java 于 c+ 之間固有的不同。 在用 uml 建模時,統(tǒng)一用方面表示,并且它是類的子類,因為方面與類 的結構很相似,它封裝了類里所有的成員,還模塊化了橫切關注點。方面用構 造型表示,圖符采用類的圖符。方面除擁有類的元素、切入點和通 知外,還包括: boolean 型的 privileged 標記值; instantiation 標記值,其值為 aspect 中方面定義時用

54、到的 perclasuse 值,默認為 issingletono。由于在同一個 連接點處可以有多個通知橫切,所以需要說明通知間的順序關系。aspect 在方 面層次上用“declareprecedenc : typepatternlist”來說明,而 aspect c+在 切 入 點 層 次 上 用 advice pointcut-expression :order ( typepatternlist )”來說 明。在用 uml 建模時,如在圖中表示這種關系,用一個新的依賴來 說明優(yōu)先關系,它可用于方面和切入點。 第四章 實時系統(tǒng) qos 面向方面的建模 建模是人類對客觀世界和抽象事物之間聯(lián)系

55、的具體化描述,是對一個物理 系統(tǒng)的抽象反映。根據(jù)用戶、開發(fā)者、測試員、記錄員等不同角色所關心的角 度或目的的不同,同一個物理系統(tǒng)也可以被創(chuàng)建為具有不同類型或不同表現(xiàn)形 式的模型。 實時系統(tǒng)的面向方面建模就在于能把時間方面獨立處理,因此可以建立一 個時間方面模型來統(tǒng)一表達系統(tǒng)的時間特性。并且,這個時間模型可以根據(jù)需 要進一步細化為多個子方面,例如確定時間方面、 隨機時間方面和模糊時問方 面等,每個時間子方面根據(jù)各自的特點利用不同的形式化方法來表示。這些不 同的時間子方面實現(xiàn)之后能夠重新構造成一個時間方面,并管理著系統(tǒng)的實時 性。 分布式實時系統(tǒng)的時間分析是非常復雜的,不同的分布式實時系統(tǒng)具有不

56、同的時間特性需求。它的時間方面包括確定的時間、 不確定的時間和模糊時間 等。為了簡化多種時間混淆在一起形成的復雜性,我們可以把這些時間進行分 類,并分離出來形成子時間方面。根據(jù)面向方面的思想,不同的時間子方面還 可以利用不同的形式化語言來表達。在實現(xiàn)所有方面模型之后,又可以把它們 織入到系統(tǒng),完成它在系統(tǒng)特定的作用。目前,各種形式化語言都是通過擴展 實時性來建模實時系統(tǒng),還沒有一種較完善的語言能夠表達所有的時間特性。 4.1 網(wǎng)格服務質量qos 基本概念和關鍵技術 隨著計算機科學的發(fā)展,網(wǎng)格技術已經(jīng)成為當前國內外研究的一個熱點和 前沿領域?;诰W(wǎng)格技術建立一個能夠實現(xiàn)區(qū)域或全球合作的虛擬科研和

57、實驗 環(huán)境,從而支持以大規(guī)模計算和數(shù)據(jù)處理為特征的科學活動,改變和提高目前 科學研究工作的方式與效率。 提供非凡的服務質量是判斷網(wǎng)格的三個準則之一,但是實際的網(wǎng)格應用都 需要使用異構的、 類型多樣的資源,特別是要對這些資源共享使用,各個任務 間更多的是需要協(xié)作,使得資源的調度分配、任務執(zhí)行變得復雜,而目前的網(wǎng) 絡基礎設施又都是建立在“盡力服務”的基礎之上,因而服務質量得不到保障, 在多個服務協(xié)作使用資源時,性能和效率也容易造成降級,而且用戶的需求也 具有多樣性。解決這些問題,需要引入 qos 機制。網(wǎng)格 qos 問題的焦點在于網(wǎng) 格能夠提供端到端 qos 的程度,不只是提供網(wǎng)絡 qos,而目前

58、的大多數(shù)網(wǎng)格實 現(xiàn)都只能提供部分的 qos 功能。 4.1.1網(wǎng)絡qos與網(wǎng)格qos的關系 服務質量( qos)在計算機網(wǎng)絡中是一個流行的研究領域,它關注的是如何提 供更可靠的網(wǎng)絡傳輸服務,滿足應用的傳輸延時、延時抖動、分組丟失等質量保證。 網(wǎng)格是運行在互聯(lián)網(wǎng)之上的,單純的網(wǎng)絡 qos機制不能夠保證網(wǎng)格應用的 qos。 網(wǎng)格中除了網(wǎng)絡資源外,還有計算、存儲等其它類型的資源。網(wǎng)格應用需要所有這 些網(wǎng)格資源,包括網(wǎng)絡資源在內,都能按需地向網(wǎng)格應用提供相應的qos保證。所有 這些資源都為e2e(end to end,端到端) qos做出了貢獻,但是e2e資源qos并不 是所涉及的這些資源簡單、線性的

59、組合,而需要高層對它們進行協(xié)調。 總之,為了滿足網(wǎng)格應用的端到端 qos保證,除了網(wǎng)絡層次的 qos保證外,還 需在網(wǎng)格系統(tǒng)結構上考慮相應的 qos保證措施。 4.1.2網(wǎng)格qos的要求 為了保證網(wǎng)格應用的端到端 qos,需要網(wǎng)格qos機制能夠滿足以下要求: i.以服務為中心的網(wǎng)格特點 網(wǎng)格體系結構已經(jīng)由以協(xié)議為中心的五層沙漏結構發(fā)展為以服務為中心的ogsa 結構。以服務為中心的網(wǎng)格是主流趨勢,在這類網(wǎng)格中,所有的一切都是服務。網(wǎng) 格用戶使用網(wǎng)格發(fā)現(xiàn)和使用服務,這個特性要求網(wǎng)格 qos的保證機制也以服務的形 式提供給用戶。 ii.不同特征混合流的支持 遠程可視化、科學數(shù)據(jù)分析、科學儀器在線控制

60、和遠程沉浸等領域中的網(wǎng)格應 用經(jīng)常混合著大量不同特征的多個流,這些特征包括帶寬、時延、抖動、可靠性等。 它們要求網(wǎng)格qos機制能支持這些流,并允許具有不同特征流的共存,同時需要 網(wǎng)絡qos技術為應用提供可靠的網(wǎng)絡數(shù)據(jù)傳輸服務的保證。 iii.統(tǒng)一的資源預約和分配 高性能應用對一些特別的資源需求很大,如高帶寬虛擬通道、科學儀器和超級 計算機等。需要新的概念和構造,為屬于不同管理域的多種異構資源實現(xiàn)統(tǒng)一形式 的提前和立即預約,以及多資源聯(lián)合分配,以保證網(wǎng)格應用使用資源和提供服務時 的性能。 iv.安全性 網(wǎng)格qos機制應當是安全的,可使用網(wǎng)格中的安全機制,對 qos服務的訪問進 行驗證、鑒別和授權

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論