999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于XML實現Java內容倉庫和關系型數據庫的雙向映射

2009-01-01 00:00:00賀朝霞王海偉
計算機應用研究 2009年1期

(西北工業大學 工程設計與仿真研究所, 西安 710072)

摘 要:提出了Java內容倉庫和關系型數據庫之間異構信息的雙向映射機制的概念,利用XML作為Java內容倉庫和關系型數據庫的中間橋梁,充分發揮了Java內容倉庫對大量文檔信息的操作和數據庫對關系數據信息操作之間的強大優勢,成功解決了在仿真分析工程中,既能快速、高效地實現海量仿真數據的存儲、添加、編輯、修改、刪除等功能操作,也能快速、高效地實現仿真文件的上傳、下載、刪除等功能操作。

關鍵詞:異構信息;雙向映射;可擴展標記語言;Java內容倉庫;關系型數據庫

中圖分類號:TP391 文獻標志碼:A

文章編號:10013695(2009)01021104

Technology of bidirectional mapping betweenJava content repository and relation database based on XML

ZHANG Jian,LIU Geng,HE Zhaoxia,WANG Haiwei

(Institute of Engineering Design Simulations, Northwestern Polytechnical University, Xi’an 710072, China) Abstract:This article proposed the concept of heterogeneous information’s bidirectional mapping between Java content repository and relations database, making use of XML, which was the loading of Java content reporsitory and relations database,achieved the formidable advantage between operatering massive documents information in Java content repository, and operatering massive data message in relation database.Successful solutions are between coming true about operations of the magnanimous simulated data’s memory about the storing, the edition, the revision, deletes and so on functions effectively, and coming true the operations of simulation document uploading, downloading, deletes and so on functions in simulation analysis project fast and effectively.

Key words:heterogeneous information; bidiretional mapping; XML; Java content repository; relation database

0 引言

隨著制造業信息化過程的不斷深入,數字化與網絡化成為制造業的重要發展趨勢。在計算機輔助工程分析(computer aided engineering,CAE)領域,由于各類應用軟件的學科方向不同,開發系統各異,使得許多仿真分析數據無法與其他系統集成與重用[1]。現有成熟的PDM系統擴展后,能夠集成CAM和CAPP等系統[2],但對仿真分析元數據與大量的數據文件尚未實現成功的管理。如何解決信息孤島問題,實現企業內信息數據的共享與交互,支持協同工作,已經成為企業信息化進程中的重要研究內容。

仿真人員在仿真分析過程中,產生的數據不僅包括單獨的數據信息,還包括幾何模型、網格模型、邊界條件、計算結果以及仿真報告等,類型涉及到圖形圖像、音/視頻、文本、網頁以及各種仿真模型和結果文件等文件信息。這些海量的數據文件如果與數據信息一樣用傳統的關系型數據庫來進行管理,不利于數據庫的維護,同時數據庫也不利于對文件的操作、管理。如果用數據庫存儲文件的路徑,將海量數據文件存儲在本地磁盤,數據庫維護就會很麻煩。

為能成功有效地對仿真數據和文件信息進行有效管理,本文基于XML特點,結合關系型數據庫和Java內容倉庫兩個系統實現對仿真數據信息的有效管理。 

1 XML與關系數據庫和Java內容倉庫

11 XML概述

XML是近幾年發展起來的基于Internet的元數據標記語言,它由SGML發展而來,由W3C負責制定。1998年2月XML語言1.0標準正式推出,從發布之日起,XML就以其良好的可擴展性受到業界的普遍歡迎和支持,確立了其Web應用領域數據標準的主流地位。研究、推廣、開發、應用XML技術也成為業界發展的主流趨勢 。

XML是一種用于描述數據的與平臺無關的語言。XML 及其相關規范以及文檔對象模型(document object model,DOM)都是基于語言無關性的想法開發出來的,也就是說,允許任何程序員在自己選擇的語言中使用這些協議和對象模型,從而為 XML 的使用者提供了巨大的開發潛力。

基于 XML的仿真信息集成,即用 XML表達真實的信息,描述仿真應用系統間需要交換和共享的信息。XML文檔的元素、子元素、屬性結構,用樹型數據結構可以表達豐富的語義信息,這種具有彈性又不失統一標準的數據格式,非常適合描述協同仿真中結構化和非結構化數據的語義信息以及適用于不同應用間的數據交換和異構信息的集成[3]。因此采用 XML描述分布異構、動態變化的仿真相關信息,其最大優點就是模式和數據采用同一種數據模型,便于對數據處理、應用和瀏覽。

12 Java內容倉庫

JCR(Java content repository,API)規范由Java community process 開發為 JSR170,目的就是滿足Weblogs和電子等公司對數據文件管理的日益普及需求。該規范在 javax.jcr 名稱空間下提供一個統一的 API。

Java內容倉庫是一個分級存儲的關系型內容倉庫[4],遵循JCR規范[4,5]。采用JCR規范和WebDAV 協議來設計Java內容倉庫,能夠實現結構與非結構數據的讀寫操作、版本控制、訪問控制權限、全文檢索和事件監控等。

13 Java內容倉庫與關系型數據庫的比較

Java內容倉庫不僅能夠存儲海量的數據文件,同時也能夠對相對應的數據信息以節點屬性的方式進行存儲,但對關系型數據的持久化操作麻煩且不方便;而關系型數據庫的優勢在于存儲數據信息,能夠利用諸如Hibernate等實現對關系型數據庫的輕量級封裝,快速方便地實現對數據的操作。

2 XML關系型數據庫和Java內容倉庫的設計模式

21 XML的描述機制[6]

為了實現 XML數據定義和數據存儲的相互分離以及為所有信息共享者提供一個統一的文檔結構模式,XML 信息描述包括兩類文檔,即XML Schema或DTD文檔和XML描述文檔。XML Schema文檔用于描述信息的 XML數據語義與模式,實現元數據描述數據語義和文檔結構的定義,以便有效地進行 XML數據處理。XML Schema通過定義元素、屬性、類型及元素之間的層次和嵌套關系來描述整個文檔的結構,在集成雙方建立了基于XML的統一數據交換格式交互模型,是有共享信息需求的各仿真應用系統所必須遵循的標準集成規范。另外,作為定義XML文檔的參照規則與模型,Schema文檔可有效地檢驗XML文檔數據的有效性,即語義的正確性與合法性。XML描述文檔則用于生成對應于XML Schema文檔模式的數據信息,存儲具體的數據。相對來說,Schema文檔比較固定,而XML描述文件是不斷增加的,兩者之間是一對多的關系。仿真分析的輸入參數 /輸出結果、模型參數以及模型和文檔的屬性信息都是結構化的數據,這一點正好與 XML描述結構數據的特點相符,比較容易描述成XML文檔。考慮 XML的特點,以元素的形式可以完整地將這些信息表達出來,對各種需要描述的數據信息進行元素定義,并為每個數據信息定義元素名稱和類型。在XML Schema定義的模式元素中,用于約束與該XML Schema定義模式相關的XML文檔中的元素類型包括復雜元素類型和簡單元素類型兩種。復雜元素類型由若干簡單元素類型構成。對于用 XML描述的協同仿真信息的文檔結構,采用樹型結構模型便于信息資源的管理、操作與處理;利用 XML元素之間的層次關系,可形成XML文檔的樹型結構。

下面所示為某仿真模型屬性信息的 XML Schema文檔,在該文檔中定義了模型信息的元素和具體類型等,并通過元素之間的嵌套關系描述了整個模型信息的邏輯結構關系。

〈?xml version=\"1.0\" encoding=\"UTF8\" ?〉

〈sv:node xmlns:sv=\"http://www.jcp.org/jcr/sv/1.0\" xmlns:jcr=\"http://xmlns:cse=\"http://www.jcp.org/jcr/sv/1.0\" xmlns:nt=\"http://www.xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:fn=\"http://xmlns:fn_old=\"http://www.w3.org/2004/10/xpathfunctions\" xmlns:n

sv:name=\"Projects\"〉

〈sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"〉

〈sv:value〉cse:projects〈/sv:value〉

〈/sv:property〉

〈sv:property sv:name=\"name\" sv:type=\"String\"〉

〈sv:value〉項目〈/sv:value〉

〈/sv:property〉

〈sv:node sv:name=\"P20080316160148\"〉

〈sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"〉

〈sv:value〉cse:project〈/sv:value〉

〈/sv:property〉

〈sv:property sv:name=\"name\" sv:type=\"String\"〉

〈sv:value〉測試項目〈/sv:value〉

〈/sv:property〉

〈sv:node sv:name=\"CADModel\"〉

〈sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"〉

〈sv:value〉cse:CADmodel〈/sv:value〉

〈sv:property〉

〈sv:property sv:name=\"name\" sv:type=\"String\"〉

〈sv:value〉CADModel〈sv:value〉

〈/sv:property〉

〈sv:node sv:name=\"S20080316160157\"〉

〈sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"〉

〈sv:value〉cse:projectModel〈/sv:value〉

〈/sv:property〉

〈sv:property sv:name=\"name\" sv:type=\"String\"〉

〈sv:value〉懸臂梁〈/sv:value〉

〈/sv:property〉

22 Java內容倉庫與XML之間的映射機制

Java內容倉庫遵循JSR170規范。JSR170為了確保跨 JCR實現的移植性已經做了許多工作。它促進移植性的方式之一就是使用標準的 XML 導入和導出特性。通過使用這些工具,符合規范的倉庫內容可以很容易地轉移到另一個符合規范的倉庫中。使用 XML進行序列化的另一個優勢是:可以用傳統的 XML解析工具實現對由內容倉庫導出的XML文件進行數據添加、刪除數據信息等持久化操作,并將修改后的XML文件導入到倉庫中,實現對內容倉庫的操作。

23 XML與關系型數據庫之間的映射機制

實現關系數據庫存儲 XML Schemas文檔的關鍵是建立兩者之間正確的映射機制[7]。目前,建立XML Schemas文檔與關系數據庫之間的映射機制主要有兩種方法,即模板驅動映射方式和模型驅動映射方式。模板驅動映射方式將命令語句嵌入到 XML模板中,讓數據傳輸的中間件執行該模板,獲得執行結果并替換模板中對應的命令語句部分,從而得到所需要的XML文檔。該映射方式簡單靈活,但由于不存在預先定義的XML文檔結構和數據庫結構的轉換模式,需要針對每一個前端應用定制模板,編程工作量大,且僅支持從關系數據庫到XML文檔的單向映射。模型驅動映射方式通過在XML文檔結構和數據庫結構之間建立預定義的映射關系模型,形成一個相對穩定的轉換機制,在XML層次形成可共享的數據結構,能夠更方便地實現數據的雙向轉換,而且系統擴展也比較容易。該方式應用較廣。

基于模型驅動的映射[8],當把數據從數據庫傳送到XML文檔或把數據從 XML文檔傳送到數據庫時,是用一個具體的模型實現的,而不是僅僅依賴內嵌SQL命令。關系數據庫的理論依據是關系模型,面向對象數據庫的依據是對象模型,關系數據庫的理論依據是關系模型,面向對象數據庫的依據是對象模型,而XML文檔的依據是XML Schemas或DTD。

基于模型驅動實現數據在數據庫和XML文檔間的雙向傳輸關鍵是在數據庫模式和XML Schemas或DTD之間建立雙向映射。具體思路是把一個XML文檔表示為由數據對象構成的樹,每一個元素類型和對象模式中的對象相對應,主要在面向對象數據庫中使用。通過傳統的關系,對象模型也可以映射到關系模式中。 

基于模型驅動的映射是模式之間的雙向映射。實際上在XML和關系型數據庫之間轉換時,需要考慮兩個方面,即關系型數據庫模式產生XML模式和根據XML生成關系型數據庫模式。

3 XML、關系型數據庫和Java內容倉庫映射關系在機械系統仿真分析中的實現

31 Java內容倉庫實現對某仿真分析數據的存儲[9] (圖1)

32 Java內容倉庫→XML Schemas文檔→關系型數據庫映射的實現

321 內容倉庫導出到XML Schemas

將內容倉庫內容導出為XML Schemas文檔[9],以下為對應實現方式和部分XML Schemas文檔數據內容。

將內容倉庫內容導出為XML Schemas文檔部分程序:

File inputFile = new File(\"E:/systemview.xml\");

FileInputStream in = new FileInputStream(inputFile);

session.importXML(\"/\",in, ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);

+〈sv:node sv:name=\"SF20080316171318\"〉

-〈sv:node sv:name=\"SF20080316173118\"〉

+〈sv:property sv:name=\"jcr:primaryType\"sv:type=\"Name\"〉

+〈sv:property sv:name=\"name\" sv:type=\"String\"〉

+〈sv:node sv:name=\"OriginalModel\"〉

+〈sv:node sv:name=\"SimulationModel\"〉

-〈sv:node sv:name=\"MaterialDefine\"〉

+〈sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"〉

+〈sv:property sv:name=\"name\" sv:type=\"Strine\"〉

+〈sv:node sv:name=\"Picture\"〉

+〈sv:node sv:name=\"Animation\"〉

+〈sv:node sv:name=\"File\"〉

-〈sv:node sv:name=\"Material1\"〉

+〈sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"〉

-〈sv:property sv:name=\"E材料彈性模量\" sv:type=\"String\"〉

〈sv:value〉210000000000〈/sv:value〉

〈/sv:property〉

-〈sv:property sv:name=\"C執行人\" sv:type=\"String\"〉

〈sv:value〉楊磊〈/sv:value〉

〈/sv:property〉

-〈sv:property sv:name=\"name\" sv:type=\"String\"〉

〈sv:value〉Material1〈/sv:value〉

〈/sv:property〉

-〈sv:property sv:name=\"I材料密度\" sv:type=\"String\"〉

〈sv:value〉7800〈/sv:value〉

〈/sv:property〉

-〈sv:property sv:name=\"A操作日期\" sv:type=\"String\"〉

〈sv:value〉20080316 17:37:22〈/sv:value〉

〈/sv:property〉

-〈sv:proprety sv:name=\"D材料編號\" sv:type=\"String\"〉

〈sv:value〉1〈/sv:value〉

〈/sv:property〉

-〈sv:property sv:name=\"B軟件名及版本\" sv:type=\"String\"〉

〈sv:value〉ansys10〈/sv:value〉

〈/sv:property〉

322 XML Schemas文檔映射為XML關系型數據庫

a)建立關系型數據庫,一個XML Schemas生成一個關系模式。

b)對XML Schemas文檔中的每一個元素,產生關系型數據庫的一個表和一個主鍵列。

c)對每一個有混合內容的元素,創建一個單獨表單,用來存儲Meta信息(最小的數據單元),并通過父表的主鍵和父表相關聯起來。

d)對每一個擁有子元素或者混合內容的子元素,通過其主鍵與其子元素關聯起來。

33 關系型數據庫→XML Schemas文檔→Java內容倉庫映射的實現

331 關系型數據庫映射為XML Schemas文檔

a)對數據庫中的每一個表單創建一個元素。

b)對表單中的每一列,創建與其元素對應的一個屬性或只有Meta信息的子元素。

c)根據表單中的每個主鍵/外鍵的對應關系,創建該表單元素的子元素。

332 XML Schemas導出為新的Java內容倉庫[9]

XML Schemas文檔生成新的Java內容倉庫的程序為:

File outputFile = new File(\"E:/systemview.xml\");

FileOutputStream out=new FileOutputStream(outputFile);

session.exportSystemView(\"/Projects\", out, 1, 1);

其中:\"/Projects\" 為內容倉庫的根路徑。

34 Java內容倉庫和數據庫操作的思路與方法

a)Java內容倉庫的節點類型和數據庫中的表單相對應,節點類型就是由相同性質的節點組成。例如內容倉庫節點名為Project1、Project2的兩個節點,節點類型都為[cse:project],含有屬性和子節點類型;對應數據庫表單Project,表單中存有Project1和Project2,將它們的屬性信息通過外鍵與Meta表單中相關Meta信息相關聯(專門存放仿真分析的所有Meta信息)。

b)通過對關系型數據庫數據的操作,如增加仿真數據信息,通過雙向映射自動地在內容倉庫對應節點上添加相應的屬性信息。

c)對內容倉庫文件的操作,由關系型數據庫獲取文件的操作路徑, 實現對內容倉庫的操作。例如給Project1/System1/Picture下上傳文件,則對應在內容倉庫Project1子節點名為System1的子節點名為Picture下WEBDAV方式上傳文件)。

4 數據庫和Java內容倉庫雙向映射在Web和Report的應用

通過采用REST(representational state transfer)service架構的J2EE服務層,利用關系型數據庫(MySQL)由JDBC協議操作數據和Java內容倉庫(JackRabbit)WEBDAV協議操作文件。本文通過對懸掛投射裝置進行仿真分析,得到的仿真數據和文件在Web和Report上的動態顯示如圖2、3所示。

5 結束語

以XML工具作為Java內容倉庫和關系型數據庫雙向映射的橋梁,既能夠體現關系型數據庫對數據操作的優勢,也能夠體現Java內容倉庫對文件存儲,操作的方便,利用它們之間的雙向映射,將數據與文件關聯起來,形成一個整體。因此,利用XML Schemas文檔作為中性載體,可以作為解決Java內容倉庫和關系型數據庫異構應用間信息共享、關聯的一條有效途徑。

參考文獻:

[1]謝金崇.虛擬企業產品信息共享技術[D].北京:北京航空航天大學, 1999.

[2]胡亞輝,徐燕申,謝艷,等.PDM集成框架下CAPP工具系統構建方案研究[J].航空制造技術,2005(4):7881.

[3]林建宇,張國俊.一種異構數據庫集成的方法[J].南京理工大學學報,2002,26(5):522525.

[4]MORRISON M.XML揭秘—入門—應用—精通[M].北京:清華大學出版社,2001:228289.

[5]PATIL S.What is Java content repository[EB/OL].(20061108)[20071018].http://www.onjava.com/pub/a/onjava/2006/11/08/advancedjavacontentrepository.html.

[6]NUESCHELER D.JSR170 specification[EB/OL].(20050607)[20071025].http://www.jcp.org/en/jsr/detail?id=170.

[7]孫鵬文,張敏,葉奇.基于XML的協同仿真信息集成與共享技術研究[J].組合機床與自動化加工技術,2007(3):109112.

[8]孫宏偉,張樹生,周競濤,等.基于模型驅動的XML與數據庫的雙向映射技術[J].計算機工程與應用,2002,38(4):2527.

[9]PATIL S.What is Java content repository[EB/OL].( 20061004 )[20071004].http://www.onjava.com/pub/a/onjava/2006/10/04/whatisjavacontentrepository.html?page=1.

主站蜘蛛池模板: 欧美成人a∨视频免费观看| 一级福利视频| 亚洲香蕉在线| 欧美性猛交xxxx乱大交极品| 日韩小视频在线观看| 日韩成人免费网站| 亚洲丝袜第一页| 成人国产小视频| 精品视频一区在线观看| 国产性爱网站| 毛片免费视频| 精品三级在线| 一边摸一边做爽的视频17国产| 国产毛片不卡| 最近最新中文字幕免费的一页| 国产办公室秘书无码精品| 国产在线拍偷自揄拍精品| 91偷拍一区| 亚洲欧美国产五月天综合| 久久久亚洲色| 91精品啪在线观看国产60岁| 蝴蝶伊人久久中文娱乐网| 免费无码又爽又黄又刺激网站| 亚洲色大成网站www国产| 欧美成人综合视频| 就去吻亚洲精品国产欧美| 99久久国产综合精品2020| 五月激情婷婷综合| 欧美一级特黄aaaaaa在线看片| 四虎AV麻豆| 97成人在线视频| 亚洲精品片911| 久久亚洲精少妇毛片午夜无码| 欧美另类第一页| 91精品久久久无码中文字幕vr| 五月婷婷亚洲综合| 特级欧美视频aaaaaa| 国产成人综合在线视频| 一本大道香蕉久中文在线播放| 亚洲手机在线| 国产精品刺激对白在线| 99一级毛片| 伊人久久青草青青综合| 一级毛片基地| 六月婷婷激情综合| 在线观看免费人成视频色快速| 国产精品自在自线免费观看| 伊人国产无码高清视频| 999在线免费视频| 亚洲男人的天堂久久香蕉| 日韩国产欧美精品在线| 日韩 欧美 小说 综合网 另类| 萌白酱国产一区二区| 国产成人精品一区二区| 伊人久久久久久久| 三上悠亚精品二区在线观看| 2020极品精品国产 | 欧美一区二区精品久久久| 无码福利日韩神码福利片| 波多野结衣的av一区二区三区| 免费久久一级欧美特大黄| 91九色最新地址| 91色爱欧美精品www| 欧美激情视频一区二区三区免费| 伊人久综合| 国产成人无码综合亚洲日韩不卡| 午夜性爽视频男人的天堂| 毛片基地视频| 国产成人综合在线视频| 亚洲动漫h| 一区二区影院| 超碰aⅴ人人做人人爽欧美| 一级黄色片网| 亚洲综合日韩精品| 国产精品熟女亚洲AV麻豆| 毛片久久网站小视频| 亚洲男人的天堂视频| 精品成人免费自拍视频| 亚洲人成网18禁| 在线精品亚洲一区二区古装| 国产青榴视频| 青青青伊人色综合久久|