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