基于OSGi构建软件运行中进行调试实现方法及系统技术方案

技术编号:14930638 阅读:117 留言:0更新日期:2017-03-31 12:30
本发明专利技术公开了基于OSGi构建软件运行中进行调试实现方法及系统,方法包括:初始化安装脚本语言库,并在OSGi服务端初始化安装OSGi执行脚本语言命令行插件;当通过OSGi执行脚本语言命令行插件捕获到脚本程序时,在控制台中执行调试程序对脚本程序进行调试,当完成调试时判断是否卸载所述OSGi执行脚本语言命令行插件;当需卸载所述OSGi执行脚本语言命令行插件时,则对所述OSGi执行脚本语言命令行插件进行卸载。本发明专利技术通过编写脚本程序,依赖OSGi的热拔插和基于服务查找特性,实现调试脚本独立于被调试程序,而运行时获取被调试系统上下文的及时编译及时使用。

【技术实现步骤摘要】

本专利技术涉及OSGi平台
,尤其涉及的是基于OSGi构建软件运行中进行调试实现方法及系统
技术介绍
当前的软件系统在实际运行过程中,常常会暴露出设计与实现中埋入的问题;而定位和调式这些运行过程中发现的问题,显得非常困难;尽管基于JVM(JavaVirtualMachine,即Java虚拟机)的软件系统有许多有利的条件,特别是基于OSGi技术(OpenServiceGatewayInitiative,即开放服务网关协议,其是Java动态化模块化系统的一系列规范)开发的软件系统为动态调式带来诸多优势条件,但是实际中仍然依赖如下的两个方法:1)将JVM开启调试模式并借助IDE(IntegratedDevelopmentEnvironment,即集成开发环境)工具打断点的方式;这种方法可以对照代码的执行顺序得到程序中每个变量和运行轨迹,但是在正常运行的生产环境是无法通过断点进行运行的;即使是启动时候打开远程调式端口,因存在安全隐患和运行效率的问题,也是不接受的;因此这种方式在生产环境一般受到限制。2)借助第三方付费软件对字节码进行修改的方式;但是商业软件一般费用较高和使用的技术问题,很难规模化运用。因此,现有技术还有待于改进和发展。
技术实现思路
鉴于上述现有技术的不足,本专利技术的目的在于提供基于OSGi构建软件运行中进行调试实现方法及系统,旨在解决现有技术中JVM开启调试模式并借助IDE工具打断点的方式因安全性及运行效率均低下的缺陷。本专利技术的技术方案如下:一种基于OSGi构建软件运行中进行调试实现方法,其中,所述方法包括以下步骤:A、初始化安装脚本语言库,并在OSGi服务端初始化安装OSGi执行脚本语言命令行插件;其中,所述OSGi执行脚本语言命令行插件用于捕获控制台输入,并调用脚本程序;B、当通过OSGi执行脚本语言命令行插件捕获到脚本程序时,在控制台中执行调试程序对脚本程序进行调试,当完成调试时判断是否卸载所述OSGi执行脚本语言命令行插件;C、当需卸载所述OSGi执行脚本语言命令行插件时,则对所述OSGi执行脚本语言命令行插件进行卸载。所述基于OSGi构建软件运行中进行调试实现方法,其中,所述脚本语言库为Groovy语言库、JRuby语言库或Scala语言库。所述基于OSGi构建软件运行中进行调试实现方法,其中,所述步骤B中脚本程序可实时进行修改,并在修改完成且保存后由调试程序再次调用进行调试。所述基于OSGi构建软件运行中进行调试实现方法,其中,所述步骤B中当根据脚本程序得到待调试的对象后,对待调试的对象所包括属性值进行显示,并将待调试的对象打印到控制台。一种基于OSGi构建软件运行中进行调试实现系统,其中,包括:初始化模块,用于初始化安装脚本语言库,并在OSGi服务端初始化安装OSGi执行脚本语言命令行插件;其中,所述OSGi执行脚本语言命令行插件用于捕获控制台输入,并调用脚本程序;调试检测模块,用于当通过OSGi执行脚本语言命令行插件捕获到脚本程序时,在控制台中执行调试程序对脚本程序进行调试,当完成调试时判断是否卸载所述OSGi执行脚本语言命令行插件;卸载模块,用于当需卸载所述OSGi执行脚本语言命令行插件时,则对所述OSGi执行脚本语言命令行插件进行卸载。所述基于OSGi构建软件运行中进行调试实现系统,其中,所述脚本语言库为Groovy语言库、JRuby语言库或Scala语言库。所述基于OSGi构建软件运行中进行调试实现系统,其中,所述调试检测模块中脚本程序可实时进行修改,并在修改完成且保存后由调试程序再次调用进行调试。所述基于OSGi构建软件运行中进行调试实现系统,其中,所述调试检测模块中当根据脚本程序得到待调试的对象后,对待调试的对象所包括属性值进行显示,并将待调试的对象打印到控制台。本专利技术所提供的基于OSGi构建软件运行中进行调试实现方法及系统,方法包括:初始化安装脚本语言库,并在OSGi服务端初始化安装OSGi执行脚本语言命令行插件;当通过OSGi执行脚本语言命令行插件捕获到脚本程序时,在控制台中执行调试程序对脚本程序进行调试,当完成调试时判断是否卸载所述OSGi执行脚本语言命令行插件;当需卸载所述OSGi执行脚本语言命令行插件时,则对所述OSGi执行脚本语言命令行插件进行卸载。本专利技术通过编写脚本程序,依赖OSGi的热拔插和基于服务查找特性,实现调试脚本独立于被调试程序,而运行时获取被调试系统上下文的及时编译及时使用。附图说明图1为本专利技术所述基于OSGi构建软件运行中进行调试实现方法较佳实施例的流程图。图2为本专利技术所述基于OSGi构建软件运行中进行调试实现系统较佳实施例的结构框图。具体实施方式本专利技术提供一种基于OSGi构建软件运行中进行调试实现方法及系统,为使本专利技术的目的、技术方案及效果更加清楚、明确,以下对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,为本专利技术所述通讯信息隐藏实现方法较佳实施例的流程图,所述方法包括以下步骤:步骤S100、初始化安装脚本语言库,并在OSGi服务端初始化安装OSGi执行脚本语言命令行插件;其中,所述OSGi执行脚本语言命令行插件用于捕获控制台输入,并调用脚本程序;步骤S200、当通过OSGi执行脚本语言命令行插件捕获到脚本程序时,在控制台中执行调试程序对脚本程序进行调试,当完成调试时判断是否卸载所述OSGi执行脚本语言命令行插件;步骤S300、当需卸载所述OSGi执行脚本语言命令行插件时,则对所述OSGi执行脚本语言命令行插件进行卸载。本专利技术的实施例中,当OSGi执行脚本语言命令行插件是利用OSGi平台的热插拔的特性进行安装或卸载。OSGi执行脚本语言命令行插件可以在需要使用的时候安装,完成调试以后移除而不影响原有系统的正常运行。本专利技术中还利用脚本语言(尤其是解释性脚本语言)的特性,在修改代码时无需编译即可即时生效,提升诊断和调试的效率,节省定位问题的时间。而且,在不改变脚本语言原有字节码的基础上通过脚本语言的元编程特性,可以查看对象内部的数据结构和对原有的对象织入代码。可见,本专利技术实现了方便快捷的对系统(即OSGi服务端)进行诊断调试,无需重启系统,热拔插的方式对运行的系统增加/删除调试模块;也不影响生产环境下用户的使用,诊断用的脚本程序是即时生效的,最大化提升诊断效率;不对原有系统的类文件进行修改,灵活查看运行时用户数据和插入调试代码,可以防止调试程序时引入新的问题。进一步的,所述脚本语言库为Groovy语言库、JRuby语言库或Scala语言库。其中,Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。JRuby是面向Ruby、基于Java虚拟机(JVM)的一种解释程序,它结合了Ruby语言的简易性和功能强大的JVM的执行机制,包括与Java库全面集成。Scala是一门多范式的编程语言,一种类似java的编程语言,设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。Scala可以与Java互操作。它用s本文档来自技高网...
基于OSGi构建软件运行中进行调试实现方法及系统

【技术保护点】
一种基于OSGi构建软件运行中进行调试实现方法,其特征在于,所述方法包括以下步骤:A、初始化安装脚本语言库,并在OSGi服务端初始化安装OSGi执行脚本语言命令行插件;其中,所述OSGi执行脚本语言命令行插件用于捕获控制台输入,并调用脚本程序;B、当通过OSGi执行脚本语言命令行插件捕获到脚本程序时,在控制台中执行调试程序对脚本程序进行调试,当完成调试时判断是否卸载所述OSGi执行脚本语言命令行插件;C、当需卸载所述OSGi执行脚本语言命令行插件时,则对所述OSGi执行脚本语言命令行插件进行卸载。

【技术特征摘要】
1.一种基于OSGi构建软件运行中进行调试实现方法,其特征在于,所述方法包括以下步骤:A、初始化安装脚本语言库,并在OSGi服务端初始化安装OSGi执行脚本语言命令行插件;其中,所述OSGi执行脚本语言命令行插件用于捕获控制台输入,并调用脚本程序;B、当通过OSGi执行脚本语言命令行插件捕获到脚本程序时,在控制台中执行调试程序对脚本程序进行调试,当完成调试时判断是否卸载所述OSGi执行脚本语言命令行插件;C、当需卸载所述OSGi执行脚本语言命令行插件时,则对所述OSGi执行脚本语言命令行插件进行卸载。2.根据权利要求1所述基于OSGi构建软件运行中进行调试实现方法,其特征在于,所述脚本语言库为Groovy语言库、JRuby语言库或Scala语言库。3.根据权利要求1所述基于OSGi构建软件运行中进行调试实现方法,其特征在于,所述步骤B中脚本程序可实时进行修改,并在修改完成且保存后由调试程序再次调用进行调试。4.根据权利要求1所述基于OSGi构建软件运行中进行调试实现方法,其特征在于,所述步骤B中当根据脚本程序得到待调试的对象后,对待调试的对象所包括属性值进行显示,并将待调试的对象打印到控制台。5.一种基于OS...

【专利技术属性】
技术研发人员:熊奇民杨明涛
申请(专利权)人:深圳震有科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1