陳富軍,熊 娟
(黃淮學(xué)院 電子科學(xué)與工程系,河南 駐馬店 463000)
基于XML的電子器件模塊化管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
陳富軍,熊 娟
(黃淮學(xué)院 電子科學(xué)與工程系,河南 駐馬店 463000)
文章分析了用XML進(jìn)行工作流建模的可行性和優(yōu)勢(shì),給出了電子器件模塊化管理系統(tǒng)的工作流建模方案,并設(shè)計(jì)了一種基于XML的電子器件模塊化管理系統(tǒng).
XML;電子器件;建模;模塊化管理系統(tǒng)
在電力電子領(lǐng)域,企業(yè)新產(chǎn)品研發(fā)加快,產(chǎn)品也日益豐富,這些新變化都對(duì)企業(yè)內(nèi)部現(xiàn)有的知識(shí)庫(kù)管理系統(tǒng)提出了挑戰(zhàn).特別是在金融危機(jī)形勢(shì)下,為了爭(zhēng)取在競(jìng)爭(zhēng)激烈的電力電子市場(chǎng)獲得長(zhǎng)遠(yuǎn)發(fā)展,企業(yè)迫切需要降低研發(fā)成本,提高研發(fā)效率.在企業(yè)內(nèi)部實(shí)現(xiàn)電子器件管理的標(biāo)準(zhǔn)化,加強(qiáng)研發(fā)行為的規(guī)范化、流程化,是降低研發(fā)成本和風(fēng)險(xiǎn)、提高研發(fā)效率的有效手段,是建立自主研發(fā)生產(chǎn)管理體系的必要措施.
XML是Extensible Markup Language的縮寫(xiě),即可擴(kuò)展標(biāo)記語(yǔ)言,是 W3C協(xié)會(huì)推出的新一代數(shù)據(jù)交換標(biāo)準(zhǔn).XML是一種可創(chuàng)建新的標(biāo)記語(yǔ)言的元語(yǔ)言,其應(yīng)用層面具有無(wú)限延伸性,主要用于定義Web網(wǎng)頁(yè)上的文檔元素和商業(yè)文檔[1].XML最大的特點(diǎn)是將數(shù)據(jù)結(jié)構(gòu)化,能實(shí)現(xiàn)數(shù)據(jù)共享,能在不同平臺(tái)間進(jìn)行信息交換.只要在相互傳遞信息的系統(tǒng)上裝有 XML解析器,就可以解讀經(jīng)過(guò)標(biāo)記的數(shù)據(jù),得到正確的信息.XML建立在Unicode之上,文檔能夠以不同的語(yǔ)言進(jìn)行呈現(xiàn).
本文研究的電子器件模塊化管理系統(tǒng)采用基于XML的工作流技術(shù),主要有以下優(yōu)點(diǎn):研發(fā)過(guò)程可跟蹤、管理;管理策略靈活、強(qiáng)大;支持各種復(fù)雜流程;B/S結(jié)構(gòu)可實(shí)現(xiàn)純?yōu)g覽器應(yīng)用;表單功能強(qiáng)大,擴(kuò)展便捷;具有豐富的統(tǒng)計(jì)、查詢、報(bào)表功能.
1.1 XML的文檔結(jié)構(gòu)
XML文檔由許多不同作用的標(biāo)記構(gòu)成.從邏輯結(jié)構(gòu)上來(lái)看,一個(gè) XML文檔由文檔頭和文檔實(shí)體兩部分組成.文檔頭包括 XML的必要聲明、Schema或DTD聲明、處理指令(Process Instrument,PI)等要素;文檔實(shí)體是存放數(shù)據(jù)的地方.
1.2 工作流和可視化建模工具
工作流是一系列能夠部分或全部自動(dòng)執(zhí)行的業(yè)務(wù)過(guò)程,包括相應(yīng)的過(guò)程規(guī)則、文檔、任務(wù)以及任務(wù)的執(zhí)行者等元素[2].工作流建模是工作流管理系統(tǒng)中一個(gè)重要的組成部分,也是實(shí)施工作流的起點(diǎn).本文所設(shè)計(jì)電子器件模塊化管理系統(tǒng)的工作流建模通過(guò)可視化工作流程設(shè)計(jì)器 Silverlight2.0來(lái)實(shí)現(xiàn).建模工具Silverlight2.0使用圖形化的描述工具定義流程實(shí)體的各個(gè)元素,過(guò)程定義的結(jié)果可作為模板(節(jié)點(diǎn)的處理規(guī)則)直接存到數(shù)據(jù)庫(kù)中,也可保存到本地 XML文件中,便于修改和重建;它遵循國(guó)際工作流管理聯(lián)盟制定的工作流標(biāo)準(zhǔn),能實(shí)現(xiàn)諸如順序流程、條件流程、分支流程、循環(huán)流程、子流程等多種流程方式;同時(shí),它采用拖拉的方式使得定制流程變得更為簡(jiǎn)便,用戶只需了解本單位的業(yè)務(wù)流程就可輕松定制復(fù)雜的工作流程.
1.3 XML與工作流建模
以往使用的建模語(yǔ)言在描述工作流元素的能力上存在許多不足.XML完全可以描述組成工作流的各種數(shù)據(jù)元素,基于 XML構(gòu)建工作流模型是一種可行的技術(shù)解決方案[2].隨著XML的正式頒布,XML自身強(qiáng)大的描述能力,為工作流建模開(kāi)辟了新的實(shí)現(xiàn)途徑.XML能滿足描述一個(gè)工作流模型所需要的基本要求,這主要體現(xiàn)在:(1)能自定義標(biāo)識(shí)元素,具有可擴(kuò)展性和自我解釋能力,能夠描述組成工作流模型中的任意元素、屬性及其關(guān)系,而且它定義的標(biāo)識(shí)元素在概念上不會(huì)重疊,能實(shí)現(xiàn)多層嵌套.(2)文檔可重復(fù)使用且容易理解.(3)具有很好的跨平臺(tái)性.XML正在成為Internet上數(shù)據(jù)傳輸和交換的標(biāo)準(zhǔn),基于XML的工作流模型可直接在各種平臺(tái)之間傳輸和交換,為開(kāi)發(fā)基于 Web的分布式工作流管理系統(tǒng)提供了方便.(4)無(wú)論是基于XML Schema還是基于DTD開(kāi)發(fā)的XML文檔,XML解析器都可以對(duì)數(shù)據(jù)進(jìn)行有效性驗(yàn)證.
本設(shè)計(jì)即基于 XML的電子器件模塊化管理系統(tǒng)主要包括3個(gè)部分,分別是功能電路管理模塊、元器件選型管理模塊和PCB制版工藝規(guī)范化管理模塊.限于篇幅,這里主要介紹功能電路管理模塊.
功能電路管理模塊的主要作用是為研發(fā)人員在新產(chǎn)品的開(kāi)發(fā)過(guò)程中,針對(duì)研發(fā)的具體參數(shù)要求,在系統(tǒng)中選擇已有的、經(jīng)過(guò)實(shí)踐檢驗(yàn)的、已成功應(yīng)用于公司其他產(chǎn)品的功能電路模塊,為產(chǎn)品開(kāi)發(fā)人員提供參考.一方面,該管理模塊可將公司長(zhǎng)期以來(lái)的技術(shù)積累進(jìn)行歸納總結(jié),以供公司研發(fā)人員學(xué)習(xí)交流,實(shí)現(xiàn)知識(shí)經(jīng)驗(yàn)共享,減少新產(chǎn)品研發(fā)過(guò)程中不必要的重復(fù)開(kāi)發(fā);另一方面,該管理模塊可減少研發(fā)過(guò)程中的風(fēng)險(xiǎn)和盲從,盡量避免因?yàn)檠邪l(fā)人員水平不足導(dǎo)致拖延產(chǎn)品研發(fā)進(jìn)度甚至產(chǎn)品研發(fā)失敗.功能電路管理模塊以公司現(xiàn)有產(chǎn)品分類為基本類,按照各功能模塊劃分基本組,再根據(jù)具體性能要求和應(yīng)用環(huán)境確定最終選用的功能電路模塊的具體參數(shù)配置.通過(guò)可視化流程設(shè)計(jì)器,可以對(duì)整個(gè)功能電路管理模塊的流程實(shí)現(xiàn)工作流建模,如圖1所示.
圖1 功能電路管理模塊可視化工作流建模
通過(guò)可視化流程設(shè)計(jì)器,可以清楚地看到功能電路管理模塊中的參與者和信息反饋路線,以及每一步在處理后的可能分支.
工作流引擎是工作流管理系統(tǒng)的核心,為工作流實(shí)例提供執(zhí)行環(huán)境.工作流引擎能夠解釋流程定義生成的結(jié)果并將其作為流轉(zhuǎn)的依據(jù),它關(guān)系到整個(gè)工作流系統(tǒng)的執(zhí)行效率與可擴(kuò)展性.工作流引擎數(shù)據(jù)模型中的信息模型部分具有很強(qiáng)的層次性、結(jié)構(gòu)性,使用單純的關(guān)系難以描述清楚,而且會(huì)存在很多冗余信息[3].基于XML的獨(dú)特優(yōu)勢(shì),工作流引擎的核心部分最適宜用 XML來(lái)描述,從而做到關(guān)系與層次的有機(jī)結(jié)合.因此,電子器件模塊化管理系統(tǒng)用 XML進(jìn)行流程信息描述,在需要擴(kuò)展到分布式工作流管理系統(tǒng)應(yīng)用時(shí),可以采用傳遞基于 XML的流程實(shí)例信息,來(lái)達(dá)到在工作流引擎各組件之間相互通信的目的.
本文系統(tǒng)工作流引擎設(shè)計(jì)的功能結(jié)構(gòu)如圖 2所示.引擎各部分的主要功能是:用戶在啟動(dòng)工作流運(yùn)行時(shí),系統(tǒng)先運(yùn)行 XML解釋器,根據(jù)工作流模型定義的ID號(hào),從工作流模型表中讀取流程定義的XML文件,將其解析為結(jié)點(diǎn)序列、存入轉(zhuǎn)移表,并為每個(gè)結(jié)點(diǎn)初始化其狀態(tài)信息;由分配器為每個(gè)結(jié)點(diǎn)分配結(jié)點(diǎn)處理、運(yùn)行執(zhí)行條件、到達(dá)時(shí)間、處理時(shí)間以及處理結(jié)果等;由流程路由器根據(jù)相應(yīng)的ID號(hào)選擇要轉(zhuǎn)移的下一結(jié)點(diǎn).在流程運(yùn)行的過(guò)程中,用戶可通過(guò)流程監(jiān)控器訪問(wèn)工作流的運(yùn)行狀態(tài).該系統(tǒng)的工作流引擎采用以數(shù)據(jù)庫(kù)為中心的設(shè)計(jì)思路,所有重要信息都存儲(chǔ)于數(shù)據(jù)庫(kù).
圖2 工作流引擎結(jié)構(gòu)圖
本文的系統(tǒng)體系結(jié)構(gòu)采用B/S框架,見(jiàn)圖3.應(yīng)用服務(wù)器屬于業(yè)務(wù)邏輯層,又稱為中間件,它起溝通客戶端(業(yè)務(wù)表示層)與數(shù)據(jù)庫(kù)服務(wù)器(存儲(chǔ)層)的作用.客戶端對(duì)數(shù)據(jù)庫(kù)的所有連接請(qǐng)求都需要通過(guò)應(yīng)用服務(wù)器,然后遞交給數(shù)據(jù)庫(kù)服務(wù)器.通過(guò)中間件技術(shù)屏蔽了并發(fā)查詢?cè)L問(wèn)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的沖擊,解決了直接訪問(wèn)數(shù)據(jù)庫(kù)所帶來(lái)的數(shù)據(jù)安全問(wèn)題[4].電子器件模塊化管理系統(tǒng)可以提供權(quán)限管理、遠(yuǎn)程登錄、并發(fā)查詢、排序篩選、系統(tǒng)維護(hù)等基本數(shù)據(jù)庫(kù)功能,并能夠批量導(dǎo)入導(dǎo)出數(shù)據(jù)列表,生成采購(gòu)信息單、生產(chǎn)物料單等.
圖3 電子器件產(chǎn)品模塊化管理系統(tǒng)體系結(jié)構(gòu)
在使用驗(yàn)證工具對(duì)工作流模型檢驗(yàn)通過(guò)之后,建模工具就會(huì)以*.xpdl格式存儲(chǔ)流程定義的轉(zhuǎn)換結(jié)果.當(dāng)用戶與工作流引擎系統(tǒng)建立“會(huì)話”后,就會(huì)把該文件轉(zhuǎn)換結(jié)果部署到基于XML的工作流引擎系統(tǒng)中.基于 XML的工作流引擎對(duì)用戶來(lái)說(shuō)是透明的,用戶對(duì)工作流引擎的操作通過(guò)其客戶端來(lái)實(shí)現(xiàn).當(dāng)用戶登陸系統(tǒng)后就可通過(guò)任務(wù)列表得知當(dāng)前需要處理的任務(wù)和已完成的任務(wù),同時(shí)也可啟動(dòng)一次新的流程.在進(jìn)行新的電子產(chǎn)品設(shè)計(jì)時(shí),可查找所需的器件,并對(duì)器件進(jìn)行統(tǒng)一管理.
點(diǎn)擊“器件庫(kù)”,并選中要訪問(wèn)的器件,就會(huì)進(jìn)入管理界面并顯示出相應(yīng)的基本信息,如圖4所示.
根據(jù)執(zhí)行的功能電路管理模塊工作流程,管理者可查看功能模塊管理中的表flow中的數(shù)據(jù),如圖5所示.表flow以NodeID為主鍵,描述整個(gè)功能模塊管理流程圖的每個(gè)節(jié)點(diǎn)的信息,包含每個(gè)流程節(jié)點(diǎn)審核未通過(guò)時(shí)應(yīng)該返回的上一級(jí)流程節(jié)點(diǎn)、下一個(gè)流程節(jié)點(diǎn)以及對(duì)應(yīng)的表單.通過(guò)這個(gè)表可以實(shí)現(xiàn)每個(gè)節(jié)點(diǎn)的自身描述以及表單與角色的對(duì)應(yīng)關(guān)系,見(jiàn)圖6.表task包含的信息為每個(gè)成員所參與的流程節(jié)點(diǎn)的角色信息.當(dāng)流程進(jìn)行到某一個(gè)節(jié)點(diǎn)時(shí),管理者通過(guò)這個(gè)表格就可以找到流程所需表單,查到所參與人員的信息及角色.通過(guò)系統(tǒng)運(yùn)行測(cè)試和查看執(zhí)行流程可知,系統(tǒng)能夠?qū)崿F(xiàn)所需的基本功能.
圖4 器件庫(kù)管理界面
圖5 表flow中的數(shù)據(jù)
圖6 表task中的數(shù)據(jù)
[1] 顧兵.XML實(shí)用技術(shù)教程[M].北京:清華大學(xué)出版社,2007:6―15.
[2] 羅海濱,范玉順,吳澄.工作流技術(shù)綜述[J].軟件學(xué)報(bào),2000,11(7):899―907.
[3] 趙政文.基于 XML數(shù)據(jù)庫(kù)的工作流系統(tǒng)的研究與設(shè)計(jì)[D].西安:西北工業(yè)大學(xué),2006.
[4] 黃祖敏.基于三層調(diào)度的工作流管理體系結(jié)構(gòu)[D].哈爾濱:哈爾濱工程大學(xué),2007.
〔責(zé)任編輯 牛建兵〕
TP315
A
1006-5261(2010)05-0032-03
2010-02-02
陳富軍(1982―),男,河南太康人,助教,華中科技大學(xué)碩士研究生.