2011年,邯鋼對冷軋MES項目進行了改造,改造后的系統采用面向服務的三層C/S架構。新的架構較原先的二層C/S架構無論是可用性、可靠性、安全性、可重用行都有了很大的提高。
1 三層C/S架構
邯鋼冷軋MES系統采用時下流行的的三層C/S架構,即客戶機/應用服務器/數據庫服務器架構。在該系統平臺中,客戶端的前臺系統是用微軟公司最新的.NET 2008集成開發環境開發,中間層采用目前較為成熟,支持大量客戶并發訪問的BEA公司的事務處理型中間件Tuxedo7.0,后臺數據庫則采用適合大型事務處理系統的關系型數據庫Oracle10g。
對應于三層架構,由.NET開發的客戶端程序位于現場崗位PC機上,它負責根據用戶的操作調用中間層的相應服務,并顯示操作結果。而中間層的應用服務器位于單獨的服務器上,它負責接收客戶端的請求,并調用相應的服務,然后通過PRO*C來訪問遠程的Oracle數據庫服務器。
在面向服務的三層C/S架構中,中間層是整個架構的核心。因為在該平臺架構開發中,主要的工作量在業務邏輯的處理。而業務邏輯處理是作為服務運行在中間層的應用服務器上的。開發人員可根據不同的業務需求,把不同的業務做成不同的Service,然后交給Tuxedo自動處理。而Tuxedo中間件正是面向服務處理的一個系統軟件。它處理的基本單位是一個個不同的服務元,即開發人員編寫的不同Service,但是Tuxedo并不是對不同的Service分別進行管理,它需要集中管理,即把不同的Service綁定到一個Server中,然后對該Server進行高效的管理。例如前臺調用中間層的Service,中間層的Tuxedo在收到前臺的服務請求后,會運行與該Service綁定的Server。其中運行的進程就是前臺調用的Service,當事務處理完成后,該Server實例自動結束,其中所包含的Service進程也隨之消亡。由上可看出,Server相當于一個盛放Service的容器,Tuxedo中間件是對Server這個Service容器進行統一管理的。這非常類似于操作系統中進程與線程的概念,在操作系統中,進行資源擁有的單位是進程,但是進行資源調度和分配的單位卻是進程中的各個線程。其實也可以這樣說,Tuxedo就是一個網絡操作系統,負責服務的調度和管理。
上圖中的Service是用Pro*C語言開發的,這是一種通過在C語言中嵌入SQL語句,以便訪問Oraele數據庫的開發語言,它只能用于對Oracle數據庫的訪問。Tuxedo中間件作為前臺與后臺的聯系紐帶,負責處理數據的交換。在數據轉換過程中,因為Tuxedo自帶的數據訪問函數比較復雜難懂,為了降低開發人員的工作量和難度,以便使開發人員集中精力處理業務邏輯,邯鋼冷軋MES平臺對Tuxedo復雜的底層數據交換進行了封裝處理,只提供一套高效、便捷的數據訪問接口,這樣開發人員只需調用這些API接口就能處理與前后臺的數據交換,大大提高了工作效率,縮短了開發周期。
2 Tuxedo7簡介
Tuexdo7.0是在企業、因特網這樣的分布式運算環境中管理三層結構的客戶/服務器型關鍵任務應用系統的強有力工具,它能支持大量的客戶進程對服務器的并發訪問。它通過負載均衡技術把負載均勻地分布在集群中的不同服務器上,不會出現一個服務器負荷較重,而另一個服務器較閑的情況,大大提高了系統的運行速度,縮短了響應時間。在分布式計算環境下,Tuxedo支持兩階段提交,保證了數據的一致和完整性。除此之外,Tuxedo還具有很高的安全性和故障恢復能力。所有這些特性,使得Tuxedo中間件廣泛的應用在銀行、電信、金融等擁有大量客戶的領域。
它位于三層C/S架構中的中間層,是三層C/S架構中的核心,Tuxedo采用三層結構的組件模型,如下圖所示:
2.1 Service介紹
Service是tuxedo中的事務處理單元,相當于操作系統中的線程,是開發人員根據業務需要用PRO*C開發的,例如生產訂單查詢就可以做成一個Service供前臺客戶端調用。它是嵌入tuxedo中的,其編寫方式必須符合tuxedo的標準。
2.2 Server介紹
由上文可知,Tuxedo對Service的管理是通過Server進行的,它相當于多個Service的容器。tuxedo對Service的編譯、加載、卸載都是以Server為單位進行的。開發人員在開發完Service后,需要將Service綁定到一個Server中。Server是由開發人員自行指定的,它由一個ID號唯一確定。例如在邯鋼冷軋MES系統中,開發人員可為生產訂單指定一個Server號,生產訂單的查詢、修改、刪除則可以做成不同的Service綁定到該Server中。
3 PRO*C簡介
Pro*C是在C/C++開發語言中嵌入SQL語句,以訪問ORACLE數據庫。因為Pro*C程序相當于服務器端的存儲過程,所以具有編譯速度快,運行效率高,并能有效降低網絡數據流量的優點。
在邯鋼冷軋MES開發平臺中,開發人員用Pro*C開發后臺Service。在開發Pro*C程序時必須注意下列問題:
首先Pro*C程序必須包含SQL的標準頭文件sqlca.h,該頭文件中定義了一些程序中經常使用的SQL系統變量,如:sqlca.sqlcode等。對于直接和數據表交互的結構體開發平臺將其自動生成頭文件,并以EXEC SOL INCLUDE*.h的方式引用到應用程序中。這種結構體是為便于與數據表進行數據交互和與tuxedo進行數據傳輸而由開發平臺專門定制的。
4 面向服務架構的優點
4.1 系統的安裝與升級更容易
每個開發人員根據業務需要,可開發不同的Service,并嵌入不同的Server中,然后由Tuxedo統一管理。當一個Service需要更新時,可在不停機的情況下更新該Service,而不會影響其它的Service。
4.2 可并行開發,縮短了開發周期
每個開發人員根據業務需要,可同時開發不同的Service,最后再集成到一個系統中,大大提高了開發效率。
4.3 可重用服務
一個服務創建后能用于多個應用和業務流程。降低了開發成本,提高了開發效率。
4.4 松耦合
憑借其松耦合的特性,使得企業可以按照模塊化的方式來添加薪服務或更新現有服務,以解決新的業務需要,并可以把企業現有的或已有的應用作為服務,從而保護了現有的IT基礎建設投資。
5 結語
邯鋼冷軋MES系統采用面向服務的三層架構后,能夠快速靈活的適應業務流程的變化,提高系統運行速度和可用性,為邯鋼的信息化建設打下堅實的基礎。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:面向服務的三層軟件架構設計
本文網址:http://www.guhuozai8.cn/html/consultation/1083932968.html