一種耦合報文信用釋放方法及系統的制作方法
【技術領域】
[0001]本發明涉及耦合報文信用釋放技術領域,更具體地說,涉及一種耦合報文信用釋放方法及系統。
【背景技術】
[0002]目前為了減少接口信號數量,采用不同類型報文同一傳輸通道傳輸,在接收端分通道分別緩存處理的方式。其中,每筆報文通常只含有一種報文類型,每種類型報文有獨立的信用控制和釋放機制,但在某些情況下,為了提高傳輸效率,采用耦合報文傳輸方式。耦合報文是一筆報文,含有多種報文類型的一種形式。其中,每筆親合報文內部所包含的報文類型不是唯一的,每種類型報文至多一個。耦合報文的信用在信息發送端的消耗與單獨類型的報文類似,但在接收端的信用釋放由于包含的類型和數量不同,報文分通道后讀取的時機不同,其信用釋放機制就較單獨類型報文復雜的多。
[0003]因此,如何釋放耦合報文的信用,從而平衡發送端與接收端的處理能力是現在需要解決的問題。
【發明內容】
[0004]本發明的目的在于提供一種耦合報文信用釋放方法及系統,以釋放耦合報文的信用,從而平衡發送端與接收端的處理能力。
[0005]為實現上述目的,本發明實施例提供了如下技術方案:
[0006]—種耦合報文信用釋放方法,包括:
[0007]接收報文輸出模塊發出的報文;
[0008]判斷所述報文是否為耦合報文;若是,則將所述耦合報文中的每種報文按類型緩存,并記錄所述耦合報文的報文類型信息;
[0009]根據所述報文類型信息,判斷所述耦合報文的每種報文是否均被各通道報文接收模塊讀取;
[0010]若是,則釋放一個信用至所述報文輸出模塊。
[0011]優選的,記錄所述耦合報文的報文類型信息之后,包括:
[0012]將所述耦合報文中的每個報文添加耦合標示位。
[0013]優選的,根據所述報文類型信息,判斷所述耦合報文的每種報文是否均被各通道報文接收模塊讀取,包括:
[0014]根據所述報文類型信息,判斷所述耦合報文中的每個報文相對應的耦合報文計數器的數值是否均大于一;其中,所述耦合報文計數器的初始數值為零,當攜帶耦合標示位的報文被讀取后,則將與被讀取的報文所對應的耦合報文計數器的數值加一;
[0015]若是,則判定所述耦合報文的每種報文均被所述各通道報文接收模塊讀取。
[0016]優選的,釋放一個信用至所述報文輸出模塊之后,包括:
[0017]將所述耦合報文中的每個報文所對應的耦合報文計數器的數值均減一,并將所述耦合報文的報文類型信息清除。
[0018]一種耦合報文信用釋放系統,包括:
[0019]報文輸出模塊,用于輸出單類型報文和耦合報文;
[0020]報文分通道緩存模塊,用于接收報文輸出模塊發出的報文;判斷所述報文是否為耦合報文;若是,則將所述耦合報文中的每種報文按類型緩存,并將所述耦合報文的報文類型信息記錄至耦合信息記錄模塊;
[0021 ]所述耦合信息記錄模塊用于記錄所述耦合報文的報文類型信息;
[0022]各通道報文接收模塊,用于從所述報文分通道緩存模塊讀取報文;
[0023]信用釋放仲裁模塊,用于根據所述報文類型信息,判斷所述耦合報文的每種報文是否均被所述各通道報文接收模塊讀取;若是,則釋放一個信用至所述報文輸出模塊。
[0024]優選的,所述報文分通道緩存模塊,包括:
[0025]耦合標示位添加單元,用于將所述耦合報文中的每個報文添加耦合標示位。
[0026]優選的,所述信用釋放仲裁模塊,包括:
[0027]判斷單元,用于根據所述報文類型信息,判斷所述耦合報文中的每個報文相對應的耦合報文計數器的數值是否均大于一;其中,所述耦合報文計數器的初始數值為零,當攜帶耦合標示位的報文被讀取后,則將與被讀取的報文所對應的耦合報文計數器的數值加
,
[0028]若是,則判定所述耦合報文的每種報文均被所述各通道報文接收模塊讀取。
[0029]優選的,所述信用釋放仲裁模塊,包括:
[0030]執行單元,用于將所述耦合報文中的每個報文所對應的耦合報文計數器的數值均減一,并將所述耦合報文的報文類型信息清除。
[0031]通過以上方案可知,本發明實施例提供的一種耦合報文信用釋放方法及系統,包括:接收報文輸出模塊發出的報文;判斷所述報文是否為耦合報文;若是,則將所述耦合報文中的每種報文按類型緩存,并記錄所述耦合報文的報文類型信息;根據所述報文類型信息,判斷所述耦合報文的每種報文是否均被各通道報文接收模塊讀取;若是,則釋放一個信用至所述報文輸出模塊,可見,在本實施例中,只有耦合報文中的每個報文均被讀取后,才會釋放給報文輸出模塊一個信用,從而報文輸出模塊才有一個信用發送下一個耦合報文,從而平衡發送端與接收端的處理能力,不僅資源開銷少,而且實現方式簡單。
【附圖說明】
[0032]為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0033]圖1為本發明實施例公開的一種耦合報文信用釋放方法流程示意圖;
[0034]圖2為本發明實施例公開的一種耦合報文信用釋放系統結構示意圖。
【具體實施方式】
[0035]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0036]本發明實施例公開了一種耦合報文信用釋放方法及系統,以釋放耦合報文的信用,從而平衡發送端與接收端的處理能力。
[0037]參見圖1,本發明實施例提供的一種耦合報文信用釋放方法,包括:
[0038]S101、接收報文輸出模塊發出的報文;
[0039]S102、判斷所述報文是否為耦合報文;若是,則執行S103、將所述耦合報文中的每種報文按類型緩存,并記錄所述耦合報文的報文類型信息;若否,則執行S101;
[0040]具體的,當該報文不是耦合報文時,不添加指示信息,并繼續接收處理輸出模塊發出的下一筆報文。
[0041 ]其中,記錄所述耦合報文的報文類型信息之后,包括:
[0042]將所述耦合報文中的每個報文添加耦合標示位。
[0043]具體的,當報文通過傳輸通道進行緩存之前,可以通過報文類型判別該筆報文是否屬于耦合報文,如果是耦合報文,則將耦合報文包括的所有類型的報文均添加耦合標志位,即含有耦合標志位的報文均是耦合報文中的報文;再將耦合報文按報文類型分別緩存進入先入先出的分通道報文緩存模塊。其中,在分通道報文緩存模塊中,不同類型報文對應的緩存相互獨立,后續模塊讀取處理時,相互間不存在依賴關系。
[0044]其中,當耦合報文寫入分通道報文緩存模塊時,將耦合報文的報文類型信息,即包含哪幾種報文的信息,同時也寫入先入先出的耦合信息記錄模塊。
[0045]S104、根據所述報文類型信息,判斷所述耦合報文的每種報文是否均被各通道報文接收模塊讀取;
[0046]若是,則執行S105、釋放一個信用至所述報文輸出模塊;若否,則繼續執行S104。
[0047]具體的,由于耦合報文所包含的所有報文類型共享一個信用,所以只有當耦合報文所包含的所有報文類型全部被讀取處理后,才能進行該筆信用的釋放,否則會導致死鎖或溢出等報文無法得到正確處理的現象。
[0048]其中,根據所述報文類型信息,判斷所述耦合報文的每種報文是否均被各通道報文接收模塊讀取,包括:
[0049]根據所述報文類型信息,判斷所述耦合報文中的每個報文相對應的耦合報文計數器的數值是否均大于一;其中,所述耦合報文計數器的初始數值為零,當攜帶耦合標示位的報文被讀取后,則將與被讀取的報文所對應的耦合報文計數器的數值加一;
[0050]若是,則判定所述耦合報文的每種報文均被所述各通道報文接收模塊讀取。
[0051]具體的,在報文分通道緩存模塊中,每種類型報文通道均設置獨立的耦合報文計數器,當被讀取的報文的耦合信息標識位有效時,則該種類型報文對應的耦合報文計數器的數值加一,否則耦合報文計數器的數值保持不變。其中,耦合報文計數器值所代表的是,包含該類型報文的耦合報文在本通道已經被后續模塊讀取處理,但對應的耦合報文信用未被釋放的數量。規定耦合報文計數器初始值為0,為了使計數器值不會溢出,規定其位寬所能代表的最大計數器值,不小于耦合信息報文信用的最大值。
[0052]并且在本實施例中,耦合報文的報文類型信息都被記錄,所以按照先入先出的順序,根據耦合信息記錄模塊記錄的報文類型信息,判斷該報文類型信息包括的所有報文的耦合報文計數器的數值是否均為非零,若均為非零,則判定耦合報文的每種報文均被各通道報文接收模塊讀取,則釋放一筆耦合報文信用,并進入下一次釋放仲裁流程,否則,繼續等待直至滿足釋放條件。
[0