首页> 中国专利> 分布式应用程序的管理方法和分布式系统

分布式应用程序的管理方法和分布式系统

摘要

本发明提供一种分布式应用程序的管理方法和分布式系统,包括:根据分布式应用程序中各进程的逻辑关系,建立分布式应用程序的进程树;确定进程树中的每个父进程和每个父进程的子进程;在每个父进程中加入父进程的子进程的分布策略;根据进程树从上到下的顺序依次创建每个父进程,并根据每个父进程的子进程的分布策略和分布式系统的资源信息,确定分布每个父进程的子进程的目标设备;在分布每个父进程的子进程的目标设备中创建每个父进程的子进程。本发明提供的分布式应用程序的管理方法和分布式系统,在使分布式系统能够自动分布分布式应用程序时,能够提高分布式应用程序开发的效率。

著录项

  • 公开/公告号CN104850394A

    专利类型发明专利

  • 公开/公告日2015-08-19

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN201510184249.7

  • 发明设计人 曹东刚;刘澜涛;梅宏;

    申请日2015-04-17

  • 分类号

  • 代理机构北京同立钧成知识产权代理有限公司;

  • 代理人陶敏

  • 地址 100871 北京市海淀区颐和园路5号

  • 入库时间 2023-12-18 10:31:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-04-17

    授权

    授权

  • 2015-09-16

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20150417

    实质审查的生效

  • 2015-08-19

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种分布式应用程序的管理方法 和分布式系统。

背景技术

分布式应用是将应用程序分布在不同的计算机上,通过网络来共同完成 一项任务的工作方式。由于分布式应用可以提高应用程序的运行速度,进而 可以提升用户的感知和满意度,因此,越来越多的应用程序都被开发成了分 布式应用程序。

目前,市面上有许多通用的分布式框架,用户可以通过任一通用的分布 式框架开发各种类型的分布式应用程序,并通过通用的分布式框架所对应的 分布式系统运行分布式应用程序。为了使分布式系统在运行分布式应用程序 时,可以自动将分布式应用程序分布在网络中的计算机上,用户需要在开发 分布式应用程序时,结合分布式系统的资源信息设定分布式应用程序在分布 式系统的分布位置。

但是,在采用上述方式实现分布式系统自动分布分布式应用程序时,用 户需要耗费大量的时间去设定分布式应用程序在分布式系统中的分布位置。

发明内容

本发明提供一种分布式应用程序的管理方法和分布式系统,用以解决现 有技术中为了使分布式系统能够自动分布分布式应用程序,用户在使用通用 的分布式框架开发分布式应用程序时,需要耗费大量的时间去设定分布式应 用程序在分布式系统中的分布位置的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,本发明提供一种分布式应用程序的管理方法,包括:

根据分布式应用程序中各进程的逻辑关系,建立所述分布式应用程序的 进程树;

确定所述进程树中的每个父进程和每个所述父进程的子进程;

在每个所述父进程中加入所述父进程的子进程的分布策略;其中,所述 父进程的子进程的分布策略用于指示所述父进程的子进程在分布式系统中的 分布方式;

根据所述进程树从上到下的顺序依次创建每个所述父进程,并根据每个 所述父进程的子进程的分布策略和所述分布式系统的资源信息,确定分布每 个所述父进程的子进程的目标设备;

在分布每个所述父进程的子进程的目标设备中创建每个所述父进程的子 进程。

结合第一方面,在第一方面的第一种可能的实施方式中,所述方法还包 括:

在每个所述父进程中加入所述父进程的子进程的异常处理策略;其中, 所述父进程的子进程的异常处理策略用于指示当所述父进程的子进程异常 时,对所述父进程的子进程的处理方式。

结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实 施方式中,所述父进程的子进程的异常处理策略至少包括以下一种:忽略异 常处理策略,重启处理策略,退出处理策略;

其中,所述忽略异常处理策略为,忽略所述父进程的子进程上报的异常 消息的处理策略;

所述重启处理策略为,将上报异常消息的所述父进程的子进程重启的处 理策略;

所述退出处理策略为,将上报异常消息的所述父进程的子进程退出运行 的处理策略。

结合第一方面的第一种可能的实施方式或第一方面的第二种可能的实施 方式,在第一方面的第三种可能的实施方式中,所述父进程的子进程的异常 处理策略还用于指示当所述父进程的子进程异常时,对所述父进程的其他子 进程的处理规则。

结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实 施方式中,所述父进程的子进程的异常处理策略还至少包括以下一种:单独 处理规则,全部处理规则;

其中,所述单独处理规则为,对所述父进程的其他子进程不做处理的处 理规则;所述全部处理规则为,对所述父进程的全部子进程使用同一种异常 处理策略处理的处理规则。

结合第一方面至第一方面的第二种可能的实施方式中的任一项,在第一 方面的第五种可能的实施方式中,所述父进程的子进程的分布策略至少包括 以下一种:本地分布策略,集中分布策略,任意分布策略;

其中,所述本地分布策略为,所述父进程和所述父进程的子进程分布在 同一目标设备中的分布策略;

所述集中分布策略为,所述父进程的所有子进程分布在同一目标设备中 的分布策略;

所述任意分布策略为,所述父进程和所述父进程的子进程根据所述分布 式系统的资源信息任意分布的分布策略。

结合第一方面至第一方面的第二种可能的实施方式中的任一项,在第一 方面的第六种可能的实施方式中,所述方法还包括:

在每个所述父进程和每个所述父进程的子进程中分别添加监控策略;所 述监控策略用于指示每个所述父进程和每个所述父进程的子进程之间的监控 关系。

结合第一方面的第六种可能的实施方式,在第一方面的第七种可能的实 施方式中,在分布每个所述父进程的子进程的目标设备中创建每个所述父进 程的子进程时,所述方法还包括:

根据所述监控策略,建立每个所述父进程和每个所述父进程的子进程的 监控连接,以使得所述父进程和所述父进程的子进程通过所述监控连接互相 发送周期性的心跳信息。

第二方面,本发明提供一种分布式系统,包括:多个资源设备和分布式 平台;其中,所述分布式平台用于执行如权利要求1-8任一所述的分布式应 用程序的管理方法;所述多个资源设备用于运行所述分布式应用程序。

本发明提供的分布式应用程序的管理方法和分布式系统,通过预设的多 个通用的分布策略,使得用户在使用通用的分布式框架开发各种类型的分布 式应用程序时,均可以根据每个分布式应用程序的程序逻辑,在每个分布式 应用程序的进程树中的每个父进程中加入为每个父进程的子进程选择的分布 策略,使得分布式系统在根据分布式应用程序的进程树从上到下的顺序依次 创建分布式应用程序的每个父进程时,可以根据每个父进程中的父进程的子 进程的分布策略和分布式系统的资源信息,选择合适的目标设备创建每个父 进程的子进程,使分布式系统实现了自动分布分布式应用程序。与现有技术 中用户在使用通用的分布式框架开发每个分布式应用程序时,需要结合分布 式系统的资源信息,耗费大量的时间去设定每个分布式应用程序在分布式系 统中的分布位置,即,需要耗费大量的时间为每个分布式应用程序编写代码, 以实现分布式应用程序在分布式系统中的自动分布相比,本发明实施例所提 供的分布式应用程序的管理方法和分布式系统,可以节省用户开发分布式应 用程序的时间,提高了分布式应用程序开发的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的分布式应用程序的管理方法实施例一的流 程图;

图2为本发明实施例所提供的分布式应用程序的进程树的结构示意图;

图3为本发明实施例所提供的分布式应用程序的管理方法实施例二的流 程图;

图4为本发明实施例所提供的分布式应用程序的管理方法实施例三的流 程图;

图5为本发明实施例所提供的分布式应用程序的管理方法实施例四的流 程图;

图6为本发明实施例所提供的父进程和父进程的子进程采用本地分布策 略的分布示意图;

图7为本发明实施例所提供的父进程和父进程的子进程采用集中分布策 略的分布示意图;

图8为本发明实施例所提供的父进程和父进程的子进程采用任意分布策 略的分布示意图;

图9为本发明实施例所提供的父进程和父进程的子进程采用集中分布策 略加松弛分布策略的分布示意图;

图10为本发明实施例所提供的分布式应用程序的管理方法实施例五的 流程图;

图11为本发明实施例所提供的分布式应用程序的管理方法实施例六的 流程图;

图12为本发明实施例所提供的分布式系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行 清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而 不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作 出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例可以适用于通用的分布式框架所对应的分布式系统中,其 可以实现自动管理运行在分布式系统中的分布式应用程序。因此,本发明实 施例提供的分布式应用程序的管理方法和分布式系统,旨在解决现有技术中 为了使分布式系统能够自动分布分布式应用程序,用户在使用通用的分布式 框架开发分布式应用程序时,需要耗费大量的时间去设定分布式应用程序在 分布式系统中的分布位置的问题。

需要说明的是,当分布式应用程序在分布式系统中运行时,进程为分布 式应用程序在分布式系统中的执行实体,其可以申请和拥有分布式系统的资 源。由于分布式应用程序是通过分布式系统中的多个资源设备并行执行的, 所以分布式应用程序会对应多个进程。因此,分布式应用程序在分布式系统 中的多个资源设备上运行就可以理解为分布式应用程序的多个进程在分布式 系统中的多个资源设备上运行,进程之间通过多个资源设备之间的网络连接 互相进行通信。

需要说明的是,为了便于描述,本发明下述各实施例中,“用户开发分 布式应用程序”均代指“用户使用通用的分布式框架开发分布式应用程序”, “分布式系统”均代指“通用的分布式框架对应的分布式系统”。

下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具 体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例 不再赘述。

图1为本发明实施例所提供的分布式应用程序的管理方法实施例一的流 程图。其中,该方法的执行主体可以为分布式系统中具有进程管理功能的通 信设备或者通信模块,如图1所示,该方法可以包括如下步骤:

步骤S101:根据分布式应用程序中各进程的逻辑关系,建立分布式应用 程序的进程树。

具体的,分布式应用程序中各进程的逻辑关系可以理解为每个进程与被 该进程创建的进程之间的创建关系,以及每个进程与创建该进程的进程之间 的被创建关系,通过上述创建关系和被创建关系可以建立出分布式应用程序 的树形的进程创建关系,即,分布式应用程序的进程树。

图2为本发明实施例所提供的分布式应用程序的进程树的结构示意图, 如图2所示,假设某分布式应用程序有进程A、B、C和D,其中,进程A 创建了进程B和进程C、进程B创建了进程D,则,该分布式应用程序的进 程树可以如图2所示。

步骤S102:确定进程树中的每个父进程和每个父进程的子进程。

具体的,在一个分布式应用程序的进程树中,每个进程为被该进程创建 的进程的父进程,则被该进程创建的进程为该父进程的子进程。例如,继续 参照图2,根据图2所示的分布式应用程序的进程树,以进程B和进程D为 例,由于进程B创建了进程D,则进程B为父进程,进程D为父进程B的子 进程。

在一个分布式应用程序的进程树中,一个进程可以为一子进程的父进程, 还可以为另一父进程的子进程,也就是说,根据分布式应用程序的进程树从 上到下的顺序,除了最末端的进程(即,最后一层的进程)之外,所有的进 程都可以为其他某一个进程或某多个进程的父进程。例如:继续参照图2, 根据图2所示的分布式应用程序的进程树,该分布式应用程序的进程树中除 了末端的进程C和进程D之外,包括两个父进程,分别为:进程A和进程B。 进程A为子进程B和子进程C的父进程,进程B为子进程D的父进程;其 中,进程B为子进程D的父进程,进程B同时还为父进程A的子进程。

在一个分布式应用程序的进程树中,不同的父进程对应的父进程的子进 程的数量可以不同。例如,继续参照图2,根据图2所示的分布式应用程序 的进程树,父进程A的子进程有两个,分别为:进程B和进程C;父进程B 的子进程只有一个,即进程D。

步骤S103:在每个父进程中加入父进程的子进程的分布策略;其中,父 进程的子进程的分布策略用于指示父进程的子进程在分布式系统中的分布方 式。

具体的,本发明实施例所述的父进程的子进程的分布策略可以有多个, 每个分布策略对应一种父进程的子进程在分布式系统中的分布方式,该多个 分布策略为通用的分布策略,也就是说,任一类型的分布式应用程序的进程 树中的每个父进程的子进程,均可以在该多个分布策略中找到一个适合自己 在分布式系统中分布方式的分布策略。具体实现时,用户可以在开发分布式 应用程序时,根据分布式应用程序的程序逻辑,即,分布式应用程序的进程 树中的每个父进程的子进程与父进程、与父进程的其他子进程之间的通信频 率,在每个父进程中加入适合父进程的子进程的分布策略。例如,若父进程 的子进程与父进程通信频繁,则可以为该父进程的子进程选择一种将父进程 和父进程的子进程分布在同一资源设备上的分布策略,以提高分布式应用程 序的运行效率,减少分布式系统中的通信开销。

本发明实施例对上述父进程的子进程的分布策略的表示形式不进行限 定,例如可以为分布式系统能够识别的参数,参数所对应的代码块设置在分 布式系统中,具体实现时,用户在开发不同类型的分布式应用程序时,可以 为每个分布式应用程序的进程树中的每个父进程的子进程选择合适的分布策 略,并将每个父进程的子进程的分布策略对应的参数加入每个父进程即可, 而不需要再耗费大量的时间结合分布式系统的资源信息,为每个分布式应用 程序设定在分布式系统中的分布位置。

可选的,当分布式应用程序的进程树中的某一父进程有多个子进程时, 该父进程的每个子进程的分布策略可以相同,也可以不同。例如:继续参照 图2,该分布式应用程序的进程树中的父进程A的子进程有两个,分别为: 进程B和进程C,则子进程B和子进程C的分布策略可以为同一分布策略, 也可以为不同的分布策略。

步骤S104:根据进程树从上到下的顺序依次创建每个父进程,并根据每 个父进程的子进程的分布策略和分布式系统的资源信息,确定分布每个父进 程的子进程的目标设备。

具体的,上述分布式系统的资源信息可以为分布式系统中每个资源设备 的可用容量、可用带宽、CPU占有率等。上述目标设备为分布式系统中运行 分布式应用程序的资源设备,例如:计算机、服务器、虚拟机等。当将上述 分布式应用程序提交给分布式系统后,由于分布式应用程序的进程树中的每 个父进程中加入父进程的子进程的分布策略,则分布式系统可以根据分布式 应用程序的进程树从上到下的顺序,自动创建并启动分布式应用程序的进程 树中的第一个父进程,即进程树中最顶层的一个进程,并在创建该父进程的 同时,根据该父进程中已加入的该父进程的子进程的分布策略,结合分布式 系统的资源信息,自动确定分布该父进程的子进程的目标设备。按照此方式, 可以确定分布式应用程序的进程树中的所有父进程的子进程的目标设备。这 样,分布式系统在运行用户开发的各种类型的分布式应用程序时,均可以通 过上述方式,自动确定每个分布式应用程序的进程树中的每个父进程的子进 程的目标设备。

以上述父进程的子进程的分布策略为分布式系统能够识别的参数为例, 其中,参数所对应的代码块设置在分布式系统中,则当将上述分布式应用程 序提交给分布式系统后,分布式系统在读取或获取到每个父进程中加入的父 进程的子进程的分布策略(即参数)时,就可以调用在分布式系统中已存储 的该分布策略(即参数)对应的代码块,并结合分布式系统的资源信息,确 定分布式应用程序的进程树中的所有父进程的子进程的目标设备。

可选的,当分布式应用程序的进程树中的某一父进程有多个子进程时, 若该多个子进程的分布策略相同,则分布该多个子进程的目标设备可以为同 一个。

步骤S105:在分布每个父进程的子进程的目标设备中创建每个父进程的 子进程。

具体的,当上述分布式系统根据分布式应用程序的进程树中的每个父进 程的子进程的分布策略和分布式系统的资源信息,确定分布每个父进程的子 进程的目标设备之后,分布式系统可以自动在对应的目标设备中创建父进程 的子进程,并按照此方式,直至创建完进程树中的所有进程。至此,分布式 系统实现了自动分布分布式应用程序。

现有技术中针对使用通用分布式框架开发的分布式应用程序,为了使分 布式系统在运行分布式应用程序时,可以自动将分布式应用程序分布在分布 式系统的资源设备上,用户需要在开发分布式应用程序时,结合分布式系统 的资源信息设定分布式应用程序在分布式系统的分布位置,导致用户在使用 通用的分布式框架开发每个分布式应用程序时,均需要耗费大量的时间去设 定每个分布式应用程序在分布式系统中的分布位置,即,需要耗费大量的时 间为每个分布式应用程序编写代码,以实现分布式应用程序在分布式系统中 的自动分布。而本发明实施例中,用户在使用通用框架开发分布式应用程序 时,可以根据分布式应用程序的程序逻辑,为分布式应用程序的进程树中的 每个父进程的子进程在通用的分布策略中选择一适合自己的分布策略,并加 入父进程中。这样,在分布式系统根据分布式应用程序的进程树的从上到下 的顺序创建每个父进程时,就可以根据每个父进程中的父进程的子进程的分 布策略和分布式系统的资源信息,自动选择合适的资源设备创建子进程,使 分布式系统实现了自动分布分布式应用程序。本发明实施例与现有技术相比, 用户在实现分布式系统自动分布分布式应用程序时,不需要再耗费大量的时 间去编写代码,节省了用户的时间,提高了分布式应用程序开发的效率。

本发明实施例所提供的分布式应用程序的管理方法,通过预设的多个通 用的分布策略,使得用户在使用通用的分布式框架开发各种类型的分布式应 用程序时,均可以根据每个分布式应用程序的程序逻辑,在每个分布式应用 程序的进程树中的每个父进程中加入为每个父进程的子进程选择的分布策 略,使得分布式系统在根据分布式应用程序的进程树从上到下的顺序依次创 建分布式应用程序的每个父进程时,可以根据每个父进程中的父进程的子进 程的分布策略和分布式系统的资源信息,选择合适的目标设备创建每个父进 程的子进程,使分布式系统实现了自动分布分布式应用程序。与现有技术中 用户在使用通用的分布式框架开发每个分布式应用程序时,需要结合分布式 系统的资源信息,耗费大量的时间去设定每个分布式应用程序在分布式系统 中的分布位置,即,需要耗费大量的时间为每个分布式应用程序编写代码, 以实现分布式应用程序在分布式系统中的自动分布相比,本发明实施例所提 供的分布式应用程序的管理方法,可以节省用户开发分布式应用程序的时间, 提高了分布式应用程序开发的效率。

进一步地,在上述图1所示实施例的基础上,图3为本发明实施例所提 供的分布式应用程序的管理方法实施例二的流程图。其中,该方法的执行主 体可以为分布式系统中具有进程管理功能的通信设备或者通信模块,如图3 所示,在步骤S102之后、且在步骤S104之前,该方法还可以包括如下步骤:

步骤S103A:在每个父进程中加入父进程的子进程的异常处理策略;其 中,父进程的子进程的异常处理策略用于指示当父进程的子进程异常时,对 父进程的子进程的处理方式。

具体的,本发明实施例所述的父进程的子进程的异常处理策略可以有多 个,每个异常处理策略对应一种对父进程的子进程的处理方式,该多个异常 处理策略为通用的分布策略,也就是说,对任一类型的分布式应用程序的进 程树中的每个父进程的子进程的异常的处理方式,均可以在该多个异常处理 策略中找到一个适合自己的异常处理策略。具体实现时,用户可以在开发分 布式应用程序时,根据分布式应用程序的程序逻辑,即,分布式应用程序的 进程树中的每个父进程的子进程与父进程、与父进程的其他子进程之间的通 信频率,在每个父进程中加入适合父进程的子进程的异常处理策略。例如, 若父进程的子进程与父进程之间相互独立运行,则可以为该父进程的子进程 选择一种当父进程的子进程出现异常时,将父进程的子进程重启的异常处理 策略。

本发明实施例对上述父进程的子进程的异常处理策略的表示形式不进行 限定,例如可以为分布式系统能够识别的参数,参数所对应的代码块设置在 分布式系统中,具体实现时,用户在使用通用的分布式框架开发不同类型的 分布式应用程序时,可以为每个分布式应用程序的进程树中的每个父进程的 子进程选择合适的异常处理策略,并将每个父进程的子进程的异常处理策略 对应的参数加入每个父进程即可,而不需要单独为每个分布式应用程序的各 进程设定异常处理方式,即,不需要耗费大量的时间为每个分布式应用程序 的各进程编写处理异常方式的代码,以实现分布式系统中的自动处理分布式 应用程序的异常。这样,当分布式应用程序在分布式系统中运行时,若某一 子进程出现异常,子进程自动上报异常消息给子进程的父进程,由父进程根 据父进程中加入的父进程的子进程的异常处理策略,确定对父进程的子进程 的处理方式,并由分布式系统根据该处理方式对父进程的子进程进行处理, 使得分布式系统可以自动处理分布式应用程序的异常。

进一步的,当父进程有多个子进程时,则步骤S103A所述的父进程的子 进程的异常处理策略还用于指示当父进程的子进程异常时,对父进程的其他 子进程的处理规则。

具体的,用户可以在开发分布式应用程序时,根据分布式应用程序的程 序逻辑,即,分布式应用程序的进程树中的每个父进程的子进程与父进程的 其他子进程之间的通信频率,在每个父进程的子进程的异常处理策略中设定 父进程的其他子进程的处理规则。例如,若父进程的子进程与父进程的其他 进程之间相互独立运行,对父进程的子进程进行处理并不影响父进程的其他 子进程的运行,则可以在父进程的子进程的异常策略中选择当该父进程的子 进程异常时,仅对该父进程的子进程进行处理,并不对父进程的其他子进程 做处理的处理规则。这样,当分布式应用程序在分布式系统中运行时,若子 进程将子进程的异常上报给子进程的父进程时,父进程则可以根据父进程中 加入的父进程的子进程的异常处理策略中对父进程的其他子进程的处理规 则,在确定对父进程的子进程的处理方式的同时,确定对父进程的其他子进 程的处理方式,并由分布式系统根据该处理方式对父进程的其他子进程进行 处理,使得分布式系统可以自动处理分布式应用程序的异常,使分布式应用 程序正常运行。

同样的,上述处理规则的表示形式可以参考上述对分布策略和异常处理 策略的表示形式的描述,本发明实施例在此不再赘述。

需要说明的是,本发明实施例对步骤S103和步骤S103A的执行顺序不 进行限定,可以先执行步骤S103再执行步骤S103A,也可以先执行步骤S103A 再执行步骤S103。

本发明实施例所提供的分布式应用程序的管理方法,通过预设的多个通 用的异常处理策略,使得用户在使用通用的分布式框架开发各种类型的分布 式应用程序时,均可以根据每个分布式应用程序的程序逻辑,在每个分布式 应用程序的进程树中的每个父进程中加入为每个父进程的子进程选择的异常 处理策略,使得分布式系统在运行分布式应用程序时,当分布式应用程序的 子进程出现异常时,该子进程的父进程可以根据父进程的子进程的异常处理 策略,确定父进程的子进程的处理方式和父进程的其他子进程的处理规则, 并交由分布式系统自动进行处理。与现有技术中用户在使用通用的分布式框 架开发每个分布式应用程序时,为了使分布式系统可以自动处理分布式应用 程序的异常,需要耗费大量的时间为每个分布式应用程序的各个进程编写异 常处理的代码相比,本发明实施例所提供的分布式应用程序的管理方法,可 以进一步节省用户开发分布式应用程序的时间,提高了进一步分布式应用程 序开发的效率。

进一步地,在上述图3所示实施例的基础上,图4为本发明实施例所提 供的分布式应用程序的管理方法实施例三的流程图。其中,该方法的执行主 体可以为分布式系统中具有进程管理功能的通信设备或者通信模块,如图4 所示,在步骤S102之后、且在步骤S104之前,该方法还可以包括如下步骤:

步骤S103B:在每个父进程和每个父进程的子进程中分别添加监控策略; 监控策略用于指示每个父进程和每个父进程的子进程之间的监控关系。

具体的,当分布式应用程序的某一进程所处的资源设备发生异常时,例 如:资源设备掉电等,则进程会自动退出运行,为了使分布式应用程序的父 进程可以快速发现和处理父进程的子进程的这种异常,本发明实施例在开发 分布式应用程序时,在分布式应用程序的进程树中的每个父进程和每个父进 程的子进程中添加监控策略,以使得分布式应用系统在运行该分布式应用程 序时,根据该监控策略就可以确定每个父进程和每个父进程的子进程之间的 监控关系。需要说明的是,“在开发分布式应用程序时,在分布式应用程序 的进程树中的每个父进程和每个父进程的子进程中添加监控策略”的方式可 以采用现有技术中本领域技术人员采用的实现方式,本发明实施例对此不进 行限定。

则进一步的,在上述步骤S105之后,该方法还可以包括如下步骤:

步骤S106:根据监控策略,建立每个父进程和每个父进程的子进程的监 控连接,以使得父进程和父进程的子进程通过监控连接互相发送周期性的心 跳信息。

具体的,当将分布式应用程序在分布式系统中运行时,分布式系统在分 布每个父进程的子进程的目标设备中创建每个父进程的子进程时,根据父进 程和子进程中加入的监控策略,自动建立每个父进程和每个父进程的子进程 之间的监控连接,并在建立监控连接之后,通知父进程和子进程通过监控连 接互相发送周期性的心跳信息。当父进程因为异常退出时,父进程的子进程 也可以通过在预设时间内未接收到父进程发送的周期性的心跳信息,确定父 进程退出后,自行退出运行。当子进程所处的资源设备发生异常导致子进程 退出时,父进程可以通过在预设时间内未接收到父进程的子进程发送的周期 性心跳信息而主动发现父进程的子进程退出。当父进程确定父进程的子进程 退出时,父进程可以根据父进程中加入的父进程的子进程的异常处理策略, 确定对父进程的子进程的处理方式,并由分布式系统根据该处理方式对父进 程的子进程进行处理。上述监控连接可以为TCP连接,上述父进程和父进程 的子进程互相发送周期性的心跳信息的方式可以为通过父进程和父进程的子 进程的IP地址互相发送心跳信息。上述心跳信息的发送周期和上述预设时间 均可以根据用户的需求设定。

可选的,上述分布式应用程序的进程树中的第一个父进程,即进程树中 最顶层的一个进程可以设定与分布式系统建立监控连接的监控策略,使得分 布式系统可以监控第一个父进程的异常,从而保证了分布式应用程序的进程 树中的任一进程发生任何异常时,都可以被父进程迅速发现,并根据父进程 中加入的父进程的子进程的异常处理策略,确定父进程的子进程处理方式, 并由分布式系统根据该处理方式对父进程的子进程进行处理。

通过上述方式,使得分布式应用程序的进程树中的每个父进程都可以快 速发现父进程的子进程的异常,并根据父进程中加入的父进程的子进程的异 常处理策略,确定对父进程的子进程的处理方式,并由分布式系统根据该处 理方式对父进程的子进程进行处理,使得分布式系统可以自动且及时的处理 分布式应用程序的异常,保证了分布式应用程序的正常运行。

需要说明的是,本发明实施例对步骤S103、步骤S103A和步骤S103B 的执行顺序不进行限定。

本发明实施例所提供的分布式应用程序的管理方法,可以在进一步节省 用户开发分布式应用程序的时间,提高了进一步分布式应用程序开发的效率 的基础上,使分布式系统可以自动且及时的处理分布式应用程序的异常,保 证了分布式应用程序的正常运行,提高了分布式应用程序运行的计算结果或 者提供给客户的服务的准确性。

下面采用几个具体的实施例,对图1、图3和图4所示方法实施例的技 术方案进行详细说明。

图5为本发明实施例所提供的分布式应用程序的管理方法实施例四的流 程图。其中,该方法的执行主体可以为分布式系统中具有进程管理功能的通 信设备或者通信模块。如图5所示,该方法可以包括如下步骤:

步骤S501:根据分布式应用程序中各进程的逻辑关系,建立分布式应用 程序的进程树。

其中,本步骤的相关描述可以参见上述步骤S101的描述,在此不再赘述。

步骤S502:确定分布式应用程序的进程树中的每个父进程和每个父进程 的子进程。

其中,本步骤的相关描述可以参见上述步骤S102的描述,在此不再赘述。

步骤S503:在分布式应用程序的进程树中的每个父进程中加入父进程的 子进程的分布策略。

如上述本发明实施例所提供的分布式应用程序的管理方法实施例一所描 述的,父进程的子进程的分布策略可以有多个,每个分布策略对应一种父进 程的子进程在分布式系统中的分布方式。可选的,上述父进程的子进程的分 布策略可以至少包括以下一种:本地分布策略,集中分布策略,任意分布策 略。

其中,图6为本发明实施例所提供的父进程和父进程的子进程采用本地 分布策略的分布示意图,如图6所示,本地分布策略为父进程和父进程的子 进程分布在同一目标设备中的分布策略。当父进程和父进程的子进程之间通 信频繁时,可以为该父进程的子进程选择此分布策略,以使得分布式应用程 序的运行效率较高。示例性的,以分布式Web服务应用程序为例,由于该类 分布式应用程序为用户提供不同类型的服务,由于这些不同类型的服务对应 的进程之间存在数据依赖(即,一个进程在运行过程中需要使用另一个进程 产生的数据),则可以为该类的分布式应用程序的进程树中的每个父进程的 子进程选择本地分布策略。

图7为本发明实施例所提供的父进程和父进程的子进程采用集中分布策 略的分布示意图,如图7所示,集中分布策略为,父进程的所有子进程分布 在同一目标设备中的分布策略。当父进程的所有子进程之间的通信频繁时, 可以为该父进程的子进程选择此分布策略,以使得分布式应用程序的运行效 率较高。示例性的,以分布式网页游戏程序为例,由于该类分布式应用程序 在网页游戏的同一场景中有多个为不同用户服务进程,且这多个进程之间通 信频繁,则可以为该类的分布式应用程序的进程树中的每个父进程的子进程 选择集中分布策略。

图8为本发明实施例所提供的父进程和父进程的子进程采用任意分布策 略的分布示意图,如图8所示,任意分布策略为,父进程和父进程的子进程 根据分布式系统的资源信息任意分布的分布策略。当父进程的与父进程的子 进程之间的运行相互独立,通信较少时,且父进程的各个子进程之间的运行 也相互独立,通信较少时,可以为该父进程的子进程选择此分布策略,以使 得分布式系统的资源可以均衡的利用。示例性的,以分布式数据处理程序为 例,由于该类分布式应用程序需要利用大量并行运行的进程同时进行数值计 算,以提高分布式应用程序的计算速度,其中,每个进程均独立运行,则可 以为该类的分布式应用程序的进程树中的每个父进程的子进程选择任意分布 策略,以最大化地提高分布式系统的计算资源的利用率,缩短分布式应用程 序的运行时间。

当为父进程的子进程选择的分布策略为本地分布策略或集中分布策略 时,进一步可选的,还可以在本地分布策略或集中分布策略的基础上添加松 弛分布策略。该松弛性分布策略用于指示当分布父进程的子进程的目标设备 过载时,可以将还未在该目标设备上创建的进程分布在其他资源设备上,以 平衡资源设备的负载。示例性的,以集中分布策略加松弛分布策略为例,图 9为本发明实施例所提供的父进程和父进程的子进程采用集中分布策略加松 弛分布策略的分布示意图,如图9所示,所有子进程本应分布在同一资源设 备中时,若该资源设备在创建上述子进程的期间负载过高,则还未被创建的 子进程会被分布在同机架的其他资源设备上;若该资源设备对应的机架上的 所有资源设备均过载,则还未被创建的子进程会被分布在其他机架上的资源 设备中。

进一步可选的,本发明实施例对上述父进程的子进程的分布策略的表示 形式不进行限定,例如可以为分布式系统能够识别的参数,参数所对应的代 码块设置在分布式系统中。当分布策略采用分布式系统能够识别的参数时, 具体可以参考如下示例,其中,本地分布策略对应的参数为:Strategy为本地 分布,集中分布策略对应的参数为:Strategy为集中分布,任意分布策略对应 的参数为:Strategy为任意分布,则分布式系统中设置的参数对应的代码块具 体可以如下:

步骤S504:在分布式应用程序的进程树中的每个父进程中加入父进程的 子进程的异常处理策略。

如上述本发明实施例所提供的分布式应用程序的管理方法实施例二所描 述的,父进程的子进程的异常处理策略可以有多个,每个异常处理策略对应 一种对父进程的子进程的处理方式。可选的,上述父进程的子进程的异常处 理策略可以至少包括以下一种:忽略异常处理策略,重启处理策略,退出处 理策略。

其中,忽略异常处理策略为,忽略父进程的子进程上报的异常消息的处 理策略。当父进程的子进程的异常对父进程的子进程的运行的影响可以忽略 不计时,可以为该父进程的子进程选择此异常处理策略。示例性的,以计算 异常(例如:除数为零,运算溢出等)为例,由于计算异常通常由分布式应 用程序本身导致,即便对父进程的子进程重启也无法避免出现计算异常,且 该计算异常并不会造成父进程的子进程无法运行,则可以为父进程的子进程 选择忽略异常处理策略。

重启处理策略为,将上报异常消息的父进程的子进程重启的处理策略。 当父进程的子进程的异常对该父进程的子进程的运行有影响,但通过重启可 以恢复该父进程的子进程的运行时,可以为该父进程的子进程选择此异常处 理策略。其中,上述重启父进程的子进程为分布式系统重新根据父进程中加 入的父进程的子进程的分布策略,结合分布式系统的资源信息,重新确定分 布父进程的子进程的目标设备,并在重新确定的目标设备上创建该父进程的 子进程。示例性的,以父进程的子进程所处的资源设备出现硬件故障(例如, 资源设备的内存不足,资源设备的磁盘损坏等),由于父进程的子进程的异 常为资源设备的硬件故障所导致的,可以选择在新的资源设备上重新创建该 子进程可以避免再次出现该异常时,则可以为父进程的子进程选择重启处理 策略。

退出处理策略为,将上报异常消息的父进程的子进程退出运行的处理策 略。当父进程的子进程的异常对父进程的子进程造成的影响,通过重启父进 程的子进程也无法恢复时,可以为该父进程的子进程选择此异常处理策略。 示例性的,以父进程的子进程被分布式系统强制退出为例,由于该类异常为 分布式系统所造成的,即便重启该父进程的子进程,也无法避免再次被分布 式系统强制退出,则可以为该父进程的子进程选择退出处理策略。

进一步可选的,当父进程无法处理父进程的子进程主动上报的异常消息 时,父进程可以暂停运行,并将该异常消息上报给父进程的父进程,由该父 进程的父进程进行处理。

当父进程有多个子进程时,则进一步可选的,上述父进程的子进程的异 常处理策略还至少包括以下一种:单独处理规则,全部处理规则。

其中,单独处理规则为,对父进程的其他子进程不做处理的处理规则。 当对父进程的某一个发生异常的子进程进行处理时,并不影响父进程的其他 子进程的运行时,可以为父进程的其他子进程选择此处理规则。

全部处理规则为,对父进程的全部子进程使用同一种异常处理策略处理 的处理规则。当对父进程的某一个发生异常的子进程进行处理时,父进程的 其他子进程的均无法正常运行时,可以为父进程的其他子进程选择此处理规 则。

步骤S505:在分布式应用程序的进程树中的每个父进程和每个父进程的 子进程中分别添加监控策略。

其中,本步骤的相关描述可以参见上述步骤S103B的描述,在此不再赘 述。

需要说明的是,本发明实施例对步骤S503、步骤S504和步骤S505的执 行顺序不进行限定。

步骤S506:分布式系统根据分布式应用程序的进程树从上到下的顺序, 创建第一个父进程。

其中,本步骤的相关描述可以参见上述步骤S104的描述,在此不再赘述。

步骤S507:分布式系统根据第一个父进程的子进程的分布策略和分布式 系统的资源信息,确定分布第一个父进程的子进程的目标设备。

其中,本步骤的相关描述可以参见上述步骤S104的描述,在此不再赘述。

步骤S508:分布式系统在分布第一个父进程的子进程的目标设备中创建 第一个父进程的子进程。

其中,本步骤的相关描述可以参见上述步骤S105的描述,在此不再赘述。

步骤S509:分布式系统建立第一个父进程和第一个父进程的子进程的监 控连接。

其中,本步骤的相关描述可以参见上述步骤S106的描述,在此不再赘述。

步骤S510:分布式系统通知第一个父进程和第一个父进程的子进程通过 监控连接互相发送周期性的心跳信息。

其中,本步骤的相关描述可以参见上述步骤S106的描述,在此不再赘述。

步骤S511:分布式系统根据分布式应用程序的进程树从上到下的顺序, 沿用步骤S507至步骤S510的方式,依次创建分布式应用程序的进程树中的 每个父进程和每个父进程的子进程,直至将分布式应用程序的进程树中的所 有的进程在分布式系统中全部创建完毕。

至此,分布式系统实现了自动分布分布式应用程序。

本发明实施例所提供的分布式应用程序的管理方法,通过预设的多个通 用的分布策略,使得用户在使用通用的分布式框架开发各种类型的分布式应 用程序时,均可以根据每个分布式应用程序的程序逻辑,在每个分布式应用 程序的进程树中的每个父进程中加入为每个父进程的子进程选择的分布策 略,使得分布式系统在根据分布式应用程序的进程树从上到下的顺序依次创 建分布式应用程序的每个父进程时,可以根据每个父进程中的父进程的子进 程的分布策略和分布式系统的资源信息,选择合适的目标设备创建每个父进 程的子进程,使分布式系统实现了自动分布分布式应用程序。与现有技术中 用户在使用通用的分布式框架开发每个分布式应用程序时,需要结合分布式 系统的资源信息,耗费大量的时间去设定每个分布式应用程序在分布式系统 中的分布位置,即,需要耗费大量的时间为每个分布式应用程序编写代码, 以实现分布式应用程序在分布式系统中的自动分布相比,本发明实施例所提 供的分布式应用程序的管理方法,可以节省用户开发分布式应用程序的时间, 提高了分布式应用程序开发的效率。

进一步的,在上述图5所示实施例的基础上,图10为本发明实施例所提 供的分布式应用程序的管理方法实施例五的流程图,如图10所示,该方法的 应用场景为当分布式系统中运行的某一分布式应用程序的进程树中的某一父 进程的子进程发生异常,主动上报给父进程时的分布式应用程序的管理方法, 其中,该方法的执行主体可以为分布式系统中具有进程管理功能的通信设备 或者通信模块,则在步骤S512之后还可以包括如下步骤:

步骤S1001:子进程通过监控连接主动向该子进程的父进程发送异常消 息。

步骤S1002:父进程在接收到父进程的子进程发送的异常消息后,根据 父进程中加入的父进程的子进程的异常处理策略,确定对父进程的子进程的 处理方式,以及对父进程的其他子进程的处理规则。

步骤S1003:父进程将确定的对父进程的子进程的处理方式,以及对父 进程的其他子进程的处理规则发送给分布式系统。

步骤S1004:分布式系统根据接收的父进程的子进程的处理方式对父进 程的子进程进行处理,同时根据接收的父进程的其他子进程的处理规则对父 进程的其他子进程进行处理。

至此,分布式系统实现了自动处理分布式应用程序主动上报的任何异常。

本发明实施例所提供的分布式应用程序的管理方法,通过预设的多个通 用的异常处理策略,使得用户在使用通用的分布式框架开发各种类型的分布 式应用程序时,均可以根据每个分布式应用程序的程序逻辑,在每个分布式 应用程序的进程树中的每个父进程中加入为每个父进程的子进程选择的异常 处理策略,使得分布式系统在运行分布式应用程序时,当分布式应用程序的 子进程出现异常时,该子进程的父进程可以根据父进程的子进程的异常处理 策略,确定父进程的子进程的处理方式和父进程的其他子进程的处理规则, 并交由分布式系统自动进行处理。与现有技术中用户在使用通用的分布式框 架开发每个分布式应用程序时,为了使分布式系统可以自动处理分布式应用 程序的异常,需要耗费大量的时间为每个分布式应用程序的各个进程编写异 常处理的代码相比,本发明实施例所提供的分布式应用程序的管理方法,可 以进一步节省用户开发分布式应用程序的时间,提高了进一步分布式应用程 序开发的效率。

进一步的,在上述图5和图10所示实施例的基础上,图11为本发明实 施例所提供的分布式应用程序的管理方法实施例六的流程图,如图11所示, 该方法的应用场景为当分布式系统中运行的某一分布式应用程序的进程树中 的某一父进程在预设时间内未接收到该父进程的子进程发送的周期性的心跳 信息时的分布式应用程序的管理方法,其中,该方法的执行主体可以为分布 式系统中具有进程管理功能的通信设备或者通信模块,则在步骤S512之后还 可以包括如下步骤:

步骤S1101:父进程通过在预设时间内未收到父进程的子进程发送的周 期性的心跳信息,确认父进程的子进程退出。

步骤S1102:父进程在确认父进程的子进程退出后,根据父进程中加入 的父进程的子进程的异常处理策略,确定对父进程的子进程的处理方式,以 及对父进程的其他子进程的处理规则。

步骤S1103:父进程将确定的对父进程的子进程的处理方式,以及对父 进程的其他子进程的处理规则发送给分布式系统。

步骤S1104:分布式系统根据接收的父进程的子进程的处理方式对父进 程的子进程进行处理,同时根据接收的父进程的其他子进程的处理规则对父 进程的其他子进程进行处理。

至此,分布式系统实现了自动处理分布式应用程序的任何异常。

本发明实施例所提供的分布式应用程序的管理方法,可以在进一步节省 用户开发分布式应用程序的时间,提高了进一步分布式应用程序开发的效率 的基础上,使分布式系统可以自动且及时的处理分布式应用程序的异常,保 证了分布式应用程序的正常运行,提高了分布式应用程序运行的计算结果或 者提供给客户的服务的准确性。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步 骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可 读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而 前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码 的介质。

图12为本发明实施例所提供的分布式系统的结构示意图。如图12所示, 该分布式系统包括:多个资源设备1201和分布式平台1202。

其中,分布式平台1202用于执行如权利要求1-8任一所述的分布式应用 程序的管理方法;多个资源设备1201用于运行分布式应用程序。

具体的,上述分布式平台可以为分布式系统中具有进程管理功能的通信 设备或者通信模块,上述资源设备可以为计算机、服务器、虚拟机等。本发 明实施例提供的分布式系统,可以用于执行图1、图3、图4、图5、图10和 图11所示任一方法实施例的技术方案,其实现原理和技术效果类似,此处不 再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号