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

一種基于DOM4J的Web應用增量式建模方法

2010-06-22 03:41:08尹金玉李亞芬
現代電子技術 2009年22期

譚 凱 尹金玉 李亞芬

摘 要:通過對復雜的Web應用需建立恰當的模型可以對系統進行抽象和簡化,幫助開發者更好地理解及設計該系統。采用XML格式建立的平臺無關模型具有良好的適應性及擴展性,這里通過設計一個建模平臺,以JSP頁面為交互界面獲取復雜Web應用的功能需求;采用面向Java的XML解析技術輸出該Web應用的平臺無關模型信息;采用增量式開發方法能夠對不同開發階段的模型信息進行合理有效的管理,并最終引導代碼開發人員建立符合復雜Web應用功能需求的系統模型。實驗證明,采用這種建模方法能快速有效地建立Web應用的平臺無關模型。

關鍵詞:Web應用建模;PIM;XML解析;DOM4J;增量式開發

中圖分類號:TP311

隨著互聯網的發展,不受限于操作系統的跨平臺的Java語言在Web應用的開發及設計中發揮著越來越重要的作用。然而,客觀存在的交互性及功能性的要求,使得Web應用的規模和復雜度日益增加,這使得基于Java的Web應用難以開發、管理和維護。

任何較復雜的系統都需要經過設計和建模,建立恰當的模型可以對系統進行抽象和簡化,幫助開發者更好地理解系統。人們為了擺脫軟件開發時間長、成本高、生命周期短等弊病,一直以來也在不斷摸索更為完善的系統建模方法。從之前的瀑布式開發,原型式開發,到現在流行的面向對象建模技術,都是面對復雜應用系統建立模型的方法。基于模型的Web應用開發方法MDA是新一代的面向對象建模技術,在該框架下,模型在整個軟件開發過程中起核心作用,這里著重于采用DOM技術建立MDA的平臺無關模型(PIM)。

1 基于MDA的Web應用建模

1.1 Web應用的建模方法

目前,功能較復雜的基于Java的Web應用系統,其開發過程大都存在開發周期長,系統復雜易出錯等困難。MVC(模型[CD*2]視圖[CD*2]控制)模式解決了部分問題,但在這種傳統的面向對象建模方法中,由于涉及的系統模型及業務流程千變萬化,隨著系統復雜度的增加,代碼復用性及維護性受到了越來越嚴峻的挑戰。

MDA(模型驅動架構)是OMG(對象管理組織)提出的新的軟件開發方法學。和傳統的面向對象建模方法相比,MDA能夠創建出高度抽象的模型,這些模型能夠以獨立于實現的技術開發并且以標準化的方式存儲。從而,采用MDA方法建立的模型能夠從容地應對平臺和需求的變化,它提高了Web應用開發效率,增強了軟件系統的可移植性和可維護性。

1.2 基于MDA的平臺無關模型

模型在MDA開發過程中扮演著核心的角色,在整個軟件生命周期中得到復用[3]。平臺無關模型PIM(Platform Independent Model)是MDA中的概念,模型的平臺無關概念指的是,此模型僅包含結構信息及業務邏輯,不包含實現平臺的任何信息。PIM作為一個軟件模型或業務系統,它獨立于實現它的特定技術平臺(例如,明確的程序設計語言,操作系統或數據庫)。在Web應用的建模中使用PIM的優點是可以讓業務邏輯與實現方法完全分離,以便于模型的重用。在此就PIM的實現進行研究,也就是研究Web應用最原始的平臺無關模型,從而使建立的Web應用模型具備更強的伸縮性及可移植性。

在選擇建模語言時,必須考慮到Web應用的功能需求,建模語言必須能精確表達Web應用的功能。UML的可擴展性都是其作為PIM建模語言的優點。但UML和MOF的不協調等也限制了UML的使用[4],而XML建模方法的無限可擴展性使得PIM模型能夠充分描述復雜的Web應用的功能及結構特性。

2 利用DOM4J建立及管理PIM模型

2.1 Java與XML的結合

XML作為一種具有通用性、良好操作性的數據交換技術,實現了數據和表達形式的分離,它為Web應用帶來了一種完全可移植的數據格式。由于XML文檔的內容是一種樹狀結構,結構上數據庫較為相似,因此,它為在數據庫之間交換信息提供了一種公共格式。

可以看到,XML可實施獨立于平臺的數據,Java則可實施獨立于平合的解決方案。另一方面,XML通過移植的方式表現數據,因此就對Java技術的可移植性構成了補充。Java和XML的天生絕配使得“一次編寫,到處運行”變為現實。在對Web應用的平臺無關模型PIM建模上,XML和Java彼此相輔相成,采用這兩項技術構建的PIM模型也將具備極好的擴展性和可移植性。

2.2 利用DOM4J開發Web應用的PIM模型

從上文的分析可以看到,與平臺無關的語言Java加上與平臺無關的數據XML,能夠完成最為復雜且彈性很好的Web應用建模。在Java中開發XML常用到幾種模型, 這些模型可以是面向對象的, 如文檔對象模型DOM,JDOM和DOM4J,也可以是面向事件的,如SAX(Simple API for XML)。其中,較為流行的就是SAX和DOM。

面向對象的文檔對象模型DOM定義了文檔的邏輯結構以及存取和維護文檔的方法。DOM主要由兩部分組成:DOM核心(DOM Core)和DOM HTML,前者主要定義了處理XML文件所需的功能,后者定義了處理HTML文件所需功能。

DOM4J(DOM For Java) 具有性能優異、功能強大和極端易用使用的特點,它基于DOM標準,采用了㎎ava的集合框架并完全支持DOM ,SAX和JAXP,并最終成為優秀的基于Java平臺的XML API框架。DOM4J主要的接口都在org.DOM4J包中,其中讀取和解析XML文檔主要依賴于org.DOM4J.io包,這也是采用DOM4J建立PIM模型時主要使用的包。

同樣衍生于DOM的JDOM在國內比較流行的,是使用Java平臺的XML另一解析技術,與DOM4J相比,兩者各有特點,但JDOM但豐富及強大的API也是它比JDOM更為靈活的原因。

在采用各種XML解析工具建立PIM模型的實際操作中,面向對象、衍生于DOM的DOM4J 和JDOM 內存占用都比較少。對于大型的文件,面向事件SAX處理性能較差,而JDOM 和 DOM 在測試較大的XML文檔時內存溢出[7]。在各項官方及非官方的針對XML文件解析能力的綜合測試中,DOM4J也幾乎總是拔得頭籌,因此DOM4J得到越來越廣泛的使用。例如,著名的三大框架之一的Hibernate用DOM4J來讀取XML配置文件,Sun公司的JAXM都在┦褂錨狣OM4J。

3 采用增量式開發方法進行建模實驗

[BT3]3.1 增量式開發的概念

在進行軟件設計時,由于程序開發人員和用戶在專業知識上的差距,用戶很難一開始就清楚完整地提供系統的需求,開發人員也很難一下子完整無誤地理解和定義用戶所提出的需求,也就是說用戶和程序員之間存在一道語義鴻溝[13]。

而在增量式開發方法中,程序員在軟件開發的各個階段并不需要交付一個完整軟件版本,而是根據此階段的用戶需求來生產滿足客戶需求的一個子集的可運行模型。整個產品被劃分為成若干個組件后,開發人員便可以逐個組件地設計及交付階段性產品,這樣做的好處是軟件開發可以較好地適應變化,某種程度上也降低了軟件的開發風險。[HJ1][HJ]

[BT(3+1]3.2 [ZK(]在Web應用PIM模型結構上應用增量式開發的具體實現[ZK)][BT)]

[BT4+*4]3.2.1 采用面向組件方法劃分Web應用

在Web應用的開發中,傳統的MVC設計模式將應用程序被分成三個核心部件:模型、視圖、控制器,它們各自處理自己的任務。但是,在Web應用的PIM模型建立中,不可能單純按照MVC三層模型的框架來建立PIM模型。MVC的分層方式過于抽象,還不能夠完善表述Web應用的功能需求。這樣,就需要在MVC的基礎上進一步對Web應用進行細化。

[JP2]這樣,視圖層、模型層的靜態結構與控制層的靜態結構相映射,從而根據用戶需求產生對應的響應。這種映射的結構及視圖層、模型層、控制層自身的靜態與動態結構即構成Web應用PIM模型的基礎組件,如圖1所示。[BT4]3.2.2 采用DOM4J建立PIM模型的基本框架

DOM4J針對Java提供了方便API接口,為了測試DOM4J與Java結合的性能,接下來采用的PIM模型生成平臺采用JSP頁面編寫,利用DOM4J實現XML格式模型文件的建立及解析。

利用DOM4J,可以按照Web應用的具體功能需求建立一套完整的PIM模型建立規則。是特定的Web應用(信息發布系統)的控制層中三個基本靜態結構有:欄目、文章及用戶以組件形式建立PIM對應代碼的過程。其中,相關組件屬性值的初始化過程需要配合測試平臺的用戶交互界面(相關JSP頁面),獲取控制層靜態結構對應的功能需求來完成,相應PIM生成代碼如圖2所示(已省略部分結構類似的代碼片段)。

由于XML結構的無限擴展特性,使得無論多復雜的Web應用都可以被分級細化并存入PIM模型中。而具體的細化規則及建模規則均可以在類似與上文的Java代碼中提現,不同的細化規則及建模規則對應了不同Web應用的具體功能需求。控制層的靜態結構細化過程已經由上文的示例給出,視圖層及模型層的細化類似。如圖3為靜態結構對應的XML格式PIM模型(圖3中的白色高亮代碼部分為圖5中對應部分,下文會具體敘述)。

3.2.3 采用增量式開發方法管理PIM模型

[JP2]基于這里已經在PIM的初始化中就采用了組件的概念,使用面向組件的增量式開發方法將更有利于Web應用的完善。每生成一個增量,也就是一次迭代開發,這就要求測試平臺能夠隨時復現之前增量的建立過程,也就是用戶需求的功能子集的提出過程,以便于對需求進行更改。特定的Web應用增量開發生成相應PIM生成代碼如圖4所示(已省略部分結構類似的代碼片段)。

采用這部分代碼生成PIM模型如圖5所示,圖中的白色高亮代碼與上文圖3相對應。實際上這部分代碼即圖4中Java代碼上半部分中采用的DOM4J集成的SAXReader方法讀取的圖3中代碼。而新增的部分則是采用DOM4J集成的XPath技術找到該特定Web應用的相關靜態結構節點(Column,Article,User),再插入與動態結構功能需求相對應的PIM代碼片段(即圖5中每個節點的action部分)。

基于類似的方法,可以將Web應用的MVC各層依照Web應用的功能需求,分為各個功能組件進行細化,接下來就細化的功能組件編寫相應的PIM模型生成及解析代碼,最后按照增量式開發逐步生成Web應用最終的PIM模型。

4 結 語

在此探討了采用DOM4J建立PIM模型的一種方法,并且建立了一個測試平臺,采用增量式開發方法進行了實驗。鑒于不同Web應用的功能需求及系統的復雜程度不一,按組件細化的過程并沒有現成規律可循,需要根據具體需求進行相應規則的建立。另一方面,就Web應用的最終實現而言,PIM模型的建立還應該為MDA開發的下一階段模型即平臺相關模型PSM預留[LL]相關的接口,以更好地實現其復用及擴展。

參 考 文 獻

[1]沈劍波,潘金貴.基于角色的面向對象建模[J].計算機應用與軟件,2002(6):19[CD*2]23.

[2]David.Model Driven Architecture[CD*2]Foundations and Applications[A].Second European Conference,ECMDA[CD*2]FA 2006[C].Bilbao,Spain,2006.

[3]侯金奎,萬建成,張玉艷.一種支持MDA的PIM建模方法[J].計算機工程,2007(8):71[CD*2]73.

[4]劉華,姜宏.信息系統中PIM功能元模型的構建研究[J].計算機技術與發展,2007(5):213[CD*2]216.

[5]李偉.基于XML+DOM4J的數據庫集成技術研究[J].電腦知識與技術(學術交流),2007(5):1 192,1 203.

[6]陳軍,山嵐,趙恒永.用Java & XML構建網絡應用系統的方法[J].計算機工程,2008(3):181[CD*2]183.

[7]楊珉池.XML處理工具性能比較[J].電腦知識與技術(學術交流),2006(11):117[CD*2]119.

[8]蔚曉娟,冉靜,李愛華,等.基于DOM的XML解析與應用[J].計算機技術與發展,2007(4):86[CD*2]88,139.[HJ*2]

[9]孫霞,程宏斌.基于Java的DOM解析技術[J].計算機時代,2004(7):71[CD*2]72.

[10]王軍,黃傳華.DOM4J在數據交換中的應用[J].計算機與現代化,2007(5):98[CD*2]110.

[11]Dennis M,Sosnoaki.Java中的XML:文檔模型(第一部分:性能)[EB/OL].http://www[CD*2]128.ibm.com/developerrvorks/cn/xml/x[CD*2]injava,2005.

[12]王宇,程國忠,張世祿.基于DOM4J實現數據庫表單轉換成XML文檔[J].福建電腦,2007(1):129[CD*2]130.

[13]Herrejon [CD*2],Batory D.Improving Incremental Development in Aspectj by Bounding Quantification[A].SPLAT[C].2005.

作者簡介 譚 凱 男,1984年出生,湖南婁底人,碩士研究生。研究方向為Web應用與基礎。

尹金玉 女,1942年出生,山東人,教授,碩士。主要研究領域為現代電氣控制技術、自動控制、可編程控制器、樓宇自動化。

李亞芬 女,1963年出生,北京人,高級工程師,碩士。主要研究領域為Web應用與基礎、數據庫、計算機控制系統。

主站蜘蛛池模板: 中文字幕调教一区二区视频| 成年女人a毛片免费视频| 国模极品一区二区三区| 国产精品美女免费视频大全| 黄色网站在线观看无码| 国产午夜一级淫片| 国产精品青青| 亚洲婷婷六月| 99热这里只有免费国产精品| 91高清在线视频| 18黑白丝水手服自慰喷水网站| 亚洲区视频在线观看| 无遮挡国产高潮视频免费观看| 中文字幕一区二区视频| 色综合成人| 欧美第九页| 成人毛片免费在线观看| 亚洲综合激情另类专区| 五月天久久婷婷| 色偷偷av男人的天堂不卡| 婷五月综合| 国产在线第二页| 在线欧美一区| 日韩高清欧美| 中文字幕有乳无码| 午夜视频免费一区二区在线看| 亚洲性影院| 色天天综合久久久久综合片| 中文字幕亚洲另类天堂| 国产制服丝袜91在线| 国产尤物在线播放| 国产主播在线一区| 国产后式a一视频| 91av成人日本不卡三区| 精品第一国产综合精品Aⅴ| 91精品人妻一区二区| 在线观看免费黄色网址| 国产精品白浆无码流出在线看| 人人妻人人澡人人爽欧美一区 | 国产成人一区免费观看| 久久精品aⅴ无码中文字幕| 亚洲最大看欧美片网站地址| 二级毛片免费观看全程| 国产成人一区| 国产成人做受免费视频| 欧美日韩国产在线人| 六月婷婷激情综合| 欧美一区精品| 亚洲三级a| 91精品小视频| 一区二区三区毛片无码| 天堂在线www网亚洲| 亚洲一区二区三区在线视频| 国产白丝av| 色综合网址| 久久久久亚洲精品无码网站| 国产成人一区在线播放| 国产在线一二三区| 69免费在线视频| 色婷婷狠狠干| 亚洲国产综合第一精品小说| 黄色福利在线| 国产精品亚洲va在线观看| 亚洲91在线精品| 亚洲av无码牛牛影视在线二区| 欧美自慰一级看片免费| 国产精品无码翘臀在线看纯欲| 婷婷激情亚洲| 久久成人免费| 国产福利免费在线观看| 性视频久久| 免费女人18毛片a级毛片视频| 制服丝袜国产精品| 欧美成人综合在线| 亚洲六月丁香六月婷婷蜜芽| 蜜臀AVWWW国产天堂| 亚洲成a∧人片在线观看无码| 色婷婷成人网| 亚洲无码视频一区二区三区 | 日韩视频免费| 日韩精品免费一线在线观看| 国产欧美在线观看一区|