CN104598300A - 分布式业务流程定制方法及*** - Google Patents
分布式业务流程定制方法及*** Download PDFInfo
- Publication number
- CN104598300A CN104598300A CN201410817989.5A CN201410817989A CN104598300A CN 104598300 A CN104598300 A CN 104598300A CN 201410817989 A CN201410817989 A CN 201410817989A CN 104598300 A CN104598300 A CN 104598300A
- Authority
- CN
- China
- Prior art keywords
- business
- flow
- runtime server
- service
- initiation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式业务流程定制方法及***,包括:将业务完成的操作分解为多个子业务流程;根据业务需求组合多个子业务流程并设置操作的运行顺序,生成业务流程;将业务流程分发到运行服务器;运行服务器基于业务流程执行相应的业务操作。本发明的分布式业务流程定制方法及***,实现了业务流程管理,能够实现子业务流程的自由组合,可以方便的改变顺序,***新流程,并能够对执行业务的进程进行管理,以及对***资源进行监控,提高了业务运行的可靠性和稳定性,使业务流程的改变、定制十分便捷,提高了业务流程制定的灵活性和自主性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式业务流程定制方法及***。
背景技术
目前,互联网公司一般都需要部署大量的服务器,服务器上会部署各类业务、服务、配置等。业务的运行一般采用分布式***,在多个服务器上运行业务。在业务的运行中,需要对硬件资源、软件、开发人员、配置和安全等进行管理,高效管理这些资源以及服务是提升工作效率的关键。
目前已有对业务进行管理的***,但在现有的业务管理***中,资源管理平台只针对硬件资源及配置进行管理,比如,检测配置对应的资源存活情况等,使得目前的资源管理作用过于局限。***中还有很多资源需要管理,比如,在实际的业务运营中,业务的流程往往随着实际情况的变化需要进行调整,但是目前的业务流程都是生成特定的代码写在程序中的,当业务流程变更时,需要更新各个服务器上的软件,不利于业务流程进行快速调整。目前也没有对运行业务的进程进行管理的机制,不能有效地对业务的运行性能进行管理,容易造成当访问量增大时发生拥塞等异常现象的发生。
发明内容
有鉴于此,本发明要解决的一个技术问题是提供分布式业务流程定制方法,能够实现对业务流程的管理。
一种分布式业务流程定制方法,包括:将业务完成的操作分解为多个子业务流程;根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程;将所述业务流程分发到运行服务器;所述运行服务器基于所述业务流程执行相应的业务操作。
根据本发明的一个实施例,进一步的,在运行服务器上启动业务启动进程;当所述业务启动进程获取所述业务流程时,为所述业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
根据本发明的一个实施例,进一步的,所述根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程包括:根据业务需求从所述多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置所述子操作组合中子业务流程的运行顺序;基于所述子操作组合及所述运行顺序生成业务操作表,并存储在业务数据库中。
根据本发明的一个实施例,进一步的,所述将所述业务流程分发到运行服务器包括:在生成所述业务操作表后,实时地将所述业务操作表发送到所述运行服务器;所述运行服务器上运行的业务服务进程将接收到的所述业务操作表传给所述业务启动进程。
根据本发明的一个实施例,进一步的,所述将所述业务流程分发到运行服务器包括:所述运行服务器上运行的业务客户端进程以设定的时间间隔周期性地查询所述业务数据库;当获取所述业务操作表时,所述业务客户端进程将所述业务操作表传给所述业务启动进程。
根据本发明的一个实施例,进一步的,根据接收到的配置指令中的进程数量和操作指令,控制所述业务执行子进程的数量并对所述业务执行子进程进行相应的操作;其中,所述操作指令包括:重启、挂起。
根据本发明的一个实施例,进一步的,在所述运行服务器上布置SDK包,所述SDK包中包含配置文件;在所述配置文件中设置资源名与资源对象的关联关系;当接收到配置命令时,从所述配置命令中解析出资源名,基于所述资源名从所述配置配置文件中查询出对应的资源对象并调用;所述资源对象包括:数据库、消息队列、存储介质***。
根据本发明的一个实施例,进一步的,在多个所述运行服务器上运行监控进程,所述监控进程监控所述业务执行子进程的运行状况或资源对象的状态;当判断所述业务执行子进程或资源对象出现异常时,所述监控进程根据预设的策略进行操作,包括:发短信报警、启用备用资源、重启进程、自动切换。
本发明要解决的一个技术问题是提供分布式业务流程定制***,能够实现对业务流程的管理。
一种分布式业务流程定制***,包括:中心管理服务器,包括:子操作创建单元,用于将业务完成的操作分解为多个子业务流程;业务流程生成单元,用于根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程;业务流程发送单元,用于将所述业务流程分发到运行服务器;运行服务器,包括:业务执行单元,用于基于所述业务流程执行相应的业务操作。
根据本发明的一个实施例,进一步的,所述业务执行单元,包括:业务启动子模块,用于在运行服务器上启动业务启动进程;当所述业务启动进程获取所述业务流程时,为所述业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
根据本发明的一个实施例,进一步的,所述业务流程生成单元,用于根据业务需求从所述多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置所述子操作组合中子业务流程的运行顺序;基于所述子操作组合及所述运行顺序生成业务操作表,并存储在业务数据库中。
根据本发明的一个实施例,进一步的,所述业务流程发送单元,用于在生成所述业务操作表后,实时地将所述业务操作表发送到所述运行服务器;所述业务执行单元,包括:推送接收子模块,用于启动业务服务进程,所述业务服务进程将接收到的所述业务操作表传给所述业务启动进程。
根据本发明的一个实施例,进一步的,所述业务执行单元,包括:同步接收子模块,用于启动业务客户端进程,所述业务客户端进程以设定的时间间隔周期性地查询所述业务数据库;当获取所述业务操作表时,所述业务客户端进程将所述业务操作表传给所述业务启动进程。
根据本发明的一个实施例,进一步的,所述业务启动子模块,用于根据接收到的配置指令中的进程数量和操作指令,控制所述业务执行子进程的数量并对所述业务执行子进程进行相应的操作;其中,所述操作指令包括:重启、挂起。
根据本发明的一个实施例,进一步的,在所述运行服务器上布置SDK包,所述SDK包中包含配置文件;在所述配置文件中设置资源名与资源对象的关联关系;所述业务执行单元,包括:配置控制子模块,用于当接收到配置命令时,从所述配置命令中解析出资源名,基于所述资源名从所述配置配置文件中查询出对应的资源对象并调用;其中,所述资源对象包括:数据库、消息队列、存储***。
根据本发明的一个实施例,进一步的,所述业务执行单元,包括:监控单元,在多个所述运行服务器上运行监控进程,所述监控进程监控所述业务执行子进程的运行状况或资源对象的状态;当判断所述业务执行子进程或资源对象出现异常时,所述监控进程根据预设的策略进行操作,包括:发短信报警、启用备用资源、重启进程、自动切换。
本发明的分布式业务流程定制方法及***,实现了业务流程管理,能够实现子业务流程的自由组合,并且可以方便的改变顺序,***新流程;并能够对执行业务的进程进行管理,以及对***资源进行监控。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明的分布式业务流程定制方法的一个实施例的流程图;
图2为根据本发明的分布式业务流程定制***的一个实施例的结构框图。
具体实施方式
下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为根据本发明的分布式业务流程定制方法的一个实施例的流程图,如图1所示:
步骤101,将业务完成的操作分解为多个子业务流程。
步骤102,根据业务需求组合多个子业务流程并设置操作的运行顺序,生成业务流程。
步骤103,将业务流程分发到运行服务器。
步骤104,运行服务器基于业务流程执行相应的业务操作。
本发明的分布式业务流程定制方法,实现了流程管理,业务由多个子业务流程组成,能够实现子业务流程的自由组合,并且可以方便的改变顺序,***新流程。
目前,互联网公司提供了多种业务,如比较熟悉的Web蜘蛛(爬虫)业务,Web蜘蛛通常是通过网络请求,访问互联网上的各个站点,来获取一些有价值的信息。当需要访问的站点或网页数量较多时,单个机器或单个机房中蜘蛛的获取信息的能力将非常有限,需要使用到多个机器或多个机房的蜘蛛业务,来对大量的站点及网页进行抓取。
例如,在白名单的业务(例如安全网址白名单、安全文件白名单等等)中,蜘蛛进程由于IP问题,需要部署在多个IP环境下,蜘蛛进程基本就分布于各个机房。而对这些蜘蛛的任务分配程序却只部署在一个指定的机房中,任务分配程序需要非常频繁的将任务分配至各个机房的蜘蛛抓取进程。蜘蛛任务分配程序所在的机房是发送方机房,蜘蛛抓取程序所在的机房是接收方机房。
网络蜘蛛或Web蜘蛛业务的操作包括:任务分配、抓取网页、网页抽取、存储网页、正文抽取、页面分析等等。将网络蜘蛛业务完成的操作分解为6个子业务流程:任务分配、抓取网页、网页抽取、存储网页、正文抽取、页面分析。由于互联网需求在实时变化,所以业务需要随之变动,比如:增加子业务,改变子业务处理数据的顺序等。
根据业务的实际需求在上线时对网络蜘蛛业务进行组合,包括:任务分配、抓取网页、网页抽取、存储网页、正文抽取、页面分析6个子流程,并且设置这6个子流程操作的运行顺序:6个子流程依次运行,完成网络蜘蛛的业务流程。此设置过程,开发人员可以通过web页面完成,直观并且方便。将网络蜘蛛的业务流程分发到运行服务器,运行服务器基于网络蜘蛛的业务流程执行相应的业务操作。
原有业务流程需要增加子流程,例如,当需求发生改变时,在网络蜘蛛的业务中需要新增白名单过滤操作,即对抓取的网页先进行白名单过滤操作,则网络蜘蛛业务完成的新操作有了7个子业务流程,分别是:任务分配、抓取网页、白名单过滤、网页抽取、存储网页、正文抽取、页面分析。
可以在原有的业务流程中增加一个白名单过滤子流程,并且设置白名单过滤子流程的执行顺序:在抓取网页后、网页抽取前执行。新的网络蜘蛛的业务流程中的7个子流程为:任务分配、抓取网页、白名单过滤、网页抽取、存储网页、正文抽取、页面分析。将网络蜘蛛的新业务流程分发到运行服务器,运行服务器接收到新的网络蜘蛛的业务流程时,执行新的业务操作。
原有业务流程的顺序发生改变,例如,网络蜘蛛的业务流程中的存储网页子流程需要放在页面分析子流程后执行。重新设置这7个子流程操作的运行顺序,新的网络蜘蛛的业务流程中的7个子流程为:任务分配、抓取网页、白名单过滤、网页抽取、正文抽取、页面分析、存储网页。将网络蜘蛛的新的业务流程分发到运行服务器,运行服务器接收到新的网络蜘蛛的业务流程时,执行新的业务操作。
上述实施例中的分布式业务流程定制方法,能够将子业务流程的自由组合,并且可以方便的改变顺序、***新流程,使业务流程的改变、定制十分便捷。
在一个实施例中,在运行服务器上启动业务启动进程。当业务启动进程获取业务流程时,业务启动进程为业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
例如,在业务启动进程接收到网络蜘蛛业务流程时,为网络蜘蛛业务流程的7个子流程:任务分配、抓取网页、白名单过滤、网页抽取、正文抽取、页面分析、存储网页,分别启动业务执行进程:任务分配执行进程、抓取网页执行进程、白名单过滤执行进程、网页抽取执行进程、正文抽取执行进程、页面分析执行进程、存储网页执行进程执行进程。这7个业务执行进程的启动数量可以根据预设的参数确定,这7个业务执行进程也可以根据具体的运行需要,部署在不同的服务器以及不同的机房中的服务器中。例如,任务分配执行进程部署在发送方机房的附服务器中,抓取网页执行进程部署在接收方机房的服务器中。
进程之间的通信方式可以采用:管道、信号量、消息队列、共享内存等方式。下面以较常使用的消息队列为例,消息队列是由消息的链表,存放在内核中并由消息队列标识符标识,可以把消息看作一个记录,具有特定的格式以及特定的优先级。
例如,启动一个主进程,主进程根据业务流程中的子流程顺序,依次调用此7个进程,即依次调用任务分配执行进程、抓取网页执行进程、白名单过滤执行进程、网页抽取执行进程、正文抽取执行进程、页面分析执行进程、存储网页执行进程。主进程采用消息队列的方式与此7个执行进程进行通信。
例如,主进程将要处理的数据发送到消息队列。任务分配执行进程、抓取网页执行进程、白名单过滤执行进程、网页抽取执行进程、正文抽取执行进程、页面分析执行进程、存储网页执行进程分别监听消息队列,并提取自身对应的消息,并将处理结果返回消息队列中。也可以对于任务分配执行进程、抓取网页执行进程、白名单过滤执行进程、网页抽取执行进程、正文抽取执行进程、页面分析执行进程、存储网页执行进程分别建立与之一一对应的7个或更多个消息队列。
在一个实施例中,根据业务需求从多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置子操作组合中子业务流程的运行顺序。基于子操作组合及运行顺序生成业务操作表,并存储在业务数据库中。
例如,对网络蜘蛛业务流程的7个子流程:任务分配、抓取网页、白名单过滤、网页抽取、正文抽取、页面分析、存储网页分别进行编号,分别为:任务分配=1、抓取网页=2、白名单过滤=3、网页抽取=4、正文抽取=5、页面分析=6、存储网页=7。将网络蜘蛛业务流程设置为业务操作表“1-2-3-4-5-6-7”,存储在数据库中。
当运行服务器获取网络蜘蛛业务流程为“1-2-3-4-5-6-7”时,根据预先的在运行服务器上设置的配置文件中的设置,例如,设置1对应a.jar,2对应b.jar,3对应于c.jar等等。
当业务启动进程获取业务流程为“1-2-3-4-5-6-7”时,业务启动进程根据配置文件获取相应的jar包,启动任务分配执行进程、抓取网页执行进程、白名单过滤执行进程、网页抽取执行进程、正文抽取执行进程、页面分析执行进程、存储网页执行进程。
启动主进程,按照1、2、3、4、5、6、7的顺序进行依次调用任务分配执行进程、抓取网页执行进程、白名单过滤执行进程、网页抽取执行进程、正文抽取执行进程、页面分析执行进程、存储网页执行进程。
在一个实施例中,业务流程的下发可以采用:实时下发、周期性同步的方式。可在每台服务器上部署一个应用,用来接收主动推送的数据,部署另一个应用,用来被动从中心数据库获取数据。开发人员也可以定制,确定是否主动推送,如果选择主动推送,主动推送操作指令至每台运行服务器。
实时下发:可以采用主动推送的方式发送业务流程。在生成业务操作表后,实时地将业务操作表发送到运行服务器。运行服务器上运行的业务服务进程将接收到的业务操作表传给业务启动进程。
周期性同步:可以采用被动同步的方式同步最新的业务流程。运行服务器上运行的业务客户端进程以设定的时间间隔周期性地查询业务数据库。时间间隔阈值可以设置为30秒、60秒等等。当获取业务操作表时,业务客户端进程将业务操作表传给业务启动进程。
在一个实施例中,可以通过开发人员界面对进程管理。运行服务器根据接收到的配置指令中的进程数量和操作指令,控制业务执行子进程的数量并对业务执行子进程进行相应的操作。其中,操作指令包括:重启、挂起。业务需要进程完成,进程分别部署在多个服务器上,管理进程是分布式资源管理关键环节之一。
可以通过web网页配置各业务及其子流程的进程数量、重启等操作。例如,提供开发人员管理web网页,开发人员通过web网页设置抓取网页执行进程的数量为10。则在启动抓取网页执行进程时,同时启动10个抓取网页执行进程。当业务压力增大时,开发人员通过web网页将抓取网页执行进程的数量修改为20,则运行服务器再启动10个抓取网页执行进程。当开发人员认为需要进行重启时,则通过web网页下发抓取网页执行进程重启命令,则运行服务器重启抓取网页执行进程。
在一个实施例中,在运行服务器上布置SDK包,SDK包中包含配置文件。在配置文件中设置资源名与资源对象的关联关系,当接收到配置命令时,从配置命令中解析出资源名,基于资源名从配置配置文件中查询出对应的资源对象并调用。资源对象包括:数据库、消息队列、存储介质等等。
业务在执行过程中,需要使用各类基础资源,例如,数据库,消息队列,存储***等。存储***可以包括多个存储介质。基础资源都有相应的配置,一般会将这些配置写在每台机器的代码中,但在切配置时需要改代码,再重启进程,十分不便。可以通过web页面配置各类资源(db,cache,mq),每个配置均有名称,配合SDK,仅需要使用资源名称即可使用,实现了资源对开发人员的透明。
例如,在运行服务器上布置SDK包,SDK包中包含配置文件X1,在配置文件X1中设置数据库对象,包括:URL、开发人员名、密码等。X1为XML文件,在X1中设置DB1的参数:
Db1URL="jdbc:mysql://localhost:1066/test";
DB1username=“root";
DB1password="root"。
开发人员通过web页面配置数据库,将当前的数据库指向DB1。运行服务器接收到配置命令时,从配置命令中解析出资源名DB1,基于资源名DB1从配置配置文件X1中查询出对应的资源对象DB1,获取URL、开发人员名、密码,通过JDBC连接到DB1上。
在一个实施例中,服务器的资源需要不间断运行,但是难免会有死机的情况,如果基础服务的资源正好在死机的服务器上,那么势必会导致业务由于服务资源缺失而中断。在多个运行服务器上运行监控进程,监控进程监控业务执行子进程的运行状况或资源对象的状态。
当判断业务执行子进程或资源对象出现异常时,监控进程根据预设的策略进行操作,包括:发短信报警、启用备用资源、重启进程、自动切换等。
例如,当判断业务执行子进程或资源对象出现异常时,监控进程根据预设的中心管理平台地址向中心管理平台发送异常信息,中心管理平台根据异常信息处理异常,进行向开发人员发送报警短息、自动启动备份的资源、或者对进行重启、自动切换等操作。或者,由监控进程自动完成向开发人员发送报警短息、自动启动备份的资源、或者进行重启、自动切换等操作。
例如,监控进程对网络蜘蛛业务的页面分析执行进程启动监控线程,由监控线程判断页面分析执行进程是否出现异常,例如,挂起、被kill掉等,则监控线程发送报警消息,并重启此页面分析执行进程。
例如,可以采用投票机制,在多台服务器上都运行网络蜘蛛业务的监控进程,网络蜘蛛业务采用分布式部署,可以在多个机房中的服务器上运行,例如,可以部署在北京、广州、深圳机房。
在各个机房中的服务器上都运行监控进程,例如,北京、广州、深圳的机房。根据从中心管理平台获取的监控列表或中心管理平台下发的监控任务,各个机房的监控进程都对资源对象进行监控,资源对象可以是数据库、消息队列等等。当监控进程判断资源对象出现异常时,向中心管理平台发送告警消息。
中心管理平台判断对资源对象进行告警的服务器的数量,当服务器的数量超过运行监控进程的服务器总数的一半时,中心管理平台可以判断此资源对象发生异常,根据预设的规则进行处理,例如,向开发人员发送报警短息、重启发生异常的页面分析执行进程等等。
例如,在北京、广州、深圳的机房中的服务器中运行监控进程,根据中心管理平台下发的监控任务,3个机房中的服务器都监控设置在北京机房中的数据库A的状态。当北京、广州机房的服务器上的监控进程都无法ping通数据库A时,则向中心管理平台发送告警消息。
中心管理平台判断有2个机房中的服务器确认数据库A有异常,达到了监控数据库A的服务器的2/3,超过半数,则中心管理平台判断此数据库A发生异常。参与“投票”的服务器越多,结论越准确。
在一个实施例中,每个机房设置一个传输数据的client,一个用于缓存本机房待传输数据的发送缓存;同时每个机房设置一个接收数据的worker,以及用于缓存本机房接收数据的接收缓存。
当A机房的某台机器需要传输数据至B机房时,A机房的client A将待传输的数据写至A机房的发送缓存A中,并告知目的机房B及相应的机器。目的机房B的worker B收到A机房的通知之后,将自己机房的接收缓存B的状态反馈给A机房。A机房收到B机房的反馈之后,就能根据反馈信息,决定数据发送的策略,具体为:
1、若B机房的接收缓存B的负荷低于接收缓存B的存储容量的80%,则A机房的client A会立即将数据传输给B机房;
2、若B机房的接收缓存B的负荷高于或等于接收缓存B的存储容量的80%,则A机房的client A延时将数据传输给B机房。
同时,A机房传输给B机房的数据,只有在收到B机房的确认消息之后,client A才将该条数据从发送缓存A中删除;若A机房传输给B机房的数据中,有大量数据未收到确认消息,则可能是A到B的网络发生拥塞,或者别的原因导致传输数据丢失,这个时候,client A会将A机房传输给B机房的数据延时发送或者降低发送频率。
如图2所示,本发明提供一种分布式业务流程定制***,包括:中心管理服务器22、web管理平台21、数据库、运行服务器25、26、27。
子操作创建单元221将业务完成的操作分解为多个子业务流程。业务流程生成单元222根据业务需求组合多个子业务流程并设置操作的运行顺序,生成业务流程。业务流程发送单元223将业务流程分发到运行服务器。业务执行单元251基于业务流程执行相应的业务操作。
业务启动子模块253在运行服务器上启动业务启动进程。当业务启动进程获取业务流程时,为业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
业务流程生成单元222根据业务需求从多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置子操作组合中子业务流程的运行顺序。基于子操作组合及运行顺序生成业务操作表,并存储在业务数据库中。
业务流程发送单元223在生成业务操作表后,实时地将业务操作表发送到运行服务器。推送接收子模块254启动业务服务进程,业务服务进程将接收到的业务操作表传给业务启动进程。
同步接收子模块255启动业务客户端进程,业务客户端进程以设定的时间间隔周期性地查询业务数据库。当获取业务操作表时,业务客户端进程将业务操作表传给业务启动进程。
业务启动子模块253根据接收到的配置指令中的进程数量和操作指令,控制业务执行子进程的数量并对业务执行子进程进行相应的操作。操作指令包括:重启、挂起等。
在运行服务器上布置SDK包,SDK包中包含配置文件;在配置文件中设置资源名与资源对象的关联关系。当接收到配置命令时,配置控制子模块256从配置命令中解析出资源名,基于资源名从配置配置文件中查询出对应的资源对象并调用。资源对象包括:数据库、消息队列、存储介质等。
监控单元252在多个运行服务器上启动监控进程,监控进程监控业务执行子进程的运行状况或资源对象的状态。当判断业务执行子进程或资源对象出现异常时,监控进程根据预设的策略进行操作,包括:发短信报警、启用备用资源、重启进程、自动切换。
上述实施例提供的分布式业务流程定制方法及***,实现了业务流程管理,能够实现子业务流程的自由组合,并且可以方便的改变顺序,***新流程。使业务流程的改变、定制十分便捷;并能够对执行业务的进程进行管理,以及对***资源进行监控,提高了业务运行的可靠性和稳定性,并且提高了业务流程制定的灵活性和自主性。
本发明的实施例公开了:
A1、一种分布式业务流程定制方法,其特征在于,包括:
将业务完成的操作分解为多个子业务流程;
根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程;
将所述业务流程分发到运行服务器;
所述运行服务器基于所述业务流程执行相应的业务操作。
A2、如权利要求A1所述的方法,其特征在于,所述运行服务器基于所述业务流程执行相应的业务操作包括:
在运行服务器上启动业务启动进程;
当所述业务启动进程获取所述业务流程时,为所述业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
A3、如权利要求A2所述的方法,其特征在于,所述根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程包括:
根据业务需求从所述多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置所述子操作组合中子业务流程的运行顺序;
基于所述子操作组合及所述运行顺序生成业务操作表,并存储在业务数据库中。
A4、如权利要求A3所述的方法,其特征在于,所述将所述业务流程分发到运行服务器包括:
在生成所述业务操作表后,实时地将所述业务操作表发送到所述运行服务器;
所述运行服务器上运行的业务服务进程将接收到的所述业务操作表传给所述业务启动进程。
A5、如权利要求A3所述的方法,其特征在于,所述将所述业务流程分发到运行服务器包括:
所述运行服务器上运行的业务客户端进程以设定的时间间隔周期性地查询所述业务数据库;
当获取所述业务操作表时,所述业务客户端进程将所述业务操作表传给所述业务启动进程。
A6、如权利要求A2所述方法,其特征在于:
根据接收到的配置指令中的进程数量和操作指令,控制所述业务执行子进程的数量并对所述业务执行子进程进行相应的操作;
其中,所述操作指令包括:重启、挂起。
A7、如权利要求A6所述方法,其特征在于:
在所述运行服务器上布置SDK包,所述SDK包中包含配置文件;
在所述配置文件中设置资源名与资源对象的关联关系;
当接收到配置命令时,从所述配置命令中解析出资源名,基于所述资源名从所述配置配置文件中查询出对应的资源对象并调用;
所述资源对象包括:数据库、消息队列、存储***。
A8、如权利要求A7所述的方法,其特征在于:
在多个所述运行服务器上运行监控进程,所述监控进程监控所述业务执行子进程的运行状况或资源对象的状态;
当判断所述业务执行子进程或资源对象出现异常时,所述监控进程根据预设的策略进行操作,包括:发短信报警、启用备用资源、重启进程、自动切换。
B9、一种分布式业务流程定制***,其特征在于,包括:
中心管理服务器,包括:
子操作创建单元,用于将业务完成的操作分解为多个子业务流程;
业务流程生成单元,用于根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程;
业务流程发送单元,用于将所述业务流程分发到运行服务器;
运行服务器,包括:
业务执行单元,用于基于所述业务流程执行相应的业务操作。
B10、如权利要求B9所述的***,其特征在于:
所述业务执行单元,包括:
业务启动子模块,用于在运行服务器上启动业务启动进程;当所述业务启动进程获取所述业务流程时,为所述业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
B11、如权利要求B10所述的***,其特征在于:
所述业务流程生成单元,用于根据业务需求从所述多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置所述子操作组合中子业务流程的运行顺序;基于所述子操作组合及所述运行顺序生成业务操作表,并存储在业务数据库中。
B12、如权利要求B11所述的***,其特征在于:
所述业务流程发送单元,用于在生成所述业务操作表后,实时地将所述业务操作表发送到所述运行服务器;
所述业务执行单元,包括:
推送接收子模块,用于启动业务服务进程,所述业务服务进程将接收到的所述业务操作表传给所述业务启动进程。
B13、如权利要求B12所述的***,其特征在于:
所述业务执行单元,包括:
同步接收子模块,用于启动业务客户端进程,所述业务客户端进程以设定的时间间隔周期性地查询所述业务数据库;当获取所述业务操作表时,所述业务客户端进程将所述业务操作表传给所述业务启动进程。
B14、如权利要求B13所述***,其特征在于:
所述业务启动子模块,用于根据接收到的配置指令中的进程数量和操作指令,控制所述业务执行子进程的数量并对所述业务执行子进程进行相应的操作;其中,所述操作指令包括:重启、挂起。
B15、如权利要求B14所述***,其特征在于:
在所述运行服务器上布置SDK包,所述SDK包中包含配置文件;在所述配置文件中设置资源名与资源对象的关联关系;
所述业务执行单元,包括:
配置控制子模块,用于当接收到配置命令时,从所述配置命令中解析出资源名,基于所述资源名从所述配置配置文件中查询出对应的资源对象并调用;
其中,所述资源对象包括:数据库、消息队列、存储***。
B16、如权利要求B15所述的***,其特征在于:
所述运行服务器,包括:
监控单元,在多个所述运行服务器上运行监控进程,所述监控进程监控所述业务执行子进程的运行状况或资源对象的状态;
其中,当判断所述业务执行子进程或资源对象出现异常时,所述监控进程根据预设的策略进行操作,包括:发短信报警、启用备用资源、重启进程、自动切换。
可能以许多方式来实现本发明的方法和***。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和***。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (10)
1.一种分布式业务流程定制方法,其特征在于,包括:
将业务完成的操作分解为多个子业务流程;
根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程;
将所述业务流程分发到运行服务器;
所述运行服务器基于所述业务流程执行相应的业务操作。
2.如权利要求1所述的方法,其特征在于,所述运行服务器基于所述业务流程执行相应的业务操作包括:
在运行服务器上启动业务启动进程;
当所述业务启动进程获取所述业务流程时,为所述业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
3.如权利要求2所述的方法,其特征在于,所述根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程包括:
根据业务需求从所述多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置所述子操作组合中子业务流程的运行顺序;
基于所述子操作组合及所述运行顺序生成业务操作表,并存储在业务数据库中。
4.如权利要求3所述的方法,其特征在于,所述将所述业务流程分发到运行服务器包括:
在生成所述业务操作表后,实时地将所述业务操作表发送到所述运行服务器;
所述运行服务器上运行的业务服务进程将接收到的所述业务操作表传给所述业务启动进程。
5.如权利要求3所述的方法,其特征在于,所述将所述业务流程分发到运行服务器包括:
所述运行服务器上运行的业务客户端进程以设定的时间间隔周期性地查询所述业务数据库;
当获取所述业务操作表时,所述业务客户端进程将所述业务操作表传给所述业务启动进程。
6.如权利要求5所述方法,其特征在于:
在所述运行服务器上布置SDK包,所述SDK包中包含配置文件;
在所述配置文件中设置资源名与资源对象的关联关系;
当接收到配置命令时,从所述配置命令中解析出资源名,基于所述资源名从所述配置配置文件中查询出对应的资源对象并调用;
所述资源对象包括:数据库、消息队列、存储***。
7.一种分布式业务流程定制***,其特征在于,包括:
中心管理服务器,包括:
子操作创建单元,用于将业务完成的操作分解为多个子业务流程;
业务流程生成单元,用于根据业务需求组合所述多个子业务流程并设置操作的运行顺序,生成业务流程;
业务流程发送单元,用于将所述业务流程分发到运行服务器;
运行服务器,包括:
业务执行单元,用于基于所述业务流程执行相应的业务操作。
8.如权利要求7所述的***,其特征在于:
所述业务执行单元,包括:
业务启动子模块,用于在运行服务器上启动业务启动进程;当所述业务启动进程获取所述业务流程时,为所述业务流程中的各个子业务流程启动相应的业务执行子进程,完成相应的子业务流程。
9.如权利要求8所述的***,其特征在于:
所述业务流程生成单元,用于根据业务需求从所述多个子业务流程中选取一个或多个子业务流程形成子操作组合,并设置所述子操作组合中子业务流程的运行顺序;基于所述子操作组合及所述运行顺序生成业务操作表,并存储在业务数据库中。
10.如权利要求9所述的***,其特征在于:
所述业务流程发送单元,用于在生成所述业务操作表后,实时地将所述业务操作表发送到所述运行服务器;
所述业务执行单元,包括:
推送接收子模块,用于启动业务服务进程,所述业务服务进程将接收到的所述业务操作表传给所述业务启动进程;
同步接收子模块,用于启动业务客户端进程,所述业务客户端进程以设定的时间间隔周期性地查询所述业务数据库;当获取所述业务操作表时,所述业务客户端进程将所述业务操作表传给所述业务启动进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410817989.5A CN104598300A (zh) | 2014-12-24 | 2014-12-24 | 分布式业务流程定制方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410817989.5A CN104598300A (zh) | 2014-12-24 | 2014-12-24 | 分布式业务流程定制方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104598300A true CN104598300A (zh) | 2015-05-06 |
Family
ID=53124117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410817989.5A Pending CN104598300A (zh) | 2014-12-24 | 2014-12-24 | 分布式业务流程定制方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104598300A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843723A (zh) * | 2016-02-22 | 2016-08-10 | 乐视体育文化产业发展(北京)有限公司 | 网页质量监控方法、装置及*** |
CN106779363A (zh) * | 2016-12-02 | 2017-05-31 | 浪潮通信信息***有限公司 | 一种业务处理方法及装置 |
CN106790182A (zh) * | 2016-12-30 | 2017-05-31 | 广州华多网络科技有限公司 | 分布式业务服务***及集中服务控制方法与其相应的装置 |
CN107277005A (zh) * | 2017-06-13 | 2017-10-20 | 深圳市永达电子信息股份有限公司 | 一种分布式的业务流程检测方法 |
CN107622060A (zh) * | 2016-07-13 | 2018-01-23 | 北京京东尚科信息技术有限公司 | 订单跟踪分析方法及装置 |
CN107924502A (zh) * | 2016-03-01 | 2018-04-17 | 华为技术有限公司 | 多阶段高效能业务流程管理引擎 |
CN107944662A (zh) * | 2017-10-30 | 2018-04-20 | 链家网(北京)科技有限公司 | 一种业务流程控制处理方法及装置 |
CN108958832A (zh) * | 2018-06-12 | 2018-12-07 | 北京蜂盒科技有限公司 | 定制业务流程的方法、装置和存储介质以及电子设备 |
CN109447411A (zh) * | 2018-09-26 | 2019-03-08 | 平安普惠企业管理有限公司 | 业务流程控制方法、装置、计算机设备和存储介质 |
CN109583676A (zh) * | 2018-09-11 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 分布式***中采集业务流程数据的方法、***及其服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321096A (zh) * | 2008-07-11 | 2008-12-10 | 北京立通无限科技有限公司 | 基于共享socket的通信处理方法及装置 |
CN101566943A (zh) * | 2008-04-24 | 2009-10-28 | 深圳市同洲电子股份有限公司 | 一种控制终端软件功能的方法、终端和*** |
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署***及部署方法 |
CN102999317A (zh) * | 2012-12-30 | 2013-03-27 | 北京讯鸟软件有限公司 | 面向多租户的弹性多进程服务处理方法 |
CN103092645A (zh) * | 2012-12-31 | 2013-05-08 | 武汉中地数码科技有限公司 | 一种基于微内核技术的地理空间信息应用***及其实现方法 |
CN103843029A (zh) * | 2011-09-30 | 2014-06-04 | 瓦里安医疗***公司 | 用于实施医疗工作流程的***和方法 |
-
2014
- 2014-12-24 CN CN201410817989.5A patent/CN104598300A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101566943A (zh) * | 2008-04-24 | 2009-10-28 | 深圳市同洲电子股份有限公司 | 一种控制终端软件功能的方法、终端和*** |
CN101321096A (zh) * | 2008-07-11 | 2008-12-10 | 北京立通无限科技有限公司 | 基于共享socket的通信处理方法及装置 |
CN102404381A (zh) * | 2011-09-02 | 2012-04-04 | 西安交通大学 | 一种云计算环境下基于工作流的软件部署***及部署方法 |
CN103843029A (zh) * | 2011-09-30 | 2014-06-04 | 瓦里安医疗***公司 | 用于实施医疗工作流程的***和方法 |
CN102999317A (zh) * | 2012-12-30 | 2013-03-27 | 北京讯鸟软件有限公司 | 面向多租户的弹性多进程服务处理方法 |
CN103092645A (zh) * | 2012-12-31 | 2013-05-08 | 武汉中地数码科技有限公司 | 一种基于微内核技术的地理空间信息应用***及其实现方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843723A (zh) * | 2016-02-22 | 2016-08-10 | 乐视体育文化产业发展(北京)有限公司 | 网页质量监控方法、装置及*** |
CN107924502A (zh) * | 2016-03-01 | 2018-04-17 | 华为技术有限公司 | 多阶段高效能业务流程管理引擎 |
CN107622060A (zh) * | 2016-07-13 | 2018-01-23 | 北京京东尚科信息技术有限公司 | 订单跟踪分析方法及装置 |
CN106779363A (zh) * | 2016-12-02 | 2017-05-31 | 浪潮通信信息***有限公司 | 一种业务处理方法及装置 |
CN106790182A (zh) * | 2016-12-30 | 2017-05-31 | 广州华多网络科技有限公司 | 分布式业务服务***及集中服务控制方法与其相应的装置 |
CN106790182B (zh) * | 2016-12-30 | 2020-10-16 | 广州华多网络科技有限公司 | 分布式业务服务***及集中服务控制方法与其相应的装置 |
CN107277005A (zh) * | 2017-06-13 | 2017-10-20 | 深圳市永达电子信息股份有限公司 | 一种分布式的业务流程检测方法 |
CN107944662A (zh) * | 2017-10-30 | 2018-04-20 | 链家网(北京)科技有限公司 | 一种业务流程控制处理方法及装置 |
CN107944662B (zh) * | 2017-10-30 | 2020-09-11 | 贝壳找房(北京)科技有限公司 | 一种业务流程控制处理方法及装置 |
CN108958832A (zh) * | 2018-06-12 | 2018-12-07 | 北京蜂盒科技有限公司 | 定制业务流程的方法、装置和存储介质以及电子设备 |
CN109583676A (zh) * | 2018-09-11 | 2019-04-05 | 阿里巴巴集团控股有限公司 | 分布式***中采集业务流程数据的方法、***及其服务器 |
CN109447411A (zh) * | 2018-09-26 | 2019-03-08 | 平安普惠企业管理有限公司 | 业务流程控制方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104598300A (zh) | 分布式业务流程定制方法及*** | |
JP7463544B2 (ja) | ブロックチェーンメッセージ処理方法、装置、コンピュータデバイスおよびコンピュータプログラム | |
US9560109B2 (en) | Message management facility for an industrial process control environment | |
EP3386150B1 (en) | Terminal failure processing method, device and system | |
CN105653425B (zh) | 基于复杂事件处理引擎的监控*** | |
WO2022179140A1 (zh) | 一种数据处理方法及*** | |
CN104536809A (zh) | 一种基于客户端、服务器***的分布式定时任务调度*** | |
CN110830283B (zh) | 故障检测方法、装置、设备和*** | |
CN101388903B (zh) | 移动企业it标准化管理平台 | |
CN104965727B (zh) | 一种重启服务器的方法及装置 | |
JPS61500751A (ja) | 多重プロセシングシステムのプログラムプロセスを停止するための方法 | |
CN103138985B (zh) | 一种支撑网业务主机进程控制方法和*** | |
CN103107921A (zh) | 监控方法和*** | |
CN107729213B (zh) | 一种后台任务监控方法及装置 | |
CN110795264A (zh) | 监控管理方法及***、智能管理终端 | |
JP2007199956A (ja) | ロギング情報管理方法およびロギング情報管理システム | |
CN110377324B (zh) | 一种信息化平台监控***和构建方法 | |
CN113010379B (zh) | 电子设备监控*** | |
JP2009026221A (ja) | ビジネスプロセス運用管理システム、方法、プロセス運用管理装置およびそのプログラム | |
JPWO2008149455A1 (ja) | マネジャ、エージェント及びシステム並びに送信制御方法 | |
CN104486149A (zh) | 一种用于地面测试的有限状态机方法 | |
CN104618461A (zh) | 一种基于动码云手机的服务器监控方法 | |
US20170223136A1 (en) | Any Web Page Reporting and Capture | |
WO2020185514A1 (en) | Usecase specification and runtime execution to serve on-demand queries and dynamically scale resources | |
CN113946362B (zh) | 消费数据处理方法及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150506 |
|
RJ01 | Rejection of invention patent application after publication |