圖1 SaaS成熟度模型
2 零件庫應(yīng)用及采購流程
設(shè)計(jì)人員通過搜索引擎查找合適的零件,并可以下載零件模型,然后將零件的規(guī)格傳遞給采購人員。采購人員尋找合適的該零件供應(yīng)商,下訂單進(jìn)行交易。零件庫拓?fù)浣Y(jié)構(gòu)如圖2所示。零件采購流程如圖3所示。
圖2 零件拓?fù)浣Y(jié)構(gòu)
圖3 零件采購流程
3 系統(tǒng)功能分析
系統(tǒng)角色包含:管理員、購買者和零件供應(yīng)商。管理員負(fù)責(zé)系統(tǒng)維護(hù)方面的工作;購買者可以查看零件和供應(yīng)商信息,同時也具有訂單管理功能。零件供應(yīng)商通過租用系統(tǒng)將零件保存在本系統(tǒng)零件庫內(nèi),同時也可以對收到的訂單進(jìn)行操作。系統(tǒng)功能如圖4所示。
圖4 系統(tǒng)功能
4 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
4.1 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
系統(tǒng)采用SaaS第四級成熟度模型,支持系統(tǒng)水平擴(kuò)展。系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)
系統(tǒng)采用服務(wù)器陣列的方式實(shí)現(xiàn)水平擴(kuò)展;用戶登入時通過身份認(rèn)證服務(wù)器進(jìn)行身份認(rèn)證。系統(tǒng)通過負(fù)載均衡將用戶的訪問壓力分配到不同的服務(wù)器上,由于用戶登入系統(tǒng)后是具有狀態(tài)的,系統(tǒng)通過用戶狀態(tài)服務(wù)器來保存用戶的Session,這樣即使用戶兩次操作被分配到不同的服務(wù)器上也沒問題。
4.2 系統(tǒng)架構(gòu)設(shè)計(jì)
系統(tǒng)采用4層架構(gòu)來實(shí)現(xiàn),分別是界面層、邏輯層,應(yīng)用服務(wù)層和數(shù)據(jù)層,同時還包括系統(tǒng)服務(wù)功能部分,系統(tǒng)架構(gòu)如圖6所示,各層功能如下。
圖6 系統(tǒng)架構(gòu)
界面層:為用戶提供交互界面,由于本系統(tǒng)用戶個性化配置需求較弱,所以界面樣式只是通過一般技術(shù)手段來實(shí)現(xiàn)。
邏輯層:負(fù)責(zé)系統(tǒng)業(yè)務(wù)邏輯判斷,主要包括用戶權(quán)限、訂單管理和零件搜索匹配。
應(yīng)用服務(wù):將系統(tǒng)的服務(wù)統(tǒng)一到此層來實(shí)現(xiàn),主要包括用戶、訂單管理、零件庫、零件模型管理和搜索引擎等。
數(shù)據(jù)層:系統(tǒng)主要包括兩部分?jǐn)?shù)據(jù),一是結(jié)構(gòu)化數(shù)據(jù),如用戶信息、訂單等,此類數(shù)據(jù)保持在數(shù)據(jù)庫中;二是直接以文件形式保存在文件服務(wù)器中的零件模型。除上述業(yè)務(wù)功能外,系統(tǒng)述包括其他輔助功能,這些功能集中在系統(tǒng)服務(wù)中。系統(tǒng)服務(wù)確保系統(tǒng)正常平穩(wěn)地運(yùn)行。
4.3 零件族分類
零件分類級別如圖7所示,零件共分為5個級別。
圖7 零件分類級別
零件供應(yīng)商在添加零件時,需要選擇零件所屬種類。零件模型文件名也表明了零件的類別。零件命名規(guī)則及數(shù)據(jù)表關(guān)聯(lián)如圖8所示。
圖8 零件命名規(guī)劃數(shù)據(jù)表關(guān)聯(lián)
5 系統(tǒng)關(guān)鍵技術(shù)及解決方案
5.1 零件命名規(guī)則及數(shù)據(jù)表關(guān)聯(lián)
零件文件名由16位數(shù)字組成。文件名前8位數(shù)字對應(yīng)零件的5個級別,用來標(biāo)明零件種類;9~13位數(shù)字標(biāo)明零件發(fā)布的企業(yè),最后3位數(shù)字是該企業(yè)發(fā)布零件的自增號。
用戶在Parts Library表中搜索合適的零件,通過Parts File Name字段來索引零件模型,同時,Parts Library表中的Parts Father ID索引零件供應(yīng)商。零件文件名、Parts Library表和Providers表的關(guān)系如圖8所示。
5.2 數(shù)據(jù)隔離
系統(tǒng)是面向多用戶的,用戶將零件和訂單信息保存在服務(wù)器端,數(shù)據(jù)安全是用戶非常關(guān)心的問題。數(shù)據(jù)安全中最主要的是數(shù)據(jù)隔離。
系統(tǒng)數(shù)據(jù)按重要性大致可分為兩種:安全性要求較高的,如訂單;安全性要求較低的,如零件庫。對于安全性要求較高的數(shù)據(jù),系統(tǒng)采用“共享數(shù)據(jù)庫,分離數(shù)據(jù)架構(gòu)”方式保存數(shù)據(jù)。每個用戶享有一個單獨(dú)的數(shù)據(jù)架構(gòu),這樣就將用戶數(shù)據(jù)進(jìn)行了隔離。
對于安全性要求較低的數(shù)據(jù),系統(tǒng)采用“共享數(shù)據(jù)庫,共享架構(gòu)”方式保存數(shù)據(jù),將供應(yīng)商零件保存在同一個表中,這樣用戶通過一個表就可以檢索到不同供應(yīng)商的零件,避免跨庫檢索的麻煩。兩種數(shù)據(jù)隔離方式如圖9所示。
圖9 兩種數(shù)據(jù)隔離方式
5.3 系統(tǒng)水平擴(kuò)展性
水平擴(kuò)展性是指通過增加硬件設(shè)備緩解平臺訪問壓力,而不必修改系統(tǒng)架構(gòu)水平擴(kuò)展和數(shù)據(jù)層水平擴(kuò)展。
5.3.1 服務(wù)器層水平擴(kuò)展
服務(wù)器層水平擴(kuò)展主要是通過負(fù)載均衡來實(shí)現(xiàn)的。系統(tǒng)將用戶身份驗(yàn)證統(tǒng)一到身份驗(yàn)證服務(wù)器上,文件服務(wù)器和數(shù)據(jù)服務(wù)器采用服務(wù)器陣列的方式實(shí)現(xiàn)水平自展。用戶登入系統(tǒng)后將產(chǎn)生用戶狀態(tài),必須保證通過負(fù)載均衡分配到不同的服務(wù)器上后,用戶的狀態(tài)是一致的。本平臺將用戶狀態(tài)集中到一臺獨(dú)立的用戶狀態(tài)服務(wù)器上,此服務(wù)器則來保存用戶的狀態(tài)信息——Session。
5.3.2 數(shù)據(jù)層水平擴(kuò)展
系統(tǒng)通過數(shù)據(jù)庫垂直切分來實(shí)現(xiàn)水平擴(kuò)展。數(shù)據(jù)庫垂直切分是指將不同的數(shù)據(jù)庫存放在不同的物理數(shù)據(jù)庫中,從而將數(shù)據(jù)訪問壓力分到不同數(shù)據(jù)服務(wù)器上。平臺將不同用戶的零件集中到個數(shù)據(jù)庫中,即零件庫,用戶可從個庫中檢索到不同用戶的零件;將訂單信息放到另一個數(shù)據(jù)庫,即訂單庫;用戶信息統(tǒng)一到用戶庫中。將原本同一庫中的數(shù)據(jù)分散保存到不同數(shù)據(jù)庫中即可減少數(shù)據(jù)服務(wù)器的壓力,但同時有可能使原本比較簡單的數(shù)據(jù)庫操作會變成跨庫操作。數(shù)據(jù)垂直切分如圖10所示。
圖10 數(shù)據(jù)垂直切分
5.4 零件三維模型動態(tài)顯示
為更好地展示零件,系統(tǒng)采用可擴(kuò)展3D(eXtensible 3D,X3D)實(shí)現(xiàn)零件三維模型展示,用戶可旋轉(zhuǎn)和縮放零件。
X3D是Web3D聯(lián)盟推出的新一代網(wǎng)絡(luò)3D語言標(biāo)準(zhǔn),它以國際標(biāo)準(zhǔn)VRML97為基礎(chǔ),結(jié)合了XML、Java和流技術(shù),具有方便的擴(kuò)展功能。
零件模型般都是使用工程軟件建模的,如:AutoCAD、CATIA、UG等。一般三維建模軟件都支持導(dǎo)出X3D格式。在HTML中加載X3D文件代碼如下:
用戶通過安裝了X3D插件的瀏覽器查看零件三維模型,也可以旋轉(zhuǎn)和縮放零件,零件三維模型顯示效果如圖11所不。
圖11 零件三維模型顯示效果
6 結(jié)語
鑒于中小企業(yè)難以承擔(dān)建立零件庫的費(fèi)用,本文采用SaaS模式開發(fā)了面向多用戶的零件庫原型系統(tǒng)系統(tǒng)采用X3D直現(xiàn)顯示零件三維模型,并且零件檢索速度快。中小企業(yè)通過租用系統(tǒng)來宣傳和銷售零件,可以降低企業(yè)信息化的門檻。