首页> 中国专利> 分布式环境下面向服务质量评价的OSGi容错策略

分布式环境下面向服务质量评价的OSGi容错策略

摘要

本发明公开了一种分布式环境下面向服务质量评价的OSGi容错策略,本发明采用主动甄别服务和被动出错修复相结合的方式达到容错目的,在服务调用前,通过主动甄别服务方式选择合适的调用目标服务,以提高本次服务调用的成功率和运行效率。在服务调用过程中,通过服务检测收集服务的运行参数并捕捉服务调用的出错信息;当捕捉到出错信息时,利用出错修复方法对调用过程进行修复,以提高系统稳定性,从而被动保证服务成功。

著录项

  • 公开/公告号CN105511974A

    专利类型发明专利

  • 公开/公告日2016-04-20

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN201510824338.3

  • 发明设计人 张文;邱文东;孟诣卓;肖璟波;

    申请日2015-11-24

  • 分类号

  • 代理机构武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人胡艳

  • 地址 430072 湖北省武汉市武昌区珞珈山武汉大学

  • 入库时间 2023-12-18 15:29:11

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-05-11

    授权

    授权

  • 2016-05-18

    实质审查的生效 IPC(主分类):G06F11/07 申请日:20151124

    实质审查的生效

  • 2016-04-20

    公开

    公开

说明书

技术领域

本发明属于计算机容错技术领域,特别涉及一种分布式环境下面向服务质量评价的 OSGi容错策略。

背景技术

计算机科学是21世纪发展最快、对人类生活影响最大的学科之一。软件工程作为 其中重要的一个组成部分,也越来越受到重视。随着近年来计算机软件技术的迅猛发展, 基于组件的开发模式逐渐成为软件工程领域的发展趋势。

OSGi(openservicegatewayinitiative)是一种基于服务的组件技术框架,因其具有 易用、轻量级、动态更新、构件生命周期管理等特性,受到了广大开发者的重视。OSGi 为Java应用提供了一个动态化、面向服务的构建模型,弥补了Java语言标准缺乏模块 化支持的不足,使Java成为软件集成和软件开发的首选环境。

随着物联网逐渐成为计算机领域的重要发展方向,OSGi也进行了分布式扩展改造 以适应发展潮流,然而这对OSGi的可靠性提出了挑战。由于OSGi最初面向嵌入式环 境设计,因此并不能提供分布式环境下的容错机制。由于分布式系统一般应用于工业控 制、企业服务器等大型重要项目中,其微小的错误都会造成难以估量的损失。因此提高 OSGi的容错能力,提高OSGi系统容错效率是十分重要的任务。

发明内容

针对现有技术中OSGi不能提供分布式环境下容错机制的问题,本发明提供了一种 分布式环境下面向服务质量评价的OSGi容错策略,该策略采用主动甄别服务和被动出 错修复相结合的容错方式,可有效完成分布式OSGi环境的容错工作,可在保证容错效 果的前提下减少系统开销。

为解决上述技术问题,本发明采用如下的技术方案:

一种分布式环境下面向服务质量评价的OSGi容错策略,包括:

步骤1,主动甄别服务,本步骤依次包括:

1.1根据需求选择备选服务集和若干服务质量指标;

1.2根据服务、服务运行平台和/或服务运行网络的历史运行数据得备选服务集中各 备选服务的服务质量指标数据;

1.3标准化服务质量指标数据获得服务质量指标标准化数据;

1.4对各备选服务的服务质量指标标准化数据分别加权求和,得各备选服务的服务 评价成绩;服务质量指标标准化数据的权值根据应用场景和需求人为设定;

1.5根据服务评价成绩从大到小对备选服务排序,并计算各备选服务的被调用概率 其中,InvPri为排序第i个的备选服务的概率;Qsi和Qsj分别为排 序第i个和第j个的备选服务的服务评价成绩;Wi和Wj分别为Qsi和Qsj的修正权值, Wi=n-i,Wi=n-j;n为备选服务数;

1.6根据被调用概率从备选服务集中获得调用目标服务进行调用,并从备选服务集 中剔除作为调用目标服务的备选服务;

步骤2,检测调用目标服务的运行状况,若运行成功,直接结束或重启被停止运行 的备选服务后结束;否则,执行步骤3;

步骤3,被动出错修复,本步骤进一步包括:

3.1停止运行调用目标服务;

3.2若当前备选服务集为空集,结束并返回错误信息;否则,对当前备选服务集执 行子步骤1.2~1.6。

服务质量指标是服务质量信息的具体表现形式。本发明中服务质量指标是能够体现 服务在调用过程中所能提供的表现情况的信息,可以为下述指标中的多种:(1)服务的 历史运行状况相关的指标、(2)服务运行平台的运行表现相关的指标、(3)服务运行平 台的配置水平相关的指标、(4)服务运行网络的稳定性和传输效率相关的指标。服务质 量指标根据需求人为选择。

上述,服务的历史运行状况相关的指标可以为服务的平均成功率、平均运行时长等; 服务运行平台的运行表现相关的指标可以为稳定运行时长、历史崩溃率等;服务运行网 络的稳定性与传输效率相关的指标可以为网络平均传输速率等。

子步骤1.3中,对数值型服务评价指标,采用公式和 分别对效益型和成本型的服务评价指标数据进行标准化,其中,xk表 示当前备选服务的第k个服务评价指标数据,表示xk的标准化数据,maxk和mink分 别为所有备选服务的第k个服务评价指标数据中的最大值和最小值。

上述效益型的服务评价指标是指,当效益型的服务评价指标的值越大时,表示服务 表现越好,例如,服务的平均成功率;成本型的服务评价指标则正好相反,当成本型的 服务评价指标的值越小时,表示服务表现越好,例如,服务的平均运行时长。

子步骤1.3中,对非数值型服务评价指标,先人工赋值,再进行标准化。

例如,若非数值型服务评价指标为布尔型,其值包括“真”和“假”两种,可人为 将数值1赋值给“真”,将数值0赋值给“假”。对计算机配置,由于配置有多种情况, 则针对各情况分别赋值。

步骤2中,采用基于java的代理机制检测调用目标服务的运行状况。

本发明中,服务质量信息意义重大,服务质量指标即服务质量信息的具体形式。图 1为服务质量信息的组成示意图。服务质量信息的真实性直接决定了本发明容错策略的 执行效率。每次服务调用及服务出错后所产生的运行数据均第一时间记录,以保证服务 评价成绩的真实性与有效性。

当服务为新注册服务时,由于其从未运行过,因此服务质量信息不可知。这时需要 查询环境中是否有同名服务存在,若存在同名服务,则将同名服务的服务评价成绩平均 值赋值给该新注册服务,作为新注册服务的服务评价成绩。若不存在同名服务,则根据 经验对新注册服务赋予临时服务评价成绩。由于新注册服务从未运行过,因此其没有对 应的服务质量信息,所以赋予其临时服务评价成绩;当该新注册服务被系统调用后,则 根据其具体表现更新服务质量信息。

与现有技术相比,本发明具有如下特点和有益效果:

1、本发明采用主动甄别服务和被动出错修复相结合的方式达到容错目的,在服务 调用前,通过主动甄别服务方式选择合适的调用目标服务,以提高本次服务调用的成功 率和运行效率。在服务调用过程中,通过服务检测收集服务的运行参数并捕捉服务调用 的出错信息;当捕捉到出错信息时,利用出错修复方法对调用过程进行修复,以提高系 统稳定性,从而被动保证服务成功。

2、本发明中,服务质量信息十分重要,该信息越真实有效,越能帮助系统提高容 错效率,优化调用;调用的优化可保证系统运行的高效性和恢复的有效性,从而减少不 必要的容错开销。

附图说明

图1为服务质量信息的组成示意图;

图2为本发明流程示意图;

图3为本发明实施例的系统结构图;

图4为实施例中主动服务甄选流程图;

图5为实施例中被动出错修复示意图。

具体实施方式

下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说 明,并不用于限制本发明。

本发明通过主动甄选服务提高服务调用的先验成功率,通过被动出错修复提高服务 调用的运行实际运行成功率。图2为本发明容错策略流程示意图,其中被动出错修复是 容错策略得以成功运行的有力保证,主动甄选服务是容错策略效率与可靠性有力提升的 保证。仅有甄选服务方案的容错策略不能保证服务运行的可靠性,而仅具有出错修复方 案的容错策略不能保证系统运行的执行效率。两者结合是有效完成容错工作的必要保 证。

本实施例中,将面向服务质量评价的OSGi容错策略应用于存储管理平台。该平台 中,运行着若干不同版本文件的上传服务与下载服务,各版本服务具有不同的运行表现, 其运行成功率、运行速度等指标不相同。容错策略用于维护系统正常运行,保证用户上 传下载正确完成。

图3为本发明实施例的系统结构图,以OSGiR5作为框架环境,以R-OSGi作为分 布式扩展方案。系统基础层代表基础硬件与软件环境。系统中间部分包括服务池和实现 容错策略的容错中间层,服务池用来维护系统中所有服务,容错中间层具有实现了上述 所有功能的代理模块、调度模块、信息中心以及实现分布式环境维护的管理模块及日志 模块。系统上层代表用于处理用户事务交互的前端管理平台。用户利用前端平台执行文 件的上传或下载工作,容错中间层分隔了用户与服务,为甄选服务与出错修复提供条件。

值得一提的是,容错中间层包含的代理模块、调度模块和信息中心具有不同的功能, 通过协同工作完成容错工作。

代理模块向系统提供服务检测的方法。利用代理模块可获取所绑定服务的运行状态 与运行参数。服务出错时,代理模块完成出错修复。代理模块使用Proxy类作为具体实 现。

调度模块用于实现服务甄选与服务管理。该模块通过与其他模块进行信息交互完成 容错策略。其向环境提供对应的方法,服务甄选采用优选算法完成;服务管理通过实现 OSGi所提供的服务管理接口并利用R-OSGi向分布式环境中注册远程服务而完成。

信息中心维护多张动态表格,存储服务的质量信息,包括运行指标与评价信息。本 实施例中,信息中心使用数据库进行实现,其中存储了节点信息表、服务分布表、服务 运行参数表、服务质量评价表等。

当用户利用前端管理平台上传文件时,容错中间层将根据如下流程对系统服务进行 甄选、检测与修复:

步骤1,调度模块从信息中心获得系统中所有备选服务,构成备选服务集。

本实施例中,系统中共有6个备选服务可用,分别记为S1、S2、S3、S4、S5、S6, 假设该6个备选服务均为已运行过的服务。

步骤2,计算备选服务集中各备选服务的服务评价成绩。

见图4,本实施例选择服务的平均成功率、平均运行时长、平均占用内存作为服务 质量指标,并对各备用服务的服务质量指标数据进行标准化,基于标准化后数据,采用 评价模型计算各备选服务的服务评价成绩,评价模型如下:

QS=Csr×wsr+Ct×wt+Cn×wn(3)

式(3)中:

QS表示当前备选服务的服务评价成绩;

Csr、Ct、Cn分别为当前备选服务标准化后的平均成功率、平均运行时长、平均占 用内存;

wsr、wt、wn分别为Csr、Ct、Cn的权值,wsr+wt+wn=1。

一般来讲,各服务质量指标的权值会根据场景和需求的不同而不同,因此,权重是 根据当前场景和当前需求而人为设定的经验值。本实施例中,当前场景是存储服务器, 则认为服务成功率最重要,服务运行时长次之,占用内存最次,因此,本实施例中令 wsr=0.6,wt=0.3,wn=0.1。

采用本步骤分别获得6个备选服务S1、S2、S3、S4、S5、S6的服务评价成绩。

步骤3,基于服务评价成绩的备选服务排序。

调度模块根据各备选服务的服务评价成绩对备选服务进行排序,获得由备选服务组 成的有序向量(S4S3S6S2S1S5)。根据备选服务排名,计算各备选服务的被调 用概率其中,InvPri为排序第i个的备选服务的被调用概率,Qsi和 Qsj分别为排序第i个和第j个的备选服务的服务评价成绩;Wi和Wj分别为Qsi和Qsj的 修正权值,Wi=n-i,Wi=n-j;n为备选服务数,本实施例中n=6。

本实施例中,概率最大的前三位备选服务依次为S4、S3、S6

步骤4,调度模块根据被调用概率从备选服务集中选择调用目标服务进行调用,并 从备选服务集中剔除作为调用目标服务的备选服务;代理模块对调用目标服务的运行状 况进行检测,若检测到运行成功,则结束;否则,执行步骤5。

本实施例中,将备选服务S4作为调用目标服务。

本步骤结束,即主动甄选服务结束。若检测到调用目标服务运行出错,则执行服务 的出错修复,即执行步骤5。

步骤5,代理模块停止运行调用目标服务,并将停止运行信息更新到信息中心,同 时发送给调度模块。

步骤6,调度模块查询备选服务集中是否还有备选服务,即查询备选服务集是否为 空集,若为空集,则结束服务调用过程并返回错误信息;若不为空集,执行步骤7。

步骤7,调度模块对当前备选服务集重新执行步骤2~4,并根据调用目标服务的运 行状况进行判断,若检测到运行成功,则恢复所有出错服务,即重启被停止运行的备选 服务,更新服务信息,并结束;若检测到运行出错,重新执行步骤6。

经过以上步骤可尽最大效果保证用户该次操作的成功率和调用效果,利用主动甄选 服务,可使系统选择成功率最高、运行效果最好的服务。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号