關(guān)于新建類信息池和收件類信息池的信息池機(jī)制的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及新建類信息池和收件類信息池的信息傳遞技術(shù)領(lǐng)域,尤其涉及系統(tǒng)消息池模型、構(gòu)件模型以及消息池化技術(shù)。
【背景技術(shù)】
[0002]消息池化需要首先將大量的消息內(nèi)容(文本甚或圖片)從用戶需求中抽取出來并作歸類,對于周期性的項(xiàng)目而言這一步驟即費(fèi)時也未必能夠符合用戶需求反復(fù)變更的需要。也可以在系統(tǒng)開發(fā)后期或者維護(hù)、升級期間通過擴(kuò)展的方式將補(bǔ)充的消息內(nèi)容添加進(jìn)來,但這同樣需要系統(tǒng)在設(shè)計(jì)階段就考慮到后期的種種變數(shù)并預(yù)留出擴(kuò)展的接口。而對于實(shí)時性要求較高的系統(tǒng),比如生產(chǎn)制造業(yè)管理軟件采用消息池化同樣也不合適。因?yàn)橄⒊鼗瘜?shí)現(xiàn)過程中要將大量的消息內(nèi)容(文本甚至圖片)通過網(wǎng)絡(luò)傳播,其間的開銷是不可小視的。應(yīng)用到實(shí)時性高的系統(tǒng)中時不可避免的會產(chǎn)生各種問題。
[0003]消息池化技術(shù)推薦您根據(jù)需要將消息內(nèi)容放在適當(dāng)?shù)奈恢?,每個系統(tǒng)的需求和實(shí)現(xiàn)方案都有或多或少的差異,存放消息內(nèi)容的位置直接影響到系統(tǒng)整體的性能,因此必須也只能根據(jù)自己的特點(diǎn)進(jìn)行權(quán)衡。消息池化表示將在內(nèi)存中某處存在消息,可以把這堆消息放在服務(wù)端也可以放在客戶端。對于前者,客戶端需要頻繁的向服務(wù)端發(fā)送請求,獲取所需的消息內(nèi)容;對于后者,客戶端除了要把所有消息內(nèi)容從服務(wù)端拉到本地,還要負(fù)責(zé)維護(hù)消息池的狀態(tài)和有效性,也許還要考慮同步等諸多問題。
[0004]系統(tǒng)實(shí)施關(guān)于新建類信息池和收件類信息池的信息池機(jī)制的好處:該機(jī)制將原本分散的、不規(guī)則的消息內(nèi)容整合在了一起以方便查找、替換、使用和管理,使企業(yè)級架構(gòu)顯得更為清晰和有效??蛻舳讼⒊乜梢耘c服務(wù)端(數(shù)據(jù)庫)信息的實(shí)時同步,提供一種接口使得二次開發(fā)商能夠?qū)⒆约旱南⒓虾喜⒌皆械南⒓幸约皠討B(tài)替換消息的內(nèi)容。
【發(fā)明內(nèi)容】
[0005]為了克服現(xiàn)有的涉及關(guān)于新建類信息池和收件類信息池技術(shù)領(lǐng)域的不足,本發(fā)明提供一種關(guān)于新建類信息池和收件類信息池的信息池機(jī)制,為構(gòu)件建立了消息池,消息池之間根據(jù)事先訂立的消息協(xié)議進(jìn)行通信。消息池將構(gòu)件的業(yè)務(wù)邏輯與消息交互分離開,將業(yè)務(wù)邏輯封裝起來。構(gòu)件在運(yùn)行時不必了解消息的來源和去向,只需向自身伴隨的消息池發(fā)送或者接收消息即可。關(guān)于新建類信息池和收件類信息池的信息池機(jī)制將消息管理功能從消息總線中剝離出來,并將其靜態(tài)化。消息的登記、分派在部署期完成,不占用系統(tǒng)運(yùn)行時的資源。支持層次風(fēng)格,子構(gòu)件仍然采用關(guān)于新建類信息池和收件類信息池的信息池機(jī)制,使得整個系統(tǒng)形成一種層次狀信息池。
[0006]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:新建類消息池負(fù)責(zé)接收構(gòu)件的狀態(tài)變化信息。如果構(gòu)件在運(yùn)行過程中發(fā)生了狀態(tài)變化,那么構(gòu)件的狀態(tài)數(shù)據(jù)將轉(zhuǎn)存于消息池,等待其它構(gòu)件來取;對方取畢后消息池負(fù)責(zé)銷毀該消息,并回收內(nèi)存,以便接收新的消息。如果該消息為多個其它構(gòu)件所用,那么消息池在所有需求構(gòu)件都取畢之后再進(jìn)行銷毀。收件類消息池負(fù)責(zé)接收其它構(gòu)件的消息并通知構(gòu)件消息己經(jīng)到達(dá)。構(gòu)件可以選擇馬上處理或者暫緩處理,如果選擇暫緩處理,消息池將一直為構(gòu)件保存這條消息,處理完畢后消息池才回收該消息空間。
[0007]本發(fā)明的有益效果是,采用基于信息池的信息傳遞機(jī)制,由于消息的直接傳遞減少了消息的分派和過濾動作。消息的登記和傳遞記錄在預(yù)先訂立的消息傳遞協(xié)議中。消息傳遞協(xié)議就是將消息的傳遞管理從總線功能中剝離出來,大大縮短了系統(tǒng)運(yùn)行時的計(jì)算時間,或用靜態(tài)的協(xié)議換取動態(tài)的路由過程;另一方面消息傳遞與構(gòu)件的業(yè)務(wù)邏輯計(jì)算分離開,降低了系統(tǒng)設(shè)計(jì)的復(fù)雜度。
【附圖說明】
[0008]下面結(jié)合附圖和實(shí)施例對本發(fā)明進(jìn)一步說明。
[0009]圖1為本發(fā)明實(shí)例消息池系統(tǒng)模塊圖。
[0010]圖2為本發(fā)明實(shí)例基于信息池的信息傳遞軟件體系圖。
[0011 ]圖3為本發(fā)明實(shí)例消息池服務(wù)器圖。
[0012]圖4為本發(fā)明實(shí)例消息池模型圖。
[0013]圖5為本發(fā)明實(shí)例基于信息池的信息傳遞軟件構(gòu)建模型圖。
[0014]圖6為本發(fā)明實(shí)例信息交互示意圖。
【具體實(shí)施方式】
[0015]在圖1中,系統(tǒng)實(shí)現(xiàn)基于信息池的信息傳遞運(yùn)行過程如下:
[0016]1.將所有的消息內(nèi)容放在資源文件中,資源文件可以被編譯并嵌在程序集dll中。存放消息內(nèi)容的資源文件被放置在服務(wù)器端,由客戶端請求并獲取。
[0017]2.在客戶端從服務(wù)端請求服務(wù)的過程中,服務(wù)端是被動的和無狀態(tài)的,它的職責(zé)就是從資源文件中讀取全部的消息內(nèi)容,并通過合適的載體通過網(wǎng)絡(luò)發(fā)送給客戶端,由客戶端接受并進(jìn)行處理。
[0018]3.客戶端從服務(wù)端請求并獲取到消息流以后,要在本地作消息緩存。這一過程還需簡單的處理,因?yàn)榉?wù)端發(fā)送過來的消息列表并沒有明確的分類,也不方便本地根據(jù)消息名稱索引具體的消息內(nèi)容,也就是說還要實(shí)現(xiàn)根據(jù)“消息A”這個名字找到消息A的內(nèi)容這樣的效果。這些信息集合應(yīng)當(dāng)作為全局對象一直緩存于內(nèi)存中,它們共同組成了一個消息池,向前臺的Form或Web界面提供消息來源,直至客戶端關(guān)閉。
[0019]在圖4中,表示了基于信息池的信息傳遞軟件構(gòu)建模型的所有實(shí)體和步驟。基于信息池的信息傳遞軟件構(gòu)建模型在消息傳遞設(shè)置了一個新的實(shí)體消息模塊。消息模塊主要負(fù)責(zé)與消息池的聯(lián)系,從消息池獲取消息或者將狀態(tài)變化寫入消息池。業(yè)務(wù)邏輯模塊則用于核心業(yè)務(wù)邏輯的計(jì)算?;谛畔⒊氐男畔鬟f支持系統(tǒng)自頂向下進(jìn)行層次化分解,一個構(gòu)件可以由多個子構(gòu)件組裝而成。每個子構(gòu)件可以掛載各自的消息池,但是多個子構(gòu)件共享同一個外部消息池,即子構(gòu)件由同一個消息模塊向同一個消息池傳輸數(shù)據(jù)。構(gòu)件是獨(dú)立的計(jì)算模塊,可以用任何語言進(jìn)行編寫。構(gòu)件之間的通信仍是通過消息傳遞完成的,消息在消息池之間傳輸。每一個構(gòu)件有一個掛載的消息池,消息池是消息的載體,一方面用于存儲本地構(gòu)件的計(jì)算結(jié)果,另一方面用于接收來自其它構(gòu)件的消息。一種在應(yīng)用程序?qū)咏y(tǒng)一實(shí)現(xiàn)消息池模型、構(gòu)件模型以及消息傳遞協(xié)議方案,消息協(xié)議規(guī)定了構(gòu)件之間的消息訪問規(guī)則,消息傳輸路徑的選擇依據(jù)靜態(tài)的消息傳遞協(xié)議。在系統(tǒng)穩(wěn)定運(yùn)行的情況下,構(gòu)件之間的消息傳遞的內(nèi)容和方向是固定的,因此沒有必要在系統(tǒng)運(yùn)行時動態(tài)地進(jìn)行消息路由。
【主權(quán)項(xiàng)】
1.關(guān)于新建類信息池和收件類信息池的信息池機(jī)制,其特征是:基于新建類消息池的負(fù)責(zé)接收構(gòu)件的狀態(tài)變化信息,基于收件類消息池的接收其它構(gòu)件的消息并通知構(gòu)件消息已經(jīng)到達(dá)。為構(gòu)件建立了消息池,消息池之間根據(jù)事先訂立的消息協(xié)議進(jìn)行通信。關(guān)于新建類信息池和收件類信息池的信息池機(jī)制將消啟、管理功能從消息總線中剝離出來,并將其靜態(tài)化。支持層次風(fēng)格,子構(gòu)件仍然采用關(guān)于新建類信息池和收件類信息池的信息池機(jī)制,使得整個系統(tǒng)形成一種層次狀信息池。2.根據(jù)權(quán)利要求1所述的基于新建類消息池的負(fù)責(zé)接收構(gòu)件的狀態(tài)變化信息機(jī)制,其特征是:如果構(gòu)件在運(yùn)行過程中發(fā)生了狀態(tài)變化,那么構(gòu)件的狀態(tài)數(shù)據(jù)將轉(zhuǎn)存于消息池,等待其它構(gòu)件來取;對方取畢后,消息池負(fù)責(zé)銷毀該消息,并回收內(nèi)存,以便接收新的消息。如果該消息為多個其它構(gòu)件所用,那么消息池在所有需求構(gòu)件都取畢之后再進(jìn)行銷毀。3.根據(jù)權(quán)利要求1所述的基于基于收件類消息池的接收其它構(gòu)件的消息并通知構(gòu)件消息已經(jīng)到達(dá),其特征是:構(gòu)件可以選擇馬上處理或者暫緩處理,如果選擇暫緩處理,消息池將一直為構(gòu)件保存這條消息,處理完畢后消息池回收該消息空間。
【專利摘要】一種關(guān)于新建類信息池和收件類信息池的信息池機(jī)制,涉及新建類信息池和收件類信息池的信息傳遞模型、構(gòu)件模型以及消息池化技術(shù)。新建類消息池負(fù)責(zé)接收構(gòu)件的狀態(tài)變化信息。收件類消息池負(fù)責(zé)接收其它構(gòu)件的消息并通知構(gòu)件消息已經(jīng)到達(dá)。本發(fā)明的實(shí)施例提供一種關(guān)于新建類信息池和收件類信息池的信息池機(jī)制,為構(gòu)件建立了消息池,消息池之間根據(jù)事先訂立的消息協(xié)議進(jìn)行通信。關(guān)于新建類信息池和收件類信息池的信息池機(jī)制將消息管理功能從消息總線中剝離出來,并將其靜態(tài)化。支持層次風(fēng)格,子構(gòu)件仍然采用關(guān)于新建類信息池和收件類信息池的信息池機(jī)制,使得整個系統(tǒng)形成一種層次狀信息池。
【IPC分類】H04L29/06, H04L12/58
【公開號】CN105577508
【申請?zhí)枴緾N201510821081
【發(fā)明人】葉君玉
【申請人】上海贊越軟件服務(wù)中心
【公開日】2016年5月11日
【申請日】2015年11月24日