一种应用程序部署方法及装置的制造方法

文档序号:10470970阅读:158来源:国知局
一种应用程序部署方法及装置的制造方法
【专利摘要】本发明提供一种应用程序部署方法及装置,涉及服务器部署领域,所述方法包括如下步骤:获取目标应用程序信息;根据所述目标应用程序信息获取目标应用程序包,所述目标应用程序包中至少包括目标应用程序;解析所述目标应用程序包,将所述目标应用程序部署到预定目录中;调用所述目标应用程序的启动模块启动所述目标应用程序,本发明能够提高在服务器中部署应用程序操作的效率。
【专利说明】
_种应用程序部署方法及装置
技术领域
[0001]本发明涉及服务器部署领域,具体涉及一种应用部署方法及装置。
【背景技术】
[0002]目前,在服务器中部署应用程序时,通常要使用web容器,web容器本身是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序主要用于处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。
[0003]开发者编制的应用程序需要符合web容器的规范才能部署到web容器中,以Tomcat容器为例,部署在其中的应用程序均需遵循Servlet规范。现有的基于web容器的应用程序部署方法通常是人工下载某一种现有的web容器,将下载的web容器部署在服务器中,然后人为寻找符合该容器规范的应用程序,下载该应用程序并部署在web容器中,此外还需要人为编写启动脚本来启动web容器,最终实现对用户端提供服务。由此可见,现有的应用程序部署方式过程复杂,需要大量人工操作,部署效率较低。

【发明内容】

[0004]因此,本发明实施例要解决的是现有的应用程序部署方式效率低的技术问题。
[0005]有鉴于此本发明实施例提供一种应用程序部署方法,包括如下步骤:获取目标应用程序信息;根据所述目标应用程序信息获取目标应用程序包,所述目标应用程序包中至少包括目标应用程序;解析所述目标应用程序包,将所述目标应用程序部署到预定目录中;调用所述目标应用程序的启动模块启动所述目标应用程序。
[0006]优选地,所述根据所述目标应用程序信息获取目标应用程序包,包括:利用项目管理工具确定应用程序库的位置;在所述应用程序库中搜索与所述目标应用程序信息相符的应用程序包;将所述应用程序包下载到预定的项目空间目录下。
[0007]优选地,所述解析所述目标应用程序包,将所述目标应用程序部署到预定目录中,包括:利用项目管理工具从所述应用程序包中解析出所述目标应用程序;将所述目标应用程序安装到预定的项目空间目录下。
[0008]优选地,在所述调用所述目标应用程序中的启动模块启动所述目标应用程序之后,还包括:
[0009]通过异步或同步的方式监听服务器端口是否接收到用户端发送的请求;
[0010]当接收到所述请求时,根据URL部署列表将所述请求转发给所述应用程序进行处理。
[0011 ]优选地,所述目标应用程序信息包括目标应用程序名称和目标应用程序版本信息。
[0012]相应地,本发明还提供一种应用程序部署装置,包括:信息获取单元,用于获取目标应用程序信息;程序包获取单元,用于根据所述目标应用程序信息获取目标应用程序包,所述目标应用程序包中至少包括目标应用程序;部署单元,用于解析所述目标应用程序包,将所述目标应用程序部署到预定目录中;启动单元,用于调用所述目标应用程序的启动模块启动所述目标应用程序。
[0013]优选地,所述程序包获取单元包括:
[0014]库确定单元,用于利用项目管理工具确定应用程序库的位置;
[0015]文件确定单元,用于在所述应用程序库中搜索与所述目标应用程序信息相符的应用程序包;
[0016]下载单元,用于将所述应用程序包下载到预定的项目空间目录下。
[0017]优选地,所述部署单元包括:
[0018]解析单元,用于利用项目管理工具从所述应用程序包中解析出所述目标应用程序;
[0019]安装单元,用于将所述目标应用程序安装到预定的项目空间目录下。
[0020]优选地,还包括:
[0021]监听单元,用于通过异步或同步的方式监听服务器端口是否接收到用户端发送的请求;
[0022]转发单元,用于当接收到所述请求时,根据URL部署列表将所述请求转发给所述应用程序进行处理。
[0023]优选地,所述目标应用程序信息包括目标应用程序名称和目标应用程序版本信息。
[0024]本发明实施例提供的应用程序部署方法及装置,根据目标应用程序信息自动关联预先制作的目标应用程序包,并自动将目标程序部署到预定的目录中,相比于现有的利用web容器部署应用程序的方式,本方案不需要部署人员人为下载、安装并设置web容器,也不需要人工搜索合适的应用程序,所有的部署操作均为自动完成,由此可以提高应用程序的部署效率。并且本方法不由web容器自动启动应用程序,而可以由部署人员调用应用程序自有的启动模块进行启动,由此可以提高部署操作的灵活性。
【附图说明】
[0025]为了更清楚地说明本发明【具体实施方式】或现有技术中的技术方案,下面将对【具体实施方式】或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0026]图1是本发明实施例提供的应用程序部署方法的流程图;
[0027]图2是本发明实施例提供的应用程序部署装置的结构示意图。
【具体实施方式】
[0028]下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0029]本发明实施例提供了一种应用程序部署方法,该方法由服务器执行,被部署的应用程序是用于处理用户端发送的请求的程序,如图1所示该方法包括如下步骤:
[0030]SI,获取目标应用程序信息,该信息通常由部署人员提供,用于确定需要部署的应用程序,该信息可以包括程序名称、发布时间、发布者身份等内容;
[0031 ] S2,根据目标应用程序信息获取目标应用程序包,目标应用程序包中至少包括目标应用程序,除此之外还可以包括其他各种配置文件。其中目标应用程序中包括启动模块,启动模块用于启动目标应用程序。本步骤即自动关联预先制作的某应用程序包,该应用程序包是由编程人员预先制作的,关联的方式有多种,例如可以从其他服务器中下载,或者在本地服务器中拷贝等。上述启动模块是目标应用程序的一部分,即制作目标应用程序时,编程人员应当按照预定的规范编制应用程序,在其中设置启动模块,该模块具体可以是main函数,该函数可以被部署者调用,即通过main方法启动本应用程序;
[0032]需要说明的是,上述预定的规范包括但不限于MessageContext规范,此规范与现有的应用程序所遵循的Servlet规范所不同的是,Servlet规范只能支持http协议的请求解析,而且它们不是独立的应用程序,没有main方法,由此则不能设置启动模块,因此现有的应用程序不能由用户或者部署者调用,而必须由另外一个应用程序(即web容器)调用,使部署者对其无法控制。
[0033]S3,解析目标应用程序包,将目标应用程序部署到预定目录中,能够解析并安装应用程序包的工具有多种,具体应当根据应用程序包的格式以及本方法的执行环境来确定。同时,预定目录也是部署人员预先设定的,该目录是本地硬盘的一个存储目录;
[0034]S4,调用目标应用程序的启动模块启动目标应用程序,如上文所述,在自动解析并安装目标应用程序后,即可通过main函数启动该程序,由此完成部署操作。
[0035]本实施例提供的应用程序部署方法,根据目标应用程序信息自动关联预先制作的目标应用程序包,并自动将目标程序部署到预定的目录中,相比于现有的利用web容器部署应用程序的方式,本方案不需要部署人员人为下载、安装并设置web容器,也不需要人工搜索合适的应用程序,所有的部署操作均为自动完成,由此可以提高应用程序的部署效率。并且本方法不由web容器自动启动应用程序,而可以由部署人员调用应用程序自有的启动模块进行启动,由此可以提高部署操作的灵活性。
[0036]在部署完毕之后,还可以包括如下步骤:
[0037]S5,通过异步或同步的方式监听服务器端口是否接收到用户端发送的请求,例如可以基于netty异步通信框架监听端口 ;
[0038]S6,当接收到所述请求时,根据URL部署列表将所述请求转发给所述应用程序进行处理。部署人员可以通过配置xml文件的形式提供自动部署的url列表,本方案可基于MessageContext规范自动解析配置获取url列表初始化上下文环境。
[0039]作为一个优选的实施方式,上述目标应用程序信息包括目标应用程序名称和目标应用程序版本信息,由于应用程序的制作方可能会对原有的程序进行更新,将更新后的应用程序打包放入应用程序库中,因此应用程序库中可能存在多个名称相同但版本信息不同的应用程序包,所以本实施例还在确定所需的应用程序时,还可以提供版本信息结合名称信息来准确地获取到目标应用程序包。
[0040]本实施例提供的方案可以在JAVA环境下执行,在JAVA环境下,目标应用程序包通常为JAR文件。JAR文件格式以流行的ZIP文件格式为基础,与ZIP文件不同的是,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和诸如maven这样的工具直接使用,在JAR中包含特殊的文件,如manifests和部署描述符,用来指示工具如何处理特定的JAR文件。
[0041]上述步骤S2具体可以包括如下子步骤:
[0042]S21,利用项目管理工具确定JAR库的位置,所述项目管理工具可以是诸如maven等工具,JAR库可以在其他服务器中;
[0043]S22,在JAR库中搜索与目标应用程序信息相符的JAR文件;
[0044]S23,将JAR文件下载到预定的项目空间目录下,其中项目空间目录通常是在建立应用程序部署项目时确定的,由此maven工具将自动把JAR文件下载到该目录中。
[0045]上述步骤S3可以具体包括如下步骤:
[0046]S31,利用项目管理工具从JAR文件中解析出目标应用程序;
[0047]S32,将目标应用程序安装到预定的项目空间目录下,由此maven工具将解析出的目标应用程序安装到该目录中。
[0048]由于诸如maven等工具是本领域技术人员比较常用的编程项目管理管理工具,本实施例利用此类工具进行部署工作,不需要部署人员额外安装并设置另外的程序,如下载、解析和安装应用程序均由项目管理工具自动完成,不需要人为选择部署目录并手动拷贝或安装应用程序,由此可以进一步提高部署效率。
[0049 ]本发明的另一个实施例还提供了一种应用程序部署装置,如图2所示该装置包括:
[0050]信息获取单元21,用于获取目标应用程序信息;
[0051 ]程序包获取单元22,用于根据所述目标应用程序信息获取目标应用程序包,所述目标应用程序包中至少包括目标应用程序,所述目标应用程序中包括启动模块,所述启动模块用于启动所述目标应用程序;
[0052]部署单元23,用于解析所述目标应用程序包,将所述目标应用程序部署到预定目录中;
[0053]启动单元24,用于调用所述目标应用程序的启动模块启动所述目标应用程序。
[0054]本实施例提供的应用程序部署装置根据目标应用程序信息自动关联预先制作的目标应用程序包,并自动将目标程序部署到预定的目录中,相比于现有的利用web容器部署应用程序的方式,本方案不需要部署人员人为下载、安装并设置web容器,也不需要人工搜索合适的应用程序,所有的部署操作均为自动完成,由此可以提高应用程序的部署效率。并且本方法不由web容器自动启动应用程序,而可以由部署人员调用应用程序自有的启动模块进行启动,由此可以提高部署操作的灵活性。
[0055]优选地,上述装置还包括:
[0056]监听单元,用于通过异步或同步的方式监听服务器端口是否接收到用户端发送的请求;
[0057]转发单元,用于当接收到所述请求时,根据URL部署列表将所述请求转发给所述应用程序进行处理。
[0058]优选地,所述目标应用程序信息包括目标应用程序名称和目标应用程序版本信息,利用上述两种信息可以更准确地确定目标应用程序。
[0059]本实施例提供的方案可以在JAVA环境下执行,所述目标应用程序包为JAR文件。
[0060]所述程序包获取单元22包括:
[0061]库确定单元,用于利用项目管理工具确定应用程序库的位置;
[0062]文件确定单元,用于在所述应用程序库中搜索与所述目标应用程序信息相符的应用程序包;
[0063]下载单元,用于将所述应用程序包下载到预定的项目空间目录下。
[0064]所述部署单元23包括:
[0065]解析单元,用于利用项目管理工具从所述应用程序包中解析出所述目标应用程序;
[0066]安装单元,用于将所述目标应用程序安装到预定的项目空间目录下。由于诸如maven等项目管理工具是本领域技术人员比较常用的编程项目管理管理工具,本实施例利用此类工具进行部署工作,不需要部署人员额外安装并设置另外的程序,如下载、解析和安装应用程序均由项目管理工具自动完成,不需要人为选择部署目录并手动拷贝或安装应用程序,由此可以进一步提高部署效率。
[0067]显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
【主权项】
1.一种应用程序部署方法,其特征在于,包括: 获取目标应用程序信息; 根据所述目标应用程序信息获取目标应用程序包,所述目标应用程序包中至少包括目标应用程序; 解析所述目标应用程序包,将所述目标应用程序部署到预定目录中; 调用所述目标应用程序中的启动模块启动所述目标应用程序。2.根据权利要求1所述的方法,其特征在于,所述根据所述目标应用程序信息获取目标应用程序包,包括: 利用项目管理工具确定应用程序库的位置; 在所述应用程序库中搜索与所述目标应用程序信息相符的应用程序包; 将所述应用程序包下载到预定的项目空间目录下。3.根据权利要求2所述的方法,其特征在于,所述解析所述目标应用程序包,将所述目标应用程序部署到预定目录中,包括: 利用项目管理工具从所述应用程序包中解析出所述目标应用程序; 将所述目标应用程序安装到预定的项目空间目录下。4.根据权利要求1所述的方法,其特征在于,在所述调用所述目标应用程序中的启动模块启动所述目标应用程序之后,还包括: 通过异步或同步的方式监听服务器端口是否接收到用户端发送的请求; 当接收到所述请求时,根据URL部署列表将所述请求转发给所述应用程序进行处理。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述目标应用程序信息包括目标应用程序名称和目标应用程序版本信息。6.一种应用程序部署装置,其特征在于,包括: 信息获取单元,用于获取目标应用程序信息; 程序包获取单元,用于根据所述目标应用程序信息获取目标应用程序包,所述目标应用程序包中至少包括目标应用程序; 部署单元,用于解析所述目标应用程序包,将所述目标应用程序部署到预定目录中; 启动单元,用于调用所述目标应用程序的启动模块启动所述目标应用程序。7.根据权利要求6所述的装置,其特征在于,所述程序包获取单元包括: 库确定单元,用于利用项目管理工具确定应用程序库的位置; 文件确定单元,用于在所述应用程序库中搜索与所述目标应用程序信息相符的应用程序包; 下载单元,用于将所述应用程序包下载到预定的项目空间目录下。8.根据权利要求6所述的装置,其特征在于,所述部署单元包括: 解析单元,用于利用项目管理工具从所述应用程序包中解析出所述目标应用程序; 安装单元,用于将所述目标应用程序安装到预定的项目空间目录下。9.根据权利要求6所述的装置,其特征在于,还包括: 监听单元,用于通过异步或同步的方式监听服务器端口是否接收到用户端发送的请求; 转发单元,用于当接收到所述请求时,根据URL部署列表将所述请求转发给所述应用程序进彳丁处理。10.根据权利要求6-9中任一项所述的装置,其特征在于,所述目标应用程序信息包括目标应用程序名称和目标应用程序版本信息。
【文档编号】G06F9/445GK105824674SQ201610166286
【公开日】2016年8月3日
【申请日】2016年3月22日
【发明人】李轶翔
【申请人】乐视网信息技术(北京)股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1