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