一种面向高性能计算的云服务消息传递方法

文档序号:6547025阅读:142来源:国知局
一种面向高性能计算的云服务消息传递方法
【专利摘要】一种面向高性能计算的云服务消息传递方法,步骤:定义消息模板;消息产生:根据消息模板,把消息内容和相关资源打包或编号,生成消息对象实例;消息入列:从云服务平台中的消息生产方把消息对象实例装入指定消息服务系统中的指定消息队列;消息取回:消息消费方按照策略从指定的消息队列中取走消息;消息解析:按照统一遵循的消息模板,从消息实例中把包含的字段值提取,并为消息消费方工作流程中使用的变量赋值,交付进一步流程使用;策略映射:按照既定策略,根据消息类型和会话作业状态,选择进一步工作流程。本发明提高系统部署的灵活性和鲁棒性,为面向高性能计算的云服务平台体系结构提供参考实现。
【专利说明】一种面向高性能计算的云服务消息传递方法
【技术领域】
[0001]本发明公布了一种面向高性能计算的云服务消息传递方法。针对提供高性能计算服务的云平台体系,公布了一种满足高性能计算需要的云消息格式,以及该消息在高性能云平台的前端系统和后端系统之间的传递方法,属于面向高性能计算的新型云服务平台体系结构设计领域。
【背景技术】
[0002]高性能计算(High Performance Computing,简称HPC)在现代科学研究、工业生产中发挥着越来越重要的作用。HPC利用高性能设备,通过多核、众核、集群、网格等多种并行计算的途径,获得超高的计算速度,完成超大规模的计算任务。
[0003]高性能计算方面的编程难度大,一般企业用户不易掌握,且高性能计算资源昂贵,自备设备不经济。通过云服务平台向企业用户提供高性能计算编程环境,降低企业程序员的高性能编程难度,能助企业(计算)程序员提高编程开发效率。该类云服务平台的体系结构被分为三部分:用户编程环境所在的前端系统,高性能程序执行环境所在的后端系统,及两部分系统之间信息通信的消息传递系统等。其中消息传递系统中,高性能云消息的格式定义和传递机制是实现该平台的重点技术问题。
[0004]在云平台等分布式系统中实施消息机制能大大降低平台前/后端系统之间的耦合性,提高系统部署的灵活性。云消息机制的设计需要考虑如下因素:一是消息模板格式定义,主要描述分布式云平台中各子系统之间需要传递的信息内容,既要简洁,又需要能完备表达高性能程序设计运行的需要;二是消息的发/收方法:消息需要在各子系统之间传递,承载子系统之间交流的信息。一般地,借助消息队列管理服务,可降低前后端系统之间的耦合性,提高消息传递的稳定性和系统部署的灵活性(系统的可部署能力)。面向高性能计算的云消息格式定义和传递方法将对多种云服务平台和分布式系统的设计实施有参考价值。

【发明内容】

[0005]本发明技术解决问题:克服现有技术的不足,提供一种面向高性能计算的云服务消息传递方法,建立高性能计算云服务平台中各子系统之间的信息传递机制,松绑前后端系统之间的高耦合限制,提高系统部署的灵活性和鲁棒性,为面向高性能计算的云服务平台体系结构提供参考实现。
[0006]本发明技术解决方案:一种面向高性能计算的云服务消息传递方法,其特征在于包括如下步骤:
[0007](I)消息模板设计:
[0008]所述消息模板为3个部分:消息头、消息体和消息尾;其中:
[0009]所述消息头,储存消息发收双方的会话信息,所述消息头包含的字段有:消息ID、发送方、接收方、消息类型、发送序列号、发送时间、版本号、优先级、消息体长度;所述消息类型字段中均包括会话标识ID、消息正文两个基本字段;[0010]所述消息体,储存消息承载的信息内容,所述消息体包含的字段有:消息内容和消息扩展;
[0011]所述消息尾,储存消息的正确性校验数据,所述消息尾包含的字段有:消息摘要算法、摘要值、校验选项;
[0012]所述消息头、消息体、消息尾为固定格式,即分别包含设定的各字段名称,通过消息中字段不同的赋值而赋予不同的语义;
[0013](2)消息传递步骤:包括消息产生、消息入列、消息取回、消息解析和策略映射;
[0014]所述消息产生:根据消息模板,把消息内容和相关资源打包或编号,生成消息实例,为消息中各字段赋值;所述相关资源是指程序运行相关资源,包括动态链接库、数据文件及作业启动文件;
[0015]所述消息入列:消息生产方将消息实例推送到消息服务系统中指定的消息队列;
[0016]所述消息取回:消息消费方从消息服务系统中指定的消息队列取出消息实例,存于本地内存;
[0017]所述消息解析:消息消费方收到消息实例后,将消息实例中的字段数据解析出来,赋予本地变量,即将消息分解成变量;
[0018]所述策略映射:消息消费方根据消息模板中的消息类型、消息类型中的会话标识ID、和消息内容中对应的会话作业状态,执行相应的策略,即根据消息类型选择不同的业务处理服务;
[0019]所述的消息类型:包括作业提交消息、作业状态查询消息、作业状态反馈消息、作业结果反馈消息、运行信息反馈消息5种;
[0020]所述的会话标识ID:由前端系统ID、用户ID、作业ID,以及提交时间构成,用下划线“_”将这四部分连接构成会话标识ID ;
[0021]所述会话作业状态:指当前作业在后端系统的处理状态,包括,预备(PREPARING)、等待执行(WAITIJG)、执行(RUNNING)、挂起(SUSPEND)、异常结束(EXCEPTION)、正常结束(FINISHED)这六种状态;含义分别如下:预备(PREPARING)指作业提交消息到达后端系统,正在准备该作业的运行环境;等待执行(WAITIJG)指运行环境已齐备,等待被执行;执行(RUNNING)是指作业正在运行中;挂起(SUSPEND)是指作业执行过程被暂时中止,等待继续;异常结束(EXCEPTION)是指作业的执行遇到异常,结束退出;正常结束(FINISHED)是指作业的正常执行结束,退出执行环境。
[0022]所述消息体中的消息扩展固定包含扩展内容和预留项两部分。
[0023]所述作业提交消息包含的字段序列为:会话标识ID、资源描述、消息正文、文件名、文件类型、文件编号和文件总数7个字段;作业状态查询消息包含的字段序列为:会话标识、消息正文2个字段;所述作业状态反馈消息包含的字段序列为:会话标识、消息正文2个字段;所述的作业结果反馈消息包含的字段序列为:会话标识、消息正文、文件名、文件类型4个字段;所述运行信息反馈消息包含的字段序列为:会话标识、消息正文2个字段。
[0024]所述策略映射中相应策略是:根据消息类型选择不同的业务处理服务具体过程如下:
[0025](I)如果是作业提交消息,则记录该会话作业状态为预备(PREPARING),并解析消息内容,创建本地目录结构,并在作业启动文件中标记主文件;[0026](2)如果是作业状态查询消息,则解析消息内容生成作业的查询操作参数,启动查询操作;
[0027](3)如果是作业状态反馈消息,则提取作业的状态信息作为消息内容,以后端系统作为消息生产方,用户所在的前端系统作为消息消费返,发送消息实例;
[0028](4)如果是作业结果反馈消息,则提取作业运行结果,作为消息体,以后端系统作为消息生产方,以用户所在的前端系统作为消息消费方,发送消息实例;
[0029](5)如果是作业运行信息反馈消息,将作业运行过程中的提示信息以及错误信息作为消息体,以后端系统作为消息生产方,用户所在的前端系统作为消息消费方,发送消息实例。
[0030]所述后端系统为每一个会话维护一个状态栈,当新消息到达时,根据取回的消息实例中的会话标识ID的值,以及该会话标识ID对应的本地会话作业状态,选择针对该消息实例的处理方法;若会话标识ID为新值,则记录该会话作业状态,按照策略解析消息内容,创建本地目录结构,在作业启动文件中标注主文件;若会话标识ID已存在,且消息类型为作业状态查询,则提取消息内容生成作业的查询操作参数,启动查询操作;若会话标识ID已存在,且消息类型为作业反馈消息,则提取消息内容,以既定方式展示,并更新会话作业状态。
[0031]本发明与现有技术相比的有益效果在于:通过本发明所述的消息模板和消息传递方法,能够建立从消息生产方到消息消费方的高性能计算作业内容和运行状态的信息传递。通过策略映射机制,可靠地建立高性能计算云服务平台中各子系统之间的信息传递机制,松绑前后端系统之间的高耦合限制,提高系统部署的灵活性和鲁棒性,为面向高性能计算的云服务平台体系结构提供参考实现。
【专利附图】

【附图说明】
[0032]图1本发明所述的云平服务台基本结构示意图;
[0033]图2本发明所述的消息模板设计;
[0034]图3本发明所述的消息类型说明及编码;
[0035]图4本发明所述的会话作业状态定义;
[0036]图5本发明所述的消息传递接口集;
[0037]图6为本发明中策略映射具体实现流程图。
【具体实施方式】
[0038]为了准确说明本发明,本文采用如下术语及含义。
[0039]高性能计算:High Performance Computing,简称HPC。指使用多个处理器或者集群中组织的多台计算机执行计算任务,既可以基于标准计算机集群,也可以借助专用硬件设备。目的是提高问题计算的规模,缩短计算任务执行时间。
[0040]云服务平台:将系统资源以虚拟化(Virtualization)、效用计算(UtilityComputing)的方式提供给用户的模式。按照提供的资源层次,通常将云服务平台分为三大类:基础设施即服务的IaaS(Infrastructure as a Service)、系统平台即服务的PaaS(Platform as a Service)和软件即服务的 SaaS(Software as a Service)等。本发明中的云服务平台属Paas类型与SaaS的综合模式,其基本结构由前端系统、后端系统和消息系统3部分构成,图1所示的消息传递系统,主要由三部分组成:前端系统,后端系统,消息系统。
[0041]前端系统:在高性能云服务平台中,其安装位置靠近用户,主要功能是程序编辑器、用户管理、作业管理等。
[0042]后端系统:在高性能云服务平台中,其安装位置靠近高性能计算集群,主要功能是为高性能计算程序提供预处理服务。
[0043]消息系统:在高性能云服务平台中,其安装位置介于前端系统和后端系统之间,主要功能是前/后系统之间传递以规定消息模板封装的业务交换消息。
[0044]消息模板:为前/后端系统之间传递的信息规定固定格式,便于消息生产方/消费方(消息的发/收)双方准确会话。一般由字段序列表示,在面向对象语言中表示为类定义。
[0045]消息类型:消息模板中所说的固定格式主要有5种,如图3。作业提交消息,消息类型码为J0B_SUB,用于提交计算作业,其消息正文为高性能计算程序及相关联的资源,如动态链接库文件、数据文件、配置文件等。作业查询消息,消息类型码为J0B_QRY,用于查询已提交的作业的当前执行状态,要求后端系统返回该作业的当前状态。;作业结果反馈消息,消息类型码为FDBK_JRST,后端系统用于向前端系统反馈作业计算结果,消息正文为文件内容,或文件地址。作业状态反馈消息,消息类型码为FDBK_JSTA,后端系统用于向前端系统反馈指定作业的执行状态,可以应答前端系统的查询,也可以主动反馈;运行信息反馈消息,消息类型码为FDBK_RINF,作业执行完毕后,该作业依赖的运行环境针对该作业结束的运行报告消息。
[0046]消息实例:为消息模板中的字段序列赋值后生成的具体消息。在面向对象语言中表示为类创建的类对象。
[0047]传递方法:消息实例从消息生产方传送到消息消费方过程中执行的步骤和用到的设备。
[0048]消息队列:消息服务系统上由消息实例组成的队列,按照先进先出的方式管理。
[0049]消息产生(封装):也称消息封装(即创建),指根据消息模板,将需要发送的消息内容和相关资源打包或编号,生成消息对象实例(指将需要发送的信息内容按照规定的消息模板创建消息实例,形成一个整体数据,供消息传递过程使用)。
[0050]消息入列:消息生产方把消息对象实例装入指定消息服务系统中的指定消息队列的操作。
[0051]消息取回:消息消费方按照策略从指定的消息服务系统中的指定消息队列中取回消息。
[0052]ActiveMQ =Apache开发的开源的消息队列服务程序,用于消息队列管理。
[0053]消息解析:按照统一遵循的消息模板,从消息实例中把包含的字段值提取,并为消息消费方工作流程中使用的变量赋值,交付进一步流程使用(即消息消费方收到消息后,将消息实例中的字段数据解析出来,赋予本地变量)。
[0054]策略映射:消息消费方根据会话标识ID、消息类型和会话对应的作业状态,执行相应的策略,选择在消息消费方应该启动的业务流程。本操作需要会话标识ID的命名规则支持。
[0055]会话标识={前端系统ID,用户ID,作业ID,提交时间}
[0056]以上各段用字符串表示:Sfs为前端系统ID,Suid为用户ID,Sjid作业ID,Stime为提交时间,则构造“会话标识”字符串Ssid的规则如下:
[0057]Ssid = Sfs+ “_”+Suid+ “_”+Sjid+ +Stime
[0058]其中,+ +表示各字段以下划线字符连接。
[0059]UML:Unified Modeling Language的简写,称统一建模语言,是一种支持模型化软件系统开发的图形化语言,为软件开发的各阶段提供模型化和可视化支持,在面向对象分析与设计过程中发挥作用。
[0060]本发明所述方法包括两部分:(I)针对高性能计算云服务平台,设计消息格式,构造消息模板,用于通信系统的统一处理;(2)通信内容被执行消息封装、消息入列、消息取回、消息解析、策略映射等操作,从消息生产方到达消息消费方。本发明所涉及的消息模板和消息传递方法,能普遍应用于面向高性能计算的云服务平台。
[0061]本发明的原理如下:
[0062]本发明面向高性能计算云服务平台。消息的目标是设计能满足高性能计算的过程管理需要,消息的传递过程可靠,实现前后端系统解耦合。消息的传递控制规则根据消息类型、会话作业状态决定。
[0063]本发明中预定义的消息类型有:作业提交消息、作业状态查询消息、作业状态反馈消息、作业结果反馈消息、运行信息反馈消息等。便于程序实现,本发明为不同消息类型设计唯一标识码。
[0064]本发明中预定义的会话作业状态有:预备、可执行、执行、挂起、中止、结束等。预定义的作业状态用于指导相对应的消息处理的流程选择。会话作业状态预定义码见图4。
[0065]本发明的主要内容包括:
[0066]A.面向高性能计算的云服务消息模板
[0067]为描述的准确性和程序实现的方便性,面向高性能计算的云服务消息形式化表示如下。设M为消息,则:
[0068]M = sequence of {MH, Mb, Mt}
[0069]其中,Mh为消息头(Message Head) ;MB为消息体(Message Body) ;MT为消息尾(Message Tail)。
[0070]进一步,
[0071]Mh = sequence of{MID, Sender, Receiver, MType, SNo, STime, Version, Priority,LBody}
[0072]Mb = sequence of {MC, MExt}
[0073]Mt = sequence of {MDA, D, Opt}
[0074]其中,MID为消息标识;Sender为发送方标识,Receiver为接收方标识,MType为消息类型,SNo为发送序列号,STime为发送时间,Version消息格式版本号,Priority为消息优先级,LBody为消息体长度。MC为消息内容,MExt为消息扩展。MDA为消息摘要算法,D为摘要值,Opt为校验选项。
[0075]根据消息类型MType,本发明设计了不同的消息内容MCx。根据上文设计,[0076]MType = J0B_SUB|J0B_QRY|FDBK_JRST|FDBK_JSTA|FDBK_RINF
[0077]则,
[0078]MCJ0B_SUB = sequence of{SessionID, RDisc, MessageText, FileName, FileType,FileNo, TotalFiIeNumber}
[0079]MCjob qey = sequence of {SessionID, MessageText}
[0080]MCfdbk jest = sequence of {SessionID, MessageText}
[0081]MCfdbkjsta = sequence of {SessionID, MessageText, FileName, FileType}
[0082]MCfdbk einf = sequence of {SessionID, MessageText}
[0083]其中,SessionID为会话标识,RDisc为资源描述,MessageText为消息正文,FileName为文件名,FileType为文件类型,FileNo为文件编号,TotalFileNumber为文件总数。
[0084]B.消息传递步骤
[0085]本发明说明的消息传递方法归结为5个基本操作。各操作以消息为参数。如图5,CloudMSG是消息模板的定义,包括消息头,消息体,消息尾;其余其定义如下,
[0086]CreateMessage (ΜΗ, MB, MT):消息创建操作;
[0087]PutMessage (M):消息入列操作;
[0088]FetchMessage ():消息取回操作;
[0089]DeMessage (M):消息解析操作;
[0090]SessionMappingO:会话与策略的映射;
[0091]消息传递方法包括一下步骤:
[0092](I)准备好Mh、Mb> Mt数据,调用CreateMessage操作,得到消息实例M ;
[0093](2)消息生产方调用PutMessage操作,将消息实例M添加到消息服务器中的消息队列;
[0094](3)消息消费方调用FetchMessage操作,从消息服务器队列中将消息实例M取到本地;
[0095](4)消息使用者调用DeMessage操作,从消息实例中获取到相应的字段值;
[0096](5)消息使用者调用SessionMapping操作,根据回话ID、会话状态和消息类型,选择进一步操作。如图6消息策略映射具体流程,获取一个消息后,通过类型判定器判定其属于5种消息中的哪一种,然后选择不同的处理流程。
[0097]实施例1:
[0098]下面以Java语言为例,说明通信双方之间的消息传递过程。假设消息队列服务软件采用Apache的开源系统Active MQ,但本发明的实现不依赖于此系统。系统设计方案描述中使用UML概念。
[0099]对应于
【发明内容】
,整个过程分为两大部分:消息模板定义和消息传递过程。
[0100]A.消息格式定义
[0101]1.消息模板定义
[0102]如图2所示,根据Java语言支持的数据类型,设计消息头、消息体、消息尾中各字段的数据类型和长度规定等。
[0103](I)消息头[0104]表1消息头字段的数据类型和长度规格定义
【权利要求】
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已存在,且消息类型为作业反馈消息,则提取消息内容,以既定方式展示,并更新会话作业状态。
【文档编号】G06F17/30GK103984734SQ201410213904
【公开日】2014年8月13日 申请日期:2014年5月20日 优先权日:2014年5月20日
【发明者】张常有, 刘仁芬, 段淑凤, 张先轶, 王婷 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1