容器进程控件的构建方法及装置的制造方法
【技术领域】
[0001]本发明涉及web平台技术领域,特别是涉及一种容器进程控件的构建方法及装置。
【背景技术】
[0002]为了能够节省硬件资源,虚拟化技术得到越来越多的认可及使用。虚拟化技术是一种资源管理技术,是将计算机的各种实体资源,如服务器,予以抽象、转换后呈现出来,打破实体机构间不可分割的障碍。目前,为了节省服务器资源,通过Xen虚拟化技术将一台服务器虚拟出多台服务器,虚拟出的多台服务器之间共享包括内核在内的一个完整的系统镜像,同时一个服务器上能够允许多个进程同时运行,以满足不同业务的应用需求。在通过Xen虚拟化技术虚拟服务器时,需要在实体服务器上构建一个虚拟化层,基于虚拟化层虚拟多个服务器,确保了虚拟的多个服务器之间运行空间的隔离,但是,由于虚拟化层的构建,导致虚拟服务器与系统内核不是直接进行交互,因此,使得虚拟服务器的性能不能满足不同业务的更多需求。
[0003]为了解决上述问题,可以将服务器上的不同业务分离到容器中,容器的构建无需构建虚拟化层,就能提供隔离的运行空间,即每个容器内都包含一个独享的完整运行空间,构建后的容器可以与系统内核直接进行交互,提高了中央处理器(Central ProcessingUnit,CPU)、内存等硬件资源的处理效率。但是,容器一次往往允许运行一个进程,而执行一个业务往往需要多个进程的支持,从而导致在业务执行过程中需要使用多个容器,造成资源的浪费。
【发明内容】
[0004]有鉴于此,本发明提供的一种容器进程控件的构建方法及装置,主要目的在于构建一个容器进程控件,能够使容器在调用一个进程时,实现多个子进程的调用。
[0005]依据本发明一个方面,本发明提供了一种容器进程控件的构建方法,所述方法包括:
[0006]获取第一容器中的功能服务,所述功能服务能够通过调用一个进程实现多个子进程的调用;
[0007]在第二容器中启动所述功能服务;
[0008]若所述功能服务无法在所述第二容器中启动,则对所述功能服务的使用环境进行适配,生成适用于所述第二容器的容器进程控件;其中,所述功能服务的使用环境为所述第一容器的容器环境。
[0009]依据本发明另一个方面,本发明提供了一种容器进程控件的构建装置,所述装置包括:
[0010]获取单元,用于获取第一容器中的功能服务,所述功能服务能够通过调用一个进程实现多个子进程的调用;
[0011]启动单元,在第二容器中启动所述获取单元获取的所述功能服务;
[0012]适配单元,当所述功能服务无法在所述启动单元的所述第二容器中启动时,对所述功能服务的使用环境进行适配,生成适用于所述第二容器的容器进程控件;其中,所述功能服务的使用环境为所述第一容器的容器环境。
[0013]借由上述技术方案,本发明提供的容器进程控件的构建方法及装置,首先获取第一容器中的功能服务,该功能服务可以通过调用一个进程实现多个子进程的调用,将获取后的功能服务在第一容器中进行启动,当该功能服务在第二容器中无法启动时,对该功能服务的使用环境进程适配,生成适用于第二容器的容器进程控件,将该功能服务“移植”到第二容器中构建一个容器进程控件,能够使容器在调用一个进程时,实现多个子进程的调用。
[0014]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0015]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0016]图1示出了本发明实施例提供的一种容器进程控件的构建方法的流程图;
[0017]图2示出了本发明实施例提供的一种容器进程控件的构建装置的组成框图;
[0018]图3示出了本发明实施例提供的另一种容器进程控件的构建装置的组成框图;
[0019]图4示出了本发明实施例提供的另一种容器进程控件的构建装置的组成框图;
[0020]图5示出了本发明实施例提供的另一种容器进程控件的构建装置的组成框图。
【具体实施方式】
[0021]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0022]本发明实施例提供一种容器进程控件的构建方法,如图1所示,该方法包括:
[0023]101、获取第一容器中的功能服务。
[0024]基于不同的Linux发行版本,基于Linux发行版本开发的容器也存在差异,在开发容器对应的功能服务时,往往使用不同的编程语言,从而使得功能服务的使用环境存在差异,可能导致一种容器内的功能服务不能直接应用到其他的容器中,即功能服务在不同容器间的兼容性较差。在具体实施时,容器的类型包括但不局限于以下的内容,例如,乌班图Ubuntu 类型、社区企业操作系统(Community Enterprise Operating System, CentOS)类型;或者,DebianGNU/Linux类型,Fedora类型等等。本发明实施例对容器的具体类型不进行限定。
[0025]为了达到在一个容器内同时启动多个子进程的目的,首先,获取第一容器中的功能服务,该功能服务能够通过调用一个进程实现多个子进程的调用。
[0026]102、在第二容器中启动功能服务。
[0027]将获取后的功能服务在第二容器中进行启动,若该功能服务能够在第二容器中启动,则无需执行步骤103,直接将获取的功能服务“移植”到第二容器中即可。但是,在实际操作过程中,由于功能服务兼容性较差,一个容器内的功能服务往往不能在另一种容器内进行直接启动;若该功能服务无法在第二容器中启动,则执行步骤103。
[0028]103、对功能服务的使用环境进行适配,生成适用于第二容器的容器进程控件。
[0029]其中,功能服务的使用环境为第一容器的容器环境,第一容器的容器环境为计算机程序编程语言,由于不同的容器支持不同的计算机程序编程语言,因此,导致不同的容器中容器环境存在差异。本发明实施例提供的计算机程序编程语言包括但不仅限于下列内容,例如,PythoruC语言、JAVA、ASP、ASP.NET、Visual Basic,Visual Basic.NET ;或者,C++、C#、Perl、PHP, SQL、FoRTRAN、Visual Foxpro等等。本发明实施例对计算机程序编程语言的具体类型不进行限定,计算机程序编程语言要依据其所在容器内是否支持来确定。
[0030]对步骤101中获取的功能服务的使用环境进程适配之后,生成适用于第二容器的容器进程控件,在本质上第二容器的容器进程控件与第一容器中的功能服务具备相同的功能,即都能够实现调用一个进程实现多个子进程的调用。当容器进程控件进行启动时,容器进程控件调用的进程能够调用多个子进程,可以接收子进程发送的请求信息,也可以向子进程发送控制信息等,从而实