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