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