一種通信協議適配方法和系統的製作方法
2023-06-04 18:39:51 1
專利名稱:一種通信協議適配方法和系統的製作方法
技術領域:
本發明涉及通信協議轉換領域,更具體的說,涉及基於Java字節碼的通信協議適配框架,可以簡稱為Class適配器。
背景技術:
隨著企業應用程式的複雜性不斷加劇,XML文檔的約束和規則變得越來越嚴格。此外,隨著業界越來越迅速地採用Web服務,XML開始成為跨越多種平臺的不可忽視的重要角色。所有這一切意味著,應用程式迫切需要一種簡單而強大的機制來處理XML。世面上流行很多開源產品,例如XMLBeans用於XML與JAVA Bean的綁定,XSLT用於通訊協議報文格式之間的適配,DOM用於對XML報文的處理。目前通訊協議適配領域的現狀是,在開發系統平臺之間實現通訊協議的適配時採用主流的是XSLT開源產品者居多。在實際生產中,單獨或組合使用以上的開源產品,由於開源產品追求通用性,其大量使用反射,效率並不是很高。XSLT產品在生產中存在以下特徵(I)使用XSLT進行協議轉換,需要較長一段時間學習其腳本語言XSL和XPATH,每門腳本語言都可以寫一本書,這對於使用人員要求具備較強的開發及學習能力;(2)對於結構複雜的XML報文,編寫XSL和 XPATH腳本進行協議報文適配相當複雜,平均編寫一個複雜的轉換報文配置需要2小時以上,在生產中對於複雜的XML報文要麼採用透傳方式,要麼要求外圍平臺簡化報文複雜度;
(3)XSLT開源組織提供內置函數,以便報文轉換支持特殊功能處理,但實際需求開發中,這些內置函數不能滿足所有實際生產中的功能,同時也不支持擴展性。使用D0M4j產品解決不了不同協議報文之間的格式轉換,同時DOM在內存生成整個文檔的樹,如果文檔非常大, DOM就會變得對內存非常敏感,並會顯著降低性能。JAXB、Castor、XMLBeans支持XML/Java 綁定技術,但使用時需要根據XML報文編寫相應的java文件,將XML報文信息注入到java 對象中,同時編寫java代碼也要花費不少的功夫,而且需求越多,越讓人感到麻煩。如上所述,在實際工作生產中發現XSLT、XMLBeans等開源產品對報文協議適配的配置及測試工作存在生產效率低下的情況,因此需要設計並編碼實現一套基於定義XML配置模板的協議適配系統,從而提高員工生產效率、優化系統性能以及避免相關人員在工作前需要學習繁雜的腳本語言,將複雜的報文適配使用傻瓜型配置系統予以實現,提高生產效率。
發明內容
本發明適用於各類通訊協議報文(HTTP協議、SOAP協議、MML協議、UTYPE協議), 實現通訊協議報文之間相互轉換的功能,替換現有主流協議轉換的XSLT開源產品。本發明主要採用以下技術方案來解決本發明提供一種通信協議適配方法,其使用工作流以及IOC思想,組件調度控制器按各請求的類型,調度相應組件進行協議解析;其中所述調度通過配置文件設置,其整合相關組件,按責任鏈模式,逐一調度用於解析適配協議的各個組件,組件進行協議解析適配
4則通過XML配置模板實現,通過制定的XML配置模板自動生成class文件,在進行通信協議適配時將這些生成的class文件實例化成對象,把外圍平臺的協議動態注入到各對象的各個屬性,並將這些存有數據的對象進行裝配生成XML協議的報文。進一步,所述組件包括XML配置模板自動生成組件、MML協議解析組件、HTTP協議解析組件、配置緩存組件以及協議類型驗證組件,其中所述協議類型驗證組件用於對外部數據的類型進行驗證,所述配置緩存組件能夠緩存解析的XML配置模板的相關信息,所述 MML協議解析組件用於將MML報文轉換為XML報文,所述HTTP協議解析組件用於將XML報文轉換為MML報文。進一步,所述協議類型驗證組件能夠識別MML協議、HTTP協議以及SOAP協議。本發明還提供一種通信協議適配方法,包括以下步驟I)讀取系統配置文件,加載上下文信息;2)實時監聽外圍平臺發送到協議接口隊列上的報文信息,並接收報文信息;3)識別外圍平臺發送的報文類型,並根據交易編碼選擇相應的XML配置模板,其中該交易編碼用於標識唯一一筆業務或交易;4)解析XML配置模板相關信息,並使用配置緩存組件對其相關信息進行緩存;5)結合所述緩存的信息、所述XML配置模板以及各節點功能的代碼生成規則,使用java字節碼技術生成相應的class文件;6)轉譯協議報文,使用HTTP協議解析器、MML協議解析器兩類協議解析器;7)將轉換後的報文發送給外圍平臺,以完成所有轉換工作。其中步驟2中接收的報文信息至少包含MML協議、SOAP協議、HTTP協議中的一種; 步驟3中所述XML配置模板中有標識XML報文的標籤,用於說明XML報文的結構。本發明還提供一種通信協議適配系統,該系統包括通訊協議適配器,用於讀取系統配置文件,加載上下文信息;實時監聽模塊,實時監聽外圍平臺發送到協議接口隊列上的報文信息,並接收報文信息;報文類型識別模塊,用於識別外圍平臺發送的報文類型,並根據交易編碼選擇相應的XML配置模板,其中該交易編碼用於標識唯一一筆業務或交易;解析模塊,用於解析XML配置模板相關信息,並使用配置緩存組件對其相關信息進行緩存;文件生成模塊,用於結合所述緩存的信息、所述XML配置模板以及各節點功能的代碼生成規則,使用java字節碼技術生成相應的class文件;協議報文轉譯模塊,使用HTTP協議解析器、MML協議解析器兩類協議解析器;發送模塊,用於將轉換後的報文發送給外圍平臺,以完成所有轉換工作。其中,實時監聽模塊接收的報文信息至少包含MML協議、SOAP協議、HTTP協議中的一種;所述XML配置模板中有標識XML報文的標籤,用於說明XML報文的結構。本發明的各功能點在設計思考上均較為完善,借鑑了 Velocity、IOC、ORM、MOCK、 SOA、規則引擎等思想(不依賴開源產品,只借鑑思想予以實現),使用各類設計模式,較好地保證了系統的鬆耦合、功能的可復用以及優良的擴展性。本發明不依賴任何開源產品,所有功能硬編碼實現,從而避免了各種開源產品的組合使用導致系統效率低下,使用java字節碼自動生成代碼後,JVM動態加載生成的class文件,避免了反射產生的性能影響,各功能點自己實現,可以根據需求最大程度的優化業務邏輯。因此大幅提升協議報文適配的處理時間。綜上所述,上述通訊協議適配系統和方法降低了人工操作,提高了日常開發的生產效率,提高了系統性能,增強了功能擴展性,並且為實現通訊協議自動化適配做好基礎架構,可以在所述基於java字節碼的通訊協議適配系統和方法的基礎上,開發出基於數據挖掘的通訊協議適配,實現不同格式的報文適配已不需要人工編寫配置腳本,由外圍平臺發送測試報文驅動協議自動化轉換,使該產品升級為智能系統。
圖I為本發明提供的組件調度控制關係圖。圖2為本發明提供的通訊協議報文適配系統的處理流程圖。圖3為本發明提供的一實施例的示意圖。
具體實施例方式以下結合附圖對本發明的原理和特徵進行描述,所舉實例只用於解釋本發明,並非用於限定本發明的範圍。圖I為本發明提供的組件調度控制關係圖。使用工作流以及IOC思想,組件調度控制器按各請求類型,調度相應組件進行協議解析。所有的組件初始化和調用都由容器負責,組件處在一個容器當中,由容器負責管理。組件可以動態地掛接在組件調度控制器上,並根據協議類型,與組件的msgtype屬性相匹配的組件將參與協議解析。各組件的transfer屬性用於消息向後傳遞。組件調度控制器的調度工作通過配置文件設置,其整合相關組件,按責任鏈模式逐一調度解析適配協議的各個組件。簡單說,就是由容器控制程序之間的關係,而非傳統實現中,由程序代碼直接操控。組件進行協議解析適配通過XML配置模板實現,可以自由加入組件並定義組件在協議解析中的執行順序。同時,一個組件可以參與多種協議的解析。下面給出了配置文件的片斷進行舉例說明I)組件調度流程控制模塊配置屬性名chainBeanDefinition的 protocolTypeValidate> httpParser、mmlParser 對應各組件配置,其中組件 protocolTypeValidate為協議類型驗證組件,組件httpParser為HTTP協議解析組件,組件mmlParser為MML協議解析組件,並說明這些組件參與協議適配,即組件 chainBeanDefinition 依次調用組件 protocolTypeValidate、httpParser、mmlParser。各組件的配置如下框圖〈wscomponent name=〃fiIterChainProxy^
class二〃org. sitech. com. chain. FilterChainProxy^)
〈property name=〃chainBeanDefinition〃
vaJ_ue=〃protoco_LTypeVa_Lidate,httpParser, mmJ_Parser〃>
〈property name=〃isOrder〃 value=〃true〃X/property>
〈/wscomponent〉2)協議類型驗證組件對外部數據的類型進行驗證,可識別MML協議、HTTP協議、 SOAP協議。msgtype屬性標識參與何種類型報文的解析,由組件調度控制器負責處理。例如,msgtype定義為I的組件進行HTTP協議、SOAP協議的解析;msgtype定義為2組件進行 MML協議的解析;mSgtype定義為11 2,將參與HTTP協議、SOAP協議以及MML協議的解析。 order屬性標識解析報文時各組件執行的順序。
〈wscomponcnt namc=〃protocoITypcValidatc〃class=〃org. sitech. com. pojo. impI. ProtocolTypeValidate,)〈property name==〃order〃 value=〃l〃>〈/property>〈property name==〃transfer〃X/property>〈/wscomponent〉3) MML協議解析組件用於將MML報文轉換為XML報文。
〈wscomponent name=〃mmlParser〃
class=〃org. sitech. com. pojo. impI. MMLProtocolParser〃> 〈property name=//msgtype^ value=^! | 2^>
〈property name=〃order〃 value=〃3〃X/property>〈property name=〃transfer〃X/property>4)HTTP協議解析組件用於將XML報文轉換為MML報文。
權利要求
1.一種通信協議適配方法,其使用工作流以及IOC思想,組件調度控制器按各請求的類型,調度相應組件進行協議解析;其中所述調度通過配置文件設置,其整合相關組件,按責任鏈模式,逐一調度用於解析適配協議的各個組件,組件進行協議解析適配則通過XML 配置模板實現,通過制定的XML配置模板自動生成class文件,在進行通信協議適配時將這些生成的class文件實例化成對象,把外圍平臺的協議動態注入到各對象的各個屬性,並將這些存有數據的對象進行裝配生成XML協議的報文。
2.如權利要求I所述的通信協議適配方法,所述組件包括XML配置模板自動生成組件、MML協議解析組件、HTTP協議解析組件、配置緩存組件以及協議類型驗證組件,其中所述協議類型驗證組件用於對外部數據的類型進行驗證,所述配置緩存組件能夠緩存解析的 XML配置模板的相關信息,所述MML協議解析組件用於將MML報文轉換為XML報文,所述 HTTP協議解析組件用於將XML報文轉換為MML報文。
3.如權利要求2所述的通信協議適配方法,所述協議類型驗證組件能夠識別MML協議、HTTP協議以及SOAP協議。
4.一種通信協議適配方法,包括以下步驟1)讀取系統配置文件,加載上下文信息;2)實時監聽外圍平臺發送到協議接口隊列上的報文信息,並接收報文信息;3)識別外圍平臺發送的報文類型,並根據交易編碼選擇相應的XML配置模板,其中該交易編碼用於標識唯一一筆業務或交易;4)解析XML配置模板相關信息,並使用配置緩存組件對其相關信息進行緩存;5)結合所述緩存的信息、所述XML配置模板以及各節點功能的代碼生成規則,使用 java字節碼技術生成相應的class文件;6)轉譯協議報文,使用HTTP協議解析器、MML協議解析器兩類協議解析器;7)將轉換後的報文發送給外圍平臺,以完成所有轉換工作。
5.如權利要求4所述的方法,其中步驟2中接收的報文信息至少包含MML協議、SOAP 協議、HTTP協議中的一種。
6.如權利要求4所述的方法,其中步驟3中所述XML配置模板中有標識XML報文的標籤,用於說明XML報文的結構。
7.一種通信協議適配系統,該系統包括通訊協議適配器,用於讀取系統配置文件,加載上下文信息;實時監聽模塊,實時監聽外圍平臺發送到協議接口隊列上的報文信息,並接收報文信報文類型識別模塊,用於識別外圍平臺發送的報文類型,並根據交易編碼選擇相應的 XML配置模板,其中該交易編碼用於標識唯一一筆業務或交易;解析模塊,用於解析XML配置模板相關信息,並使用配置緩存組件對其相關信息進行緩存;文件生成模塊,用於結合所述緩存的信息、所述XML配置模板以及各節點功能的代碼生成規則,使用java字節碼技術生成相應的class文件;協議報文轉譯模塊,使用HTTP協議解析器、MML協議解析器兩類協議解析器;發送模塊,用於將轉換後的報文發送給外圍平臺,以完成所有轉換工作。
8.如權利要求7所述的方法,其中實時監聽模塊接收的報文信息至少包含MML協議、 SOAP協議、HTTP協議中的一種。
9.如權利要求7所述的方法,其中所述XML配置模板中有標識XML報文的標籤,用於說明XML報文的結構。
全文摘要
本發明提供一種通信協議適配方法及系統,其使用工作流以及IOC思想,組件調度控制器按各請求的類型,調度相應組件進行協議解析;其中所述調度通過配置文件設置,其整合相關組件,按責任鏈模式,逐一調度用於解析適配協議的各個組件,組件調度通過XML配置模板實現,通過制定的XML配置模板自動生成class文件,在進行通信協議適配時將這些生成的class文件實例化成對象,把外圍平臺的協議動態注入到各對象的各個屬性,並將這些存有數據的對象進行裝配生成XML協議的報文。本發明降低了人工操作,提高了日常開發的生產效率,提高了系統性能,增強了功能擴展性,並且為實現通訊協議自動化適配做好基礎架構。
文檔編號H04L29/06GK102594833SQ20121006231
公開日2012年7月18日 申請日期2012年3月9日 優先權日2012年3月9日
發明者張厚瑞 申請人:北京神州數碼思特奇信息技術股份有限公司