专利名称:一种提升服务器性能的方法及其系统的制作方法
技术领域:
本发明涉及服务器系统的设计与优化,尤其涉及一种基于移动代码的服务器系统在大规模应用下的实现方法及其系统,通过在服务器中应用移动代码,实现了服务器系统的构建与性能的提升,属于计算机软件技术领域。
背景技术:
随着信息技术在各个领域的应用不断深入,各种企业应用、系统规模不断扩大,功能逐渐复杂多样化。为了应对业务的增长,与服务器相关的技术不断的发展。为了应对大型系统的应用需求,服务器架构技术不断演进,目前的主流技术主要分为分布式架构和集群式架构。简单的说,分布式服务器系统将不同的业务分布在不同的服务器中,共同协作组成一个有机的系统。而集群式服务器则将所有服务器集中在一起,实现同一业务。同时,目前的很多超大型系统将分布式和集群技术进行了结合,分布式系统中的每一个节点,都采用集群来实现。移动代码,是指在一台计算机上编写,然后以某种方式传递到其它远程计算机上执行的程序代码。移动代码具有可移动性、自主性、灵活性等优点,在当前的网络环境中被广泛使用。分布式系统的特点,即是异构性、多用户并发。在大规模和高并发的业务背景下, 过多的业务请求和有限的系统资源会出现矛盾,构成瓶颈。目前,分布式系统的性能问题的研究涵盖了从硬件到软件的各个方面。大多技术关注的是系统架构设计、代码优化、数据库和网络通信等方面。因此,采用新的方法对分布式系统的服务器实现方式进行设计,提升其性能,具有积极的现实意义。
发明内容
针对分布式系统中服务器设计的问题,本发明的目的在于提供一种基于移动代码的大规模服务器的设计与实现方法。该方法利用移动代码在网络中的移动,实现策略执行、 日志上传、信息收集、分布式计算等多种功能,从而成为大规模服务器系统的中重要组成部分,为系统的运行提供有力的保障。具体来说,本发明采用如下技术方案实现大规模服务器系统,包括下列步骤1. 一种提升服务器性能的方法,包括步骤如下1)在大规模服务器系统的中心服务器中配置移动代码生产模块的,在主机上安装移动代码解释器,组成一工作域;2)中心服务器在接收到管理中心的指令后,生产移动代码并对代码进行授权、加密处理,发送给相应的子服务器; 3)所述相应子服务器将代码发送到指定主机上; 4)所述指定主机上移动代码解释器接收代码并进行解密、认证鉴权处理;
5)该移动代码解释器执行鉴权通过的移动代码,同时将该代码移动到其他指定的主机进行执行;6)执行完成后,该指定主机代码解释器将结果回传上级服务器或存储本地数据库。该中心服务器包括移动代码生成模块、授权模块、加密模块、发送模块,用于生成、 授权、加密、发送移动代码至子服务器。所述的移动代码解释器包括一代码安全模块和一代码编译运行平台,所述代码安全模块设代码接收、代码解密、代码认证与鉴权模块,用以接收、解密、认证和鉴权所述移动代码,所述代码编译运行平台用以进行源代码级的编译和执行。所述源代码添加到中心服务器移动代码库,并下发至下属代码解释器上执行。所述移动代码由中心服务器生产调度,该中心服务器储存和维护系统中所有服务器的地址和结构信息。所述中心服务器采用前序遍历算法,定制移动代码在系统中的移动方法,调度所述移动代码遍历所有主机上的移动代码解释器。所述移动代码认证鉴权处理包括代码权限控制和代码来源管理。所述的移动代码加载一路由模块、一功能模块,所述路由模块存储路由信息,所述功能模块储存编译的业务代码。一种大规模服务器系统,包含中心服务器和若干子服务器、若干主机,组成一工作域,其特征在于,在大规模服务器系统中配置有若干移动代码生产模块的服务器;在主机上安装移动代码解释器;所述中心服务器生产移动代码生产移动代码并对代码进行授权、加密处理;所述主机上移动代码解释器接收服务器生产的移动代码并进行解密、认证鉴权处理;该移动代码解释器在执行完成移动代码后,同时将该代码移动到其他主机进行执行; 执行完成后,该移动代码解释器将结果回传上级系统服务器或存储本地系统数据库。管理员可以通过管理中心,控制服务器给代码解释器下发运行系统中预定义的移动代码,实现预定义的功能。当系统需要实现新功能时,由高级管理员在管理中心编写实现新功能的源代码,将源代码保存到中心服务器的移动代码库中,然后下发给解释器。移动代码解释器把源代码编译为可执行程序,通过执行该程序,来实现新增的功能。对于需要遍历系统的移动代码,中心服务器通过对服务器的地址和结构信息调用采用前序遍历算法,调度移动代码遍历所有服务器和子服务器,进一步由服务器将代码下发给下级的解释器。对于只需执行移动一次的移动代码,将由服务器根据业务情况产生,并在系统中移动。移动目的地选择上,由服务器根据实际业务和当前负载指定。同时,由于移动代码解释器是一个由C、C++、C#、JAVA语言写成的平台,它可以编译和执行源代码。这就意味着,任何符合要求的源代码,都可以在该平台上运行。服务器可以向解释器下发各种不同代码,而不是下发固定功能的程序,换句话说,移动代码的移动是一种基于编程语言的源代码级的移动,而不是文件或者可执行程序的移动。通过编写,下发源码,使其移动到解释器上,编译运行和执行,就可以实现各种不同的功能。这种模式具有极大的灵活性和可扩展性。
通过移动代码,服务器可以灵活的分配负载、进行计算和收集信息,从而更好的协调整个分布式系统的运行,提升性能。本发明的有益效果在于在传统的分布式和集群服务器技术中,对资源的使用仅仅局限于服务器本身,在超大规模系统中,业务压力将全部由系统中的服务器承担,对服务器的CPU、内存等硬件设备,以及服务器和数据库的软件处理能力都有很高的要求。首先,本发明方法首次采用移动代码,在大规模分布式服务器系统中进行应用,通过移动代码,对大规模应用的场景下的分布式服务器系统中进行计算、存储、管理、统计,实现对服务器系统的资源的充分利用和性能的提升。服务器可以灵活的分配负载、进行计算和收集信息,从而更好的协调整个分布式系统的运行,提升性能。只要是安装了移动代码解释器的主机,服务器都可以对其下发移动代码,代替服务器执行计算或者其他任务。超大规模系统的业务压力将由服务器分摊到全网中所有安装了移动代码解释器的主机。充分利用了所有主机的空余资源,极大的减轻了服务器本身的压力,提升了系统的性能。其次,在服务器系统中使用前序遍历算法来指定代码在系统中的移动方法,确保了代码移动轨迹的合理性。同时,通过加密、权限控制和来源管理这三重保护措施,确保了移动代码的安全性,为移动代码在各个代码解释器上的运行提供了可靠的保障。再其次,移动代码解释器是一个编译执行移动代码的平台,可以进行源代码级的编译和执行。只要在系统中安装和配置好代码解释器,管理员就可以通过管理中心,编写源代码实现新功能,然后向代码解释器上派发新的移动代码。由于这种特性,使得系统能够很好的支持未来的新增功能和新业务,具有极大的灵活性和可扩展性。
图1是实施实例中系统的部署物理拓扑示意图;图2是实施实例中的服务器部署逻辑结构示意图;图3是实施实例中的服务器内部结构示意图;图4是实施实例中的移动代码解释器(消费代理)内部结构示意图;图5是实施实例中的移动代码内部结构示意图。
具体实施例方式以下将结合相关附图,对本发明进行详细描述,以帮助理解本发明。本实施例以某示例系统为例详细说明本发明。在该系统中,首先安装多台服务器, 服务器上配有移动代码生成模块和其它相关业务模块(软件),局域网内各主机安装移动代码的代码解释器,组成一个工作域。如图1所示,是系统的部署物理拓扑示意图,其中一个完整的服务器系统包括中心服务器、管理中心、移动代码解释器,所述服务器中还包括移动代码产生器,所述管理中心由一台指定的服务器完成配置,所述的移动代码解释器在中心服务器的下级,通过主线相连分布。大规模服务器则由一定数量的子服务器通过中心服务器进行管理,移动代码通过英特网进行交换和遍历,其中服务器用于实现系统所需的业务,同时,它实现移动代码相关业务。服务器模块单元包括数据库、业务单元和移动代码单元。所述数据库用于存储业务相关信息,例如策略、日志等;所述业务单元用于实现系统所承载的业务,将相关信息存入数据库;而移动代码单元用于移动代码相关处理。管理中心用于对服务器进行业务相关的管理,例如下发控制策略、下发日志收集命令等。同时,管理中心也用于对服务器本身进行管理,例如在分布式系统中,对服务器上下级关系、上下级策略等进行设定。另外,管理中心也同时用于对移动代码的相关配置的管理。移动代码代码解释器是一个使用C语言编写的移动代码的运行平台。当一台主机上安装了该代理之后,移动代码就可以移动到该主机上,在平台上运行。该代理运行移动到主机上的代码,并且视需要将结果返回给服务器。同时,它可以将代码转发到下一个代理上运行。下面基于上述图1中大规模服务器系统,说明移动代码在其中移动运行的详情。如图2是服务器部署逻辑结构示意图,管理中心和服务器在较高一级,下一级的子服务器和最初一级的代码解释器即移动代码解释器以二叉树的结构分布。1.管理中心下发管理指令用户在管理中心中,对整个服务器系统进行管理。包括下发管理指令,设置服务器之间的级联关系,设置中心服务器,设置服务器的权限(包括移动代码的权限),设置移动代码移动规则等等。经过一系列的设置和定义,在整个服务器系统中,移动代码就可以在指定的情况下在系统中移动和运行。2.服务器产生移动代码如图3所示是服务器内部结构示意图,包括了 移动代码生成模块、业务模块、移动代理执行结果接收模块,所述移动代码生成模块包括了 代码生成模块、代码授权模块、 代码加密模块、代码发送模块,所述业务模块判断处理的具体业务,所述移动代码结果接收模块负责保存上一级下传或下一级上传的的移动代码。根据步骤1的设置,在业务需要的时候,服务器的移动代码生成模块将会启动,开始生成移动代码。服务器在生成需要移动执行的代码后,为保证移动代码的安全性,还需要经过一系列的处理。首先,服务器将启动授权模块,在授权模块中,通过根据管理中心的配置,动态的设置移动代码的生成者、有效期限、可以运行该代码的代码解释器范围等信息,完成对移动代码的授权。移动代码完成授权后,授权模块将移动代码流转入加密模块,对移动代码进行加密。本实施例中,将采用数字证书对移动代码进行加密,其他方式并不排除。加密模块完成加密后,加密过的移动代码将还附带附加信息和校验信息。3.移动代码代码解释器接收和运行移动代码如图4是移动代码解释器(消费代理)内部结构示意图,解释器分为代码安全和代理编译运行平移台,代码安全包括代码接收、代码解密、代码认证与鉴权模块。经过步骤 2后,服务器端已顺利获得需要在系统中移动的代码,并且将把移动代码发送到运行代码解释器的主机上。此后,代码解释器按照步骤2的逆变换的过程,在移动代码解释器上对接收的移动代码进行解析。先通过移动代码解密模块,解密移动代码,并通过校验判断移动代码是否被破坏。解密模块在解密移动代码时,必须使用加密移动代码的证书。如果代码解释器中没有服务器证书,将无法成功解密。通过证书,保证了只有受到服务器信任的代码解释器才能运行移动代码。如果移动代码未被破坏且正常解密,则进入认证鉴权模块,对解密后的移动代码进行认证。对于移动代码的认证与鉴权主要还包括以下几个方面一个是移动代码的来源管理。代码解释器中保存信任列表信息,只运行信任列表中所列出的可靠来源的移动代码;对于非信任来源的移动代码,代码解释器将不做处理。另一个方面是移动代码的权限控制。对于指定来源的移动代码,代码解释器将限定其在当前主机上的权限,例如访问系统关键路径权限,或者修改系统本地文件的权限。对于不符合权限的行为,代码解释器将拒绝处理。同时,消费代理上的移动代码解释器还将判断该移动代码的有效期限和指定运行范围,对不符合要求的移动代码,代码解释器将不予处理。在以上一系列的预处理过程结束后,解释器将运行移动代码。运行结束后,解释器将运行结果回传给移动代码生成服务器。4.移动代码在系统中的移动如图5移动代码内部结构示意图,移动代码包括路由模块、代码状态维护模块及一系列功能模块。移动代码可以处理多种业务,通过移动代码,服务器可以灵活的分配负载、进行计算和收集信息,从而达到提升整个分布式服务器系统的性能的目的。例如服务器的计算业务,存储业务、管理业务、服务器信息统计等。根据各种业务的不同,移动代码在系统中的移动有不同的要求。对于计算类业务,移动代码只要求在一定范围的一台或者几台主机上移动并返回结果即可。在这种情况下,中心服务器在生成移动代码时,根据当前负载情况和计算压力, 计算移动代码的路由信息包含在移动代码的路由模块中,然后将移动代码下发给另一台代码解释器。消费代理上的解释器在解析到移动代码的路由信息后,在自身运行移动代码进行计算的同时,根据路由信息,将移动代码转发给下一个代码解释器。这样依次转发,直致路由到最后一个节点。对于信息收集类业务,移动代码可能需要遍历整个系统中所有的代码解释器,或者指定服务器下级的所有代码解释器。在这种情况下,中心服务器在生成移动代码时,需要根据当前的系统拓扑,使用前序遍历算法,计算好移动代码的路由轨迹,以确保移动代码能够遍历指定根节点下的所有子孙服务器。服务器在接收到上级服务器的移动代码后,再将其下发到下属的代码解释器节点中。5.移动代码运行结果的接收移动代码在代码解释器上运行完毕后,消费代理上的解释器将移动代码的运行结果回传给服务器。服务器接收到运行结果后,综合统计和处理结果,存储到数据库中,或者向上级服务器回传。6.移动代码的自定义扩展如前文所述,移动代码解释器,或者说移动代码解释器是移动代码的编译和运行平台。它具有平台性、独立性,不受移动代码中代码内容本身的干扰,只要是符合规则的移动代码,都可以在该平台上得到编译和运行。在系统中,管理员可以通过管理中心,控制服务器给代码解释器下发运行系统中预定义的移动代码,实现预定义的功能。同时,有移动代码新增和编辑权限的高级管理员,可以通过编程的方式,编辑新的源代码,然后使用管理中心,将源码添加到中心服务器的移动代码库中,然后下发给代码解释器。通过这个过程,高级管理员可以使系统实现自定义的功能。这种机制,使得整个大规模服务器系统变得极为灵活,可扩展性强。有新的业务需求时,可以由高级管理员直接编写源代码,然后下发给代码解释器执行。通过移动代码从生成到消费,以及在整个系统中流转,最后返回结果的过程,得以实现大规模服务器系统的业务功能,分摊超大规模系统下的服务器业务负载到全网,减轻服务器压力。通过这种对移动代码的使用,极大的增强了大规模服务器系统的灵活性和负载能力。无论是计算、管理、存储还是统计业务,都可以使用移动代码,在整个分布式服务器系统中进行灵活的移动和运行。而通过对移动代码的加密,则保证了移动代码传输和运行的安全性;通过对移动代码的路由管理,保证了移动代码在系统中流转移动的合理性和效率。同时,由于移动代码解释器的独立性和平台性,也使得高级管理员可以从管理中心直接编写新的源代码下发给代码解释器,由解释器编译运行新的移动代码,实现新功能,使得系统具有灵活可扩展的特性,能够对未来出现的新业务新功能提供支持。
权利要求
1.一种提升服务器性能的方法,包括步骤如下1)在大规模服务器系统中配置有若干移动代码生产模块的服务器,在主机上安装移动代码解释器,组成一工作域;2)中心服务器在接收到管理中心的指令后,生产移动代码并对代码进行授权、加密处理,发送给相应的子服务器;3)所述相应子服务器将代码发送到指定主机上;4)所述指定主机上移动代码解释器接收代码并进行解密、认证鉴权处理;5)该移动代码解释器执行鉴权通过的移动代码,同时将该代码移动到其他主机进行执行;6)执行完成后,该指定主机代码解释器将结果回传上级服务器或存储本地数据库。
2.如权利要求1所述的提升服务器性能的方法,其特征在于,所述中心服务器还包括移动代码生成模块,所述移动代码生成模块用于生成、授权、加密、发送移动代码至子服务ο
3.如权利要求1所述的提升服务器性能的方法,其特征在于,所述的移动代码解释器包括一代码安全模块和一代码编译运行平台,所述代码安全模块设代码接收、代码解密、代码认证与鉴权模块,用以接收、解密、认证和鉴权所述移动代码,所述代码编译运行平台用以进行源代码级的编译和执行。
4.如权利要求3所述的提升服务器性能的方法,其特征在于,所述源代码添加到中心服务器移动代码库,并下发至下属代码解释器上执行。
5.如权利要求1所述的提升服务器性能的方法,其特征在于,所述移动代码由中心服务器生产调度,该中心服务器储存和维护系统中所有服务器的地址和结构信息。
6.如权利要求5所述的提升服务器性能的方法,其特征在于,所述中心服务器采用前序遍历算法,定制移动代码在系统中的移动方法,调度所述移动代码遍历所有主机上的移动代码解释器。
7.如权利要求1或3所述的提升服务器性能的方法,其特征在于,所述移动代码认证鉴权处理包括代码权限控制和代码来源管理。
8.如权利要求1所述的提升服务器性能的方法,其特征在于,所述的移动代码加载一路由模块、一功能模块,所述路由模块存储路由信息,所述功能模块储存编译的业务代码。
9.一种大规模服务器系统,包含中心服务器和若干子服务器、若干主机,组成一工作域,其特征在于,在大规模服务器系统中配置有若干移动代码生产模块的服务器;在主机上安装移动代码解释器;所述中心服务器生产移动代码生产移动代码并对代码进行授权、加密处理;所述主机上移动代码解释器接收服务器生产的移动代码并进行解密、认证鉴权处理; 该移动代码解释器在执行完成移动代码后,同时将该代码移动到其他主机进行执行;执行完成后,该移动代码解释器将结果回传上级系统服务器或存储本地系统数据库。
10.如权利要求9所述的大规模服务器系统,其特征在于,管理员可以通过管理中心, 控制中心服务器给代码解释器下发运行系统中预定义的移动代码,设置中心服务器。
全文摘要
一种提升服务器性能的方法及其系统包括步骤1)在大规模服务器系统的中心服务器中配置移动代码生产模块的,在主机上安装移动代码解释器,组成一工作域;2)中心服务器在接收到管理中心的指令后,生产移动代码并对代码进行授权、加密处理,发送给相应的子服务器;3)所述相应子服务器将代码发送到指定主机上;4)所述指定主机上移动代码解释器接收代码并进行解密、认证鉴权处理;5)该移动代码解释器执行鉴权通过的移动代码,同时将该代码移动到其他指定的主机进行执行;6)执行完成后,该指定主机代码解释器将结果回传上级服务器或存储本地数据库。安装了移动代码解释器主机分摊服务器业务压力,充分利用主机空余资源,提升系统的性能。
文档编号H04L29/08GK102413181SQ20111036342
公开日2012年4月11日 申请日期2011年11月16日 优先权日2011年11月16日
发明者关勇, 周显敬, 程雯 申请人:中国软件与技术服务股份有限公司