具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参见图1,图1是本发明实施例提供的管理节点包管理器的组件包的系统的网络拓扑架构示意图。为了便于说明,仅示出了与本实施例相关的部分。
如图所示的系统中包括至少一个终端110、一个管理服务器120,以及至少一个源服务器130,源服务器130中存储有NPM组件包。终端110包括但不限于台式电脑、笔记本电脑,还可以是其他可开发NPM组件包的终端。管理服务器120可以是Nginx,Nginx也称enginex,是一个高性能的超文本传输协议(Hyper Text Transport Protocol,HTTP)服务器和反向代理服务器。
终端110可以与管理服务器120进行通信,管理服务器120可以与源服务器进行通信。
可选地,当终端110获知源服务器130的访问地址时,也可以跟源服务器130进行通信。
基于图1所示的管理节点包管理器的组件包的系统的网络拓扑架构示意图,下面结合图2、图3对本发明的管理节点包管理器的组件包的方法进行详细说明,阐述终端、管理服务器以及源服务器之间的数据交互过程。具体地,请参见图1,图1是本发明实施例提供的一种管理节点包管理器的组件包的方法的实现流程图。如图所示的管理节点包管理器的组件包的方法可包括以下步骤:
S101:管理服务器获取终端发送的请求信息,根据所述请求信息包含的节点包管理器NPM的组件包的属性信息向存储所述组件包的源服务器发送控制指令;所述控制指令包括所述属性信息;所述属性信息包括所述组件包的唯一标识以及当前的第一版本号。
开发人员在需要对NPM的组件包进行开发及测试时,在终端通过管理服务器的访问地址与管理服务器建立通信连接后,开发人员可通过终端显示的交互界面输入或选择NPM组件包(NPM包)的唯一标识以及NPM组件包当前的第一版本号,并触发终端生成请求信息。NPM组件包的第一版本号是指当前需要下载的NPM组件包的版本号。NPM组件包是指通过NPM管理的组件包。
请求信息用于请求获取需要调试的NPM组件包的下载地址,请求信息包括待调试的NPM组件包的属性信息以及终端标识,待调试的NPM组件包的属性信息包括NPM组件包的唯一标识以及NPM组件包当前的第一版本号。终端标识为终端的唯一标识,例如,媒体访问控制(Media Access Control,MAC)地址。待调试的NPM组件包是指开发人员需要下载并进行开发、测试的NPM组件包。
待调试的NPM组件包的属性信息用于获取其下载地址,终端的标识用于管理服务器向终端返回NPM组件包的下载地址。
终端在生成请求信息时,将生成的请求信息发送给管理服务器。
管理服务器的数据库中预先存储了NPM组件包的属性信息以及NPM组件包的下载地址之间的对应关系,NPM组件包的下载地址可以是源服务器中该NPM组件包的存储地址。
管理服务器接收每个终端发送的请求信息,对请求信息进行解析,从请求消息的标头(header)头部信息中获取每个请求信息包含的NPM组件包的属性信息,得到待调试的NPM组件包的唯一标识以及当前的第一版本号;之后,响应该请求信息,根据请求信息中包含的待调试的NPM组件包的唯一标识以及当前的第一版本号,从数据库查找与该唯一标识以及当前的第一版本号均匹配的下载地址,并根据匹配的下载地址与源服务器建立通信连接,向源服务器发送控制指令;控制指令用于指示源服务器创建虚拟的运行环境;控制指令包括待调试的NPM组件包的属性信息;所述属性信息包括所述组件包的唯一标识以及当前的第一版本号。虚拟运行环境用于为开发的新版本的NPM组件包提供运行环境。
可以理解的是,管理服务器获取到的匹配的下载地址可以为一个,也可以为至少两个。当获取到至少两个匹配的下载地址时,管理服务器可以根据其中的任意一个下载地址向该下载地址对应的源服务器发送控制指令。
例如,管理服务器接收到第一终端发送的第一请求信息时,根据第一请求信息包含的第一NPM组件包的属性信息向源服务器发送第一控制指令,以指示源服务器根据第一控制指令为新版本的第一NPM组件包创建虚拟运行环境。
管理服务器接收到第二终端或第一终端发送的第二请求信息时,根据第二请求信息包含的第二NPM组件包的属性信息向源服务器发送第二控制指令,以指示源服务器根据第二控制指令为新版本的第二NPM组件包创建虚拟运行环境。
S102:源服务器根据所述管理服务器发送的所述控制指令创建虚拟运行环境,并向所述管理服务器返回第一通知消息,所述第一通知消息包括所述虚拟运行环境的标识。
源服务器在接收到管理服务器发送的控制指令时,基于应用容器引擎Docker语法在源服务器中为控制指令中包含的NPM组件包的属性信息对应的新版本的NPM组件包创建Docker镜像,得到虚拟运行环境。虚拟运行环境与源服务器中真实的运行环境相同。在源服务器中分别创建的虚拟运行环境的标识可以为docker1、docker2、docker3、……、dockerN。dockerN表示第N个docker镜像的标识。
源服务器在创建好虚拟运行环境后,根据管理服务器的访问地址向管理服务器发送标识虚拟运行环境创建成功的第一通知消息,该通知消息包括创建的虚拟运行环境的标识。创建的虚拟运行环境用于运行开发的新版本的NPM包。其中,一个虚拟运行环境为一个版本的NPM包提供运行环境。
可以理解的是,当该源服务器在创建虚拟环境失败时,向管理服务器返回用于表示虚拟运行环境创建失败的通知消息,以使得管理服务器在获取到至少两个匹配的下载地址时,更换下载地址发送用于指示下载地址对应的源服务器创建虚拟的运行环境的控制指令。
S103:所述管理服务器根据所述第一通知消息关联存储所述属性信息以及所述虚拟运行环境的标识,根据所述请求信息携带的终端标识向所述终端返回第二通知消息;所述第二通知信息至少包括所述第一版本号的所述组件包的下载地址。
管理服务器在接收到源服务器反馈的用于表示虚拟运行环境创建成功的通知消息时,可以将NPM组件包的属性信息以及通知消息中创建的虚拟运行环境的标识关联保存。
进一步地,管理服务器还可以将NPM组件包的下载地址、NPM组件包的属性信息以及通知消息中创建的虚拟运行环境的标识关联保存,从而将NPM组件包的唯一标识及当前的版本号、NPM组件包的下载地址以及第一通知消息中创建的虚拟运行环境的标识关联保存,以使得管理服务器在接收到终端发送的新版本的NPM组件包时,能够根据NPM组件包的唯一标识确定与其匹配的虚拟运行环境的标识。
可以理解的是,当与NPM组件包的唯一标识匹配的虚拟运行环境的标识为至少两个时,管理服务器可以从中选择任意一个没有被使用的虚拟运行环境。
可以理解的是,管理服务器还可以关联存储终端标识、NPM组件包的属性信息以及虚拟运行环境的标识,以使得管理服务器在接收到终端上传的新版本的NPM组件包时,根据终端标识、NPM组件包的唯一标识以及下载的NPM组件包的第一版本号,确定该新版本的NPM组件包对应的虚拟运行环境。
管理服务器可以根据请求消息中的终端的标识向发送请求消息的终端发送第二通知信息。第二通知信息至少包括第一版本号的NPM组件包的下载地址,该下载地址指向存储第一版本的NPM组件包的源服务器。该下载地址根据NPM组件包的唯一标识以及当前的第一版本号确定。第二通知消息用于通知终端根据第一版本号的所述组件包的下载地址下载NPM组件包。
终端在接收到管理服务器发送的第二通知消息时,根据第二通知消息中的第一版本号的NPM组件包的下载地址下载NPM组件包,以便开发人员在第一版本号的NPM的基础上进行开发,开发人员可通过交互界面选择的在第一版本号的NPM的基础上开发出新版本的NPM组件包,并触发上传指令。终端获取开发人员上传的新版本的NPM组件包,并将其发送给管理服务器。上传的NPM组件包至少包括NPM组件包的唯一标识。
S104:所述管理服务器接收所述终端在根据所述下载地址下载所述第一版本号的组件包后上传的组件包,根据所述属性信息以及所述虚拟运行环境的标识的关联关系、所述上传的组件包的属性信息将所述上传的组件包运行于目标虚拟运行环境。
管理服务器在获取到新版本的NPM包时,根据NPM组件包的属性信息以及虚拟运行环境的标识的关联关系,获取与上传的NPM组件包的属性信息(唯一标识、下载的NPM组件包的第一版本号)相匹配的目标虚拟运行环境的标识,根据目标虚拟运行环境的标识确定该虚拟运行环境所属的目标源服务器,根据目标源服务器的访问地址与其建立通信连接,从而将上传的新版本的NPM组件包存储至目标源服务器中的目标虚拟运行环境中,在目标虚拟运行环境中运行上传的NPM组件包并进行测试。
可以理解的是,当管理服务器中关联存储有终端标识、NPM组件包的属性信息以及虚拟运行环境的标识时,根据终端标识、NPM组件包的属性信息以及虚拟运行环境的标识之间的关联关系,获取与该NPM组件包的属性信息、上传NPM组件包的终端的终端标识均匹配的目标虚拟运行环境的标识,从而将上传的新版本的NPM组件包存储至目标源服务器中的目标虚拟运行环境中,从而能够在目标虚拟运行环境中运行上传的NPM组件包并进行测试。
本发明实施例,在需要对NPM组件包进行并行开发与测试时,通过管理服务器根据终端发送的请求信息向存储有该NPM组件包的源服务器发送控制指令,控制该源服务器为该NPM组件包创建虚拟运行环境,以在虚拟的运行环境中运行并测试新版本的NPM组件包。通过在原来部署的源服务器内根据实际需求创建虚拟运行环境,不需要新增加源服务器,在同一台源服务器中即可实现多套并行的运行环境支持NPM组件包的开发与测试,可节省部署新的源服务器所需要的硬件成本以及维护成本。
请参见图3,图3是本发明另一实施例提供的一种管理节点包管理器的组件包的方法的实现流程图。如图所示的管理节点包管理器的组件包的方法可包括以下步骤:
S201:管理服务器获取终端发送的请求信息,根据预设的版本命名策略以及所述请求信息包含的节点包管理器NPM的组件包的属性信息,为所述组件包创建第二版本号。
开发人员在需要对NPM的组件包进行开发及测试时,在终端通过管理服务器的访问地址与管理服务器建立通信连接后,开发人员可通过终端显示的交互界面输入或选择NPM组件包(NPM包)的唯一标识以及当前的第一版本号,并触发终端生成请求信息。NPM组件包的第一版本号是指当前需要下载的NPM组件包的版本号。
请求信息用于请求获取需要调试的NPM组件包的下载地址,请求信息包括待调试的NPM组件包的属性信息以及终端标识,待调试的NPM组件包的属性信息包括唯一标识以及当前的第一版本号。终端标识为终端的唯一标识,例如,媒体访问控制(Media AccessControl,MAC)地址。待调试的NPM组件包是指开发人员需要下载并进行开发、测试的NPM组件包。
待调试的NPM组件包的属性信息用于获取其下载地址,终端的标识用于管理服务器向终端返回NPM组件包的下载地址。
终端在生成请求信息时,将生成的请求信息发送给管理服务器。
管理服务器的数据库中预先存储了NPM组件包的属性信息以及NPM组件包的下载地址之间的对应关系,NPM组件包的下载地址可以是源服务器中该NPM组件包的存储地址。
管理服务器接收每个终端发送的请求信息,对请求信息进行解析,从请求消息的标头(header)头部信息中获取每个请求信息包含的NPM组件包的属性信息,得到待调试的NPM组件包的唯一标识以及当前的第一版本号;之后,根据当前的第一版本号以及NPM组件包的版本命名策略,为每个终端分别确定更新版本的NPM组件包的第二版本号,第二版本号是开发人员基于第一版本号的NPM组件包进行开发得到的新NPM组件包的版本号。管理服务器发送的控制指令中还包括NPM包的新版本号,以使得源服务器在接收到控制指令时,创建该新版本号对应的虚拟的运行环境。
第二版本号通常比源服务器中已存储的NPM组件包的版本号更高。
可以理解的是,管理服务器获取到的匹配的下载地址可以为一个,也可以为至少两个。
S202:向存储所述组件包的源服务器发送控制指令;所述控制指令包括所述唯一标识以及所述第二版本号。
管理服务器在获取到待调试的NPM组件包的唯一标识以及当前的第一版本号,从数据库查找与该唯一标识以及当前的第一版本号均匹配的下载地址,并根据匹配的下载地址与源服务器建立通信连接,向源服务器发送控制指令;控制指令用于指示源服务器创建虚拟的运行环境;控制指令包括待调试的NPM组件包的属性信息;所述属性信息包括所述组件包的唯一标识以及当前的第一版本号。虚拟运行环境用于为开发的新版本的NPM组件包提供运行环境。
当获取到至少两个匹配的下载地址时,管理服务器可以根据其中的任意一个下载地址向该下载地址对应的源服务器发送控制指令。
例如,管理服务器接收到第一终端发送的第一请求信息时,根据第一请求信息包含的第一NPM组件包的属性信息向源服务器发送第一控制指令,以指示源服务器根据第一控制指令为新版本的第一NPM组件包创建虚拟运行环境。
管理服务器接收到第二终端或第一终端发送的第二请求信息时,根据第二请求信息包含的第二NPM组件包的属性信息向源服务器发送第二控制指令,以指示源服务器根据第二控制指令为新版本的第二NPM组件包创建虚拟运行环境。
S203:源服务器根据所述管理服务器发送的所述控制指令创建虚拟运行环境,并向所述管理服务器返回第一通知消息,所述第一通知消息包括所述虚拟运行环境的标识。
本实施例中S203与上一实施例中的S102相同,具体请参阅上一实施例中S102的相关描述,此处不赘述。
其中,源服务器在根据控制指令成功创建虚拟运行环境时,执行S204。
S204:所述管理服务器根据所述第一通知消息关联存储所述唯一标识、所述第一通知消息包含的所述第二版本号以及所述虚拟运行环境的标识,根据所述请求信息携带的终端标识向所述终端返回第二通知消息;所述第二通知信息至少包括所述第一版本号的所述组件包的下载地址、所述第二版本号。
本实施例中S204与上一实施例S103的区别在于,管理服务器关联存储NPM组件包的唯一标识、第一版本号、第二版本号以及虚拟运行环境的标识,管理服务器向终端发送的第二通知消息包括第一版本号的NPM组件包的下载地址、NPM组件包的第二版本号。
可选地,第二通知消息可以包括第一版本号的NPM组件包的下载地址、与第二版本号关联的虚拟运行环境的标识。第一版本号的NPM组件包的下载地址用于下载第一版本的NPM组件包以及确定虚拟运行环境的标识对应的目标源服务器的访问地址。通常地,存储第一版本号的NPM组件包的源服务器、与第二版本号关联的虚拟运行环境的标识所对应的目标服务器为同一源服务器。
可以理解的是,当存储第一版本号的NPM组件包的源服务器、与第二版本号关联的虚拟运行环境的标识所对应的目标服务器为不同的源服务器时,第二通知消息还可以包括与第二版本号关联的虚拟运行环境的标识对应的目标源服务器的访问地址
终端在接收到管理服务器发送的第二通知消息时,根据第二通知消息中的第一版本号的NPM组件包的下载地址下载NPM组件包,以便开发人员在第一版本号的NPM的基础上进行开发,并将新开发得到的NPM包的新版本号设置为第二版本号,开发人员可通过交互界面选择的在第一版本号的NPM的基础上开发出第二版本的NPM组件包,并触发上传指令。终端获取开发人员上传的第二版本的NPM组件包,并将其发送给管理服务器。上传的NPM组件包包括NPM组件包的唯一标识以及第二版本号,还可包括NPM组件包的第一版本号。
可以理解的是,当源服务器在接收到管理服务器发送的控制指令,且根据所述控制指令创建虚拟运行环境失败时,向管理服务器返回第三通知消息;第三通知消息用于标识创建虚拟运行环境失败,通知管理服务器更换源服务器,以使得管理服务器在获取到与第一版本的NPM组件包的属性信息相匹配的下载地址为至少两个时,更换下载地址发送用于指示下载地址对应的源服务器创建虚拟的运行环境的控制指令。
S205:所述管理服务器接收所述终端在根据所述下载地址下载所述第一版本号的组件包后上传的组件包,根据所述唯一标识、所述第二版本号以及所述虚拟运行环境的标识的关联关系、所述上传的组件包的属性信息将所述上传的组件包运行于目标虚拟运行环境。
管理服务器在获取到终端上传的NPM包时,根据NPM组件包的唯一标识、第二版本号以及虚拟运行环境的标识的关联关系,获取与终端上传的NPM组件包的属性信息中包含的唯一标识以及第二版本号均匹配的目标虚拟运行环境的标识,根据目标虚拟运行环境的标识确定该虚拟运行环境所属的目标源服务器,根据目标源服务器的访问地址与其建立通信连接,从而将上传的第二版本的NPM组件包存储至目标源服务器中的目标虚拟运行环境中,在目标虚拟运行环境中运行上传的NPM组件包并进行测试。
在另一实施方式中,当第二通知消息可以包括第一版本号的NPM组件包的下载地址、与第二版本号关联的虚拟运行环境的标识时,在S204之后还可以包括S206:目标源服务器接收所述终端根据所述第二通知消息上传的组件包,根据唯一标识、第二版本号以及虚拟运行环境的标识之间的关联关系、所述上传的组件包携带的属性信息将所述上传的组件包运行于目标虚拟运行环境;所述上传的组件包基于所述第一版本的组件包开发得到;所述目标源服务器为创建与所述第二版本号关联的所述虚拟运行环境的标识对应的虚拟运行环境的源服务器。
终端在接收到管理服务器发送的第二通知消息时,根据第二通知消息中包含的第一版本号的NPM组件包的下载地址下载第一版本号的组件包,以便开发人员在第一版本号的NPM的基础上进行开发,并将新开发得到的NPM包的新版本号设置为第二版本号,开发人员可通过交互界面选择的在第一版本号的NPM的基础上开发出第二版本的NPM组件包,并触发上传指令。
在一实施方式中,当存储第一版本的NPM组件包的源服务器、创建与第二版本的NPM组件包虚拟运行环境的源服务器为同一服务器时,终端在检测到开发人员触发的上传指令时,终端可以根据第一版本号的NPM组件包的下载地址访问目标源服务器,将开发人员上传的新版本的NPM组件包上传至目标源服务器,并通知目标源服务器根据第二通知消息中包含的与第二版本号关联的虚拟运行环境的标识存储第二版本的NPM组件包。上传的NPM组件包包括NPM组件包的唯一标识以及第二版本号,还可包括NPM组件包的第一版本号。
在另一实施方式中,当存储第一版本的NPM组件包的源服务器、创建与第二版本的NPM组件包虚拟运行环境的源服务器为不同的服务器时,终端在检测到开发人员触发的上传指令时,根据向管理服务器请求获取第二通知消息包含的虚拟运行环境的标识所对应的目标源服务器的访问地址,以使管理服务器能够根据每个源服务器所创建的虚拟运行环境的标识,确定第二通知消息中包含的虚拟运行环境的标识所对应的目标源服务器,从而向终端返回目标源服务器的访问地址。
终端在获取到创建与第二版本号关联的虚拟运行环境的标识所对应的源服务器的访问地址时,根据目标源服务器的访问地址访问目标源服务器并向其上传开发人员新开发的NPM组件包。该NPM组件包携带属性信息,属性信息包括NPM组件包的唯一标识、第二版本号,该NPM组件包携带还携带与第二版本号关联的虚拟运行环境的标识。
目标源服务器在获取到终端上传的NPM组件包时,将上传的NPM组件包存储至其携带的虚拟运行环境的标识对应的目标虚拟运行环境中,从而在目标虚拟运行环境中运行并测试该NPM组件包。
可选地,为了充分利用源服务器中的资源,避免不需要继续运行NPM组件包的虚拟运行环境占用系统资源,在S205或S206之后,还可以包括S207:所述管理服务器在检测到所述上传的组件包测试完成时,根据所述上传的组件包对应的虚拟运行环境的标识向所述源服务器发送删除通知;所述删除通知用于删除所述虚拟运行环境的标识对应的虚拟运行环境。
例如,管理服务器在检测到终端触发的用于标识上传的组件包测试完成的通知消息(该通知消息可以由开发人员触发终端生成)时,根据该通知消息携带的组件包的第二版本信息确定与其匹配的虚拟运行环境的标识,根据该匹配的虚拟运行环境的标识向创建该匹配的虚拟运行环境的源服务器发送删除通知,以使源服务器在接收到删除通知时,根据删除通知中包含的虚拟运行环境的标识删除其对应的虚拟运行环境。
在另一实施方式中,当虚拟运行环境中运行的NPM组件包预先设有测试时间时,源服务器可以在检测到当前时刻到达测试时间对应的结束时刻时,删除为该NPM组件包提高运行环境的该虚拟运行环境。
本发明实施例,在需要对NPM组件包进行并行开发与测试时,通过管理服务器根据终端发送的请求信息向存储有该NPM组件包的源服务器发送控制指令,控制该源服务器为该NPM组件包创建虚拟运行环境,以在虚拟的运行环境中运行并测试新版本的NPM组件包。通过在原来部署的源服务器内根据实际需求创建虚拟运行环境,不需要新增加源服务器,在一台源服务器中即可实现多套并行的运行环境支持NPM组件包的开发与测试,可节省部署新的源服务器所需要的硬件成本以及维护成本。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图4是本发明一实施例提供的一种服务器的示意图。如图4所示,该实施例的服务器4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机程序42。所述处理器40执行所述计算机程序42时实现上述各个服务器的管理节点包管理器的组件包的方法实施例中的步骤,例如对管理服务器来说,所述处理器40执行图2所示的步骤S101、S103-S104,对源服务器来说,所述处理器40执行图2所示的步骤S102。
示例性的,所述计算机程序42可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序42在所述服务器4中的执行过程。例如,所述计算机程序42可以被分割成脚本运行单元、获取单元、合并单元以及生成单元,各单元具体功能如上所述。
所述服务器可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是服务器4的示例,并不构成对服务器4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器还可以包括输入输出服务器、网络接入服务器、总线等。
所称处理器40可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述服务器4的内部存储单元,例如服务器4的硬盘或内存。所述存储器41也可以是所述服务器4的外部存储服务器,例如所述服务器4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器41还可以既包括所述服务器4的内部存储单元也包括外部存储服务器。所述存储器41用于存储所述计算机程序以及所述服务器所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。