- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
一种多目标适应的网构软件情境感知体系架构
1规范系统实现方法设计
网络软件作为一种具有柔性的新软件体系形式,能够连续反应式和多目标适应性的软件形式,需要具备自适应和自我完善的能力。也就是说,它应能感知内/外部环境的动态变化,并随之对系统进行静态的调整或动态的演化,以满足用户的各种可信化需求。
为了支持这种软件实体的按需聚合和动态演化,需要从软件系统的情境描述、环境感知、内部决策和协同演化等几个方面展开研究。在前期的工作中,研究了Internet环境下各种上下文情境的构成,给出了一个适合网构软件环境的Internet情境本体定义,提出了一种基于本体的网构软件情境感知体系架构,并描述了在这一架构下网构软件的按需聚合和动态演化的模型与机制。同时,还给出了该体系架构的支撑环境结构设计,描述了其中各核心组件的功能。
本文将重点描述一种基于OSGi1的支撑环境实现方法,给出具体的软件结构设计,并通过一个应用案例说明该系统实现对于按需聚合和动态演化支持的有效性。
文章组织如下:第2章简要描述了前期工作,包括支持上下文感知计算的网构软件架构及其支撑环境设计;第3章给出了基于OSGi的参考实现设计,包括情境感知与管理子系统和运行时支撑子系统的设计与实现;第4章通过案例分析,描述了该系统的应用过程。最后讨论相关工作并进行总结。
2上下支持的总体结构
本文采用服务模型来描述自主软件之间的交互与协同关系,多个服务请求者和服务提供者可以动态地构成一个虚拟的运行环境,完成特定的应用目标。
图1给出了一种支持情境感知的网构软件计算模型。服务实体作为最基本的计算单位,扮演服务提供者或请求者的角色,轻量级目录服务提供类似于注册中心的服务。基本的运行流程可参见文献。
在上述的上下文感知计算模型中,支撑环境扮演着非常重要的角色。它作为中间件负责与上下文感知有关的工作,包括上下文获取、上下文管理以及上下文的存储等;同时,支撑环境还在服务实体运行时为服务实体的自适应和组合服务的自演化提供支持。
图2给出了支撑环境的结构设计,它由两部分组成:上下文感知支撑环境和运行时支撑环境。上下文感知支撑环境负责上下文的收集、管理以及发布和订阅。为服务实体的按需聚合和动态演化提供上下文方面的支持;运行时支撑环境包括生命周期管理、服务调用、按需聚合和自适应框架,为服务实体提供运行时支持。
本文通过本体来显式地表述Internet服务实体的上下文情境。文献给出了该情境的本体定义和语义描述。
3基于osgi的参考
参考实现包括两个独立的子系统,分别是上下文感知支撑环境和运行时支撑环境。
3.1信息使用以及表面使用
支撑环境中的上下文情境有三个不同的来源,分别是服务实体所处环境的上下文信息、服务实体自身的上下文信息以及其他服务实体的上下文信息。其中其他服务实体的上下文信息是通过发布订阅机制获得的,文中使用了消息中间件来提供发布订阅功能。
使用OWL标准来描述本体,支撑环境中用到的所有本体将会被保存在一个本体库中。下面简要描述参考实现中上下文感知部分的实现细节,其类图设计如图3所示。
3.1.1分布式文创—上下文获取
在参考实现中,将上下文分为两种不同的类型,本地上下文和远程上下文。本地上下文指那些与服务实体自身相关的上下文,包括服务实体所处的平台、服务实体的运行环境、与服务实体提供的服务相关的上下文等。
对于本地上下文的获取,参考实现定义了一个接口LocalContextProbe。由于获得各种本地上下文的方法不同,所以对于每个这类上下文,都会有一个实现了LocalContextProbe接口的具体类来负责收集。每个具体类都会被作为Java的一个独立线程运行。这些独立的监听器(Probe)会定期检查特定的上下文是否发生变化,当某个Probe检测到上下文发生变化时,就会触发一个上下文变更事件(由ContextChangeEvent进行封装)并将变化的上下文作为参数放到ContextChangeEvent中。这些上下文变更事件会被ContextGauge捕捉,该类实现了LocalContextChangeListener接口。之后ContextGauge会根据需要对上下文进行处理,例如将上下文发布出去或者更新本体库等等。当上下文感知子系统启动时,ContextManager会启动所有预定义的本地上下文监听器并将ContextGauge注册到监听器中,这样ContextGauge就能获得所有变化的上下文。此参考实现为每个本地上下文监听器提供了默认实现,用户也可以自己定义本地上下文监听器来满足其特殊要求。自定义本地上下文监听器非常简单,只要用户实现LocalContextProbe接口并通知ContextManager在启动的时候加载自定义的监听器即可。
远程上下文指的是与某个服务实体相
文档评论(0)