(计算机软件与理论专业论文)基于aop的web服务运行时监测技术研究与实现.pdf_第1页
(计算机软件与理论专业论文)基于aop的web服务运行时监测技术研究与实现.pdf_第2页
(计算机软件与理论专业论文)基于aop的web服务运行时监测技术研究与实现.pdf_第3页
(计算机软件与理论专业论文)基于aop的web服务运行时监测技术研究与实现.pdf_第4页
(计算机软件与理论专业论文)基于aop的web服务运行时监测技术研究与实现.pdf_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 w 曲服务构建了可互操作的分布式应用程序新平台,程序模块被封装为服务,以便在网络中被 描述、发布、查找及调用。多个服务可被合成为组合服务,提供更强大的功能。组合服务具有松散 耦合性和动态性,其执行行为可能会与原始需求描述不一致,因而有必要实施w e b 服务运行时监测。 论文重点关注于w e b 服务运行时监测技术的研究,提出了一种基于面向方面编程技术( a o p ) 的w e b 服务运行时监测方法。在服务监测实施前进行了一些准备工作,包括组合服务流程的设计、 静态模拟测试、模型验证以及部署服务后的远端调试等,这些措施确保了静态环境下设计的组合服 务流程的正确性。论文提出了一个新颖的服务监测框架:首先利用w s - p o l i e y 描述服务监控需求, 接着监控需求被进一步地表达为a o p 监控逻辑;其次,对a e t i v e b p e l 引擎进行了扩展,以便能够 动态地编织监控逻辑与服务核心执行逻辑,在服务运行时截获监控信息;接着用设计的检测算法, 依据监控需求表达图( m r e g ) 分析监控信息,判断用户的监控需求是否满足;最后,根据服务运行 时监测结果,对原有服务流程实施一些控制修正,以提高组合服务质量。在以上理论研究的基础上, 论文开发了服务监测实施辅助工具,完成一定的自动化应用。 论文阐述了w e b 服务监控逻辑表达、运行时监控实施、服务属性描述以及检验监控信息等一整 套方法。提出的监控逻辑表达方法简便易用、监测实施手段高效灵活、属性表达方式直观明了。实 例分析表明,该方法能够有效地实施w e b 服务运行时监测,工具应用也辅助了具体过程的实现。 关键词:w e b 服务,服务监测,a o p ,w s - p o l i e y ,a c t i v e b p e l 东南大学硕士学位论文 a b s t r a c t w e b8 e 1 n i c e sc o n s t r u c tan e wp l a t f o r mf o rt h em u t u a lo p e r a t i o n a ld i s t r i b u t e da p p l i c a t i o n a p p l i c a t i o n m o d u l ei se n c a p s u l a t e di n t oas e r v i c e ,s ot h a tw ec a l ld e s c r i b e ,d i s t r i b u t e ,s e a r c ha n di n v o k et h ea p p l i c a t i o n o nt h ei n t e r n e t m u l t i s e r v i c e sc a nb ea s s e m b l e di n t oas e r v i c ec o m p o s i t i o nt oo f f e rm o r ep o w e r f u l f u n c t i o n w i t ht h el o o s ec o u p l i n ga n dd y n a m i ca t t r i b u t e so ft h es e r v i c ec o m p o s i t i o n ,t h ei m p l e m e n t a t i o n b e h a v i o rm a yb ed i f f e r e n tf r o mo r i g m lr e q u i r e m e n t , s oi ti se s s e n t i a lt oi m p l e m e n tt h er i m - t i m e m o n i t o r i n g t h i st h e s i sp a i dm o r ea t t e n t i o no nt h er e s e a r c ho ft h em o n i t o r i n gt e c h n o l o g yo fw e bs e 疆- v i c o s a n a o p - b a s e ds o l v i c er u n - t i m em o n i t o r i n gm e t h o dw a sg i v e n s o m ep r e p a r a t i o nw o r ks u c ha sc o m p o s i t i o n p r o c e s sd e s i g n ,s t a t i cs i m u l a t i o nt e s t i n g , m o d e lv e r i f i c a t i o na n dr e m o t ed e b u g g i n ga f t e rd e p l o y i n gt h e s e r v i c ew a sd o n ea h e a do ft h es e r v i c em o n i t o r i n gi m p l e m e n t a t i o n a l lt h e s em e a s u r e sa s s u r et h e c o r r e c t n e s so ft h ed e s i g n e ds e r v i c ec o m p o s i t i o no nt h es t a t i ce n v i r o n m e n t an o v e ls e r v i c em o n i t o r i n g f r a m e w o r kw a sp u tf o r w a r d f i r s t l y , w s - p o l i c yw a su s e dt oe x p r e s st h em o n i t o r i n gr e q u i r e m e n t t h e n , m o n i t o r i n gr e q u i r e m e n tw a sd e s c r i b e da sa o pm o n i t o r i n gl o g i cf u r t h e r s e c o n d l y , a c t i v e b p e le n g i n ew a s e x t e n d e di no r d e rt ow e a v et h em o n i t o r i n gl o g i ca n dt h es e r v i c e0 0 1 0e x e c u t i o nl o g i cd y n a m i c a l l ya n d c a p t u r et h em o n i t o r i n gi n f o r m a t i o n t h i r d l y , ad e s i g n e dc h e c k i n ga l g o r i t h mw a si n t r o d u c e dt oa n a l y z e w h e t h e rt h eu s e r sm o n i t o r i n gr e q u i r e m e n tw a ss a t i s f i e da c c o r d i n gt om r e g ( m o n i t o r i n gr e q u i r e m e n t e x p r e s s i o ng r a p h ) f i n a l l y , s o m ec o n t r o la n dm o d i f i c a t i o nm e a s u r e sw e r ea d o p t e di no r d e rt oa d v a n c et h e q u a l i t yo ft h es e r v i c ec o m p o s i t i o n b a s e do nt h e s et h e o r i e s ,w ed e v e l o p e da na s s i s t a n c et o o l ( w s - m o n i t o r ) f o rt h ei m p l e m e n t a t i o no ft h es e r v i c em o n i t o r i n g i nt h i st h e s i s ,a ni n t e g r a t e dw a yi n c l u d e dw e bs e r v i c em o n i t o r i n gl o g i ce x p r e s s i o n ,r u n t i m e m o n i t o r i n gi m p l e m e n t a t i o n ,默2 1 - v i c ep r o p e r t yd e s c r i p t i o na n dm o n i t o r i n gi n f o r m a t i o nc h e c k i n gw a s p r e s e n t e da n ds t u d i o d ,1 1 l em o n i t o r i n gl o g i ce x p r e s s i o nm e t h o di sc o n o i s ea n dp r a c t i c a l t h em o n i t o r i n g i m p l e m e n t a t i o nm e a s u r ei se f f e c t i v ea n da g i l e 。乃ep r o p e r t ye x p r e s s i o nm a n n e r i si n t u i t i o n a la n de x p l i c i t c a s es t u d ys h o w st h a tt h em e t h o dc a ni m p l e m e n tw e b $ e r v i c er u n - t i m em o n i t o r i n ge f f e c t i v e l ya n dt h e a p p l i c a t i o no ft h ea s s i s t a n c et o o la l s oh e l p st h er e a l i z a t i o no ft h ec o n c r e t ep r o c e s s k e y w o r d s :w e bs e r v i c e ,s e r v i c em o n i t o r i n g ,a o p , w s - p o l i e y , a c t i v e b p e l l l 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名:3 竺牡e l 期: 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究牛签名:新签名:轴盈日期:业歹 第一章绪论 第一章绪论 在过去的数十年时间里,计算机技术取得了巨大的进步。程序设计与网络技术的发展促进了软 件开发和信息交流,同时也出现了一些新的信息处理计算模式。软件开发技术从结构化程序设计发 展到面向对象的程序设计,分布式计算使得网络中的各台计算机上的应用程序能够互相通信、交互 协作,共同完成计算任务。然而一般的分布式计算中应用程序间的互操作具有一定的限制,削弱了 分布式计算对于促进商业过程集成和自动化的能力。w e b 服务扩展了程序间的可互操作性,改进了 分布式计算能力,其通过将企业对外应用封装为基于统一标准的w e b 服务,实现异构系统之间的交 互形成了一种新的分布式计算环境,目前正处于不断发展完善的过程中。 1 1w e b 服务 以0 m g ( 对象管理组织) 的c o r b a 和m i c r o s o f t 的d c 伽为代表的一些现有的分布式计算技术,大 多都以某种方式特定于某些供应商或平台,对于不同供应商、不同平台的软件之间通信和共享数据 的支持非常有限。这就限制了应用程序组件在不同平台间的交互通信,而w e b 服务应用于异构和分 布式计算环境方式的革新,提供了集成分布式应用中各组件的公共框架。w e b 服务使用了开放的标 准,可以使任何两个软件组件进行通信( 即使它们所采用的编程语言和平台不同) ,从而改进了分布 式计算的能力。它把网络当作一个巨大的应用程序组件库,并且借鉴面向对象编程技术的优点,允 许利用现有的符合服务技术标准规范的软件组件构建新的应用程序,实现软件重用。 w e b 服务有多种不同的定义。简单来说,w e b 服务就是一个向外界暴露出的能够通过i n t o n e r 进行调用的a p i 或者说应用程序【i j 。文献【2 】中指出,w | e b 服务是一种软件程序,它使用x m l 并通 过公共的因特网协议来和其他软件交换信息。w 3 c 定义w e b 服务为一种能够被u r i 识别的软件应 用,其接口和绑定能够通过x m l 来定义、描述和发现,在基于网络的协议下,能够通过基于x m l 的消息交换和其它软件应用进行交互。事实上,w e bs e r v i c e 是一种自包含、模块化的应用,它能够 在网络上被发布、定位和调用。应用程序可被相关的w e bs e r v i c e 标准协议规范表示为对外提供服 务的接口,接口的相关功能、端口地址等描述信息发布在约定的标准中间体上,通过在中间体上查 找、选择、进而利用服务描述信息去调用所需要的服务,就完成了整个w e b 服务体系基本运作。 图卜1 面向服务的体系结构 以服务为导向的架构( s e r v i c e o r i e n t e d a r c h i t e c t u r e ,s o a ) 是通过业务服务的概念来提供i t 的 各项基本应用功能,让这些服务可以自由地被排列组合、融会贯通,以便在未来能随时弹性配合新 的需求而调整。s o a 3 ( s e r v i c eo r i e n t e d a r c h i t e c t u r e ) 是由i b m 建立的面向服务的体系结构模型( 如图 1 1 所示) ,它事实上就是w e b 服务体系结构【4 l ,这种基于服务的业务模型描绘了w 曲服务在网络中 交互的基本形式。w e bs e r v i c e s 是s o a 的一种具体实现方式,s o a 是由三种交互的w e b 服务角色 实体:服务提供者( s e r v i c ep r o v i d e r ) 、服务请求者( s e r v i c er e q u e s t e r ) 以及服务注册中心( s e r v i c e r e g i s 仃yc e n t e r ) 所组成,目标是将所有具备价值的i t 资源,不论是旧的或新的,都能够经过w 曲 s e r v i c e s 的封装,成为快速读取调用的i t 资产,并可将各种服务快速汇整,开发出组合式应用,达 到整合服务业务流程开发的目的。三种服务角色实体通过发布、查找和绑定操作彼此交互,过程中 涉及到w 曲服务最常见的三个基于x m l 的标准规范:w s d l 5 1 、s o a p 6 和u d d i t 。服务提供者 1 东南大学硕二七学位论文 把自己直接拥有的或能够提供的服务以w s d l 描述规范形式发布到服务注册中心里,从而向服务注 册中心注册了相关服务的功能及访问接口信息;服务注册中心依据u d d i 标准规范把发布来的w e b 服务进行注册分类,并且提供可搜索机制以便服务请求者发现需要的服务,事实上服务注册中心在 服务请求者和服务提供者之间起到一个沟通桥梁的作用;服务请求者使用查找操作在服务注册中心 中搜寻所需要的服务,一旦获知需求服务的描述绑定信息,将利用绑定操作以s o a p 消息与服务提 供者进行交互,从而真正地去使用服务。这种w e b 服务基本体系结构给出了在网络环境中服务交互 运作的基本模式,它是s o a 参考模型,提供了s o a 实现的抽象基础。然而,实际环境中的w e b 服 务实现架构模型设计都要在这一基本体系结构的基础上加以扩展,以适应多样性的实际应用需求。 1 2 研究背景 s o a 作为一种新的应用程序体系结构,以服务为框架中的基本单元隅】。而w e bs e r v i c e s 是当前 s o a 的一种比较广泛的实现方式,它是创建可互操作的分布式应用程序的新平台,可实现跨平台的 互操作,其不依赖于特定的语言和操作系统,适用于异构应用程序的集成,有利于软件重用。在 w e bs e r v i c e s 的平台下包含了一系列的标准规范,这些标准规定了应用程序如何在w e b 上实现互操 作。遵循这些标准,我们就可以用任何语言在任何平台上编写所需要的服务程序,之后再利用组合 服务技术来建立服务组合,服务组合具有的高度可集成性屏蔽了不同软件平台的差异。当前w e b 服 务基本核心标准规范已经比较成熟,如w s d l 、s q a p 、u d d i 等,相关标准的版本也在逐步提高和 完善。这些关于w e b 服务技术初始阶段的研究工作已不是目前研究的重点,随着研究工作的深入, 目前对w e b 服务的研究主要关注于服务组合的设计编排、服务核心功能以外的各种非功能属性的确 认、服务流程正确性保证等方面。 单个w e b 服务的功能往往比较有限,为了使w e b 服务能够提供更加复杂的功能,常常需要集 成几个分布在网络上的组件服务,以合成一个新的功能更为强大的组合服务。组合w 曲服务是一些 相互依赖和相互交流的组件w e b 服务的聚集,我们需要对合成在一起的组件服务在交互过程中的消 息传递、变量共享、流程协作等情况进行研究。相关研究工作主要包括:组合w e b 服务的设计、描 述、测试、建模、验证及组合服务运行时监测等方面。这些服务组合涉及到的研究方面的共同目的 是确保服务组合便于形成,且形成的服务组合能够良好地完成其预期功能,相关服务运行质量得到 保障。 组合服务的设计是指根据用户对服务的功能需求,结合现有可利用的服务情况,采用基于工作 流技术、基于w e b 服务语义描述等合成方法来设计组合服务的工作。这方面的工作可以借助于一些 现有的设计工具来实行一定程度的自动化,以建立服务流程模型并生成相关服务文档。借助于现有 比较成熟的设计工具可以提高设计组合服务的效率,减少开发者手工完成模型设计、建立及服务相 关文档编写的工作量,并大大降低了人工错误的概率。通过调查,当前这方面的支撑工具有 a e t i v e b p e ld e s i g n e r t 9 1 、o r a c l eb p e ld e s i g n e t g l o l 等,它们大多支持可视化的组合服务流程设计,并 自动化地生成相关服务描述标准规范文档。对于服务组合描述语言,当前已有了一些业务流程协作、 编排和编制的规范,如b p e l 】、w s c d l 1 2 】、o w l s 【1 3 】以及x p d l 1 4 j 等。它们从不同的视角对服 务组合中的流程控制和服务交互过程进行描述,定义了组合服务中的协作关系及详细服务交互过程。 在组合w e b 服务中,多个组件服务交互形成一个完整的商业逻辑以供服务请求者调用。整个服务流 程在静态环境和动态环境下的正确性,关系到最终用户感觉到的组合w e b 服务的质量( 见表1 1 ) 。 表卜1w e b 服务组合质量影响因素 2 第一章绪论 事实上,对一个组合服务的调用将依据组合服务描述规范进行,因此服务组合设计描述文档的 正确性很重要。在服务组合流程设计时,一些排除设计错误的技术被广泛使用,如服务流程设计后 的测试、依据设计文档对流程服务的建模验证、部署服务流程后的远端服务调试等。其中组合服务 测试包括设计服务文档后的用例数据模拟测试、基于服务规约的静态功能性测试以及服务演化修改 后的回归测试等。组合服务的验证主要采用模型检验【b 】或数学推理证明的方式来进行,以确认模型 是否满足服务相关属性规范( s a f e t y 、l i v e n e s s 及服务特定设计要求属性规范等) 。在对服务组合进 行测试、验证的过程中,常常需要为组合服务建立抽象的形式化模型,以便于具体的测试和验证的 实施。目前服务建模常见的方法有基于自动机模型、基于p e t r i 刚1 6 。、基于7 r 一演算【1 7 】等。在确保了 服务设计的静态正确性之后,设计的这些组合服务将被部署到实际的运行环境中以便用户的最终使 用。然而部署环境下的情况仍需要得到关注,服务提供者要确认组合服务在被部署之后仍然能得到 正确的运转,这可以通过服务部署后的调试工作来完成。 测试、建模、验证及调试方法的共同目的是为了确保设计的组合w e b 服务描述逻辑的正确性, 以及部署后模拟运行环境下流程运转的正确性。事实上仅仅保证了组合服务设计描述的正确性仍然 不够。在w e b 服务的实际执行过程中,各组件服务是动态被调用的,由于它们是松散耦合的,所以 组件服务实际调用执行情况及效果不一定与设计文档描述一致,这就不能保证相应组合服务流程的 质量要求。对w e b 服务组合在运行时实行监测,可以知道服务的实际执行情况,进一步可判断出服 务组合流程执行状况是否与最初设计要求或相关服务质量参数一致,从而为服务使用者在选择满足 自身功能、质量需求的w e b 服务提供参考信息,并为组合服务流程的质量改进优化给予指导。 1 3 相关工作 目前,对服务组合运行时监测的研究已经引起了学术界和工业界的极大关注。许多研究者提出 了各自的服务监测手段和技术,他们中有的在组合服务流程中加入专门的监测服务行为的功能模块 ( 如文献 1 8 】) ;有的对服务流程的描述规范进行扩展,添加监测功能标记( 如文献 1 9 】、【2 0 】) ;有 的在整个服务组合流程执行过程中生成专门的监测服务来加入原本的服务流程;有的在服务使用者 和被使用服务之间设置代理方来专门进行监测,等等。这些不同的方法都是为了监测服务流程执行 时的实际行为,检测出现的异常情况,从而最终实现服务的功能和改善组合服务的质量水平。通过 调查研究发现,在现有的主要监测方法中,第一类方法对原有的组合服务描述语言( 如b p e l 、o w l s 等) 进行扩展,以形成带监控功能的新服务流程( 如文献 1 9 1 、【2 0 】) ,这种方法改变了标准服务描 述文档和原本的服务流程结构,对其执行效率影响较大;第二类方法通过直接添加一般程序代码形 成监控引擎( 如文献 1 8 】) ,这虽然实现了服务核心逻辑与监控逻辑的分离,但需要一个中介( m e d i a t o r ) 来协调,对监控性能有所影响,并且监控的方面往往比较固定;第三类方法提出使用a o p 技术来实 现服务的监测,但一般这种方法没能从具体有针对性的用户监控需求方面出发,也没能指出根据具 体监控目标生成适应的a o p 监控代码的可行方法( 如文献 2 1 1 ) ,并且它们一般基于某种较难理解 的规范语言( 如文献 2 1 1 的r t m l ,文献 1 9 1 中的断言等) 来表达服务的属性,而在文献 2 2 1 提 出新的a o p 实现语言j a s c o 来在运行时监测服务有关属性便于选择服务时参考,但这种方式是在 服务执行时实时进行的,对于监测的合法及可控性考虑不够。总结这些方法,我们发现当前的一些 方法对监控方面的扩充有所局限( 如文献 1 9 】、 2 0 1 增加新的监控方面就需要定义新的扩展标记, 并把新标记映射到新定义的监控服务上,这对b p e l 相对稳定的标准性不利) ,或只能对服务流程自 身运行情况( 如流程的创建、终止,流程消息的收发) 进行截取,而对组成流程的基本服务的详细 执行情况监控不够。这些方法中的服务监控体制显得不够灵活,监控的方面往往比较同定,由添加 进的新标记或特定功能的监控器决定。在检测服务属性时,算法比较依赖于被检测的监控方面,如 文献 2 3 1 需要在服务属性描述自动机中添加否定和断言的操作语义,文献 2 1 1 在检验代数规范语言形 式的服务属性时需要引入很多重写替代规则,可以想象如果要检测其它监控方面,就要改变检测算 法引入更多规则,这不利于用户多样性监控需求的满足和检测算法相对稳定性的保证。此外据目前 所知,各类方法通常实施服务监测时没能考虑服务执行各参与方的综合视角,往往主要从服务执行 3 东南大学硕士学位论文 引擎角度出发,不利于调动服务提供者及服务终端用户的积极性。在文献 2 4 中提出用a o p 扩展b p e l 形成a 0 4 b p e l ,增强b p e l 规范描述服务组合的模块化和动态适应性能力,体现了a o p 分离服务横切 关注点和核心关注点的特性。这其实也是扩展b p e l 描述语言的一种方式,不利于当前b p e l 标准规 范机制下各种现有服务实现资源的重用。 本论文将针对多样服务监控需求便于扩充的要求,借鉴a o p 分离逻辑的优点来进行服务监测的 研究。并在监测实施方法中,考虑较好地发挥服务参与方的各自优势,一方面调动服务各参与方的 积极性,另一方面防止监测过程中对服务的破坏和非法操作的发生,最终较大限度地使整个监测系 统有效发挥效能,为服务质量的提高提供帮助。 1 - 4 本文的研究工作 1 4 1 研究内容 w e b 服务业务流程执行语言b p e l 是一种可执行语言,能够与各种促使业务流程自动化的软件 系统相兼容,其通过说明性的方式表达了进行w e b 服务合成的需求,描述组件服务的编排流程。目 前b p e l 已经成为w e b 服务编排的标准规范,它是基于w 曲服务的一个新的流程描述语言,利用 b p e l 标准,我们可以创建出能够完成如w e b 服务调用、操纵数据、抛出异常或终止一个流程等工 作的不同活动,然后将它们连接起来,从而创建出复杂的w e b 服务业务流程。 本论文以b p e l 作为服务组合编排语言,首先运用开源设计工具a c t i v e b p e ld e s i g n e r 进行组合 服务流程设计,并对设计的流程进行静态用例测试,接着采用模型检验技术验证设计所得b p e l 文 档,这样确保了静态环境下w 曲服务组合的正确无误。静态环境下服务流程设计文档正确性的确保 只是动态实施服务监测的准备工作( 不至于在动态环境下发现服务运转错误是因静态服务流程文档 本身问题引入) 。在动态环境下对服务组合流程实行监测,本论文的主要思想是采用面向方面编程技 术( a o p ) 2 5 】在扩展的新服务执行引擎框架下编织服务监控逻辑与服务流程核心执行逻辑,从而在服 务运行过程中非纠缠( n o n - i n v a s i v e ) 地获取其相关行为属性信息,这些信息进一步地被专门的检测算 法依照相关服务属性规范进行比较检验,以便判断服务组合的实际运行行为是否满足原本的服务流 程设计和用户的特殊质量属性要求。获得服务运行时监测结果信息之后,可根据实际服务流程情况 来采取一定措施改进原本的组合w e b 服务流程,提高其质量水平。 对服务实行监测主要包括两个方面的内容,即监控与检测。监控是对服务的实际执行情况的监 视,获取被关注的一些服务属性运行时信息;检测则是参照服务属性规范来对监控中获取的执行信 息进行判断分析,得出监测结果。在具体的监测实施过程中,我们需要加入相应的a o p 横切方面 模块至服务核心执行逻辑中,这些横切方面模块各自关注服务流程中横跨多个应用程序模块的服务 功能与非功能属性,如日志记录( 服务活动日志、服务消息日志、操作日志等) 、信息安全性要求 ( s o a p 消息传输模式、消息编码格式要求等) 、执行时间记录( 消息、活动、组件服务、服务流程 执行时间) 等。a o p 是一种非直接式地在多个服务功能模块中插入横切监控逻辑的方式,它通过定 义各种监控方面逻辑代码,在服务执行时自动动态地触发加入相关方面,形成编织程序,实现监控 功能。这种方法较小地影响原本服务的各组件模块;同时较少地影响被监控服务核心模块的执行; 这样的监控机制还有利于在服务的动态运行过程中,实时增减横切方面模块,支持用户选择监控需 求( 设定各监控方面逻辑的优先级、根据系统资源情况安排关键监控方面的实施) ;并且横切方面模 块与服务杨1 ) 功能模块的分离,使得两部分模块都能今后较好地被重用,有利于今后开发效率的提高。 监控方面逻辑与组合服务流程逻辑编织在起执行的过程中,触发a o p 方面中定义的一些与服务实 体元素相关的切点,在这些切点处定义了些操作行为,这些操作可以在不改变原有服务核心执行逻辑的 基础上,获取必要的关于服务运行时情况的信息。同时对组合服务的属性规范,我们提出用扩展的m s c 来进行图形化的表达,这种方法直观有效、易于理解。最终截获服务运行时监控信息后,再利用设计的检 测算法参照扩展的m s c 服务属性描述规范以及用户自定义的监控需求表达图( m r e g ) 两方面信息来测定 被用户监控需求是否满足。根据检测结果,我们可以采取适当措施对存在问题的服务流程设计进行故障提 示或控制修正( 如把低效或失效的组件服务加以替换、统筹预测优化组件服务调用等) ,以便优化整个服 4 第一章绪论 务组合流程,为w e b 服务的使用提供一定程度匕的质量保证。 论文研究内容的主体框架,如下图1 _ 2 所示: a c t i v e b p e ld e s i g n e r s p i na c t i v e b p e ld e s i g n e r l b p 瓣程一要衰要暑 静态验证 部署后远端 ( 模型检验) 调试漉程 i ,f 准备阶段l、i l 、, i , 监潮实 施阶 段)、i、 , 旧瓣忖蓄藿学差卜 a o p 监控方面! 监控需求方面 与服务核心逻; 辑编织运行 ; w s p o l i c y 表达 i a c t i v e b p e l e n g i n e 图1 - 2w e b 服务运行时监测实施总体过程 从图i - 2 中我们可以看出整个的w e b 服务运行时监测实施主要包含两个阶段:准备阶段和监测实施 阶段。准备阶段是为监测实施阶段做准备,其涉及到服务流程的设计、测试、验证与调试,采用a c t i v e b p e l d e s i g n e r 来设计b p e l 流程并用些静态用例数据来测试流程;采用s p i n 模型检验工具来验证流程设计 文档:最后借助a c t i v e b p f ld e s i g n e r 实施部署b p e l 服务流程后的远端调试。监测实旌阶段主要由四部 分组成:( 1 ) 用w r p o li c y 表达监控需求方面。( 2 ) a o p 监控逻辑与服务核心执行逻辑的编织运行。( 3 ) 用c h v i e w 检测器依照检测算法测定监控属性是否满足。“) 对服务流程的控制修正。 1 4 2 研究方法 本论文包括理论上的研究和工具的开发,涉及到多方面的理论知识、工具运用和程序开发技术, 主要有以下的相关方面: 相关理论:w e b 服务体系结构、服务描述规范w s d l 、服务组合规范b p e l 、服务消息规范s o a p 、 模型检验理论、m s c 啪1 相关知识、w s p o l i c y 规范埋引、面向方面编程等。 相关工具:a c t i v e b p e l 啪1d e s i g n e r 、a c t i v e b p e le n g i n e 、s p i n 啪模型检验器等。 开发技术:e c li p s er c p 程序开发、a s p e c t j 程序啪1 、j a v a 程序设计等。 针对这些相关知识,在论文的研究工作中,需要采用以下的一些方法和手段来处理。首先,对 于涉及到的理论知识要深入仔细地去学习掌握,并注意理论与论文实际研究方面的结合,加深对知 识的理解和提高运用知识解决实际问题的能力。其次,广泛阅读相关研究领域方面的文章,开阔对 问题理解的视野,归纳总结相关研究= 作的特点,从中获取有助于论文研究的启示和帮助。再次, 对相关工具学习研究逐步熟练使用,学习理解模型检验器的原理,结合w e b 服务流程的特点灵活地 将t 具运用剑服务相关属性验证上。最后,根据研究中工具开发的需要,熟练e c l i p s e 平台程序开发, 为辅助工具的开发做准备。 i 4 3 研究目标及价值 w e b 服务具有独特的性质,如动态性( d y n a m i s m ) 、异构( h e t e r o g e n e i t y ) 、自治( a u t o n o m y ) 、不可 预测性( u n p r e d i c t a b i l i t y ) 等。此外服务运行的网络环境的本身也具有一些不稳定性因素( 链路状态、 拥塞超时、网络攻击等) ,这就使得维护服务组合质量非常重要。首当其冲的就是要对w e b 服务实 行运行时监测,以发现服务执行过程中出现的问题,在此基础上根据发现的问题采取具体的应对措 施,以改善服务能力及服务上下文环境状况。 本论文介绍了w e b 服务组合的设计、测试、验证及监测的整套基本过程,其中重点关注于服务 在运行时的监控与检测的施行,给出了用户监控需求描述、a o p 监控逻辑方面表达及代码生成、组 合服务属性描述以及对监控结果的检测算法。这些对服务动态行为监测方法的实施,方便了用户对 5 东南大学硕士学位论文 组合服务监控需求的实现。用户在执行相关组合服务之前提出对服务的监控需求方面,以便于对服 务的实际执行情况有所了解,也有利于今后的调用选择。从长远的目光来看,动态监测的实施有利 于组合服务流程的正确性和可靠性的把握,对服务质量的提高给予支持,有利于被监测组合服务流 程被越来越多的用户接收和采用。 现有的一些对组合服务监测的方法一般直接加入监控代码,方法中监控逻辑直接插入到相关的 服务执行逻辑部分,这样的方法对服务的执行影响较大。而且被监测的服务属性往往分布在组合服 务流程的多个部分里,对于一个服务监控需求方面,可能需要在服务的多个部分进行修改插入监控 代码,这样不仅低效,也不利于服务流程的重用。在本论文中采取的监测方法中,监测部分的实施 与服务功能主体并行执行,且不需要把监控逻辑直接插入服务执行代码的各个相关部分中,从而较 小地影响原本服务的性能。这种用专门a o p 监控方面逻辑模块来表达用户所关注的监控需求的方 法,不需要直接修改原有的服务模块,省去了许多麻烦。同时,不同监控需求各自被用相应逻辑方 面模块来表达,也方便了监控模块的增删,以达到动态增减监控需求方面的便利。总之,采用a o p 方面来实现服务监控需求的方法,既是高效的也是有益的,在服务组合的监测实施中有着重要的作 用。 由以上的讨论和说明,我们可知论文的研究在理论和实际应用中均具有一定的研究价值,为 w e b 服务组合的质量保证提供了一些方法和措施i 本论文的最终研究目标是建立基于a o p 技术的 服务运行时监测框架,在理论研究的基础上实现其中涉及到的辅助工具的开发,来帮助具体方法应 用的自动化,提高w 曲服务组合质量维护的便利性。 1 5 本文的章节安排 论文主要包含了七个章节。 第一章绪论部分,主要介绍了w e b 服务的概念,并分析了服务组合的设计、测试、验证及监测 的研究现状,指出本文的研究背景,最后给出了本文主要的研究内容、研究方法及研究目标、价值。 第二章介绍了具体的组合w e b 服务流程的设计、测试与验证的实施。利用a c t i v e b p e ld e s i g n e r 进行服务流程的设计与用例数据测试,并采用s p i n 模型检验器进行服务流程的形式化验证。 第三章描述了服务监控需求的表达,用w s - p o l i e y 模型和文档表达用户对服务的监控需求,并 把这种需求进一步转化成a o p 监控方面,生成监控逻辑。 第四章是服务监测实施部分,提出了基于a o p 的监测实施框架,并模拟实施了服务的监测;用 e m s c 和胍e g 对服务属性及监控目标进行了表达,并用设计的检测算法来检验监控信息;最后实行 了服务流程的控制修正。 第五章介绍了监测系统工具的设计与实现。描绘了系统的结构及采用的开发技术,给出一些工 具实现的界面效果。 第六章用具体的实例来进一步说明整个t 具的使用及监测的具体实施过程。 第七章给出本文的工作总结,并指出了进一步的研究工作方向。 6 第二章服务流程设计、测试与验证 第二章服务流程设计、测试与验证 w e b 服务组合通常表现为编制的服务流程,流程中定义了组合服务是如何调用各协调交互的组 件服务以完成组合服务复杂功能。b p e l 4 w s 目前已成为组合服务流程描述的标准规范之一,其定 义了流程之间以及合作伙伴之间使用w e bs e r v i c e s 进行交互的状况。b p e l 定义的可执行业务流程 使用基本的和结构化的活动进行w e b 服务组合工作流描述,这些活动指明服务组合各部分的执行模 式,而通过b p e l 指定的服务流程模型中的各具体活动的实现细节又是基于w s d l 来进行描述的。 因此用b p e l 描述规范来设计w e b 服务流程主要就是设计b p e l 与w s d l 文档。 对w e b 服务实行运行时监测首先要检验各组件服务运行时是否符合它们自身的契约( c o n t r a c o , 然后再进一步检验合成在一起的服务流程是否符合设计需求。可能尽管被流程调用的各组件服务执 行是正确的,但因服务流程文档本身设计存在问题,这样最终表现出来的监测结果显示w e b 服务流 程出错。可见在服务运行时监测实施前,保证设计的服务流程描述文档的正确性很重要,这将是本 章关注的主要内容。由于本章的内容只是实施w e b 服务运行时监测准备阶段的工作,因而涉及到的 相关服务流程测试与验证部分只给出方法的介绍性说明,不去作过于详细的展开论述。 2 1b p e l 服务流程设计及测试 服务流程一般是针对组合服务( c o m p o s i t es e r v i c e ) 而言的,其主要是为了利用现有的若干单个组 件服务( c o m p o n e n ts e r v i c e ) 的交互协作实现满足用户需求的复杂功能。把多个w 曲服务合成为一个 组合服务的方法既能方便快捷地形成具有新功能的应用程序,又能很好地利用原有的分布在网络不 同部分的历史应用程序模块,有利于软件复用。本节我们将进行b p e l 描述的w e b 服务流程的设计 工作,根据用户对新w 曲服务的业务功能合成需求,结合现有可利用服务情况,遵照b p e l 业务流 程描述规范编制合成新的组合服务。此外设计好b p e l 组合服务流程后,在将服务流程部署到运行 服务器中之前,可以对设计的服务流程进行一些静态的测试。在测试的过程中,利用一些依据服务 需求规约或设计文档生成的测试用例来对组合服务流程进行结构化或功能性的测试,从而可以发现 设计的服务流程中存在的错误,以便进一步明确需求、修改原本的设计或者根据情况选择新的组件 服务重新设计组合服务流程。这样的设计、测试过程是可以循环重复的,直到现有可以利用到的测 试用例检查不出服务流程错误。实际的过程中,针对设计的服务流程复杂性情况,我们可以采用手 工测试检查或利用一些测试自动化工具辅助高效地实行测试的办法。 2 1 1a c t i v e b p e ld e s i g n e r 简介 开源工具a e t i v e b p e ld e s i g n e r 是一个创建、测试及部署基于b p e l 标准的组合服务流程的可视 化环境。其提供的可视化图形界面使得用户可以关注于合成服务流程的图形建模工作,而不必手工 地去编写复杂的b p e l 文档,相关的文档编写工作都由a c t i v e b p e ld e s i g n e r 自动完成,当然用户可 以在文档编辑器里进行适当的修改。并且,工具中允许用户用自己的样本数据来模拟测试设计的服 务流程的运行,并定位测试中发现的错误。 开源辅助t 具的使用可以减少手工设计服务流程文档的t 作量,并尽量地减少人为引入的错误。 同时,利用附带的一些测试模拟环境也方便了设计者检查自己设计的服务流程正确性,以便于完善 设计。 2 1 2 服务流程设计 通常,根据服务请求者的业务功能需求描述,我们可以基于现有的组件服务w s d l 描述信息, 遵照相关的服务组合规范来设计出一个业务流程。这个流程按照定义的业务逻辑关系调用包含的相 关组件服务,各组件服务间配合交互共同完成业务功能。事实上,完成服务流程的设计工作可以看 成对服务合成的图形化建模。流程建模实现了对业务流程模型的规划和设计,采用的图形化设计模 型元素与业务流程包含的服务组合标准语言元素间建立了映射机制,从而便于将设计的工作流模型 转化为标准可执行的服务流程语言,如b p e l 等。 7 东南大学硕士学位论文 流程建模是对服务业务模型进行集中设计,并可对模型进行管理。流程建模通常使用一些活动 图形和常用结构图来设计业务模型,用图像显示方式建造内部和外部不同组织的控制流模型。流程 建模创建了流程架构,实现了层次控制和对以往流程的重用

温馨提示

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

评论

0/150

提交评论