CN111835797A - 一种数据处理方法、装置及设备 - Google Patents

一种数据处理方法、装置及设备 Download PDF

Info

Publication number
CN111835797A
CN111835797A CN201910301309.7A CN201910301309A CN111835797A CN 111835797 A CN111835797 A CN 111835797A CN 201910301309 A CN201910301309 A CN 201910301309A CN 111835797 A CN111835797 A CN 111835797A
Authority
CN
China
Prior art keywords
application server
data request
client
sending
receiving
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
Application number
CN201910301309.7A
Other languages
English (en)
Inventor
陈健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910301309.7A priority Critical patent/CN111835797A/zh
Publication of CN111835797A publication Critical patent/CN111835797A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/133Protocols for remote procedure calls [RPC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种数据处理方法、装置及设备,该方法包括:在接收到客户端发送的数据请求后,在本地存储所述数据请求;若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;若所述工作状态为空闲状态,则将本地存储的所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;接收所述应用服务端针对所述数据请求返回的处理结果;将所述数据请求对应的处理结果发送给所述客户端。通过本申请的技术方案,可以减轻应用服务端的工作压力,提高应用服务端的处理性能。

Description

一种数据处理方法、装置及设备
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法、装置及设备。
背景技术
云技术是指在广域网或局域网内将硬件、软件、网络等资源统一起来,实现数据的计算、存储、处理和共享。例如,服务提供商可以向用户提供云计算资源(如CPU(CentralProcessing Unit,中央处理器)资源等,用于为用户提供计算服务)、云存储资源(如磁盘资源等,用于为用户提供存储服务)。
在传统方式中,为了向用户提供云计算资源和云存储资源,则可以采用RPC(Remote Procedure Call,远程过程调用)实现,RPC是一种通过网络从应用服务端请求服务,而不需要了解底层网络技术的协议。RPC采用客户端/服务端模式,请求程序就是一个客户端,而服务提供程序就是一个应用服务端。
应用服务端可以提供RPC服务,客户端根据用户需求在应用服务端执行相应命令,以调用应用服务端的相应服务。例如,客户端调用应用服务端的创建实例服务,使得应用服务端创建数据库实例,通过该数据库实例向用户提供数据库服务(即利用数据库实现数据的读写),继而向用户提供云存储资源。
但是,应用服务端在提供RPC服务时,客户端并不知道应用服务端的状态,假设应用服务端的待处理任务比较多,客户端仍然向应用服务端发送RPC请求,则会加大应用服务端的工作量,导致应用服务端的工作压力很大,应用服务端的处理性能下降,甚至是无法处理当前任务,即无法创建数据库实例。
发明内容
本申请提供一种数据处理方法,所述方法包括:
在接收到客户端发送的数据请求后,在本地存储所述数据请求;
若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
若所述工作状态为空闲状态,则将本地存储的所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收所述应用服务端针对所述数据请求返回的处理结果;
将所述数据请求对应的处理结果发送给所述客户端。
本申请提供一种数据处理装置,所述装置包括:
存储模块,用于在接收到客户端发送的数据请求后,存储所述数据请求;
确定模块,用于若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
发送模块,用于若所述工作状态为空闲状态,则将所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收模块,用于接收所述应用服务端针对所述数据请求返回的处理结果;
所述发送模块,还用于将所述数据请求对应的处理结果发送给所述客户端。
本申请提供一种控制服务端,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
在接收到客户端发送的数据请求后,在本地存储所述数据请求;
若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
若所述工作状态为空闲状态,则将本地存储的所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收所述应用服务端针对所述数据请求返回的处理结果;
将所述数据请求对应的处理结果发送给所述客户端。
基于上述技术方案,本申请实施例中,在客户端与应用服务端之间部署控制服务端,且客户端将数据请求发送给控制服务端。控制服务端在接收到数据请求后,不是直接将该数据请求发送给应用服务端,而是在本地存储该数据请求。若控制服务端接收到应用服务端发送的心跳报文,则需要确定应用服务端的工作状态,若工作状态为空闲状态(表示应用服务端比较空闲),才将数据请求发送给应用服务端,若工作状态为繁忙状态(表示应用服务端比较繁忙),则禁止将数据请求发送给应用服务端。这样,可以减轻应用服务端的工作压力,提高应用服务端的处理性能,使得应用服务端能够正常处理当前任务。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的应用场景的示意图;
图2是本申请一种实施方式中的数据处理方法的流程示意图;
图3是本申请另一种实施方式中的数据处理方法的流程示意图;
图4是本申请一种实施方式中的集群应用场景的示意图;
图5是本申请一种实施方式中的数据处理装置的结构示意图;
图6是本申请一种实施方式中的控制服务端的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种数据处理方法,可以应用于包括客户端、应用服务端和控制服务端的***,参见图1所示,为本申请实施例的应用场景示意图。
客户端可以是PC(Personal Computer,个人计算机)、笔记本电脑、移动终端等,客户端可以根据用户需求在应用服务端执行相应命令,以调用应用服务端的相应服务,从而为用户进行云资源的管理,对此客户端的类型不做限制。
应用服务端可以提供服务,使得客户端能够调用该服务。应用服务端用于进行云资源管理。例如,通过创建数据库实例,实现云存储资源的管理。
为了实现云资源的管理,在传统方式中,客户端可以向应用服务端发送数据请求,应用服务端根据数据请求进行云资源管理。但是,由于客户端并不知道应用服务端的状态,即使应用服务端的待处理任务比较多,客户端仍然向应用服务端发送数据请求,导致应用服务端的工作压力很大,处理性能下降。
针对上述发现,本申请实施例中,在客户端与应用服务端之间部署控制服务端,且客户端将数据请求发送给控制服务端。控制服务端在接收到数据请求后,不是直接将该数据请求发送给应用服务端,而是在本地存储该数据请求。若控制服务端接收到应用服务端发送的心跳报文,则需要确定应用服务端的工作状态,若工作状态为空闲状态(表示应用服务端比较空闲),才将数据请求发送给应用服务端,若工作状态为繁忙状态(表示应用服务端比较繁忙),则禁止将数据请求发送给应用服务端。这样,可以减轻应用服务端的工作压力,提高应用服务端的处理性能,使得应用服务端能够正常处理当前任务。
以下结合具体实施例,对本申请实施例中的数据处理方法进行说明。
在上述应用场景下,参见图2所示,为本申请实施例中的数据处理方法的流程示意图,该方法可以应用于控制服务端,该方法可以包括以下步骤:
步骤201,在接收到客户端发送的数据请求后,在本地存储该数据请求。
在一个例子中,客户端需要调用应用服务端的相应服务时,可以向应用服务端发送数据请求。客户端在发送数据请求时,不是将数据请求直接发送给应用服务端,而是将数据请求发送给控制服务端。控制服务端在接收到数据请求后,也不是将数据请求直接发送给应用服务端,而是在本地存储该数据请求。
步骤202,若接收到应用服务端发送的心跳报文,则确定应用服务端的工作状态。其中,该工作状态可以为空闲状态(该空闲状态用于表示应用服务端比较空闲)或者繁忙状态(该繁忙状态用于表示应用服务端比较繁忙)。
在一个例子中,应用服务端可以周期性的向控制服务端发送心跳报文,控制服务端每次接收到应用服务端发送的心跳报文,则可以确定应用服务端的工作状态,即,控制服务端基于心跳报文触发确定应用服务端的工作状态。
在一个例子中,控制服务端确定应用服务端的工作状态,包括但不限于:
方式一、控制服务端从心跳报文中获取应用服务端的等待任务数量;若该等待任务数量小于阈值,则确定应用服务端的工作状态为空闲状态;若该等待任务数量大于或者等于阈值,则确定应用服务端的工作状态为繁忙状态。
其中,所述阈值可以根据经验配置,对此阈值不做限制。当等待任务数量(即应用服务端还未处理的数据请求的数量)小于阈值时,表示应用服务端比较空闲,当等待任务数量大于或者等于阈值时,表示应用服务端比较繁忙。
例如,应用服务端在向控制服务端发送心跳报文之前,可以统计当前的等待任务数量,即还未处理的数据请求数量,然后,应用服务端在向控制服务端发送心跳报文时,心跳报文中可以携带等待任务数量。这样,控制服务端在接收到心跳报文后,就可以从心跳报文中获取应用服务端的等待任务数量。
方式二、控制服务端基于向应用服务端发送的数据请求的数量、应用服务端返回的处理结果的数量,确定应用服务端的等待任务数量。进一步的,若该等待任务数量小于阈值,则确定应用服务端的工作状态为空闲状态;若该等待任务数量大于或者等于阈值,则确定应用服务端的工作状态为繁忙状态。
其中,所述阈值可以根据经验配置,对此阈值不做限制。当等待任务数量(即应用服务端还未处理的数据请求的数量)小于阈值时,表示应用服务端比较空闲,当等待任务数量大于或者等于阈值时,表示应用服务端比较繁忙。
例如,控制服务端每次向应用服务端发送一个数据请求,表示应用服务端需要处理这个数据请求,即应用服务端的等待任务数量增加一个,因此,将应用服务端的等待任务数量加1。此外,控制服务端每次接收到应用服务端返回的一个处理结果,表示应用服务端已经完成一个数据请求的处理,即应用服务端的等待任务数量减少一个,因此,将应用服务端的等待任务数量减1。
综上所述,基于向应用服务端发送的数据请求的数量、应用服务端返回的处理结果的数量,控制服务端可以确定应用服务端的等待任务数量。例如,向应用服务端发送10个数据请求,每次发送数据请求时,将应用服务端的等待任务数量加1;接收到应用服务端返回的6个处理结果,每次接收到处理结果时,将应用服务端的等待任务数量减1;因此,应用服务端的等待任务数量为4。
步骤203,若应用服务端的工作状态为空闲状态,将本地存储的数据请求发送给应用服务端,以使应用服务端根据数据请求进行云资源管理。若应用服务端的工作状态为繁忙状态,禁止将本地存储的数据请求发送给应用服务端。
在一个例子中,控制服务端确定应用服务端的工作状态后,若应用服务端的工作状态为空闲状态,则控制服务端允许将数据请求发送给应用服务端。基于此,控制服务端查询本地是否存储有需要发送给应用服务端的数据请求,如果存在,则控制服务端将本地存储的数据请求发送给应用服务端。
在另一个例子中,控制服务端确定应用服务端的工作状态后,若应用服务端的工作状态为繁忙状态,则控制服务端禁止将数据请求发送给应用服务端。基于此,即使本地存储有需要发送给应用服务端的数据请求,控制服务端也禁止将本地存储的数据请求发送给应用服务端,即不允许发送数据请求。
作为一种可选的实现方式,控制服务端将本地存储的数据请求发送给应用服务端,可以包括但不限于:控制服务端在接收到应用服务端发送的心跳报文后,可以构造针对该心跳报文的心跳响应报文,并向应用服务端发送该心跳响应报文。其中,该心跳响应报文可以包括本地存储的所述数据请求。
在一个例子中,若控制服务端在预设时间内接收到应用服务端发送的心跳报文,则可以确定应用服务端的工作状态,并基于工作状态进行上述处理。若控制服务端在预设时间内未接收到应用服务端发送的心跳报文,则控制服务端确定应用服务端异常,并禁止将本地存储的数据请求发送给应用服务端。
其中,预设时间可以根据经验配置,对此不做限制。例如,应用服务端每隔N秒(如1秒、2秒等)向控制服务端发送一次心跳报文,预设时间可以为N秒*M(如1、2、3等)。若控制服务端在预设时间内未接收到心跳报文,则表示未接收到应用服务端连续发送的M个心跳报文,确定应用服务端异常。
步骤204,接收应用服务端针对数据请求返回的处理结果。
在一个例子中,控制服务端将数据请求发送给应用服务端后,应用服务端可以根据该数据请求进行云资源管理,对此过程不做限制。在云资源管理完成后,则应用服务端可以向控制服务端发送针对该数据请求的处理结果,这样,控制服务端可以接收到应用服务端针对该数据请求返回的处理结果。
步骤205,将该数据请求对应的处理结果发送给客户端。
在一个例子中,控制服务端在接收到客户端发送的数据请求之后,还可以为该数据请求分配任务标识,并将该任务标识发送给客户端。基于此,客户端在接收到任务标识后,可以定期发送携带该任务标识的查询请求。
控制服务端将该数据请求对应的处理结果发送给客户端,可以包括:控制服务端接收到客户端发送的携带任务标识的查询请求后,判断是否存在该任务标识对应的处理结果;如果是,则将该任务标识对应的处理结果发送给客户端。
在上述实施例中,控制服务端在本地存储数据请求时,可以存储数据请求与任务标识的对应关系。控制服务端在将数据请求发送给应用服务端时,可以将数据请求与任务标识发送给应用服务端。应用服务端在向控制服务端返回处理结果时,可以返回处理结果与任务标识,这样,控制服务端可以接收应用服务端返回的处理结果和任务标识,并在本地存储处理结果和任务标识。
进一步的,客户端周期性向控制服务端发送携带任务标识的查询请求,控制服务端每次接收到查询请求后,可以判断是否存在该任务标识对应的处理结果。如果否,则表示数据请求未处理完成,客户端仍然需要发送携带任务标识的查询请求。如果是,则表示数据请求已经处理完成,控制服务端将该任务标识对应的处理结果发送给客户端,客户端停止发送携带任务标识的查询请求。
在一个例子中,应用服务端向控制服务端发送心跳报文时,该心跳报文还可以包括云资源信息。基于此,控制服务端在接收到应用服务端发送的心跳报文之后,还可以从该心跳报文中获取该云资源信息,并根据该云资源信息对应用服务端对应的云资源进行管理,对此云资源的管理过程不做限制。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,在客户端与应用服务端之间部署控制服务端,且客户端将数据请求发送给控制服务端。控制服务端在接收到数据请求后,不是直接将该数据请求发送给应用服务端,而是在本地存储该数据请求。若控制服务端接收到应用服务端发送的心跳报文,则需要确定应用服务端的工作状态,若工作状态为空闲状态(表示应用服务端比较空闲),才将数据请求发送给应用服务端,若工作状态为繁忙状态(表示应用服务端比较繁忙),则禁止将数据请求发送给应用服务端。这样,可以减轻应用服务端的工作压力,提高应用服务端的处理性能,使得应用服务端能够正常处理当前任务。
以下结合具体的应用场景,对上述数据处理方法进行说明。本应用场景中,假设服务提供商向用户提供云资源(如云计算资源、云存储资源等),并在网络中部署客户端(client)、应用服务端(可以称为agent节点)和控制服务端(Controller Server)。应用服务端用于向用户提供服务,如采用RPC方式提供服务,例如,提供创建实例服务(CreateInstance Service)、删除实例服务(Delete Instance Service)、更新实例服务(UpdateInstance Service)等。
客户端可以根据用户需求在应用服务端执行相应命令,以调用应用服务端的服务,为用户进行云资源的管理。为了进行云资源管理,客户端可以调用应用服务端的创建实例服务,如触发应用服务端创建数据库实例,从而为用户提供云存储资源,实现云存储资源的管理。或者,客户端可以调用应用服务端的删除实例服务,如触发应用服务端删除数据库实例,从而回收用户的云存储资源,实现云存储资源的管理。或者,客户端可以调用应用服务端的更新实例服务,如触发应用服务端更新数据库实例,从而更新用户的云存储资源(如将云存储资源从10G扩容到20G,或从10G缩容到5G),实现云存储资源的管理。
当然,上述只是应用服务端提供服务的几个示例,对此不做限制。
在上述应用场景下,参见图3所示,该数据处理方法可以包括:
步骤301,客户端向控制服务端发送数据请求,如RPC请求或者RPC命令等,对此数据请求的类型不做限制。该数据请求可以是采用RPC协议实现的数据请求,该数据请求也可以是采用其它协议实现的数据请求,对此不做限制。
具体的,应用服务端用于向用户提供服务,当客户端需要调用应用服务端的相应服务时,可以向应用服务端发送数据请求。客户端在发送数据请求时,不是将数据请求直接发送给应用服务端,而是将数据请求发送给控制服务端。
在一个例子中,该数据请求可以包括但不限于如下内容:应用服务端的IP地址、服务名称、命令参数等。例如,该数据请求的一个示例可以为:
{target:200.200.200.220;servicename:Create Instance Service;commandMap:{commandKey1、commandValue1,commandKey2、CommandValue2}}。
“target:200.200.200.220”表示应用服务端的IP地址为200.200.200.220,也就是说,这个数据请求需要发送给IP地址为200.200.200.220的应用服务端。
“servicename:Create Instance Service”表示服务名称为Create InstanceService,也就是说,客户端需要调用应用服务端的Create Instance Service。
“commandMap”表示命令参数,也就是说,后续内容“commandKey1、commandValue1,commandKey2、CommandValue2}”是数据请求的命令参数。
“commandKey1”和commandKey2是键值,如commandKey1为CPU数量,commandKey2为磁盘大小。“commandValue1”是commandKey1对应的值,如3、4等,而“CommandValue2”是“commandKey2”对应的值,如100G等。
例如,commandKey1为CPU数量,与commandKey1对应的commandValue1为4,commandKey2为磁盘大小,与commandKey2对应的CommandValue2为100G,则表示为用户创建云计算资源和云存储资源时,需要包括4个CPU,且磁盘空间为100G。当然,上述只是数据请求的示例,对此命令参数不做限制。
步骤302,控制服务端在接收到该数据请求后,为该数据请求分配一个任务标识(如taskId,该任务标识具有唯一性),并将该任务标识发送给客户端。此外,控制服务端在本地存储该数据请求与该任务标识的对应关系。
在一个例子中,控制服务端在接收到客户端发送的数据请求后,不是将数据请求直接发送给应用服务端,而是在本地存储该数据请求与该任务标识的对应关系。在后续过程中,基于应用服务端(即IP地址为200.200.200.220的应用服务端)的工作状态,决策是否将这个数据请求发送给应用服务端。
在一个例子中,控制服务端可以向客户端发送针对该数据请求的数据响应,该数据响应携带该任务标识,该数据响应还可以携带任务正在执行的信息。
步骤303,客户端周期性向控制服务端发送携带该任务标识的查询请求。
具体的,客户端在接收到任务标识后,可以周期性向控制服务端发送携带该任务标识的查询请求,这个查询请求用于请求上述数据请求的处理结果。
在一个例子中,可以由客户端本身发送携带该任务标识的查询请求,并接收数据请求的处理结果。在另一个例子中,控制服务端可以向客户端提供SDK(SoftwareDevelopment Kit,软件开发工具包),由SDK向控制服务端发送携带该任务标识的查询请求,而客户端本身不再发送携带该任务标识的查询请求。SDK在得到数据请求的处理结果后,将数据请求的处理结果提供给客户端。
步骤304,控制服务端每次接收到携带任务标识的查询请求后,判断是否存在该任务标识对应的处理结果。如果否,则表示数据请求未处理完成;如果是,则表示数据请求已经处理完成,控制服务端将该任务标识对应的处理结果发送给客户端,这样,客户端可以停止发送携带该任务标识的查询请求。
以不存在任务标识对应的处理结果为例,控制服务端可以不对查询请求进行响应,即不向客户端发送查询响应。若客户端未接收到查询响应,在下一个发送周期,继续向控制服务端发送携带该任务标识的查询请求。或者,控制服务端可以对查询请求进行响应,即向客户端发送查询响应,该查询响应携带任务正在执行的信息。客户端在接收到该查询响应后,获知任务正在执行,因此,在下一个发送周期,继续向控制服务端发送携带该任务标识的查询请求。
步骤305,应用服务端周期性的向控制服务端发送心跳报文(heartBeat)。
步骤306,控制服务端在接收到心跳报文后,确定应用服务端的工作状态。
其中,该工作状态可以为空闲状态(该空闲状态用于表示应用服务端比较空闲)或者繁忙状态(该繁忙状态用于表示应用服务端比较繁忙)。
其中,控制服务端确定工作状态的方式,参见步骤202,在此不再赘述。
步骤307,若应用服务端的工作状态为空闲状态,则控制服务端可以将本地存储的数据请求发送给应用服务端。或者,若应用服务端的工作状态为繁忙状态,则控制服务端可以禁止将本地存储的数据请求发送给应用服务端。
在一个例子中,应用服务端周期性的向控制服务端发送心跳报文,控制服务端每次接收到心跳报文后,均可以确定应用服务端的工作状态,即,每个心跳报文,均触发确定应用服务端的工作状态。每次确定应用服务端的工作状态后,若应用服务端的工作状态为空闲状态,则控制服务端允许将数据请求发送给应用服务端。基于此,控制服务端查询本地是否有需要发送给应用服务端的数据请求,即数据请求的目的IP地址为该应用服务端的IP地址。如果是,则控制服务端将该数据请求和该数据请求对应的任务标识发送给应用服务端。
每次确定应用服务端的工作状态后,若应用服务端的工作状态为繁忙状态,则控制服务端可以禁止将数据请求发送给应用服务端,并等待下一次接收应用服务端发送的心跳报文,重新确定应用服务端的工作状态,以此类推。
综上所述,本申请实施例中,通过确定应用服务端的工作状态,若工作状态为空闲状态,则允许将数据请求发送给应用服务端,若工作状态为繁忙状态,则禁止将数据请求发送给应用服务端,从而对应用服务端进行限流,达到对应用服务端进行保护的目的,保护应用服务端不会由于过载而导致服务异常。
在一个例子中,若控制服务端在预设时间内未接收到应用服务端发送的心跳报文,则控制服务端确定应用服务端异常,并禁止将数据请求发送给应用服务端。显然,由于应用服务端周期性的向控制服务端发送心跳报文,因此,若控制服务端在预设时间内未接收到心跳报文,就可以确定应用服务端异常。
在一个例子中,控制服务端在接收到应用服务端发送的心跳报文后,若获知应用服务端的工作状态为空闲状态,则控制服务端可以构造针对心跳报文的心跳响应报文(如heartBeat Response),并向应用服务端发送该心跳响应报文。其中,该心跳响应报文包括数据请求和该数据请求对应的任务标识。
综上所述,本申请实施例中,由控制服务端实现反向RPC的功能,也就是说,应用服务端反向连接到控制服务端(即应用服务端周期性的向控制服务端发送心跳报文),客户端的所有数据请求均到达控制服务端,控制服务端基于应用服务端的工作状态,决策是否将数据请求路由到相应的应用服务端。
步骤308,应用服务端接收到数据请求后,根据数据请求进行云资源管理。
例如,若客户端调用应用服务端的创建实例服务,如触发应用服务端创建数据库实例,则数据请求可以携带创建数据库实例的信息,因此,应用服务端可以根据该数据请求创建数据库实例。当然,上述只是云资源管理的一个示例,对此云资源管理过程不做限制,云资源管理过程与数据请求的内容有关。
例如,若数据请求携带“servicename:Create Instance Service”,则应用服务端可以执行创建实例服务,例如,应用服务端可以创建一个数据库实例。
又例如,若数据请求携带commandKey1为CPU数量,与commandKey1对应的commandValue1为4,commandKey2为磁盘大小,与commandKey2对应的CommandValue2为100G,则应用服务端创建云计算资源和云存储资源。在创建云计算资源和云存储资源时,包括4个CPU,且磁盘空间为100G。
步骤309,应用服务端向控制服务端返回数据请求的处理结果,如任务处理完成。具体的,应用服务端根据数据请求进行云资源管理后,若成功完成云资源管理过程,则可以向控制服务端返回数据请求的处理结果和任务标识。
在一个例子中,应用服务端可以将数据请求的处理结果和任务标识添加到心跳报文中,通过心跳报文将数据请求的处理结果和任务标识发送给控制服务端。或者,单独将数据请求的处理结果和任务标识发送给控制服务端。
步骤310,控制服务端接收应用服务端返回的数据请求的处理结果和任务标识,并在本地存储数据请求的处理结果和任务标识的对应关系。
步骤311,客户端周期性向控制服务端发送携带任务标识的查询请求。
步骤312,控制服务端每次接收到携带任务标识的查询请求后,判断是否存在该任务标识对应的处理结果。如果否,则表示数据请求未处理完成;如果是,则表示数据请求已经处理完成,控制服务端将该任务标识对应的处理结果发送给客户端,这样,客户端可以停止发送携带该任务标识的查询请求。
以存在任务标识对应的处理结果为例,控制服务端可以对查询请求进行响应,即向客户端发送查询响应,该查询响应携带数据请求的处理结果(如任务处理完成)。客户端在接收到该查询响应后,获知任务处理完成,因此,在下一个发送周期,不再向控制服务端发送携带任务标识的查询请求。
在一个例子中,应用服务端周期性的向控制服务端发送心跳报文时,心跳报文可以包括应用服务端的云资源信息(即业务信息),对此云资源信息的类型,可以根据经验配置,与实际业务需求有关,对此云资源信息不做限制。
例如,云资源信息可以包括但不限于以下之一或者任意组合:CPU利用率、内存利用率、当前数据库实例使用的磁盘空间大小等,对此不做限制。
进一步的,控制服务端在接收到心跳报文后,可以从心跳报文中获取该云资源信息,并根据该云资源信息对应用服务端对应的云资源进行管理,对此云资源的管理过程不做限制。例如,若云资源信息包括应用服务端的CPU利用率,若CPU利用率大于预设第一阈值,则拒绝将数据请求发送给应用服务端。
又例如,若云资源信息包括当前数据库实例使用的磁盘空间大小,若磁盘空间大小大于预设第二阈值,则拒绝将数据请求发送给应用服务端。
在一个例子中,参见图4所示,控制服务端可以采用集群方式实现,即集群包括多个控制服务端。应用服务端可以采用集群方式实现,即集群包括多个应用服务端。在这种应用场景下,实现流程与上述实施例类似,在此不再赘述。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。而且,在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,在客户端与应用服务端之间部署控制服务端,且客户端将数据请求发送给控制服务端。控制服务端在接收到数据请求后,不是直接将该数据请求发送给应用服务端,而是在本地存储该数据请求。若控制服务端接收到应用服务端发送的心跳报文,则需要确定应用服务端的工作状态,若工作状态为空闲状态(表示应用服务端比较空闲),才将数据请求发送给应用服务端,若工作状态为繁忙状态(表示应用服务端比较繁忙),则禁止将数据请求发送给应用服务端。这样,可以减轻应用服务端的工作压力,提高应用服务端的处理性能,使得应用服务端能够正常处理当前任务。
在云业务内部调度中,可以将用户需要的云计算资源和云存储资源(即云数据库)固定分配到应用服务端,由应用服务端实现云资源的管理,这种反向RPC服务的应用场景,既为客户端指定应用服务端去执行RPC调用,无需负载均衡。应用服务端主动连接控制服务端,然后等待控制服务端向应用服务端发送数据请求。应用服务端主动定期上报信息到控制服务端,从而完成应用服务端的存活监控。在定期上报信息的心跳报文中,可以携带各种实时信息。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据处理装置,如图5所示,为所述数据处理装置的结构图,所述数据处理装置包括:存储模块51,用于在接收到客户端发送的数据请求后,存储所述数据请求;确定模块52,用于若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;发送模块53,用于若所述工作状态为空闲状态,则将所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;接收模块54,用于接收所述应用服务端针对所述数据请求返回的处理结果;所述发送模块53,还用于将所述数据请求对应的处理结果发送给所述客户端。
所述确定模块52确定所述应用服务端的工作状态时具体用于:
从所述心跳报文中获取所述应用服务端的等待任务数量;或者,
基于向所述应用服务端发送的数据请求的数量、所述应用服务端返回的处理结果的数量,确定所述应用服务端的等待任务数量;
若所述等待任务数量小于阈值,确定所述工作状态为空闲状态;若所述等待任务数量大于或者等于所述阈值,确定所述工作状态为繁忙状态。
所述发送模块53还用于:为所述数据请求分配任务标识,并将所述任务标识发送给所述客户端,以使所述客户端定期发送携带所述任务标识的查询请求;
所述发送模块53将所述数据请求对应的处理结果发送给所述客户端时具体用于:在接收到携带任务标识的查询请求后,判断是否存在所述任务标识对应的处理结果;如果是,将所述任务标识对应的处理结果发送给所述客户端。
基于与上述方法同样的申请构思,本申请实施例还提供一种控制服务端,所述控制服务端包括:处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
在接收到客户端发送的数据请求后,在本地存储所述数据请求;
若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
若所述工作状态为空闲状态,则将本地存储的所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收所述应用服务端针对所述数据请求返回的处理结果;
将所述数据请求对应的处理结果发送给所述客户端。
本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令;所述计算机指令被执行时进行如下处理:
在接收到客户端发送的数据请求后,在本地存储所述数据请求;
若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
若所述工作状态为空闲状态,则将本地存储的所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收所述应用服务端针对所述数据请求返回的处理结果;
将所述数据请求对应的处理结果发送给所述客户端。
参见图6所示,为本申请实施例中提出的控制服务端的结构图,所述控制服务端60可以包括:处理器61,网络接口62,总线63,存储器64。存储器64可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据等等。例如,存储器64可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等)。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (11)

1.一种数据处理方法,其特征在于,所述方法包括:
在接收到客户端发送的数据请求后,在本地存储所述数据请求;
若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
若所述工作状态为空闲状态,则将本地存储的所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收所述应用服务端针对所述数据请求返回的处理结果;
将所述数据请求对应的处理结果发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,
所述确定所述应用服务端的工作状态,包括:
从所述心跳报文中获取所述应用服务端的等待任务数量;或者,
基于向所述应用服务端发送的数据请求的数量、所述应用服务端返回的处理结果的数量,确定所述应用服务端的等待任务数量;
若所述等待任务数量小于阈值,确定所述工作状态为空闲状态;若所述等待任务数量大于或者等于所述阈值,确定所述工作状态为繁忙状态。
3.根据权利要求1或2所述的方法,其特征在于,
所述确定所述应用服务端的工作状态之后,所述方法还包括:
若所述工作状态为繁忙状态,禁止将所述数据请求发送给所述应用服务端。
4.根据权利要求1所述的方法,其特征在于,
所述将本地存储的所述数据请求发送给所述应用服务端,包括:
构造针对所述心跳报文的心跳响应报文,并向所述应用服务端发送所述心跳响应报文;其中,所述心跳响应报文包括所述数据请求。
5.根据权利要求1所述的方法,其特征在于,
所述接收到客户端发送的数据请求之后,所述方法还包括:
为所述数据请求分配任务标识,并将所述任务标识发送给所述客户端,以使所述客户端定期发送携带所述任务标识的查询请求;
所述将所述数据请求对应的处理结果发送给所述客户端,包括:
在接收到携带任务标识的查询请求后,判断是否存在所述任务标识对应的处理结果;如果是,将所述任务标识对应的处理结果发送给所述客户端。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若预设时间内未接收到应用服务端发送的心跳报文,则确定所述应用服务端异常,并禁止将本地存储的所述数据请求发送给所述应用服务端。
7.根据权利要求1所述的方法,其特征在于,
所述接收到应用服务端发送的心跳报文之后,所述方法还包括:
若所述心跳报文包括云资源信息,从所述心跳报文中获取所述云资源信息,并根据所述云资源信息对所述应用服务端对应的云资源进行管理。
8.一种数据处理装置,其特征在于,所述装置包括:
存储模块,用于在接收到客户端发送的数据请求后,存储所述数据请求;
确定模块,用于若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
发送模块,用于若所述工作状态为空闲状态,则将所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收模块,用于接收所述应用服务端针对所述数据请求返回的处理结果;
所述发送模块,还用于将所述数据请求对应的处理结果发送给所述客户端。
9.根据权利要求8所述的装置,其特征在于,
所述确定模块确定所述应用服务端的工作状态时具体用于:
从所述心跳报文中获取所述应用服务端的等待任务数量;或者,
基于向所述应用服务端发送的数据请求的数量、所述应用服务端返回的处理结果的数量,确定所述应用服务端的等待任务数量;
若所述等待任务数量小于阈值,确定所述工作状态为空闲状态;若所述等待任务数量大于或者等于所述阈值,确定所述工作状态为繁忙状态。
10.根据权利要求8所述的装置,其特征在于,
所述发送模块还用于:为所述数据请求分配任务标识,并将所述任务标识发送给所述客户端,以使所述客户端定期发送携带所述任务标识的查询请求;
所述发送模块将所述数据请求对应的处理结果发送给所述客户端时具体用于:在接收到携带任务标识的查询请求后,判断是否存在所述任务标识对应的处理结果;如果是,将所述任务标识对应的处理结果发送给所述客户端。
11.一种控制服务端,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
在接收到客户端发送的数据请求后,在本地存储所述数据请求;
若接收到应用服务端发送的心跳报文,则确定所述应用服务端的工作状态;
若所述工作状态为空闲状态,则将本地存储的所述数据请求发送给所述应用服务端,以使所述应用服务端根据所述数据请求进行云资源管理;
接收所述应用服务端针对所述数据请求返回的处理结果;
将所述数据请求对应的处理结果发送给所述客户端。
CN201910301309.7A 2019-04-15 2019-04-15 一种数据处理方法、装置及设备 Pending CN111835797A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910301309.7A CN111835797A (zh) 2019-04-15 2019-04-15 一种数据处理方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910301309.7A CN111835797A (zh) 2019-04-15 2019-04-15 一种数据处理方法、装置及设备

Publications (1)

Publication Number Publication Date
CN111835797A true CN111835797A (zh) 2020-10-27

Family

ID=72914218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910301309.7A Pending CN111835797A (zh) 2019-04-15 2019-04-15 一种数据处理方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111835797A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667513A (zh) * 2020-12-31 2021-04-16 长沙市到家悠享网络科技有限公司 测试方法、装置、测试设备及存储介质
CN114143569A (zh) * 2021-11-18 2022-03-04 聚好看科技股份有限公司 一种网页录制和直播方法及***
CN114143315A (zh) * 2021-11-30 2022-03-04 阿里巴巴(中国)有限公司 边缘云***、主机访问方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554049A (zh) * 2015-08-14 2016-05-04 广州爱九游信息技术有限公司 分布式业务量控制方法和装置
CN109561159A (zh) * 2018-12-28 2019-04-02 厦门中控生物识别信息技术有限公司 一种基于Websocket长连接的数据处理方法及***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105554049A (zh) * 2015-08-14 2016-05-04 广州爱九游信息技术有限公司 分布式业务量控制方法和装置
CN109561159A (zh) * 2018-12-28 2019-04-02 厦门中控生物识别信息技术有限公司 一种基于Websocket长连接的数据处理方法及***

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112667513A (zh) * 2020-12-31 2021-04-16 长沙市到家悠享网络科技有限公司 测试方法、装置、测试设备及存储介质
CN114143569A (zh) * 2021-11-18 2022-03-04 聚好看科技股份有限公司 一种网页录制和直播方法及***
CN114143569B (zh) * 2021-11-18 2024-02-27 聚好看科技股份有限公司 一种网页录制和直播方法及***
CN114143315A (zh) * 2021-11-30 2022-03-04 阿里巴巴(中国)有限公司 边缘云***、主机访问方法及设备

Similar Documents

Publication Publication Date Title
CN110612705B (zh) 一种无服务器架构下业务部署的方法和函数管理平台
CN108737270B (zh) 一种服务器集群的资源管理方法和装置
CN115328663B (zh) 基于PaaS平台进行资源调度的方法、装置、设备和存储介质
CN108449410A (zh) 一种云平台中消息管理方法、***及相关装置
CN106371889B (zh) 一种调度镜像的高性能集群***实现方法及装置
CN111835797A (zh) 一种数据处理方法、装置及设备
CN107623731B (zh) 一种任务调度方法、客户端、服务集群及***
CN114691567A (zh) 基于微服务的多云接口适配方法、***及存储介质
CN113127192A (zh) 一种多个服务共享同一个gpu的方法、***、设备及介质
CN114615340B (zh) 一种请求处理方法、装置、计算机设备和存储装置
CN111200606A (zh) 深度学习模型任务处理方法、***、服务器及存储介质
CN112291298A (zh) 异构***的数据传输方法、装置、计算机设备和存储介质
US8458702B1 (en) Method for implementing user space up-calls on java virtual machine before/after garbage collection
CN106533961B (zh) 一种流量控制方法及装置
CN112328362A (zh) 一种基于容器技术实现函数计算服务的方法
WO2022257247A1 (zh) 数据处理方法、装置及计算机可读存储介质
CN112351077B (zh) 一种应用服务运行方法、***、装置及存储介质
CN112231108A (zh) 任务处理方法、装置、计算机可读存储介质及服务器
CN112433863A (zh) 微服务调用方法、装置、终端设备以及存储介质
CN111459681B (zh) 一种基于微服务负载的动态弹性伸缩方法
US20150242177A1 (en) Image forming system, relay server, communication controlling method and non-transitory computer readable recording medium
US10348814B1 (en) Efficient storage reclamation for system components managing storage
CN110995801A (zh) 一种服务调用的方法及装置
CN111163140A (zh) 资源获取和分配的方法、装置和计算机可读存储介质
CN109257396A (zh) 一种分布式锁调度方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20210906

Address after: Room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211119

Address after: No.12 Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Applicant after: Aliyun Computing Co.,Ltd.

Address before: 310052 room 508, 5th floor, building 4, No. 699 Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant before: Alibaba (China) Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20201027

RJ01 Rejection of invention patent application after publication