用于对分布式计算进行组件化管理的方法和系统的制作方法

文档序号:6488957阅读:156来源:国知局
用于对分布式计算进行组件化管理的方法和系统的制作方法
【专利摘要】本申请提供一种用于对分布式计算系统进行组件化管理的方法和系统。该系统可以包括:组件仓库,用于存储组件;组件管理控制台,被配置成与组件分发中心进行交互,并向组件分发中心发送与一个或多个组件相关的第一管理指示;组件分发中心,被配置成基于所述第一管理指示,调度与所述一个或多个组件相关的部署,所述组件分发中心还被配置成向组件执行引擎组发送调度命令;组件执行引擎组,被配置成基于所述调度命令,执行与所述一个或多个组件相关的操作。
【专利说明】用于对分布式计算进行组件化管理的方法和系统
【技术领域】
[0001]本申请涉及分布式计算领域,尤其涉及一种用于对分布式计算进行组件化管理的方法和系统。
【背景技术】
[0002]分布式计算目前大多在解决一个大型计算如何分解为多个小型计算的问题,但在分布式计算的应用部署上却困难重重。通常分布式计算都是集群化运行,对于几十、几百、甚至几千台的服务器来说,如何在这些机器上分发程序,管理程序是一个难题。
[0003]应用程序的发布需要先停止程序的运行,然后更新代码,再重启程序,这对于一台或几台机器来说,运维还能接受,但对于成千上万台的服务器集群来说,这是一个不可接受的任务。对这个情况的解决办法,通常都是使用脚本,通过执行在每台机器部署上的脚本,来自动进行发布动作。但是,如果一个计算集群中的各个计算程序多了,那么管理庞大的脚本库也是一个令人烦恼的工作。通常分布式计算都需要不间断运行,发布新功能时,如何进行热部署是一个极大困难。热部署的主要困难是,当程序在运行的时候,如何不停止提供服务更新代码。目前热部署是一个业界的难题,这涉及.net和java平台上所有应用。
[0004]通常分布式计算的计算单元都是一个个互不相关的组件,如何对各种计算组件统一管理,将有利于功能的复用和组合。从业务上来说,分布式计算中的各种计算模型都是相互独立的,最多模型和模型之间有一定的依赖关系,但计算都是独自进行的。传统分布式计算为提高计算效率都是由一个程序提供全部功能,因此单个模型的算法更新会影响到其他模型的功能。此外新模型的开发是从头开发的,除了一些公共函数之外,有很多程序逻辑需要重复编程实现,很难做到模型间的复用。
[0005]为了解决上述分布计算系统中的应用部署问题,本申请提出了一种用于对分布式计算进行组件化管理的方法和系统。本申请通过组件化管理,把一个大的应用程序拆分成多个组件,每个组件的生命周期相互独立,并交由底层组件化执行引擎统一管理。部署时只要更新单个组件,而对其他组件的功能没有影响。由于每个组件可以单独部署,因此这样做可以把热部署的影响范围减小到最小。

【发明内容】

[0006]本申请的主要目的在于提供一种用于对分布式计算进行组件化管理的方法和系统,以解决现有技术存在的大型计算系统中的应用部署困难的问题。
[0007]在本申请的一方面中,提供一种用于对分布式计算系统进行组件化管理的系统。该系统可以包括:组件仓库,用于存储组件;组件管理控制台,被配置成与组件分发中心进行交互,并向组件分发中心发送与一个或多个组件相关的第一管理指示;组件分发中心,被配置成基于所述第一管理指示,调度与所述一个或多个组件相关的部署,所述组件分发中心还被配置成向组件执行引擎组发送调度命令;组件执行引擎组,被配置成基于所述调度命令,执行与所述一个或多个组件相关的操作。[0008]根据本申请的实施例,在该系统中,该组件执行引擎组还被配置成从所述组件仓库下载所述一个或多个组件;并对其进行加载。
[0009]根据本申请的实施例,该系统还包括:组件划分单元,被配置成将所述分布式计算系统中的各个应用划分成组件。
[0010]根据本申请的实施例,在该系统中,该组件执行引擎组还被配置成从所述组件分发中心下载与所述一个或多个组件相关的组件运行时配置。
[0011]根据本申请的实施例,在该系统中,该组件是独立管理生命周期的计算模块。
[0012]根据本申请的实施例,在该系统中,该组件分发中心还被配置成确定组件分发规则。
[0013]根据本申请的实施例,在该系统中,该组件管理控制台还被配置成建立一个或多个组件目录结构,所述组建目录结构的每一个包含一个或多个组件。
[0014]根据本申请的实施例,在该系统中,该组件管理控制台还被配置成向所述组件仓库发送第二管理指示,所述组件仓库还被配置成根据第二管理指示增加、更新或删除组件。
[0015]在本申请的另一方面中,提供一种用于对分布式计算系统进行组件化管理的方法。该方法包括:组件管理控制台与组件分发中心进行交互,并向组件分发中心发送与一个或多个组件相关的第一管理指示;所述组件分发中心基于所述第一管理指示,调度与所述一个或多个组件相关的部署,所述组件分发中心还被配置成向组件执行引擎组发送调度命令;所述组件执行引擎组基于所述调度命令,执行与所述一个或多个组件相关的操作。
[0016]根据本申请的实施例,在该方法中,该组件执行引擎组从组件仓库下载所述一个或多个组件;并对其进行加载。
[0017]根据本申请的实施例,该方法还包括将所述分布式计算系统中的各个应用划分成组件的步骤。
[0018]根据本申请的实施例,在该方法中,该组件执行引擎组从所述组件分发中心下载与所述一个或多个组件相关的组件运行时配置。
[0019]根据本申请的实施例,在该方法中,该组件管理控制台建立一个或多个组件目录结构,所述组建目录结构的每一个包含一个或多个组件。
[0020]根据本申请的实施例,该方法还包括:所述组件管理控制台向所述组件仓库发送第二管理指示,所述组件仓库还被配置成根据第二管理指示增加、更新或删除组件。
[0021]根据本申请的实施例,在该方法中,该组件是独立管理生命周期的计算模块。
[0022]与现有技术相比,根据本申请的技术方案实现了分布式计算系统的组件化管理,进一步在对组件化分布式计算系统进行热部署时将热部署操作的影响减小到最小、并且实现了对组件化计算模块的统一管理。
【专利附图】

【附图说明】
[0023]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0024]图1是本申请实施例的用于对分布式计算进行组件化管理的系统的结构示意图。
[0025]图2是本申请实施例的用于对分布式计算系统进行组件化划分的示意结构图。
[0026]图3是本申请实施例的用于对分布式计算进行组件化管理的方法的流程图。【具体实施方式】
[0027]本申请的主要思想在于,提供一种用于对分布式计算进行组件化管理的系统和方法。该系统可以包括组件仓库,用于存储组件;组件管理控制台,被配置成与组件分发中心进行交互并向组件分发中心发送第一管理指示;组件分发中心,被配置成基于所述第一管理指示,调度与所述一个或多个组件相关的部署;以及组件执行引擎组,被配置成基于所述调度命令,执行与所述一个或多个组件相关的操作。利用该系统,实现对于集群化的分布式计算系统组件化管理。
[0028]为使本申请的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本申请进一步地详细说明。
[0029]根据本申请的实施例,提供了一种本申请实施例的用于对分布式计算进行组件化管理的系统和方法。
[0030]参考图1,图1是本申请实施例的用于对分布式计算进行组件化管理的系统的结构示意图。该系统可以包括:组件仓库101,用于存储组件,也即是说,所述组件仓库101是用于存储组件的物理存储;组件管理控制台102,被配置成与组件分发中心进行交互,并向组件分发中心发送与一个或多个组件相关的第一管理指示;组件分发中心103,被配置成基于所述第一管理指示,调度与所述一个或多个组件相关的部署,所述组件分发中心还被配置成向组件执行引擎组发送调度命令;以及组件执行引擎组104,被配置成基于所述调度命令,执行与所述一个或多个组件相关的操作。该系统可以包括组件执行引擎集合,其包括多个组件执行引擎组,每个组件执行引擎组可以包括一个或多个组件执行引擎111、112、
113等等 O
[0031]下面参照图1更详细地描述用于对分布式计算进行组件化管理的系统。该系统还可以包括组件划分单元(未示出),其可以被配置成将分布式计算系统中的各个应用划分成组件。组件是能够独立管理生命周期的计算模块,并且其还可以用于进行分布式计算。为了实现本申请的对分布式计算进行组件化管理的系统,首先需要利用组件划分单元将分布式计算系统中的应用进行划分或者说组件化,从而形成能够独立管理生命周期的计算模块,也就是形成组件。
[0032]具体而言,在现有技术中,传统应用都是分层架构,在每一个层中处理相应的逻辑。因为是一个整体,所以传统应用各层之间的关联十分紧密,一般来说不会也没有必要考虑每一个功能的独立性。传统应用是一个整体,在部署时也必需所有代码一起启动,一起停止。当有热部署需求时,就会影响到整个应用的范围,热部署的代价和成本非常高昂。
[0033]然而,根据本申请,组件化应用程序可以采用微内核架构,其通过整理和设计出核心层,并在核心层的基础上按照功能划分应用程序模块,并在编译或运行时组装成所需的程序功能。单个组件又借用了分层架构的思想有独立划分的不同逻辑层次,以保证组件自身是可以独立运行的。组件化应用程序有不同部件组成,在设计时充分考虑了功能模块应该如何划分和隔离,以便最小依赖进行组合,因此在设计时就考虑到每个模块的独立性。组件化应用程序不需要所有代码一起启动,只需启动核心层,然后按照需要通过核心层加载各个功能模块,因此在热部署时影响的范围很小,代价和成本都会得到很好的控制。
[0034]更具体地说,组件划分单元针对应用设计核心层,并在核心层的基础上按照功能将应用划分成组件,并在编译或运行时再组装成所需的应用功能。另一方面,对于单个组件而言,其具有独立划分的不同逻辑层次,从而单个组件自身也是可以独立运行的。例如,可以采用OSGI (Open Service Gateway initiative开放服务网关)框架作为核心层,在OSGI框架上划分组件,每个组件是一个bundle (包)。在运行时通过OSGI和配置加载所需的 bundle。
[0035]在核心层上,本申请将一些公共组件、框架组件作为核心层之上的基础层bundle,然后把各种业务功能进行纵向切分,作为业务层bundle。根据本申请的实施方式的各组件划分例如可以如下图2所示。
[0036]从图上可以看到,本方案根据功能的不同划分了很多独立的组件,其中组件执行引擎、日志组件、决策计算引擎、任务调度引擎、数据模型管理服务、数据字典管理服务、异步消息服务、RPC同步调用接口、数据源管理、RESTf接口等可以属于核心组件;各种计算模块组件可以属于功能组件。
[0037]核心组件间通过不同的组合提供计算模块组件一些基础的服务,如:数据的输入/输出、热部署、任务调度等。计算模块的划分一般按照算法划分,为了便于复用和组合算法,计算模块也分为公共计算模块和专有计算模块。公共计算模块提供一些公共算法,如合计、平均等公共函数。公共计算模块目前只有一个bundle。专有计算模块一般是涉及具体分布式计算需求的算法,如营销模型、客户关系模型等。将应用划分为组件后,利用本申请的系统,实现分布式计算系统的组件化管理。
[0038]本申请的系统还可以包括组件仓库101。组件仓库101可以存储组件。更进一步地,组件仓库101例如可以利用文件服务器存储并管理关于各个组件及其配置信息。用户可以通过文件上传或下载把组件或其配置上传到组件仓库或者从组件仓库下载组件或其配置。此外,组件仓库还可以对组件进行组管理,并且保存组件仓库产生的组件元信息、组件组信息、组件配置信息等数据,并且还可以保存它们的版本信息。
[0039]本申请的系统还可以包括组件管理控制台102,其实际上可以是最终用户实现系统管理的交互接口。所述组件管理控制台103可以被配置成建立一个或多个组件目录结构(例如,建立树状结构的目录结构),所述组建目录结构的每一个包含一个或多个组件。组件管理控制台102还可以与组件仓库101进行交互,组件管理控制台102还可以与组件分发中心103进行交互。
[0040]例如,组件管理控制台102可以与组件仓库101进行交互从而将组件上传到组件仓库或者从组件仓库删除组件。也即是说,组件仓库101接收组件管理控制台102的第二管理指示,根据第二管理指示增加、更新或删除组件。
[0041]组件管理控制台102还可以与组件分发中心103进行交互,向组件分发中心103发送与一个或多个组件相关的第一管理指示。例如要卸载组件时,如果所述组件已被部署,则组件管理控制台102将发送第一管理指示到组件分发中心103以执行该组件的卸载。该第一管理指示可以认为是控制命令。
[0042]例如,组件管理控制台102还可以发送所述控制命令以指示组件分发中心103对一个或多个组件进行编辑。如果控制命令指示组件分发中心103对组件的元信息进行编辑,则组件分发中心103基于该控制命令对元信息进行编辑并保存编辑后的元信息。所述元信息可以包括组件名称、组件说明、组件分类以及组件类型等。例如,如果控制命令指示组件分发中心103对组件的配置信息进行编辑,则组件分发中心103基于该控制命令对配置信息进行编辑并保存并更新配置。然后组件分发中心103可以与组件执行引擎104进行交互,例如,组件分发中心103发送调度指示给组件执行引擎组104,则组件执行引擎组104基于所述调度指示执行与组件相关的操作。更具体地,组件分发中心103还可以被配置成确定组件分发规则。例如,与组件分发时的依赖关系的处理、组件在运行时的更新、组件不存在时进行下载等等相关的规则。备选地,所述调度指示包含所述组件分发规则。组件执行引擎104可以从组件分发中心103下载与所述组件相关的组件运行时配置,并通过配置解析功能将其解析为组件执行引擎组104可理解的数据和信息。然后,组件执行引擎组104执行与所述组件相关的操作,例如,启动、重启或停止组件等等。
[0043]根据本申请的实施例,通常,根据组件执行引擎完成的功能特性,将组件执行引擎集合中的若干组件执行引擎形成组件执行引擎组,从而该集合中形成多个组件执行引擎组。对于每组组件执行引擎都为其分配一组组件。从而对组件实现系统集群化的统一管理和维护。也即是说,组件分发中心103至少针对一个组件而与一组组件执行引擎进行交互,从而实现组件的分发。
[0044]利用一种用于对分布式计算进行组件化管理的系统实施组件化管理,并交由组件执行引擎统一管理所述组件。从而在部署时只要更新单个组件,而对其他组件的功能没有影响。最终实现了分布式计算系统的组件化管理,进一步地,实现了分布式计算系统的热部署。
[0045]图3是本申请实施例的用于对分布式计算进行组件化管理的方法的流程图。
[0046]根据本申请的实施例,可以利用组件化的方法来在分布式计算系统中实现热部署。可以将各个应用划分成能够独立管理生命周期的计算模块,也即是组件,并且其还可以用于进行分布式计算。继而利用本申请的方法对所述组件进行各种操作从而实现分布式计算系统的组件化管理。下面参考图2和图3对发明的方法进行详细描述。
[0047]该方法开始于步骤301。在步骤301处,组件管理控制台102可以与组件分发中心103进行交互,并向组件分发中心103发送与一个或多个组件相关的第一管理指示。该第一管理指示可以认为是控制命令。所述组件可以是独立管理生命周期的计算模块;并且所述组件可以存储在组件仓库中。例如要删除组件时,如果所述组件已被部署,则组件管理控制台102将发送第一管理指示到组件分发中心103以执行该组件的卸载。该第一管理指示可以认为是控制命令。例如,组件管理控制台102还可以发送第一管理指示以指示组件分发中心103对一个或多个组件进行编辑。例如,如果第一管理指示表明组件分发中心103对组件的元信息进行编辑,则组件分发中心103基于该指示对元信息进行编辑并保存编辑后的元信息。例如,如果该指示表明组件分发中心103对组件的配置信息进行编辑,则组件分发中心103基于该指示对配置信息进行编辑并保存并更新配置。
[0048]在步骤302处,组件分发中心103基于所述第一管理指示,调度与所述一个或多个组件相关的部署,组件分发中心103向组件执行引擎组104发送调度命令。组件分发中心103还可以被配置成确定组件分发规则。例如,与组件分发时的依赖关系的处理、组件在运行时的更新、组件不存在时进行下载等等相关的规则。备选地,所述调度指示包含所述组件分发规则。
[0049]在步骤303处,组件执行引擎104基于所述调度命令,执行与所述一个或多个组件相关的操作。
[0050]组件执行引擎104可以从组件分发中心103下载与所述组件相关的组件运行时配置,并通过配置解析功能将其解析为组件执行引擎组104可理解的数据和信息。然后,组件执行引擎组104执行与所述组件相关的操作,例如,启动、重启或停止组件等等。更具体而言,通常,根据组件执行引擎完成的功能特性,将组件执行引擎集合中的若干组件执行引擎形成组件执行引擎组,从而该集合中形成多个组件执行引擎组。对于每组组件执行引擎都为其分配一组组件。从而对组件实现系统集群化的统一管理和维护。也即是说,组件分发中心103至少针对一个组件而与一组组件执行引擎进行交互。从而实现组件的分发。
[0051]正如参照图2所述的,在其中实施本申请的方法的分布式计算系统中,可以包括由多个组件执行引擎组形成的组件执行引擎集合,每个组件执行引擎组可以包含一个或多个组件执行引擎。
[0052]此外,根据本申请的方法,组件执行引擎组还可以从组件仓库下载一个或多个组件;并对其进行加载。在根据本申请的方法中,组件执行引擎组从组件分发中心下载与所述一个或多个组件相关的组件运行时配置。组件管理控制台还可以建立一个或多个组件目录结构,所述组建目录结构的每一个包含一个或多个组件。
[0053]此外,本申请的方法还可以包括这样的步骤:将分布式计算系统中的各个应用划分成组件。例如,可以通过组组件划分单元将各个应用划分成组件。件是能够独立管理生命周期的计算模块,并且其还可以用于进行分布式计算。根据本申请的实施方式,组件划分步骤可以在步骤301之前执行。
[0054]根据本申请的实施方式,组件划分单元针对应用设计核心层,并在核心层的基础上按照功能将应用划分成组件,并在编译或运行时再组装成所需的应用功能。另一方面,对于单个组件而言,其具有独立划分的不同逻辑层次,从而单个组件自身也是可以独立运行的。
[0055]在核心层上,本申请将一些公共组件、框架组件作为核心层之上的基础层bundle,然后把各种业务功能进行纵向切分,作为业务层bundle。根据本申请的实施方式的各组件划分例如可以如下图2所示。
[0056]从图上可以看到,根据功能的不同而划分了很多独立的组件,其中组件执行引擎、日志组件、决策计算引擎、任务调度引擎、数据模型管理服务、数据字典管理服务、异步消息服务、RPC同步调用接口、数据源管理、RESTf接口等可以属于核心组件;各种计算模块组件可以属于功能组件。
[0057]此外,本申请的方法还可以包括这样的步骤:组件管理控制台向组件仓库发送第二管理指示,组件仓库可以根据第二管理指示增加、更新或删除组件。用户可以通过文件上传或下载把组件或其配置上传到组件仓库或者从组件仓库下载组件或其配置。
[0058]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0059]以上所述仅为本申请的实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
【权利要求】
1.一种用于对分布式计算系统进行组件化管理的系统,包括: 组件仓库,用于存储组件; 组件管理控制台,被配置成与组件分发中心进行交互,并向组件分发中心发送与一个或多个组件相关的第一管理指示; 组件分发中心,被配置成基于所述第一管理指示,调度与所述一个或多个组件相关的部署,所述组件分发中心还被配置成向组件执行引擎组发送调度命令; 组件执行引擎组,被配置成基于所述调度命令,执行与所述一个或多个组件相关的操作。
2.根据权利要求1所述的系统,其中所述组件执行引擎组还被配置成从所述组件仓库下载所述一个或多个组件;并对其进行加载。
3.根据权利要求1所述的系统,还包括:组件划分单元,被配置成将所述分布式计算系统中的各个应用划分成组件。
4.根据权利要求1-3任一项所述的系统,其中所述组件执行引擎组还被配置成从所述组件分发中心下载与所述一个或多个组件相关的组件运行时配置。
5.根据权利要求1-3任一项所述的系统,其中,所述组件是独立管理生命周期的计算模块。
6.根据权利要求1-3任一项所述的系统,其中,所述组件分发中心还被配置成确定组件分发规则。
7.根据权利要求1-3`任一项所述的系统,其中,所述组件管理控制台还被配置成建立一个或多个组件目录结构,所述组建目录结构的每一个包含一个或多个组件。
8.根据权利要求1-3任一项所述的系统,其中,所述组件管理控制台还被配置成向所述组件仓库发送第二管理指示,所述组件仓库还被配置成根据第二管理指示增加、更新或删除组件。
9.一种用于对分布式计算系统进行组件化管理的方法,包括: 组件管理控制台与组件分发中心进行交互,并向组件分发中心发送与一个或多个组件相关的第一管理指示; 所述组件分发中心基于所述第一管理指示,调度与所述一个或多个组件相关的部署,所述组件分发中心还被配置成向组件执行引擎组发送调度命令; 所述组件执行引擎组基于所述调度命令,执行与所述一个或多个组件相关的操作。
10.根据权利要求9所述的方法,其中所述组件执行引擎组从组件仓库下载所述一个或多个组件;并对其进行加载。
11.根据权利要求9所述的方法,还包括将所述分布式计算系统中的各个应用划分成组件的步骤。
12.根据权利要求9-11任一项所述的方法,其中所述组件执行引擎组从所述组件分发中心下载与所述一个或多个组件相关的组件运行时配置。
13.根据权利要求9-11任一项所述的方法,其中,所述组件管理控制台建立一个或多个组件目录结构,所述组建目录结构的每一个包含一个或多个组件。
14.根据权利要求9-11任一项所述的方法,还包括:所述组件管理控制台向所述组件仓库发送第二管理指示,所述组件仓库还被配置成根据第二管理指示增加、更新或删除组件。
15.根据权利要求9-11任一项所述的方法,其中,所述组件是独立管理生命周期的计算模块。
【文档编号】G06F15/16GK103678240SQ201210348209
【公开日】2014年3月26日 申请日期:2012年9月18日 优先权日:2012年9月18日
【发明者】方亮 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1