房亞東,杜仲
(西安工業(yè)大學(xué)機電工程學(xué)院,陜西西安 710021)
在工程設(shè)計過程中,標(biāo)準(zhǔn)件會被大量重復(fù)使用。如何方便地建立網(wǎng)絡(luò)環(huán)境下的標(biāo)準(zhǔn)設(shè)計資源庫[1],并進行有效的管理,實現(xiàn)已有設(shè)計資源及成果最大限度地重用,一直是工程設(shè)計人員所關(guān)心的問題。機械設(shè)計中,諸如鉚釘、螺栓、螺母等標(biāo)準(zhǔn)件有著種類繁多、結(jié)構(gòu)迥異的特點,如何基于Web環(huán)境輕松安裝、部署、顯示、操作設(shè)計資源,并且達到結(jié)構(gòu)與數(shù)據(jù)分離的目的,是網(wǎng)絡(luò)環(huán)境下設(shè)計資源知識庫構(gòu)建的關(guān)鍵技術(shù)[1]。文中針對該問題,重點探討如何利用XML技術(shù)通過半結(jié)構(gòu)化的XML文件和結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)庫實現(xiàn)設(shè)計資源結(jié)構(gòu)和數(shù)據(jù)在動態(tài)頁面上的顯示和操作。
企業(yè)設(shè)計資源[2-3]分散化和動態(tài)開放的特征決定了管理平臺是一個開放的系統(tǒng),其體系結(jié)構(gòu)也必須是開放的和可擴展的。為此提出如圖1所示的標(biāo)準(zhǔn)化設(shè)計資源管理平臺體系結(jié)構(gòu)[4-5]。由圖可知,該系統(tǒng)共分為四層,由上至下分別是客戶層、請求接受層、應(yīng)用服務(wù)層以及數(shù)據(jù)存儲層,各層的具體功能及作用如下:
(1)客戶層
工程設(shè)計人員需要數(shù)據(jù)交互時通過Web服務(wù)器以及企業(yè)JavaBean(Enterprise JavaBeans,EJB)服務(wù)器提供的接口對設(shè)計資源管理平臺進行訪問,調(diào)用平臺提供的各項功能。

圖1 設(shè)計資源平臺的體系結(jié)構(gòu)
(2)請求接受層
主要用于接收從瀏覽器傳來的請求并將其交給底層進行處理,同時將請求處理結(jié)果發(fā)送給瀏覽器。該層可對數(shù)據(jù)進行一些簡單的邏輯處理,如數(shù)據(jù)校驗、客戶端瀏覽器檢驗等。
(3)業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層是平臺的核心,運行于Java應(yīng)用程序服務(wù)器中,所有事務(wù)處理邏輯均封裝于EJB組件中,應(yīng)用服務(wù)器為EJB組件提供一個優(yōu)化的執(zhí)行環(huán)境。
(4)數(shù)據(jù)存儲層
數(shù)據(jù)存儲層主要為快速擴散制造鏈構(gòu)建提供基礎(chǔ)支持,由設(shè)計資源數(shù)據(jù)庫、設(shè)計資源結(jié)構(gòu)XML文件以及基礎(chǔ)數(shù)據(jù)庫等幾部分組成,主要負(fù)責(zé)數(shù)據(jù)的存儲、查詢和備份,維護數(shù)據(jù)的一致性和安全性,為應(yīng)用服務(wù)層提供數(shù)據(jù)服務(wù)。
以下嘗試?yán)胐om4j[6]對設(shè)計資源XML文件進行解析。Dom4j是一個易用的、開源的組件庫,用于XML、XPath和XSLT的解析,它應(yīng)用于Java平臺,采用了 Java集合框架并完全支持 DOM、SAX和JAXP[7]。它的主要類和接口都在org.dom4j這個包里進行了定義,如表1所示。

表1 dom4j的主要接口和類
通過XMLOperate.java文件實現(xiàn)了XML文件操作算法,圖2所示為實現(xiàn)的關(guān)鍵類圖,從圖中可以得知,XMLOperate類調(diào)用了org.dom4j.io包中的SAXReader和SAXWriter類以及org.dom4j包中的 Attribute、Document和Element類,XMLOperate類調(diào)用了 DataOperationBean類訪問設(shè)計資源模塊信息和總體數(shù)據(jù)信息。在XMLOperate類中,getDocumentLocation()方法負(fù)責(zé)從管理平臺中獲取設(shè)計資源模型信息,setXMLLocation()方法用于設(shè)置讀取XML文件的路徑。initParse()和init-Generate()方法分別解析XML文件和產(chǎn)生入口,get-NodeQuick()方法用于獲取節(jié)點,所有的葉子節(jié)點的選擇是由travelSelectedNode()確定的,其返回值是向量,treewalk()方法用于高效快速地遍歷指定的XML文件。

圖2 設(shè)計資源關(guān)鍵類圖
Dtree是一個由JavaScript編寫成的免費開源的樹形菜單組件,可以從其官網(wǎng)http://destroydrop.com/javascripts/tree/下載。Dtree在多數(shù)瀏覽器如Internet Explorer 5+,Netscape 6+和Mozilla等下支持,可以在框架下使用,也可以在沒有框架的頁面中使用[8]。該組件中包括一些很重要的方法,如添加樹節(jié)點的add()方法,其參數(shù)依次為 id,pid,name,url,title,target,icon,iconOpen和open。add()方法的參數(shù)及含義如表2所示,id,pid,name是必選參數(shù),其余的是可選參數(shù)。動態(tài)樹的所有節(jié)點通過openAll()方法打開,openTo()方法打開書的指定的節(jié)點。

表2 add()方法的參數(shù)和含義
該平臺基于J2EE技術(shù)構(gòu)建,其實現(xiàn)過程如圖3所示,詳細描述如下:

圖3 設(shè)計資源管理平臺的實現(xiàn)過程
(1)工程設(shè)計人員從主頁面進行系統(tǒng)注冊,并進入設(shè)計資源操作頁面;
(2)resDisplay.jsp文件中的標(biāo)簽<jsp:useBean>調(diào)用RegQuery類創(chuàng)建具體的一個對象;
(3)從數(shù)據(jù)表 productinfo中獲取設(shè)計資源的數(shù)據(jù)信息 (資源模型名稱,用戶名,密碼,數(shù)據(jù)出口,資源模型路徑和描述等);
(4)XMLOperate.jsp件中的標(biāo)簽<jsp:useBean>調(diào)用XMLOperate類創(chuàng)建具體的一個對象;
(5)XMLOperate.java文件中,通過setXMLLocation()方法設(shè)置被操作的XML文件的路徑;
(6)根據(jù)第二步的操作,設(shè)計資源管理平臺中的資源信息XML文件通過dom4j組件中的initParse()和initGenerate()方法解析和生成;
(7)設(shè)計資源生成的數(shù)據(jù)從其選擇的設(shè)計資源模型相關(guān)的數(shù)據(jù)庫中獲取;
(8)根據(jù)DTree組件的規(guī)則,通過add()方法添加設(shè)計資源動態(tài)樹節(jié)點。
基于上述關(guān)鍵技術(shù)及系統(tǒng)的分析與設(shè)計,應(yīng)用JSP和EJB實現(xiàn)了B/S模式的設(shè)計資源管理平臺。系統(tǒng)數(shù)據(jù)庫為MySQL Server 5.0,Web服務(wù)器為Apache Tomcat/5.5.25,對應(yīng)的某個資源數(shù)據(jù)庫的XML文件結(jié)構(gòu)信息如下所示,其顯示和操作界面如圖4所示。




圖4 設(shè)計資源管理平臺的界面
標(biāo)準(zhǔn)設(shè)計資源是網(wǎng)絡(luò)制造等先進制造模式中十分昂貴的消耗性資源,也是產(chǎn)品設(shè)計活動中最主要的輔助工具,因此在企業(yè)生產(chǎn)過程中的靈活性、高效性和正確性等方面扮演著越來越重要的角色。在企業(yè)信息化建設(shè)過程中,如何快速有效地獲取企業(yè)資源信息是企業(yè)亟待解決的問題。文中根據(jù)制造企業(yè)標(biāo)準(zhǔn)化設(shè)計資源的特點研究了設(shè)計資源管理平臺框架,并討論了設(shè)計資源顯示和操作的實現(xiàn)及典型界面,希望文中所述的方法能為我國制造企業(yè)設(shè)計資源信息化、網(wǎng)絡(luò)化的建設(shè)提供一些參考。
[1]FANG Y D,KANG P,ZHANG L.Research and Application of Machine Tools Life-cycle Management System Based on Web[C].2009 Second International Colloquium on Computing,Communication,Control,and Management(CCCM 2009),IEEE Press,2009(8):117 -120.
[2]FANG Yadong,HE Weiping,DU Laihong,et al.Research of Enterprise Resource Management Supporting Networked Manufacturing[J].International Journal of Plant Engineering and Management,2005,10(4):196 -203.
[3]房亞東,杜來紅,康萍.支持網(wǎng)絡(luò)化制造的制造資源集成系統(tǒng)的研究與實現(xiàn)[J].機械設(shè)計與制造,2009(8):260-262.
[4]張長英.航空結(jié)構(gòu)件熱處理工藝資源庫的規(guī)劃與應(yīng)用[J].機械設(shè)計與制造,2012(7):103 -105.
[5]房亞東,何衛(wèi)平,杜來紅,等.基于多維度分析的制造資源集成與共享[J].計算機集成制造系統(tǒng),2006,12(7):1047-1053.
[6]BUSATTO G,LOHREY M,MANETH S.Efficient Memory Representation of XML Document Trees[J].Information Systems,2008,33(4):456 -474.
[7]ZHOU Q,LI Y,XU Y D.A Way of Creating XHTML Page from XML by Introducing Dom4j[J].Computer Techonology and Development,2010(1):43 -49.
[8]張偉華.基于Dtree實現(xiàn)知識顯示方法的研究[J].硅谷,2010(16):94-95.