计算机应用技术硕士学位毕业论文-网格环境下的异构动态实时系统服务质量的面向方面建模.doc_第1页
计算机应用技术硕士学位毕业论文-网格环境下的异构动态实时系统服务质量的面向方面建模.doc_第2页
计算机应用技术硕士学位毕业论文-网格环境下的异构动态实时系统服务质量的面向方面建模.doc_第3页
计算机应用技术硕士学位毕业论文-网格环境下的异构动态实时系统服务质量的面向方面建模.doc_第4页
计算机应用技术硕士学位毕业论文-网格环境下的异构动态实时系统服务质量的面向方面建模.doc_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘摘 要要 复杂动态分布式实时系统中的服务质量qos的描述、控制、管理、协商及保 证是一项非常复杂和具有挑战性的工作,服务质量qos直接关系到系统的性能。 但是qos的研究仍缺乏完整、清晰的技术体系,没有一种qos解决方案成功地满 足了复杂动态分布式实时系统环境中的所有服务质量需求。 由于复杂动态分布式实时系统具有的异构性、分布性、动态性和自治性, 对分布式系统的建模和实现中经常会出现同样的问题。如果不考虑局部故障、 带宽的动态变化、安全要素等等,面向对象是一种很合适的抽象。但是当处理 分布式系统中出现的方面时,面向对象的设计很明显地失去了它的优势。我们 对服务质量(qos)的处理提出了一种将各分散服务中的方面融合起来的机制, 可以把qos作为分布式程序中的一个方面来进行处理。 本文通过对统一建模语言uml的扩展,对分布式系统的qos建立模型。首 先对qos建立框架元模型,再建立qos的剖面图,将uml扩展成支持面向方面 的qos建模语言qml,并通过简单实例来分析这一建模语言的应用,最后,通 过一个分布式系统中qos的面向方面应用,说明了如何利用基于uml的面向方 面编程(aop)技术来建模实时系统。 我们通过结合传统的网格qos结构模型,把qos关注从系统中抽象为一个独 立于系统的qos方面,从结构建模、行为建模、方面织入以及代码产生几个方 面实现面向方面的建模方法,更好的提供网格环境下qos保证,分离了qos关注, 提高软件的重用性。 关键词:关键词:网格 qos;统一建模语言;实时系统;面向方面;uml 扩展 广东工业大学工学硕士学位论文 ii 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 related 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 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 abstracts 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 software 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 this modelling language abstract iii 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 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 modelling language; real-time system; aspect- oriented; uml extension 广东工业大学工学硕士学位论文 iv 目目 录录 摘 要 i abstract.ii 目 录 .iv 第一章 绪论 . 1.1研究背景 1.2本课题研究的现状和意义 1.3本文的工作和结构 第二章 面向方面相关理论和应用 2.1面向方面技术的发展 2.2面向方面的基本概念 2.3aosd 建模 . 2.4aspectj 介绍. 第三章 基于 uml 的面向方面建模方法 1 3.1 统一建模语言 uml1 3.1.1uml 重要元素.1 3.1.2uml 的可扩展性.3 3.2 用 uml 进行面向方面建模 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 第四章 实时系统 qos 面向方面的建模 9 4.1 网格服务质量 qos 基本概念和关键技术.9 contents v 4.1.1 网络 qos 与网格 qos 的关系.10 4.1.2 网格 qos 的要求.10 4.1.3 网格 qos 控制模型.11 4.1.4 网格 qos 关键技术.13 4.2qos 的分层模型.15 4.2.1 网格 qos 参数划分.15 4.2.2 网格 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 统一资源集成子剖面图35 5.4 使用 qml 进行面向方面的扩展和应用.36 5.4.1 qml 的基本设计思路.36 5.4.2 qml 的实例应用.37 5.5 面向方面的 qos 实际应用分析.40 5.5.1qos 在简单网络收音机系统中的应用.40 5.5.2 传统的 qos 特性描述模型41 5.5.3 qos 方面的结构模型.42 5.5.4 结构关系.42 广东工业大学工学硕士学位论文 vi 5.5.5 系统实时方面的分析.44 5.5.6 织入 qos 方面.46 结 论. 参 考 文 献 .49 攻读学位期间发表的论文.53 独创性声明 54 致 谢55 contents vii contents chinese abstract.i english abstractii 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.3aosd modeling . chapter3 aop modeling mathod based on uml.8 3.1 uml 8 3.1.1important element in uml8 3.1.2the expansibility of uml10 3.2aspect oriented modeling in uml .10 3.2.1 aspects description.11 3.2.3 description between aspects12 3.3descripe aop element using uml .13 3.3.1 description of pointcut.13 3.3.2 description of advice and introduce.14 3.3.3aspects representation15 chapter4 aspect-oriented modeling of realtime system qos.16 4.1basic concept and key technology of grid qos16 4.1.1relationship between grid qos and web qos17 广东工业大学工学硕士学位论文 viii 4.1.2requirement of grid qos17 4.1.3control model of grid qos18 4.1.4key technology of grid qos20 4.2submodel of qos22 4.2.1grid qos characteristic22 4.2.2architecture of grid qos23 chapter5qos modeling based on uml.26 5.1basic principle and brief model26 5.1.1 constructors of qos modeling languages26 5.1.2 qos modeling elements.27 5.2 qos framework metamodel.27 5.2.1 general qos framework.28 5.2.2 qos characteristic29 5.2.3 qos constraint31 5.2.4 qos level31 5.3 uml qos profile.33 5.3.1qos characteristics subprofile33 5.3.2 qos constraints subprofile38 5.3.3 qos behavior subprofile40 5.3.4 integration of general resource subprofile41 5.4ao extestion and application using qml42 5.4.1 basic design thought in qml42 5.4.2 example of qml43 5.5example of aspect-oriented qos46 5.5.1an application in corba event service46 5.5.2traditional qos characteristic description model46 5.5.3 architectrue model of qos aspect48 5.5.4 architectrue relationship.48 5.5.5weaving in qos aspect49 contents ix conclusion references53 publications during masters study.57 promethean announcement.58 acknowledgement59 第一章 绪论 第一章 绪论 随着软件行业的飞速发展,分布式实时系统的应用越来越广泛,服务质量 保证作为一个网络服务中最基本的问题也越来越重要。 在应用面向方面方法对分布式实时系统的建模和应用研究上已经有了初步 的成果,但是应用面向方面方法对网格环境下的实时系统的服务质量进行建模 和应用基本上是一片空白,在网格环境下的实时系统,尤其是其服务质量的保 证,存在许多应用面向方面方法的空间,例如时间方面的问题,安全机制方面 的问题。 分布式实时系统的时间分析是非常复杂的,不同的分布式实时系统具有不 同的时间特性需求。它的时间方面包括确定的时间、不确定的时间和模糊时间 等。为了简化多种时间混淆在一起形成的复杂性,我们可以把这些时间进行分 类,并分离出来形成子时间方面。根据面向方面的思想,不同的时间子方面还 可以利用不同的形式化语言来表达。在实现所有方面模型之后,又可以把它们 织入到系统,完成它在系统特定的作用。目前,各种形式化语言都是通过扩展 实时性来建模实时系统,还没有一种较完善的语言能够表达所有的时间特性。 复杂动态分布式实时系统中的服务质量qos的描述、控制、管理、协商及保 证是一项非常复杂和具有挑战性的工作,服务质量qos直接关系到系统的性能。 但是qos的研究仍缺乏完整、清晰的技术体系,没有一种qos解决方案成功地满足 了复杂动态分布式实时系统环境中的所有服务质量需求1。 本文通过面向方面的方法对实时系统的 qos 建立模型,首先使用面向方面 的方法对实时系统中服务质量层次结构的各个子层分别建立模型,综合上面建 立的模型对实时系统中服务质量建立面向方面完整的模型,再通过扩展 omg idl(对象管理组织 接口定义语言)将建立的 qos 模型集成到一般的面向对象 的中间件中去,检验建立的 qos 模型的能效。 广东工业大学工学硕士学位论文 1.1 研究背景 由于复杂动态分布式实时系统 具有的异构性、分布性、动态性和自治性,对分布 式系统的建模和实现中经常会出现同样的问题。如果不考虑局部故障、带宽的动态 变化、安全要素等等,面向对象是一种很合适的抽象。但是当处理分布式系统中出 现的方面时,面向对象的设计很明显地失去了它的优势。对服务质量(qos)的处理 提出了一种将各分散服务中的方面融合起来的机制。因此,可以把qos作为分布式程 序中的一个方面来进行处理。 1.2 本课题研究的现状和意义 在应用面向方面方法对分布式实时系统的建模和应用研究上已经有了初步的成 果,但是应用面向方面方法对网格环境下的实时系统的服务质量进行建模和应用基 本上是一片空白,在网格环境下的实时系统,尤其是其服务质量的保证,存在许多 应用面向方面方法的空间,例如时间方面的问题,安全机制方面的问题。 分布式实时系统的时间分析是非常复杂的,不同的分布式实时系统具有不同的 时间特性需求。它的时间方面包括确定的时间、不确定的时间和模糊时间等。为了 简化多种时间混淆在一起形成的复杂性,我们可以把这些时间进行分类,并分离出 来形成子时间方面。根据面向方面的思想,不同的时间子方面还可以利用不同的形 式化语言来表达。在实现所有方面模型之后,又可以把它们织入到系统,完成它在 系统特定的作用。目前,各种形式化语言都是通过扩展实时性来建模实时系统,还 没有一种较完善的语言能够表达所有的时间特性。 复杂动态分布式实时系统 中的服务质量qos的描述、控制、管理、 协商及保证是 一项非常复杂和具有挑战性的工作,服务质量 qos直接关系到系统的性能。但是 qos 的研究仍缺乏完整、清晰的技术体系 ,没有一种qos解决方案成功地满足了 复杂动态分 布式实时系统 环境中的所有服务质量需求。 面向方面软件设计 (aosd)方法是基于关注分离技术,能够把系统划分为不同的 方面,并且每个方面能够单独地设计和实现。 实时系统的面向方面建模就在于能把时间方面独立处理,因此可以建立一个时 第一章 绪论 间方面模型来统一表达系统的时间特性。并且,这个时间模型可以根据需要进一步细 化为多个子方面,例如确定时间方面、随机时间方面和模糊时问方面等,每个时间子 方面根据各自的特点利用不同的形式化方法来表示。这些不同的时间子方面实现之后 能够重新构造成一个时间方面,并管理着系统的实时性。 通过面向方面的方法对实时系统的 qos建立模型可以把整个系统中的 qos抽取出 来进行建模,再通过 扩展uml可以将qos扩展为满足qos需求的qml,满足所需求的 系统的qos保证建模。 1.3 本文的工作和结构 本文的基本思路:应用面向方面的方法对实时系统的 qos 进行建模。即首 先对网格服务质量 qos 进行层次分析,提出合理的层次结构,应用基于 uml 的 面向方面建模方法对各个层次建模。再通过扩展 uml 建模方法的 qml 对 qos 建 模,最后通过实例分析面向方面技术在 qos 建型中的应用。 本文的主要工作:基于 uml2.0 建立各个层次 qos 的模型,扩展 uml 为 qml,通过面向方面的方法进行 qos 建模,通过应用实例,分析面向方面技术在 qos 建模中的应用。 本文的结构:第一章绪论,分析了本文的研究背景和课题研究现状。第二 章介绍了本文关注的面向方面开发技术;第三章详细介绍了基于 uml 的面向方 面建模方法;第四章讨论了 qos 的基本概念和关键元素,并提出了 qos 的层次 模型。第五章是本文的主体部分,应用扩展 uml 的方法建立 qos 分层模型,并 对前面层次模型进行整合,并通过应用实例分析面向方面技术在 qos 中的应用。 第二章 面向方面相关理论和应用 第二章 面向方面相关理论和应用 本章介绍面向方面技术的发展和特点,重点介绍面向方面编程(aop)技 术的特点。同时介绍面向方面的一些基本概念,为本文后面应用面向方面的方 法建立 qos 的模型提供理论基础。 2.1 面向方面技术的发展 当前,面向对象编程(oop) 2和基于组件的软件开发得到了广泛的使用, oop 表明了它处理复杂问题的能力,但是 oop 无法模块化横切(crosscut)整个 系统的关注点(concerns),这些关注点称为横切关注点(crosscutting concerns),如时间要求、安全、qos 监测、日志等。这些非功能单元弥散在 整个系统中,导致了代码分散(code scattering);并且与功能单元混杂在一 起,导致了代码纠缠(code tangling),降低了程序的可理解性、可复用性和 可维护性。 解决问题需要分离关注点,将不同的关注点分离成模块。面向方面编程 (aop)将关注点实现为分离的方面, 然而实现仅仅是软件开发过程中的一个阶 段。要在整个软件开发过程应用面向方面技术, 就需要对 aop 中元素进行详 述、可视化、构造和文档化。 2.2 面向方面的基本概念 面向方面编程(aop)把系统不同的关注分离出来并单独设计,可以解决面向 对象编程不能简单解决的复杂问题3 4。面向方面建模技术允许系统开发者在 系统设计时,从核心功能性需求中分离出不同的关注,例如实时性、安全性、 错误和异常处理、日志、同步控制、调度、分布式管理等,并且支持各个方 面的组合和绑定来实现系统的集成。从系统分离出来的各类关注可以与系统其 广东工业大学工学硕士学位论文 他部分同步开发,进行单独设计而不必考虑其他方面和系统的核心组件。实时 性是实时系统的最重要特性,可以利用 aop 技术把实时系统的实时性作为开发 系统的一个独立的方面,并建立相应的时间模型来实现和管理时间方面,从而 方便实时系统的设计和开发,确保系统的实时性。 下面我们将简单介绍一下面向方面的基本概念,包括连接点、横切点、通 知、类型间声明、方面等。 连接点(join point)是程序运行流程中的一点,可以看成是在程序运行的 过程中发生的一个事件(things that happen)。典型的连接点有方法的调用、 对象的初始化、域的读写、异常处理的执行等。 横切点( pointcut )收集程序运行流程中的连接点;换句话说,横切点是某些连 接点的集合,这些连接点或是通过逻辑关系组合起来,或是通过通配、 正则表 达式等方式集中起来。横切点代表了具有某个或某些特征的一类连接点,如 “某个类所有方法的调用” 、 “所有名字含set子串的方法的执行” 、 “对某个 类所有字符串类型的域成员的读取”等。横切点是面向方面理论的重要概念。 一般来说,连接点极少单个出现,通常都是以横切点的形式出现在方面中。 通知(advice)定义了当程序到达某些连接点时需要执行的操作。通知通常有 三种:before 通知、after 通知和 around 通知,分别表示在连接点之前、之后和 代替连接点执行的操作。通知的威力在于它可以访问在连接点运行时的上下文 中的值,因此可以根据情况作出不同的反应。 类型间声明(inter-typedeclaration)是指那些跨越类/构件和它们的层次结构的 声明。这些声明可能是横跨多个类的成员声明或者是类之间继承关系的改变。 不像通知是动态操作,类型间声明是编译时的静态操作。典型的类型间声明有 定义类的成员方法、定义类的域成员、定义类的继承关系、定义异常等。 在类型间声明中对类/构件的定义或层次结构的改变,只在相关的方面中有 效;在其他方面或类/构件中则不产生任何作用。也就是说,类型间声明实际上并 没有影响到原来的面向对象结构,即没有破坏原来面向方面所定义的内容。 上述的横切点、通知以及类型间声明,组成了方面(aspect)的最核心部分(同 时也是方面有别于类的最明显特征) ;核心部分再加上方面自身的域成员和方法 定义,构成了一个完整的方面。换句话说,方面是横切点、通知和类型间声明 第二章 面向方面相关理论和应用 等的联合体。从结构上讲,方面很像面向对象中的类,类是数据对象和数据操 作的统一体。 编织是把特定连接点的实现代码( advice )插入到相应的连接点代码上。通 过编织工具,通知会“插入”到通知对应的连接点的前面、后面或连接点所在 的代码中。编织技术主要有两种,一种是静态编织,即在系统编译时把方面编 织到构件中;另一种时动态编织,即在系统运行时把方面部署到构件中。静态编 织要求程序员在系统编译前就确定方面的实现代码,而动态编织则可以在系统 运行后自由地启用和禁用方面。静态编织对系统性能损耗较少,而动态编织对 系统性能损耗相对较多,但运用更灵活,而且系统性能的损耗可以通过并发处 理等方法来弥补。因此,动态编织是编织技术的主流趋势。 2.3 aosd 建模 aosd 即面向方面软件的开发方法5为我们提供了一个分别独立分析和设计 系统的各个核心关注点和横切关注点(系统级关注点) 的机制,并能够在软件开 发后期实现横切关注点与相关核心关注点的集成,甚至能够将一个横切关注点 实现代码织入(weave)到软件系统中,而无须改动原系统的各个模块。 这种方法解决了面向对象方法遇到的难题 aosd 方法是面向对象方法的演 绎与发展,该方法引入了“方面”( aspect)来描述横切关注点,并给出了将方 面与原系统相合成的技术。aosd 方法根据系统分析的结果,分离出系统关注 点与一般关注点,对于一般关注点可以使用面向对象(oo) 方法实现,而对于用 oo 方法难以 清晰的封装并模块化实现的系统关注点,可以用面向方面( ao) 方法封装为独立的模块。方面的实现与传统的开发方法中模块的实现不同,方 面之间是一种弱藕合的关系,各 aspect 的开发以及各核心关注点的开发彼此独 立,只有在系统组装时刻,才将各方面和主代码编排、融合在一起。这使得软 件开发过程中不需考虑各个模块之间错综复杂的关系,在很大程度上降低了软 件开发的难度;同时在软件的维护阶段,要将一个横跨系统多个模块的新特性 加入到系统中去,无须分别修改各个模块,只须将此横切特性设计成一个方面, 再和相关模块编译一次即可,这可以极大地降低软件维护的难度和复杂度。 广东工业大学工学硕士学位论文 aosd 方法是构建在 oosd 方法的基础上的,是对 oosd 方法的一种继承 与发展, aosd 方法可以更好地描述 oosd 方法不擅长描述的横跨多个模块的 需求或特性,很好地将关注点分离,从而可以模块化地实现横切特性,有效地 解决复杂系统的横切关注点分离、设计和实现的问题,实现各构件或模块的弱 藕合性。在系统功能设计时,不需考虑散杂在对象中的关注点,降低了开发和 维护难度的同时也提高了代码的复用粒度。 2.4 aspectj 介绍 在所有aop的java实现中,开放源码产品aspectj最受瞩目。aspectj对java 语言进行了扩展,通过引入方面aspect等基本元素,使其成为面向方面编程语 言。 aspectj语言是java语言的超集,所有java程序均可视为aspect程序。读者 可从/aspectj免费下载asepctj。aspectj包括语言规范和 语言实现两部分。语言规范规定如何书写程序。其中,未扩展的java被用于实 现核心关注点和横切关注点的基本逻辑部分(横切模块);java的扩展用于实现 关注点的横切,即定义编排规则。语言实现部分提供编排器。aspectj的编译器 集成了java编译器,因而大多数情况下被称为aspectj编译器。 横切(crosscutting):在aspectj中,对编排规则的实现称为横切。 aspectj提供了两类横切模型:第一类是在某些明确定义的程序执行点上,定义 附加操作,及运行条件。这类横切称为动态横切(dynamic crosscutting)。动 态横切非常类似于corba中的拦截器(interceptor),其功能是在执行程序中的 特定点拦截并获得控制权。第二类是对已有的java对象类型,改变其构造,例 如增加类的成员数据。这类横切称为静态横切(static crosscutting)。 动态横切(dynamics crosscutting):相对于静态横切,动态横切在软件项 目中使用更为广泛。与aspectj动态横切机制有关的基本概念,有连接点(join point)、切点(pointcut)、通知(advice)等。 连接点(join point):连接点, 即程序流程中某个可以被识别的点或位置。 如对一个方法的调用,或是对一个成员的赋值。连接点是一个抽象概念,而非 第二章 面向方面相关理论和应用 aspectj的语言元素。引入这一概念,可方便地表达横切操作。在一个程序流程 中存在多种各不相同的连接点。 切点(pointcut):切点是连接点的集合,它定义了程序流程中的若干连接 点。 切点声明可出现在方面(aspect)、类(class)、界面(interface)定义中,与成 员数据、成员方法一样,切点也具有访问属性(public、protected、private等)。 在aspectj的语言规范中, 切点可以用署名或匿名形式声明。其作用与类的署 名或匿名形式相同。署名形式是为了多次引用,而匿名形式是为了方便一次性 的使用,例如在通知(advice)声明中,一次性使用。 通知(advice):通知是aspectj的语言结构,与java方法(method)类似。它 表述在切点所选定的连接点处要执行的横切行为。通知的一般表述为:通知类 型:切点执行逻辑。其中切点可以是署名切点名或匿名切点。花括号内的 执行逻辑将在连接点本身、之前或之后被运行。aspectj根据执行逻辑运行的位 置,提供了三种通知类型: 1before。此类通知规定,在连接点之前运行执行逻辑。 例如,通知before():mypointcut()表示在程序执行署名切点 mypointcut()选定的连接点之前,完成内的执行逻辑。 2after。此类通知规定,在连接点处程序执行返回之后,完成执行逻辑。 返回可以是正常的,也可能抛出例外(throw exception)。aspectj提供三种 after类型的通知,分别表示三种不同的返回方式:正常返回、抛出例外、正常 返回或抛出例外。a 正常返回: 例如after()returning:mypointcut() 。b 抛出例外: 例如after()throwing : mypointcut()。c 正常返回或抛出例外: 例如after():mypointcut()。 3around。此类通知规定,其执行逻辑将取代连接点处的执行逻辑。要注 意的是,如果在通知的执行逻辑中需要完成连接点处的执行逻辑,程序员必须 在其中使用特殊关键词-process(),而不能作简单的调用。如果在通知的的执 行逻辑中对其连接点处的执行逻辑作任何直接或间接调用,就会再次触发该通 知而引发死循环(infinity loop)。 广东工业大学工学硕士学位论文 第三章 基于 uml 的面向方面建模方法 第三章 基于 uml 的面向方面建模方法 统一建模语言6( unified modeling language ,uml)是一种对软件系统制 品(artifact) 进行详述、可视化、构造和文档化的图形语言。uml 广泛用于面 向对象系统的建模。uml 由对象管理组织(object management group , omg)管 理。omg 于 1997 年发布了 uml1.1,现在发展到 uml2.0。 uml 是可扩展的,这样可以将其用于不同领域的建模。对面向方面建模的 研究主要集中在如何扩展 uml 使其支持面向方面领域。 3.1 统一建模语言 uml 面向对象的分析与设计(ooa因此,方面与类之间的作用是单向的,也就是说, 只是方面里含有类的描述,而类里没有方面的描述。 方面与类的关系有两种:一种是继承关系方面可以继承类和实现接口(但类 不能继承方面);另一种是编织关系方面在指定横切点上执行相应的通知,对 面向对象中的类产生编织作用。对于继承关系,子方面继承了父类的域成员和 方法,或者子方面实现了父接口。同时,子方面还可以定义自己的域成员、方 法、横切点、通知等。但是,反过来不成立类不能继承方面。方面只支持单 继承,即一个方面最多只能有一个父类。但一个类可以被多个方面继承 ( 即方 面继承类是多对一的关系)。一个方面可以实现多个接口,一个接口也可以被多 个方面实现(即方面实现接口是多对多的关系)。 对于编织关系,实际上就是面向方面理论最基本最核心的部分。方面应用 于某个类,其实就是方面在横切点(横切于各个模块中的关注点) 上对类进行附 加处理 (通知)。方面与类的编织关系是多对多的关系,即一个方面可以与多个 类发生编织关系,同时一个类也可以与多个方面发生编织关系(即方面编织类是 多对多的关系)。 图 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 interface 图 3-3 方面编织类的 uml 表示法 figure3-3uml model of aspect weaving class 3.2.3方面和方面之间关系的描述 跟类与类之间产生作用相似,方面与方面之间也产生作用。方面与方面之 间的作用关系有两种:一种是纵向的层次结构关系 继承关系,即方面可以继 承方面(子方面继承了父方面的域成员、方法和横切点等) ;另一种是横向的叠 加关系多个方面有序地同时编织于某个类。 纵向的继承关系类似于面向对象中类的继承。子方面继承了父方面的域成 广东工业大学工学硕士学位论文 6 员、方法、横切点、通知等,同时也可以具有自己独特的域成员、方法、横切 点和通知等元素。一个方面最多只能有一个父方面,但一个方面却能被多个子 方面继承,即方面继承方面是多对一的关系。对于横向的叠加关系,多个方面 同时编织于某个类,当方面应用的次序不同时可能会产生不同的效果。例如, 方面 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+有两种切入点:名字切入点和代码切入点。名字切入点是类型、 属性、函数、变量和名字空间的名字,其中类和名字空间可用于引入,即结构 横切。代码切入点调用 aspect c+定义的函数且以名字切入点为参数来形成, 与 aspect )中的切入点一样,用于行为横切。而在 aspect 中,类型间声明并没 有用到名字切入点概念,虽然这时用到的也是类型名13。 在 uml 建模时,将切入点作为特征的子类,因为在 uml 规范中,特征 的语义是作为类元的一部分,本文将方面建模为类元的子类,这样切入点就是 方面的一部分。切入点的语义是组件里方面可以干涉的一系列点,它包括了 aspect c+中的名字切入点和代码切入点,也包括了 aspect 中的切入点和类型 第三章 基于 uml 的面向方面建模 7 间声明时的类型名,即它用于所有结构横切和行为横切中。 切入点的组成部分为:名称;参数列表;可见性;多态性;切入点表达式。其中 切入点表达式用标记值 p c e ( pointcut expression ) 表示。切入点用构造型 +pointcut 表示,其语法为:+pointcut ;可见性 名字(参数列表) pee =切入点 表达式。用斜体来表明这个切入点是抽象的。切入点图符显示了一个切入点由 多个子集构成。这主要是为了清晰描述多个方面在相同的连接点横切组件。 3.3.2表示通知与引入 在 aspect c+中,同一个 a d v i c e 关键字既用于结构横切 ( 即引入)也用 于行为横切,而在 aspect 中通知的概念仅与行为横切相关,结构横切用了类型 间声明。 在用 uml 建模时,将它们相同对待,因为它们都表示横切了组件,统一 用通知表示。由于通知是方面的一部分,所以将通知作为特征的子类。并用构 造型 表示。在 aspect 或 aspect c+中,没有给通知命名,但在顺 序图等行为图中,消息传递要用到消息名,所以在用建模行为横切 时,给通知加了一个伪名。用标记值 pce 表示通知要横切的点.通知的语法为: 可见性通知规范集合pce=切入点表达式。其中通知规范集合 为: ( 1 ) 对于行为横切:“伪名通知行为说明” 。其中通知行为说明为 before,after,after returning ,after throwing , around。 ( 2 ) 对于引入成员变量:可见性名字多重性:类型=初始值 。 与 uml 中属性的定义一样。 ( 3 ) 对于引入操作:可见性名字 ( 参数): 返回值 。与 uml 中操 作的定义一样。 ( 4 ) 对于引入要继承的基类:可见性) extends:基类名。 ( 5 ) 对于引入要实现的接口:implements:接口名。 ( 6 ) 对于说明在切入点各个方面的横切顺序: precedence:方面列表。对于 成员引入,如果写在受影响的组件里,则在引入成员的下面用标记 广东工业大学工学硕士学位论文 8 introducedby +方面名 说明这个成员 是由指定方面引入的。对于引入的基类 和接口.如果要在类系上显示时,要在继承和实现关系上用标记值 introducedby =方面名 说明这个关系是由指定方面引入的。 3.3.3表示方面 aspect 与 aspectc+ 中方面的语义基本相同,不同点来自于 java 于 c+ 之间固有的不同。 在用 uml 建模时,统一用方面表示,并且它是类的子类,因为方面与类 的结构很相似,它封装了类里所有的成员,还模块化了横切关注点。方面用构 造型表示,图符采用类的图符。方面除拥有类的元素、切入点和通 知外,还包括: boolean 型的 privileged 标记值; instantiation 标记值,其值为 aspect 中方面定义时用到的 perclasuse 值,默认为 issingletono。由于在同一个 连接点处可以有多个通知横切,所以需要说明通知间的顺序关系。aspect 在方 面层次上用“declareprecedenc : typepatternlist”来说明,而 aspect c+在 切 入 点 层 次 上 用 “ advice pointcut-expression :order ( typepatternlist )”来说 明。在用 uml 建模时,如在图中表示这种关系,用一个新的依赖来 说明优先关系,它可用于方面和切入点。 第四章 实时系统 qos 面向方面的建模 9 第四章 实时系统 qos 面向方面的建模 建模是人类对客观世界和抽象事物之间联系的具体化描述,是对一个物理 系统的抽象反映。根据用户、开发者、测试员、记录员等不同角色所关心的角 度或目的的不同,同一个物理系统也可以被创建为具有不同类型或不同表现形 式的模型。 实时系统的面向方面建模就在于能把时间方面独立处理,因此可以建立一 个时间方面模型来统一表达系统的时间特性。并且,这个时间模型可以根据需 要进一步细化为多个子方面,例如确定时间方面、 随机时间方面和模糊时问方 面等,每个时间子方面根据各自的特点利用不同的形式化方法来表示。这些不 同的时间子方面实现之后能够重新构造成一个时间方面,并管理着系统的实时 性。 分布式实时系统的时间分析是非常复杂的,不同的分布式实时系统具有不 同的时间特性需求。它的时间方面包括确定的时间、 不确定的时间和模糊时间 等。为了简化多种时间混淆在一起形成的复杂性,我们可以把这些时间进行分 类,并分离出来形成子时间方面。根据面向方面的思想,不同的时间子方面还 可以利用不同的形式化语言来表达。在实现所有方面模型之后,又可以把它们 织入到系统,完成它在系统特定的作用。目前,各种形式化语言都是通过扩展 实时性来建模实时系统,还没有一种较完善的语言能够表达所有的时间特性。 4.1 网格服务质量qos 基本概念和关键技术 随着计算机科学的发展,网格技术已经成为当前国内外研究的一个热点和 前沿领域。基于网格技术建立一个能够实现区域或全球合作的虚拟科研和实验 环境,从而支持以大规模计算和数据处理为特征的科学活动,改变和提高目前 科学研究工作的方式与效率。 提供非凡的服务质量是判断网格的三个准则之一,但是实际的网格应用都 需要使用异构的、 类型多样的资源,特别是要对这些资源共享使用,各个任务 广东工业大学工学硕士学位论文 10 间更多的是需要协作,使得资源的调度分配、任务执行变得复杂,而目前的网 络基础设施又都是建立在“尽力服务”的基础之上,因而服务质量得不到保障, 在多个服务协作使用资源时,性能和效率也容易造成降级,而且用户的需求也 具有多样性。解决这些问题,需要引入 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机制能够满足以下要求: i.以服务为中心的网格特点 网格体系结构

温馨提示

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

评论

0/150

提交评论