CN100341270C - 基于消息的分布式平台的客户端反映任务进度的方法 - Google Patents

基于消息的分布式平台的客户端反映任务进度的方法 Download PDF

Info

Publication number
CN100341270C
CN100341270C CNB2003101236259A CN200310123625A CN100341270C CN 100341270 C CN100341270 C CN 100341270C CN B2003101236259 A CNB2003101236259 A CN B2003101236259A CN 200310123625 A CN200310123625 A CN 200310123625A CN 100341270 C CN100341270 C CN 100341270C
Authority
CN
China
Prior art keywords
message
client
progress
server end
notice reporting
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.)
Expired - Fee Related
Application number
CNB2003101236259A
Other languages
English (en)
Other versions
CN1630235A (zh
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.)
Shanghai Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2003101236259A priority Critical patent/CN100341270C/zh
Publication of CN1630235A publication Critical patent/CN1630235A/zh
Application granted granted Critical
Publication of CN100341270C publication Critical patent/CN100341270C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于消息的分布式平台的客户端反映任务进度的方法,所述基于消息的分布式平台(MDP)利用同步消息接口和异步消息接口在客户端和服务器端之间传递消息;该方法为:客户端启动一个可显示进度的等待窗口,并通过同步消息接口发送执行操作的请求消息;MDP将所述请求消息转发给服务器端,服务器端根据所述请求消息进行相应的任务处理,并在处理过程中发送包含进度指示的通知上报消息;MDP转发所述通知上报消息,客户端通过异步消息接口接收该通知上报消息,分析其中的进度指示并显示进度。本发明能够在用户界面上精确反映任务的执行情况,从而提高系统的可用性。

Description

基于消息的分布式平台的客户端反映任务进度的方法
技术领域
本发明涉及通信系统中的消息分布式平台技术,尤其涉及该分布式平台的客户端反映服务器端进度的方法。
背景技术
在分布式综合管理应用开发平台(iMAP-MDP)中,基于消息的分布式平台(MDP)负责整个系统的消息传递。系统中其他的所有应用进程与平台建立连接,通过消息传递进行信息交互。在这种结构下,一般系统中的其他应用进程之间都不直接建立连接。在iMAP-MDP平台中,经常采用的一种客户端服务器结构是,客户端(或称前台)和服务器端(或称后台)都作为iMAP-MDP综合平台中的一个应用程序。参阅图1所示。
客户端的消息处理一般有两种:同步消息和异步消息。当客户端连接到MDP时,实际上是建立了两个与MDP的连接。同步消息处理客户端发送的同步请求,异步消息则处理客户端发送的异步请求和接收来自MDP的通知上报消息。异步消息不阻塞客户端的其他线程。
在同步请求的情况下,客户端发送一个请求消息到MDP,MDP将该消息转发给后台特定的任务进行处理,在处理过程中,客户端处于一个阻塞的等待进程,直到接收到后台返回的响应消息,客户端才继续执行下去。
在异步请求的情况下,客户端发送一个请求消息到MDP,然后继续其他的处理。当客户端异步消息处理模块接收到来自MDP的消息后,如果判断是请求消息,则发送到客户端的特定模块处理。如果判断不是请求消息,则遍历订阅了该消息的模块,每个模块根据消息内容进行上报消息的处理。
根据上述的MDP的特性,客户端如果要反映后台的进度,则客户端必须接收后台的执行情况,而这种执行情况的消息如果通过同步消息来处理,则服务器端的任务在执行过程中需不断地向客户端发送响应消息,中间部分的响应需特殊处理,最后发送的消息才是客户端真正需要的结果。这种方式可以称为分阶段响应的方式。采用这种方式有以下缺点:
(1)由于每个支持分阶段响应的服务器端都需要接口的支持,因此需要修改现有接口;
(2)客户端只能知道完成了几步,但初始情况下,不知道总的进度,因而不能真正反映服务器端的进度。
发明内容
本发明的目的在于提供一种基于消息的分布式平台的客户端反映任务进度的方法,以解决现有技术中存在客户端不能真正反映服务器端进度的问题。
为解决上述问题,本发明提供以下技术方案:
一种基于消息的分布式平台的客户端反映任务进度的方法,所述分布式平台利用同步消息接口和异步消息接口在客户端和服务器端之间传递消息;该方法包括步骤:
客户端启动一个可显示进度的等待窗口,并通过同步消息接口发送请求消息;
根据所述请求消息启动服务器端进行相应处理,并在处理过程中发送包含进度指示的通知上报消息;
所述客户端通过异步消息接口接收所述通知上报消息,分析其中的进度指示并显示进度。
其中:
通过在客户端和服务器端之间确定一个特定的消息号来反映服务器端进度的消息,客户端在启动等待窗口时订阅该特定的消息号,并在等待窗口关闭时取消订阅该特定的消息号。
当有多个客户端查询不同服务器端的进度指示消息时,服务器端在通知上报消息中指定接收者,由所述消息平台将该通知上报消息转发给该接收者,以保证一个进度指示仅发送到特定的客户端。
服务器端上报的进度指示中还包含当前登录的用户标识或客户端的唯一标识,客户端在接收到包含进度指示的通知上报消息时根据用户标识或客户端的唯一标识判断是否应为本客户端接收的通知上报消息,如果是则处理,否则丢弃。
服务器端每执行到一个进度点向客户端发送一个包含进度指示的通知上报消息,其中进度指示可为前进一步或多步。
本发明在服务器端处理过程中不断地通过通知上报消息发送进度指示,客户端通过异步消息接口接收进度指示并显示,因此本发明能够在用户界面上精确反映任务的执行情况,从而提高可用性。
附图说明
图1为分布式综合管理应用开发平台示意图;
图2为本发明的处理流程图;
图3为客户端反映服务器端进度的示意图;
图4A为现有技术中MDP处理通知上报消息的流程图;
图4B为本发明MDP处理通知上报消息的流程图。
具体实施方式
参阅图1所示,在这种体系结构中,客户端(或称“前台”)与服务器端(或称“后台”)之间不直接建立连接,而是通过MDP提供的功能(订阅、取消订阅(或称去订阅)、请求、响应)来实现消息的传递,前台可以通过同步请求和异步请求两种通讯接口与MDP通讯。如果前台发送一个同步请求,前台的消息处理模块一直处于等待响应的状态,由一个服务器端的任务进行相应任务的处理,直到处理完毕并返回响应消息,前台才继续进行工作。因此,在现有技术中,前台无法知道服务器端的运行进度,从而无法提供给用户任务的执行情况。
在前台发送同步消息后,由于服务器端返回的消息可能有两种,即在任务处理过程中,发送通知上报消息和响应消息。如果发送响应消息将导致前台获取请求结果和结束查询,而发送的通知上报消息则通过前台的异步消息接口发送到前台,因此,本发明利用这个特性来实现进度的反映。
本发明主要是通过服务器端在处理过程中,不断地发送包含进度指示的通知上报消息,前台通过异步消息接口接收进度指示,然后利用界面上的进度条提示给用户。
参阅图2所示,客户端显示服务器端进度实现过程如下:
步骤10:客户端启动一个可显示进度的等待窗口,并通过同步消息接口发送执行操作的请求消息。
在这种方案下,要求前台在执行一个长操作之前,一般先启动一个等待窗口,该窗口为可以显示进度的表示正在执行操作的有模对话框,然后发送一个请求消息,请求消息处于阻塞线程,等待窗口则处于另外一个线程,可以执行刷新和其他操作。
在启动等待窗口时,订阅一个特定的消息,该消息接收后台的进度,等到用户终止或同步查询结束时,取消订阅消息。为了实现这种方式,前后台之间要确定一个特定的消息号(如999888)专门作为反映进度的消息。在等待对话框启动时,订阅消息号999888,在等待对话框关闭时取消订阅消息号999888。
步骤20:MDP将所述请求消息转发给服务器端。
步骤30:服务器端根据请求消息进行相应的任务处理,并在处理过程中发送包含进度指示的通知上报消息。
如果该服务器处理的任务可以反映进度,则在处理该任务的开始,首先向客户端发送一个具有总长度指示的通知上报消息,服务器端在后续的处理过程中,每执行到一个进度点,则向前台发送一个通知上报消息。
步骤40:MDP转发所述通知上报消息。
MDP对通知上报消息的转发是一种广播方式,将发送给所有订阅了该消息的应用程序。
步骤50:客户端通过异步消息接口接收该通知上报消息,分析其中的进度指示并显示进度。
当客户端接收到进度消息时,如果进度指示大于0,则显示进度条,并设置总长度。如果进度指示等于0,表明无进度条;如果进度指示小于0,则进度条前进一步,如果灵活控制的话,可以用-1表示前进一步,-2表示前进两步,依次类推。
通过步骤10至50,即可在客户端显示服务端处理任务的进度,其显示效果参阅图3所示。
对于多个客户端同时在查询,则多个等待窗口同时接收到进度,由于MDP以广播方式转发包含进度指示的通知上报消息,这样可能引起不同应用程序的进度的混乱,因此还需要MDP另外支持一种消息的处理。
MDP提供的基本功能是请求、响应、通知上报。请求响应模式是将返回消息直接返回给调用者,而通知上报则是一种广播方式,将消息发送给所有订阅了该消息的应用程序。因此需要MDP提供一种功能,即是一种通知上报方式,而又有指定的接收者。在这种需求下,首先需要修改MDP的应用编程接口(API),增加一个方法,允许应用程序直接设置消息中的接收者,这样在服务端处理任务而发送此类通知上报时,可以指定接收者,接收者的获取可以利用安全模块获取客户端登录时的信息。当然还需要对MDP本身作一些修改,MDP是由一个读线程和一个写线程构成,现有技术中的读线程处理流程参阅图4A所示:
读到一个消息时,如果判断为订阅消息或取消订阅消息,则进行订阅或取消订阅处理,然后返回读消息;如果判断为响应消息,则查找请求者,如果有请求者则向接收者转发该消息,然后返回读消息,如果没有请求者则直接返回读消息;如果为通知上报消息,则查找订阅消息库,如果该消息无订阅者,则返回,如果有订阅者则向所有订阅者转发该消息。
修改接收者的原因就是让该流程进入到“没有请求者,但有接收者”的处理中,即将指定有接收者的通知上报消息作为特殊的响应消息进行处理。参阅图4B,本发明的读线程处理流程不同之处在于:
如果判断为响应消息,则查找请求者,如果找不到接收者,则根据接收者查找订阅消息库,如果有订阅且订阅者和接收者一致,则向该订阅者转发该消息,如果没有找到合适的订阅者,则丢弃该消息,然后返回读取消息。
这样,可以保证一个进度指示仅发送到特定的客户端,不会引起多个客户端进度指示的异常,这也是一种比较彻底的解决方法。该方法也可以进一步扩展到异步请求中。当然如果是异步请求,则由于界面上可以同时操作,可能会有多个进度条同时显示,这就需要一些扩展,如在进度指示中除了反映进度外,还可以附加请求的用户或模块等信息。
另外,如果系统中仅允许一个用户登录一次,则可利用该特性来比较简单地实现客户端反映后服务器端任务进度,这种方式不需要对MDP作修改。该方法为:
如果系统中仅允许一个用户登录一次,则前台在发送同步请求消息时,弹出一个对话框,订阅特定的消息;而服务器端在处理任务的过程中不停的发送进度指示,上报的进度指示包括:当前登录的用户名(或者一个前台的唯一标识)和进度(在消息的具体内容中包括用户名和进度,至于以什么形式体现,是数字还是字符串等,由具体系统的前后台约定即可)。在客户端接收到通知上报消息后,判断返回的登录用户名或唯一标识是否和当前客户端一致,如果一致,则显示进度,如果不一致,则不处理。
这种方式的缺点是如果多个客户端同时在进行请求操作,则可能接收到反映其他客户端进度的消息,这部分消息需要抛弃。由于客户端对每个通知上报消息都要进行比较处理,如果客户端非常多,会占用客户端大量的资源。因此,对于客户端不多的应用,可以采用这种方式。
通过上述方法,在现有的iMAP-MDP的结构下,能够在系统的前台提供准确的进度条,反映后台任务的执行进度,从而提高系统的可用性。

Claims (5)

1、一种基于消息的分布式平台的客户端反映任务进度的方法,所述基于消息的分布式平台利用同步消息接口和异步消息接口在客户端和服务器端之间传递消息;其特征在于该方法包括步骤:
客户端启动一个可显示进度的等待窗口,并通过同步消息接口发送执行操作的请求消息;
所述基于消息的分布式平台将所述请求消息转发给服务器端,服务器端根据所述请求消息进行相应的任务处理,并在处理过程中发送包含进度指示的通知上报消息;
所述基于消息的分布式平台转发所述通知上报消息,客户端通过异步消息接口接收该通知上报消息,分析其中的进度指示并显示进度。
2、如权利要求1所述的方法,其特征在于,在客户端和服务器端之间确定一个特定的消息号来表示反映服务器端进度的消息,客户端在启动等待窗口时订阅该特定的消息号,并在等待窗口关闭时取消订阅该特定的消息号。
3、如权利要求1所述的方法,其特征在于,当有多个客户端查询不同服务器端的进度指示消息时,服务器端在通知上报消息中指定接收者,由所述消息平台将该通知上报消息转发给该接收者,以保证一个进度指示仅发送到特定的客户端。
4、如权利要求2所述的方法,其特征在于,服务器端上报的进度指示中还包含当前登录的用户标识或客户端的唯一标识,客户端在接收到包含进度指示的通知上报消息时根据用户标识或客户端的唯一标识判断是否应为本客户端接收的通知上报消息,如果是则处理,否则丢弃。
5、如权利要求1至4任一所述的方法,其特征在于,服务器端每执行到一个进度点向客户端发送一个包含进度指示的通知上报消息,其中进度指示可为前进一步或多步。
CNB2003101236259A 2003-12-15 2003-12-15 基于消息的分布式平台的客户端反映任务进度的方法 Expired - Fee Related CN100341270C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101236259A CN100341270C (zh) 2003-12-15 2003-12-15 基于消息的分布式平台的客户端反映任务进度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101236259A CN100341270C (zh) 2003-12-15 2003-12-15 基于消息的分布式平台的客户端反映任务进度的方法

Publications (2)

Publication Number Publication Date
CN1630235A CN1630235A (zh) 2005-06-22
CN100341270C true CN100341270C (zh) 2007-10-03

Family

ID=34844829

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101236259A Expired - Fee Related CN100341270C (zh) 2003-12-15 2003-12-15 基于消息的分布式平台的客户端反映任务进度的方法

Country Status (1)

Country Link
CN (1) CN100341270C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100459773C (zh) * 2006-08-17 2009-02-04 华为技术有限公司 一种显示消息的方法及系统
CN101964739B (zh) * 2009-07-22 2014-03-26 中国移动通信集团公司 数据传送方法、装置及系统
CN101729399B (zh) * 2009-11-03 2012-06-06 中兴通讯股份有限公司 客户端接口机、服务端接口机及其消息处理方法、系统
CN102426579A (zh) * 2011-08-25 2012-04-25 中兴通讯股份有限公司 一种基于网络方式导入导出文件的方法
CN106034113A (zh) * 2015-03-12 2016-10-19 阿里巴巴集团控股有限公司 数据处理方法及装置
US20180152407A1 (en) * 2016-11-30 2018-05-31 Microsoft Technology Licensing, Llc Task delegation manager and interface
CN113435616B (zh) * 2017-08-23 2024-06-18 北京嘀嘀无限科技发展有限公司 一种出行订单信息的处理方法及装置
CN110417910B (zh) * 2019-08-07 2022-04-22 北京达佳互联信息技术有限公司 通知消息的发送方法、装置、服务器及存储介质
CN113568723A (zh) * 2021-06-11 2021-10-29 济南浪潮数据技术有限公司 一种更新前台任务进度的方法、装置、设备及可读介质
CN113315683A (zh) * 2021-06-23 2021-08-27 北京精密机电控制设备研究所 一种高效分布式设备状态管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405709A (zh) * 2001-09-18 2003-03-26 英业达股份有限公司 订单追踪服务系统及方法
US6584491B1 (en) * 1999-06-25 2003-06-24 Cisco Technology, Inc. Arrangement for monitoring a progress of a message flowing through a distributed multiprocess system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6584491B1 (en) * 1999-06-25 2003-06-24 Cisco Technology, Inc. Arrangement for monitoring a progress of a message flowing through a distributed multiprocess system
CN1405709A (zh) * 2001-09-18 2003-03-26 英业达股份有限公司 订单追踪服务系统及方法

Also Published As

Publication number Publication date
CN1630235A (zh) 2005-06-22

Similar Documents

Publication Publication Date Title
CN100341270C (zh) 基于消息的分布式平台的客户端反映任务进度的方法
JP5744717B2 (ja) ディレクトリへのアクセスのための方法及びデバイス
CN1729468A (zh) 数据同步
CN1813451A (zh) 可动作型消息传递
CN101227379B (zh) 一种实现数据同步的系统和方法
CN1219257A (zh) 在一个计算机网络中提供通信链路
CN1863050A (zh) 服务器间文件同步的方法及其系统
CN1113297C (zh) 电子邮件系统的收发两用机
CN1681248A (zh) 服务器与客户端间传送用于数据同步的数据的方法与系统
CN1649369A (zh) 智能拨号内容搜索
CN1874254A (zh) 一种基于客户端/服务器端结构的数据浏览方法
CN1407780A (zh) 在多种终端设备访问服务内容时保持过程持续性的方法和设备
CN111193789B (zh) 订阅信息推送方法、装置、计算机设备和可读存储介质
CN1976322A (zh) 一种实现多媒体即时通讯的方法、系统和控制流程
CN1852160A (zh) 一种数据慢同步的实现方法及系统
CN1885869A (zh) 一种通讯录系统及其使用方法
CN100352198C (zh) 用于处理对Web服务的请求的方法和系统
CN1933454A (zh) 一种基于java消息服务的同步消息接口实现方法
CN1617499A (zh) 处理针对多个Web服务的请求的方法、服务器及系统
CN1933619A (zh) 一种短信群发的方法及短信中心
CN114339637B (zh) 一种短信拼接方法、装置、设备及存储介质
CN1738265A (zh) 一种互联网多媒体通讯的监视系统及监视方法
CN1642167A (zh) 主节点支持从节点上不同协议类型从单元设备的方法
CN1424841A (zh) 一种在短消息网关和网页之间进行通信和数据交换的方式
CN1592337A (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
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HUAWEI TECH CO., LTD., SHANGHAI

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO., LTD.

Effective date: 20081017

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20081017

Address after: No. 615 Nanjing Road, Shanghai, Pudong New Area

Patentee after: Shanghai Huawei Technologies Co., Ltd.

Address before: Intellectual Property Department, F1-18 building, research center of Bantian HUAWEI headquarters, Longgang District, Shenzhen, Guangdong

Patentee before: Huawei Technologies Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071003

Termination date: 20171215