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