一种基于沙箱的脚本更新方法及系统技术方案

技术编号:10556601 阅读:128 留言:0更新日期:2014-10-22 12:39
本发明专利技术公开一种基于沙箱的脚本更新方法及系统。所述方法包括:将加载脚本时生成的数据结构保存在沙箱中;在运行所述脚本的过程中,引用所述沙箱中的数据结构存放运行数据;判断所述脚本是否需要更新,得到判断结果;当所述判断结果表示所述脚本需要更新时,卸载虚拟机中的所述脚本;将更新后的脚本重新写入所述虚拟机;从所述沙箱中将所述运行数据引用为局部变量恢复使用。采用本发明专利技术的方法或系统,可以在不中断程序运行的同时实现对程序的更新,降低程序更新成本,进而提高用户体验。

【技术实现步骤摘要】
【专利摘要】本专利技术公开一种基于沙箱的脚本更新方法及系统。所述方法包括:将加载脚本时生成的数据结构保存在沙箱中;在运行所述脚本的过程中,引用所述沙箱中的数据结构存放运行数据;判断所述脚本是否需要更新,得到判断结果;当所述判断结果表示所述脚本需要更新时,卸载虚拟机中的所述脚本;将更新后的脚本重新写入所述虚拟机;从所述沙箱中将所述运行数据引用为局部变量恢复使用。采用本专利技术的方法或系统,可以在不中断程序运行的同时实现对程序的更新,降低程序更新成本,进而提高用户体验。【专利说明】一种基于沙箱的脚本更新方法及系统
本专利技术涉及程序开发领域,特别是涉及一种基于沙箱的脚本更新方法及系统。
技术介绍
随着信息化技术的发展,越来越多的用户将业务的运营通过计算机程序来实现。 当用户的需求发生变化时,对于程序的功能也需要进行相应的调整。这种对于程序功能的 调整可以称为对程序的更新。 现有技术中,对程序进行更新的方法主要是先重新编译整个程序,经过长时间的 编译后再进行测试,确保测试无误后再发布更新的程序,整个过程中对用户的服务需要停 滞下来。 但是,通常许多客户的业务都要求24小时不间断运行,对程序进行更新时,一旦 停止对用户提供服务,会给用户带来时间和经济上的损失。
技术实现思路
本专利技术的目的是提供一种基于沙箱的脚本更新方法及系统,可以在不中断程序运 行的同时实现对程序的更新,降低程序更新成本,进而提高用户体验。 为实现上述目的,本专利技术提供了如下方案: -种基于沙箱的脚本更新方法,包括: 将加载脚本时生成的数据结构保存在沙箱中; 在运行所述脚本的过程中,引用所述沙箱中的数据结构存放运行数据; 判断所述脚本是否需要更新,得到判断结果; 当所述判断结果表示所述脚本需要更新时,卸载虚拟机中的所述脚本; 将更新后的脚本重新写入所述虚拟机; 从所述沙箱中将所述运行数据引用为局部变量恢复使用。 可选的,所述判断所述脚本是否需要更新,包括: 判断所述脚本是否出现逻辑故障; 和/或,判断所述脚本是否具有新的版本。 可选的,所述卸载虚拟机中的所述脚本,还包括: 通过脚本管理器将所述虚拟机的所述脚本中的第一模块的模块名置空,所述第一 模块为需要更新的模块; 相应的,所述将更新后的脚本重新写入所述虚拟机,还包括: 在所述虚拟机的所述脚本中重新写入所述第一模块的模块名。 可选的,还包括: 在运行所述脚本之前,通过脚本管理器动态加载所述脚本; 通过所述虚拟机链接及解释所述脚本; 对所述虚拟机中的所述脚本的第一模块进行命名。 可选的,所述脚本为java脚本,所述虚拟机为java虚拟机。 -种基于沙箱的脚本更新系统,包括: 数据结构保存单元,用于将加载脚本时生成的数据结构保存在沙箱中; 运行数据存放单元,用于在运行所述脚本的过程中,引用所述沙箱中的数据结构 存放运行数据; 判断单元,用于判断所述脚本是否需要更新,得到判断结果; 脚本卸载单元,用于当所述判断结果表示所述脚本需要更新时,卸载虚拟机中的 所述脚本; 脚本写入单元,用于将更新后的脚本重新写入所述虚拟机; 运行数据引用单元,用于从所述沙箱中将所述运行数据引用为局部变量恢复使 用。 可选的,所述判断单元,包括: 第一判断子单元,用于判断所述脚本是否出现逻辑故障; 和/或,第二判断子单元,用于判断所述脚本是否具有新的版本。 可选的,所述脚本卸载单元,包括: 模块名置空子单元,用于通过脚本管理器将所述虚拟机的所述脚本中的第一模块 的模块名置空,所述第一模块为需要更新的模块; 相应的,所述脚本写入单元,包括: 模块名写入子单元,用于在所述虚拟机的所述脚本中重新写入所述第一模块的模 块名。 可选的,还包括: 脚本加载单元,用于在运行所述脚本之前,通过脚本管理器动态加载所述脚本; 脚本链接及解释单元,用于通过所述虚拟机链接及解释所述脚本; 命名单元,用于对所述虚拟机中的所述脚本的第一模块进行命名。 可选的,所述脚本为java脚本,所述虚拟机为java虚拟机。 根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果: 本专利技术的基于沙箱的脚本更新方法及系统,通过将运行所述脚本的过程中生成的 运行数据存放在沙箱中,当有脚本更新时,卸载虚拟机中的所述脚本,将更新后的脚本重新 写入所述虚拟机,再从所述沙箱中将所述运行数据引用为局部变量恢复使用,可以在不中 断程序运行的同时实现对程序的更新,降低程序更新成本,进而提高用户体验。 【专利附图】【附图说明】 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图 获得其他的附图。 图1为本专利技术的基于沙箱的脚本更新方法实施例1的流程图; 图2为本专利技术的基于沙箱的脚本更新方法实施例2的流程图; 图3为本专利技术的基于沙箱的脚本更新方法实施例3的流程图; 图4为本专利技术的基于沙箱的脚本更新系统实施例的结构图。 【具体实施方式】 下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于 本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本专利技术保护的范围。 为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本专利技术作进一步详细的说明。 专利技术人经过研究发现,大多数程序(例如java程序)中嵌入有脚本管理器和虚拟 机。程序运行的过程,也是执行脚本的过程。一个脚本中可以具有多个模块,不同的模块可 以实现不同的功能。对于程序的更新,大多数情况是对于脚本中某一模块的更新。因此,本 专利技术的方案中,通过对于程序脚本的模块进行更新,进而实现对于程序的更新。 图1为本专利技术的基于沙箱的脚本更新方法实施例1的流程图。如图1所示,所述 方法可以包括 : 步骤101 :将加载脚本时生成的数据结构保存在沙箱中; 数据结构可以是加载脚本时需要的数据结构,即实现该脚本所对应的一个特定的 业务流程中需要的数据,然后初始化并保存在沙箱中。 沙箱(SandBox)在网络技术中是指一种按照安全策略限制程序行为的执行环境。 SUN公司在设计Java的时候,设计了一套精密的安全模型:即安全管理器 (Security Manager)将检查有权使用的所有系统资源。在默认的情况下,只允许那些无害 的操作,要想允许执行其他操作,代码需得到数字签名,用户必须得到数字认证。这种受限 制的执行环境称为沙箱。 步骤102 :在运行所述脚本的过程中,引用所述沙箱中的数据结构存放运行数据; 由于沙箱本身具有的属性可以形成一个隔离的运行环境,所以存放在沙箱中的运 行数据相当于存放在单独的存储空间。 步骤103 :判断所述脚本是否需要本文档来自技高网...

【技术保护点】
一种基于沙箱的脚本更新方法,其特征在于,包括:将加载脚本时生成的数据结构保存在沙箱中;在运行所述脚本的过程中,引用所述沙箱中的数据结构存放运行数据;判断所述脚本是否需要更新,得到判断结果;当所述判断结果表示所述脚本需要更新时,卸载虚拟机中的所述脚本;将更新后的脚本重新写入所述虚拟机;从所述沙箱中将所述运行数据引用为局部变量恢复使用。

【技术特征摘要】

【专利技术属性】
技术研发人员:郭铁志张宝玉马向晖
申请(专利权)人:苏州墨提斯信息科技有限公司
类型:发明
国别省市:江苏;32

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

1