新四季網

通訊協議轉換方法與裝置與流程

2023-09-20 03:27:40 2


本公開涉及通信技術領域,具體而言,涉及一種可轉換多種通訊協議的通訊協議轉換方法與裝置。



背景技術:

在通訊前置通訊系統開發中,經常需要為適應第三方系統自定義通訊協議而進行系統開發。現有的自定義通訊協議主要有長度約定和結束格式串約定兩種常用約定:長度約定是指發送方在報文中的一定位置寫入報文長度,接收方解析報文中的該報文長度標識,進而接收完整的報文。結束格式串約定是指發送方在報文的尾端寫入約定的結束符,接收方在收到結束格式串後,獲知接收完整。

不同第三方系統的自定義通訊協議對報文長度的格式、在報文長度在報文中的位置定義、結束符號的定義等約定各不相同,前置通訊系統開發者通常需要針對每個第三方系統進行開發,甚至在部署運行後,如果第三方接口變動,開發者還需要進行重新對前置通訊系統進行開發編譯部署。

圖1是一種現有的前置通訊系統對接多個第三方系統的結構示意圖。參考圖1,前置通訊系統在對接第三方系統時,每對接一個新系統,就需要開發一個新的通訊模塊,以將第三方系統的請求通訊數據轉換為前置通訊系統真正需要的業務請求數據並提交給前置通訊系統,以及將前置通訊系統應答的業務數據轉換為匹配第三方自定義通訊協議的通訊數據返回給對應的第三方系統。

因此,現有技術中的通訊模塊開發方式比較繁瑣,且容易出錯,在項目實施中,這類對接第三方系統的開發往往還會佔用較多工作量,拖延開發進度。為了節省項目開發時間,提高項目開發效率,需要一種高效的通訊協議轉換方法。

需要說明的是,在上述背景技術部分公開的信息僅用於加強對本公開的背景的理解,因此可以包括不構成對本領域普通技術人員已知的現有技術的信息。



技術實現要素:

本公開的目的在於提供一種通訊協議轉換方法與裝置,用於至少在一定程度上克服由於相關技術的限制和缺陷而導致的一個或多個問題。

根據本公開的一個方面,提供一種通訊協議轉換方法,包括:

用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串;

接收報文發送任務,接收業務數據以及目標通訊系統標識;

根據所述目標通訊系統標識確定目標通訊協議,查找對應所述目標通訊協議的格式串;

根據所述業務數據以及所述格式串生成符合所述目標通訊協議的報文,將所述報文發送給所述目標通訊系統。

在本公開的一種示例性實施例中,所述根據所述業務數據以及所述格式串生成符合所述目標通訊協議的報文包括:

將所述格式串加載為描述符數組;

根據所述業務數據,按照所述格式串每個字符標識的含義,遍歷填寫所述描述符數組;

輸出填寫完成的描述符數組作為報文。

在本公開的一種示例性實施例中,所述用格式串描述通訊協議包括:

設置域描述符、第三方系統的信息以及通訊協議中域的映射關係;

根據所述第三方系統的信息、所述映射關係以及接收到的實際通訊協議,確定所述第三方系統的通訊協議的域類型排列順序;

使用域描述符描述所述域類型,根據所述域類型排列順序排列所述域描述符。

在本公開的一種示例性實施例中,所述域類型包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識。

根據本公開的一個方面,提供一種通訊協議轉換方法,包括:

用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串;

接收報文請求任務,識別目標通訊系統;

根據所述目標通訊系統確定目標通訊協議,查找對應所述目標通訊協議的格式串;

根據所述格式串將來自所述目標通訊系統的報文接收完整,並識別所述報文中的業務數據。

在本公開的一種示例性實施例中,所述根據所述格式串將來自所述目標通訊系統的報文接收完整包括:

將所述格式串加載為描述符數組;

根據所述格式串每個字符標識的含義接收所述報文,遍歷填寫所述描述符數組;

識別填寫完成的描述符數組中的業務數據。

在本公開的一種示例性實施例中,所述用格式串描述通訊協議包括:

設置域描述符、第三方系統的信息以及通訊協議中域的映射關係;

根據所述第三方系統的信息、所述映射關係以及接收到的實際通訊協議,確定所述第三方系統的通訊協議的域類型排列順序;

使用域描述符描述所述域類型,根據所述域類型排列順序排列所述域描述符。

在本公開的一種示例性實施例中,所述域類型包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識。

根據本公開的一個方面,提供一種通訊協議轉換裝置,包括:

格式串生成模塊,用於用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串;

任務接收模塊,用於接收報文發送任務,接收業務數據以及目標通訊系統標識;

格式串匹配模塊,用於根據所述目標通訊系統標識確定目標通訊協議,查找對應所述目標通訊協議的格式串;

報文生成模塊,用於根據所述業務數據以及所述格式串生成符合所述目標通訊協議的報文,將所述報文發送給所述目標通訊系統。

在本公開的一種示例性實施例中,所述報文生成模塊包括:

數組生成單元,用於將所述格式串加載為描述符數組;

數組填寫單元,用於根據所述業務數據,按照所述格式串每個字符標識的含義,遍歷填寫所述描述符數組;

數組輸出單元,用於輸出填寫完成的描述符數組作為報文。

在本公開的一種示例性實施例中,所述格式串生成模塊包括:

元素設置單元,用於設置域描述符、第三方系統的信息以及通訊協議中域的映射關係;

協議分析單元,用於根據所述第三方系統的信息、所述映射關係以及接收到的實際通訊協議,確定所述第三方系統的通訊協議的域類型排列順序;

協議描述單元,用於使用域描述符描述所述域類型,根據所述域類型排列順序排列所述域描述符。

在本公開的一種示例性實施例中,所述域類型包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識。

根據本公開的一個方面,提供一種通訊協議轉換裝置,包括:

格式串生成模塊,用於用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串;

任務接收模塊,用於接收報文請求任務,識別目標通訊系統;

格式串匹配模塊,用於根據所述目標通訊系統確定目標通訊協議,查找對應所述目標通訊協議的格式串;

數據提取模塊,用於根據所述格式串將來自所述目標通訊系統的報文接收完整,並識別所述報文中的業務數據。

在本公開的一種示例性實施例中,所述數據提取模塊包括:

數組生成單元,用於將所述格式串加載為描述符數組;

數組填寫單元,用於根據所述格式串每個字符標識的含義接收所述報文,遍歷填寫所述描述符數組;

數據識別單元,用於識別填寫完成的描述符數組中的業務數據。

在本公開的一種示例性實施例中,所述格式串生成模塊包括:

元素設置單元,用於設置域描述符、第三方系統的信息以及通訊協議中域的映射關係;

協議分析單元,用於根據所述第三方系統的信息、所述映射關係以及接收到的實際通訊協議,確定所述第三方系統的通訊協議的域類型排列順序;

協議描述單元,用於使用域描述符描述所述域類型,根據所述域類型排列順序排列所述域描述符。

在本公開的一種示例性實施例中,所述域類型包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識。

本公開提供的通訊協議轉換方法通過使用由域描述符組成的格式串描述多種通訊協議,並在與第三方系統通訊時使用格式串生成或識別第三方系統報文,將通訊協議轉換模塊開發過程變更為格式串生成過程。由於生成格式串相對於分別為各通訊協議編寫代碼更為簡單,實施人員不需關注通訊細節,且格式串生成模塊可以一次開發,多次使用,多次測試驗證,避免了在直接編寫通訊協議代碼方式下,代碼效率及質量依賴於程式設計師技術能力的情況,實現了靈活轉換多種通訊協議、降低通訊開發門檻及工作量、提高項目開發效率的效果。

應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本公開。

附圖說明

此處的附圖被併入說明書中並構成本說明書的一部分,示出了符合本公開的實施例,並與說明書一起用於解釋本公開的原理。顯而易見地,下面描述中的附圖僅僅是本公開的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。

圖1示出一種現有的前置通訊系統對接多個第三方系統的結構示意圖。

圖2示意性示出本公開示例性實施例中一種通訊協議轉換方法的流程圖。

圖3示意性示出本公開示例性實施例中另一種通訊協議轉換方法的流程圖。

圖4示意性示出本公開示例性實施例中通訊協議轉換方法的結構示意圖。

圖5A示意性示出本公開示例性實施例中前置通訊系統接收第三方系統信息的流程示意圖。

圖5B示意性示出本公開示例性實施例中前置通訊系統向第三方系統發送信息的流程示意圖。

圖6A示意性示出本公開示例性實施例中第三方系統A的通訊協議示意圖。

圖6B示意性示出本公開示例性實施例中第三方系統B的通訊協議示意圖。

圖7示意性示出本公開示例性實施例中一種通訊協議轉換裝置的方框圖。

圖8示意性示出本公開示例性實施例中一種另通訊協議轉換裝置的方框圖。

具體實施方式

現在將參考附圖更全面地描述示例實施方式。然而,示例實施方式能夠以多種形式實施,且不應被理解為限於在此闡述的範例;相反,提供這些實施方式使得本公開將更加全面和完整,並將示例實施方式的構思全面地傳達給本領域的技術人員。所描述的特徵、結構或特性可以以任何合適的方式結合在一個或更多實施方式中。在下面的描述中,提供許多具體細節從而給出對本公開的實施方式的充分理解。然而,本領域技術人員將意識到,可以實踐本公開的技術方案而省略所述特定細節中的一個或更多,或者可以採用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細示出或描述公知技術方案以避免喧賓奪主而使得本公開的各方面變得模糊。

此外,附圖僅為本公開的示意性圖解,圖中相同的附圖標記表示相同或類似的部分,因而將省略對它們的重複描述。附圖中所示的一些方框圖是功能實體,不一定必須與物理或邏輯上獨立的實體相對應。可以採用軟體形式來實現這些功能實體,或在一個或多個硬體模塊或集成電路中實現這些功能實體,或在不同網絡和/或處理器裝置和/或微控制器裝置中實現這些功能實體。

下面結合附圖對本公開示例實施方式進行詳細說明。

圖2是本公開示例性實施例中一種通訊協議轉換方法的流程圖。

參考圖2,通訊協議轉換方法100可以包括:

步驟S102,用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串。

步驟S104,接收報文發送任務,接收業務數據以及目標通訊系統標識。

步驟S106,根據所述目標通訊系統標識確定目標通訊協議,查找對應所述目標通訊協議的格式串。

步驟S108,根據所述業務數據以及所述格式串生成符合所述目標通訊協議的報文,將所述報文發送給所述目標通訊系統。

本公開提供的通訊協議轉換方法通過使用由域描述符組成的格式串描述多種通訊協議,並在與第三方系統通訊時使用格式串生成或識別第三方系統報文,將通訊協議轉換模塊開發過程變更為格式串生成過程。由於生成格式串相對於分別為各通訊協議編寫代碼更為簡單,實施人員不需關注通訊細節,且格式串生成模塊可以一次開發,多次使用,多次測試驗證,避免了在直接編寫通訊協議代碼方式下,代碼效率及質量依賴於程式設計師技術能力的情況,實現了靈活轉換多種通訊協議、降低通訊開發門檻及工作量、提高項目開發效率的效果。

下面對通訊協議轉換方法200的各步驟進行詳細說明。

步驟S102,用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串。

在本公開的一種示例性實施例中,用格式串描述通訊協議包括:

1)設置域描述符、第三方系統的信息以及通訊協議中域的映射關係。

可以通過存儲一映射表實現本步驟。該映射表可以存儲域描述符、第三方系統信息以及通訊協議中的各個域的映射關係。其中,域描述符用於描述通信協議中的各個域的類型,例如長度域、結束格式串域、同步字符域、長度計算開始標識、普通字符佔位、連接關閉標識等域類型,在描述時也可以對域描述符添加一些附加的修飾性描述。

域描述符可以採用如下定義方式,但並不限於此。

A/a:字符佔位符號,用於描述報文中的一段數據,佔位符號緊接數字表示該字符佔用字節數,大寫表示丟棄數據。例如,在發送過程中,A16表示捨棄發送報文中對應位置的16個字節數據,接收方不會收到這16個字節;在接收過程中A16表示從發送方接收16個字節並丟棄,客戶端最終接收的報文中不包含此內容。

L/l:長度佔位符號,用於描述長度域,需要附加用於描述長度域實際類型的標識,如32位無符號網絡字節序整形、格式串類型及實際佔用位數等。長度佔位符號後可以緊跟長度存儲類型,例如,LN32表示32位網絡字節序,LN16表示16位網絡字節序,LC8表示8位元組字符型長度。長度域是判斷報文大小的主要標識,在發送過程中,程序自動計算添加此域內容,字母大小寫不敏感。在接收過程中,程序通過獲取此域的值來判斷實際報文長度。需要注意到是,大寫字母表示捨棄這個域的內容不放入最終報文中。

H/h:報文頭標識,用於描述報文頭位置,當需要描述數據體長度時,此標識可以用於確定計算數據體長度的開始位置。發送時,程序根據此位置計算長度,字母大小寫不敏感;接收時,程序結合此標識判斷報文是否接收完整。大寫字母表示丟棄本標識之前的數據,不將其寫入最終報文中。

S/s:同步字符,用於描述一些應用層協議中的同步字符。同步字符佔位符號後緊跟同步字符內容的16進位數據編碼。發送時,程序自動填充此域,字母大小寫不敏感;接收時,程序校驗此域的內容,大寫字母表示捨棄這個域的數據不放入最終報文。

T/t:結束符串,用於描述一些採用結束符來確定完整報文的應用層協議。結束符號後緊跟實際結束符的16進位數據編碼。發送時,程序自動添加此域內容,字母大小寫不敏感;接收時,大寫字母表示捨棄這個結束符串,不放入最終報文。

$:流結束描述符號,用於描述一些採用TCP半關閉方式來確定完成報文的應用層協議。發送時,此符號可以觸發程序在發送數據完畢後關閉發送端;接收時,此符號可以使程序接收數據直至連接斷開。

2)根據第三方系統的信息、映射關係以及接收到的實際通訊協議,確定第三方系統的通訊協議的域類型排列順序。

在此步驟中,可以根據用戶輸入的第三方系統信息,基於接收到的實際通訊協議,參照前述步驟中存儲的映射表,分析實際通訊協議,確定第三方系統的通訊協議的域類型排列順序。

3)使用域描述符描述域類型,根據域類型排列順序排列域描述符。

在得到根據上述域類型排列順序後,使用域描述符替換該順序中的每個域類型,從而組合成描述該通訊協議的格式串。本步驟中的域類型可以包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識,但本領域技術人員可根據實際情況自由設置,本公開不以此為限。

在一些實施例中,本步驟元可提供圖形配置界面,以方便使用者設置或查看格式串。

步驟S104,接收報文發送任務,接收業務數據以及目標通訊系統標識。方法100可以用於前置通訊系統對一或多個第三方系統發送通訊報文。在接收到報文發送任務時,可以提取本次任務的業務數據以及目標通訊系統標識。目標系統標識可以為前置通訊系統自定義,例如可以為數字、字母或字符串等。

步驟S106,根據所述目標通訊系統標識確定目標通訊協議,查找對應所述目標通訊協議的格式串。在確定目標通訊系統後,可以根據前述步驟中存儲的映射表確定該目標通訊系統的通訊協議,並加載該通訊協議對應的格式串。

步驟S108,根據所述業務數據以及所述格式串生成符合所述目標通訊協議的報文,將所述報文發送給所述目標通訊系統。

在本公開的一種示例性實施例中,所述根據所述業務數據以及所述格式串生成符合所述目標通訊協議的報文包括:

1)將所述格式串加載為描述符數組。

可以根據格式串中的域描述符將格式串加載為描述符數組,按照域描述符順序排列該數組,並確認數組大小。

2)根據所述業務數據,按照所述格式串每個字符標識的含義,遍歷填寫所述描述符數組。在一些實施例中,可以使用Switch-Case結構實現遍歷描述符數組。

3)輸出填寫完成的描述符數組作為報文。

圖3是本公開示例性實施例中另一種通訊協議轉換方法的流程圖。

參考圖3,通訊協議轉換方法200可以包括:

步驟S202,用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串。

步驟S204,接收報文請求任務,識別目標通訊系統。

步驟S206,根據所述目標通訊系統確定目標通訊協議,查找對應所述目標通訊協議的格式串。

步驟S208,根據所述格式串將來自所述目標通訊系統的報文接收完整,並識別所述報文中的業務數據。

方法200可以用於前置通訊系統獲取多個第三方系統的報文,提高通訊協議轉換效率。

下面對通訊協議轉換方法200的各步驟進行詳細說明。

在步驟S202,用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串。

在本公開的一種示例性實施例中,所述用格式串描述通訊協議包括:設置域描述符、第三方系統的信息以及通訊協議中域的映射關係;根據所述第三方系統的信息、所述映射關係以及接收到的實際通訊協議,確定所述第三方系統的通訊協議的域類型排列順序;使用域描述符描述所述域類型,根據所述域類型排列順序排列所述域描述符。

在本公開的一種示例性實施例中,所述域類型包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識。

步驟S202的各子步驟可參照步驟S102中的詳細描述,本公開於此不再贅述。

步驟S204,接收報文請求任務,識別目標通訊系統。

當前置通訊系統需要接收一或多個第三方系統的報文時,只需要發送目標通信系統標識給實現方法200的裝置。

步驟S206,根據所述目標通訊系統確定目標通訊協議,查找對應所述目標通訊協議的格式串。

步驟S208,根據所述格式串將來自所述目標通訊系統的報文接收完整,並識別所述報文中的業務數據。

在本公開的一種示例性實施例中,所述根據所述格式串將來自所述目標通訊系統的報文接收完整包括:

1)將所述格式串加載為描述符數組。

2)根據所述格式串每個字符標識的含義接收所述報文,遍歷填寫所述描述符數組。

在此步驟中,可以判斷接收到的報文是否符合格式串中域描述符的描述,並根據域描述符遍歷填寫描述符數組。

3)識別填寫完成的描述符數組中的業務數據。

下面通過具體實施例來對上述方法100與方法200進行詳細說明。

圖4示意性示出本公開示例性實施例中通訊協議轉換方法的結構示意圖。參考圖4,本公開提供的通訊協議轉換方法可以通過在第三方系統A、B......N與前置通訊系統之間增加一個通訊協議轉換裝置來傳輸並轉換前置通訊系統與第三方系統A、B......N之間的通訊數據,將業務數據與通訊協議分離,為前置通訊系統屏蔽第三方系統不同通訊協議的差異。

根據本方法,前置通訊系統在向第三方系統A、B.....N發送數據時,只需將業務數據及第三方系統標識傳遞給通訊協議轉換裝置,通訊協議轉換裝置會根據該標識查找對應第三方系統的格式串,根據格式串對業務數據進行加工處理,最終產生符合該第三方系統通訊協議規範的數據包,並發送到指定第三方系統。當前置通訊系統向第三方系統A、B....N請求數據時,只需將第三方系統標識告知通訊協議轉換裝置,通訊協議轉換裝置會根據標識查找對應格式串,根據格式串將第三方系統發送過來的符合通訊協議規範的報文接收完整,並分離出業務數據,將業務數據返回前置通訊系統。因此,本通訊協議轉換方法可以通過配置格式串來替代代碼開發過程,提高開發效率。

圖5A示意性示出本公開示例性實施例中前置通訊系統接收第三方系統信息的流程示意圖。

圖5B示意性示出本公開示例性實施例中前置通訊系統向第三方系統發送信息的流程示意圖。

參考圖5A以及圖5B,當前置通訊系統與兩個系統(A,B)之間通訊時,首先需要確認兩個通訊系統分別對應的通訊協議。

圖6A是第三方系統A的通訊協議示意圖。

圖6B是第三方系統B的通訊協議示意圖。

為方便描述,現假設兩個系統的某個查詢業務請求數據為「john|XMJ&@SSD|」,應答數據為「john|1200.30|」(以C語言的格式串來描述)。

參考圖6A以及圖6B,前置通訊系統對接系統A時:

發送的請求通訊報文為「\x01\x020014john|XMJ&@SSD|」。其中,0014是因為john|XMJ&@SSD|的業務請求報文長度14位元組,4位字符型長度在計算機中存儲為0014。

接收的應答通訊報文為「\x01\x020013john|1200.30|」。其中,0013是因為john|1200.30|的業務應答報文長度13位元組,4位字符型長度在計算中存儲為0013。

對接系統B時:

發送的請求通訊報文為「\x00\x00\x00\x0ejohn|XMJ&@SSD|」。由於網絡字節序是低地址保存高位,因此,長度14在計算機中可以保存為\x00\x00\x00\x0e。

接收的應答通訊報文為「\x00\x00\x00\x0djohn|1200.30|」。由於網絡字節序是低地址保存高位,長度13在計算機中被保存為\x00\x00\x00\x0d。

對於兩個不同的通訊協議A/B,通訊協議轉換裝置根據映射表中存儲的第三方系統的通訊協議規範,參照域描述符定義,使用格式串描述各通訊協議的過程如下:

第一步:生成針對兩個第三方系統通訊協議的發送和接收格式串。在一些實施例中,發送和接收格式串可相同。

對接系統A時,可以根據定義的域描述符及通訊協議規範生成格式串S0102LC4Ha*。由於系統A的通訊協議以一個同步字符\x01\x02開頭,因此格式串以S0102佔位表示協議中的同步字符域,協議中的長度域緊跟同步字符域,且數據類型為4位元組字符型數據,因此可以用LC4描述長度域。協議中的長度域後緊接業務數據,且長度域只描述業務數據本身,因此可以用H來表示從此處開始計算報文真正長度,用a*來描述一塊由長度確定的數據。大寫的SLH和小寫的a表示最終傳遞給前置通訊系統時,只保留業務數據本身。

對接系統B時,可以根據定義的域描述及通訊協議規範生成格式串LN32Ha*。其中,由於系統B的通訊協議以一個32位網絡字節序開始的長度描述業務數據,因此格式串以LN32開頭;S表示同步字符描述域,0102是對S的附加描述,表示同步字符內容的16進位字符串;L表示長度域,C4/N32是對長度的附加描述,標示長度的存儲方式;H表示長度計算開始標識;A表示普通字符佔位域,「*」是對A的附加描述,表示此域無明確長度,需要根據實際數據進行計算。

第二步:調用通訊協議轉換裝置的發送/接收操作,使用格式串發送/接收業務數據。

對接系統A時,前置通訊系統以「S0102LC4Ha*」格式串發送業務數據「john|XMJ&@SSD|」,通訊協議轉換裝置的處理包含:

a將格式串「S0102LC4Ha*」加載為包含同步字符域、長度域、長度計算開始位置域、字符佔位域的描述符數組。

b遍歷描述符數組進行處理:

第一項,處理同步字符域S0102:根據附加描述,添加一個「\x01\x02」的發送塊,累積長度2(累積長度用於填入通訊協議中的長度域)。

第二項,處理長度域LC4:根據附加描述,添加一個4位元組的長度域預留塊,累積長度6。

第三項,處理長度計算開始標識:此處表示真正寫入通訊協議長度域的值從後繼項開始計算,因此修正累積長度為0。

第四項,處理普通字符佔位:根據附加描述,添加一個包含整個業務數據的發送塊,累積長度為業務數據的長度,由於業務數據長度為14,因此累積長度設置為14。

c根據累積長度14和長度域附加描述c4,將0014串寫入長度域預留塊。

d調用實際通訊API依次發送發送塊中的數據。由前述可知,有3個發送塊生成,第一塊內容是同步字符「\x01\x02」,第二塊內容是長度域「0014」,第三塊內容是業務數據「john|XMJ&@SSD|」,因此最終向系統A發送的通訊報文為「\x01\x020014john|XMJ&@SSD|」,符合系統A的通訊協議。

對接系統A時,前置通訊系統以「S0102LC4Ha*」格式串接收系統A的報文數據「\x01\x020013john|1200.30|」,通訊協議轉換裝置的處理包含:

a將格式串「S0102LC4Ha*」加載為包含同步字符域、長度域、長度計算開始位置域、字符佔位域的描述符數組。

b遍歷描述符數組進行處理:

第一項,處理同步字符域:根據附加描述,接收2位元組數據並與」\x01\x02」進行比較,丟棄不符合描述的數據。

第二項,處理長度域:根據附加描述,接收4位元組數據「0013」,轉換獲得實際數據長度13,丟棄不符合描述的數據。

第三項,處理長度計算開始標識:根據已經獲得的數據長度,標記待接收長度為13,根據附加描述,丟棄長度計算開始標識之前的數據。

第四項,處理普通字符佔位:根據附加描述和待接收長度,接收13位元組數據,並將此數據添加到已接收數據中。

c將已接收數據「john|1200.30|」作為應答報文傳遞給前置通訊系統。

對接系統B時,前置通訊系統以「LN32Ha*」格式串發送業務數據「john|XMJ&@SSD|」,通訊協議轉換裝置的處理包含:

a將格式串「LN32Ha*」加載為包含長度域、長度計算開始位置域、字符佔位域的描述符數組。

b遍歷描述符數組進行處理:

第一項,處理長度域:根據附加描述,添加一個4位元組的長度域預留塊,累積長度4。

第二項,處理長度計算開始標識:此處表示真正寫入通訊協議長度域的值從後繼項開始計算,因此修正累積長度為0。

第三項,處理普通字符佔位:根據附加描述,添加一個包含整個業務數據的發送塊,累積長度為業務數據長度,由於業務數據長度為14,因此累積長度設置為14。

c根據累積長度14和長度域附加描述N32,將「\x00\x00\x00\x0e」寫入長度域預留塊。

d調用實際通訊API依次發送發送塊中的數據。由前述可知,共有兩個發送塊,第一塊為長度域「\x00\x00\x00\x0e」,第二塊為業務數據「john|XMJ&@SSD」,因此最終向系統B發送的通訊報文為「\x00\x00\x00\x0ejohn|XMJ&@SSD|」,符合系統B的通訊協議。

對接系統B時,前置通訊系統以「LN32Ha*」格式串接收系統B的報文數據「\x00\x00\x00\x0d john|1200.30|」,通訊協議轉換裝置的處理包含:

a將格式串「LN32Ha*」加載為包含長度域、長度計算開始位置域、字符佔位域的描述符數組。

b遍歷描述符數組進行處理:

第一項,處理長度域:根據附加描述,接收4位元組數據,獲得數據「\x00\x00\x00\x0d」,根據附加描述信息N32,轉換獲得實際數據長度13(16進位0d值為13),並丟棄不符合描述的數據。

第二項,處理長度計算開始標識:根據已經獲得的數據長度,標記待接收長度為13,根據附加描述,丟棄在長度計算開始標識之前的數據。

第三項,處理普通字符佔位:根據附加描述和待接收長度,接收13位元組數據,並將此數據添加到已接收數據中。

c將已接收數據「john|1200.30|」作為應答業務數據傳遞給前置通訊系統。

對應於上述方法實施例,本公開還提供一種通訊協議轉換裝置,可以用於執行上述方法實施例。

圖7示意性示出本公開示例性實施例中一種通訊協議轉換裝置的方框圖。參考圖7,通訊協議轉換裝置300可以用於將前置通訊系統的業務數據轉換為符合一或多個第三方系統對應的通訊協議的報文並進行發送。裝置300可以包括格式串生成模塊302、任務接收模塊304、格式串匹配模塊306以及報文生成模塊308。

格式串生成模塊302可以用於用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串。

任務接收模塊304可以用於接收報文發送任務,接收業務數據以及目標通訊系統標識。

格式串匹配模塊306可以用於根據所述目標通訊系統標識確定目標通訊協議,查找對應所述目標通訊協議的格式串。

報文生成模塊308可以用於根據所述業務數據以及所述格式串生成符合所述目標通訊協議的報文,將所述報文發送給所述目標通訊系統。

其中,格式串生成模塊302可以包括:

元素設置單元,用於設置域描述符、第三方系統的信息以及通訊協議中域的映射關係。

協議分析單元,用於根據所述第三方系統的信息、所述映射關係以及接收到的實際通訊協議,確定所述第三方系統的通訊協議的域類型排列順序。

在本公開的一種示例性實施例中,所述域類型包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識。

協議描述單元,用於使用域描述符描述所述域類型,根據所述域類型排列順序排列所述域描述符。

報文生成模塊308可以包括:

數組生成單元,用於將所述格式串加載為描述符數組。

數組填寫單元,用於根據所述業務數據,按照所述格式串每個字符標識的含義,遍歷填寫所述描述符數組。

數組輸出單元,用於輸出填寫完成的描述符數組作為報文。

圖8示意性示出本公開示例性實施例中一種另通訊協議轉換裝置的方框圖。參考圖8,通訊協議轉換裝置400可以用於接收一或多個第三方系統的報文並將其轉換為前置通訊系統能夠識別的業務數據。裝置400可以包括格式串生成模塊402、任務接收模塊404、格式串匹配模塊406以及數據提取模塊408。

格式串生成模塊402可以用於用格式串描述通訊協議,保存對應至少一個通訊協議的多個格式串。

任務接收模塊404可以用於接收報文請求任務,識別目標通訊系統。

格式串匹配模塊406可以用於根據所述目標通訊系統確定目標通訊協議,查找對應所述目標通訊協議的格式串。

數據提取模塊408可以用於根據所述格式串將來自所述目標通訊系統的報文接收完整,並識別所述報文中的業務數據。

其中,格式串生成模塊402可以包括:

元素設置單元,用於設置域描述符、第三方系統的信息以及通訊協議中域的映射關係。

協議分析單元,用於根據所述第三方系統的信息、所述映射關係以及接收到的實際通訊協議,確定所述第三方系統的通訊協議的域類型排列順序。

在本公開的一種示例性實施例中,所述域類型包括長度域、結束字符串域、同步字符域、長度計算開始標識、普通字符佔位以及連接關閉標識。

協議描述單元,用於使用域描述符描述所述域類型,根據所述域類型排列順序排列所述域描述符。

數據提取模塊408可以包括:

數組生成單元,用於將所述格式串加載為描述符數組。

數組填寫單元,用於根據所述格式串每個字符標識的含義接收所述報文,遍歷填寫所述描述符數組。

數據識別單元,用於識別填寫完成的描述符數組中的業務數據。

由於裝置300、裝置400的各功能已在其對應的方法實施例中予以詳細說明,本公開於此不再贅述。

在一些實施例中,裝置300與裝置400可以結合為一個裝置,執行前置通訊系統對一或多個第三方系統的報文發送任務和報文接收任務。

本領域技術人員在考慮說明書及實踐這裡公開的發明後,將容易想到本公開的其它實施方案。本申請旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理並包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正範圍和精神由所附的權利要求指出。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀