圖1 SaaS成熟度模型

2 零件庫應用及采購流程

設計人員通過搜索引擎查找合適的零件,并可以下載零件模型,然后將零件的規(guī)格傳遞給采購人員。采購人員尋找合適的該零件供應商,下訂單進行交易。零件庫拓撲結構如圖2所示。零件采購流程如圖3所示。

圖2 零件拓撲結構

圖3 零件采購流程

3 系統(tǒng)功能分析

系統(tǒng)角色包含:管理員、購買者和零件供應商。管理員負責系統(tǒng)維護方面的工作;購買者可以查看零件和供應商信息,同時也具有訂單管理功能。零件供應商通過租用系統(tǒng)將零件保存在本系統(tǒng)零件庫內(nèi),同時也可以對收到的訂單進行操作。系統(tǒng)功能如圖4所示。

圖4 系統(tǒng)功能

4 系統(tǒng)設計與實現(xiàn)

4.1 系統(tǒng)網(wǎng)絡結構

系統(tǒng)采用SaaS第四級成熟度模型,支持系統(tǒng)水平擴展。系統(tǒng)網(wǎng)絡結構如圖5所示。

圖5 系統(tǒng)網(wǎng)絡結構

系統(tǒng)采用服務器陣列的方式實現(xiàn)水平擴展;用戶登入時通過身份認證服務器進行身份認證。系統(tǒng)通過負載均衡將用戶的訪問壓力分配到不同的服務器上,由于用戶登入系統(tǒng)后是具有狀態(tài)的,系統(tǒng)通過用戶狀態(tài)服務器來保存用戶的Session,這樣即使用戶兩次操作被分配到不同的服務器上也沒問題。

4.2 系統(tǒng)架構設計

系統(tǒng)采用4層架構來實現(xiàn),分別是界面層、邏輯層,應用服務層和數(shù)據(jù)層,同時還包括系統(tǒng)服務功能部分,系統(tǒng)架構如圖6所示,各層功能如下。

圖6 系統(tǒng)架構

界面層:為用戶提供交互界面,由于本系統(tǒng)用戶個性化配置需求較弱,所以界面樣式只是通過一般技術手段來實現(xiàn)。

邏輯層:負責系統(tǒng)業(yè)務邏輯判斷,主要包括用戶權限、訂單管理和零件搜索匹配。

應用服務:將系統(tǒng)的服務統(tǒng)一到此層來實現(xiàn),主要包括用戶、訂單管理、零件庫、零件模型管理和搜索引擎等。

數(shù)據(jù)層:系統(tǒng)主要包括兩部分數(shù)據(jù),一是結構化數(shù)據(jù),如用戶信息、訂單等,此類數(shù)據(jù)保持在數(shù)據(jù)庫中;二是直接以文件形式保存在文件服務器中的零件模型。除上述業(yè)務功能外,系統(tǒng)述包括其他輔助功能,這些功能集中在系統(tǒng)服務中。系統(tǒng)服務確保系統(tǒng)正常平穩(wěn)地運行。

4.3 零件族分類

零件分類級別如圖7所示,零件共分為5個級別。

圖7 零件分類級別

零件供應商在添加零件時,需要選擇零件所屬種類。零件模型文件名也表明了零件的類別。零件命名規(guī)則及數(shù)據(jù)表關聯(lián)如圖8所示。

圖8 零件命名規(guī)劃數(shù)據(jù)表關聯(lián)

5 系統(tǒng)關鍵技術及解決方案

5.1 零件命名規(guī)則及數(shù)據(jù)表關聯(lián)

零件文件名由16位數(shù)字組成。文件名前8位數(shù)字對應零件的5個級別,用來標明零件種類;9~13位數(shù)字標明零件發(fā)布的企業(yè),最后3位數(shù)字是該企業(yè)發(fā)布零件的自增號。

用戶在Parts Library表中搜索合適的零件,通過Parts File Name字段來索引零件模型,同時,Parts Library表中的Parts Father ID索引零件供應商。零件文件名、Parts Library表和Providers表的關系如圖8所示。

5.2 數(shù)據(jù)隔離

系統(tǒng)是面向多用戶的,用戶將零件和訂單信息保存在服務器端,數(shù)據(jù)安全是用戶非常關心的問題。數(shù)據(jù)安全中最主要的是數(shù)據(jù)隔離。

系統(tǒng)數(shù)據(jù)按重要性大致可分為兩種:安全性要求較高的,如訂單;安全性要求較低的,如零件庫。對于安全性要求較高的數(shù)據(jù),系統(tǒng)采用“共享數(shù)據(jù)庫,分離數(shù)據(jù)架構”方式保存數(shù)據(jù)。每個用戶享有一個單獨的數(shù)據(jù)架構,這樣就將用戶數(shù)據(jù)進行了隔離。

對于安全性要求較低的數(shù)據(jù),系統(tǒng)采用“共享數(shù)據(jù)庫,共享架構”方式保存數(shù)據(jù),將供應商零件保存在同一個表中,這樣用戶通過一個表就可以檢索到不同供應商的零件,避免跨庫檢索的麻煩。兩種數(shù)據(jù)隔離方式如圖9所示。

圖9 兩種數(shù)據(jù)隔離方式

5.3 系統(tǒng)水平擴展性

水平擴展性是指通過增加硬件設備緩解平臺訪問壓力,而不必修改系統(tǒng)架構水平擴展和數(shù)據(jù)層水平擴展。

5.3.1 服務器層水平擴展

服務器層水平擴展主要是通過負載均衡來實現(xiàn)的。系統(tǒng)將用戶身份驗證統(tǒng)一到身份驗證服務器上,文件服務器和數(shù)據(jù)服務器采用服務器陣列的方式實現(xiàn)水平自展。用戶登入系統(tǒng)后將產(chǎn)生用戶狀態(tài),必須保證通過負載均衡分配到不同的服務器上后,用戶的狀態(tài)是一致的。本平臺將用戶狀態(tài)集中到一臺獨立的用戶狀態(tài)服務器上,此服務器則來保存用戶的狀態(tài)信息——Session。

5.3.2 數(shù)據(jù)層水平擴展

系統(tǒng)通過數(shù)據(jù)庫垂直切分來實現(xiàn)水平擴展。數(shù)據(jù)庫垂直切分是指將不同的數(shù)據(jù)庫存放在不同的物理數(shù)據(jù)庫中,從而將數(shù)據(jù)訪問壓力分到不同數(shù)據(jù)服務器上。平臺將不同用戶的零件集中到個數(shù)據(jù)庫中,即零件庫,用戶可從個庫中檢索到不同用戶的零件;將訂單信息放到另一個數(shù)據(jù)庫,即訂單庫;用戶信息統(tǒng)一到用戶庫中。將原本同一庫中的數(shù)據(jù)分散保存到不同數(shù)據(jù)庫中即可減少數(shù)據(jù)服務器的壓力,但同時有可能使原本比較簡單的數(shù)據(jù)庫操作會變成跨庫操作。數(shù)據(jù)垂直切分如圖10所示。

圖10 數(shù)據(jù)垂直切分

5.4 零件三維模型動態(tài)顯示

為更好地展示零件,系統(tǒng)采用可擴展3D(eXtensible 3D,X3D)實現(xiàn)零件三維模型展示,用戶可旋轉和縮放零件。

X3D是Web3D聯(lián)盟推出的新一代網(wǎng)絡3D語言標準,它以國際標準VRML97為基礎,結合了XML、Java和流技術,具有方便的擴展功能。

零件模型般都是使用工程軟件建模的,如:AutoCAD、CATIA、UG等。一般三維建模軟件都支持導出X3D格式。在HTML中加載X3D文件代碼如下:

用戶通過安裝了X3D插件的瀏覽器查看零件三維模型,也可以旋轉和縮放零件,零件三維模型顯示效果如圖11所不。

圖11 零件三維模型顯示效果

6 結語

鑒于中小企業(yè)難以承擔建立零件庫的費用,本文采用SaaS模式開發(fā)了面向多用戶的零件庫原型系統(tǒng)系統(tǒng)采用X3D直現(xiàn)顯示零件三維模型,并且零件檢索速度快。中小企業(yè)通過租用系統(tǒng)來宣傳和銷售零件,可以降低企業(yè)信息化的門檻。

分享到

hanrui

相關推薦