本發明專利技術涉及一種跨兩個中間件的系統及其編譯方法,其編譯方法,具體步驟如下:步驟1:封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2:替換模塊調用封裝模塊發送至的封裝后的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3:編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。本發明專利技術所述的方法采用宏定義的方式,將服務長/短數據庫連接、服務聲明、參數輸入、輸出等采用宏定義的方式包裝,這樣開發人員則不必關心中間件平臺差異;屏蔽平臺差異,不僅減少了開發人員的工作量,也使程序變得更加穩定,給系統提供了一個穩定保障。
【技術實現步驟摘要】
一種跨兩個中間件的系統及其編譯方法
本專利技術涉及一種跨兩個中間件的系統及其編譯方法,為軟件系統各服務提供統一接口調用格式,屬于軟件服務領域。
技術介紹
最初我們的后臺服務都是運行在TUXEDO上,隨著廣電業務的發展,移植到TONGEASY上,同時兼容TUXEDO,于是服務內出現了很多為了兼容不得不寫的代碼,給開發工作帶來一定的負擔,我們需要一種方法來屏蔽中間件平臺差異。
技術實現思路
本專利技術所要解決的技術問題是,針對現有技術的不足,提供一種可屏蔽平臺差異的跨兩個中間件的系統編譯方法。本專利技術解決上述技術問題的技術方案如下:一種跨兩個中間件的系統編譯方法,具體步驟如下:步驟1:封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2:替換模塊調用封裝模塊發送至的封裝后的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3:編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。本專利技術的有益效果是:本專利技術所述的方法采用宏定義的方式,將服務長/短數據庫連接、服務聲明、參數輸入、輸出等采用宏定義的方式包裝,這樣開發人員則不必關心中間件平臺差異,只編寫和關注具體的程序邏輯實現代碼即可;屏蔽平臺差異,不僅減少了開發人員的工作量,也使程序變得更加穩定,給系統提供了一個穩定保障。在上述技術方案的基礎上,本專利技術還可以做如下改進。進一步,所述步驟1中封裝模塊用于定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。進一步,所述步驟3中預編譯中間件的過程根據中間件的不同,進行預編譯不同的中間件下的代碼。進一步,不同中間件之間差異的代碼,主要體現在:數據庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。本專利技術所要解決的另一個技術問題是,針對現有技術的不足,提供一種可屏蔽平臺差異的跨兩個中間件的系統。本專利技術解決上述技術問題的技術方案如下:一種跨兩個中間件的系統,包括封裝模塊、替換模塊和編譯模塊;所述封裝模塊用于將文件中存在中間件差異的中間件代碼,封裝在頭文件中;所述替換模塊調用封裝模塊發送至的封裝后的中間件代碼,將存在差異的中間件代碼替換為宏定義變量,并將替換后的服務程序文件發送至編譯模塊;所述編譯模塊接收從替換模塊發送至的服務程序文件,并解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。本專利技術的有益效果是:本專利技術所述的系統采用宏定義的方式,將服務長/短數據庫連接、服務聲明、參數輸入、輸出等采用宏定義的方式包裝,這樣開發人員則不必關心中間件平臺差異,只編寫和關注具體的程序邏輯實現代碼即可;屏蔽平臺差異,不僅減少了開發人員的工作量,也使程序變得更加穩定,給系統提供了一個穩定保障。在上述技術方案的基礎上,本專利技術還可以做如下改進。進一步,所述封裝模塊用于定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。進一步,所述編譯模塊根據中間件的不同,進行預編譯不同的中間件下的代碼。進一步,不同中間件之間差異的代碼,主要體現在:數據庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。附圖說明圖1為本專利技術具體實施例1所述一種跨兩個中間件的系統編譯方法流程圖;圖2為本專利技術具體實施例2所述一種跨兩個中間件的系統編譯方法編譯圖;圖3為本專利技術具體實施例3所述的一種跨兩個中間件的系統的結構圖。附圖中,各標號所代表的部件列表如下:1、封裝模塊,2、替換模塊,3、編譯模塊。具體實施方式以下結合附圖對本專利技術的原理和特征進行描述,所舉實例只用于解釋本專利技術,并非用于限定本專利技術的范圍。如圖1所示,本專利技術具體實施例1所述方法一種跨兩個中間件的系統編譯方法,具體步驟如下:步驟1:封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2:替換模塊調用封裝模塊發送至的封裝后的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3:編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。所述步驟1中封裝模塊用于定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。所述步驟3中預編譯中間件的過程根據中間件的不同,進行預編譯不同的中間件下的代碼。不同中間件之間差異的代碼,主要體現在:數據庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。如圖2所示,本方法具體實施例2實現了不同中間件下服務程序的兼容,目前在TUXEDO/TONGEASY兩種中間件服務程序中得到實施驗證。實施方式:1、定義公共的頭文件pub_server.h,在頭文件使用預編譯宏定義的方式,將不同中間件差異的代碼,封裝成統一的宏定義變量:DBLONGCONNECT:數據庫連接方式DECLARE_SERVICE:服務的聲明BEGIN_SERVICE:服務輸入參數獲取方式ADD_VALUE32:服務輸出參數打包方式2、編寫某一服務R1052.cpa)在服務中,定義數據庫連接方式的代碼,使用宏定義DBLONGCONNECT。b)服務的聲明使用宏定義DECLARE_SERVICE:DECLARE_SERVICE(s1052Cfm)c)服務輸入參數獲取,使用:BEGIN_SERVICE();d)服務輸出參數打包,使用:ADD_VALUE32(0,sEffDate);ADD_VALUE32(1,sExpDate);3、編譯服務R1052.cp,則會根據中間件的不同,把程序中使用的預編譯宏定義變量轉換成各自中間件下的代碼,完成程序的兼容。如圖3所示,為本專利技術具體實施例3所述的一種跨兩個中間件的系統,包括封裝模塊1、替換模塊2和編譯模塊3;所述封裝模塊1用于將文件中存在中間件差異的中間件代碼,封裝在頭文件中;所述替換模塊2調用封裝模塊1發送至的封裝后的中間件代碼,將存在差異的中間件代碼替換為宏定義變量,并將替換后的服務程序文件發送至編譯模塊3;所述編譯模塊3接收從替換模塊2發送至的服務程序文件,并解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。所述封裝模塊1用于定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中。所述編譯模塊3根據中間件的不同,進行預編譯不同的中間件下的代碼。不同中間件之間差異的代碼,主要體現在:數據庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。以上所述僅為本專利技術的較佳實施例,并不用以限制本專利技術,凡在本專利技術的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本專利技術的保護范圍之內。本文檔來自技高網...

【技術保護點】
一種跨兩個中間件的系統編譯方法,其特征在于,具體步驟如下:步驟1:封裝模塊將文件中存在中間件差異的中間件代碼,封裝在頭文件中;步驟2:替換模塊調用封裝模塊發送至的封裝后的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3:編譯模塊開始預編譯,解析從替換模塊發送至的宏定義變量,轉換成可編譯的中間件代碼,完成跨兩個中間件的系統的編譯。
【技術特征摘要】
1.一種跨兩個中間件的系統編譯方法,其特征在于,具體步驟如下:步驟1:封裝模塊用于定義文件中的頭文件,在頭文件中使用預編譯宏定義的方式,將存在中間件差異的中間件代碼,封裝在頭文件中;步驟2:替換模塊調用封裝模塊發送至的封裝后的中間件代碼,將存在差異的中間件代碼替換為宏定義變量;步驟3:編譯模塊根據中間件的不同,把程序中使用的預編譯宏定義變量轉換成各自中間件下的代碼,完成程序的兼容,完成跨兩個中間件的系統的編譯。2.根據權利要求1所述一種跨兩個中間件的系統編譯方法,其特征在于,不同中間件之間差異的代碼,體現在:數據庫連接方式、服務的聲明方式、服務輸入參數獲取方式、服務輸出參數打包方式。3.一種跨兩個中間件的系統,其特征在于...
【專利技術屬性】
技術研發人員:尹永興,鹿林安,檀敬庭,
申請(專利權)人:北京思特奇信息技術股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。