CN107809470B - 应用程序自动化部署的方法和装置 - Google Patents
应用程序自动化部署的方法和装置 Download PDFInfo
- Publication number
- CN107809470B CN107809470B CN201710946794.4A CN201710946794A CN107809470B CN 107809470 B CN107809470 B CN 107809470B CN 201710946794 A CN201710946794 A CN 201710946794A CN 107809470 B CN107809470 B CN 107809470B
- Authority
- CN
- China
- Prior art keywords
- html5
- application program
- html5 application
- package
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
本发明提供一种应用程序自动化部署的方法和装置,能够实现“上传即部署”,开发者无需申请独立的HTTP服务容器,无需手动部署、发布、启动HTML5应用程序。该方法包括:利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息;根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布;以及在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则通过所述HTTP服务容器直接返回所述HTML5应用程序的访问请求的响应结果。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种应用程序自动化部署的方法和装置。
背景技术
HTML5应用程序(HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定。HTML5的设计目的是为了在移动设备上支持多媒体。HTML5应用程序中包括HTML5页面,图片、CSS、JS等静态资源文件)在现有的互联网应用里运用广泛。如智能硬件云服务系统。用户客户端允许HTML5应用程序的开发者为自己的智能产品定义个性化的设备交互控制应用界面。每个HTML5应用程序的开发者自定义的HTML5应用程序的程序包一般都包括多个HTML5页面及相关静态资源文件。
通常情况下,一个HTML5应用程序的部署上线包括以下步骤:申请和创建HTTP服务容器,上传HTML5应用程序的程序包,部署和启动HTML5应用程序。系统需为每个HTML5应用程序申请独立的HTTP服务容器/服务器,单独部署。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1、HTML5应用程序上线流程复杂繁琐。HTML5应用程序的开发者需要将HTML5应用程序的资源打成通用的WAR包上传,并手工部署到指定位置,发布启动HTTP服务容器;
2、需要为每个HTML5应用程序启动一个HTTP服务容器,对后台服务资源要求高,管理工作量大,受每台服务器上支持的HTTP服务容器数量限制,不便于大规模应用。
发明内容
有鉴于此,本发明实施例提供一种应用程序自动化部署的方法和装置,能够实现“上传即部署”,开发者只需上传HTML5应用程序的程序包,无需申请独立的HTTP服务容器,无需手动部署、发布、启动HTML5应用程序。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用程序自动化部署的方法。
本发明实施例的一种应用程序自动化部署的方法包括:利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息;根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布;以及在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则通过所述HTTP服务容器直接返回所述HTML5应用程序的访问请求的响应结果。
可选地,所述HTML5应用程序的程序包中包含HTML5页面、静态资源文件以及所述HTML5页面与所述静态资源文件之间使用相对地址进行引用的引用关系。
可选地,所述HTML5应用程序的程序包的上传信息包括如下至少一种信息:所述HTML5应用程序的名称、所述HTML5应用程序的版本号、首页文件路径以及文件名。
可选地,所述HTTP服务容器为Nginx。
可选地,所述HTTP服务容器为Apache。
可选地,所述方法还包括:根据所述HTML5应用程序的程序包的上传信息,生成HTTPS的方式的所述HTML5应用程序的URL并发布;以及接收HTTPS的方式的所述HTML5应用程序的访问请求并进行后续判断操作。
可选地,所述方法还包括:当所述HTML5应用程序的某版本停用之后,删除所述HTTP服务容器中所述HTML5应用程序的对应版本的程序文件。
为实现上述目的,根据本发明实施例的一个方面,提供了一种应用程序自动化部署的装置。
本发明实施例的一种应用程序自动化部署的装置包括:保存模块,用于利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息;发布模块,用于根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布;以及部署模块,用于在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则直接返回所述HTML5应用程序的访问请求的响应结果。
可选地,所述HTML5应用程序的程序包中包含HTML5页面、静态资源文件以及所述HTML5页面与所述静态资源文件之间使用相对地址进行引用的引用关系。
可选地,所述HTML5应用程序的程序包的上传信息包括如下至少一种信息:所述HTML5应用程序的名称、所述HTML5应用程序的版本号、首页文件路径以及文件名。
可选地,所述HTTP服务容器为Nginx。
可选地,所述HTTP服务容器为Apache。
可选地,所述装置中:所述发布模块还用于根据所述HTML5应用程序的程序包的上传信息,生成HTTPS的方式的所述HTML5应用程序的URL并发布;以及所述部署模块还用于接收HTTPS的方式的所述HTML5应用程序的访问请求并进行后续判断操作。
可选地,所述部署模块还用于:当所述HTML5应用程序的某版本停用之后,删除所述HTTP服务容器中所述HTML5应用程序的对应版本的程序文件。
为实现上述目的,根据本发明实施例的一个方面,提供了一种电子设备。
本发明实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的应用程序自动化部署的方法。
为实现上述目的,根据本发明实施例的一个方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的应用程序自动化部署的方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用统一打包上传HTML5应用程序的程序文件(包括HTML5页面及静态资源文件),以及HTML5应用程序里统一用相对地址实现静态资源文件的引用,上传后系统自动实现HTML5应用程序的部署发布的技术手段,所以克服了现有技术中HTML5应用程序的WAR包需上传、部署到指定位置、重新启动服务器等一系列步骤的技术问题,进而达到“上传即部署”的效果,简化HTML5应用程序的上传,发布,部署的步骤,使得HTML5应用程序上线方便快捷的技术效果;通过利用HTML5资源存储中心统一存储管理HTML5应用程序的程序包,并提供对HTML5应用程序的程序包进行版本管理,从而能够方便HTML5应用程序的开发者统一管理自己的HTML5应用程序的程序包,方便实现线上HTML5应用程序的各个版本的启/停用;通过基于Nginx或者Apache进行反向代理,实现HTML5应用程序的自动化部署,提供统一的HTML5HTTP服务,即所有的HTML5应用程序都部署在统一的HTTP服务容器上,从而无需为每个HTML5应用程序启动单独的HTTP服务容器,节约的系统开销,减少了服务器维护成本;通过以HTTPS的方式提供HTML5应用程序的服务,从而能够保障程序访问的安全性。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的应用程序自动化部署的方法的主要流程的示意图;
图2是适于实现本发明实施例的应用程序自动化部署的方法的系统的框架示意图;
图3是根据本发明实施例的应用程序自动化部署的方法的主要流程的示意图;
图4是根据本发明实施例的应用程序自动化部署的方法的HTML5应用程序的程序包示例图;
图5是根据本发明实施例的应用程序自动化部署的装置的主要模块的示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
现有技术中,对于各个HTML5应用程序的部署,需要为每个HTML5应用程序启动一个HTTP服务容器(例如Tomcat或Nginx等)。HTML5应用程序的开发者将HTML5应用程序的资源(即程序文件)打成通用WAR包上传,手工部署到指定位置,然后发布并启动HTTP服务容器。HTML5应用程序的部署上线流程复杂。
且每个HTML5应用程序都要启动一个HTTP服务器,对后台服务资源要求高,管理工作量大。受每台服务器上支持的HTTP服务容器数量限制,不便于大规模应用。
本发明实施例提供一种应用程序自动化部署的技术方案,能够实现快捷的应用程序自动化部署。对于开发者而言,可实现“上传即部署”。开发者只需上传HTML5应用程序的程序包,无需申请独立的HTTP服务容器,无需手动部署、发布、启动HTML5应用程序。系统提供统一的HTML5应用程序的HTTP服务容器,并可支持对数据众多的HTML5应用程序的操作。
以下是本发明实施例描述过程中,涉及的重要术语的解释:
Nginx反向代理:反向代理(ReverseProxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。本发明实施例中,就大型互联网应用场景而言,通常可以使用Nginx实现反向代理和提供HTTP服务容器的功能,但是本发明实施例中可以提供反向代理和HTTP服务容器的功能的组件并不限于只能是Nginx一种,其它既可作为HTTP服务容器,又可实现反向代理功能的组件也属于本发明技术方案的保护之列,例如Apache HTTP Server(简称Apache)。后续为了实施例的描述方便,主要以Nginx为例进行详细说明。
HTTPS:(全称Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。它是一个URIscheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司(Netscape)进行,并内置于其浏览器NetscapeNavigator中,提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
图1是根据本发明实施例的应用程序自动化部署的方法的主要流程的示意图,如图1所示,本发明实施例的应用程序自动化部署的方法主要包括如下步骤:
步骤S101:利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息。本步骤的目的在于将开发者上传的、已经打包好的HTML5应用程序的程序文件进行存储管理。
本发明实施例中,HTML5应用程序的程序包中包含HTML5页面、静态资源文件以及所述HTML5页面与所述静态资源文件之间使用相对地址进行引用的引用关系。所述HTML5应用程序的程序包的上传信息包括如下至少一种信息:所述HTML5应用程序的名称、所述HTML5应用程序的版本号、首页文件路径以及文件名。
在完成对HTML5应用程序的程序包进行存储之后,从步骤S102开始进行相关的自动部署上线操作。
步骤S102:根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布。
步骤S103:在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则通过所述HTTP服务容器直接返回所述HTML5应用程序的访问请求的响应结果。
在本发明技术方案的一个实施例中,HTTP服务容器可以为Nginx。
在本发明技术方案的另一个实施例中,HTTP服务容器可以为Apache。
本发明实施例中,以HTTP方式实际上已可以实现对外提供HTML5应用程序的访问服务。但是基于更进一步的安全效果,在本发明另一实施例中,可以优选地使用HTTPS方式对外提供HTML5应用程序的访问服务。即根据HTML5应用程序的程序包的上传信息,生成HTTPS的方式的所述HTML5应用程序的URL并发布;以及接收HTTPS的方式的所述HTML5应用程序的访问请求并进行后续判断操作。
此外,本发明实施例的应用程序自动化部署的方法还可以包括:为开发者提供对HTML5应用程序的版本进行管理的功能,可以通过提供一个HTML5应用程序的版本管理界面来实现。开发者可以停用/启用某个版本。当停用某版本后,系统将删除HTTP服务容器下的(例如提供反向代理功能的Nginx缓存中的)此版本的缓存子目录。系统也不会再从HTML5资源存储中心下载此版本的HTML5程序包给Nginx缓存目录。用户访问此版本的HTML5应用程序的首页URL时,将无法访问。
图2是适于实现本发明实施例的应用程序自动化部署的方法的系统的框架示意图;图3是根据本发明实施例的应用程序自动化部署的方法的主要流程的示意图;图4是根据本发明实施例的应用程序自动化部署的方法的HTML5应用程序的程序包示例图。以下结合图2至图4对本发明实施例的应用程序自动化部署的方法进行详细介绍。
如图2所示,适于实现本发明实施例的应用程序自动化部署的方法的系统主要包括HTML5资源存储中心、HTML5云服务中心以及作为HTTP服务容器的Nginx反向代理模块。
开发者上传的所有的HTML5应用程序都是通过Nginx提供HTTP服务的。即开发者的HTML5应用程序都是运行在Nginx上。HTML5资源存储中心相当于系统的存储模块,存储开发者上传的原始的HTML5压缩程序包。HTML5云服务中心负责接收开发者的HTML5压缩包上传,存储到HTML5资源存储中心,以及发布到Nginx。HTML5云服务中心可以理解成是一个控制器,它把HTML5资源存储中心、Nginx服务器、开发者连接在一起,控制整个上传、存储、部署发布流程。
如图3所示,本发明实施例的应用程序自动化部署的方法主要包括如下流程:
1.HTML5应用程序开发者将程序文件打包上传
HTML5应用程序开发者可在本地创建好HTML5应用程序,包括HTML5页面以及CSS、JS、图片等静态资源文件。然后开发者只需将HTML5程序文件压缩,如打包成ZPI包,上传到HTML5资源存储中心。
因为HTML5云服务中心会把开发者的每个HTML5应用程序部署在同一个nginx缓存目录下,所以开发者HTML5应用程序的HTML5页面上静态资源的引用使用相对地址即可,可以达到操作简便的目的。如图4中所示,API.html页面中需使用images目录里的一个app.png图片,则引用方式可以如下:<imgsrc="images/app.png">。
2.HTML5资源存储中心管理HTML5应用程序的程序包
HTML5应用程序开发者上传的压缩包将在HTML5资源存储中心进行统一管理,用户可多次上传HTML5应用程序的压缩包,对应不同的版本。HTML5应用程序开发者上传时需指定此HTML5应用程序的名称、版本号、首页文件路径和文件名,即HTML5应用程序的压缩包中的首页位置,用于HTML5应用程序发布。如图4所示,API.html为此HTML5应用的首页。
为方便HTML5应用程序的开发者统一管理自己的HTML5程序包,HTML5资源存储中心还可以提供统一的HTML5资源云端存储管理。对HTML5应用程序的历史版本管理。开发者可通过系统的前端界面操作控制线上HTML5应用程序各个版本的启/停用。
3.HTML5云服务中心(含NGINX反射代理)
因为HTML5云服务中心的存在,从而可以实现将多个HTML5应用程序部署到统一的Nginx上,从而简化了需要为每个HTML5应用程序都部署一个HTTP服务容器的做法。
HTML5应用程序开发者成功上传HTML5应用程序的程序包之后,HTML5云服务中心将提供一个统一的URL将HTML5应用程序的首页发布出来。互联网上的用户即可通过此URL访问此HTML5应用程序的首页,即访问此HTML5应用程序。如图4中的API.hmtl将可以以https://*****.com/HTML5应用名/版本号/API.html发布在互联网上。
HTML5应用程序开发者上传HTML5应用程序的程序包之后,系统的上传界面上将公布此HTML5应用程序的URL。但此时Nginx的缓存目录下还没有该HTML5应用程序,即此HTML5应用程序还未真正发布。当用户第一次访问此HTML5应用程序的首页时,此HTML5应用程序才能通过Nginx会发布到线上。具体操作如下文所述。
HTML5云服务中心的后台以Nginx提供HTML5应用程序的统一HTTP服务。通常情况下,当用户访问https://*****.com/HTML5应用名/版本号/API.html的网址时,Nginx会反向代理此HTML5应用程序访问服务。
当Nginx发现其缓存目录中没有此HTML5页面及页面资源(包括HTML5页面及CSS、JS、图片等静态资源)时,会通知HTML5云服务中心。HTML5云服务中心会从HTML5资源存储中心下载开发者上传的HTML5应用程序的压缩包,然后解压到Nginx的缓存目录,完成HTML5应用程序的统一部署。
当下载和解压完成之后,Nginx会返回发起请求的浏览器页面一个HTTP300重定向请求,通知用户重新发起一次HTML5请求。接收到再次发起的HTML5应用程序的访问请求之后,此时Nginx将返回缓存中相应的HTML5页面及页面资源。
首次部署完成之后的用户HTML5应用程序访问请求并将由Nginx反向代理实现。详见上述图3。
如前所述,本发明实施例中,HTML5云服务中心为确保安全性,统一以HTTPS方式对外提供HTML5访问服务。
HTML5云服务中心由统一的NGINX反向代理(缓存)提供所有HTML5应用程序的HTTP服务,包括HTTPS安全访问服务。通过HTML5应用程序的自动部署,以及提供高效安全的HTML5应用程序的HTTP访问服务,无需为每个HTML5应用程序单独部署一个HTML5服务容器,节约了系统开销,减少了服务器维护成本。本发明实施例中,Nginx是专业的HTTP服务软件,技术成熟,系统稳定,服务器开销小,其反向代理可提供高效的HTML5应用程序资源的访问服务。
根据本发明实施例的应用程序自动化部署的技术方案可以看出,因为采用统一打包上传HTML5应用程序的程序文件(包括HTML5页面及静态资源文件),以及HTML5应用程序里统一用相对地址实现静态资源文件的引用,上传后系统自动实现HTML5应用程序的部署发布的技术手段,所以克服了现有技术中HTML5应用程序的WAR包需上传、部署到指定位置、重新启动服务器等一系列步骤的技术问题,进而达到“上传即部署”的效果,简化HTML5应用程序的上传,发布,部署的步骤,使得HTML5应用程序上线方便快捷的技术效果;通过利用HTML5资源存储中心统一存储管理HTML5应用程序的程序包,并提供对HTML5应用程序的程序包进行版本管理,从而能够方便HTML5应用程序的开发者统一管理自己的HTML5应用程序的程序包,方便实现线上HTML5应用程序的各个版本的启/停用;通过基于Nginx或者Apache进行反向代理,实现HTML5应用程序的自动化部署,提供统一的HTML5HTTP服务,即所有的HTML5应用程序都部署在统一的HTTP服务容器上,从而无需为每个HTML5应用程序启动单独的HTTP服务容器,节约的系统开销,减少了服务器维护成本;通过以HTTPS的方式提供HTML5应用程序的服务,从而能够保障程序访问的安全性。
图5是根据本发明实施例的应用程序自动化部署的装置的主要模块的示意图。
如图5所示,本发明实施例的应用程序自动化部署的装置500主要包括如下模块:保存模块501、发布模块502以及部署模块503。
其中,保存模块501可用于利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息;发布模块502可用于根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布;以及部署模块503可用于在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则直接返回所述HTML5应用程序的访问请求的响应结果。
其中,HTML5应用程序的程序包中可以但不限于包含HTML5页面、静态资源文件以及所述HTML5页面与所述静态资源文件之间使用相对地址进行引用的引用关系。HTML5应用程序的程序包的上传信息可以但不限于包括如下至少一种信息:所述HTML5应用程序的名称、所述HTML5应用程序的版本号、首页文件路径以及文件名。
在本发明技术方案的一个实施例中,HTTP服务容器可以为Nginx。
在本发明技术方案的另一个实施例中,HTTP服务容器可以为Apache。
此外,装置500中:发布模块502还可用于根据所述HTML5应用程序的程序包的上传信息,生成HTTPS的方式的所述HTML5应用程序的URL并发布;以及部署模块503还可用于接收HTTPS的方式的所述HTML5应用程序的访问请求并进行后续判断操作。
部署模块503还可用于:当所述HTML5应用程序的某版本停用之后,删除所述HTTP服务容器中所述HTML5应用程序的对应版本的程序文件。
从以上描述可以看出,因为采用统一打包上传HTML5应用程序的程序文件(包括HTML5页面及静态资源文件),以及HTML5应用程序里统一用相对地址实现静态资源文件的引用,上传后系统自动实现HTML5应用程序的部署发布的技术手段,所以克服了现有技术中HTML5应用程序的WAR包需上传、部署到指定位置、重新启动服务器等一系列步骤的技术问题,进而达到“上传即部署”的效果,简化HTML5应用程序的上传,发布,部署的步骤,使得HTML5应用程序上线方便快捷的技术效果;通过利用HTML5资源存储中心统一存储管理HTML5应用程序的程序包,并提供对HTML5应用程序的程序包进行版本管理,从而能够方便HTML5应用程序的开发者统一管理自己的HTML5应用程序的程序包,方便实现线上HTML5应用程序的各个版本的启/停用;通过基于Nginx或者Apache进行反向代理,实现HTML5应用程序的自动化部署,提供统一的HTML5HTTP服务,即所有的HTML5应用程序都部署在统一的HTTP服务容器上,从而无需为每个HTML5应用程序启动单独的HTTP服务容器,节约的系统开销,减少了服务器维护成本;通过以HTTPS的方式提供HTML5应用程序的服务,从而能够保障程序访问的安全性。
图6示出了可以应用本发明实施例的应用程序自动化部署方法或应用程序自动化部署装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的应用程序自动化部署方法一般由服务器605执行,相应地,应用程序自动化部署装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括保存模块、发布模块和部署模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,保存模块还可以被描述为“利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息;根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布;以及在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则通过所述HTTP服务容器直接返回所述HTML5应用程序的访问请求的响应结果。
根据本发明实施例的技术方案,因为采用统一打包上传HTML5应用程序的程序文件(包括HTML5页面及静态资源文件),以及HTML5应用程序里统一用相对地址实现静态资源文件的引用,上传后系统自动实现HTML5应用程序的部署发布的技术手段,所以克服了现有技术中HTML5应用程序的WAR包需上传、部署到指定位置、重新启动服务器等一系列步骤的技术问题,进而达到“上传即部署”的效果,简化HTML5应用程序的上传,发布,部署的步骤,使得HTML5应用程序上线方便快捷的技术效果;通过利用HTML5资源存储中心统一存储管理HTML5应用程序的程序包,并提供对HTML5应用程序的程序包进行版本管理,从而能够方便HTML5应用程序的开发者统一管理自己的HTML5应用程序的程序包,方便实现线上HTML5应用程序的各个版本的启/停用;通过基于Nginx或者Apache进行反向代理,实现HTML5应用程序的自动化部署,提供统一的HTML5HTTP服务,即所有的HTML5应用程序都部署在统一的HTTP服务容器上,从而无需为每个HTML5应用程序启动单独的HTTP服务容器,节约的系统开销,减少了服务器维护成本;通过以HTTPS的方式提供HTML5应用程序的服务,从而能够保障程序访问的安全性。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (16)
1.一种应用程序自动化部署的方法,其特征在于,包括:
利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息;
根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布;以及
在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则通过所述HTTP服务容器直接返回所述HTML5应用程序的访问请求的响应结果。
2.根据权利要求1所述的方法,其特征在于,所述HTML5应用程序的程序包中包含HTML5页面、静态资源文件以及所述HTML5页面与所述静态资源文件之间使用相对地址进行引用的引用关系。
3.根据权利要求1所述的方法,其特征在于,所述HTML5应用程序的程序包的上传信息包括如下至少一种信息:所述HTML5应用程序的名称、所述HTML5应用程序的版本号、首页文件路径以及文件名。
4.根据权利要求1所述的方法,其特征在于,所述HTTP服务容器为Nginx。
5.根据权利要求1所述的方法,其特征在于,所述HTTP服务容器为Apache。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述HTML5应用程序的程序包的上传信息,生成HTTPS的方式的所述HTML5应用程序的URL并发布;以及
接收HTTPS的方式的所述HTML5应用程序的访问请求并进行后续判断操作。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述HTML5应用程序的某版本停用之后,删除所述HTTP服务容器中所述HTML5应用程序的对应版本的程序文件。
8.一种应用程序自动化部署的装置,其特征在于,包括:
保存模块,用于利用HTML5资源存储中心保存外部上传的HTML5应用程序的程序包,并保存所述HTML5应用程序的程序包的上传信息;
发布模块,用于根据所述HTML5应用程序的程序包的上传信息生成所述HTML5应用程序的URL并发布;以及
部署模块,用于在接收到所述HTML5应用程序的访问请求之后,判断HTTP服务容器中是否已下载所述HTML5应用程序的程序包,若未下载,则从所述HTML5资源存储中心中下载所述HTML5应用程序的程序包,并解压到所述HTTP服务容器中,以完成所述HTML5应用程序的部署,若已下载,则直接返回所述HTML5应用程序的访问请求的响应结果。
9.根据权利要求8所述的装置,其特征在于,所述HTML5应用程序的程序包中包含HTML5页面、静态资源文件以及所述HTML5页面与所述静态资源文件之间使用相对地址进行引用的引用关系。
10.根据权利要求8所述的装置,其特征在于,所述HTML5应用程序的程序包的上传信息包括如下至少一种信息:所述HTML5应用程序的名称、所述HTML5应用程序的版本号、首页文件路径以及文件名。
11.根据权利要求8所述的装置,其特征在于,所述HTTP服务容器为Nginx。
12.根据权利要求8所述的装置,其特征在于,所述HTTP服务容器为Apache。
13.根据权利要求8所述的装置,其特征在于,所述装置中:
所述发布模块还用于根据所述HTML5应用程序的程序包的上传信息,生成HTTPS的方式的所述HTML5应用程序的URL并发布;以及
所述部署模块还用于接收HTTPS的方式的所述HTML5应用程序的访问请求并进行后续判断操作。
14.根据权利要求8所述的装置,其特征在于,所述部署模块还用于:
当所述HTML5应用程序的某版本停用之后,删除所述HTTP服务容器中所述HTML5应用程序的对应版本的程序文件。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946794.4A CN107809470B (zh) | 2017-10-12 | 2017-10-12 | 应用程序自动化部署的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710946794.4A CN107809470B (zh) | 2017-10-12 | 2017-10-12 | 应用程序自动化部署的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107809470A CN107809470A (zh) | 2018-03-16 |
CN107809470B true CN107809470B (zh) | 2020-12-22 |
Family
ID=61584274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710946794.4A Active CN107809470B (zh) | 2017-10-12 | 2017-10-12 | 应用程序自动化部署的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107809470B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767485A (zh) * | 2019-04-01 | 2020-10-13 | 广州精选速购网络科技有限公司 | 一种网页展示方法、系统、电子设备及介质 |
CN111478956B (zh) * | 2020-04-01 | 2023-05-09 | 百度在线网络技术(北京)有限公司 | 小程序包的部署、预览方法和装置 |
CN112783834B (zh) * | 2021-01-27 | 2023-07-25 | 上海淇玥信息技术有限公司 | 一种业务资源在线转存方法、装置和电子设备 |
CN113296798B (zh) * | 2021-05-31 | 2022-04-15 | 腾讯科技(深圳)有限公司 | 一种服务部署方法、装置及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036983A (zh) * | 2012-12-14 | 2013-04-10 | 北京小米科技有限责任公司 | 一种信息获取的方法、网络节点、服务器及系统 |
CN103164525A (zh) * | 2013-03-26 | 2013-06-19 | 北界创想(北京)软件有限公司 | Web应用发布方法和装置 |
CN104158905A (zh) * | 2014-08-28 | 2014-11-19 | 北京京东尚科信息技术有限公司 | web容器的创建方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216700B (zh) * | 2013-09-10 | 2017-05-03 | 侯金涛 | 基于云计算的html5应用的打包、安装、卸载、运行方法的系统 |
US9836284B2 (en) * | 2014-06-18 | 2017-12-05 | Vmware, Inc. | HTML5 graph layout for application topology |
CN104750487B (zh) * | 2015-03-25 | 2019-06-28 | 广州市悦智计算机有限公司 | 一种移动终端app的开发方法及启动方法 |
CN104809011B (zh) * | 2015-04-13 | 2018-04-27 | 中国科学院声学研究所 | 一种应用程序的管理方法 |
CN106406920A (zh) * | 2015-07-29 | 2017-02-15 | 宋青见 | 终端设备及其应用程序的执行方法 |
CN106569859B (zh) * | 2016-10-28 | 2020-10-30 | 搜游网络科技(北京)有限公司 | 一种目标文件的加载方法及装置 |
-
2017
- 2017-10-12 CN CN201710946794.4A patent/CN107809470B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036983A (zh) * | 2012-12-14 | 2013-04-10 | 北京小米科技有限责任公司 | 一种信息获取的方法、网络节点、服务器及系统 |
CN103164525A (zh) * | 2013-03-26 | 2013-06-19 | 北界创想(北京)软件有限公司 | Web应用发布方法和装置 |
CN104158905A (zh) * | 2014-08-28 | 2014-11-19 | 北京京东尚科信息技术有限公司 | web容器的创建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107809470A (zh) | 2018-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10713034B2 (en) | Updating web resources | |
CN107809470B (zh) | 应用程序自动化部署的方法和装置 | |
US11563674B2 (en) | Content based routing method and apparatus | |
CN109218368B (zh) | 实现Http反向代理的方法、装置、电子设备和可读介质 | |
CN107547629B (zh) | 客户端静态资源下载的方法、装置、电子设备和可读介质 | |
CN111475180A (zh) | 更新客户端缓存的方法和系统 | |
EP2682863A1 (en) | Installing applications remotely | |
WO2012151993A1 (zh) | 业务推送方法和装置 | |
CN110572422A (zh) | 数据下载方法和装置 | |
WO2019029451A1 (zh) | 发布移动应用的方法和电子设备 | |
CN110753020A (zh) | 网络请求处理方法和装置 | |
CN110928571A (zh) | 业务程序开发方法和装置 | |
CN109144843B (zh) | 测试环境部署的方法和装置 | |
CN112748962B (zh) | 应用加载方法、装置、电子设备和计算机可读介质 | |
CN107678755B (zh) | 安装包打包的方法、装置、电子设备和计算机可读介质 | |
CN113452733A (zh) | 文件下载方法和装置 | |
CN110807162A (zh) | 加载占位图的方法和装置 | |
US9253279B2 (en) | Preemptive caching of data | |
US9754327B2 (en) | Method and apparatus for configuring social networking site sharing functions | |
CN109981546B (zh) | 获取应用模块间的远程调用关系的方法和装置 | |
CN112149392A (zh) | 一种富文本编辑方法和装置 | |
EP2680135B1 (en) | Methods for updating applications | |
CN110851194A (zh) | 一种用于获取实现新接口的代码的方法和装置 | |
CN113765983A (zh) | 一种站点服务的部署方法和装置 | |
CN113132447A (zh) | 反向代理的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |