1 傳統(tǒng)桌面CAPP系統(tǒng)網(wǎng)絡(luò)化轉(zhuǎn)型的必然
近幾年,由于云計(jì)算、物聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)等計(jì)算機(jī)技術(shù)的發(fā)展,帶動(dòng)了制造業(yè)信息系統(tǒng)的又一次發(fā)展浪潮,大多數(shù)廠商紛紛推出了全新技術(shù)架構(gòu),犧牲的代價(jià)不可謂不高.信息管理不再僅僅局限于局域網(wǎng)內(nèi),而必須與互聯(lián)網(wǎng)結(jié)合,在互聯(lián)網(wǎng)上協(xié)同管理異地信息,傳統(tǒng)的C/S架構(gòu)的CAPP系統(tǒng)承受了巨大沖擊,與互聯(lián)網(wǎng)融合成為不可扭轉(zhuǎn)的趨勢(shì)。
1.1 迫切支持協(xié)同化工藝管理
自從1965年Niebel首次提出CAPP思想以來(lái),最早CAPP僅僅作為一個(gè)編制工藝卡片的工具軟件替代來(lái)手工編制紙質(zhì)工藝卡片;后來(lái)逐漸融入了工藝數(shù)據(jù)管理模塊,具體包括工時(shí)管理、編碼管理、自動(dòng)匯總、卡片廣播、典型工藝借用、工藝知識(shí)管理等模塊。早期由于PDM、ERP等管理軟件尚未要求管理產(chǎn)品全生命周期,致使CAPP的管理功能獨(dú)立發(fā)展,從而形成獨(dú)立的信息孤島;隨著計(jì)算機(jī)集成制造系統(tǒng)(CIMS)的發(fā)展,要求PDM、CAPP、ERP等管理軟件協(xié)同工作,從而破除管理過(guò)程中產(chǎn)生的信息孤島。
1.2 低端制造向高端制造轉(zhuǎn)型的使然
現(xiàn)有多數(shù)CAPP系統(tǒng)是一個(gè)純C/S架構(gòu)的系統(tǒng),C代表客戶端,S代表數(shù)據(jù)庫(kù)管理系統(tǒng),對(duì)于局域網(wǎng)內(nèi)的業(yè)務(wù)完全可以勝任,且功能成熟、穩(wěn)定。但是,隨著制造企業(yè)的轉(zhuǎn)型,迫切要求信息管理系統(tǒng)實(shí)現(xiàn)從設(shè)計(jì)到制造全生命周期的管理,從而對(duì)工藝的設(shè)計(jì)源頭CAPP提出了更高的要求:第一、要求支持集團(tuán)企業(yè)多地遠(yuǎn)端應(yīng)用,實(shí)現(xiàn)異地遠(yuǎn)端協(xié)同工作;第二、要求與B/S系統(tǒng)的深度集成,實(shí)現(xiàn)與B/S系統(tǒng)的無(wú)縫集成。分析發(fā)現(xiàn),提出這些需求的公司業(yè)務(wù)普遍具有如下特點(diǎn):
①集團(tuán)化異地業(yè)務(wù)的系列應(yīng)用,且應(yīng)用系統(tǒng)涉及的數(shù)據(jù)量適中;
②數(shù)據(jù)庫(kù)部署在一個(gè)地方,如:集團(tuán)總部;
③有限帶寬下應(yīng)用.如:10M專(zhuān)網(wǎng)、20M專(zhuān)網(wǎng);
④與B/S系統(tǒng)前端集成和后端集成。
借鑒近幾年CAPP發(fā)展的經(jīng)驗(yàn),業(yè)內(nèi)推出的一些基于Web的CAPP系統(tǒng),由于系統(tǒng)在交互性、響應(yīng)速度及數(shù)據(jù)傳輸速率等方面的天然缺陷,而制造企業(yè)的信息系統(tǒng)恰好對(duì)交互性及響應(yīng)速度都有較高要求,致使這些基于Web的CAPP系統(tǒng)并沒(méi)有得到廣泛推廣。本文試圖結(jié)合內(nèi)存數(shù)據(jù)中間件、WCF、SOA服務(wù)等技術(shù),采用向現(xiàn)有架構(gòu)中插入多層(即:內(nèi)存數(shù)據(jù)處理層、數(shù)據(jù)通信層、應(yīng)用服務(wù)層)的方式,將C/S架構(gòu),拓展為多層混合架構(gòu)系統(tǒng)(即:C/S/S)。
2 混合架構(gòu)系統(tǒng)的體系結(jié)構(gòu)
傳統(tǒng)的CAPP系統(tǒng)是基于典型的C/S架構(gòu)的客戶訪問(wèn)層和數(shù)據(jù)服務(wù)兩層架構(gòu)系統(tǒng)。文中提出的混合架構(gòu)系統(tǒng):借助內(nèi)存數(shù)據(jù)庫(kù)將訪問(wèn)局域網(wǎng)內(nèi)本地?cái)?shù)據(jù)庫(kù)和互聯(lián)網(wǎng)上遠(yuǎn)程數(shù)據(jù)庫(kù)統(tǒng)一,形成客戶訪問(wèn)層、內(nèi)存數(shù)據(jù)處理層、數(shù)據(jù)通信層、應(yīng)用服務(wù)層、數(shù)據(jù)庫(kù)服務(wù)層等五層架構(gòu)體系,如圖1所示,其中,客戶訪問(wèn)層基于現(xiàn)有CAPP已有的桌面系統(tǒng)改造,最大限度的降低工作量,縮短開(kāi)發(fā)周期;內(nèi)存數(shù)據(jù)處理層利用內(nèi)存數(shù)據(jù)庫(kù)技術(shù)將數(shù)據(jù)對(duì)象緩存到客戶端來(lái)進(jìn)行操作,提升了系統(tǒng)的性能;數(shù)據(jù)通信層借助于通用客戶端代理完成非托管平臺(tái)與托管平臺(tái)的無(wú)縫集成,實(shí)現(xiàn)新老平臺(tái)間的數(shù)據(jù)通信;開(kāi)目應(yīng)用服務(wù)層利用WCF技術(shù)提供數(shù)據(jù)查詢服務(wù),文卷瀏覽等服務(wù),且借助于通用客戶單代理能夠輕松調(diào)用不同的應(yīng)用服務(wù)。
系統(tǒng)能夠通過(guò)簡(jiǎn)單的配置即能實(shí)現(xiàn)局域網(wǎng)內(nèi)非Web工作方式和互聯(lián)網(wǎng)上Web工作方式的自由切換。如此一來(lái),從使用效果角度,無(wú)論是局域網(wǎng)內(nèi)的非Web工作方式,還是Intemet網(wǎng)絡(luò)的Web工作方式,同樣具有交互優(yōu)勢(shì);從使用安全角度,借鑒了新的安全架構(gòu)思想,將數(shù)據(jù)庫(kù)訪問(wèn)層,置于應(yīng)用服務(wù)層之后,所有的數(shù)據(jù)訪問(wèn)都通過(guò)應(yīng)用服務(wù)層實(shí)現(xiàn),很大程度的加強(qiáng)了企業(yè)信息安全:從體系架構(gòu)角度,既能避免C/S架構(gòu)不能跨越異質(zhì)異構(gòu)網(wǎng)絡(luò)訪問(wèn)等缺陷,又能避免Web架構(gòu)系統(tǒng)界面交互性差等弱點(diǎn)。
圖1 系統(tǒng)總體架構(gòu)圖
3 關(guān)鍵技術(shù)
3.1 內(nèi)存數(shù)據(jù)處理層
內(nèi)存數(shù)據(jù)庫(kù)處理層肩負(fù)著兩大功能:1)為智能客戶端數(shù)據(jù)集的實(shí)時(shí)數(shù)據(jù)緩存,減少應(yīng)用程序與數(shù)據(jù)庫(kù)服務(wù)器的往返次數(shù),提高頻繁訪問(wèn)的響應(yīng)速度,提升交互友好性;2)保護(hù)客戶提供工作成果,解決網(wǎng)絡(luò)狀態(tài)不好時(shí),自動(dòng)本地化存儲(chǔ),網(wǎng)絡(luò)恢復(fù)時(shí)自動(dòng)同步客戶端的數(shù)據(jù)。
通常內(nèi)存數(shù)據(jù)庫(kù)是指將數(shù)據(jù)庫(kù)駐存到內(nèi)存進(jìn)行直接操作,而形成的高效訪問(wèn)數(shù)據(jù)庫(kù),但本文所指的內(nèi)存數(shù)據(jù)庫(kù)是作為一個(gè)中間件存在,為應(yīng)用程序所服務(wù),基于數(shù)據(jù)庫(kù)中的數(shù)據(jù)表、視圖、表關(guān)聯(lián)建立起來(lái)的具有對(duì)象特征和豐富數(shù)據(jù)關(guān)聯(lián)性的內(nèi)存數(shù)據(jù)結(jié)構(gòu),其數(shù)據(jù)處理邏輯不限于SQL語(yǔ)法,其具體結(jié)構(gòu)如圖3所示。對(duì)于數(shù)據(jù)定義語(yǔ)言(DDL),內(nèi)存數(shù)據(jù)庫(kù)僅作為一個(gè)中轉(zhuǎn)通道,SQL語(yǔ)句通過(guò)內(nèi)存數(shù)據(jù)庫(kù)中轉(zhuǎn)后,到達(dá)應(yīng)用服務(wù)器執(zhí)行完成操作;對(duì)于數(shù)據(jù)操作語(yǔ)言(DML),內(nèi)存數(shù)據(jù)庫(kù)直接處理,首先在內(nèi)存數(shù)據(jù)庫(kù)中完成對(duì)數(shù)據(jù)對(duì)象的添刪改,待操作全部完成后,將最終結(jié)果回存到應(yīng)用數(shù)據(jù)庫(kù)中。
圖2 內(nèi)存數(shù)據(jù)對(duì)象的類(lèi)結(jié)構(gòu)視圖
CAPP系統(tǒng)根據(jù)具體業(yè)務(wù)訪問(wèn)內(nèi)存數(shù)據(jù)對(duì)象,內(nèi)存數(shù)據(jù)對(duì)象則會(huì)自動(dòng)通過(guò)數(shù)據(jù)通信層組織遠(yuǎn)程數(shù)據(jù)到內(nèi)存數(shù)據(jù)對(duì)象,如同物理表一樣可以進(jìn)行select、insert、update、delete等操作,直到業(yè)務(wù)全部完成后通知內(nèi)存數(shù)據(jù)庫(kù)將內(nèi)存數(shù)據(jù)回存回遠(yuǎn)端數(shù)據(jù)庫(kù)中。對(duì)于遠(yuǎn)端數(shù)據(jù)庫(kù)的訪問(wèn)架構(gòu)來(lái)說(shuō),源于Web架構(gòu)的HTTP協(xié)議進(jìn)行工作,存在如下問(wèn)題:1)網(wǎng)絡(luò)請(qǐng)求的不穩(wěn)定性,2)網(wǎng)絡(luò)傳輸受限等缺點(diǎn).直接頻繁訪問(wèn)則響應(yīng)速度慢是最大的問(wèn)題.本系統(tǒng)利用內(nèi)存數(shù)據(jù)庫(kù)緩存技術(shù),首先可以大大減少CAPP與遠(yuǎn)端數(shù)據(jù)庫(kù)的交互次數(shù),減少網(wǎng)絡(luò)上數(shù)據(jù)存取次數(shù);其次將對(duì)數(shù)據(jù)的select、insert、update、delete等操作從遠(yuǎn)端網(wǎng)絡(luò)操作變成了進(jìn)程內(nèi)操作,極大提高了數(shù)據(jù)操作的效率。
3.2 通用客戶端代理組件
通用客戶端代理是利用.net的com互操作、C#的反射、Web訪問(wèn)等技術(shù)開(kāi)發(fā)的一個(gè)通用組件,不僅能夠輕松實(shí)現(xiàn)非托管組件與托管組件的結(jié)合,完成非托管平臺(tái)與托管平臺(tái)的無(wú)縫集成;而且利用.net提供的WebRequest等網(wǎng)絡(luò)通信對(duì)象,實(shí)現(xiàn)對(duì)不同的應(yīng)用服務(wù)的服務(wù)接口的調(diào)用。該組件實(shí)現(xiàn)對(duì).net程序集的動(dòng)態(tài)調(diào)用,很好地降低了系統(tǒng)的耦合性,使得系統(tǒng)易于維護(hù)、升級(jí),本系統(tǒng)借助該組件實(shí)現(xiàn)了現(xiàn)有的基于MFC工具開(kāi)發(fā)的CAPP客戶端與新近開(kāi)發(fā)的基于.net的應(yīng)用服務(wù)器平臺(tái)的集成,并對(duì)應(yīng)用服務(wù)器提供的服務(wù)組件實(shí)現(xiàn)動(dòng)態(tài)調(diào)用,從而降低系統(tǒng)的耦合性。
通用客戶端代理組件的主要算法流程如下:首先、利用C++中的variant t這個(gè)通用數(shù)據(jù)類(lèi)型將函數(shù)的調(diào)用參數(shù)封裝為CArray<-variant_t,_variant<_t類(lèi)型的動(dòng)態(tài)數(shù)組,與.net中的引用類(lèi)型的數(shù)組object[]對(duì)應(yīng),實(shí)現(xiàn)對(duì)參數(shù)的傳入傳出;其次、利用反射技術(shù)獲取.net程序集中相應(yīng)方法的類(lèi)型,參數(shù)信息;最后、通過(guò)調(diào)用的調(diào)用接口的Invoke實(shí)現(xiàn)cH組件對(duì).net程序集的通用調(diào)用,實(shí)現(xiàn)對(duì)所有服務(wù)接口的封裝。
4 應(yīng)用實(shí)例
傳統(tǒng)的CAPP通過(guò)客戶機(jī)的ODBC標(biāo)準(zhǔn)API,直接操作局域網(wǎng)內(nèi)數(shù)據(jù)庫(kù)服務(wù)器。而本文對(duì)現(xiàn)有CAPP架構(gòu)進(jìn)行整合、改造,使CAPP客戶端始終與內(nèi)存數(shù)據(jù)庫(kù)交互,業(yè)務(wù)所涉及的數(shù)據(jù)對(duì)象從應(yīng)用數(shù)據(jù)庫(kù)中加載到內(nèi)存數(shù)據(jù)庫(kù),待業(yè)務(wù)完成后再?gòu)膬?nèi)存數(shù)據(jù)中回存到應(yīng)用數(shù)據(jù)庫(kù),內(nèi)存數(shù)據(jù)庫(kù)通過(guò)配置可以直接訪問(wèn)本地?cái)?shù)據(jù)庫(kù)、或通過(guò)代理訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)。若開(kāi)啟局域網(wǎng)內(nèi)非Web工作方式訪問(wèn)本地?cái)?shù)據(jù)庫(kù),混合架構(gòu)將以客戶訪問(wèn)層、內(nèi)存數(shù)據(jù)處理層和數(shù)據(jù)服務(wù)層等三層架構(gòu)模式工作;若開(kāi)啟Web工作方式訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù),混合架構(gòu)將以客戶訪問(wèn)層、內(nèi)存數(shù)據(jù)處理層、數(shù)據(jù)通信層、應(yīng)用服務(wù)層和數(shù)據(jù)服務(wù)層等五層架構(gòu)模式工作,如圖3所示,是混合架構(gòu)CAPP系統(tǒng)編制一個(gè)工藝卡片的流程圖。圖4所示為系統(tǒng)訪問(wèn)方式的配置文件樣例。
圖3 工藝卡片編制流程圖
圖4 數(shù)據(jù)庫(kù)連接方式配置模板
5 結(jié)語(yǔ)
信息管理系統(tǒng)的網(wǎng)絡(luò)化是必然的趨勢(shì).本文針對(duì)企業(yè)切實(shí)需求,開(kāi)發(fā)的新架構(gòu)下的CAPP系統(tǒng)實(shí)現(xiàn)了既可以在局域網(wǎng)內(nèi)訪問(wèn)本地?cái)?shù)據(jù)庫(kù),也可以在互聯(lián)網(wǎng)上訪問(wèn)網(wǎng)絡(luò)數(shù)據(jù)庫(kù),甚至同時(shí)訪問(wèn),用戶可以根據(jù)自己的需要在兩種方式之間自由選擇或切換,從而最大限度地發(fā)揮兩種不同方式的優(yōu)點(diǎn)、避免各自的劣勢(shì)。內(nèi)存數(shù)據(jù)庫(kù)的使用提高了頻繁插入、刪除、更新數(shù)據(jù)等操作的效率,提高了系統(tǒng)的響應(yīng)速度,很好地避免了遠(yuǎn)程訪問(wèn)系統(tǒng)響應(yīng)慢的問(wèn)題.所開(kāi)發(fā)的基于新架構(gòu)系統(tǒng)下的CAPP系統(tǒng)等新型桌面應(yīng)用系統(tǒng)在企業(yè)實(shí)施,已獲得良好的效果。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:基于內(nèi)存數(shù)據(jù)對(duì)象的混合架構(gòu)CAPP系統(tǒng)
本文網(wǎng)址:http://www.oesoe.com/html/solutions/14019315044.html