基于云计算平台的调度系统及调度方法

文档序号:6552627阅读:156来源:国知局
基于云计算平台的调度系统及调度方法
【专利摘要】本发明公开了基于云计算平台的调度系统,包括两个以上用网络连接的区域分中心,区域分中心包括工人模块、资源中心、和至少一个调度模块。工人模块,包括至少一个工人和/或工人团,接收调度模块发送的任务并执行任务。资源中心,登记工人和/或工人团的注册信息,将生成的任务发送给调度模块,并将调度模块选取的工人和/或工人团安排给调度模块。调度模块,根据任务向资源中心获取符合要求的工人列表,在工人列表中选取工人和/或工人团,向资源中心请求调用工人和/或工人团,安排任务。本发明的调度方法,可以让不同地域的终端用户得到的云计算服务在最短的时间内完成自己的请求,合理地利用云计算资源、节约了使用成本。
【专利说明】基于云计算平台的调度系统及调度方法

【技术领域】
[0001] 本发明涉及一种云计算领域,尤其涉及一种基于云计算平台的调度系统及调度方 法。

【背景技术】
[0002] 云计算是一种新兴的共享基础架构的方法,可以将巨大的系统池连接在一起以提 供各种IT服务,具有动态、分布、面向服务、虚拟化及商业性的特点。云计算作为高可用性 的计算模式之一,不仅提供了分布式的高效的动态计算服务平台,还利用虚拟化技术将服 务器、存储器及网络设备等资源通过整合与分割,实现了资源的动态按需分配与部署。
[0003] 目前,云计算的资源调度具有如下特点:
[0004] (1)云资源差异化:云计算服务提供商提供的资源配置有不同的差异,包括硬件 集群、服务器性能和网络带宽等资源都有很大的差异。云计算资源与生俱来的大规模性和 异构性等特征,使得云资源调度变得异常复杂。
[0005] (2)用户使用模式个性化:用户使用云计算提供商的资源是"按需收费",并且用 户需求也存在很大的不同,因此,如何及时、高效地为这些租户提供服务、满足服务量最大 化、为用户节约使用成本,成为云服务商的一个目标。
[0006] 因此,云服务商提供云产品时需要考虑以下方面:如何采用高效的调度机制为不 同地域的终端用户得到的云计算服务在最短的时间内完成用户的请求;合理利用云计算资 源、节约使用成本,使云计算资源的负载均衡以及提高云计算资源的利用率。


【发明内容】

[0007] 本发明的目的是提供一种云计算平台的调度系统及调度方法,以解决上述问题中 的至少一个。
[0008] 根据本发明的一个方面,提供了基于云计算平台的调度系统,包括两个以上用网 络连接的区域分中心,区域分中心包括工人模块、资源中心、和至少一个调度模块,其中,
[0009] 工人模块,包括至少一个工人和/或工人团,工人和/或工人团向资源中心发出注 册信息和心跳包,工人和/或工人团接收调度模块发送的任务数据。
[0010] 资源中心,登记工人和/或工人团的注册信息;接收调度人员请求数据,根据调度 人员请求数据生成至少一个任务数据,并将生成的任务数据发送给调度模块;接收调度模 块的调用请求,将调度模块选取的工人和/或工人团安排给调度模块。
[0011] 调度模块,接收资源中心发送的任务数据,根据接收的任务数据向资源中心获取 工人列表,在工人列表中选取工人和/或工人团,并向资源中心发送调用请求,请求调用选 取的工人和/或工人团,并将任务数据发送给资源中心选取的工人和/或工人团。
[0012] 在一些实施方式中,工人和/或工人团在执行任务数据时,资源中心统计并记录 工人和/或工人团在执行任务数据时的资源占用程度,并根据资源占用程度确定资源评估 和/或调配工作。
[0013] 在一些实施方式中,资源中心根据资源占用程度和任务数据执行效率将注册的工 人和/或工人团分为三个等级。
[0014] 在一些实施方式中,调度模块在将任务数据发送给资源中心安排的工人和/或工 人团后,调度模块查看资源中心里安排的工人和/或工人团是否退出,如果工人和/或工人 团退出,调度模块即在工人列表中重新选取工人和/或工人团向资源中心发送调用请求。
[0015] 在一些实施方式中,资源中心还包括用于制定消息格式的传输协议的资源管理 器,传输协议采用soap协议,消息格式包括:消息发送者、消息接收者、任务名称、是否经过 流程、流程名称、发送时间和任务数据。
[0016] 在一些实施方式中,多个等级包括CPU占用率=20%、内存占用率=25%且出错 率兰2%的优等;20%〈CPU占用率兰45%、25%〈内存占用率兰65%且2%〈出错率兰4% 的中等;以及CPU占用率兰65%、内存占用率兰65%且出错率兰4%的差等。
[0017] 根据本发明的另一个方面,本发明还提供了一种基于云计算平台的调度方法,包 括以下步骤:
[0018] 工人和/或工人团向资源中心注册并定时发送心跳给资源中心,和资源中心保持 联系,以便注册中心检测到工人的状态信息。资源中心登记工人和/或工人团的注册信息。
[0019] 资源中心接收调度人员请求数据,根据调度人员请求数据生成任务并将该任务发 送给调度模块。
[0020] 调度模块接收资源中心发送的任务,根据任务向资源中心获取符合要求的工人列 表,在工人列表中选取技能符合并且评级为优的工人,选择原则按优、中、差三个等级的排 列顺序选择工人。并向资源中心发送调用请求,请求调用该选取的工人。
[0021] 资源中心接收调度模块的调用请求,将调度模块选取的工人安排给调度模块,根 据接收到的工人模块发送的心跳包来判断,若调度模块选取的工人已经退出,则根据依据 工人等级顺序选取其他在线工人并安排给调度模块。
[0022] 调度模块将任务发送给资源中心安排的工人,之后,到资源中心里查看该安排的 工人是否退出,如果退出就会在工人列表中重新选取工人向资源中心发送调用请求。首先 会在工人列表中找到具有与已退出的工人的相同技能的工人,并请求资源中心发送调用该 工人的请求和工作任务。资源中心接收到调度模块请求后,调用该工人执行该任务,通过 这种方式保证任务执行不会因工人退出而中断。
[0023] 工人和/或工人团接收调度模块发送的任务,并执行该任务。
[0024] 采用上述方法,提供给不同地域的终端用户得到的高响应云计算服务,提供给用 户优质资源完成自己的请求任务并缩短请求时间,合理地利用本地或远程的云IT资源、节 约了使用成本。

【专利附图】

【附图说明】
[0025] 图1为本发明一种实施方式的基于云计算平台的调度系统的结构示意图;
[0026] 图2为本发明一种实施方式的基于云计算平台的调度系统的的调度流程图。

【具体实施方式】
[0027] 下面结合附图对本发明作进一步详细地说明。
[0028] 根据本发明的一个方面,提供了基于云计算平台的调度系统,如图1所示,包括两 个以上用网络连接的区域分中心100,区域分中心100包括工人模块400、资源中心200、和 至少一个调度模块300。不同地域的用户可以请求离自己最近的区域分中心,也可以通过网 络请求远程的区域分中心。一个区域分中心的三个模块可以部署在一台服务器上,也可以 资源中心模块和调度模块部署在一台服务器上,工人模块部署在另一台服务器,不同技能 的工人可以部署在一台服务器。模块开发语言选用java,但不局限于此,采用http请求方 式。
[0029] 工人模块400,包括工人403市场和消息接收与发送接口 404模块,其中工人403 市场至少一个工人403和/或工人团402,工人403和/或工人团402向资源中心200发出 注册信息和心跳包,工人403和/或工人团402接收调度模块300发送的任务数据。
[0030] 资源中心200,登记工人403和/或工人团402的注册信息,接收调度人员请求数 据,根据调度人员请求数据生成至少一个任务数据,并将生成的任务数据发送给调度模块 300,接收调度模块300的调用请求,将调度模块300选取的工人403和/或工人团402安 排给调度模块300。
[0031] 调度模块300,接收资源中心200发送的任务数据,根据接收的任务数据向资源中 心200获取工人列表,工人列表中包括工人403名称、技能名称、工人403状态、等级信息。 在工人列表中选取工人403和/或工人团402,并向资源中心200发送调用请求,请求调用 选取的工人403和/或工人团402,并将任务数据发送给资源中心200选取的工人403和/ 或工人团402。
[0032] 工人403和/或工人团402在执行任务时,资源中心200统计并记录工人403和 /或工人团402在执行任务时的硬件资源占用程度及执行任务时的出错率,以此两个指标 对工人403和/或工人团402进行评级,分为:优、中、差三个等级,根据硬件资源占用程度 低且执行任务时的出错率低两个参数进行评级,资源占用程度包括CPU占用率和内存占用 率,当执行任务过程中硬件资源:CPU占用率=20%、内存占用率=25%且该工人出错率占 它总任务数的出错率=2%,该工人评级为优等。如果20%〈CPU占用率=45%、内25〈内 存占用率兰65%且2%〈出错率兰4%,该工人评级为中等。如果CPU占用率兰65%、内存 占用率3 65%且出错率3 4%,该工人评级为差等。调度模块300根据评级进行资源评估 和/或调配工作,调度模块300优先选择评级为优的工人403和/或工人团402来执行任 务,以最快的服务器响应速度处理用户请求的任务数据。
[0033] 调度模块300在将任务数据发送给资源中心200安排的工人403和/或工人团 402之后,调度模块300到资源中心200里查看安排的工人403和/或工人团402是否退 出。根据工人发送心跳包,资源中心会有个配置文件配置工人发送心跳包的时间间隔,如果 超过3次在这个时间间隔内没有接收到工人的心跳就判断该工人已退出,如果工人403和/ 或工人团402退出,调度模块300就在工人列表中重新选取工人403和/或工人团402向 资源中心200发送调用请求,资源中心200则重新选取工人403和/或工人团402安排给 调度模块300。从而避免流程执行过程中因其中一个节点停止工作而导致流程进行不下去 的情况,为此能提供给客户更快处理响应速度。
[0034] 上述的资源中心200还包括以下功能模块:
[0035] 流程公告板,用于记录流程信息,流程信息包括流程名、工作状态、流程最大被同 时调度的次数、当前流程被同时调度的次数。
[0036] 调度市场301,用于登记并保存所有流程公告板的信息,在消息接收与发送接口 404接收用户发送的请求消息后,将消息传给资源管理器201,资源管理器201根据请求消 息从调度市场301查询并选择调度。
[0037] 工人403市场,用于统一记录工人403和/或工人团402的注册信息和评级信息, 工人403市场将工人403和/或工人团402分为三个等级,S卩:优等、中等和差等,对于资源 占用程度高及任务执行效率差的工人403和/或工人团402评估等级为中、差。资源中心 200优先调配等级为优的工人403和/工人团402来执行任务数据。
[0038] 工人403技能单元,记录工人403和/或工人团402的技能名。
[0039] 资源管理器201,是本发明的资源中心200的子模块,也是整个调度系统的流程调 度引擎。调度模块300和工人模块400会定时发送心跳包给资源管理器201来表示两者正 常工作并可以接收请求任务,其中发送心跳包的时间用户通过配置文件自定义。资源管理 器201维护调度市场301和工人403市场,并负责把退出的或没能在用户自定义的时间内 接收到心跳的调度或工人403从调度市场301和工人403市场的记录中清除;资源管理器 201制定消息格式协议,该协议采用soap协议:该协议是一种基于简单对象访问协议,是交 换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子 集)的协议,它被设计成在WEB上交换结构化的和固化的信息。消息格式至少包括:消息发 送者、消息接收者、任务名称、是否经过流程、流程名称、发送时间和任务数据。用户根据协 议发送请求,资源管理器201判断调度人员请求数据消息类型。如果是调度人员请求数据 需要经过流程操作的,比如调度人员请求数据数据处理要经过名称为数据处理的流程:数 据采集-数据过滤-数据统计-数据上传。资源管理器201会从调度市场301中找到并启 用对应已配置好此流程环节的调度。当流程启动,调度模块从资源中心获取工人列表,执行 第一步骤数据采集,第二步骤数据过滤,调度模块会从工人列表中选取具有数据采集技能 且评级最高的工人并将调度任务发送资源中心,资源中心分配给该工人执行数据采集的 任务,调度模块会选择具有数据过滤的工人,第三步骤数据统计,调度模块统计工人的工作 情况,CPU占用率、内存占用率以及出错率,第四步骤数据上传,上传第三步中的统计数据到 资源中心中进行保存。如果用户的请求只需一种工人403就可以完成,比如用户请只需要 数据过滤,资源管理器201则直接从工人403市场查找对应的具有数据过滤功能的工人403 完成工作,用以节约资源;
[0040] 消息接收和发送接口 404 :负责发送命令及接收信息,引用第三方开源的消息发 送工具,本发明采用Akka,但不仅限于此,Akka是一个用Scala编写的库,用于简化编写容 错的、高可伸缩性的Java和Scala的Actor模型应用,这个工具提供了线程无阻塞、异步的 接收和发送消息接口,从而避免消息并发时导致的线路阻塞的性能瓶颈。
[0041] 上述调度模块300还包括:
[0042] 流程配置器302 :用于配置流程信息、提供创建流程、子流程的方法以及定时器。 定时器是用于实现流程自动启动,如果配置了定时器,在配置的时间点会自动启动这个流 程,配置流程的方法可以预先配置好也可以临时手动配置流程。
[0043] 流程调度器303 :用于接收资源中心200发送的请求信息和工人403任务执行完 后返回的信息,并且负责装载正在运行任务中的环节对象:其中环节对应流程,对象对应在 此流程正在执行任务的工人403。
[0044] 第二消息接收和发送接口 305 :负责发送命令及接收信息,提供线程无阻塞、异步 的接收和发送消息接口,接收与发送动作可以同时进行,从而避免消息并发时导致的性能 瓶颈。
[0045] 流程调度表304 :用于记录正在运行任务中的环节对象。
[0046] 调度模块300预留一个实时控制/监控的网络接口,用于界面控制人工干预、C/ S(客户机和服务器结构)方式的实时监控台,如果下层级调度引擎无法工作,它的上层级 调度引擎负责从调度市场301里取的一个合适的调度替代;并且通过上层级给予的信息和 数据库输出的记录,重新初始化;当处理机发现调度无连接时,会主动去资源中心200申请 负责的调度,最后处理机连接上调度的时候,会核对处于临界状态的任务,如果顶级调度引 擎由于比较重要,所以需要实时有备份做同步;当顶级调度无法工作,资源池会自动选举出 新的顶级调度,并告诉下层级或处理机新顶级调度的连接。从而避免当前调度失效后,后面 的流程环节不能执行的情况。
[0047] 本发明提供了基于云计算平台的调度系统,可以让不同地域的终端用户得到的云 计算服务在最短的时间内完成自己的请求,合理地利用云计算资源,节约了使用成本。同 时,保证了云计算资源的负载均衡,提高资源的利用率。实现了地理位置无关性,能够远距 离为用户提供完全的透明服务。除了能避免单台机的资源中心200或工人模块400等的单 点失效,解决网络拥塞问题,提高服务器响应速度,服务就近提供,达到更好的访问质量。
[0048] 根据本发明的另一个方面,本发明还提供了基于云计算平台的调度方法,如图2 所示本发明调度流程,包括以下步骤:
[0049] 工人403和/或工人团402向资源中心200注册并定时发送心跳给资源中心200, 资源中心200登记工人403和/或工人团402的注册信息(步骤501)。
[0050] 资源中心200接收调度人员请求数据,根据调度人员请求数据生成任务并将该任 务发送给调度模块300 (步骤502)。
[0051] 调度模块300接收资源中心200发送的任务,根据任务向资源中心200获取符合 要求的工人列表,在工人列表中选取工人403,向资源中心200发送调用请求,请求调用该 选取的工人403 (步骤504)。
[0052] 资源中心200接收调度模块300的调用请求,将调度模块300选取的工人403安 排给调度模块300,若调度模块300选取的工人403已经退出,则根据依据工人403等级选 取工人403安排给调度模块300。
[0053] 调度模块300将任务发送给资源中心200安排的工人403,之后,到资源中心200 里查看该安排的工人403是否退出,如果退出就会在工人列表中重新选取工人403向资源 中心200发送调用请求(步骤503)。
[0054] 工人403和/或工人团402接收调度模块300发送的任务,并执行该任务(步骤 505)。
[0055] 采用上述调度方法,可以让不同地域的终端用户得到的云计算服务在最短的时间 内完成自己的请求,合理地利用本地或远程的云IT资源、节约了使用成本。同时,保证了云 计算资源的负载均衡,实现了地理位置的无关性,提高IT资源的利用率。
[0056] 以上所述仅是本发明的一种实施方式。本发明的调度方式不限于手动调度流程的 方式和自动化调度流程的种方式。对于本领域的普通技术人员来说,在不脱离本发明创造 构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
【权利要求】
1. 基于云计算平台的调度系统,其特征在于,包括两个以上用网络连接的区域分中心 (100),所述区域分中心(100)包括工人模块(400)、资源中心(200)、和至少一个调度模块 (300),其中, 工人模块(400),包括至少一个工人(403)和/或工人团(402),工人(403)和/或工 人团(402)向所述资源中心(200)发出注册信息和心跳包,工人(403)和/或工人团(402) 接收所述调度模块(300)发送的任务数据; 资源中心(200),登记工人(403)和/或工人团(402)的所述注册信息;接收调度人员 请求数据,根据调度人员请求数据生成至少一个任务数据,并将生成的任务数据发送给所 述调度模块(300);接收所述调度模块(300)的调用请求,将所述调度模块(300)选取的工 人(403)和/或工人团(402)安排给所述调度模块(300); 调度模块(300),接收所述资源中心(200)发送的任务数据,根据接收的所述任务数据 向所述资源中心(200)获取工人(403)列表,在所述工人(403)列表中选取工人(403)和 /或工人团(402),并向所述资源中心(200)发送调用请求,调用工人(403)和/或工人团 (402),并将任务数据发送给所述资源中心(200)调用的工人(403)和/或工人团(402)。
2. 根据权利要求1所述基于云计算平台的调度系统,其特征在于,所述工人(403)和 /或工人团(402)在执行所述任务数据时,所述资源中心(200)统计并记录工人(403)和/ 或工人团(402)在执行所述任务数据时的资源占用程度,并根据所述资源占用程度确定资 源评估和/或调配工作。
3. 根据权利要求2所述基于云计算平台的调度系统,其特征在于,所述资源中心(200) 根据所述资源占用程度和任务数据执行效率将注册的工人(403)和/或工人团(402)分为 多个等级。
4. 根据权利要求3所述基于云计算平台的调度系统,其特征在于,所述调度模块(300) 在将任务数据发送给资源中心(200)安排的工人(403)和/或工人团(402)后,所述调度 模块(300)查看所述资源中心(200)里安排的工人(403)和/或工人团(402)是否退出, 如果工人(403)和/或工人团(402)退出,所述调度模块(300)即在工人(403)列表中重 新选取工人(403)和/或工人团(402)向所述资源中心(200)发送调用请求。
5. 根据权利要求1所述基于云计算平台的调度系统,其特征在于,所述资源中心(200) 还包括用于制定消息格式的传输协议的资源管理器(201),所述传输协议采用soap协议, 所述消息格式包括:消息发送者、消息接收者、任务名称、是否经过流程、流程名称、发送时 间和任务数据。
6. 根据权利要求2所述基于云计算平台的调度系统,其特征在于,所述多个等级包括 CPU占用率兰20%、内存占用率兰25%且出错率兰2%的优等;20%〈CPU占用率兰45%、 25%〈内存占用率兰65%且2%〈出错率兰4%的中等;以及CPU占用率兰65%、内存占用 率兰65%且出错率兰4%的差等。
7. 基于云计算平台的调度方法,其特征在于,包括以下步骤: 工人(403)和/或工人团(402)向资源中心(200)注册并定时发送心跳包给资源中心 (200),资源中心(200)登记工人(403)和/或工人团(402)的注册信息; 资源中心(200)接收调度人员请求数据,根据调度人员请求数据生成任务并将该任务 发送给调度模块(300); 调度模块(300)接收资源中心(200)发送的任务,根据任务向资源中心(200)获取符 合要求的工人(403)列表,在工人(403)列表中选取工人(403),向资源中心(200)发送调 用请求,请求调用该选取的工人(403); 资源中心(200)接收调度模块(300)的调用请求,将调度模块(300)选取的工人(403) 安排给调度模块(300),若调度模块(300)选取的工人(403)已经退出,则根据依据工人 (403)等级选取工人(403)安排给调度模块(300); 调度模块(300)将任务发送给资源中心(200)安排的工人(403),之后,到资源中心 (200)里查看该安排的工人(403)是否退出,如果退出就会在工人(403)列表中重新选取工 人(403)向资源中心(200)发送调用请求; 工人(403)和/或工人团(402)接收调度模块(300)发送的任务,并执行该任务。
【文档编号】G06F17/50GK104063560SQ201410323316
【公开日】2014年9月24日 申请日期:2014年7月8日 优先权日:2014年7月8日
【发明者】谭伟军 申请人:广东轩辕网络科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1