• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      AVIDM產(chǎn)品XML配置文件讀取研究及應(yīng)用

      2016-07-22 20:03:31李天立
      電腦知識與技術(shù) 2016年16期
      關(guān)鍵詞:配置文件

      李天立

      摘要:AVIDM 5.0系統(tǒng)在開發(fā)過程中,采用了模塊化的開發(fā)方法,每個模塊都使用了大量的配置文件,用于支撐屬性格式化、模型樹配置、功能權(quán)限、默認(rèn)出廠配置等方面的應(yīng)用。使用的配置文件類型主要包括Properties格式和xml格式。Properties格式的屬性文件結(jié)構(gòu)簡單,包括key和Value,加載過程中可以自動覆蓋和合并,由于其配置、合并和使用簡單,在屬性定義方面有很好的應(yīng)用。AVIDM 5.0系統(tǒng)中有大量結(jié)構(gòu)化的配置信息需要使用xml格式的配置文件[1]。Xml格式的優(yōu)點是具有層級結(jié)構(gòu),但是XML文件的合并確有一定的難度。AVIDM 5.0系統(tǒng)支持模塊化開發(fā),模塊之間需要對某一個主要的結(jié)構(gòu)化配置文件進行擴展和補充,因此多模塊環(huán)境下xml配置文件的查找、合并和解析便成了亟需解決的技術(shù)難題。該文針對以上需求提出了一種解決方案,并在給出了具體的實踐案例,該方案不僅適合AVIDM系統(tǒng),也適合所有基于模塊開發(fā)的軟件應(yīng)用系統(tǒng)。

      關(guān)鍵詞:xml;模塊開發(fā);配置文件;開發(fā)規(guī)范

      中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2016)16-0113-03

      1 問題空間界定

      神舟AVIDM(企業(yè)級協(xié)同產(chǎn)品研制管理平臺),是神舟軟件公司在制造業(yè)信息化領(lǐng)域歷經(jīng)十余年打造出的擁有自主知識產(chǎn)權(quán)的、基于Web的企業(yè)級PDM/PLM產(chǎn)品。產(chǎn)品基于JavaEE和面向服務(wù)體系結(jié)構(gòu),全面采用Java、JSP、Applet等技術(shù),實現(xiàn)產(chǎn)品研制所需數(shù)據(jù)、應(yīng)用資源、軟件工具與計算設(shè)備的有機集成。 AVIDM產(chǎn)品的宗旨為以信息技術(shù)為基礎(chǔ),以項目管理為主線、以技術(shù)流程和計劃流程為依據(jù)、以滿足國防和軍工復(fù)雜產(chǎn)品技術(shù)狀態(tài)管理為目標(biāo),為企業(yè)構(gòu)建起一個基于Web的、從設(shè)計、生產(chǎn)到管理綜合集成的分布式集成系統(tǒng)平臺和協(xié)同工作環(huán)境[2]。在AVIDM系統(tǒng)的開發(fā)過程中,采用了大量的配置文件。為了方便研究多模塊配置文件讀取的模型和普適性的實現(xiàn)方法,我們可以將問題空間的前提條件界定如下:

      1) 屬性文件單獨存儲。

      2) 應(yīng)用模塊的xml配置文件單獨存儲。

      3) 應(yīng)用模塊都具有功能類似的xml配置文件。

      4) 應(yīng)用模塊功能類似的xml格式配置文件存放目錄層級結(jié)構(gòu)及層級目錄名稱相同。

      5) 應(yīng)用模塊功能類似的xml配置文件的內(nèi)容節(jié)點層級結(jié)構(gòu)及必要節(jié)點id相同。

      6) 應(yīng)用模塊類似功能的xml配置文件支持根據(jù)類似功能合并其內(nèi)容,可以達到擴展功能的目的。

      7) 應(yīng)用模塊不同功能的xml配置文件需要統(tǒng)一配置和解析,以解決模塊對不同配置文件的需求。

      8) 解析后的配置文件轉(zhuǎn)換為對象可以供調(diào)用方直接使用。

      以上假定條件具有一般性意義,能夠覆蓋AVIDM產(chǎn)品開發(fā)過程中讀取xml配置文件的各種具體需求,讓各種具體需求成為他們的子集,并且通過特定的手段和方法處理后得到解決。

      2 xml配置文件讀取方案

      為了實現(xiàn)多模塊環(huán)境下結(jié)構(gòu)化信息配置文件的查找、合并和解析,在充分參考國內(nèi)外先進技術(shù)后,提出了解決問題的思路:

      1)配置文件按照約定的根目錄和目錄深度存放,以便于使用Spring提供的通過通配符查找文件的方法加載文件[3]。

      在AVIDM 5.0系統(tǒng)中,約定使用一個存放在固定位置的目錄AVIDM_HOME作為配置文件存放的根目錄,在根目錄下建立一個plm目錄作為多項目配置文件的父目錄,每個項目下需要擴展的配置文件按照約定的路徑存放在相應(yīng)的目錄下。比如:模塊adm需要擴展按鈕的定義,則其配置文件的存放路徑為%AVIDM_HOME%/plm/adm/actions,其中adm為模塊名字,actions為約定的目錄,使用Spring查找文件的路徑通配格式為%AVIDM_HOME%/plm/*/actions,以此可以獲取該目錄下所有的文件。

      2)Xml配置文件中所有待合并的結(jié)構(gòu)化元素根據(jù)結(jié)構(gòu)化的層級和id屬性值兩個標(biāo)準(zhǔn)進行元素合并。

      Apache組織的頂級項目Configuration默認(rèn)提供三種Xml配置文件合并模式:元素合并,即以后來的元素完全覆蓋該元素,屬性覆蓋,即把相同結(jié)構(gòu)層級相同元素的屬性以解析的先后順序覆蓋,屬性合并,即把相同結(jié)構(gòu)層級相同元素相同屬性的屬性值以逗號隔開合并起來。在AVIDM 5.0系統(tǒng)中,所有的xml元素都有id屬性,并且該id屬性在同層級結(jié)構(gòu)中不會重復(fù),相同的屬性id為相同的元素?;诖颂卣?,Configuration項目中提供的默認(rèn)配置都不能滿足合并要求。在該創(chuàng)新中通過擴展“屬性覆蓋“方法并添加id屬性相等的需求,實現(xiàn)可擴展的xml配置文件合并。

      3 xml配置文件讀取支撐技術(shù)

      在多模塊xml配置文件模型的支撐下,為了保證多模塊環(huán)境下xml配置文件讀取服務(wù)能夠達到預(yù)期目標(biāo),我們在遵循軟件工程規(guī)范[4]和AVIDM開發(fā)規(guī)范的基礎(chǔ)上,設(shè)計了基于公共服務(wù)組件的xml配置文件讀取組件。整個組件由用戶調(diào)用接口、xml文件配置規(guī)范、xml文件重新加載機制,xml配置文件讀取支撐技術(shù)等部分組成。具體內(nèi)容如下:

      1) 用戶調(diào)用接口:旨在為使用方提供統(tǒng)一、方便的調(diào)用服務(wù)。該服務(wù)方法符合AVIDM系統(tǒng)服務(wù)的開發(fā)調(diào)用規(guī)范。在AVIDM系統(tǒng)中,所有的服務(wù)都要提供相應(yīng)的助手類,由助手類獲取到相應(yīng)的服務(wù),供調(diào)用方使用。接口的實現(xiàn)類由spring管理,通過助手類使用靜態(tài)的方法從Spring的管理的對象池中獲取接口實現(xiàn)類的單例,并提供給調(diào)用方使用。

      2) xml配置文件規(guī)范:AVIDM產(chǎn)品中xml配置文件需要滿足相應(yīng)的規(guī)范,以便于實現(xiàn)xml配置文件的合并解析。配置文件規(guī)范分為合并規(guī)范、解析規(guī)范、配置文件存放路徑規(guī)范。

      ① xml配置文件合并規(guī)范:在AVIDM產(chǎn)品中,需要合并的xml配置文件的根元素必須相同,在根元素上不添加屬性。根元素以下的元素需要合并時,需要提供元素的id標(biāo)識,合并的內(nèi)容包括元素的屬性和元素的子元素。不需要合并的元素,則以新元素的規(guī)則增加到合并后的內(nèi)容中。

      ② xml配置文件解析規(guī)范:解析每一個元素對應(yīng)一個類,多個相同元素對應(yīng)列表類,元素的屬性對應(yīng)類的屬性,屬性的名稱與類中屬性的名稱相同,使用該規(guī)范可以保證xml文件的配置、糾錯簡單可行。

      ③ 配置文件存放路徑規(guī)范:需要合并的配置文件存放路徑相對于模塊的根目錄必須一致,以便于使用路徑模糊匹配規(guī)則查找文件。

      3) xml配置文件重新加載:修改修改配置文件后,在不影響生產(chǎn)環(huán)境正常運行的情況下需要支持配置文件的重新加載,即時生效。產(chǎn)品在生產(chǎn)環(huán)境中,經(jīng)常會根據(jù)實際環(huán)境的運行情況做一些調(diào)整,調(diào)整后需要即時生效,為了不影響系統(tǒng)的正常使用,提供了重新加載配置文件的服務(wù),供生產(chǎn)環(huán)境實時調(diào)用。

      4) xml配置文件讀取支撐技術(shù):xml相關(guān)的讀取解析技術(shù)目前已經(jīng)成熟,一些開源組織的公共組件提供了基本的讀取解析功能,在該方案中可以直接調(diào)用。

      4 應(yīng)用實例

      AVIDM系統(tǒng)是可擴展、可組裝的系統(tǒng),新模塊按照一定的規(guī)則組裝到系統(tǒng)中,新模塊的功能可以擴展已有系統(tǒng)的功能,也可以自定義新的功能,組裝到系統(tǒng)中。在系統(tǒng)中主要體現(xiàn)在按鈕的增加上,擴展原有系統(tǒng)的功能,或者增加新的功能。

      在AVIDM系統(tǒng)中,存在數(shù)以千計的按鈕,這些按鈕按照如下的原則組織:

      1)按鈕定義:每個按鈕自身有若干屬性定義,比如標(biāo)題、圖標(biāo)、顯示文字、點擊后觸發(fā)的動作、點擊后打開的頁面等屬性。

      2)按鈕組:多個按鈕排列組合成按鈕組。每個按鈕的定義或者組裝都有唯一標(biāo)識,系統(tǒng)根據(jù)該唯一標(biāo)識使用按鈕或者按鈕組。不同的模塊可以擴展按鈕組中的按鈕,以增加新的功能。在系統(tǒng)運行過程中,需要合并所有的按鈕組定義文件,并把合并后的結(jié)果轉(zhuǎn)換成按鈕對象供系統(tǒng)調(diào)用和展示。

      假設(shè)系統(tǒng)中存模塊foundation和pdm兩個模塊,每個模塊中都有action定義的屬性配置文件,則文件之間的關(guān)系可以表述如圖1:

      系統(tǒng)在運行過程中需要根據(jù)模塊來合并相同功能的屬性配置文件,根據(jù)模塊下的路徑區(qū)分不同功能的屬性文件。

      系統(tǒng)中也存在不同功能的配置文件,比如按鈕組的定義文件,foundation模塊和pdm模塊之中的按鈕定義配置文件間的關(guān)系如圖2所示:

      在遵循開發(fā)規(guī)范的前提下,設(shè)計出了讀取配置文件的java類圖,如圖3所示。

      在ConfigServiceImpl中實現(xiàn)對文件的讀取、合并、解析。

      1)讀?。赫{(diào)用Spring框架中已有的方法按照路徑通配符的方式讀取文件,具體做法是使用Spring的路徑匹配的資源解析器獲取到文件資源。

      2)合并:根據(jù)Apache通用項目Configuration中的工具類CombinedConfiguration調(diào)用自定義的合并器實現(xiàn)按照ID合并xml文件。

      3)解析:使用Apache通用項目Digester工具類解析合并后的xml文件,轉(zhuǎn)換成相應(yīng)的對象。

      4)把所有屬性文件的路徑等配置到固定的元數(shù)據(jù)配置xml中,把所有xml讀取、合并、解析所需要的信息配置到固定的元數(shù)據(jù)配置文件中,根據(jù)該元數(shù)據(jù)配置文件讀取、合并、解析相關(guān)的類,并實現(xiàn)重新加載。

      5 結(jié)束語

      使用該方案成功地實現(xiàn)了多模塊下屬性文件和xml配置文件的查找與合并,由于其易于理解和學(xué)習(xí)、使用方便、穩(wěn)定性高等優(yōu)點,在AVIDM 5.0系統(tǒng)中得到了充分的應(yīng)用。

      1) 應(yīng)用在按鈕配置模塊,實現(xiàn)了多模塊下按鈕的無縫擴展。在AVIDM 5.0系統(tǒng)中,界面上的操作按鈕統(tǒng)一使用配置文件定義和管理,首先使用Properties配置文件實現(xiàn)單個按鈕各個屬性的定義,使用xml文件把單個按鈕組織成按鈕組合,系統(tǒng)根據(jù)按鈕組合的標(biāo)識讀取該按鈕并展示到系統(tǒng)中。使用該方案可以擴展按鈕組合的配置文件從而實現(xiàn)多模塊下按鈕配置的擴展。

      2) 應(yīng)用在功能權(quán)限模塊,實現(xiàn)了功能權(quán)限定義、列表展示、出廠默認(rèn)配置等的擴展。功能權(quán)限定義、功能權(quán)限列表展示、功能權(quán)限出廠默認(rèn)配置功能所需要的信息都以結(jié)構(gòu)化的形式存儲在xml配置文件中,以id屬性標(biāo)示其唯一性,其他屬性存儲在該元素中,從而使用該方案可以完美解決功能權(quán)限模塊的擴展。

      該方案支持按照目錄結(jié)構(gòu)的xml文件的查找,其本身具備的按目錄查找能力不僅適用于properties文件、xml文件等普通文件的查找,也適應(yīng)與其他格式的普通文件查找。其結(jié)構(gòu)化的xml配置文件合并能力也可適用于不具有id屬性的xml元素的合并。因此在AVIDM 5.0系統(tǒng)中其他有xml合并和按目錄查找文件需求的模塊也從可以從中受益。

      參考文獻:

      [1] 王海波,耿暉,姜吉發(fā),等. 基于XML的數(shù)據(jù)交換的實現(xiàn)[J]. 計算機應(yīng)用,2010(4).

      [2] 北京神舟航天軟件技術(shù)有限公司[EB/OL].http://www.bjsasc.com/AVIDMintro.html.

      [3] 尹建璋.基于XML的應(yīng)用層數(shù)據(jù)交換技術(shù)的研究[J].計算機與現(xiàn)代化,2009,9(8).

      [4] 張海藩. 軟件工程導(dǎo)論[M].3版.北京:清華大學(xué)出版社,1998.

      猜你喜歡
      配置文件
      提示用戶配置文件錯誤 這樣解決
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      忘記ESXi主機root密碼怎么辦
      為View桌面準(zhǔn)備父虛擬機
      打印機設(shè)置
      三都| 霍邱县| 舒兰市| 阿尔山市| 太康县| 托克逊县| 多伦县| 长兴县| 二连浩特市| 平阴县| 堆龙德庆县| 寿宁县| 闻喜县| 静宁县| 武穴市| 区。| 鄂托克前旗| 贵阳市| 利辛县| 永川市| 定西市| 无极县| 剑河县| 海兴县| 甘德县| 双峰县| 公主岭市| 天台县| 古田县| 屏南县| 延川县| 鹤山市| 方山县| 阜平县| 调兵山市| 宁明县| 汽车| 陈巴尔虎旗| 兴城市| 合山市| 巴青县|