国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種面向高性能計(jì)算的云服務(wù)消息傳遞方法

      文檔序號(hào):6547025閱讀:166來(lái)源:國(guó)知局
      一種面向高性能計(jì)算的云服務(wù)消息傳遞方法
      【專利摘要】一種面向高性能計(jì)算的云服務(wù)消息傳遞方法,步驟:定義消息模板;消息產(chǎn)生:根據(jù)消息模板,把消息內(nèi)容和相關(guān)資源打包或編號(hào),生成消息對(duì)象實(shí)例;消息入列:從云服務(wù)平臺(tái)中的消息生產(chǎn)方把消息對(duì)象實(shí)例裝入指定消息服務(wù)系統(tǒng)中的指定消息隊(duì)列;消息取回:消息消費(fèi)方按照策略從指定的消息隊(duì)列中取走消息;消息解析:按照統(tǒng)一遵循的消息模板,從消息實(shí)例中把包含的字段值提取,并為消息消費(fèi)方工作流程中使用的變量賦值,交付進(jìn)一步流程使用;策略映射:按照既定策略,根據(jù)消息類型和會(huì)話作業(yè)狀態(tài),選擇進(jìn)一步工作流程。本發(fā)明提高系統(tǒng)部署的靈活性和魯棒性,為面向高性能計(jì)算的云服務(wù)平臺(tái)體系結(jié)構(gòu)提供參考實(shí)現(xiàn)。
      【專利說(shuō)明】一種面向高性能計(jì)算的云服務(wù)消息傳遞方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明公布了一種面向高性能計(jì)算的云服務(wù)消息傳遞方法。針對(duì)提供高性能計(jì)算服務(wù)的云平臺(tái)體系,公布了一種滿足高性能計(jì)算需要的云消息格式,以及該消息在高性能云平臺(tái)的前端系統(tǒng)和后端系統(tǒng)之間的傳遞方法,屬于面向高性能計(jì)算的新型云服務(wù)平臺(tái)體系結(jié)構(gòu)設(shè)計(jì)領(lǐng)域。
      【背景技術(shù)】
      [0002]高性能計(jì)算(High Performance Computing,簡(jiǎn)稱HPC)在現(xiàn)代科學(xué)研究、工業(yè)生產(chǎn)中發(fā)揮著越來(lái)越重要的作用。HPC利用高性能設(shè)備,通過(guò)多核、眾核、集群、網(wǎng)格等多種并行計(jì)算的途徑,獲得超高的計(jì)算速度,完成超大規(guī)模的計(jì)算任務(wù)。
      [0003]高性能計(jì)算方面的編程難度大,一般企業(yè)用戶不易掌握,且高性能計(jì)算資源昂貴,自備設(shè)備不經(jīng)濟(jì)。通過(guò)云服務(wù)平臺(tái)向企業(yè)用戶提供高性能計(jì)算編程環(huán)境,降低企業(yè)程序員的高性能編程難度,能助企業(yè)(計(jì)算)程序員提高編程開(kāi)發(fā)效率。該類云服務(wù)平臺(tái)的體系結(jié)構(gòu)被分為三部分:用戶編程環(huán)境所在的前端系統(tǒng),高性能程序執(zhí)行環(huán)境所在的后端系統(tǒng),及兩部分系統(tǒng)之間信息通信的消息傳遞系統(tǒng)等。其中消息傳遞系統(tǒng)中,高性能云消息的格式定義和傳遞機(jī)制是實(shí)現(xiàn)該平臺(tái)的重點(diǎn)技術(shù)問(wèn)題。
      [0004]在云平臺(tái)等分布式系統(tǒng)中實(shí)施消息機(jī)制能大大降低平臺(tái)前/后端系統(tǒng)之間的耦合性,提高系統(tǒng)部署的靈活性。云消息機(jī)制的設(shè)計(jì)需要考慮如下因素:一是消息模板格式定義,主要描述分布式云平臺(tái)中各子系統(tǒng)之間需要傳遞的信息內(nèi)容,既要簡(jiǎn)潔,又需要能完備表達(dá)高性能程序設(shè)計(jì)運(yùn)行的需要;二是消息的發(fā)/收方法:消息需要在各子系統(tǒng)之間傳遞,承載子系統(tǒng)之間交流的信息。一般地,借助消息隊(duì)列管理服務(wù),可降低前后端系統(tǒng)之間的耦合性,提高消息傳遞的穩(wěn)定性和系統(tǒng)部署的靈活性(系統(tǒng)的可部署能力)。面向高性能計(jì)算的云消息格式定義和傳遞方法將對(duì)多種云服務(wù)平臺(tái)和分布式系統(tǒng)的設(shè)計(jì)實(shí)施有參考價(jià)值。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明技術(shù)解決問(wèn)題:克服現(xiàn)有技術(shù)的不足,提供一種面向高性能計(jì)算的云服務(wù)消息傳遞方法,建立高性能計(jì)算云服務(wù)平臺(tái)中各子系統(tǒng)之間的信息傳遞機(jī)制,松綁前后端系統(tǒng)之間的高耦合限制,提高系統(tǒng)部署的靈活性和魯棒性,為面向高性能計(jì)算的云服務(wù)平臺(tái)體系結(jié)構(gòu)提供參考實(shí)現(xiàn)。
      [0006]本發(fā)明技術(shù)解決方案:一種面向高性能計(jì)算的云服務(wù)消息傳遞方法,其特征在于包括如下步驟:
      [0007](I)消息模板設(shè)計(jì):
      [0008]所述消息模板為3個(gè)部分:消息頭、消息體和消息尾;其中:
      [0009]所述消息頭,儲(chǔ)存消息發(fā)收雙方的會(huì)話信息,所述消息頭包含的字段有:消息ID、發(fā)送方、接收方、消息類型、發(fā)送序列號(hào)、發(fā)送時(shí)間、版本號(hào)、優(yōu)先級(jí)、消息體長(zhǎng)度;所述消息類型字段中均包括會(huì)話標(biāo)識(shí)ID、消息正文兩個(gè)基本字段;[0010]所述消息體,儲(chǔ)存消息承載的信息內(nèi)容,所述消息體包含的字段有:消息內(nèi)容和消息擴(kuò)展;
      [0011]所述消息尾,儲(chǔ)存消息的正確性校驗(yàn)數(shù)據(jù),所述消息尾包含的字段有:消息摘要算法、摘要值、校驗(yàn)選項(xiàng);
      [0012]所述消息頭、消息體、消息尾為固定格式,即分別包含設(shè)定的各字段名稱,通過(guò)消息中字段不同的賦值而賦予不同的語(yǔ)義;
      [0013](2)消息傳遞步驟:包括消息產(chǎn)生、消息入列、消息取回、消息解析和策略映射;
      [0014]所述消息產(chǎn)生:根據(jù)消息模板,把消息內(nèi)容和相關(guān)資源打包或編號(hào),生成消息實(shí)例,為消息中各字段賦值;所述相關(guān)資源是指程序運(yùn)行相關(guān)資源,包括動(dòng)態(tài)鏈接庫(kù)、數(shù)據(jù)文件及作業(yè)啟動(dòng)文件;
      [0015]所述消息入列:消息生產(chǎn)方將消息實(shí)例推送到消息服務(wù)系統(tǒng)中指定的消息隊(duì)列;
      [0016]所述消息取回:消息消費(fèi)方從消息服務(wù)系統(tǒng)中指定的消息隊(duì)列取出消息實(shí)例,存于本地內(nèi)存;
      [0017]所述消息解析:消息消費(fèi)方收到消息實(shí)例后,將消息實(shí)例中的字段數(shù)據(jù)解析出來(lái),賦予本地變量,即將消息分解成變量;
      [0018]所述策略映射:消息消費(fèi)方根據(jù)消息模板中的消息類型、消息類型中的會(huì)話標(biāo)識(shí)ID、和消息內(nèi)容中對(duì)應(yīng)的會(huì)話作業(yè)狀態(tài),執(zhí)行相應(yīng)的策略,即根據(jù)消息類型選擇不同的業(yè)務(wù)處理服務(wù);
      [0019]所述的消息類型:包括作業(yè)提交消息、作業(yè)狀態(tài)查詢消息、作業(yè)狀態(tài)反饋消息、作業(yè)結(jié)果反饋消息、運(yùn)行信息反饋消息5種;
      [0020]所述的會(huì)話標(biāo)識(shí)ID:由前端系統(tǒng)ID、用戶ID、作業(yè)ID,以及提交時(shí)間構(gòu)成,用下劃線“_”將這四部分連接構(gòu)成會(huì)話標(biāo)識(shí)ID ;
      [0021]所述會(huì)話作業(yè)狀態(tài):指當(dāng)前作業(yè)在后端系統(tǒng)的處理狀態(tài),包括,預(yù)備(PREPARING)、等待執(zhí)行(WAITIJG)、執(zhí)行(RUNNING)、掛起(SUSPEND)、異常結(jié)束(EXCEPTION)、正常結(jié)束(FINISHED)這六種狀態(tài);含義分別如下:預(yù)備(PREPARING)指作業(yè)提交消息到達(dá)后端系統(tǒng),正在準(zhǔn)備該作業(yè)的運(yùn)行環(huán)境;等待執(zhí)行(WAITIJG)指運(yùn)行環(huán)境已齊備,等待被執(zhí)行;執(zhí)行(RUNNING)是指作業(yè)正在運(yùn)行中;掛起(SUSPEND)是指作業(yè)執(zhí)行過(guò)程被暫時(shí)中止,等待繼續(xù);異常結(jié)束(EXCEPTION)是指作業(yè)的執(zhí)行遇到異常,結(jié)束退出;正常結(jié)束(FINISHED)是指作業(yè)的正常執(zhí)行結(jié)束,退出執(zhí)行環(huán)境。
      [0022]所述消息體中的消息擴(kuò)展固定包含擴(kuò)展內(nèi)容和預(yù)留項(xiàng)兩部分。
      [0023]所述作業(yè)提交消息包含的字段序列為:會(huì)話標(biāo)識(shí)ID、資源描述、消息正文、文件名、文件類型、文件編號(hào)和文件總數(shù)7個(gè)字段;作業(yè)狀態(tài)查詢消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文2個(gè)字段;所述作業(yè)狀態(tài)反饋消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文2個(gè)字段;所述的作業(yè)結(jié)果反饋消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文、文件名、文件類型4個(gè)字段;所述運(yùn)行信息反饋消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文2個(gè)字段。
      [0024]所述策略映射中相應(yīng)策略是:根據(jù)消息類型選擇不同的業(yè)務(wù)處理服務(wù)具體過(guò)程如下:
      [0025](I)如果是作業(yè)提交消息,則記錄該會(huì)話作業(yè)狀態(tài)為預(yù)備(PREPARING),并解析消息內(nèi)容,創(chuàng)建本地目錄結(jié)構(gòu),并在作業(yè)啟動(dòng)文件中標(biāo)記主文件;[0026](2)如果是作業(yè)狀態(tài)查詢消息,則解析消息內(nèi)容生成作業(yè)的查詢操作參數(shù),啟動(dòng)查詢操作;
      [0027](3)如果是作業(yè)狀態(tài)反饋消息,則提取作業(yè)的狀態(tài)信息作為消息內(nèi)容,以后端系統(tǒng)作為消息生產(chǎn)方,用戶所在的前端系統(tǒng)作為消息消費(fèi)返,發(fā)送消息實(shí)例;
      [0028](4)如果是作業(yè)結(jié)果反饋消息,則提取作業(yè)運(yùn)行結(jié)果,作為消息體,以后端系統(tǒng)作為消息生產(chǎn)方,以用戶所在的前端系統(tǒng)作為消息消費(fèi)方,發(fā)送消息實(shí)例;
      [0029](5)如果是作業(yè)運(yùn)行信息反饋消息,將作業(yè)運(yùn)行過(guò)程中的提示信息以及錯(cuò)誤信息作為消息體,以后端系統(tǒng)作為消息生產(chǎn)方,用戶所在的前端系統(tǒng)作為消息消費(fèi)方,發(fā)送消息實(shí)例。
      [0030]所述后端系統(tǒng)為每一個(gè)會(huì)話維護(hù)一個(gè)狀態(tài)棧,當(dāng)新消息到達(dá)時(shí),根據(jù)取回的消息實(shí)例中的會(huì)話標(biāo)識(shí)ID的值,以及該會(huì)話標(biāo)識(shí)ID對(duì)應(yīng)的本地會(huì)話作業(yè)狀態(tài),選擇針對(duì)該消息實(shí)例的處理方法;若會(huì)話標(biāo)識(shí)ID為新值,則記錄該會(huì)話作業(yè)狀態(tài),按照策略解析消息內(nèi)容,創(chuàng)建本地目錄結(jié)構(gòu),在作業(yè)啟動(dòng)文件中標(biāo)注主文件;若會(huì)話標(biāo)識(shí)ID已存在,且消息類型為作業(yè)狀態(tài)查詢,則提取消息內(nèi)容生成作業(yè)的查詢操作參數(shù),啟動(dòng)查詢操作;若會(huì)話標(biāo)識(shí)ID已存在,且消息類型為作業(yè)反饋消息,則提取消息內(nèi)容,以既定方式展示,并更新會(huì)話作業(yè)狀態(tài)。
      [0031]本發(fā)明與現(xiàn)有技術(shù)相比的有益效果在于:通過(guò)本發(fā)明所述的消息模板和消息傳遞方法,能夠建立從消息生產(chǎn)方到消息消費(fèi)方的高性能計(jì)算作業(yè)內(nèi)容和運(yùn)行狀態(tài)的信息傳遞。通過(guò)策略映射機(jī)制,可靠地建立高性能計(jì)算云服務(wù)平臺(tái)中各子系統(tǒng)之間的信息傳遞機(jī)制,松綁前后端系統(tǒng)之間的高耦合限制,提高系統(tǒng)部署的靈活性和魯棒性,為面向高性能計(jì)算的云服務(wù)平臺(tái)體系結(jié)構(gòu)提供參考實(shí)現(xiàn)。
      【專利附圖】

      【附圖說(shuō)明】
      [0032]圖1本發(fā)明所述的云平服務(wù)臺(tái)基本結(jié)構(gòu)示意圖;
      [0033]圖2本發(fā)明所述的消息模板設(shè)計(jì);
      [0034]圖3本發(fā)明所述的消息類型說(shuō)明及編碼;
      [0035]圖4本發(fā)明所述的會(huì)話作業(yè)狀態(tài)定義;
      [0036]圖5本發(fā)明所述的消息傳遞接口集;
      [0037]圖6為本發(fā)明中策略映射具體實(shí)現(xiàn)流程圖。
      【具體實(shí)施方式】
      [0038]為了準(zhǔn)確說(shuō)明本發(fā)明,本文采用如下術(shù)語(yǔ)及含義。
      [0039]高性能計(jì)算:High Performance Computing,簡(jiǎn)稱HPC。指使用多個(gè)處理器或者集群中組織的多臺(tái)計(jì)算機(jī)執(zhí)行計(jì)算任務(wù),既可以基于標(biāo)準(zhǔn)計(jì)算機(jī)集群,也可以借助專用硬件設(shè)備。目的是提高問(wèn)題計(jì)算的規(guī)模,縮短計(jì)算任務(wù)執(zhí)行時(shí)間。
      [0040]云服務(wù)平臺(tái):將系統(tǒng)資源以虛擬化(Virtualization)、效用計(jì)算(UtilityComputing)的方式提供給用戶的模式。按照提供的資源層次,通常將云服務(wù)平臺(tái)分為三大類:基礎(chǔ)設(shè)施即服務(wù)的IaaS(Infrastructure as a Service)、系統(tǒng)平臺(tái)即服務(wù)的PaaS(Platform as a Service)和軟件即服務(wù)的 SaaS(Software as a Service)等。本發(fā)明中的云服務(wù)平臺(tái)屬Paas類型與SaaS的綜合模式,其基本結(jié)構(gòu)由前端系統(tǒng)、后端系統(tǒng)和消息系統(tǒng)3部分構(gòu)成,圖1所示的消息傳遞系統(tǒng),主要由三部分組成:前端系統(tǒng),后端系統(tǒng),消息系統(tǒng)。
      [0041]前端系統(tǒng):在高性能云服務(wù)平臺(tái)中,其安裝位置靠近用戶,主要功能是程序編輯器、用戶管理、作業(yè)管理等。
      [0042]后端系統(tǒng):在高性能云服務(wù)平臺(tái)中,其安裝位置靠近高性能計(jì)算集群,主要功能是為高性能計(jì)算程序提供預(yù)處理服務(wù)。
      [0043]消息系統(tǒng):在高性能云服務(wù)平臺(tái)中,其安裝位置介于前端系統(tǒng)和后端系統(tǒng)之間,主要功能是前/后系統(tǒng)之間傳遞以規(guī)定消息模板封裝的業(yè)務(wù)交換消息。
      [0044]消息模板:為前/后端系統(tǒng)之間傳遞的信息規(guī)定固定格式,便于消息生產(chǎn)方/消費(fèi)方(消息的發(fā)/收)雙方準(zhǔn)確會(huì)話。一般由字段序列表示,在面向?qū)ο笳Z(yǔ)言中表示為類定義。
      [0045]消息類型:消息模板中所說(shuō)的固定格式主要有5種,如圖3。作業(yè)提交消息,消息類型碼為J0B_SUB,用于提交計(jì)算作業(yè),其消息正文為高性能計(jì)算程序及相關(guān)聯(lián)的資源,如動(dòng)態(tài)鏈接庫(kù)文件、數(shù)據(jù)文件、配置文件等。作業(yè)查詢消息,消息類型碼為J0B_QRY,用于查詢已提交的作業(yè)的當(dāng)前執(zhí)行狀態(tài),要求后端系統(tǒng)返回該作業(yè)的當(dāng)前狀態(tài)。;作業(yè)結(jié)果反饋消息,消息類型碼為FDBK_JRST,后端系統(tǒng)用于向前端系統(tǒng)反饋?zhàn)鳂I(yè)計(jì)算結(jié)果,消息正文為文件內(nèi)容,或文件地址。作業(yè)狀態(tài)反饋消息,消息類型碼為FDBK_JSTA,后端系統(tǒng)用于向前端系統(tǒng)反饋指定作業(yè)的執(zhí)行狀態(tài),可以應(yīng)答前端系統(tǒng)的查詢,也可以主動(dòng)反饋;運(yùn)行信息反饋消息,消息類型碼為FDBK_RINF,作業(yè)執(zhí)行完畢后,該作業(yè)依賴的運(yùn)行環(huán)境針對(duì)該作業(yè)結(jié)束的運(yùn)行報(bào)告消息。
      [0046]消息實(shí)例:為消息模板中的字段序列賦值后生成的具體消息。在面向?qū)ο笳Z(yǔ)言中表示為類創(chuàng)建的類對(duì)象。
      [0047]傳遞方法:消息實(shí)例從消息生產(chǎn)方傳送到消息消費(fèi)方過(guò)程中執(zhí)行的步驟和用到的設(shè)備。
      [0048]消息隊(duì)列:消息服務(wù)系統(tǒng)上由消息實(shí)例組成的隊(duì)列,按照先進(jìn)先出的方式管理。
      [0049]消息產(chǎn)生(封裝):也稱消息封裝(即創(chuàng)建),指根據(jù)消息模板,將需要發(fā)送的消息內(nèi)容和相關(guān)資源打包或編號(hào),生成消息對(duì)象實(shí)例(指將需要發(fā)送的信息內(nèi)容按照規(guī)定的消息模板創(chuàng)建消息實(shí)例,形成一個(gè)整體數(shù)據(jù),供消息傳遞過(guò)程使用)。
      [0050]消息入列:消息生產(chǎn)方把消息對(duì)象實(shí)例裝入指定消息服務(wù)系統(tǒng)中的指定消息隊(duì)列的操作。
      [0051]消息取回:消息消費(fèi)方按照策略從指定的消息服務(wù)系統(tǒng)中的指定消息隊(duì)列中取回消息。
      [0052]ActiveMQ =Apache開(kāi)發(fā)的開(kāi)源的消息隊(duì)列服務(wù)程序,用于消息隊(duì)列管理。
      [0053]消息解析:按照統(tǒng)一遵循的消息模板,從消息實(shí)例中把包含的字段值提取,并為消息消費(fèi)方工作流程中使用的變量賦值,交付進(jìn)一步流程使用(即消息消費(fèi)方收到消息后,將消息實(shí)例中的字段數(shù)據(jù)解析出來(lái),賦予本地變量)。
      [0054]策略映射:消息消費(fèi)方根據(jù)會(huì)話標(biāo)識(shí)ID、消息類型和會(huì)話對(duì)應(yīng)的作業(yè)狀態(tài),執(zhí)行相應(yīng)的策略,選擇在消息消費(fèi)方應(yīng)該啟動(dòng)的業(yè)務(wù)流程。本操作需要會(huì)話標(biāo)識(shí)ID的命名規(guī)則支持。
      [0055]會(huì)話標(biāo)識(shí)={前端系統(tǒng)ID,用戶ID,作業(yè)ID,提交時(shí)間}
      [0056]以上各段用字符串表示:Sfs為前端系統(tǒng)ID,Suid為用戶ID,Sjid作業(yè)ID,Stime為提交時(shí)間,則構(gòu)造“會(huì)話標(biāo)識(shí)”字符串Ssid的規(guī)則如下:
      [0057]Ssid = Sfs+ “_”+Suid+ “_”+Sjid+ +Stime
      [0058]其中,+ +表示各字段以下劃線字符連接。
      [0059]UML:Unified Modeling Language的簡(jiǎn)寫,稱統(tǒng)一建模語(yǔ)言,是一種支持模型化軟件系統(tǒng)開(kāi)發(fā)的圖形化語(yǔ)言,為軟件開(kāi)發(fā)的各階段提供模型化和可視化支持,在面向?qū)ο蠓治雠c設(shè)計(jì)過(guò)程中發(fā)揮作用。
      [0060]本發(fā)明所述方法包括兩部分:(I)針對(duì)高性能計(jì)算云服務(wù)平臺(tái),設(shè)計(jì)消息格式,構(gòu)造消息模板,用于通信系統(tǒng)的統(tǒng)一處理;(2)通信內(nèi)容被執(zhí)行消息封裝、消息入列、消息取回、消息解析、策略映射等操作,從消息生產(chǎn)方到達(dá)消息消費(fèi)方。本發(fā)明所涉及的消息模板和消息傳遞方法,能普遍應(yīng)用于面向高性能計(jì)算的云服務(wù)平臺(tái)。
      [0061]本發(fā)明的原理如下:
      [0062]本發(fā)明面向高性能計(jì)算云服務(wù)平臺(tái)。消息的目標(biāo)是設(shè)計(jì)能滿足高性能計(jì)算的過(guò)程管理需要,消息的傳遞過(guò)程可靠,實(shí)現(xiàn)前后端系統(tǒng)解耦合。消息的傳遞控制規(guī)則根據(jù)消息類型、會(huì)話作業(yè)狀態(tài)決定。
      [0063]本發(fā)明中預(yù)定義的消息類型有:作業(yè)提交消息、作業(yè)狀態(tài)查詢消息、作業(yè)狀態(tài)反饋消息、作業(yè)結(jié)果反饋消息、運(yùn)行信息反饋消息等。便于程序?qū)崿F(xiàn),本發(fā)明為不同消息類型設(shè)計(jì)唯一標(biāo)識(shí)碼。
      [0064]本發(fā)明中預(yù)定義的會(huì)話作業(yè)狀態(tài)有:預(yù)備、可執(zhí)行、執(zhí)行、掛起、中止、結(jié)束等。預(yù)定義的作業(yè)狀態(tài)用于指導(dǎo)相對(duì)應(yīng)的消息處理的流程選擇。會(huì)話作業(yè)狀態(tài)預(yù)定義碼見(jiàn)圖4。
      [0065]本發(fā)明的主要內(nèi)容包括:
      [0066]A.面向高性能計(jì)算的云服務(wù)消息模板
      [0067]為描述的準(zhǔn)確性和程序?qū)崿F(xiàn)的方便性,面向高性能計(jì)算的云服務(wù)消息形式化表示如下。設(shè)M為消息,則:
      [0068]M = sequence of {MH, Mb, Mt}
      [0069]其中,Mh為消息頭(Message Head) ;MB為消息體(Message Body) ;MT為消息尾(Message Tail)。
      [0070]進(jìn)一步,
      [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為消息標(biāo)識(shí);Sender為發(fā)送方標(biāo)識(shí),Receiver為接收方標(biāo)識(shí),MType為消息類型,SNo為發(fā)送序列號(hào),STime為發(fā)送時(shí)間,Version消息格式版本號(hào),Priority為消息優(yōu)先級(jí),LBody為消息體長(zhǎng)度。MC為消息內(nèi)容,MExt為消息擴(kuò)展。MDA為消息摘要算法,D為摘要值,Opt為校驗(yàn)選項(xiàng)。
      [0075]根據(jù)消息類型MType,本發(fā)明設(shè)計(jì)了不同的消息內(nèi)容MCx。根據(jù)上文設(shè)計(jì),[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為會(huì)話標(biāo)識(shí),RDisc為資源描述,MessageText為消息正文,F(xiàn)ileName為文件名,F(xiàn)ileType為文件類型,F(xiàn)ileNo為文件編號(hào),TotalFileNumber為文件總數(shù)。
      [0084]B.消息傳遞步驟
      [0085]本發(fā)明說(shuō)明的消息傳遞方法歸結(jié)為5個(gè)基本操作。各操作以消息為參數(shù)。如圖5,CloudMSG是消息模板的定義,包括消息頭,消息體,消息尾;其余其定義如下,
      [0086]CreateMessage (ΜΗ, MB, MT):消息創(chuàng)建操作;
      [0087]PutMessage (M):消息入列操作;
      [0088]FetchMessage ():消息取回操作;
      [0089]DeMessage (M):消息解析操作;
      [0090]SessionMappingO:會(huì)話與策略的映射;
      [0091]消息傳遞方法包括一下步驟:
      [0092](I)準(zhǔn)備好Mh、Mb> Mt數(shù)據(jù),調(diào)用CreateMessage操作,得到消息實(shí)例M ;
      [0093](2)消息生產(chǎn)方調(diào)用PutMessage操作,將消息實(shí)例M添加到消息服務(wù)器中的消息隊(duì)列;
      [0094](3)消息消費(fèi)方調(diào)用FetchMessage操作,從消息服務(wù)器隊(duì)列中將消息實(shí)例M取到本地;
      [0095](4)消息使用者調(diào)用DeMessage操作,從消息實(shí)例中獲取到相應(yīng)的字段值;
      [0096](5)消息使用者調(diào)用SessionMapping操作,根據(jù)回話ID、會(huì)話狀態(tài)和消息類型,選擇進(jìn)一步操作。如圖6消息策略映射具體流程,獲取一個(gè)消息后,通過(guò)類型判定器判定其屬于5種消息中的哪一種,然后選擇不同的處理流程。
      [0097]實(shí)施例1:
      [0098]下面以Java語(yǔ)言為例,說(shuō)明通信雙方之間的消息傳遞過(guò)程。假設(shè)消息隊(duì)列服務(wù)軟件采用Apache的開(kāi)源系統(tǒng)Active MQ,但本發(fā)明的實(shí)現(xiàn)不依賴于此系統(tǒng)。系統(tǒng)設(shè)計(jì)方案描述中使用UML概念。
      [0099]對(duì)應(yīng)于
      【發(fā)明內(nèi)容】
      ,整個(gè)過(guò)程分為兩大部分:消息模板定義和消息傳遞過(guò)程。
      [0100]A.消息格式定義
      [0101]1.消息模板定義
      [0102]如圖2所示,根據(jù)Java語(yǔ)言支持的數(shù)據(jù)類型,設(shè)計(jì)消息頭、消息體、消息尾中各字段的數(shù)據(jù)類型和長(zhǎng)度規(guī)定等。
      [0103](I)消息頭[0104]表1消息頭字段的數(shù)據(jù)類型和長(zhǎng)度規(guī)格定義
      【權(quán)利要求】
      1.一種面向高性能計(jì)算的云服務(wù)消息傳遞方法,其特征在于包括如下步驟: (1)消息模板設(shè)計(jì): 所述消息模板為3個(gè)部分:消息頭、消息體和消息尾;其中: 所述消息頭,儲(chǔ)存消息發(fā)收雙方的會(huì)話信息,所述消息頭包含的字段有:消息ID、發(fā)送方、接收方、消息類型、發(fā)送序列號(hào)、發(fā)送時(shí)間、版本號(hào)、優(yōu)先級(jí)、消息體長(zhǎng)度;所述消息類型字段中均包括會(huì)話標(biāo)識(shí)ID、消息正文兩個(gè)基本字段; 所述消息體,儲(chǔ)存消息承載的信息內(nèi)容,所述消息體包含的字段有:消息內(nèi)容和消息擴(kuò)展; 所述消息尾,儲(chǔ)存消息的正確性校驗(yàn)數(shù)據(jù),所述消息尾包含的字段有:消息摘要算法、摘要值、校驗(yàn)選項(xiàng); 所述消息頭、消息體、消息尾為固定格式,即分別包含設(shè)定的各字段名稱,通過(guò)消息中字段不同的賦值而賦予不同的語(yǔ)義; (2)消息傳遞步驟:包括消息產(chǎn)生、消息入列、消息取回、消息解析和策略映射; 所述消息產(chǎn)生:根據(jù)消息模板,把消息內(nèi)容和相關(guān)資源打包或編號(hào),生成消息實(shí)例,為消息中各字段賦值;所述相關(guān)資源是指程序運(yùn)行相關(guān)資源,包括動(dòng)態(tài)鏈接庫(kù)、數(shù)據(jù)文件及作業(yè)啟動(dòng)文件; 所述消息入列:消息生產(chǎn)方將消息實(shí)例推送到消息服務(wù)系統(tǒng)中指定的消息隊(duì)列;所述消息取回:消息消費(fèi)方從消息服務(wù)系統(tǒng)中指定的消息隊(duì)列取出消息實(shí)例,存于本地內(nèi)存; 所述消息解析:消息消費(fèi)方收到消息實(shí)例后,將消息實(shí)例中的字段數(shù)據(jù)解析出來(lái),賦予本地變量,即將消息分解成變量; 所述策略映射:消息消費(fèi)方根據(jù)消息模板中的消息類型、消息類型中的會(huì)話標(biāo)識(shí)ID、和消息內(nèi)容中對(duì)應(yīng)的會(huì)話作業(yè)狀態(tài),執(zhí)行相應(yīng)的策略,即根據(jù)消息類型選擇不同的業(yè)務(wù)處理服務(wù); 所述的消息類型:包括作業(yè)提交消息、作業(yè)狀態(tài)查詢消息、作業(yè)狀態(tài)反饋消息、作業(yè)結(jié)果反饋消息、運(yùn)行信息反饋消息5種; 所述的會(huì)話標(biāo)識(shí)ID:由前端系統(tǒng)ID、用戶ID、作業(yè)ID,以及提交時(shí)間構(gòu)成,用下劃線 ”將這四部分連接構(gòu)成會(huì)話標(biāo)識(shí)ID ; 所述會(huì)話作業(yè)狀態(tài):指當(dāng)前作業(yè)在后端系統(tǒng)的處理狀態(tài),包括,預(yù)備(PREPARING)、等待執(zhí)行(WAITIJG)、執(zhí)行(RUNNING)、掛起(SUSPEND)、異常結(jié)束(EXCEPTION)、正常結(jié)束(FINISHED)這六種狀態(tài);含義分別如下:預(yù)備(PREPARING)指作業(yè)提交消息到達(dá)后端系統(tǒng),正在準(zhǔn)備該作業(yè)的運(yùn)行環(huán)境;等待執(zhí)行(WAITIJG)指運(yùn)行環(huán)境已齊備,等待被執(zhí)行;執(zhí)行(RUNNING)是指作業(yè)正在運(yùn)行中;掛起(SUSPEND)是指作業(yè)執(zhí)行過(guò)程被暫時(shí)中止,等待繼續(xù);異常結(jié)束(EXCEPTION)是指作業(yè)的執(zhí)行遇到異常,結(jié)束退出;正常結(jié)束(FINISHED)是指作業(yè)的正常執(zhí)行結(jié)束,退出執(zhí)行環(huán)境。
      2.根據(jù)權(quán)利要求1所述的面向高性能計(jì)算的云服務(wù)消息傳遞方法,其特征在于:所述消息體中的消息擴(kuò)展固定包含擴(kuò)展內(nèi)容和預(yù)留項(xiàng)兩部分。
      3.根據(jù)權(quán)利要求1所述的面向高性能計(jì)算的云服務(wù)消息傳遞方法,其特征在于:所述作業(yè)提交消息包含的字段序列為:會(huì)話標(biāo)識(shí)ID、資源描述、消息正文、文件名、文件類型、文件編號(hào)和文件總數(shù)7個(gè)字段;作業(yè)狀態(tài)查詢消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文2個(gè)字段;所述作業(yè)狀態(tài)反饋消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文2個(gè)字段;所述的作業(yè)結(jié)果反饋消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文、文件名、文件類型4個(gè)字段;所述運(yùn)行信息反饋消息包含的字段序列為:會(huì)話標(biāo)識(shí)、消息正文2個(gè)字段。
      4.根據(jù)權(quán)利要求1所述的面向高性能計(jì)算的云服務(wù)消息傳遞方法,其特征在于:所述策略映射中相應(yīng)策略是:根據(jù)消息類型選擇不同的業(yè)務(wù)處理服務(wù)具體過(guò)程如下: (1)如果是作業(yè)提交消息,則記錄該會(huì)話作業(yè)狀態(tài)為預(yù)備(PREPARING),并解析消息內(nèi)容,創(chuàng)建本地目錄結(jié)構(gòu),并在作業(yè)啟動(dòng)文件中標(biāo)記主文件; (2)如果是作業(yè)狀態(tài)查詢消息,則解析消息內(nèi)容生成作業(yè)的查詢操作參數(shù),啟動(dòng)查詢操作; (3)如果是作業(yè)狀態(tài)反饋消息,則提取作業(yè)的狀態(tài)信息作為消息內(nèi)容,以后端系統(tǒng)作為消息生產(chǎn)方,用戶所在的前端系統(tǒng)作為消息消費(fèi)返,發(fā)送消息實(shí)例; (4)如果是作業(yè)結(jié)果反饋消息,則提取作業(yè)運(yùn)行結(jié)果,作為消息體,以后端系統(tǒng)作為消息生產(chǎn)方,以用戶所在的前端系統(tǒng)作為消息消費(fèi)方,發(fā)送消息實(shí)例; (5)如果是作業(yè)運(yùn)行信息反饋消息,將作業(yè)運(yùn)行過(guò)程中的提示信息以及錯(cuò)誤信息作為消息體,以后端系統(tǒng)作為消息生產(chǎn)方,用戶所在的前端系統(tǒng)作為消息消費(fèi)方,發(fā)送消息實(shí)例。
      5.根據(jù)權(quán)利要求4所述的面向高性能計(jì)算的云服務(wù)消息傳遞方法,其特征在于:所述后端系統(tǒng)為每一個(gè)會(huì)話維護(hù)一個(gè)狀態(tài)棧,當(dāng)新消息到達(dá)時(shí),根據(jù)取回的消息實(shí)例中的會(huì)話標(biāo)識(shí)ID的值,以及該會(huì)話標(biāo)識(shí)ID對(duì)應(yīng)的本地會(huì)話作業(yè)狀態(tài),選擇針對(duì)該消息實(shí)例的處理方法;若會(huì)話標(biāo)識(shí)ID為新值,則記錄該會(huì)話作業(yè)狀態(tài),按照策略解析消息內(nèi)容,創(chuàng)建本地目錄結(jié)構(gòu),在作業(yè)啟動(dòng)文件中標(biāo)注主文件;若會(huì)話標(biāo)識(shí)ID已存在,且消息類型為作業(yè)狀態(tài)查詢,則提取消息內(nèi)容生成作業(yè)的查詢操作參數(shù),啟動(dòng)查詢操作;若會(huì)話標(biāo)識(shí)ID已存在,且消息類型為作業(yè)反饋消息,則提取消息內(nèi)容,以既定方式展示,并更新會(huì)話作業(yè)狀態(tài)。
      【文檔編號(hào)】G06F17/30GK103984734SQ201410213904
      【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2014年5月20日 優(yōu)先權(quán)日:2014年5月20日
      【發(fā)明者】張常有, 劉仁芬, 段淑鳳, 張先軼, 王婷 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1