房亞?wèn)|,杜仲
(西安工業(yè)大學(xué)機(jī)電工程學(xué)院,陜西西安 710021)
在工程設(shè)計(jì)過(guò)程中,標(biāo)準(zhǔn)件會(huì)被大量重復(fù)使用。如何方便地建立網(wǎng)絡(luò)環(huán)境下的標(biāo)準(zhǔn)設(shè)計(jì)資源庫(kù)[1],并進(jìn)行有效的管理,實(shí)現(xiàn)已有設(shè)計(jì)資源及成果最大限度地重用,一直是工程設(shè)計(jì)人員所關(guān)心的問(wèn)題。機(jī)械設(shè)計(jì)中,諸如鉚釘、螺栓、螺母等標(biāo)準(zhǔn)件有著種類繁多、結(jié)構(gòu)迥異的特點(diǎn),如何基于Web環(huán)境輕松安裝、部署、顯示、操作設(shè)計(jì)資源,并且達(dá)到結(jié)構(gòu)與數(shù)據(jù)分離的目的,是網(wǎng)絡(luò)環(huán)境下設(shè)計(jì)資源知識(shí)庫(kù)構(gòu)建的關(guān)鍵技術(shù)[1]。文中針對(duì)該問(wèn)題,重點(diǎn)探討如何利用XML技術(shù)通過(guò)半結(jié)構(gòu)化的XML文件和結(jié)構(gòu)化的關(guān)系型數(shù)據(jù)庫(kù)實(shí)現(xiàn)設(shè)計(jì)資源結(jié)構(gòu)和數(shù)據(jù)在動(dòng)態(tài)頁(yè)面上的顯示和操作。
企業(yè)設(shè)計(jì)資源[2-3]分散化和動(dòng)態(tài)開(kāi)放的特征決定了管理平臺(tái)是一個(gè)開(kāi)放的系統(tǒng),其體系結(jié)構(gòu)也必須是開(kāi)放的和可擴(kuò)展的。為此提出如圖1所示的標(biāo)準(zhǔn)化設(shè)計(jì)資源管理平臺(tái)體系結(jié)構(gòu)[4-5]。由圖可知,該系統(tǒng)共分為四層,由上至下分別是客戶層、請(qǐng)求接受層、應(yīng)用服務(wù)層以及數(shù)據(jù)存儲(chǔ)層,各層的具體功能及作用如下:
(1)客戶層
工程設(shè)計(jì)人員需要數(shù)據(jù)交互時(shí)通過(guò)Web服務(wù)器以及企業(yè)JavaBean(Enterprise JavaBeans,EJB)服務(wù)器提供的接口對(duì)設(shè)計(jì)資源管理平臺(tái)進(jìn)行訪問(wèn),調(diào)用平臺(tái)提供的各項(xiàng)功能。
圖1 設(shè)計(jì)資源平臺(tái)的體系結(jié)構(gòu)
(2)請(qǐng)求接受層
主要用于接收從瀏覽器傳來(lái)的請(qǐng)求并將其交給底層進(jìn)行處理,同時(shí)將請(qǐng)求處理結(jié)果發(fā)送給瀏覽器。該層可對(duì)數(shù)據(jù)進(jìn)行一些簡(jiǎn)單的邏輯處理,如數(shù)據(jù)校驗(yàn)、客戶端瀏覽器檢驗(yàn)等。
(3)業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層是平臺(tái)的核心,運(yùn)行于Java應(yīng)用程序服務(wù)器中,所有事務(wù)處理邏輯均封裝于EJB組件中,應(yīng)用服務(wù)器為EJB組件提供一個(gè)優(yōu)化的執(zhí)行環(huán)境。
(4)數(shù)據(jù)存儲(chǔ)層
數(shù)據(jù)存儲(chǔ)層主要為快速擴(kuò)散制造鏈構(gòu)建提供基礎(chǔ)支持,由設(shè)計(jì)資源數(shù)據(jù)庫(kù)、設(shè)計(jì)資源結(jié)構(gòu)XML文件以及基礎(chǔ)數(shù)據(jù)庫(kù)等幾部分組成,主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)、查詢和備份,維護(hù)數(shù)據(jù)的一致性和安全性,為應(yīng)用服務(wù)層提供數(shù)據(jù)服務(wù)。
以下嘗試?yán)胐om4j[6]對(duì)設(shè)計(jì)資源XML文件進(jìn)行解析。Dom4j是一個(gè)易用的、開(kāi)源的組件庫(kù),用于XML、XPath和XSLT的解析,它應(yīng)用于Java平臺(tái),采用了 Java集合框架并完全支持 DOM、SAX和JAXP[7]。它的主要類和接口都在org.dom4j這個(gè)包里進(jìn)行了定義,如表1所示。
表1 dom4j的主要接口和類
通過(guò)XMLOperate.java文件實(shí)現(xiàn)了XML文件操作算法,圖2所示為實(shí)現(xiàn)的關(guān)鍵類圖,從圖中可以得知,XMLOperate類調(diào)用了org.dom4j.io包中的SAXReader和SAXWriter類以及org.dom4j包中的 Attribute、Document和Element類,XMLOperate類調(diào)用了 DataOperationBean類訪問(wèn)設(shè)計(jì)資源模塊信息和總體數(shù)據(jù)信息。在XMLOperate類中,getDocumentLocation()方法負(fù)責(zé)從管理平臺(tái)中獲取設(shè)計(jì)資源模型信息,setXMLLocation()方法用于設(shè)置讀取XML文件的路徑。initParse()和init-Generate()方法分別解析XML文件和產(chǎn)生入口,get-NodeQuick()方法用于獲取節(jié)點(diǎn),所有的葉子節(jié)點(diǎn)的選擇是由travelSelectedNode()確定的,其返回值是向量,treewalk()方法用于高效快速地遍歷指定的XML文件。
圖2 設(shè)計(jì)資源關(guān)鍵類圖
Dtree是一個(gè)由JavaScript編寫成的免費(fèi)開(kāi)源的樹(shù)形菜單組件,可以從其官網(wǎng)http://destroydrop.com/javascripts/tree/下載。Dtree在多數(shù)瀏覽器如Internet Explorer 5+,Netscape 6+和Mozilla等下支持,可以在框架下使用,也可以在沒(méi)有框架的頁(yè)面中使用[8]。該組件中包括一些很重要的方法,如添加樹(shù)節(jié)點(diǎn)的add()方法,其參數(shù)依次為 id,pid,name,url,title,target,icon,iconOpen和open。add()方法的參數(shù)及含義如表2所示,id,pid,name是必選參數(shù),其余的是可選參數(shù)。動(dòng)態(tài)樹(shù)的所有節(jié)點(diǎn)通過(guò)openAll()方法打開(kāi),openTo()方法打開(kāi)書(shū)的指定的節(jié)點(diǎn)。
表2 add()方法的參數(shù)和含義
該平臺(tái)基于J2EE技術(shù)構(gòu)建,其實(shí)現(xiàn)過(guò)程如圖3所示,詳細(xì)描述如下:
圖3 設(shè)計(jì)資源管理平臺(tái)的實(shí)現(xiàn)過(guò)程
(1)工程設(shè)計(jì)人員從主頁(yè)面進(jìn)行系統(tǒng)注冊(cè),并進(jìn)入設(shè)計(jì)資源操作頁(yè)面;
(2)resDisplay.jsp文件中的標(biāo)簽<jsp:useBean>調(diào)用RegQuery類創(chuàng)建具體的一個(gè)對(duì)象;
(3)從數(shù)據(jù)表 productinfo中獲取設(shè)計(jì)資源的數(shù)據(jù)信息 (資源模型名稱,用戶名,密碼,數(shù)據(jù)出口,資源模型路徑和描述等);
(4)XMLOperate.jsp件中的標(biāo)簽<jsp:useBean>調(diào)用XMLOperate類創(chuàng)建具體的一個(gè)對(duì)象;
(5)XMLOperate.java文件中,通過(guò)setXMLLocation()方法設(shè)置被操作的XML文件的路徑;
(6)根據(jù)第二步的操作,設(shè)計(jì)資源管理平臺(tái)中的資源信息XML文件通過(guò)dom4j組件中的initParse()和initGenerate()方法解析和生成;
(7)設(shè)計(jì)資源生成的數(shù)據(jù)從其選擇的設(shè)計(jì)資源模型相關(guān)的數(shù)據(jù)庫(kù)中獲取;
(8)根據(jù)DTree組件的規(guī)則,通過(guò)add()方法添加設(shè)計(jì)資源動(dòng)態(tài)樹(shù)節(jié)點(diǎn)。
基于上述關(guān)鍵技術(shù)及系統(tǒng)的分析與設(shè)計(jì),應(yīng)用JSP和EJB實(shí)現(xiàn)了B/S模式的設(shè)計(jì)資源管理平臺(tái)。系統(tǒng)數(shù)據(jù)庫(kù)為MySQL Server 5.0,Web服務(wù)器為Apache Tomcat/5.5.25,對(duì)應(yīng)的某個(gè)資源數(shù)據(jù)庫(kù)的XML文件結(jié)構(gòu)信息如下所示,其顯示和操作界面如圖4所示。
圖4 設(shè)計(jì)資源管理平臺(tái)的界面
標(biāo)準(zhǔn)設(shè)計(jì)資源是網(wǎng)絡(luò)制造等先進(jìn)制造模式中十分昂貴的消耗性資源,也是產(chǎn)品設(shè)計(jì)活動(dòng)中最主要的輔助工具,因此在企業(yè)生產(chǎn)過(guò)程中的靈活性、高效性和正確性等方面扮演著越來(lái)越重要的角色。在企業(yè)信息化建設(shè)過(guò)程中,如何快速有效地獲取企業(yè)資源信息是企業(yè)亟待解決的問(wèn)題。文中根據(jù)制造企業(yè)標(biāo)準(zhǔn)化設(shè)計(jì)資源的特點(diǎn)研究了設(shè)計(jì)資源管理平臺(tái)框架,并討論了設(shè)計(jì)資源顯示和操作的實(shí)現(xiàn)及典型界面,希望文中所述的方法能為我國(guó)制造企業(yè)設(shè)計(jì)資源信息化、網(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èn)|,杜來(lái)紅,康萍.支持網(wǎng)絡(luò)化制造的制造資源集成系統(tǒng)的研究與實(shí)現(xiàn)[J].機(jī)械設(shè)計(jì)與制造,2009(8):260-262.
[4]張長(zhǎng)英.航空結(jié)構(gòu)件熱處理工藝資源庫(kù)的規(guī)劃與應(yīng)用[J].機(jī)械設(shè)計(jì)與制造,2012(7):103 -105.
[5]房亞?wèn)|,何衛(wèi)平,杜來(lái)紅,等.基于多維度分析的制造資源集成與共享[J].計(jì)算機(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實(shí)現(xiàn)知識(shí)顯示方法的研究[J].硅谷,2010(16):94-95.