计算机应用技术硕士学位毕业论文网格环境下的异构动态实时系统服务质量的面向方面建模

上传人:1888****888 文档编号:37229065 上传时间:2021-11-02 格式:DOC 页数:75 大小:2.35MB
收藏 版权申诉 举报 下载
计算机应用技术硕士学位毕业论文网格环境下的异构动态实时系统服务质量的面向方面建模_第1页
第1页 / 共75页
计算机应用技术硕士学位毕业论文网格环境下的异构动态实时系统服务质量的面向方面建模_第2页
第2页 / 共75页
计算机应用技术硕士学位毕业论文网格环境下的异构动态实时系统服务质量的面向方面建模_第3页
第3页 / 共75页
资源描述:

《计算机应用技术硕士学位毕业论文网格环境下的异构动态实时系统服务质量的面向方面建模》由会员分享,可在线阅读,更多相关《计算机应用技术硕士学位毕业论文网格环境下的异构动态实时系统服务质量的面向方面建模(75页珍藏版)》请在装配图网上搜索。

1、摘摘 要要复杂动态分布式实时系统中的服务质量QoS的描述、控制、管理、协商及保证是一项非常复杂和具有挑战性的工作,服务质量QoS直接关系到系统的性能。但是QoS的研究仍缺乏完整、清晰的技术体系,没有一种QoS解决方案成功地满足了复杂动态分布式实时系统环境中的所有服务质量需求。由于复杂动态分布式实时系统具有的异构性、分布性、动态性和自治性,对分布式系统的建模和实现中经常会出现同样的问题。如果不考虑局部故障、带宽的动态变化、安全要素等等,面向对象是一种很合适的抽象。但是当处理分布式系统中出现的方面时,面向对象的设计很明显地失去了它的优势。我们对服务质量(QoS)的处理提出了一种将各分散服务中的方面

2、融合起来的机制,可以把QoS作为分布式程序中的一个方面来进行处理。本文通过对统一建模语言UML的扩展,对分布式系统的QoS建立模型。首先对QoS建立框架元模型,再建立QoS的剖面图,将UML扩展成支持面向方面的QoS建模语言QML,并通过简单实例来分析这一建模语言的应用,最后,通过一个分布式系统中QoS的面向方面应用,说明了如何利用基于UML的面向方面编程(AOP)技术来建模实时系统。我们通过结合传统的网格QoS结构模型,把QoS关注从系统中抽象为一个独立于系统的QoS方面,从结构建模、行为建模、方面织入以及代码产生几个方面实现面向方面的建模方法,更好的提供网格环境下QoS保证,分离了QoS关

3、注,提高软件的重用性。关键词:关键词:网格 QoS;统一建模语言;实时系统;面向方面;UML 扩展广东工业大学工学硕士学位论文IIABSTRACTIn 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 related t

4、o 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 and t

5、he 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 abstracts

6、 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 softwar

7、e 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 analyzes th

8、is modelling language ABSTRACT IIIthrough 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

9、implete 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 Modellin

10、g Language; Real-Time System; Aspect-Oriented; UML extension 广东工业大学工学硕士学位论文IV目目 录录摘 要 .IABSTRACT.II目 录 .IV第一章 绪论 .1.1研究背景.1.2本课题研究的现状和意义.1.3本文的工作和结构.第二章 面向方面相关理论和应用 .2.1面向方面技术的发展 .2.2面向方面的基本概念 .2.3AOSD 建模 .2.4AspectJ 介绍.第三章 基于 UML 的面向方面建模方法 .13.1 统一建模语言 UML.13.1.1UML 重要元素.13.1.2UML 的可扩展性.33.2 用 UML

11、进行面向方面建模 .33.2.1 方面的描述.43.2.3 方面和方面之间关系的描述.53.3 面向对象编程 AOP 元素 UML 表示.63.3.1 表示切入点.63.3.2 表示通知与引入.73.3.3 表示方面.8第四章 实时系统 QoS 面向方面的建模 .94.1 网格服务质量 QoS 基本概念和关键技术.9CONTENTS V4.1.1 网络 QoS 与网格 QoS 的关系.104.1.2 网格 QoS 的要求.104.1.3 网格 QoS 控制模型.114.1.4 网格 QoS 关键技术.134.2QoS 的分层模型.154.2.1 网格 QoS 参数划分.154.2.2 网格 Q

12、oS 的层次结构模型.16第五章基于 UML 的 QoS 建模 .195.1 基本原理和概要模型.195.1.1 QoS 建模语言构造器.195.1.2 QoS 建模元素.205.2QoS 框架元模型.215.2.1 一般 QoS 框架.215.2.2 QoS 属性.225.2.3 QoS 约束.245.2.4 QoS 级别.245.2.5 基于 aspectJ 的 QoS 面向方面建模.265.3QoS 剖面图.275.3.1 QoS 属性子剖面图.285.3.2 QoS 约束子剖面图.325.3.3 QoS 行为子剖面图.345.3.4 统一资源集成子剖面图.355.4 使用 QML 进行

13、面向方面的扩展和应用.365.4.1 QML 的基本设计思路.365.4.2 QML 的实例应用.375.5 面向方面的 QoS 实际应用分析.405.5.1QoS 在简单网络收音机系统中的应用.405.5.2 传统的 QoS 特性描述模型.415.5.3 QoS 方面的结构模型.425.5.4 结构关系.42广东工业大学工学硕士学位论文VI5.5.5 系统实时方面的分析.445.5.6 织入 QoS 方面.46结 论.参 考 文 献 .49攻读学位期间发表的论文.53独创性声明 .54致 谢.55CONTENTS VIICONTENTS CHINESE ABSTRACT.IENGLISH A

14、BSTRACT.IICHINESE CONTENTS.VENGLISH CONTENTS .VIIChapter1 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.3AOSD Modeling .

15、Chapter3 AOP Modeling Mathod Based on UML.83.1 UML .83.1.1Important Element in UML.83.1.2The Expansibility of UML.103.2Aspect Oriented Modeling in UML .103.2.1 Aspects Description.113.2.3 Description between Aspects.123.3Descripe AOP Element Using UML .133.3.1 Description of PointCut.133.3.2 Descrip

16、tion of Advice and Introduce.143.3.3Aspects Representation.15Chapter4 Aspect-Oriented Modeling of RealTime System QoS.164.1Basic Concept and Key Technology of Grid QoS.164.1.1Relationship Between Grid QoS and Web QoS.17广东工业大学工学硕士学位论文VIII4.1.2Requirement of Grid QoS.174.1.3Control Model of Grid QoS.1

17、84.1.4Key Technology of Grid QoS.204.2Submodel of QoS.224.2.1Grid QoS Characteristic.224.2.2Architecture of Grid QoS.23Chapter5Qos Modeling based on UML.265.1Basic Principle and Brief Model.265.1.1 Constructors of QoS Modeling Languages.265.1.2 QoS Modeling Elements.275.2 QoS Framework Metamodel.275

18、.2.1 General QoS Framework.285.2.2 QoS Characteristic.295.2.3 QoS Constraint.315.2.4 QoS Level.315.3 UML QoS Profile.335.3.1QoS Characteristics Subprofile.335.3.2 QoS Constraints Subprofile.385.3.3 QoS Behavior Subprofile.405.3.4 Integration of General Resource SubProfile.415.4AO Extestion and Appli

19、cation Using QML.425.4.1 Basic Design Thought in QML.425.4.2 Example of QML.435.5Example of Aspect-Oriented QoS.465.5.1An Application in CORBA Event Service.465.5.2Traditional QoS Characteristic Description Model.465.5.3 Architectrue Model of QoS Aspect.485.5.4 Architectrue Relationship.485.5.5Weavi

20、ng in QoS Aspect.49CONTENTS IXConclusion.References.53Publications during Masters Study.57Promethean Announcement.58Acknowledgement.59 第一章 绪论第一章 绪论随着软件行业的飞速发展,分布式实时系统的应用越来越广泛,服务质量保证作为一个网络服务中最基本的问题也越来越重要。在应用面向方面方法对分布式实时系统的建模和应用研究上已经有了初步的成果,但是应用面向方面方法对网格环境下的实时系统的服务质量进行建模和应用基本上是一片空白,在网格环境下的实时系统,尤其是其服务质

21、量的保证,存在许多应用面向方面方法的空间,例如时间方面的问题,安全机制方面的问题。分布式实时系统的时间分析是非常复杂的,不同的分布式实时系统具有不同的时间特性需求。它的时间方面包括确定的时间、不确定的时间和模糊时间等。为了简化多种时间混淆在一起形成的复杂性,我们可以把这些时间进行分类,并分离出来形成子时间方面。根据面向方面的思想,不同的时间子方面还可以利用不同的形式化语言来表达。在实现所有方面模型之后,又可以把它们织入到系统,完成它在系统特定的作用。目前,各种形式化语言都是通过扩展实时性来建模实时系统,还没有一种较完善的语言能够表达所有的时间特性。复杂动态分布式实时系统中的服务质量QoS的描述

22、、控制、管理、协商及保证是一项非常复杂和具有挑战性的工作,服务质量QoS直接关系到系统的性能。但是QoS的研究仍缺乏完整、清晰的技术体系,没有一种QoS解决方案成功地满足了复杂动态分布式实时系统环境中的所有服务质量需求1。本文通过面向方面的方法对实时系统的 QoS 建立模型,首先使用面向方面的方法对实时系统中服务质量层次结构的各个子层分别建立模型,综合上面建立的模型对实时系统中服务质量建立面向方面完整的模型,再通过扩展 OMG IDL(对象管理组织 接口定义语言)将建立的 QoS 模型集成到一般的面向对象的中间件中去,检验建立的 QoS 模型的能效。广东工业大学工学硕士学位论文1.1 研究背景

23、由于复杂动态分布式实时系统 具有的异构性、分布性、动态性和自治性,对分布式系统的建模和实现中经常会出现同样的问题。如果不考虑局部故障、带宽的动态变化、安全要素等等,面向对象是一种很合适的抽象。但是当处理分布式系统中出现的方面时,面向对象的设计很明显地失去了它的优势。对服务质量(QoS)的处理提出了一种将各分散服务中的方面融合起来的机制。因此,可以把QoS作为分布式程序中的一个方面来进行处理。1.2 本课题研究的现状和意义在应用面向方面方法对分布式实时系统的建模和应用研究上已经有了初步的成果,但是应用面向方面方法对网格环境下的实时系统的服务质量进行建模和应用基本上是一片空白,在网格环境下的实时系

24、统,尤其是其服务质量的保证,存在许多应用面向方面方法的空间,例如时间方面的问题,安全机制方面的问题。分布式实时系统的时间分析是非常复杂的,不同的分布式实时系统具有不同的时间特性需求。它的时间方面包括确定的时间、不确定的时间和模糊时间等。为了简化多种时间混淆在一起形成的复杂性,我们可以把这些时间进行分类,并分离出来形成子时间方面。根据面向方面的思想,不同的时间子方面还可以利用不同的形式化语言来表达。在实现所有方面模型之后,又可以把它们织入到系统,完成它在系统特定的作用。目前,各种形式化语言都是通过扩展实时性来建模实时系统,还没有一种较完善的语言能够表达所有的时间特性。复杂动态分布式实时系统 中的

25、服务质量QoS的描述、控制、管理、 协商及保证是一项非常复杂和具有挑战性的工作,服务质量 QoS直接关系到系统的性能。但是 QoS的研究仍缺乏完整、清晰的技术体系 ,没有一种QoS解决方案成功地满足了 复杂动态分布式实时系统 环境中的所有服务质量需求。面向方面软件设计 (AOSD)方法是基于关注分离技术,能够把系统划分为不同的方面,并且每个方面能够单独地设计和实现。实时系统的面向方面建模就在于能把时间方面独立处理,因此可以建立一个时第一章 绪论间方面模型来统一表达系统的时间特性。并且,这个时间模型可以根据需要进一步细化为多个子方面,例如确定时间方面、随机时间方面和模糊时问方面等,每个时间子方面

26、根据各自的特点利用不同的形式化方法来表示。这些不同的时间子方面实现之后能够重新构造成一个时间方面,并管理着系统的实时性。通过面向方面的方法对实时系统的 QoS建立模型可以把整个系统中的 QoS抽取出来进行建模,再通过 扩展UML可以将QoS扩展为满足QoS需求的QML,满足所需求的系统的QoS保证建模。1.3 本文的工作和结构本文的基本思路:应用面向方面的方法对实时系统的 QoS 进行建模。即首先对网格服务质量 QoS 进行层次分析,提出合理的层次结构,应用基于 UML 的面向方面建模方法对各个层次建模。再通过扩展 UML 建模方法的 QML 对 QoS 建模,最后通过实例分析面向方面技术在

27、QoS 建型中的应用。本文的主要工作:基于 UML2.0 建立各个层次 QoS 的模型,扩展 UML 为QML,通过面向方面的方法进行 QoS 建模,通过应用实例,分析面向方面技术在QoS 建模中的应用。本文的结构:第一章绪论,分析了本文的研究背景和课题研究现状。第二章介绍了本文关注的面向方面开发技术;第三章详细介绍了基于 UML 的面向方面建模方法;第四章讨论了 QoS 的基本概念和关键元素,并提出了 QoS 的层次模型。第五章是本文的主体部分,应用扩展 UML 的方法建立 QoS 分层模型,并对前面层次模型进行整合,并通过应用实例分析面向方面技术在 QoS 中的应用。 第二章 面向方面相关

28、理论和应用第二章 面向方面相关理论和应用本章介绍面向方面技术的发展和特点,重点介绍面向方面编程(AOP)技术的特点。同时介绍面向方面的一些基本概念,为本文后面应用面向方面的方法建立 QoS 的模型提供理论基础。2.1 面向方面技术的发展当前,面向对象编程(OOP) 2和基于组件的软件开发得到了广泛的使用,OOP 表明了它处理复杂问题的能力,但是 OOP 无法模块化横切(crosscut)整个系统的关注点(concerns),这些关注点称为横切关注点(crosscutting concerns),如时间要求、安全、QoS 监测、日志等。这些非功能单元弥散在整个系统中,导致了代码分散(code s

29、cattering);并且与功能单元混杂在一起,导致了代码纠缠(code tangling),降低了程序的可理解性、可复用性和可维护性。解决问题需要分离关注点,将不同的关注点分离成模块。面向方面编程 (AOP)将关注点实现为分离的方面, 然而实现仅仅是软件开发过程中的一个阶段。要在整个软件开发过程应用面向方面技术, 就需要对 AOP 中元素进行详述、可视化、构造和文档化。2.2 面向方面的基本概念面向方面编程(AOP)把系统不同的关注分离出来并单独设计,可以解决面向对象编程不能简单解决的复杂问题3 4。面向方面建模技术允许系统开发者在系统设计时,从核心功能性需求中分离出不同的关注,例如实时性、

30、安全性、错误和异常处理、日志、同步控制、调度、分布式管理等,并且支持各个方面的组合和绑定来实现系统的集成。从系统分离出来的各类关注可以与系统其广东工业大学工学硕士学位论文他部分同步开发,进行单独设计而不必考虑其他方面和系统的核心组件。实时性是实时系统的最重要特性,可以利用 AOP 技术把实时系统的实时性作为开发系统的一个独立的方面,并建立相应的时间模型来实现和管理时间方面,从而方便实时系统的设计和开发,确保系统的实时性。下面我们将简单介绍一下面向方面的基本概念,包括连接点、横切点、通知、类型间声明、方面等。连接点(join point)是程序运行流程中的一点,可以看成是在程序运行的过程中发生的

31、一个事件(things that happen)。典型的连接点有方法的调用、对象的初始化、域的读写、异常处理的执行等。横切点( pointcut )收集程序运行流程中的连接点;换句话说,横切点是某些连接点的集合,这些连接点或是通过逻辑关系组合起来,或是通过通配、 正则表达式等方式集中起来。横切点代表了具有某个或某些特征的一类连接点,如“某个类所有方法的调用” 、 “所有名字含set子串的方法的执行” 、 “对某个类所有字符串类型的域成员的读取”等。横切点是面向方面理论的重要概念。一般来说,连接点极少单个出现,通常都是以横切点的形式出现在方面中。通知(advice)定义了当程序到达某些连接点时需

32、要执行的操作。通知通常有三种:before 通知、after 通知和 around 通知,分别表示在连接点之前、之后和代替连接点执行的操作。通知的威力在于它可以访问在连接点运行时的上下文中的值,因此可以根据情况作出不同的反应。 类型间声明(inter-typedeclaration)是指那些跨越类/构件和它们的层次结构的声明。这些声明可能是横跨多个类的成员声明或者是类之间继承关系的改变。不像通知是动态操作,类型间声明是编译时的静态操作。典型的类型间声明有定义类的成员方法、定义类的域成员、定义类的继承关系、定义异常等。在类型间声明中对类/构件的定义或层次结构的改变,只在相关的方面中有效;在其他方

33、面或类/构件中则不产生任何作用。也就是说,类型间声明实际上并没有影响到原来的面向对象结构,即没有破坏原来面向方面所定义的内容。上述的横切点、通知以及类型间声明,组成了方面(aspect)的最核心部分(同时也是方面有别于类的最明显特征) ;核心部分再加上方面自身的域成员和方法定义,构成了一个完整的方面。换句话说,方面是横切点、通知和类型间声明第二章 面向方面相关理论和应用等的联合体。从结构上讲,方面很像面向对象中的类,类是数据对象和数据操作的统一体。 编织是把特定连接点的实现代码( advice )插入到相应的连接点代码上。通过编织工具,通知会“插入”到通知对应的连接点的前面、后面或连接点所在的

34、代码中。编织技术主要有两种,一种是静态编织,即在系统编译时把方面编织到构件中;另一种时动态编织,即在系统运行时把方面部署到构件中。静态编织要求程序员在系统编译前就确定方面的实现代码,而动态编织则可以在系统运行后自由地启用和禁用方面。静态编织对系统性能损耗较少,而动态编织对系统性能损耗相对较多,但运用更灵活,而且系统性能的损耗可以通过并发处理等方法来弥补。因此,动态编织是编织技术的主流趋势。2.3 AOSD 建模AOSD 即面向方面软件的开发方法5为我们提供了一个分别独立分析和设计系统的各个核心关注点和横切关注点(系统级关注点) 的机制,并能够在软件开发后期实现横切关注点与相关核心关注点的集成,

35、甚至能够将一个横切关注点实现代码织入(Weave)到软件系统中,而无须改动原系统的各个模块。这种方法解决了面向对象方法遇到的难题 AOSD 方法是面向对象方法的演绎与发展,该方法引入了“方面”( Aspect)来描述横切关注点,并给出了将方面与原系统相合成的技术。AOSD 方法根据系统分析的结果,分离出系统关注点与一般关注点,对于一般关注点可以使用面向对象(OO) 方法实现,而对于用OO 方法难以 清晰的封装并模块化实现的系统关注点,可以用面向方面( AO) 方法封装为独立的模块。方面的实现与传统的开发方法中模块的实现不同,方面之间是一种弱藕合的关系,各 Aspect 的开发以及各核心关注点的

36、开发彼此独立,只有在系统组装时刻,才将各方面和主代码编排、融合在一起。这使得软件开发过程中不需考虑各个模块之间错综复杂的关系,在很大程度上降低了软件开发的难度;同时在软件的维护阶段,要将一个横跨系统多个模块的新特性加入到系统中去,无须分别修改各个模块,只须将此横切特性设计成一个方面,再和相关模块编译一次即可,这可以极大地降低软件维护的难度和复杂度。广东工业大学工学硕士学位论文AOSD 方法是构建在 OOSD 方法的基础上的,是对 OOSD 方法的一种继承与发展, AOSD 方法可以更好地描述 OOSD 方法不擅长描述的横跨多个模块的需求或特性,很好地将关注点分离,从而可以模块化地实现横切特性,

37、有效地解决复杂系统的横切关注点分离、设计和实现的问题,实现各构件或模块的弱藕合性。在系统功能设计时,不需考虑散杂在对象中的关注点,降低了开发和维护难度的同时也提高了代码的复用粒度。2.4AspectJ介绍在所有AOP的Java实现中,开放源码产品AspectJ最受瞩目。AspectJ对Java语言进行了扩展,通过引入方面aspect等基本元素,使其成为面向方面编程语言。AspectJ语言是Java语言的超集,所有Java程序均可视为Aspect程序。读者可从http:/eclipse.org/aspectj免费下载AsepctJ。AspectJ包括语言规范和语言实现两部分。语言规范规定如何书写

38、程序。其中,未扩展的Java被用于实现核心关注点和横切关注点的基本逻辑部分(横切模块);Java的扩展用于实现关注点的横切,即定义编排规则。语言实现部分提供编排器。AspectJ的编译器集成了Java编译器,因而大多数情况下被称为AspectJ编译器。横切(Crosscutting):在AspectJ中,对编排规则的实现称为横切。AspectJ提供了两类横切模型:第一类是在某些明确定义的程序执行点上,定义附加操作,及运行条件。这类横切称为动态横切(dynamic crosscutting)。动态横切非常类似于CORBA中的拦截器(interceptor),其功能是在执行程序中的特定点拦截并获得

39、控制权。第二类是对已有的Java对象类型,改变其构造,例如增加类的成员数据。这类横切称为静态横切(static crosscutting)。动态横切(Dynamics crosscutting):相对于静态横切,动态横切在软件项目中使用更为广泛。与AspectJ动态横切机制有关的基本概念,有连接点(join point)、切点(pointcut)、通知(advice)等。连接点(Join point):连接点, 即程序流程中某个可以被识别的点或位置。如对一个方法的调用,或是对一个成员的赋值。连接点是一个抽象概念,而非第二章 面向方面相关理论和应用AspectJ的语言元素。引入这一概念,可方便地

40、表达横切操作。在一个程序流程中存在多种各不相同的连接点。切点(Pointcut):切点是连接点的集合,它定义了程序流程中的若干连接点。切点声明可出现在方面(aspect)、类(class)、界面(interface)定义中,与成员数据、成员方法一样,切点也具有访问属性(public、protected、private等)。在AspectJ的语言规范中, 切点可以用署名或匿名形式声明。其作用与类的署名或匿名形式相同。署名形式是为了多次引用,而匿名形式是为了方便一次性的使用,例如在通知(advice)声明中,一次性使用。通知(Advice):通知是AspectJ的语言结构,与Java方法(meth

41、od)类似。它表述在切点所选定的连接点处要执行的横切行为。通知的一般表述为:通知类型:切点执行逻辑。其中切点可以是署名切点名或匿名切点。花括号内的执行逻辑将在连接点本身、之前或之后被运行。AspectJ根据执行逻辑运行的位置,提供了三种通知类型:1before。此类通知规定,在连接点之前运行执行逻辑。例如,通知before():myPointCut()表示在程序执行署名切点myPointCut()选定的连接点之前,完成内的执行逻辑。2after。此类通知规定,在连接点处程序执行返回之后,完成执行逻辑。返回可以是正常的,也可能抛出例外(throw exception)。AspectJ提供三种af

42、ter类型的通知,分别表示三种不同的返回方式:正常返回、抛出例外、正常返回或抛出例外。a 正常返回: 例如after()returning:myPointCut()。b 抛出例外: 例如after()throwing : myPointCut()。C 正常返回或抛出例外: 例如after():myPointCut()。3around。此类通知规定,其执行逻辑将取代连接点处的执行逻辑。要注意的是,如果在通知的执行逻辑中需要完成连接点处的执行逻辑,程序员必须在其中使用特殊关键词-process(),而不能作简单的调用。如果在通知的的执行逻辑中对其连接点处的执行逻辑作任何直接或间接调用,就会再次触发

43、该通知而引发死循环(infinity loop)。广东工业大学工学硕士学位论文第三章 基于 UML 的面向方面建模方法第三章 基于 UML 的面向方面建模方法统一建模语言6( Unified Modeling Language ,UML)是一种对软件系统制品(artifact) 进行详述、可视化、构造和文档化的图形语言。UML 广泛用于面向对象系统的建模。UML 由对象管理组织(Object Management Group , OMG)管理。OMG 于 1997 年发布了 UML1.1,现在发展到 UML2.0。 UML 是可扩展的,这样可以将其用于不同领域的建模。对面向方面建模的研究主要集

44、中在如何扩展 UML 使其支持面向方面领域。3.1 统一建模语言 UML 面向对象的分析与设计(OOA&D)方法的发展在 80 年代末至 90 年代中出现了一个高潮,UML 是这个高潮的产物。它不仅统一了 Booch、Rumbaugh 和Jacobson(UML 之父)的表示方法,而且对其作了进一步的发展,并最终统一为业界所接受的标准建模语言。UML 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。3.1.1UML重要元素统一建模语言(UML)提供了一种对软件

45、系统进行可视化、详述、构造和文档化的工业标准机制。UML 利用一套动态的、支持不断发展的特征来组织其思想。最新版本 UML2.0 提供稳定的技术基础结构,考虑到软件开发过程的更多的自动化功能,支持对模型驱动架构的应用。自从 UML 在上世纪 90 年代后期首次出现后,软件经历了一次变革-衍生出结构复杂的分布式系统和 Web 应用系统广东工业大学工学硕士学位论文2结构。UML 已经适应了这种变化。UML 有一种用户配置文件的扩展机制,可以将UML 应用于特定的软件问题或者某种业务领域7。UML 有多种视图:用例视图、逻辑视图、实现视图、进程视图和部署视图。每种视图由多个图来描述,图中包含了强调系

46、统某个特定方向的信息。同时,一个图又是多个视图的组成部分。从不同视图来观察系统,可以是人们在某段时间内能够集中注意系统的一个方面。例如,若想从外部用户的角度描述系统的功能,可以用用例视图;若想设计系统的体系结构和动态行为,可以用逻辑视图。逻辑视图包括静态的类图、对象图,动态的状态机、顺序图、协作图和活动图,是最常用的一类设计图。跟本文研究内容相关的是进程视图。进程视图显示的是与系统内与进程性能相关的一些主要元素,其目的是将系统划分为多个进程,并将其分配到各个处理器上。它考虑的是系统的非功能性方面,重点是系统的并发性。进程视图由状态机、交互图(顺序图和协作图) 、活动图和部署图组成。本文用性能场

47、景图和扩展的分层队列网替代上述的进程视图,使焦点集中在性能建模与分析。性能场景图的原型之一是顺序图。顺序图的重点是显示对象之间发送的消息的时间顺序,同时也显示对象之间的交互。图中时间是从上到下推移的,消息使用位于垂直对象线之间带消息箭头的直线表示。一个顺序图表示一个交互片断,也称为场景。给场景添加上时间因素,可以描述一个交互的响应时延。为了避免使 UML 过于复杂,UML 省略了一些在其它建模语言中可以找到的细节信息。同时,UML 预留了一些补救措施扩展机制。UML 的扩展机制是显式存在的,用户可以轻松地为特定领域添加新的语义和新的内容。UML2.0 体系结构现在属于一个范围更广泛的建模领域,

48、几乎能提供所有的方案。UML 有三种扩展元素:构造型(stereotype) 、标记值(tagged value)和约束(constraint) 。构造型可以对任意的 UML 元素添加新的或额外的语义,每个构造型对应 UML 元模型中的一个元类。例如用表示方面元类。标记值可以为模型元素添加新的特征,表示为名称值。约束是指用来对 UML中的元素的语义进行限制的规则,表达约束的字符串用花括号括起来。约束表达式可以是 UML 对象约束语言(OCL) ,也可以是程序设计语言,也可以是形式化符号,甚至是自然语言。第三章 基于 UML 的面向方面建模33.1.2UML的可扩展性 UML 的扩展机制包括构造

49、型(stereotype)、标记值(tagged value)和约束(constraint )。 UML 允许继承原有构造块来生成新的构造块,这些新的构造快就是构造型。新的构造块与基构造块有同样的结构,但是可以有不同的语义、不同的约束、不同的标记值。每个构造型对应 UML 元模型中的一个元类。在图形上,构造型可以表示为用书名号括起来的名称,如Aspect ,也可以为构造型定义一个新的图符。标记值可以为模型元素添加新的特征,如软件的版本信息.标记值可以表示为名称=值。约束扩展了建模元素的语义,可以增加新的规则或修改语义。约束用“ ”括起来的串表示。3.2 用 UML 进行面向方面建模由于面向方面

50、是一个新的编程典范,而 UML 主要应用于面向对象系统的建模,用 UML 进行面向方面的建模就要使用合适的图符来表达方面概念,也要给这些图符赋予正确的语义。这不但需要正确表示面向方面中的元素,而且还要能用清晰的方式表达方面与基本类(核心类)之间的关系8。由于面向方面建模是一个比较新的领域,实际上面向方面编程的方法也还在发展中,所以并没有形成统一的建模方法。为了能从整体上了解面向方面社区在建模领域的研究,本节比较全面的介绍了各种建模方法,可以根据参考文献找到这些方法的详细资料。资料9较早提出了扩展 UML 支持面向方面设计,它新加入了继承自类元的元素Aspect,用来表示方面,并用 UML 已有

51、的关系来表示方面与基本类间的关系,也提出了基于 XML 的方面描述语言 UML/a,这样允许开发工具与方面编织器交换方面模型信息。这个方法仅表达了引入的概念,并没有表达通知的能力。组合模式可以分离和设计可重用的横切行为,它基于面向主题设计模型和 UML 的模板。资料10提出了一个使用 UML 表示的面向方面开发的方法学,也提出了一广东工业大学工学硕士学位论文4个方面约束语言 ACL(Aspect Constraint Language)来约束方面的使用,这样允许控制开发来避免出现不希望的后果。资料11中提出在 UML 中加入两个新的元素,一个代表连接点(join point)的概念,方面在连接

52、点横切功能组件,一个代表方面,并建议把方面的功能封装在一个 UML 包中来维护关注点分离。资料12中研究了如何将行为方面加入到活动图中。3.2.1方面的描述在方面的所有元素中,有些元素是方面自身所有的 ( 如域成员、方法、横切点等),有些则是与某些类相关的( 如类型间声明等)。方面通过这些元素与类发生关系,这也是面向 方面里的面向对象部分(00 part in AO)与面向对象产生作用的桥梁。一般来说,面向方面在本质上并没有改变面向对象的结构,而类里面也没有有关方面的描述;因此,方面与类之间的作用是单向的,也就是说,只是方面里含有类的描述,而类里没有方面的描述。方面与类的关系有两种:一种是继承

53、关系方面可以继承类和实现接口(但类不能继承方面);另一种是编织关系方面在指定横切点上执行相应的通知,对面向对象中的类产生编织作用。对于继承关系,子方面继承了父类的域成员和方法,或者子方面实现了父接口。同时,子方面还可以定义自己的域成员、方法、横切点、通知等。但是,反过来不成立类不能继承方面。方面只支持单继承,即一个方面最多只能有一个父类。但一个类可以被多个方面继承 ( 即方面继承类是多对一的关系)。一个方面可以实现多个接口,一个接口也可以被多个方面实现(即方面实现接口是多对多的关系)。对于编织关系,实际上就是面向方面理论最基本最核心的部分。方面应用于某个类,其实就是方面在横切点(横切于各个模块

54、中的关注点) 上对类进行附加处理 (通知)。方面与类的编织关系是多对多的关系,即一个方面可以与多个类发生编织关系,同时一个类也可以与多个方面发生编织关系(即方面编织类是多对多的关系)。图 3-1 描述了方面继承类的 UML 表示法。图 3-2 描述了方面实现接口第三章 基于 UML 的面向方面建模5的 UML 表示法。图 3-3 描述了方面编织类的 UML 表示法。图 3-1 方面继承类的 UML 表示法Figure3-1UML model of aspect class图 3-2 方面实现接口的 UML 表示法Figure3-2UML model of aspect application

55、interface图 3-3 方面编织类的 UML 表示法Figure3-3UML model of aspect weaving class3.2.3方面和方面之间关系的描述跟类与类之间产生作用相似,方面与方面之间也产生作用。方面与方面之间的作用关系有两种:一种是纵向的层次结构关系 继承关系,即方面可以继承方面(子方面继承了父方面的域成员、方法和横切点等) ;另一种是横向的叠加关系多个方面有序地同时编织于某个类。纵向的继承关系类似于面向对象中类的继承。子方面继承了父方面的域成广东工业大学工学硕士学位论文6员、方法、横切点、通知等,同时也可以具有自己独特的域成员、方法、横切点和通知等元素。一个

56、方面最多只能有一个父方面,但一个方面却能被多个子方面继承,即方面继承方面是多对一的关系。对于横向的叠加关系,多个方面同时编织于某个类,当方面应用的次序不同时可能会产生不同的效果。例如,方面 A、B、C 同时编织于某类 J,先应用 A 后应 B 再应 C 产生的效果就可能同先应用 B 后应用 C 再应用 A 不同。当应用于某个类的多个方面按一定的先后次序进行编织时,它们就构成了叠加关系。叠加关系是一种有序的线性关系。图 3-4 描述了方面继承方面的 UML 表示。图 3-4 方面继承方面的 UML 表示法Figure3-4UML model of aspect3.3 面向对象编程 AOP 元素

57、UML 表示3.3.1表示切入点 Aspect C+有两种切入点:名字切入点和代码切入点。名字切入点是类型、属性、函数、变量和名字空间的名字,其中类和名字空间可用于引入,即结构横切。代码切入点调用 Aspect C+定义的函数且以名字切入点为参数来形成,与 Aspect )中的切入点一样,用于行为横切。而在 Aspect 中,类型间声明并没有用到名字切入点概念,虽然这时用到的也是类型名13。 在 UML 建模时,将切入点作为特征的子类,因为在 UML 规范中,特征的语义是作为类元的一部分,本文将方面建模为类元的子类,这样切入点就是方面的一部分。切入点的语义是组件里方面可以干涉的一系列点,它包括

58、了Aspect C+中的名字切入点和代码切入点,也包括了 Aspect 中的切入点和类型第三章 基于 UML 的面向方面建模7间声明时的类型名,即它用于所有结构横切和行为横切中。 切入点的组成部分为:名称;参数列表;可见性;多态性;切入点表达式。其中切入点表达式用标记值 p c e ( pointcut expression ) 表示。切入点用构造型+pointcut 表示,其语法为:+pointcut ;可见性 名字(参数列表) pee =切入点表达式。用斜体来表明这个切入点是抽象的。切入点图符显示了一个切入点由多个子集构成。这主要是为了清晰描述多个方面在相同的连接点横切组件。3.3.2表示

59、通知与引入 在 Aspect C+中,同一个 a d v i c e 关键字既用于结构横切 ( 即引入)也用于行为横切,而在 Aspect 中通知的概念仅与行为横切相关,结构横切用了类型间声明。 在用 UML 建模时,将它们相同对待,因为它们都表示横切了组件,统一用通知表示。由于通知是方面的一部分,所以将通知作为特征的子类。并用构造型 表示。在 Aspect 或 Aspect C+中,没有给通知命名,但在顺序图等行为图中,消息传递要用到消息名,所以在用建模行为横切时,给通知加了一个伪名。用标记值 pce 表示通知要横切的点.通知的语法为:可见性通知规范集合pce=切入点表达式。其中通知规范集合

60、为: ( 1 ) 对于行为横切:“伪名通知行为说明” 。其中通知行为说明为 before,after,after returning ,after throwing , around。 ( 2 ) 对于引入成员变量:可见性名字多重性:类型=初始值 。与 UML 中属性的定义一样。 ( 3 ) 对于引入操作:可见性名字 ( 参数): 返回值 。与 UML 中操作的定义一样。 ( 4 ) 对于引入要继承的基类:可见性) extends:基类名。 ( 5 ) 对于引入要实现的接口:implements:接口名。 ( 6 ) 对于说明在切入点各个方面的横切顺序: precedence:方面列表。对于成

61、员引入,如果写在受影响的组件里,则在引入成员的下面用标记 广东工业大学工学硕士学位论文8introducedBy +方面名 说明这个成员 是由指定方面引入的。对于引入的基类和接口.如果要在类系上显示时,要在继承和实现关系上用标记值 introducedBy =方面名 说明这个关系是由指定方面引入的。3.3.3表示方面 Aspect 与 AspectC+ 中方面的语义基本相同,不同点来自于 Java 于 C+之间固有的不同。在用 UML 建模时,统一用方面表示,并且它是类的子类,因为方面与类的结构很相似,它封装了类里所有的成员,还模块化了横切关注点。方面用构造型表示,图符采用类的图符。方面除拥有

62、类的元素、切入点和通知外,还包括: Boolean 型的 privileged 标记值; instantiation 标记值,其值为Aspect 中方面定义时用到的 perClasuse 值,默认为 isSingletono。由于在同一个连接点处可以有多个通知横切,所以需要说明通知间的顺序关系。Aspect 在方面层次上用“declareprecedenc : TypePatternList”来说明,而 Aspect C+在 切 入 点 层 次 上 用 advice pointcut-expression :order ( TypePatternList )”来说明。在用 UML 建模时,如在

63、图中表示这种关系,用一个新的依赖来说明优先关系,它可用于方面和切入点。第四章 实时系统 QoS 面向方面的建模9第四章 实时系统 QoS 面向方面的建模建模是人类对客观世界和抽象事物之间联系的具体化描述,是对一个物理系统的抽象反映。根据用户、开发者、测试员、记录员等不同角色所关心的角度或目的的不同,同一个物理系统也可以被创建为具有不同类型或不同表现形式的模型。实时系统的面向方面建模就在于能把时间方面独立处理,因此可以建立一个时间方面模型来统一表达系统的时间特性。并且,这个时间模型可以根据需要进一步细化为多个子方面,例如确定时间方面、 随机时间方面和模糊时问方面等,每个时间子方面根据各自的特点利

64、用不同的形式化方法来表示。这些不同的时间子方面实现之后能够重新构造成一个时间方面,并管理着系统的实时性。 分布式实时系统的时间分析是非常复杂的,不同的分布式实时系统具有不同的时间特性需求。它的时间方面包括确定的时间、 不确定的时间和模糊时间等。为了简化多种时间混淆在一起形成的复杂性,我们可以把这些时间进行分类,并分离出来形成子时间方面。根据面向方面的思想,不同的时间子方面还可以利用不同的形式化语言来表达。在实现所有方面模型之后,又可以把它们织入到系统,完成它在系统特定的作用。目前,各种形式化语言都是通过扩展实时性来建模实时系统,还没有一种较完善的语言能够表达所有的时间特性。4.1 网格服务质量

65、QoS 基本概念和关键技术随着计算机科学的发展,网格技术已经成为当前国内外研究的一个热点和前沿领域。基于网格技术建立一个能够实现区域或全球合作的虚拟科研和实验环境,从而支持以大规模计算和数据处理为特征的科学活动,改变和提高目前科学研究工作的方式与效率。提供非凡的服务质量是判断网格的三个准则之一,但是实际的网格应用都需要使用异构的、 类型多样的资源,特别是要对这些资源共享使用,各个任务广东工业大学工学硕士学位论文10间更多的是需要协作,使得资源的调度分配、任务执行变得复杂,而目前的网络基础设施又都是建立在“尽力服务”的基础之上,因而服务质量得不到保障,在多个服务协作使用资源时,性能和效率也容易造

66、成降级,而且用户的需求也具有多样性。解决这些问题,需要引入 QoS 机制。网格 QoS 问题的焦点在于网格能够提供端到端 QoS 的程度,不只是提供网络 QoS,而目前的大多数网格实现都只能提供部分的 QoS 功能。4.1.1网络QoS与网格QoS的关系服务质量( QoS)在计算机网络中是一个流行的研究领域,它关注的是如何提供更可靠的网络传输服务,满足应用的传输延时、延时抖动、分组丢失等质量保证。网格是运行在互联网之上的,单纯的网络 QoS机制不能够保证网格应用的 QoS。网格中除了网络资源外,还有计算、存储等其它类型的资源。网格应用需要所有这些网格资源,包括网络资源在内,都能按需地向网格应用提供相应的QoS保证。所有这些资源都为E2E(End to End,端到端) QoS做出了贡献,但是E2E资源QoS并不是所涉及的这些资源简单、线性的组合,而需要高层对它们进行协调。总之,为了满足网格应用的端到端 QoS保证,除了网络层次的 QoS保证外,还需在网格系统结构上考虑相应的 QoS保证措施。4.1.2网格QoS的要求为了保证网格应用的端到端 QoS,需要网格QoS机制能够满足以下要求:

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!