热部署装置和方法
技术领域
本发明涉及通信技术领域,尤其涉及一种热部署装置和方法。
背景技术
所谓热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。
在进行项目程序开发过程中,经常遇到这种问题,当前项目开发上线,即使是一个小模块的变更都需要终端经过新编译,打包、部署和重启线上机器或服务器等流程,耗时耗力,影响线上的体验,尤其是启停机器或服务器浪费了大量的时间,而在生产环境中,重启除了会浪费大量的时间,也会带来额外的风险,降低用户体验。
发明内容
本发明的主要目的在于提供一种热部署装置和方法,旨在解决现有技术中需重启线上机器才能加载新开发的项目应用文件,造成耗时耗力,用户体验差的技术问题。
为实现上述目的,本发明实施例提供一种热部署装置,其特征在于终端侧设置有本地服务器端,所述热部署装置包括:
接收模块,用于接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件;
第一更新模块,用于根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是所述本地服务器端基于所述开发项目的应用文件生成的;
第一加载模块,加载第一缓存文件;
调用模块,用于当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用。
可选地,第一应用文件包括源代码,所述本地服务器端包括敏捷开发语言Groovy类加载器,所述本地服务器端缓存文件包括各个本地应用文件,其特征在于,热部署装置还包括:
判断模块,用于判断第一应用文件在本地服务器端缓存文件中是否存在对应的本地应用文件;
第二加载模块,当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将所述源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例。
可选地,热部署装置还包括:
生成模块,用于获取各个类对象实例,生成相应的本地路径;
保存模块,用于保存各个类对象实例与相应的本地路径到本地服务器端。
可选地,第一更新模块包括:
获取单元,用于获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;
生成单元,用于清除应用历史文件,将获取的第一应用文件加载代替应用历史文件,并对应生成第一应用文件在本地服务器端的路径;
保存单元,用于保存第一应用文件与第一应用文件在本地服务器端的路径到本地。
可选地,热部署装置还包括:
获取模块,用于保存清除的应用历史文件,当检测到应用历史文件回溯指令时,获取清除的应用历史文件,将清除的应用历史文件作为第二应用文件;
第二更新模块,用于将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。
为实现上述目的,本发明还提供一种热部署方法,其特征在于终端侧设置有本地服务器端,所述热部署方法包括:
接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件;
根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是所述本地服务器端基于所述开发项目的应用文件生成的;
加载第一缓存文件;
当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用。
可选地,所述第一应用文件包括源代码,所述本地服务器端包括敏捷开发语言Groovy类加载器,所述接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件步骤之后包括:
判断第一应用文件在本地服务器端缓存文件中是否存在对应的本地应用文件;
当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将所述源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例。
可选地,当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将各个源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例步骤之后包括:
用于获取各个类对象实例,生成相应的本地路径;
用于保存各个类对象实例与相应的本地路径到本地服务器端。
可选地,根据第一应用文件对应实时更新本地服务器端的缓存文件步骤包括:
获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;
清除应用历史文件,将获取的第一应用文件加载代替应用历史文件,并对应生成第一应用文件在本地服务器端的路径;
保存第一应用文件与第一应用文件在本地服务器端的路径到本地。
可选地,热部署方法还包括:
保存清除的应用历史文件,当检测到应用历史文件回溯指令时,获取清除的应用历史文件,将清除的应用历史文件作为第二应用文件;
将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。
本发明通过接收模块,用于接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件;第一更新模块,用于根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是所述本地服务器端基于所述开发项目的应用文件生成的;第一加载模块,加载第一缓存文件;调用模块,用于当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用。由于当开发项目服务器端更新应用文件时,将更新的应用文件即第一应用文件实时发送到本地服务器端,并对应更新本地缓存文件,实时加载解析本地缓存中的第一应用文件,以供应用,而不是对第一应用文件进行编译、打包、部署后,本地服务器或机器重启后去加载对应部署的第一应用文件,从而解决了现有技术中需重启线上机器才能加载新开发的项目应用文件,造成耗时耗力,用户体验差的技术问题。
附图说明
图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图;
图2为图1中移动终端的无线通信装置示意图;
图3是本发明热部署装置第一实施例的模块示意图;
图4为本发明热部署装置第二实施例的模块示意图;
图5为本发明热部署装置第四实施例中第一更新模块的细化模块示意图;
图6为本发明热部署方法第一实施例的流程示意图;
图7为本发明热部署方法第二实施例中接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件步骤之后的细化流程示意图;
图8为本发明热部署方法第四实施例根据第一应用文件对应实时更新本地服务器端的缓存文件步骤的流程示意图;
图9为本发明热部署装置与方法的架构流程图;
图10为本发明热部署装置与方法的场景施例图;
图11为本发明热部署装置与方法的场景示意图;
图12为本发明热部署装置与方法的场景示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“区块”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。
移动终端100可以包括无线通信单元110、A/V(音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190,接收模块10,第一更新模块20,第一加载模块30,调用模块40。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信装置或网络之间的无线电通信。例如,无线通信单元可以包括位置信息模块115。
位置信息模块115是用于检查或获取移动终端的位置信息的模块。位置信息模块的典型示例是GPS(全球定位装置)。根据当前的技术,GPS模块115计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块115能够通过实时地连续计算当前位置信息来计算速度信息。
A/V输入单元120用于接收音频或视频信号。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。
感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或将速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。
输出单元150可以包括显示单元151、音频输出模块152、警报单元153等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力值以及触摸输入位置和触摸输入面积。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。
控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信装置以及基于卫星的通信装置来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信装置。
这样的通信装置可以使用不同的空中接口和/或物理层。例如,由通信装置使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信装置(UMTS)(特别地,长期演进(LTE))、全球移动通信装置(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信装置,但是这样的教导同样适用于其它类型的装置。
参考图2,CDMA无线通信装置可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的装置可以包括多个BSC2750。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子装置(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在装置内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个全球定位装置(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是可以理解的是,可以利用任何数目的卫星获得有用的定位信息。作为无线通信装置的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
基于上述移动终端硬件结构、通信装置结构,提出本发明一种热部署装置的各实施例,热部署装置为移动终端的一部分。
参照图3,本发明提供一种热部署装置,在热部署装置第一实施例中,终端侧设置有本地服务器端,所述热部署装置包括:
接收模块10,用于接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件;
接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件,所述应用文件包括各个开发项目中的逻辑单元或区块,逻辑单元或区块,指的是实现业务逻辑的代码,即是逻辑单元或区块由实现各个业务的代码构成,所述各个逻辑代码包括Java代码等,更新的应用文件包括对应用文件的创建、删除,代码编辑,刷新等常规操作,即是可新创建实现业务逻辑的代码,如图10所示,即是新创建逻辑单元,删除相应的实现业务逻辑的代码,在相应逻辑区块进行代码编辑等操作,代码编辑等在集成开发环境(IDE)界面上进行,所述集成开发环境(IDE)界面上可进行包括清除缓存,编辑,删除等操作,所述IDE包括Wed(类)IDE等。当项目开发人员可在IDE上更新相应应用文件后,相应服务器端会实时检测到有相应的更新应用文件,将更新的应用文件作为第一应用文件,终端实时获取得到更新应用文件的讯息,进而终端获取第一应用文件,具体流程架构如图9所示,管理模块部署于开发服务器端,负责管理逻辑单元,提供逻辑单元创建、删除,代码编辑等常规功能即是对第一应用文件的创建,删除等,消息栈实时获取管理模块中第一应用文件变化的讯息,核心模块即是负责源码远程加载服务,执行模块部署于终端负责加载和实例化源码,提供公共的接口。
第一更新模块20,第一更新模块,用于根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是所述本地服务器端基于所述开发项目的应用文件生成的;
根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是该开发项目在本地服务器端对应生成的,当本地拥有该开发项目的各个文件时,该开发项目的各个文件缓存在本地服务器端,例如,当手机终端使用微信时,微信对应的各个文件缓存在相应手机服务器端,根据第一应用文件对应实时更新本地服务器端的缓存文件,即是当第一应用文件是编辑旧有的逻辑单元时,将第一应用文件代替缓存文件中相应未被编辑的旧有逻辑单元,当第一应用文件是新建的文件即新建逻辑单元时,生成该新建逻辑单元在本地服务器端的保存路径,并保存该新建逻辑单元与相应路径。
第一加载模块30,用于加载第一缓存文件;
调用终端加载应用,加载第一缓存文件,实现在不重启线上机器时可直接加载本地全部的缓存文件,也可只是加载第一缓存文件中进行更新了的第一应用文件到相应的本地缓存,终端加载应用能够直接执行将第一缓存文件或者第一应用文件的源代码解析为类对象实例,如Java类对象实例。
调用模块40,用于当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用。
当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用,即是当加载和实例化源代码后,提供相应接口,调用加载后的第一缓存文件以供应用,如图12所示,当检测到当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用,从而实现第一缓存文件对应的各个应用与功能。
在本实施例中,通过接收模块10,用于接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件;第一更新模块20,用于根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是所述本地服务器端基于所述开发项目的应用文件生成的;第一加载模块30,用于加载第一缓存文件;第一调用模块40,用于当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用。由于当开发项目服务器端更新应用文件时,将更新的应用文件即第一应用文件实时发送到本地服务器端并对应更新本地缓存文件,实时调用本地服务器端的加载应用加载解析本地缓存中的第一应用文件,以供应用,而不是对第一应用文件进行编译、打包、部署后,本地服务器或机器重启后去加载对应部署的第一应用文件,从而解决了现有技术中需重启线上机器才能加载新开发的项目应用文件,造成耗时耗力,用户体验差的技术问题。
进一步地,在本发明一种热部署装置第一实施例的基础上,提出热部署装置的第二实施例,在第二实施例中,所述第一应用文件包括源代码,所述本地服务器端包括敏捷开发语言Groovy类加载器,参照图4,其特征在于,所述热部署装置还包括:
判断模块50,用于判断第一应用文件在本地服务器端缓存文件中是否存在对应的本地应用文件;
更新的应用文件包括对应用文件的创建、删除,代码编辑,刷新等常规操作,即是可新创建实现业务逻辑的代码,删除相应的实现业务逻辑的代码,在相应逻辑区块进行代码编辑等操作,当在相应逻辑区块进行代码编辑操作,即是对应用文件内容进行更改或者删除操作时,由于应用文件已经存在,并存在于本地服务器端端缓存文件中,而只是对应用文件的内容进行修改,此时第一应用文件在本地服务器端存在对应的缓存文件,当新创建应用文件时,由于文件是新创建的,在已缓存的开发项目中无该应用文件存在,因而该创建的应用文件在本地服务器端无对应的缓存文件。
第二加载模块60,当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将所述源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例。
由于更新的应用文件即第一应用文件包括对应用文件的创建、即是可新创建实现业务的逻辑区块,在相应新创建的逻辑区块进行代码编辑等操作,当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用敏捷开发语言Groovy类加载器,接收Groovy类加载器将各个源代码对应解析得到的类对象实例,Groovy类可直接对第一应用文件中的代码进行编译解析加载得到类对象实例,Groovy类加载器相比普通的类加载器可缩短编译时间,更简单方便的编译加载源码,因而实现本地服务器端对第一应用文件进行快速的编译解析加载,而不是只能实现在本地服务器端接收开发项目服务器端已编译加载完成的第一应用文件,所述源代码即是在开发项目过程中在相应IDE界面编辑的代码,类加载器读取解析相应源代码到终端,得到对应类对象实例,以供应用。
在本实施例中,通过判断模块50,用于判断第一应用文件在本地服务器端缓存文件中是否存在对应的本地应用文件;第二加载模块60,用于当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将所述源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例。当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,在终端即调用Groovy类加载器,Groovy类加载器可直接对第一应用文件中的代码进行编译解析加载,得到各个类对象实例,从而实现将第一应用文件加载到终端,实现准确在终端更新第一应用文件,而不是只能实现在本地服务器端接收开发项目服务器端已编译加载完成的第一应用文件,从而可以节省项目新创建应用文件后加载新创建的应用文件过程需经过编译、打包、部署和重启线上机器操作,确保本地服务器或机器在不重启的条件下也能准确加载在本地服务器端无对应的缓存文件的第一应用文件,提高开发效率,优化用户体验。
进一步地,在本发明一种热部署装置第一实施例的基础上,提出热部署装置的第三实施例,在第三实施例中,所述热部署装置还包括:
生成模块,用于获取各个类对象实例,生成相应的本地路径;
保存模块,用于保存各个类对象实例与相应的本地路径到本地服务器端。
当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,将Groovy类加载器加载的本地服务器端类对象实例对应生成加载后的第一缓存文件缓存在本地,即是第一缓存文件缓存的是加载后的对象实例,并生成加载后的第一缓存文件在本地服务器端的本地路径或者本地地址,当开发人员在相应IDE界面在线开发新的应用文件时,将在线创建的应用文件实时的发送给本地服务器端,本地服务器端实时接收该在线创建的应用文件,调用类加载器加载成本地类对象实例,保存本地类对象实例与相应的本地路径到本地服务器端,当项目再次开发其它应用文件时,不需重新加载所述本地类对象实例生成的第一缓存文件,可直接根据加载后的第一缓存文件的本地路径调用保存在本地服务器端的加载后的第一缓存文件。
在本实施例中,通过生成模块,用于获取各个类对象实例,生成相应的本地路径;保存模块,用于保存各个类对象实例与相应的本地路径到本地服务器端。由于当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,即是当开发人员在相应IDE界面在线创建新的应用文件时,实时的发送给本地服务器端,本地服务器端实时接收该在线创建的应用文件,调用类加载器加载成本地类对象实例,保存本地类对象实例生成的第一缓存文件与相应的本地路径到本地服务器端,当项目再次开发其它应用文件时,不需重新加载所述第一应用文件,可直接根据第一缓存文件的本地路径调用保存在本地服务器端的第一缓存文件,从而节约流程,减少耗时,提升开发效率。
进一步地,在本发明一种热部署装置第一实施例的基础上,提出热部署装置的第四实施例,参照图5,在第四实施例中,所述第一更新模块20包括:
获取单元21,用于获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;
生成单元22,用于清除应用历史文件,将获取的第一应用文件加载代替应用历史文件,并对应生成第一应用文件在本地服务器端的路径;
获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;即是没有创建新的应用文件,只是对已存在的应用文件进行修改时,由于本地服务器端已缓存未进行修改的应用文件,因而获取该缓存文件中未进行修改的该应用文件即是应用历史文件,清除该应用历史文件,替换成修改后的应用文件,并生成该修改后的应用文件在本地服务器端的路径。
保存单元23,用于保存第一应用文件与第一应用文件在本地服务器端的路径到本地。
保存第一应用文件与第一应用文件在本地服务器端的路径到本地服务器端,以供调用。
在本实施例中,通过获取单元21,用于获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;生成单元22,用于清除应用历史文件,将获取的第一应用文件加载代替应用历史文件,并对应生成第一应用文件在本地服务器端的路径;保存单元23,用于保存第一应用文件与第一应用文件在本地服务器端的路径到本地。由于当没有创建新的应用文件时,则加载替换缓存中的应用文件即是逻辑单元文件,实现热部署。
进一步地,在本发明一种热部署装置第一实施例的基础上,提出热部署装置的第五实施例,在第五实施例中,所述热部署装置20还包括:
获取模块,保存清除的应用历史文件,当检测到应用历史文件回溯指令时,获取清除的应用历史文件,将清除的应用历史文件作为第二应用文件;
保存清除的应用历史文件,当检测到应用历史文件回溯指令时,即是重新调用该应用历史文件指令时,调用清除的应用历史文件。
第二更新模块,将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。
将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。即是支持历史版本的回溯。
本发明通过获取模块,用于保存清除的应用历史文件,当检测到应用历史文件回溯指令时,如图11所示,获取清除的应用历史文件,将清除的应用历史文件作为第二应用文件;第二更新模块,用于将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。即是热部署装置支持历史版本的回溯,而不是重启机器再去加载应用历史文件,提升开发效率。
本发明还提供一种热部署方法,该热部署方法主要应用于移动终端上,在热部署方法第一实施例中,参照图6,终端侧设置有本地服务器端,所述热部署方法包括:
步骤S10,接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件;
接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件,所述应用文件包括各个开发项目中的逻辑单元或区块,逻辑单元或区块,指的是实现业务逻辑的代码,即是逻辑单元或区块由实现各个业务的代码构成,所述各个逻辑代码包括Java代码等,更新的应用文件包括对应用文件的创建、删除,代码编辑,刷新等常规操作,即是可新创建实现业务逻辑的代码,如图10所示,即是新创建逻辑单元,删除相应的实现业务逻辑的代码,在相应逻辑区块进行代码编辑等操作,代码编辑等在集成开发环境(IDE)界面上进行,所述集成开发环境(IDE)界面上可进行包括清除缓存,编辑,删除等操作,所述IDE包括Wed(类)IDE等。当项目开发人员可在IDE上更新相应应用文件后,相应服务器端会实时检测到有相应的更新应用文件,将更新的应用文件作为第一应用文件,终端实时获取得到更新应用文件的讯息,进而终端获取第一应用文件,具体流程架构如图9所示,管理模块部署于开发服务器端,负责管理逻辑单元,提供逻辑单元创建、删除,代码编辑等常规功能即是对第一应用文件的创建,删除等,消息栈实时获取管理模块中第一应用文件变化的讯息,核心模块即是负责源码远程加载服务,执行模块部署于终端负责加载和实例化源码,提供公共的接口。
步骤S20,根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是所述本地服务器端基于所述开发项目的应用文件生成的;
根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是该开发项目在本地服务器端对应生成的,当本地拥有该开发项目的各个文件时,该开发项目的各个文件缓存在本地服务器端,例如,当手机终端使用微信时,微信对应的各个文件缓存在相应手机服务器端,根据第一应用文件对应实时更新本地服务器端的缓存文件,即是当第一应用文件是编辑旧有的逻辑单元时,将第一应用文件代替缓存文件中相应未被编辑的旧有逻辑单元,当第一应用文件是新建的文件即新建逻辑单元时,生成该新建逻辑单元在本地服务器端的保存路径,并保存该新建逻辑单元与相应路径。
步骤S30,加载第一缓存文件;
调用终端加载应用,加载第一缓存文件,实现在不重启线上机器时可直接加载本地全部的缓存文件,也可只是加载第一缓存文件中进行更新了的第一应用文件到相应的本地缓存,终端加载应用能够直接执行将第一缓存文件或者第一应用文件的源代码解析为类对象实例,如Java类对象实例。
步骤S40,当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用。
当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用,即是当加载和实例化源代码后,提供相应接口,调用加载后的第一缓存文件以供应用,如图12所示,当检测到当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用,从而实现第一缓存文件对应的各个应用与功能。
在本实施例中,通过接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件;根据第一应用文件对应实时更新本地服务器端的缓存文件,将本地服务器端更新的缓存文件作为第一缓存文件,所述本地服务器端的缓存文件是所述本地服务器端基于所述开发项目的应用文件生成的;加载第一缓存文件;当检测到调用第一缓存文件的指令时,调用加载后的第一缓存文件以供应用。由于当开发项目服务器端更新应用文件时,将更新的应用文件即第一应用文件实时发送到本地服务器端并对应更新本地缓存文件,实时调用本地服务器端的加载应用加载解析本地缓存中的第一应用文件,以供应用,而不是对第一应用文件进行编译、打包、部署后,本地服务器或机器重启后去加载对应部署的第一应用文件,从而解决了现有技术中需重启线上机器才能加载新开发的项目应用文件,造成耗时耗力,用户体验差的技术问题。
进一步地,在本发明一种热部署方法第一实施例的基础上,提出热部署方法的第二实施例,在第二实施例中,所述第一应用文件包括源代码,所述本地服务器端包括敏捷开发语言Groovy类加载器,参照图7,所述第一应用文件包括源代码,所述服务器端包括敏捷开发语言Groovy类加载器,所述接收开发项目服务器端实时发送的更新的应用文件,将更新的应用文件作为第一应用文件步骤之后包括:
步骤S50,判断第一应用文件在本地服务器端缓存文件中是否存在对应的本地应用文件;
更新的应用文件包括对应用文件的创建、删除,代码编辑,刷新等常规操作,即是可新创建实现业务逻辑的代码,删除相应的实现业务逻辑的代码,在相应逻辑区块进行代码编辑等操作,当在相应逻辑区块进行代码编辑操作,即是对应用文件内容进行更改或者删除操作时,由于应用文件已经存在,并存在于本地服务器端端缓存文件中,而只是对应用文件的内容进行修改,此时第一应用文件在本地服务器端存在对应的缓存文件,当新创建应用文件时,由于文件是新创建的,在已缓存的开发项目中无该应用文件存在,因而该创建的应用文件在本地服务器端无对应的缓存文件。
步骤S60,当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将所述源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例。
由于更新的应用文件即第一应用文件包括对应用文件的创建、即是可新创建实现业务的逻辑区块,在相应新创建的逻辑区块进行代码编辑等操作,当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用敏捷开发语言Groovy类加载器,接收Groovy类加载器将各个源代码对应解析得到的类对象实例,Groovy类可直接对第一应用文件中的代码进行编译解析加载得到类对象实例,Groovy类加载器相比普通的类加载器可缩短编译时间,更简单方便的编译加载源码,因而实现本地服务器端对第一应用文件进行快速的编译解析加载,而不是只能实现在本地服务器端接收开发项目服务器端已编译加载完成的第一应用文件,所述源代码即是在开发项目过程中在相应IDE界面编辑的代码,类加载器读取解析相应源代码到终端,得到对应类对象实例,以供应用。
在本实施例中,通过判断第一应用文件在本地服务器端缓存文件中是否存在对应的本地应用文件;当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将所述源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例。当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,在终端即调用Groovy类加载器,Groovy类加载器可直接对第一应用文件中的代码进行编译解析加载,得到各个类对象实例,从而实现将第一应用文件加载到终端,实现准确在终端更新第一应用文件,而不是只能实现在本地服务器端接收开发项目服务器端已编译加载完成的第一应用文件,从而可以节省项目新创建应用文件后加载新创建的应用文件过程需经过编译、打包、部署和重启线上机器操作,确保本地服务器或机器在不重启的条件下也能准确加载在本地服务器端无对应的缓存文件的第一应用文件,提高开发效率,优化用户体验。
进一步地,在本发明一种热部署方法第一实施例的基础上,提出热部署方法的第三实施例,在第三实施例中,所述当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,调用Groovy类加载器,接收Groovy类加载器将各个源代码对应解析加载得到的各个类对象实例,以供终端调用各个类对象实例步骤之后包括:
获取各个类对象实例,生成相应的本地路径;
保存各个类对象实例与相应的本地路径到本地服务器端。
当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,将Groovy类加载器加载的本地服务器端类对象实例对应生成加载后的第一缓存文件缓存在本地,即是第一缓存文件缓存的是加载后的对象实例,并生成加载后的第一缓存文件在本地服务器端的本地路径或者本地地址,当开发人员在相应IDE界面在线开发新的应用文件时,将在线创建的应用文件实时的发送给本地服务器端,本地服务器端实时接收该在线创建的应用文件,调用类加载器加载成本地类对象实例,保存本地类对象实例与相应的本地路径到本地服务器端,当项目再次开发其它应用文件时,不需重新加载所述本地类对象实例生成的第一缓存文件,可直接根据加载后的第一缓存文件的本地路径调用保存在本地服务器端的加载后的第一缓存文件。
在本实施例中,通过获取各个类对象实例,生成相应的本地路径;保存各个类对象实例与相应的本地路径到本地服务器端。由于当第一应用文件在本地服务器端的缓存文件中无对应的本地应用文件时,即是当开发人员在相应IDE界面在线创建新的应用文件时,实时的发送给本地服务器端,本地服务器端实时接收该在线创建的应用文件,调用类加载器加载成本地类对象实例,保存本地类对象实例生成的第一缓存文件与相应的本地路径到本地服务器端,当项目再次开发其它应用文件时,不需重新加载所述第一应用文件,可直接根据第一缓存文件的本地路径调用保存在本地服务器端的第一缓存文件,从而节约流程,减少耗时,提升开发效率。
进一步地,在本发明一种热部署方法第一实施例的基础上,提出热部署方法的第四实施例,参照图8,在第四实施例中,所述根据第一应用文件对应实时更新本地服务器端的缓存文件步骤包括:
步骤S21,获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;
步骤S22,清除应用历史文件,将获取的第一应用文件加载代替应用历史文件,并对应生成第一应用文件在本地服务器端的路径;
获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;即是没有创建新的应用文件,只是对已存在的应用文件进行修改时,由于本地服务器端已缓存未进行修改的应用文件,因而获取该缓存文件中未进行修改的该应用文件即是应用历史文件,清除该应用历史文件,替换成修改后的应用文件,并生成该修改后的应用文件在本地服务器端的路径。
步骤S23,保存第一应用文件与第一应用文件在本地服务器端的路径到本地。
保存第一应用文件与第一应用文件在本地服务器端的路径到本地服务器端,以供调用。
在本实施例中,通过获取本地服务器端缓存文件中第一应用文件对应的历史文件,将本地服务器端缓存文件中第一应用文件对应的历史文件作为应用历史文件;清除应用历史文件,将获取的第一应用文件加载代替应用历史文件,并对应生成第一应用文件在本地服务器端的路径;保存第一应用文件与第一应用文件在本地服务器端的路径到本地。由于当没有创建新的应用文件时,则加载替换缓存中的应用文件即是逻辑单元文件,实现热部署。
进一步地,在本发明一种热部署方法第一实施例的基础上,提出热部署方法的第五实施例,参照图10,在第五实施例中,所述热部署方法还包括:
清除的应用历史文件,当检测到应用历史文件回溯指令时,获取清除的应用历史文件,将清除的应用历史文件作为第二应用文件;
保存清除的应用历史文件,当检测到应用历史文件回溯指令时,即是重新调用该应用历史文件指令时,调用清除的应用历史文件。
将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。
将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。即是支持历史版本的回溯。
本发明通过保存清除的应用历史文件,当检测到应用历史文件回溯指令时,如图11所示,获取清除的应用历史文件,将清除的应用历史文件作为第二应用文件;将第二应用文件代替第一应用文件,根据第二应用文件对应更新本地服务器端的缓存文件,将本地服务器端对应更新的缓存文件作为第二缓存文件。即是热部署方法支持历史版本的回溯,而不是重启机器再去加载应用历史文件,提升开发效率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。