CN103984734A - 一种面向高性能计算的云服务消息传递方法 - Google Patents
一种面向高性能计算的云服务消息传递方法 Download PDFInfo
- Publication number
- CN103984734A CN103984734A CN201410213904.2A CN201410213904A CN103984734A CN 103984734 A CN103984734 A CN 103984734A CN 201410213904 A CN201410213904 A CN 201410213904A CN 103984734 A CN103984734 A CN 103984734A
- Authority
- CN
- China
- Prior art keywords
- message
- session
- job
- end system
- session identification
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种面向高性能计算的云服务消息传递方法,步骤:定义消息模板;消息产生:根据消息模板,把消息内容和相关资源打包或编号,生成消息对象实例;消息入列:从云服务平台中的消息生产方把消息对象实例装入指定消息服务***中的指定消息队列;消息取回:消息消费方按照策略从指定的消息队列中取走消息;消息解析:按照统一遵循的消息模板,从消息实例中把包含的字段值提取,并为消息消费方工作流程中使用的变量赋值,交付进一步流程使用;策略映射:按照既定策略,根据消息类型和会话作业状态,选择进一步工作流程。本发明提高***部署的灵活性和鲁棒性,为面向高性能计算的云服务平台体系结构提供参考实现。
Description
技术领域
本发明公布了一种面向高性能计算的云服务消息传递方法。针对提供高性能计算服务的云平台体系,公布了一种满足高性能计算需要的云消息格式,以及该消息在高性能云平台的前端***和后端***之间的传递方法,属于面向高性能计算的新型云服务平台体系结构设计领域。
背景技术
高性能计算(High Performance Computing,简称HPC)在现代科学研究、工业生产中发挥着越来越重要的作用。HPC利用高性能设备,通过多核、众核、集群、网格等多种并行计算的途径,获得超高的计算速度,完成超大规模的计算任务。
高性能计算方面的编程难度大,一般企业用户不易掌握,且高性能计算资源昂贵,自备设备不经济。通过云服务平台向企业用户提供高性能计算编程环境,降低企业程序员的高性能编程难度,能助企业(计算)程序员提高编程开发效率。该类云服务平台的体系结构被分为三部分:用户编程环境所在的前端***,高性能程序执行环境所在的后端***,及两部分***之间信息通信的消息传递***等。其中消息传递***中,高性能云消息的格式定义和传递机制是实现该平台的重点技术问题。
在云平台等分布式***中实施消息机制能大大降低平台前/后端***之间的耦合性,提高***部署的灵活性。云消息机制的设计需要考虑如下因素:一是消息模板格式定义,主要描述分布式云平台中各子***之间需要传递的信息内容,既要简洁,又需要能完备表达高性能程序设计运行的需要;二是消息的发/收方法:消息需要在各子***之间传递,承载子***之间交流的信息。一般地,借助消息队列管理服务,可降低前后端***之间的耦合性,提高消息传递的稳定性和***部署的灵活性(***的可部署能力)。面向高性能计算的云消息格式定义和传递方法将对多种云服务平台和分布式***的设计实施有参考价值。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种面向高性能计算的云服务消息传递方法,建立高性能计算云服务平台中各子***之间的信息传递机制,松绑前后端***之间的高耦合限制,提高***部署的灵活性和鲁棒性,为面向高性能计算的云服务平台体系结构提供参考实现。
本发明技术解决方案:一种面向高性能计算的云服务消息传递方法,其特征在于包括如下步骤:
(1)消息模板设计:
所述消息模板为3个部分:消息头、消息体和消息尾;其中:
所述消息头,储存消息发收双方的会话信息,所述消息头包含的字段有:消息ID、发送方、接收方、消息类型、发送序列号、发送时间、版本号、优先级、消息体长度;所述消息类型字段中均包括会话标识ID、消息正文两个基本字段;
所述消息体,储存消息承载的信息内容,所述消息体包含的字段有:消息内容和消息扩展;
所述消息尾,储存消息的正确性校验数据,所述消息尾包含的字段有:消息摘要算法、摘要值、校验选项;
所述消息头、消息体、消息尾为固定格式,即分别包含设定的各字段名称,通过消息中字段不同的赋值而赋予不同的语义;
(2)消息传递步骤:包括消息产生、消息入列、消息取回、消息解析和策略映射;
所述消息产生:根据消息模板,把消息内容和相关资源打包或编号,生成消息实例,为消息中各字段赋值;所述相关资源是指程序运行相关资源,包括动态链接库、数据文件及作业启动文件;
所述消息入列:消息生产方将消息实例推送到消息服务***中指定的消息队列;
所述消息取回:消息消费方从消息服务***中指定的消息队列取出消息实例,存于本地内存;
所述消息解析:消息消费方收到消息实例后,将消息实例中的字段数据解析出来,赋予本地变量,即将消息分解成变量;
所述策略映射:消息消费方根据消息模板中的消息类型、消息类型中的会话标识ID、和消息内容中对应的会话作业状态,执行相应的策略,即根据消息类型选择不同的业务处理服务;
所述的消息类型:包括作业提交消息、作业状态查询消息、作业状态反馈消息、作业结果反馈消息、运行信息反馈消息5种;
所述的会话标识ID:由前端***ID、用户ID、作业ID,以及提交时间构成,用下划线“_”将这四部分连接构成会话标识ID;
所述会话作业状态:指当前作业在后端***的处理状态,包括,预备(PREPARING)、等待执行(WAITIJG)、执行(RUNNING)、挂起(SUSPEND)、异常结束(EXCEPTION)、正常结束(FINISHED)这六种状态;含义分别如下:预备(PREPARING)指作业提交消息到达后端***,正在准备该作业的运行环境;等待执行(WAITIJG)指运行环境已齐备,等待被执行;执行(RUNNING)是指作业正在运行中;挂起(SUSPEND)是指作业执行过程被暂时中止,等待继续;异常结束(EXCEPTION)是指作业的执行遇到异常,结束退出;正常结束(FINISHED)是指作业的正常执行结束,退出执行环境。
所述消息体中的消息扩展固定包含扩展内容和预留项两部分。
所述作业提交消息包含的字段序列为:会话标识ID、资源描述、消息正文、文件名、文件类型、文件编号和文件总数7个字段;作业状态查询消息包含的字段序列为:会话标识、消息正文2个字段;所述作业状态反馈消息包含的字段序列为:会话标识、消息正文2个字段;所述的作业结果反馈消息包含的字段序列为:会话标识、消息正文、文件名、文件类型4个字段;所述运行信息反馈消息包含的字段序列为:会话标识、消息正文2个字段。
所述策略映射中相应策略是:根据消息类型选择不同的业务处理服务具体过程如下:
(1)如果是作业提交消息,则记录该会话作业状态为预备(PREPARING),并解析消息内容,创建本地目录结构,并在作业启动文件中标记主文件;
(2)如果是作业状态查询消息,则解析消息内容生成作业的查询操作参数,启动查询操作;
(3)如果是作业状态反馈消息,则提取作业的状态信息作为消息内容,以后端***作为消息生产方,用户所在的前端***作为消息消费返,发送消息实例;
(4)如果是作业结果反馈消息,则提取作业运行结果,作为消息体,以后端***作为消息生产方,以用户所在的前端***作为消息消费方,发送消息实例;
(5)如果是作业运行信息反馈消息,将作业运行过程中的提示信息以及错误信息作为消息体,以后端***作为消息生产方,用户所在的前端***作为消息消费方,发送消息实例。
所述后端***为每一个会话维护一个状态栈,当新消息到达时,根据取回的消息实例中的会话标识ID的值,以及该会话标识ID对应的本地会话作业状态,选择针对该消息实例的处理方法;若会话标识ID为新值,则记录该会话作业状态,按照策略解析消息内容,创建本地目录结构,在作业启动文件中标注主文件;若会话标识ID已存在,且消息类型为作业状态查询,则提取消息内容生成作业的查询操作参数,启动查询操作;若会话标识ID已存在,且消息类型为作业反馈消息,则提取消息内容,以既定方式展示,并更新会话作业状态。
本发明与现有技术相比的有益效果在于:通过本发明所述的消息模板和消息传递方法,能够建立从消息生产方到消息消费方的高性能计算作业内容和运行状态的信息传递。通过策略映射机制,可靠地建立高性能计算云服务平台中各子***之间的信息传递机制,松绑前后端***之间的高耦合限制,提高***部署的灵活性和鲁棒性,为面向高性能计算的云服务平台体系结构提供参考实现。
附图说明
图1本发明所述的云平服务台基本结构示意图;
图2本发明所述的消息模板设计;
图3本发明所述的消息类型说明及编码;
图4本发明所述的会话作业状态定义;
图5本发明所述的消息传递接口集;
图6为本发明中策略映射具体实现流程图。
具体实施方式
为了准确说明本发明,本文采用如下术语及含义。
高性能计算:High Performance Computing,简称HPC。指使用多个处理器或者集群中组织的多台计算机执行计算任务,既可以基于标准计算机集群,也可以借助专用硬件设备。目的是提高问题计算的规模,缩短计算任务执行时间。
云服务平台:将***资源以虚拟化(Virtualization)、效用计算(Utility Computing)的方式提供给用户的模式。按照提供的资源层次,通常将云服务平台分为三大类:基础设施即服务的IaaS(Infrastructure as a Service)、***平台即服务的PaaS(Platform as a Service)和软件即服务的SaaS(Software as a Service)等。本发明中的云服务平台属Paas类型与SaaS的综合模式,其基本结构由前端***、后端***和消息***3部分构成,图1所示的消息传递***,主要由三部分组成:前端***,后端***,消息***。
前端***:在高性能云服务平台中,其安装位置靠近用户,主要功能是程序编辑器、用户管理、作业管理等。
后端***:在高性能云服务平台中,其安装位置靠近高性能计算集群,主要功能是为高性能计算程序提供预处理服务。
消息***:在高性能云服务平台中,其安装位置介于前端***和后端***之间,主要功能是前/后***之间传递以规定消息模板封装的业务交换消息。
消息模板:为前/后端***之间传递的信息规定固定格式,便于消息生产方/消费方(消息的发/收)双方准确会话。一般由字段序列表示,在面向对象语言中表示为类定义。
消息类型:消息模板中所说的固定格式主要有5种,如图3。作业提交消息,消息类型码为JOB_SUB,用于提交计算作业,其消息正文为高性能计算程序及相关联的资源,如动态链接库文件、数据文件、配置文件等。作业查询消息,消息类型码为JOB_QRY,用于查询已提交的作业的当前执行状态,要求后端***返回该作业的当前状态。;作业结果反馈消息,消息类型码为FDBK_JRST,后端***用于向前端***反馈作业计算结果,消息正文为文件内容,或文件地址。作业状态反馈消息,消息类型码为FDBK_JSTA,后端***用于向前端***反馈指定作业的执行状态,可以应答前端***的查询,也可以主动反馈;运行信息反馈消息,消息类型码为FDBK_RINF,作业执行完毕后,该作业依赖的运行环境针对该作业结束的运行报告消息。
消息实例:为消息模板中的字段序列赋值后生成的具体消息。在面向对象语言中表示为类创建的类对象。
传递方法:消息实例从消息生产方传送到消息消费方过程中执行的步骤和用到的设备。
消息队列:消息服务***上由消息实例组成的队列,按照先进先出的方式管理。
消息产生(封装):也称消息封装(即创建),指根据消息模板,将需要发送的消息内容和相关资源打包或编号,生成消息对象实例(指将需要发送的信息内容按照规定的消息模板创建消息实例,形成一个整体数据,供消息传递过程使用)。
消息入列:消息生产方把消息对象实例装入指定消息服务***中的指定消息队列的操作。
消息取回:消息消费方按照策略从指定的消息服务***中的指定消息队列中取回消息。
ActiveMQ:Apache开发的开源的消息队列服务程序,用于消息队列管理。
消息解析:按照统一遵循的消息模板,从消息实例中把包含的字段值提取,并为消息消费方工作流程中使用的变量赋值,交付进一步流程使用(即消息消费方收到消息后,将消息实例中的字段数据解析出来,赋予本地变量)。
策略映射:消息消费方根据会话标识ID、消息类型和会话对应的作业状态,执行相应的策略,选择在消息消费方应该启动的业务流程。本操作需要会话标识ID的命名规则支持。
会话标识={前端***ID,用户ID,作业ID,提交时间}
以上各段用字符串表示:Sfs为前端***ID,Suid为用户ID,Sjid作业ID,Stime为提交时间,则构造“会话标识”字符串Ssid的规则如下:
Ssid=Sfs+“_”+Suid+“_”+Sjid+“_”+Stime
其中,+“_”+表示各字段以下划线字符连接。
UML:Unified Modeling Language的简写,称统一建模语言,是一种支持模型化软件***开发的图形化语言,为软件开发的各阶段提供模型化和可视化支持,在面向对象分析与设计过程中发挥作用。
本发明所述方法包括两部分:(1)针对高性能计算云服务平台,设计消息格式,构造消息模板,用于通信***的统一处理;(2)通信内容被执行消息封装、消息入列、消息取回、消息解析、策略映射等操作,从消息生产方到达消息消费方。本发明所涉及的消息模板和消息传递方法,能普遍应用于面向高性能计算的云服务平台。
本发明的原理如下:
本发明面向高性能计算云服务平台。消息的目标是设计能满足高性能计算的过程管理需要,消息的传递过程可靠,实现前后端***解耦合。消息的传递控制规则根据消息类型、会话作业状态决定。
本发明中预定义的消息类型有:作业提交消息、作业状态查询消息、作业状态反馈消息、作业结果反馈消息、运行信息反馈消息等。便于程序实现,本发明为不同消息类型设计唯一标识码。
本发明中预定义的会话作业状态有:预备、可执行、执行、挂起、中止、结束等。预定义的作业状态用于指导相对应的消息处理的流程选择。会话作业状态预定义码见图4。
本发明的主要内容包括:
A.面向高性能计算的云服务消息模板
为描述的准确性和程序实现的方便性,面向高性能计算的云服务消息形式化表示如下。设M为消息,则:
M=sequence of{MH,MB,MT}
其中,MH为消息头(Message Head);MB为消息体(Message Body);MT为消息尾(Message Tail)。
进一步,
MH=sequence of{MID,Sender,Receiver,MType,SNo,STime,Version,Priority,LBody}
MB=sequence of{MC,MExt}
MT=sequence of{MDA,D,Opt}
其中,MID为消息标识;Sender为发送方标识,Receiver为接收方标识,MType为消息类型,SNo为发送序列号,STime为发送时间,Version消息格式版本号,Priority为消息优先级,LBody为消息体长度。MC为消息内容,MExt为消息扩展。MDA为消息摘要算法,D为摘要值,Opt为校验选项。
根据消息类型MType,本发明设计了不同的消息内容MCx。根据上文设计,
MType=JOB_SUB|JOB_QRY|FDBK_JRST|FDBK_JSTA|FDBK_RINF
则,
MCJOB_SUB=sequence of{SessionID,RDisc,MessageText,FileName,FileType,FileNo,TotalFileNumber}
MCJOB_QRY=sequence of{SessionID,MessageText}
MCFDBK_JRST=sequence of{SessionID,MessageText}
MCFDBK_JSTA=sequence of{SessionID,MessageText,FileName,FileType}
MCFDBK_RINF=sequence of{SessionID,MessageText}
其中,SessionID为会话标识,RDisc为资源描述,MessageText为消息正文,FileName为文件名,FileType为文件类型,FileNo为文件编号,TotalFileNumber为文件总数。
B.消息传递步骤
本发明说明的消息传递方法归结为5个基本操作。各操作以消息为参数。如图5,CloudMSG是消息模板的定义,包括消息头,消息体,消息尾;其余其定义如下,
CreateMessage(MH,MB,MT):消息创建操作;
PutMessage(M):消息入列操作;
FetchMessage():消息取回操作;
DeMessage(M):消息解析操作;
SessionMapping():会话与策略的映射;
消息传递方法包括一下步骤:
(1)准备好MH、MB、MT数据,调用CreateMessage操作,得到消息实例M;
(2)消息生产方调用PutMessage操作,将消息实例M添加到消息服务器中的消息队列;
(3)消息消费方调用FetchMessage操作,从消息服务器队列中将消息实例M取到本地;
(4)消息使用者调用DeMessage操作,从消息实例中获取到相应的字段值;
(5)消息使用者调用SessionMapping操作,根据回话ID、会话状态和消息类型,选择进一步操作。如图6消息策略映射具体流程,获取一个消息后,通过类型判定器判定其属于5种消息中的哪一种,然后选择不同的处理流程。
实施例1:
下面以Java语言为例,说明通信双方之间的消息传递过程。假设消息队列服务软件采用Apache的开源***Active MQ,但本发明的实现不依赖于此***。***设计方案描述中使用UML概念。
对应于发明内容,整个过程分为两大部分:消息模板定义和消息传递过程。
A.消息格式定义
1.消息模板定义
如图2所示,根据Java语言支持的数据类型,设计消息头、消息体、消息尾中各字段的数据类型和长度规定等。
(1)消息头
表1消息头字段的数据类型和长度规格定义
(2)消息体
消息体包括2部分:消息内容和消息扩展。不同类型的消息采用不同的消息内容。消息扩展部分相同。表2.1、表2.2、表2.3分别设计了消息内容中各字段的类型、长度、含义等。表2.4设计了消息体的消息扩展中各字段的类型、长度、含义等。
表2.1作业提交消息的消息体重的消息内容字段说明表
字段名称类型长度(Byte) | 字段说明 |
会话标识String<=32B | 用于前端***、后端***之间计算作业的会话映射 |
资源描述String<=256B | 作业程序对计算集群的要求,包括节点个数等 |
消息正文String<=2MB | 并行程序源码文件内容 |
文件名String<=256B | 计算节点可见的源程序文件名 |
文件类型String<=8B | 文件名对应的文件类型,如jl/java/dll/rar/tar/zip/gz |
文件编号Int4B | 本文件在会话文件集合中的编号 |
文件总数Int4B | 服务于本会话的文件集合大小 |
表2.2作业状态反馈消息体字段说明表
表2.3作业结果反馈消息体字段说明表
字段名称 | 类型 | 长度(Byte) | 字段说明 |
会话标识 | String | <=32B | 用于前端***、后端***之间计算作业的会话映射 |
消息正文 | String | <=2MB | 作业运行的屏幕显示 |
文件名 | String | <=256B | 作业计算结果文件名 |
文件类型 | String | <=8B | 文件名对应的文件类型,如txt/rar/tar/zip/gz |
表2.4消息体中消息扩展字段说明表
扩展内容 | String | <=256B | 对计算结果、优先级等的辅助说明 |
预留 | String | <=256B | 留用扩展 |
(3)消息尾
表3消息尾字段说明表
字段名称 | 类型 | 长度(Byte) | 字段说明 |
消息摘要算法 | String | <=16B | 产生消息摘要的算法名称:SHA-1/MD5 |
消息摘要值 | String | <=32B | 整个消息的摘要值 |
校验选项 | String | <=8B | 校验策略 |
(4)消息类定义
为本发明说明方便和文档的完整性,本部分仅列举最基本的Java类定义示例如下:设MSGHead、MSGBody、MSGTail为消息头、消息体、消息尾对应的三个类,则:
B.消息传递步骤
考虑这样一个具体的例子:消息生产方S向消息消费方R发送一个作业提交消息cmJOB。R收到消息后,在后端***创建工作目录,作业运行环境布置好后,该作业被当地调度器送入等待运行队列,后端***向前端***(用户)报告作业状态。过程如下:
(1)按消息模板生成消息实例
CloudMSG cmJOB=CloudMSG.createMessage();
(2)送出消息
设类Sender为消息生产方的发送接口类,调用Sender的putMessage(cmJOB)操作,将消息实例cmJOB添加到ActiveMQ消息队列服务器管理的消息队列Q。
(3)取回消息
设Receiver为接收方的消息接收接口类。接收方调用该接口类提供的fetchMessage()操作,将消息实例cmJOB队列Q取从到本地。
(4)解析消息
调用Receiver接口类的deMessage()操作,取出被传递消息实例中的重要cmJOB字段值。设这些字段如下表,
(5)策略映射
消息接收者所在的后端***调用Receiver接口类的SessionMapping()操作,根据会话状态、消息类型、文件类型等,选择进一步操作。如果是作业提交消息,主要操作步骤如下:
(5.1)检查会话标识在后端***对应的会话状态,若为空,则在消息消费方硬盘的用户工作空间中创建目录:SD01_ZCY_PI2K,作为计算任务工作目录。
(5.2)如果文件类型为*.jl,创建文件名,命名为pi2k.jl,并把消息正文“a=b+c;printa;”写入该文件;如果文件类型为*.rar,则命名为pi2k.rar,把消息正文中的内容以二进制格式写入pi2k.rar,再在按照原来的压缩目录结构解压缩到工作目录SD01_ZCY_PI2K。
(5.3)在“会话状态数据库”为会话SD01_ZCY_PI2K_20140218160827.089创建纪录,并纪录状态为“新建(new)”。
(5.4)按照后端***的作业调度***和调度策略要求,设定调度环境参数,进入调度队列,更新会话状态值为“等待(waiting)”。
(5.5)按照作业状态反馈消息类型FDBK_JSTA对应的消息格式封装“作业状态反馈”消息,由后端***作为消息生产方,用户所在的前端***SD01作为消息消费方,发送消息实例,报告“作业已进入排队状态”。
从传递过程看到消息从前端用户传递到后端***,正确进入后端***的作业调度***,并向前端用户***报告了当前作业状态。其他消息类型的传递过程与本发明中叙述的“作业提交消息”类似。
如果是作业状态查询消息,主要步骤如下:
(1)解析消息,获取要查询的作业的会话标识;
(2)根据标识在“会话状态数据库”中查询该会话所对应的状态;
(3)按照作业状态查询消息类型JOB_QRY对应的消息格式封装“作业状态查询消息”,由后端***作为消息生产方,用户所在前端***SD01作为消息消费方,发送消息实例。
如果是作业结果反馈消息,主要步骤如下:
(1)解析消息,获取作业结果的会话标识;
(2)根据会话标识,在作业说对应的工作目录下查找作业运行的结果;
(3)按照作业结果反馈消息FDBK_JRST对应的消息格式封装“作业结果反馈消息”,由后端***作为消息生产方,用户所在前端***SD01作为消息消费方,发送消息实例。
如果是作业状态反馈消息,主要步骤如下:
(1)解析消息,获取的作业的会话标识;
(2)根据标识在“会话状态数据库”中查询该会话所对应的状态;
(3)按照作业状态查询消息类型FDBK_JSTA对应的消息格式封装“作业状态查询消息”,由后端***作为消息生产方,用户所在前端***SD01作为消息消费方,发送消息实例。
如果是运行信息反馈消息,主要步骤如下:
(1)解析消息,获取作业的会话标识;
(2)根据会话标识,在作业所在的工作目录下获取作业的运行信息;
(3)按照运行信息反馈消息类型FDBK_RINF对应的消息格式封装“作业运行信
息反馈消息”,由后端***作为消息生产方,用户所在前端***SD01作为消息消费方,发送消息实例。
本发明未详细阐述部分属于本领域公知技术。
以上所述,仅为本发明部分具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种面向高性能计算的云服务消息传递方法,其特征在于包括如下步骤:
(1)消息模板设计:
所述消息模板为3个部分:消息头、消息体和消息尾;其中:
所述消息头,储存消息发收双方的会话信息,所述消息头包含的字段有:消息ID、发送方、接收方、消息类型、发送序列号、发送时间、版本号、优先级、消息体长度;所述消息类型字段中均包括会话标识ID、消息正文两个基本字段;
所述消息体,储存消息承载的信息内容,所述消息体包含的字段有:消息内容和消息扩展;
所述消息尾,储存消息的正确性校验数据,所述消息尾包含的字段有:消息摘要算法、摘要值、校验选项;
所述消息头、消息体、消息尾为固定格式,即分别包含设定的各字段名称,通过消息中字段不同的赋值而赋予不同的语义;
(2)消息传递步骤:包括消息产生、消息入列、消息取回、消息解析和策略映射;
所述消息产生:根据消息模板,把消息内容和相关资源打包或编号,生成消息实例,为消息中各字段赋值;所述相关资源是指程序运行相关资源,包括动态链接库、数据文件及作业启动文件;
所述消息入列:消息生产方将消息实例推送到消息服务***中指定的消息队列;
所述消息取回:消息消费方从消息服务***中指定的消息队列取出消息实例,存于本地内存;
所述消息解析:消息消费方收到消息实例后,将消息实例中的字段数据解析出来,赋予本地变量,即将消息分解成变量;
所述策略映射:消息消费方根据消息模板中的消息类型、消息类型中的会话标识ID、和消息内容中对应的会话作业状态,执行相应的策略,即根据消息类型选择不同的业务处理服务;
所述的消息类型:包括作业提交消息、作业状态查询消息、作业状态反馈消息、作业结果反馈消息、运行信息反馈消息5种;
所述的会话标识ID:由前端***ID、用户ID、作业ID,以及提交时间构成,用下划线“_”将这四部分连接构成会话标识ID;
所述会话作业状态:指当前作业在后端***的处理状态,包括,预备(PREPARING)、等待执行(WAITIJG)、执行(RUNNING)、挂起(SUSPEND)、异常结束(EXCEPTION)、正常结束(FINISHED)这六种状态;含义分别如下:预备(PREPARING)指作业提交消息到达后端***,正在准备该作业的运行环境;等待执行(WAITIJG)指运行环境已齐备,等待被执行;执行(RUNNING)是指作业正在运行中;挂起(SUSPEND)是指作业执行过程被暂时中止,等待继续;异常结束(EXCEPTION)是指作业的执行遇到异常,结束退出;正常结束(FINISHED)是指作业的正常执行结束,退出执行环境。
2.根据权利要求1所述的面向高性能计算的云服务消息传递方法,其特征在于:所述消息体中的消息扩展固定包含扩展内容和预留项两部分。
3.根据权利要求1所述的面向高性能计算的云服务消息传递方法,其特征在于:所述作业提交消息包含的字段序列为:会话标识ID、资源描述、消息正文、文件名、文件类型、文件编号和文件总数7个字段;作业状态查询消息包含的字段序列为:会话标识、消息正文2个字段;所述作业状态反馈消息包含的字段序列为:会话标识、消息正文2个字段;所述的作业结果反馈消息包含的字段序列为:会话标识、消息正文、文件名、文件类型4个字段;所述运行信息反馈消息包含的字段序列为:会话标识、消息正文2个字段。
4.根据权利要求1所述的面向高性能计算的云服务消息传递方法,其特征在于:所述策略映射中相应策略是:根据消息类型选择不同的业务处理服务具体过程如下:
(1)如果是作业提交消息,则记录该会话作业状态为预备(PREPARING),并解析消息内容,创建本地目录结构,并在作业启动文件中标记主文件;
(2)如果是作业状态查询消息,则解析消息内容生成作业的查询操作参数,启动查询操作;
(3)如果是作业状态反馈消息,则提取作业的状态信息作为消息内容,以后端***作为消息生产方,用户所在的前端***作为消息消费返,发送消息实例;
(4)如果是作业结果反馈消息,则提取作业运行结果,作为消息体,以后端***作为消息生产方,以用户所在的前端***作为消息消费方,发送消息实例;
(5)如果是作业运行信息反馈消息,将作业运行过程中的提示信息以及错误信息作为消息体,以后端***作为消息生产方,用户所在的前端***作为消息消费方,发送消息实例。
5.根据权利要求4所述的面向高性能计算的云服务消息传递方法,其特征在于:所述后端***为每一个会话维护一个状态栈,当新消息到达时,根据取回的消息实例中的会话标识ID的值,以及该会话标识ID对应的本地会话作业状态,选择针对该消息实例的处理方法;若会话标识ID为新值,则记录该会话作业状态,按照策略解析消息内容,创建本地目录结构,在作业启动文件中标注主文件;若会话标识ID已存在,且消息类型为作业状态查询,则提取消息内容生成作业的查询操作参数,启动查询操作;若会话标识ID已存在,且消息类型为作业反馈消息,则提取消息内容,以既定方式展示,并更新会话作业状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410213904.2A CN103984734B (zh) | 2014-05-20 | 2014-05-20 | 一种面向高性能计算的云服务消息传递方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410213904.2A CN103984734B (zh) | 2014-05-20 | 2014-05-20 | 一种面向高性能计算的云服务消息传递方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103984734A true CN103984734A (zh) | 2014-08-13 |
CN103984734B CN103984734B (zh) | 2017-05-17 |
Family
ID=51276707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410213904.2A Active CN103984734B (zh) | 2014-05-20 | 2014-05-20 | 一种面向高性能计算的云服务消息传递方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984734B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677494A (zh) * | 2016-02-01 | 2016-06-15 | 北京京东尚科信息技术有限公司 | 一种消息分发的方法和装置 |
WO2017162059A1 (zh) * | 2016-03-23 | 2017-09-28 | 阿里巴巴集团控股有限公司 | 消息管理方法及装置、消息预读方法及装置 |
CN107465759A (zh) * | 2017-09-07 | 2017-12-12 | 武汉楚鼎信息技术有限公司 | 一种消息服务器、消息下发方法以及终端 |
CN108183933A (zh) * | 2017-12-04 | 2018-06-19 | 深圳开思时代科技有限公司 | 消息推送方法、装置及***、电子设备和计算机存储介质 |
CN108881492A (zh) * | 2018-08-08 | 2018-11-23 | 百卓网络科技有限公司 | 一种解决消息处理顺序及疏导消息处理的方法 |
CN109214741A (zh) * | 2017-07-07 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 一种监控指标的预警方法和预警*** |
CN109976919A (zh) * | 2017-12-28 | 2019-07-05 | 北京京东尚科信息技术有限公司 | 一种消息请求的传输方法和装置 |
CN111381975A (zh) * | 2018-12-28 | 2020-07-07 | 无锡智道安盈科技有限公司 | 消息队列实现业务和报表***数据传输及异地多活的方法 |
CN112363823A (zh) * | 2020-10-10 | 2021-02-12 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
CN112527523A (zh) * | 2020-12-11 | 2021-03-19 | 深圳晶泰科技有限公司 | 面向高性能计算多云的分布式消息传递方法及*** |
CN114338807A (zh) * | 2021-12-30 | 2022-04-12 | 紫光云(南京)数字技术有限公司 | 一种主机overlay下的消息排序机制 |
CN114900381A (zh) * | 2022-03-23 | 2022-08-12 | 青岛海尔科技有限公司 | 消息发送方法和装置、存储介质及电子装置 |
CN116028449A (zh) * | 2023-03-30 | 2023-04-28 | 卡斯柯信号(北京)有限公司 | 一种数据校验方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102137032A (zh) * | 2011-03-24 | 2011-07-27 | 上海云高软件科技有限公司 | 一种云消息***及云消息发送和接收方法 |
CN102668516A (zh) * | 2011-12-02 | 2012-09-12 | 华为技术有限公司 | 一种云消息服务中实现消息传递的方法和装置 |
US8671306B2 (en) * | 2010-12-21 | 2014-03-11 | Microsoft Corporation | Scaling out a messaging system |
-
2014
- 2014-05-20 CN CN201410213904.2A patent/CN103984734B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8671306B2 (en) * | 2010-12-21 | 2014-03-11 | Microsoft Corporation | Scaling out a messaging system |
CN102137032A (zh) * | 2011-03-24 | 2011-07-27 | 上海云高软件科技有限公司 | 一种云消息***及云消息发送和接收方法 |
CN102668516A (zh) * | 2011-12-02 | 2012-09-12 | 华为技术有限公司 | 一种云消息服务中实现消息传递的方法和装置 |
Non-Patent Citations (2)
Title |
---|
NAM-LUC TRAN等: "EQS: An Elastic and Scalable Message Queue for the Cloud", 《IEEE XPLORE》 * |
史冬冬: "云队列:一个基于Hadoop的大规模消息基础平台", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677494A (zh) * | 2016-02-01 | 2016-06-15 | 北京京东尚科信息技术有限公司 | 一种消息分发的方法和装置 |
TWI735533B (zh) * | 2016-03-23 | 2021-08-11 | 香港商阿里巴巴集團服務有限公司 | 訊息管理方法及裝置、訊息預讀方法及裝置 |
WO2017162059A1 (zh) * | 2016-03-23 | 2017-09-28 | 阿里巴巴集团控股有限公司 | 消息管理方法及装置、消息预读方法及装置 |
US11165740B2 (en) | 2016-03-23 | 2021-11-02 | Alibaba Group Holding Limited | Message sending method and terminal device |
CN109214741A (zh) * | 2017-07-07 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 一种监控指标的预警方法和预警*** |
CN107465759A (zh) * | 2017-09-07 | 2017-12-12 | 武汉楚鼎信息技术有限公司 | 一种消息服务器、消息下发方法以及终端 |
CN107465759B (zh) * | 2017-09-07 | 2019-03-12 | 武汉楚鼎信息技术有限公司 | 一种消息服务器、消息下发方法以及终端 |
CN108183933A (zh) * | 2017-12-04 | 2018-06-19 | 深圳开思时代科技有限公司 | 消息推送方法、装置及***、电子设备和计算机存储介质 |
CN109976919A (zh) * | 2017-12-28 | 2019-07-05 | 北京京东尚科信息技术有限公司 | 一种消息请求的传输方法和装置 |
CN108881492A (zh) * | 2018-08-08 | 2018-11-23 | 百卓网络科技有限公司 | 一种解决消息处理顺序及疏导消息处理的方法 |
CN111381975A (zh) * | 2018-12-28 | 2020-07-07 | 无锡智道安盈科技有限公司 | 消息队列实现业务和报表***数据传输及异地多活的方法 |
CN112363823A (zh) * | 2020-10-10 | 2021-02-12 | 北京东方通软件有限公司 | 一种基于消息的轻量级无服务器计算方法 |
CN112527523A (zh) * | 2020-12-11 | 2021-03-19 | 深圳晶泰科技有限公司 | 面向高性能计算多云的分布式消息传递方法及*** |
CN114338807A (zh) * | 2021-12-30 | 2022-04-12 | 紫光云(南京)数字技术有限公司 | 一种主机overlay下的消息排序机制 |
CN114338807B (zh) * | 2021-12-30 | 2023-12-22 | 紫光云(南京)数字技术有限公司 | 一种主机overlay下的消息排序机制 |
CN114900381A (zh) * | 2022-03-23 | 2022-08-12 | 青岛海尔科技有限公司 | 消息发送方法和装置、存储介质及电子装置 |
CN114900381B (zh) * | 2022-03-23 | 2024-03-22 | 青岛海尔科技有限公司 | 消息发送方法和装置、存储介质及电子装置 |
CN116028449A (zh) * | 2023-03-30 | 2023-04-28 | 卡斯柯信号(北京)有限公司 | 一种数据校验方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103984734B (zh) | 2017-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984734A (zh) | 一种面向高性能计算的云服务消息传递方法 | |
CN109643312B (zh) | 托管查询服务 | |
US11455189B2 (en) | Task scheduling simulation system | |
WO2019184750A1 (zh) | 深度学习作业调度方法、***和相关设备 | |
CN109075988B (zh) | 任务调度和资源发放***和方法 | |
Agrawal | Metamodeling: A study of approximations in queueing models. | |
US20100115046A1 (en) | Method and server cluster for map reducing flow services and large documents | |
CN104573068A (zh) | 一种基于大数据的信息处理方法 | |
US9841989B2 (en) | Parallel data processing system, computer, and parallel data processing method | |
CN101652750A (zh) | 数据处理装置、分散处理***、数据处理方法及数据处理程序 | |
CN108984547A (zh) | 数据处理的方法和装置 | |
CN111367804B (zh) | 基于云计算及网络编程实现前端协作调试的方法 | |
CN112052011A (zh) | 小程序的合包方法、装置、电子设备及介质 | |
EP3893137A2 (en) | Evm-based transaction processing method and apparatus, device, program and medium | |
US10803413B1 (en) | Workflow service with translator | |
CN107609109A (zh) | 一种报表生成方法、装置和*** | |
JP6754696B2 (ja) | ヘテロジニアスコンピューティング環境におけるデータタイプ変換をサポートするためのシステムおよび方法 | |
CN110766375A (zh) | 工作平台任务构建***及构建方法 | |
CN106856441A (zh) | Nfvo中的vim选择方法和装置 | |
CN107168795A (zh) | 基于cpu‑gpu异构复合式并行计算框架的密码子偏差系数模型方法 | |
CN108319514A (zh) | 一种基于Slurm作业管理的可视化调度*** | |
CN103294874B (zh) | 用于电磁仿真计算***FEKO的Web服务封装方法以及*** | |
EP3910516B1 (en) | Evm-based transaction processing method and apparatus, device and medium | |
CN110515993B (zh) | 税务数据转换方法及*** | |
CN116249967A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |