一种情境驱动的网构软件体系架构与支撑环境_第1页
一种情境驱动的网构软件体系架构与支撑环境_第2页
一种情境驱动的网构软件体系架构与支撑环境_第3页
一种情境驱动的网构软件体系架构与支撑环境_第4页
一种情境驱动的网构软件体系架构与支撑环境_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、一种情境驱动的网构软件体系架构与支撑环境基金项目:国家高技术研究发展计划(863)(the National High-Tech Research and Development Plan of China)“基于本体的网构软件环境感知体系与相关技术研究”。作者简介:黄晙(1985-),男,研究生,主要研究方向:上下文感知计算、分布式架构等;吴刚(1973-),男,博士,副教授,主要研究方向:情境感知计算、分布计算、普适计算等。黄晙,吴刚,马天笑HUANG Jun, WU Gang, MA Tian-xiao上海交通大学,软件学院,上海200240School of Software, Sha

2、nghai Jiaotong University, Shanghai 200240Email: sbdwhjA Context-Driven Architecture and Supporting System for InternetwareAbstract: While the detail of context of software entities on Internet is analyzed, this paper proposes a context ontology for the Internetware. Then an architecture of Internet

3、ware based on Context awareness and the design of the supporting environment are given. The mechanism for the Internetware to aggregate on demand and evolve dynamically under this architecture is also described in this paper.Key words: Internetware; Context awareness; Architecture; Service entity摘 要

4、:本文研究了Internet环境下服务实体所处的各种情境构成,给出了一个适合网构软件的情境本体定义。在此基础上,给出了一种基于情境感知的网构软件体系架构与支撑环境,并描述了在这一架构下网构软件按需聚合和动态演化的模型与机制。关键词:网构软件;情境感知;体系架构;服务实体文献标识码:A 中图分类号:TP3111、 背景为了应对Internet平台下开放、动态、难控等特点对应用的开发、部署、运行、维护带来的挑战,网构软件(Internetware)的概念应运而生1,它是一种柔性可演化、连续反应式、多目标适应的新的软件体系形态,主体化的软件实体之间通过按需协同的机制,形成一种与当前的信息Web相类似

5、的软件Web。网构软件的一个重要特征就是2:它应能感知内/外部环境的动态变化,并随着这种变化按照功能指标、性能指标或可靠性指标等进行静态的调整和动态的演化,以使系统具有尽可能高的用户满意度。也就是说网构软件不是按照明确的需求自顶向下开发而成的,它会随着环境的变化,不断发展不断演化。为了使网构软件在宏观上表现出自适应、自演化的行为,必须从软件系统的情境描述、环境感知、内部决策和协同演化等几个方面展开研究。目前的研究多是从已感知到环境的变化出发,研究软件实体如何动态调整自身的行为,而对于Internet情境应如何表达、情境变化应如何感知没有系统的研究和实用化的成果。本文所定义的Internet情境

6、是网构软件实体所处环境的一种抽象,不仅包括静态的信息还包括动态的运行时信息以及其他的一些非功能性需求,不仅包括实体外部环境的信息还包括实体内部的信息。Internet情境信息的描述与获取是网构软件自演化的前提和基础,而显然在开放环境下为了使不同的软件实体对感知到的情境都有合理的认知,一个显式的、语义化的Internet情境描述是必须的。本文以情境感知为核心,给出了一种基于本体的网构软件情境感知体系架构,并描述了在这一架构下网构软件的按需聚合和动态演化的模型与机制。具体包括,如何描述Internet情境?如何根据应用的需求和当前的情境,确定参与协同的多个自主运行实体,形成一个虚拟的运行环境以完成

7、这一应用?如何记录和传播情境的变化?如何根据情境的变化动态调整虚拟运行环境的结构以及某个自主运行实体的行为?本文第2节给出了基于情境感知的网构软件体系架构,并描述了在该环境支撑下网构软件按需聚合和动态演化的应用场景;第3节描述了情境本体的具体定义;第4节给出了一个基于该架构的支撑环境参考模型;最后讨论相关工作并总结。2、 网构软件情境感知体系架构网构软件的运行在于交互与协同,本文采用服务模型来描述自主软件间的交互关系,而不涉及服务的具体细节如通信协议等。典型的服务模型包括服务提供者、服务请求者和服务注册处。软件实体(本文称之为服务实体)在服务注册处的帮助下自主完成所需服务的定位,建立起软件实体

8、间的供需关系和虚拟的运行环境。定义(服务实体):服务实体是网构软件中的计算实体,具有一定的服务需求和服务能力,既需要别的服务实体所提供的服务,同时也能够为其它服务实体提供服务。也就是说,它既可以是服务请求者,也可以是服务提供者。图1是本文给出了网构软件情境感知体系架构。 图1 网构软件情境感知体系架构 一个基本的运行流程如图1所示:(1)服务实体B通过轻量级的目录服务完成服务的注册;(2)服务实体A通过目录服务获得候选服务实体的描述地址;(3)实体A根据地址获取候选服务的情境描述,包含所需的静态与动态情境描述;(4)实体A根据获得的情境与应用的需求自主确定所需的服务实体及其聚合关系,形成虚拟的

9、执行环境;(5)同时,实体A将订阅虚拟执行环境中各服务实体的情境变化;(6)按照应用的需求展开服务的调用。在执行过程中,被订阅的情境所发生的变化将被传递到实体A,而实体A将根据相应的规则进行自适应调整或启动新的聚合过程,以实现动态的演化。2.1 轻量级目录服务本文的轻量级目录服务,指目录服务器上存储的并不是服务实体的整个描述,而只是服务实体的情境描述地址。影响服务实体聚合的情境信息包括静态的能力描述、接口描述,也包括动态的状态描述、环境描述等,即使是静态的信息也可能发生变化。如果这些信息都通过目录服务器来维护,将产生不可估量的带宽信息和相应负载。因此,本文只在目录服务器上存储相对稳定的情境描述

10、地址。请注意不是服务实体的调用地址,而是服务实体的情境描述地址。这样,即使是协议的变化或接口的变化都不会引起目录服务的信息变更。集中式的目录服务也是不可取的,对于面向Internet的网构软件而言,会造成整个体系的性能瓶颈。本文采用P2P的技术构造分布式目录服务器,将服务名称作为散列信息,各目录服务器作为P2P节点,利用chord算法12将服务实体的描述地址储存到相应的分布式服务器上。2.2 基于情境的按需聚合在网构软件环境下,一个应用的执行需要多个服务实体共同完成。本文称启动这个应用的服务实体为主服务实体,它负责按照应用的需求,包括功能性和非功能性需求,通过匹配候选服务实体的情境描述来发现并

11、聚合相应的服务实体,构成虚拟的执行环境。这将是一个嵌套的过程,也就是说主服务实体确定要调用服务实体A,而服务实体A可能又需要聚合服务实体B来完成相应的功能。本文的重点放在如何完成基于情境的按需聚合上,因此提出了以下假设:(1)本文关心需求是通过哪些情境来描述和匹配的,但不关心情境或需求的具体取值。即假设需求中各元素的具体取值在网构软件实体间有语义上一致的认知。如主服务实体的功能需求是“订购”,候选服务实体情境中的功能描述是“采购”,这两者在语义上是否一致,是通过应用环境中共享的相关本体库来回答的,本文不予考虑。(2)假设服务接口的定义在调用者和被调用者之间也有语义上的共识。即调用者从情境中得到

12、接口的描述后,能够知道每个参数的语义、返回结果的语义等,从而构造并实施相应的调用。2.3 基于情境感知的动态演化网构软件的环境是动态多变的,随时都可能产生情境元素的变化。本文采用一种基于主题订阅/发布的方法来支持情境感知。一旦确立了聚合关系,主服务实体将向被选服务实体订阅其关心的情境。当服务提供者的相应情境变化被发布时,主服务实体就在第一时间感知到这一变化,并进行自适应调整或启动新的聚合过程,从而实现动态的演化。对于上层用户而言,情境感知和动态演化的过程是透明的。3、 网构软件情境本体在开放环境下,需要一个显式的、语义化的Internet情境描述,作为网构软件自演化的前提和基础。本文基于本体的

13、思想研究Internet 情境的语义化描述方法,采用RDF/OWL技术对情境进行建模,给出一个适合网构软件环境的Internet情境本体,如图2所示。Internet环境下的情境分为两类对象:事物和事件。事物是指网构软件运行环境下的各种实体,包括自主化的服务实体、服务实体所在的环境和所运行的平台,及他们的运行状态、属性等。事件是指网构软件中的一些特殊事件,如服务实体的进入和退出等。本文将事物情境分为3个子类:环境、平台和服务实体。环境(Environment):指服务实体所依赖的网络环境。每个服务实体有且仅有一个对于环境的情境描述,包括网络IP、网络带宽、网络延迟和丢包率等。平台(Platfo

14、rm):指服务实体所运行的平台。每个服务实体有且仅有一个对于平台的情境描述,包括硬件指标、操作系统、运行环境、开发环境等。服务实体(Service Entity):包括名称和供应商两个属性,以及需求和能力两个子类。 图2 Internet情境本体需求(Requirement):指服务实体正确运行所需要的其它服务实体所提供的服务集合,一个服务实体可能拥有0个或多个服务需求。需求包含功能需求和非功能需求,所以每个需求描述都包含功能性(function)描述和非功能性(non-function)描述。能力(Capability):指服务实体能够为其它服务实体提供的服务集合,一个服务实体可能提供0个或

15、多个服务能力。能力包括功能能力和非功能能力,所以每个能力描述都包含功能性(function)描述和非功能性(non-function)描述,分别与需求的描述相对应。需求和能力的功能性(function)部分,主要包括服务的功能描述、协议和调用接口等。每个需求和能力的功能性都有一个状态属性,需求的状态用来表征该需求是否已被满足,而能力的状态用来表征该能力的运行情况,包括运行、中止、不可用(需求未被满足),当该属性为不可用时,在服务选择时该能力将不做考虑。需求和能力的非功能性(non-function)部分,主要侧重服务的QoS,包括可靠性、可用性、负载、响应时间等。本文的事件情境(Event)主

16、要用于描述服务实体生命周期中的事件,包括服务的进入、中止、恢复和退出事件。当服务实体注册进入或注销退出网构软件环境,以及服务实体暂时停止提供服务或重新恢复时,都会激发相应事件。需要注意的是,部分能力的不可用或者部分需求得不到满足,并不意味着按需聚合无法实现,能否完成匹配由每个主服务实体自行判断。此外,网构软件情境本体的定义是一个不断扩充与完善的过程。4、 网构软件的情境感知支撑环境网构软件的情境感知支撑环境包括两部分:情境感知支持和运行时环境,如图3所示。其中情境感知支持主要完成情境的获取、订阅与发布等,为网构软件的情境感知提供基础支撑;运行时环境为服务实体提供运行时帮助,包括生命周期的管理、

17、服务调用、自适应框架等。 图3 网构软件的情境感知支撑环境情境感知支持和运行时环境作为中间件存在于每个服务实体端,服务实体在运行时环境的支撑下完成按需聚合和动态演化,而运行时环境又依靠底层的情境感知支持实现对环境变化的感知。下面具体描述主要组成部分的功能与作用。l 服务器访问组件。该组件用于访问基于P2P的目录服务器,其功能包括在网构软件环境中注册和注销服务实体;获取服务实体的情境描述地址。在注册时,根据该服务实体的OWL本体描述文件建立一个实时情境本体库,并将该情境本体库的访问地址存储在目录服务器中。注销时删除相应信息。l 服务选择组件。该组件是实现按需聚合的核心组件,专门为服务实体选择能满

18、足其需求的服务。例如,一个主服务实体需要n个不同的服务,它将根据需要的服务名称,利用服务器访问组件得到候选的服务实体情境描述,再根据规则筛选出最符合其功能及非功能需求的n个服务实体。此时该组件会利用情境感知支持完成两项工作:(1)更新实时情境本体库,以添加对服务提供者的描述;(2)向服务提供者订阅感兴趣的情境主题。一旦这种聚合关系被解除,则需要删除相应的本体库信息和情境订阅关系,并启动新的服务选择过程。当然,在开始选择时对于不同的服务也可以备份多个满足需求的服务实体,使得某一服务失效时可以快速地切换到新的服务提供者以完成调用。l 自主构件支持组件。该组件是情境变化的接收与处理者,本文借鉴文献4

19、中自主构件的概念,利用该组件提供基于规则的推理机制对服务实体进行自主化改造。服务实体可以注册一系列自定义的规则集,用于响应情境发生的变化。当然系统本身也提供了一些可选择的默认规则集,例如所需的服务实体不可用时将如何处理。l 情境本体访问组件。该组件负责建立本地的实时情境本体库,并予以维护。l 消息组件。该组件是情境感知的关键组件,负责情境订阅与发布关系的维护,并利用消息中间件完成基于情境主题的消息传递。本文借鉴Rainbow系统13提供的Probe-Gauge模型以及文献17的上下文推送方法,实现情境变化的获取与传递。如图4所示,Probe的作用是获取特定情境的当前值,封装成特定格式的消息,发

20、布到该情境本体主题上,Probe可以是独立运行的程序(例如监测CPU或网速),也可以是服务实体本身。Gauge的工作实际上通过订阅特定主题的方法予以实现。图4 情境感知环境5、 相关工作网构软件的研究非常活跃。北京大学在前期提出的一种基于体系结构、面向构件的软件开发方法(ABC)3的基础上,提出了一种以软件体系结构为中心的网构软件开发方法4,从方法学的角度支持网构软件的构造、开发和运行;南京大学提出了一种基于Agent的开放协同软件模型5来作为网构软件的基础模型,其中基于移动 Agent 的协同程序设计技术、多模式交互机制及基于Agent中间件模型等研究均取得了好的进展;国防科技大学研究了互联

21、网软件的可信问题6,提出了一个集身份可信、能力可信和行为可信为一体的网络软件可信保证体系。中科院数学与系统科学研究院从主动服务、需求驱动、自主聚合的角度,提出了一种需求驱动的主动网构实体聚合模型7;中科院软件所提出了网构软件环境下一种基于非确定性推理的构件服务质量动态评估方法8。在网构软件的自适应和自演化方面。文献9提出了一种解决OSGi平台上服务动态演化的方法。该研究针对OSGi平台的服务动态演化提出了重定向方法,解决了服务类定义的动态更新,较好地满足了演化中服务的透明性问题,提出了实现和数据相分离的方法,解决了服务动态演化中公共数据的一致性问题和动态演化问题;文献10结合BDI模型和情境演

22、算的优点构造了一个智能体结构AASC,使其既能表示Agent的心智状态,又能进行行动推理和规划,以实现Agent不同程度的自主性;文献11基于资源接口自动机网络,对由于环境资源的变化所导致的构件组合系统的行为变化进行有效的分析与验证,以提高系统在自适应性方面的可信度。然而,这些研究都是从已感知到环境的变化出发,研究软件实体如何动态调整自身的行为,对于Internet情境应如何表达、情境变化应如何感知、如何构造支持情境感知的网构软件运行环境等,并没有系统的研究和实用化的成果。南京大学在文献18中分析了环境驱动的网构软件行为模式,提出了一个面向网构软件的环境驱动结构模型,在情境的建模、管理和使用方

23、面均有很好的参考价值。与之相比,本文立足于从实现角度出发,给出了一个可行的系统解决方案。在普适计算领域对于情境的研究包括,CMU 提出的自演化Rainbow 模型13,采用隐式的机制表达情境,其中间翻译层对情境信息的解释和演化动作的执行常常与具体应用相关, 难以找到较为一般的实现机制;都柏林大学提出的K-Component 框架14,采用K-IDL 来刻画构件的状态,在这种框架下构件只拥有局部视图,在某种程度上限制了其自演化的能力;以上下文处理为代表的环境信息及其处理机制15,16在普适计算领域得到了较大发展, 但它们也都没有给出一个一般的环境模型, 在环境模型本身的环境成分、结构模型、演化机

24、制等方面缺乏深入的研究。6、 结论本文以情境感知为核心,研究了Internet环境下各种情境的构成,给出了一个适合网构软件环境的Internet情境本体定义,提出了一种基于本体的网构软件情境感知体系架构,并描述了在这一架构下网构软件的按需聚合和动态演化的模型与机制。本文还给出了支撑环境的结构设计,描述了其中各核心组件的功能,该支撑环境将作为中间件支持整个基于情境感知的网构软件实现。后续我们将进一步完善Internet情境本体的内容,研究支撑系统中各功能组件的实现技术,通过实践对架构设计和支撑环境的实现进行评估与改进。参考文献:1 杨芙清, 梅宏, 吕建, 金芝. 浅论软件技术发展J, 电子学报

25、, 2003, 26(9): 110411152 吕建, 马晓星, 陶先平, 徐锋, 胡昊. 网构软件的研究与进展J, 中国科学E辑(信息科学), 2006, 36(10): 103710803 梅宏, 陈锋, 冯耀东, 杨杰. ABC:基于体系结构、面向构件的软件开发方法J, 软件学报 2003,14(4): 7217324 梅宏, 黄罡, 赵海燕, 焦文品. 一种以软件体系结构为中心的网构软件开发方法J, 中国科学E辑(信息科学)2006, 36(10): 110011265 吕建, 陶先平, 马晓星, 胡昊, 徐锋, 曹春. 基于Agent 的网构软件模型研究J, 中国科学E辑(信息科学

26、), 2005, 35(12): 123312536 王怀民, 唐扬斌, 尹刚, 李磊. 互联网软件的可信机理J, 中国科学E辑(信息科学), 2006, 36(10): 115611697 郑丽伟, 金芝. 需求驱动的主动网构实体聚合J, 软件学报, 2008, 19(5):108310988 吴国全, 魏峻, 黄涛. 基于非确定性推理的网构软件服务质量动态评估方法J, 软件学报, 2008,19(5):117311859 张仕, 黄林鹏. 基于OSGi的服务动态演化J,软件学报, 2008,19(5):1201-121110 李斌, 吕建, 朱梧槚. 基于情境演算的智能体结构J, 软件学报

27、, 2003,14(4): 733-74211 胡军, 黄志球, 曹东, 徐丙凤. 网构软件的资源自适应性的形式化分析与验证J, 软件学报, 2008,19(5):1186-1200.12 Stoica, I., Morris, R., Liben-Nowell, etc. Chord: a scalable peer-to-peer lookup protocol for Internet applicationsC. IEEE/ACM Transactions on Networking, 2003,11(1):17 3213 Garlan D, Cheng S W, Huang A C. Rainbow: Archi

温馨提示

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

评论

0/150

提交评论