一種跨兩個中間件的系統及其編譯方法
2023-06-22 12:35:16 1
專利名稱:一種跨兩個中間件的系統及其編譯方法
技術領域:
本發明涉及一種跨兩個中間件的系統及其編譯方法,為軟體系統各服務提供統一接口調用格式,屬於軟體服務領域。
背景技術:
最初我們的後臺服務都是運行在TUXEDO上,隨著廣電業務的發展,移植到T0NGEASY上,同時兼容TUXED0,於是服務內出現了很多為了兼容不得不寫的代碼,給開發工作帶來一定的負擔,我們需要一種方法來屏蔽中間件平臺差異。
發明內容
本發明所要解決的技術問題是,針對現有技術的不足,提供一種可屏蔽平臺差異的跨兩個中間件的系統編譯方法。本發明解決上述技術問題的技術方案如下一種跨兩個中間件的系統編譯方法,具體步驟如下步驟1:封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2 :替換模塊調用封裝模塊發送至的封裝後的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3 :編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。本發明的有益效果是本發明所述的方法採用宏定義的方式,將服務長/短資料庫連接、服務聲明、參數輸入、輸出等採用宏定義的方式包裝,這樣開發人員則不必關心中間件平臺差異,只編寫和關注具體的程序邏輯實現代碼即可;屏蔽平臺差異,不僅減少了開發人員的工作量,也使程序變得更加穩定,給系統提供了一個穩定保障。在上述技術方案的基礎上,本發明還可以做如下改進。進一步,所述步驟I中封裝模塊用於定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。進一步,所述步驟3中預編譯中間件的過程根據中間件的不同,進行預編譯不同的中間件下的代碼。進一步,不同中間件之間差異的代碼,主要體現在資料庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。本發明所要解決的另一個技術問題是,針對現有技術的不足,提供一種可屏蔽平臺差異的跨兩個中間件的系統。本發明解決上述技術問題的技術方案如下一種跨兩個中間件的系統,包括封裝模塊、替換模塊和編譯模塊;所述封裝模塊用於將文件中存在中間件差異的中間件代碼,封裝在頭文件中;所述替換模塊調用封裝模塊發送至的封裝後的中間件代碼,將存在差異的中間件代碼替換為宏定義變量,並將替換後的服務程序文件發送至編譯模塊;所述編譯模塊接收從替換模塊發送至的服務程序文件,並解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。本發明的有益效果是本發明所述的系統採用宏定義的方式,將服務長/短資料庫連接、服務聲明、參數輸入、輸出等採用宏定義的方式包裝,這樣開發人員則不必關心中間件平臺差異,只編寫和關注具體的程序邏輯實現代碼即可;屏蔽平臺差異,不僅減少了開發人員的工作量,也使程序變得更加穩定,給系統提供了一個穩定保障。在上述技術方案的基礎上,本發明還可以做如下改進。進一步,所述封裝模塊用於定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。 進一步,所述編譯模塊根據中間件的不同,進行預編譯不同的中間件下的代碼。進一步,不同中間件之間差異的代碼,主要體現在資料庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。
圖1為本發明具體實施例1所述一種跨兩個中間件的系統編譯方法流程圖;圖2為本發明具體實施例2所述一種跨兩個中間件的系統編譯方法編譯圖;圖3為本發明具體實施例3所述的一種跨兩個中間件的系統的結構圖。附圖中,各標號所代表的部件列表如下1、封裝模塊,2、替換模塊,3、編譯模塊。
具體實施例方式以下結合附圖對本發明的原理和特徵進行描述,所舉實例只用於解釋本發明,並非用於限定本發明的範圍。如圖1所示,本發明具體實施例1所述方法一種跨兩個中間件的系統編譯方法,具體步驟如下步驟1:封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2 :替換模塊調用封裝模塊發送至的封裝後的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3 :編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。所述步驟I中封裝模塊用於定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。所述步驟3中預編譯中間件的過程根據中間件的不同,進行預編譯不同的中間件下的代碼。不同中間件之間差異的代碼,主要體現在資料庫連接方式、服務的聲明方式、月艮務輸入參數獲取方式、服務輸出參數打包方式。如圖2所示,本方法具體實施例2實現了不同中間件下服務程序的兼容,目前在TUXED0/T0NGEASY兩種中間件服務程序中得到實施驗證。實施方式
1、定義公共的頭文件pub_server. h,在頭文件使用預編譯宏定義的方式,將不同中間件差異的代碼,封裝成統一的宏定義變量DBL0NGC0NNECT :資料庫連接方式DECLARE_SERVICE :服務的聲明BEGIN_SERVICE :服務輸入參數獲取方式ADD_VALUE32 :服務輸出參數打包方式2、編寫某一服務 R1052. cpa)在服務中,定義資料庫連接方式的代碼,使用宏定義DBL0NGC0NNECT。b)服務的聲明使用宏定義DECLARE_SERVICE:DECLARE_SERVICE(sl052Cfm)c )服務輸入參數獲取,使用BEGIN_SERVICE;d )服務輸出參數打包,使用ADD_VALUE32 (O, sEffDate);ADD_VALUE32(I, sExpDate);3、編譯服務R1052.Cp,則會根據中間件的不同,把程序中使用的預編譯宏定義變量轉換成各自中間件下的代碼,完成程序的兼容。如圖3所示,為本發明具體實施例3所述的一種跨兩個中間件的系統,包括封裝模塊1、替換模塊2和編譯模塊3 ;所述封裝模塊I用於將文件中存在中間件差異的中間件代碼,封裝在頭文件中;所述替換模塊2調用封裝模塊I發送至的封裝後的中間件代碼,將存在差異的中間件代碼替換為宏定義變量,並將替換後的服務程序文件發送至編譯模塊3 ;所述編譯模塊3接收從替換模塊2發送至的服務程序文件,並解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。所述封裝模塊I用於定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。所述編譯模塊3根據中間件的不同,進行預編譯不同的中間件下的代碼。不同中間件之間差異的代碼,主要體現在資料庫連接方式、服務的聲明方式、月艮務輸入參數獲取方式、服務輸出參數打包方式。以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。
權利要求
1.一種跨兩個中間件的系統編譯方法,其特徵在於,具體步驟如下步驟1:封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2 :替換模塊調用封裝模塊發送至的封裝後的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3 :編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。
2.根據權利要求1所述一種跨兩個中間件的系統編譯方法,其特徵在於,所述步驟I中封裝模塊用於定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。
3.根據權利要求2所述一種跨兩個中間件的系統編譯方法,其特徵在於,所述步驟3中編譯模塊預編譯中間件的過程根據中間件的不同,進行預編譯不同的中間件下的代碼。
4.根據權利要求1-3任一項所述一種跨兩個中間件的系統編譯方法,其特徵在於,不同中間件之間差異的代碼,體現在資料庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。
5.一種跨兩個中間件的系統,其特徵在於,包括封裝模塊、替換模塊和編譯模塊;所述封裝模塊用於將文件中存在中間件差異的中間件代碼,封裝在頭文件中;所述替換模塊調用封裝模塊發送至的封裝後的中間件代碼,將存在差異的中間件代碼替換為宏定義變量,並將替換後的服務程序文件發送至編譯模塊;所述編譯模塊接收從替換模塊發送至的服務程序文件,並解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。
6.根據權利要求5所述一種跨兩個中間件的系統,其特徵在於,所述封裝模塊用於定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。
7.根據權利要求6所述一種跨兩個中間件的系統,其特徵在於,所述編譯模塊根據中間件的不同,進行預編譯不同的中間件下的代碼。
8.根據權利要求5-7任一項所述一種跨兩個中間件的系統,其特徵在於,不同中間件之間差異的代碼,體現在資料庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。
全文摘要
本發明涉及一種跨兩個中間件的系統及其編譯方法,其編譯方法,具體步驟如下步驟1封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2替換模塊調用封裝模塊發送至的封裝後的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。本發明所述的方法採用宏定義的方式,將服務長/短資料庫連接、服務聲明、參數輸入、輸出等採用宏定義的方式包裝,這樣開發人員則不必關心中間件平臺差異;屏蔽平臺差異,不僅減少了開發人員的工作量,也使程序變得更加穩定,給系統提供了一個穩定保障。
文檔編號G06F9/44GK103019686SQ20121047366
公開日2013年4月3日 申請日期2012年11月20日 優先權日2012年11月20日
發明者尹永興, 鹿林安, 檀敬庭 申請人:北京思特奇信息技術股份有限公司