一种实现跨平台软件动态控制的方法及其系统技术方案

技术编号:18425963 阅读:21 留言:0更新日期:2018-07-12 01:54
本发明专利技术公开了一种实现跨平台软件动态控制的方法,在主体软件中编译脚本语言解析器;基于脚本语言解析器,建立MVCC框架,并发布该MVCC框架和主体软件形成客户端;将编码形成的脚本文件经压缩和多次加密形成具有唯一md5序列号的加密压缩包,并上传至服务器端;判断服务器端加密压缩包的md5序列号与客户端上已下载的代码包是否一致,如果不一致,则将服务器端的加密压缩包下载至客户端。本发明专利技术还公开了一种实现跨平台软件动态控制的系统,包括编译模块、框架建立模块、客户端发布模块、文件加密模块、文件二次加密模块和客户端更新判断模块。本发明专利技术提高了安全性和更新效率,减少更新周期,只需更新服务器端代码包即可实现对客户端软件的整体动态控制。

A method and system for realizing cross platform software dynamic control

This invention discloses a method to realize the dynamic control of cross platform software, compiles a script language parser in the main software, builds the MVCC framework based on the script language parser, and publishes the MVCC framework and the main software to form the client; the script file formed by the encoding has the only MD5 order by compression and multiple encryption. The encrypted compression package of the column number and uploaded to the server side; determine whether the MD5 sequence number of the server-side encrypted packet is consistent with the downloaded code package on the client side, and if not, the encrypted compression packet on the server side is downloaded to the client. The invention also discloses a system to realize the dynamic control of cross platform software, including the compiler module, the frame building module, the client release module, the file encryption module, the file two encryption module and the client update judgment module. The invention improves the security and update efficiency, reduces the update cycle, and only needs to update the server - side code package to realize the overall dynamic control of the client software.

【技术实现步骤摘要】
一种实现跨平台软件动态控制的方法及其系统
本专利技术涉及软件更新领域,具体涉及一种实现跨平台软件动态控制的方法及其系统。
技术介绍
传统的软件更新通常采用以下方式:其一:传统的软件开发增加、修改、删除功能时,需要在开发工具中修改代码后重新编译打包成应用程序,最后发布到应用商店,从功能修改到最终用户看到结果,整个周期很长,这样的软件控制方式难以满足高频次的软件调整需求。其二:有软件采用脚本代码热更新的方式实现了软件少量功能的动态控制,但这仅仅限制在极少功能上。越大型的软件代码量越多,开发、管理复杂度越高,散乱的脚本代码管理、协作开发和维护工作复杂而繁重;同时,裸露的代码热更新导致了软件安全性极低,苹果公司已经明令禁止其开发者提交这类软件到AppStore。且传统的软件在开发过程中,脚本与宿主语言的交互非常耗时,并且脚本管理很麻烦。
技术实现思路
基于此,针对上述问题,有必要提出一种提高软件安全性,减少软件更新周期,提高软件更新效率的实现跨平台软件动态控制的方法及其系统,使开发人员只需要更新服务器端的代码包即可以实现对客户端软件的整体动态控制。本专利技术提供一种实现跨平台软件动态控制的方法,其技术方案如下:一种实现跨平台软件动态控制的方法,包括以下步骤:a、编译脚本语言解析器,并将该脚本语言解析器引入主体软件中;b、基于脚本语言解析器,建立开发和维护主体软件的MVCC框架,该MVCC框架集成有交互模块、网络访问模块、JSON格式解析模块、XML格式解析模块、正则表达式识别模块、字符串处理模块以及文件处理模块;c、发布该MVCC框架和主体软件,形成客户端;d、基于MVCC框架编码主体软件后,将编码形成的脚本文件第一次加密形成二进制数据,并存储;e、将第一次加密后的脚本文件进行压缩,并第二次加密形成具有唯一md5序列号的加密压缩包,并上传至服务器端;f、判断服务器端加密压缩包的md5序列号与客户端上已下载的代码包是否一致,如果是,则不下载该加密压缩包,如果否,则将服务器端的加密压缩包下载至客户端。在本技术方案中,实现了只需要更新服务器端的代码包即可对客户端软件的整体动态控制,关键点为在主体软件中引入脚本语言解析器,脚本语言解析器中集成开源的数据库访问模块,将其编译成不同平台的可执行文件;在项目开发时引入生成的可执行文件,即可以拥有脚本代码解释功能和数据库读写功能,此数据库读写模块是同时编译的,实现跨平台操作,可以实现Windows、Mac、Android、iOS、Linux多平台应用;再将针对各个平台分别单独编译的脚本语言解析器分别引入各自的主体软件中,使得程序编译不受限于编程语言,主体软件能通过该脚本语言解析器动态载入对应的脚本代码并执行,其在脚本语言框架层预先内置一部分系统常用的类和方法,减少脚本语言和宿主语言的交互频次,提升软件运行效率;其后,借助脚本语言解析器,实现该脚本语言到主体软件的所有功能控制框架,同时实现整套MVCC(在此理解为:模型、视图、控制器、组件)框架,该MVCC框架针对脚本层集成json数据格式解析器、集成交互模块、集成网络访问模块、集成字符串处理模块、集成文件处理模块等,其中交互模块为脚本语言和宿主语言相互调用的模块,其采用C++开发,并且将宿主语言的值类型做了脚本语言实现,采用低频通信的设计方案实现了脚本语言和宿主语言的高效率调用;且MVCC框架在MVC框架中融合了面向组件的编程模式,用该MVCC框架开发、维护软件,能让不同的功能模块以组件的方式存在,在不同场景需要相同功能时,嵌入该组件即可,而无需重新编码,极大实现了功能复用,减少开发和维护的工作量,最后提供外部脚本语言使用的整套API,实现对脚本层的调用;整套MVCC框架将随着主体软件一同发布到应用商店形成客户端,该脚本语言搭建面向对象开发框架,逻辑编写时采用面向对象的思维,同时实现面向组件开发框架,便于逻辑编写时采用面向组件开发,执行该脚本语言的代码全部采用二进制存储,实现多重加密,提升代码安全性,至此客户端软件上传成功;然后在服务器端设置一个脚本文件加密压缩包,该加密压缩包中包含了软件所需的逻辑执行代码文件,客户端在有网络时检查服务器端上加密压缩包的md5序列号与本地已下载好的代码包是否一致,若不一致则下载服务器最新代码包,从而使得只需要更新服务器端的代码包即可以实现对客户端软件的整体动态控制。作为上述方案的进一步优化,还包括以下步骤:将服务器端的加密压缩包下载至客户端后,进行解压,解压完成后,按照约定的算法解密脚本文件,并载入脚本文件。服务器端的每一个加密压缩包与客户端上下载的代码包都存在一一对应关系,只有当服务器端的加密压缩包的md5序列号与客户端上已下载的代码包不一致,则证明服务器端的加密压缩包为最新版本,客户端执行下载解压操作,而对于同一软件,其约定的解密算法相同,因此可实现对脚本文件的解密操作,保证了文件更新的安全性,提高了更新效率。作为上述方案的进一步优化,所述载入脚本文件的步骤如下:采用后台线程将脚本文件预先载入内存;读取内存中的脚本文件。在本技术方案中,载入代码的逻辑是:采用后台线程预先载入内存,使用时再从内存中读取,以提升载入读取的效率。作为上述方案的进一步优化,还包括以下步骤:采用主体软件中的脚本语言解析器解析所读取的脚本文件,并进行自动更新操作。此脚本语言解析器即为步骤a在主体软件中编译的脚本语言解析器,通过该脚本语言解析器解析脚本文件,可实现客户端软件的自动更新,提高更新效率,避免繁杂的更新操作而导致数据冗余和紊乱。作为上述方案的进一步优化,所述步骤d包括以下步骤:加密压缩包上传至服务器端后,判断服务器端是否有旧版加密压缩包,如果是,则更新服务器端旧版加密压缩包的md5序列号和脚本文件;如果否,则接收该加密压缩包。在将更新的加密压缩包上传至服务器端时,如果服务器端有以前的旧版加密压缩包,则直接更新该加密压缩包的md5序列号和脚本代码,使版本关系明确,不会导致客户端下载错误;如果服务器端没有以前的旧版加密压缩包,则直接接收上传的加密压缩包;其保证了服务器端的数据关系清楚,运行稳定、流畅,使得客户端下载更新更快速。本专利技术还提供一种实现跨平台软件动态控制的系统,其技术方案如下:一种实现跨平台软件动态控制的系统,包括编译模块、框架建立模块、客户端发布模块、文件加密模块、文件二次加密模块以及客户端更新判断模块,其中:编译模块,用于编译脚本语言解析器,并将该脚本语言解析器引入主体软件中;框架建立模块,基于脚本语言解析器,建立开发和维护主体软件的MVCC框架;客户端发布模块,用于发布该MVCC框架和主体软件,形成客户端;文件加密模块,基于MVCC框架编码主体软件后,将编码形成的脚本文件第一次加密形成二进制数据,并存储;文件二次加密模块,用于将第一次加密后的脚本文件进行压缩,并第二次加密形成具有唯一md5序列号的加密压缩包,并上传至服务器端;客户端更新判断模块,用于判断服务器端加密压缩包的md5序列号与客户端上已下载的代码包是否一致,如果是,则不下载该加密压缩包,如果否,则将服务器端的加密压缩包下载至客户端。作为上述方案的进一步优化,还包括解压解密模块,用于将服务器端的加密压缩包下载至客户端后,进行解压,并按照约本文档来自技高网...

【技术保护点】
1.一种实现跨平台软件动态控制的方法,其特征在于,包括以下步骤:a、编译脚本语言解析器,并将该脚本语言解析器引入主体软件中;b、基于脚本语言解析器,建立开发和维护主体软件的MVCC框架,该MVCC框架集成有交互模块、网络访问模块、JSON格式解析模块、XML格式解析模块、正则表达式识别模块、字符串处理模块以及文件处理模块;c、发布该MVCC框架和主体软件,形成客户端;d、基于MVCC框架编码主体软件后,将编码形成的脚本文件第一次加密形成二进制数据,并存储;e、将第一次加密后的脚本文件进行压缩,并第二次加密形成具有唯一md5序列号的加密压缩包,并上传至服务器端;f、判断服务器端加密压缩包的md5序列号与客户端上已下载的代码包是否一致,如果是,则不下载该加密压缩包,如果否,则将服务器端的加密压缩包下载至客户端。

【技术特征摘要】
1.一种实现跨平台软件动态控制的方法,其特征在于,包括以下步骤:a、编译脚本语言解析器,并将该脚本语言解析器引入主体软件中;b、基于脚本语言解析器,建立开发和维护主体软件的MVCC框架,该MVCC框架集成有交互模块、网络访问模块、JSON格式解析模块、XML格式解析模块、正则表达式识别模块、字符串处理模块以及文件处理模块;c、发布该MVCC框架和主体软件,形成客户端;d、基于MVCC框架编码主体软件后,将编码形成的脚本文件第一次加密形成二进制数据,并存储;e、将第一次加密后的脚本文件进行压缩,并第二次加密形成具有唯一md5序列号的加密压缩包,并上传至服务器端;f、判断服务器端加密压缩包的md5序列号与客户端上已下载的代码包是否一致,如果是,则不下载该加密压缩包,如果否,则将服务器端的加密压缩包下载至客户端。2.根据权利要求1所述的实现跨平台软件动态控制的方法,其特征在于,还包括以下步骤:将服务器端的加密压缩包下载至客户端后,进行解压,解压完成后,按照约定的算法解密脚本文件,并载入脚本文件。3.根据权利要求2所述的实现跨平台软件动态控制的方法,其特征在于,所述载入脚本文件的步骤如下:采用后台线程将脚本文件预先载入内存;读取内存中的脚本文件。4.根据权利要求3所述的实现跨平台软件动态控制的方法,其特征在于,还包括以下步骤:采用主体软件中的脚本语言解析器解析所读取的脚本文件,并进行自动更新操作。5.根据权利要求1所述的实现跨平台软件动态控制的方法,其特征在于,所述步骤e包括以下步骤:加密压缩包上传至服务器端后,判断服务器端是否有旧版加密压缩包,如果是,则更新服务器端旧版加密压缩包的md5序列号和脚本文件;如果否,则接收该加密压缩包。6.一种实现跨平台软件动态控制的系统,其特征在于,包括...

【专利技术属性】
技术研发人员:赵薪龙
申请(专利权)人:成都志心科技有限公司
类型:发明
国别省市:四川,51

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

1