(计算机应用技术专业论文)基于主动服务的构件组装研究与设计.pdf_第1页
(计算机应用技术专业论文)基于主动服务的构件组装研究与设计.pdf_第2页
(计算机应用技术专业论文)基于主动服务的构件组装研究与设计.pdf_第3页
(计算机应用技术专业论文)基于主动服务的构件组装研究与设计.pdf_第4页
(计算机应用技术专业论文)基于主动服务的构件组装研究与设计.pdf_第5页
已阅读5页,还剩56页未读 继续免费阅读

(计算机应用技术专业论文)基于主动服务的构件组装研究与设计.pdf.pdf 免费下载

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

文档简介

武汉理工大学硕士学位论文 摘要 主动服务是一种全新的、面向用户的w e b 服务定制方式,它能够自动适应 用户的服务需求,在i n t e r a c t 上为用户发现,定制和运行能够满足用户需求的 构件程序。 构件技术的发展为实现主动服务提供了基础,异构构件描述信息通过相应 的映射算法转化为通用构件描述语言,使得实现异构构件之间的调用成为可能。 作为主动服务的实现机制程序挖掘,以构件技术为基础,其基本思想 是:分析用户的需求,从构件资源库中查找所需的构件,并把这些构件组装成 满足用户需求的程序。 构件组装是程序挖掘的一个关键环节。构件组装利用组装工具,按照程序 组装的执行过程,将松散耦合的异构构件组装成一个有机的整体,然后添加适 当的粘合代码,实现组装并且编译发布。构件组装涉及到软件体系结构描述、 组装机制、构件查找匹配、程序验证和组装编译等诸多内容。 本文提出的基于主动服务的构件组装采用构件组装智能代理机制,借鉴结 构化的思想,把构件组装智能代理系统分成三个主要部分:运行脚本解析器, 主要负责解析用x m l 文档描述的运行脚本;构件控制器,主要实现构件之间 的数据传送、消息发送、控制转移等功能;构件包装器,主要负责建立构件与 运行环境间的联系,通过接收其它构件对构件功能的调用消息,将功能调用定 位到具体的操作方法上,调用构件并接收其执行的返回结果。按照构件之间的 调用执行关系,把构件控制器分成顺序控制器、分支控制器、循环控制器和并 行控制器,通过修改相关控制器的实现就能对组装进行调整,而不影响系统的 其它部分,从而提高系统的可靠性、可维护性和灵活性。 最后本文以一个组装实例对基于主动服务的构件组装智能代理系统的可行 性和合理性进行了验证。 关键字:构件,程序挖掘,智能代理,构件组装 武汉理工大学硕士学位论文 a b s t r a c t a c t i v es e r v i c e si sak i n do fb r a n d n e wa n du s e r - o r i e n t e d c u s t o m i z a t i o n i tc a na d a p tt ou s e r ss e r v i c ed e m a n da u t o m a t i c a l l y d i s c o v e r ,c u s t o m i z ea n dr u nt h ec o m p o n e n tp r o g r a mo nt h ei n t e m e t m e e tt h eu s e r sn e e d w e bs e r v i c e s a n da l s oc a n ,w h i c hc o u l d t h ed e v e l o p m e n to fc o m p o n e n tt e c h n o l o g yp r o v i d e st h eb a s i so fi m p l e m e n t i n g a c t i v es e r v i c e s t h eh e t e r o g e n e o u sc o m p o n e n td e s c r i p t i o ni n f o r m a t i o nt u r n si n t o u n i v e r s a l c o m p o n e n td e s c r i p t i o nl a n g u a g et h r o u g ht h ec o r r e s p o n d i n gm a p p i n g a l g o r i t h m ,w h i c hm a k e si tp o s s i b l et oa c h i e v et r a n s f e r r i n ga m o n gt h eh e t e r o g e n e o u s c o m p o n e n t s a st h ei m p l e m e n t a t i o nm e c h a n i s mo fa c t i v es e r v i c e s ,p r o g r a mm i n i n gi sb a s e d o nc o m p o n e n tt e c h n o l o g y t h eb a s i ci d e ai st oa n a l y z eu s e r sd e m a n d ,r e t r i e v et h e c o m p o n e n t sf r o mt h ec o m p o n e n tl i b r a r yw h i c hc a nb ea s s e m b l e dt h ep r o g r a mt o m e e tt h eu s e r sd e m a n d c o m p o n e n ta s s e m b l yi st h ek e yt op r o g r a mm i n i n g a c c o r d i n gt ot h ea s s e m b l y s t r u c t u r e ,t h el o o s i n gc o m p o n e n t sa r ea s s e m b l e di n t oa no r g a n i cs y s t e mb ya d d i n g g l u ec o d e s ,t h e nt h es y s t e mi sc o m p i l e da n di m p l e m e n t e di n t ou s e r sr u n n i n g p l a t f o r m t h ec o n c e p to fc o m p o n e n ta s s e m b l yi n v o l v e st h ed e s c r i p t i o no fs o f t w a r e a r c h i t e c t u r e ,a s s e m b l ym e c h a n i s m s ,c o m p o n e n t sr e t r i e v a l ,a s s e m b l y s t r u c t u r e c h e c k i n g a n dc o m p i l i n g , e t c i nt h ep a p e r , i tp r o p o s e st h ec o m p o n e n ta s s e m b l yb a s e d0 1 1a c t i v es e r v i c e s a d o p t st h ec o m p o n e n ta s s e m b l yi n t e l l i g e n ta g e n tm e c h a n i s m b a s e do nt h e c h a r a c t e r i s t i c so fs o f t w a r ec o m p o n e n t sa n ds t r u c t u r e dm e t h o d o l o g y ,t h ec o m p o n e n t a s s e m b l yi n t e l l i g e n ta g e n ts y s t e mc a nb ed i v i d e di n t ot h r e ep a r t s t h ef i r s to n ei s p a r s e r , w i t ht h er e s p o n s i b i l i t yo fr e s o l v i n gt h es c r i p tw h i c hd e s c r i b e db yx m l d o c u m e n t s ;t h es e c o n di sc o n t r o l l e r , i ti si nc h a r g eo fd a t at r a n s f e r r i n g ,m e s s a g e s s e n d i n g , c o m p o n e n t sc o n t r o l l i n ga n ds oo n ;t h el a s to n ei s p a c k e ra n di ti s r e s p o n s i b l ef o re s t a b l i s h i n gt h er e l a t i o n s h i p sb e t w e e nt h ec o m p o n e n t sa n dt h e r u n n i n ge n v i r o n m e n t ,c a l l i n gt h ec o m p o n e n t sb yr e c e i v i n gt h ec a l l i n gm e s s a g e sa n d 武汉理工大学硕士学位论文 r e t u r n i n gt h er e s u l t s a c c o r d i n gt ot h er e l a t i o n s h i p sa m o n gt h ec o m p o n e n t s ,t h e c o n t r o l l e rc a nb ed i v i d e di n t of o u rt y p e sb yd i f f e r e n tf u n c t i o n s ,w h i c ha r es e q u e n c e , s w i t c h ,w h i l e ,f l o w i tc a na d j u s tt h ea s s e m b l yt h r o u g hc h e c k i n gr e l e v a n tc o n t r o l l e r b u tn o t a f f e c t i n gt h er e s to ft h es y s t e ms ot h a t i tc a ni m p r o v et h e r e l i a b i l i t y , m a i n t a i n a b i l i t ya n dt h ef l e x i b i l i t yo ft h es y s t e m n e x t ,t h ep a p e rp r e s e n t sa l le x a m p l eo fc o m p o n e n ta s s e m b l yt ov a l i d a t et h e f e a s i b i l i t ya n dr a t i o n a l i t yo ft h i sc o m p o n e n ta s s e m b l yi n t e l l i g e n ta g e n ts y s t e mb a s e d o na c t i v es e r v i c e s k e yw o r d s :c o m p o n e n t ,p r o g r a mm i n i n g ,i n t e l l i g e n ta g e n t ,c o m p o n e n ta s s e m b l y m 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育 机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何 贡献均已在论文中作了明确的说明并表示了谢意。 签名:l 趟毂e l 期:巡:纪 关于论文使用授权的说明 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即学校有权 保留、送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部 或部分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 参厂矿 垄物:趔掣 武汉理工大学硕士学位论文 1 1 研究背景 第1 章绪论 随着电子商务与其它应用的迅速崛起,w e b 服务的应用从信息发布与共享 朝着新的分布式计算模型转化。人们开始把w e b 服务作为一个新型的计算平台 和工业标准,以便用户可以拥有很好的互操作性及可根据需要组合新的应用。 w e b 服务不仅提供和发布信息,也可进行事务处理和设备代管等服务。i n t e m e t 不再仅是一个信息发布和共享的演示网络,正成为能够为用户提供所需要的各 种服务的智能平台,各种用户都在这个平台上得到所需要的服务【1 】。 因此,用户对i n t e m e t 的应用需求正在发生较大的变化。首先,用户对 i n t e m e t 应用的智能化程度要求越来越高,人们希望网络不再仅提供那些固定 的、一成不变的服务,而是要求网络所提供的服务能够根据应用的变化而变化; 其次是对i n t e m e t 应用的需求越来越个性化,对于同样的网络应用服务,不同 的用户有不同的个性化服务需求;第三是用户对i n t e m e t 的应用要求具有更加 综合化的倾向。 针对这种用户应用需求的智能化、个性化和综合化的发展趋势,学术机构 和企业都在加大研究和开发力度以应对这个挑战。微软的m i c r o s o f t n e t 平台、 i b m 的w e b s p h e r e 、s u n 的s u n o n e 等都是为了应对这种挑战,为用户提供更好 的i n t e m e t 服务和支持开发而成的。而u d d i 2 - 3 ( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r y a n di n t e g r a t i o n ) ,w s d l i z , 4 1 ( w e bs e r v i c e sd e s c r i p t i o nl a n g u a g e ) ,s o a p t z , 5 j ( s i m p l e o b j e c ta c c e s sp r o t o c 0 1 ) ,x m l l 6 ( e x t e n s i v em a r k u pl a n g u a g e ) 等协议和标准则以 不同的方式支持i n t e m e t 上的w 曲服务。 1 1 1 一种新的w e b 服务定制方式 尽管w e b 服务正在成为一种为用户提供更加综合和个性化i n t e r n e t 服务的 有效解决方案和新的应用模式与平台,但就w e b 服务的核心支持技术和服务模 式而言,仍有较多的问题需要研究和解决。例如,如何使w e b 服务根据用户的 需求而变化,如何在这个变化过程中对i n t e r a c t 所提供的服务进行定位、协调 武汉理工大学硕士学位论文 通信,并对其执行结果进行评估和验证,如何评价和保证新服务的服务质量和 安全性等,都是目前的w e b 服务所未考虑和尚待解决的问题。因此,一种基于 w e b 服务的新的服务计算模式主动服务【l j 就应运用而生。主动服务计算模 式能够自动适应用户的服务需求,依靠相关的工业标准和i n t c r n e t 上已有的构 件资源,为用户发现、定制和运行能够满足用户需求的构件程序。 主动服务是一种面向用户的服务,体现以人为本的思想,使i n t e r a c t 用户 能通过与i n t e r n e t 连接的各种器件与设备,方便地共享i n t e r n e t 上的各种计算资 源,而不管这些资源运行在何种操作系统环境下,也不管是否需要进行重新组 装和编译。 除了支持w e b 服务的各种技术和标准外,要实现主动服务,构件技术、程 序挖掘技术和智能代理技术等都是非常重要的,异构构件的组装是实现主动服 务必不可少的重要环节。 1 1 2 程序挖掘理论 如果w e b 或程序中的程序无法被重组和复用,或者重组和复用很麻烦,就 无法实现主动服务。构件技术的发展为软件的复用和实现主动服务提供了实现 基础。 构件不同于传统程序中的库函数和面向对象技术中的对象模块,不需要编 程人员在编程过程中使用过程名和参数等进行调用,而只需要像“搭积木一那 样通过简单的拼接就能构成新的功能模块。构件只需提供该程序功能的功能描 述和相关接口定义,屏蔽了所有的程序内部实现细节。尤其在基于j a v a b e a n l r l 、 f _ j b 踟、a c t i v e x 9 】等构件标准的产品被开发出来以后,编程人员在不同的环境下 共享构件变得更加容易。 通过构件技术f l o 1 1 】来实现主动服务,需要一个工具和方法来完成用户需求 与实现此需求的构件之间关联,这种工具和方法就是程序挖掘【1 2 , 1 3 ( p r o g r a m m i n i n g ) 。进行程序挖掘的基本前提是i n t e r a c t 上要有足够多的构件,还必须按 照公认的标准清晰描述出构件所提供的功能。 文献1 1 指出,用户向i n t e r a c t 提出服务需求会面临以下几种情况:第一种, 用户所访问的w e b 站点或相关链接上具有能够完成用户服务需求的计算程序 或工具;第二种,具有能够完成部分用户服务需求的计算程序或工具;第三种, 不具有能够完成用户服务需求的计算程序或工具。遇到第一种情况,用户很容 2 武汉理工大学硕士学位论文 易得到所需要的服务,对于后两种情况,用户不能立即得到所需要的服务,就 需要程序挖掘系统去发现、搜索那些能提供所需要功能的构件,并把它们按用 户需求进行组装和编译,然后形成所需要的执行代码。这些代码在执行后为用 户提供所需要的服务。 1 2 国内外的研究现状 近年来,构件组装技术的研究和应用正多角度、多方位地发展着。有的从 软件体系结构的角度研究构件组装技术,有的从基于代理( a g e n t ) 的角度研究, 有的在研究开发一种构件组装的自动机,以达到构件组装自动化的目的等。 在构件规范化方面已经取得一定的成果,如o m g 1 4 j 的c o r b a l l 5 】, m i c r o s o f t 的c o m 1 6 j ,s u n 的j a v a b e a n e j b 。但是,对于构件的描述规范化还 没有统一。采用什么样的形式来描述构件,需要描述构件的哪些方面的属性, 依赖于不同公司的构件组装平台。这样不统一的描述,不利于构件在不同的组 装平台上进行快捷的组装。尽管不同的构件组装平台对于构件的描述要求不一 样,但主要的描述信息大致相同,这给构件描述规范化奠定了基础。 构件组装操作是构件组装技术的一个重要研究课题。构件与构件之间不仅 会出现简单的组装操作,也会出现复合的组装操作。目前,对于构件组装操作 的研究己有进展,但一个最小的、完备的、正确的简单组装操作集到底应该包 括哪些组装操作还没有定论。对于构件组装操作的描述也没有达到统一的规范 化程度,而这些描述是达到真正的构件组装所必需的l r 丌。 软件开发人员在开发一个系统的时候,往往要设计出这个系统的框架,构 件组装同样需要这样的框架,并且需要用某种语言精确、正确的描述出来,才 能作为构件组装自动机的输入。但是,目前没有出现那种通用性较强的构件组 装平台,一般的构件组装都是通过客户程序员采用手工的方法实现的i l 引。 在构件组装描述语言方面,国外己有许多的研究,如b m l t l 9 l ( b e a nm a r k u p l a n g u a g e ) 和c o m l 2 0 l ( c o m p o n e n tm a r k u pl a n g u a g e ) 。这些语言都要求具有平台 相关性,并且都仅仅是对组装的描述,不涉及与之相关的信息。 国内从事这方面的研究的机构也有不少,有北京大学软件工程研究所、中 国科学院软件研究所、上海普元、互联网实验室等。其中,北京大学软件工程 研究所的青鸟工程已经取得了丰富的成果,在构件组装体系结构,构件组装的 3 武汉理工大学硕士学位论文 机制以及构件组装的行为推导方面都均有成果发表f 2 1 ,2 御。其它的机构在构件组 装技术方面也有不少研究成果,但都只是对与构件组装相关的技术的研究或者 领域内的组装,还没有真正完全实现构件组装的自动化。可以预见,组装自动 化将是今后软件构件技术,特别是构件组装技术的研究重点。 1 3 主要研究内容 本文主要研究异构构件的通用构件描述语言u c d l 以及构件组装机制,重 点研究常用构件描述信息与u c d l 的转化、基于主动服务的构件组装的u c d l 构件代理,使得能够把满足或接近满足用户需求的一组构件,组装成一个新的 可执行的满足用户需求的构件,提高构件的可复用性。 本文涉及内容包括构件描述语言,异构构件的组装过程,u c d l 构件代理。 1 4 本文的组织结构 本文共分为六章: 第1 章:绪论,介绍本课题的研究背景,分析国内外主动服务的研究现状 及主要问题,提出本文的研究内容。 第2 章:构件技术与主动服务,介绍构件技术的基本概念,包括构件的定 义、构件的接口和规约等,还有主动服务的理论知识。 第3 章:主动服务的构件组装,介绍了通用构件描述语言,常用构件描述 信息到通用构件描述语言的转换算法,以及构件组装方式及执行过程。 第4 章:基于主动服务的构件组装智能代理设计,提出了基于主动服务的 构件组装智能代理系统,并按功能模块划分,把该智能代理系统分成运行脚本 解析器、构件控制器、构件包装器三个主要部分。 第5 章:基于主动服务的构件组装系统实例分析,介绍了基于主动服务的 构件组装的运行环境,按构件组装的执行过程实现一个由基于主动服务的构件 组装智能代理系统组装的应用程序。 第6 章:总结与展望,在本论文主要工作总结的基础上,对下一步的工作 提出了展望。 4 武汉理工大学硕士学位论文 第2 章构件技术与主动服务 构件技术是主动服务的基础,以构件技术支持的软件实体在i n t e m e t 上形 成了可复用的程序资源,使得i n t e r n e t 具备了面向用户提供服务的能力。 2 1 构件技术 2 1 1 构件的概念和定义 构件是指具有相对独立功能的、可复用的软件模块,以面向对象技术为基 础,但不同于对象。与对象相比,构件更加强调良好的封装性,构件将相关程 序细节全部封装于构件内部,对外只提供构件的功能和复用接口。同时,构件 的粒度一般更大,更强调功能上的完整性,有些构件本身就是一个完整的应用。 一般而言,构件应具有以下特点: 1 复用性。复用是构件存在的意义,也是构件技术发展的动力。复用包括 可复用性和易复用性。与传统的软件复用技术相比,构件技术更关注构件的易 复用性。 2 封装性。构件封装了设计和实现的细节,仅通过接口与外界交互。对于 使用者来说,构件封装是为了提高构件的易复用性,这对构件的封装提出了更 高的要求。不仅要对使用者隐藏构件的实现细节,而且应隐藏构件的复杂的组 装过程。 3 适应性。构件在组装过程中按照不同的应用需求进行适当的调整。构件 复用的目标就是使构件能在尽可能多的组装环境中组装。 4 组装性。构件通过组装可以形成粒度更大的整体。在组装过程中,构件 要主动参与和完成组装过程。构件组装应以构件模型、构件架构的建立和标准 化的运用为主要特征。 2 1 2 构件接口 基于构件的开发方法是按照满足预先定义的功能要求将构件集成到应用系 5 武汉理工大学硕士学位论文 统的过程,每个构件提供服务并向其它构件请求服务。构件接口是构件间信息 通信的机制,是对外展示的窗口。因此,构件接口定义是实现构件服务的关键 点。 构件与周围基础设施具有很大的相关性,从构件接口的交互作用角度可对 构件分成几个部分: 1 内部。这是构件的私有部分,描述了构件的内部信息和结构,提供了构 件通过接口所体现出的真实功能。该部分不对其它构件和所运行的平台显示。 2 应用程序接口。定义了与其它构件的交互作用,描述了与其它构件交互 的导入导出关系。导出接口描述构件所能提供的功能,导入接口描述构件从其 它构件所需求的功能。应用程序接口分为直接交互和间接交互,直接交互是构 件直接调用一个或多个服务,这种类型的交互在构件间创建一个直接耦合;间 接交互可通过一个标准的中间件或核进行交互,一个构件将服务发布到中间件, 其它构件发出请求,查询可能支持的服务而无不需知道其它构件,如c o r b a 、 c o m d c o m 等所处的位置。 3 平台接口。定义了构件与所运行的平台之问的交互作用,包括操作系统 调用、基础的硬件技术及通信系统。 2 1 3 构件规约 构件的规约面向的是构件的使用者和开发者。对于使用者,规约提供了对 构件接口的定义。对于开发者来说,规约提供了对其内部结构的抽象定义。 软件开发方面所应用的构件规约大都限制在语法规约方面。从构件规约中 所能获得的信息,也只是构件能够提供什么样的操作及参数的数目和类型。这 样的规约,主要是用于客户代码的检验以及作为独立开发的构件或应用系统之 间进行交互的基础。3 c 模型【冽是公认的可复用的构件模型,其命名主要来自 该模型描述构件所采用的3 个c 特征,即概念( c o n c e p t ) 、内容( c o n t e n t ) 、语境 ( c o n t e x t ) 。 1 概念。描述构件的功能,依靠其接口说明及所执行操作的语义描述表现 出来,使用者可以从概念描述中理解其功能。 2 内容。描述构件如何完成概念所描述的功能,如算法、结构等,是概念 的细化描述。 3 语境。即上下文( c o n t e x t ) ,就像语言总与上下文有关一样,构件在系统 6 武汉理工大学硕士学位论文 中的作用也与其它构件有关。构件的语境实际上就是描述构件与其它构件的关 系。这是构件中最复杂的特征描述,主要从概念语境、操作语境和行为语境几 个方面来考虑。概念语境指的是在给定系统中,构件在接口和操作语义上的相 互关系,操作语境是说明操作对象的特征,行为语境是说明一个构件在执行时 与其它构件间的相互依赖关系,如构件的执行顺序等。 除了3 c 模型外,产业界也有诸如r e b 0 0 1 【2 4 l ( r e u s eb a s e do no b j e c t o r i e n t e dt e c h n o l o g y ) 模型、c o r b a 模型、c o m 模型、e j b 模型,还有国内具 有代表性的青鸟构件模型j b c o m 2 2 ,2 5 】。这些模型将构件的接1 :3 与实现相分离, 增加了构件的可复用性。 2 2 主动服务简介 随着i n t e m e t 的发展,当前w e b 服务存在着以下两个主要不足,使w e b 服 务不能达到面向用户按需服务的要求:其一,现有的服务基于固定的计算模块 而无法进行功能扩展;其二,现有的服务基于静态的部署方法而无法感知用户 的需求变化。主动服务计算模式的出现,正是针对以上两个不足的解决措施。 2 2 1 主动服务的概念 主动服务是一种新的计算模式。主动服务能根据用户的服务需求,从 i n t e m e t 或本地网络中搜索、发现、挖掘出能够提供用户服务需求的程序,并组 装、编译和执行,为用户提供服务;而且,即使是同一种服务,主动服务也能 够根据用户的个性化要求和特点,对服务进行定制和帮助,从而改变w e b 服务 无法根据用户需求而动态变化、主动适应用户要求的状况。 文献f 1 】提出主动服务的研究主要包括以下三大部分: 1 主动服务的基本模型、系统结构、协议规范和描述。主动服务与w e b 服务的最大区别在于主动服务具有对用户服务需求的自主适应性,而w e b 服务 没有。 2 发现实现服务的程序和数据。w e b 服务依靠编程人员预置能提供这些 服务的程序,当用户要求这些服务时,系统激活后为用户提供服务。用户要求 主动服务时,有些服务是不可预知的,编程人员也不可能预置能提供这些服务 的程序。因此,主动服务的一个研究重点是如何发现和组织已有的程序,以及 7 武汉理工大学硕士学位论文 确认这些程序是否能够提供主动服务所需要的功能。 3 服务的定制。即使发现在i n t e r n e t 上有能够满足用户需要的程序,但如 何把这些程序组织起来,并在用户的软硬件平台和环境下链接、编译和执行, 仍是需要研究和有待解决的问题,也就是服务定制问题。构件技术的出现使构 件为用户提供在功能级上进行通信和调用的接口与标准,使用户不必关心构件 内部的实现细节;其次,软件研制人员对构件的长期研制与开发积累大批可供 复用的标准化构件,使得定制个性化服务成为可能。 2 2 2 主动服务模型 主动服务建立在w e b 服务技术规范上,搜索和挖掘i n t e r n e t 上的构件资源, 在一个开放、动态和自适应的框架内,实现面向用户的服务快速构造和按需计 算。 主动服务模型是在w e b 服务基础上,引入主动服务的发现、定制、加载与 使用机制导出的。主动服务模型是在现有的w e b 服务模型中引入了面向终端用 户的主动服务中介i l 2 6 ( a c t i v es e r v i c eb r o k e r ) 构成的,如图2 - 1 所示。 图2 - 1 主动服务模型【2 6 l 主动服务模型包括4 个角色和6 种基本操作【。 4 个角色分别是:服务使用者( r e q u e s t o r ) 、服务提供者 ( p r o v i d e r ) 、服务注册 中心( r e 舀s t r y ) 和主动服务中介( b r o k e d 。 8 武汉理工大学硕士学位论文 6 种基本操作分别是:发布( p u b l i s h i n g ) 、查找( f i n d i n g ) 、绑定( b i n d i n g ) 、调 用( c a l l i n g ) 、挖掘( m i n i n g ) 和提交( s u b m i t t i n g ) 。 在主动服务模型中,服务使用者、服务提供者和服务注册中心的作用与 w e b 服务模型中各个角色的作用完全相同,发布、查找和绑定三个基本操作的 作用也是一样的。 主动服务中介是系统和用户之间关于新服务的交互和执行平台。用户通过 主动服务中介向系统要求服务,系统通过主动服务中介获取和分析用户需求, 并在搜索和挖掘出能满足用户需求的相关服务之后对其进行组装定制,生成新 服务,再把新服务提交给服务提供者发布和执行。 当接受到用户的计算请求时,主动服务中介进行下面三个操作: 1 调用。主动服务首先尝试使用现有的w e b 服务来实现用户的计算请求。 先通过服务主动发现流程,试图找到能够直接满足用户需求的服务。如果在现 有的计算资源中存在这样的服务,则主动服务中介以一个服务使用者的身份使 用现有的w c b 服务调用机制调用相应的w r e b 服务。 2 挖掘。如果服务的主动发现流程不能发现满足用户计算需求的服务,主 动服务中介将调用程序挖掘模块,通过对现有服务资源的分析,挖掘搜索可能 的提供用户要求服务的程序资源,以产生新的符合用户需求的服务,满足用户 的计算请求。 3 提交。生成新的服务后,主动服务中介将把新服务的组合关系存储起来, 同时对组合后的新服务进行提交,通过现有的w e b 服务发布机制发布出去,以 利于下一次使用。 2 2 3 主动服务的实现过程 主动服务的实现过程可以分为三个阶段i l j :服务需求定义阶段、服务发现 与定制阶段以及服务执行发布阶段,具体的实现过程如图2 2 所示。 在服务需求定义阶段,当用户输入某个具体的任务后,首先通过服务主动 发现模块在i n t e r n e t 上寻找可完成该任务的服务,如果有合适的服务返回,则 直接执行该服务来完成任务;如果没有合适的服务完成用户任务,将调用需求 分析模块分解计算任务,最终形成服务的组装方案。 在服务发布与定制阶段,再次利用服务主动发现模块对组装方案中的服务 进行发现,并就所发现服务的组合关系、服务协商关系进行分析,动态完善服 9 武汉理工大学硕士学位论文 务的组装方案。在该过程中,服务的发现、分析及服务协商反复进行。在用户 的参与下,动态地修改和完善组装方案,整个过程呈现螺旋上升的交互过程, 直到形成一个完善的服务组装方案文档,该文档实际就是一个服务组装的定义。 l i 7 i 服务主动发现 jl 1 r l 田白霎世| 枯袜i 服务验证、执行l 朋厂面水捆硷 l 和发布、重用i j 1,j 1r l需求分析服务主动定制 服务需求定义服务发现与定制服务执行发布 图2 2 主动服务的实现过程【1 】 在服务执行发布阶段,当成功的完成服务组装后,用户已经有了一个完备 的服务组装方案,该文档中每个子服务的执行顺序、执行条件、执行方式都已 被清晰定义。将这一组装方案,连同涉及到的子服务提交至主动服务的执行环 境,验证其正确性以及是否满足用户需求。如果满足用户需求,则提交给用户 执行并将其进行注册发布以便重用;如果不能满足用户需求,则要求用户进行 反馈,以便修正和再次完善。 2 2 4 程序挖掘 程序挖掘是主动服务的实现机制。除了以w e b 技术为基础外,实现主动服 务的技术基础还依赖于构件技术、智能代理技术【2 7 ,2 8 刀l 和数据挖掘技术【3 0 ,3 。 构件技术支持的软件实体以开放、自主的方式存在于i n t e r n e t 的各个节点 上,形成了i n t e r n e t 上的可重组、可复用的程序资源。这些程序资源在i n t e m e t 上的出现、不断发展和积累,增强了i n t e r a c t 面向用户提供服务的能力,为实 现主动服务提供了程序基础。 智能代理技术的发展使程序模块具有了自学习和记忆能力,多智能代理及 其相应的支持平台还具有智能代理之间的协调和决策能力,为在i n t e r n e t 环境 下实现智能化的分布计算提供了可能。主动服务的许多功能都可通过智能代理 l o 武汉理工大学硕士学位论文 技术实现。 当用户提出服务需求之后,如果w e b 服务不提供相应支持,主动服务系统 则可通过对构件的重新组装和复用来构造满足用户需求的新服务。这就需要从 i n t e m e t 或构件库中搜索能够满足相应功能的构件,数据挖掘理论与方法为在 i n t e m e t 上挖掘和搜索构件提供了基础。 基于以上理论与技术,程序挖掘首先对i n t e r n e t 上存在的构件进行分类、 组织和存储。当用户提出服务需求之后,程序挖掘系统根据用户需求,分析识 别用户请求,搜索已有的构件,看是否存在满足用户请求的构件。如果不存在 这种构件,则用户请求被细分,并根据细分后的请求,再去搜索和组装构件。 如何方便地获取、组织、分析和挖掘i n t e m e t 上的构件,形成了程序挖掘 技术。程序挖掘的基本思想是:利用多个智能代理,分析用户计算请求,从 i n t e m e t 上的大量构件资源中识别、发现、获取所需的构件并自动组装,形成实 现用户所需计算功能的程序,并以服务的方式提交给用户,从而支持i n t e m e t 中的主动服务【矧。 1 程序挖掘的定义【3 2 】 程序挖掘是研究在i n t e r n e t 环境下,根据用户的服务需求,搜索挖掘在 i n t e m e t 上发布和存在的构件资源,并按给定的规范和标准进行组织、分类、存 储、识别、发现和检索,通过构件复用减少编程工作和实现主动服务的技术。 为了实现主动服务,程序挖掘技术需要对用户服务的需求进行分析和理解, 并将在i n t e r n e t 上搜索、挖掘到的构件资源进行统一组织和管理。因此,一个 程序挖掘系统至少应由以下部分组成: ( 1 ) 人机接口 3 3 ( i n t e r f a c ef o rp r o g r a mm i n i n g ) 。完成用户与程序挖掘系统之 间的通信和交互。用于输入用户请求,提供信息帮助和返回程序挖掘及相关服 务结果。 ( 2 ) 需求分析模块 3 4 1 ( r e q u i r e m e n t s a n a l y s i sm o d u l a r ) 。分析用户要求输入, 完成用户输入到构件系统的映射。 ( 3 ) 构件搜索引擎【3 5 3 6 1 ( c o m p o n e n ts e a r c h i n ge n g i n e ) 。搜索引擎包含两部 分,在i n t e r n e t 上搜索挖掘构件资源的部分和在构件资源库中检索提取构件的 部分。 ( 4 ) 构件组装与验证模块 2 s ( c o m p o n e n ta s s e m b l i n ga n dv e r i f i c a t i o n e n g i n e ) 。组装和执行搜索提取的构件资源,创建新的构件和服务。 1 l 武汉理工大学硕士学位论文 ( 5 ) 构件资源库( c o m p o n e n tw a r e h o u s e ) 。集中存储、组织和管理从i n t c r n e t 上搜索到的构件资源。 程序挖掘的一般过程如图2 3 所示。用户的计算请求经人机接口和智能代 理提交到程序挖掘服务器,程序挖掘服务器对用户需求进行分析和功能分解, 形成检索和提取构件的查询条件,在相关构件库中寻找满足查询条件的构件, 然后按照构件之间的依赖和调用关系,找出能够实现用户要求的计算功能的构 件组合,并将构件组装成可执行程序后执行。 开发者 用户 图2 3 程序挖掘过程1 1 j 2 程序挖掘过程 程序挖掘过程可分为两大部分。一是在i n t e r n e t 上搜索、挖掘和获取构件 资源,创建和扩展本地构件资源库的部分;二是根据用户服务需求,从本地构 件资源库中检索提取能够满足用户需求的构件资源,并组装执行的部分。 智能代理或相关搜索工具定时地在i n t e r n e t 上搜索和挖掘新的构件资源。 这些构件可以是专业构件库中的专业构件,也可以是在w e b 上由一般编程人员 发布的经过验证的构件或在w e b 上发布的仅供使用但不能下载的在线构件。如 果发现了新的构件资源存在,智能代理或相关搜索工具将按相关构件库和w e b 站点的约定,从构件库或w e b 网站下载所发现的构件,包括构件实体和构件描 述部分;如果该新构件资源是不可下载的在线构件,则下载该构件的功能描述 和该构件所在的网址u r l ,以便远程用户使用。 武汉理工大学硕士学位论文 由于构件具有不同的格式和类型,例如j a v a b e a n 和a c t i v e x 构件的格式完 全不同,在复用构件的过程中可能会出现需要共享不同格式和不同厂家开发的 构件的情况。因此,需要把不同格式和不同厂家的构件的描述部分转换成一个 公共的接1 2 1 描述u c d l 1 1 ( u n i v e r s a lc o m p o n e n td e s c r i p t i o nl a n g u a g e ) ,便于不同 格式和厂家的构件共享,使用户服务需求输入转换成可识别的搜索查询条件成 为可能。 在完成构件描述信息的格式转换和将不可下载的在线构件网址记录之后, 可将构件实体和构件描述信息以及在线构件的网址等按给定的组织方式存入本 地构件资源库中。需要指出的是,为了提高检索速度和系统的安全性,本地构 件资源可采用分布式方式组织。 在构建了本地构件资源库之后,用户通过给定的用户界面输入服务要求, 系统记录用户申请服务的相关信息。如果该服务需求已经存在,即不需要经过 进一步处理就可提供服务,则系统自动转到相关服务处理;如果用户所要求的 服务不存在,系统或构件搜索引擎要求用户需求分析与功能模块对用户的服务 需求输入进行分析和子功能分解。在需求分析和功能分解过程中,系统用x m l 等描述语言对服务需求和相关功能进行形式描述,以抽取出构件检索和组装用 的关键词表和功能顺序表。根据抽取出的关键词表,构件搜索引擎可从本地构 件资源库中搜索与给定的关键词相匹配的构件。如果这样的构件不存在,则返 回搜索失败等相关信息,如果搜索到与关键词相匹配的构件不止一个,构件搜 索引擎则把所搜索到的构件的功能描述部分返回给用户确认,以确定最适合和 最接近用户服务需求的构件。如果用户认为所搜索到的构件不符合需求,则用 户要对所输入的服务需求进行适当调整,使系统所进行的需求分析和功能分解 更加适合构件功能分解时产生的功能顺序表所给定的顺序,对搜索到的构件进 行组装,并形成一个新的构件。该新构件在验证之后放入本地构件资源库;同 时,对该构件执行即可获得用户需要的新服务。 3 程序挖掘的主要研究内容 程序挖掘是一件非常复杂的系统工程,涉及到人工智能【3 7 ,3 引、软件工程1 3 9 l 、 数据库和网络等众多的学科和领域。因此,这些领域和学科中所涉及的科学技 术问题都或多或少与程序挖掘相关。 但是,从在i n t e r n e t 上挖掘构件实现主动服务的角度看,程序挖掘的研究 重点主要集中在研究构件资源的组织、分类、管理、存储、识别、发现、搜索、 1 3 武汉理工大学硕士学位论文 程序复用和实现主动服务上。 ( 1 ) 用户的需求描述与分析 对用户需求描述的研究主要集中在对用户输入信息的识别、理解,功能提 取与分解以及如何把用户输入转换成形式化描述等。 用户输入是多样化的,例如声频、视频、文字、图标等都是常用的输入方 式。当用户用声频输入时,系统还面临着语音识别和自然语言理解问题。语音 识别和自然语言理解是人工智能领域长期的研究课题,有许多成果可供使用。 程序挖掘系统主要解决在程序挖掘过程中如何应用这些成果。 ( 2 ) 异构构件之间的调用 i n t e m e t 上存在多个专业的构件库,提供了如j a v a b e a n e j b ,c o m d c o m , c o r b a 等多种不同格式和厂商的构件。但由于这些构件在组织结构、

温馨提示

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

评论

0/150

提交评论