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