?

基于Java EE技術的軟件框架設計

2022-11-22 09:07郭春霞
信息記錄材料 2022年9期
關鍵詞:體系結構應用程序框架

郭春霞

(西安思源學院 陜西 西安 710038)

0 引言

隨著軟件技術的發展,軟件的規模越來越大,軟件的復雜性也越來越高。因此,人們對軟件復用技術的重視程度日益提高,同時也提出了一些設計模型和框架。開源軟件的出現促使了更廣泛的框架。體系結構是從整體到局部的一種劃分,通常包括若干個不同的領域的框架。一個成功的軟件必須有一個成功的體系結構,但是,軟件體系結構的構建是一個非常復雜和持續改進的過程,軟件開發人員不能為每一個項目設計一個完全不同的體系結構。

當前,Java EE體系結構方案的出現以及企業級應用的普及,已形成了一個新的發展方向。具體而言,Java EE體系結構把一個系統劃分成Web和EJB兩大類,并將其抽象成表現層、業務邏輯層、數據持久層[1]。但是,EJB是一種重量級的、具有高度侵略性的架構規范,它的重量級是分布的,并且具有很強的侵略性,它規定了某些執行人員必須遵循的界面和規格。其結果是系統的部署復雜、執行速度慢、難以進行測試、耗費大量的資源;同時,基于入侵式架構的設計與開發具有高的耦合能力,且不容易拆分。針對目前Java EE體系結構存在的問題,提出一種以Java EE為基礎的輕量級框架解決方案。

1 Java框架概述

以 Java EE為基礎的輕量級框架,所有的物件必須在IOC容器中部署,但是這些物件與容器無關[2]。開發者可以在應用程序服務器以外的常規Ut環境中進行測試。為了保證高的插入性,所有的呼叫都指向了商業界面,而非商業對象的實現類。利用AOP,開發者可以實現POJO業務對象的宣告式事務管理以及其他跨行業的企業服務。事務的分割將由業務邏輯層來負責,也可以說是由容器架構來負責。大多數情況下,POJO業務對象都是一個多執行者、沒有狀態的服務物件。Web層是業務邏輯上的一層,它僅用于處理用戶的輸入和顯示業務過程的結果。資料存取層采用了輕量級的 O/R圖,提供了持久的透明。

現在,主流的輕量級框架包括Struts1. x、Web Work、Struts2、JSF,Spring、Hibernate、Bas等。本論文使用Web Work、Spring和 Hibernate進行了整合, Web Work MVC框架增強了代碼的復用性,Hibernate ORM功能可以方便地進行數據庫的移植和運行[3]。利用三種結構體系,可以實現代碼重用、設計重用、代碼易于理解、代碼可靠性、減少開發復雜度、增強可擴充性和維護性,從而使得各部門之間的分工更為清晰,對于提高生產效率有著十分重要的意義。

本項目旨在根據Java EE的規范,建立一個輕量級的框架集成結構,該體系結構的設計目標是面向企業的Web應用,這些應用在Java EE的先進功能和分布式功能上并不需要太多。在對Java EE領域中常用的幾種開放源碼框架進行對比之后,選取Web Work、Spring、Hibernate框架作為一種有一定集成性的軟件開發體系。在集成框架時,強調了各個框架的融合和改進,從而降低了框架間的耦合,改善了體系結構的復用性,并在工業消防一體化管理系統中實現了這種體系結構。從系統的運行結果來看,這種結構比傳統的Java EE體系結構具有較少的開發復雜性和較高的代碼重復性,提高了系統的開發效率。

2 Java框架基礎架構

2.1 Java框架架構

Java EE標準的誕生與流行使得Java EE在企業中得到了廣泛的應用,特別是在Java環境下[4]。利用Java EE架構,軟件開發者和企業可以快速開發和部署商業應用,取代傳統的多層次架構。

整個系統由客戶端、網絡層、業務邏輯層和企業信息系統層組成。

在用戶層面,網絡應用程序可以被使用,也可以不使用。在Java EE中,瀏覽器可以顯示各種不同的標記語言,如HTML、XML、XSL等。生成的Web組件可以通過JSP頁面和Servlets在Web層上運行,因此可以在Java EE服務器中與業務層通信;這是一款運行在Web系統中的Java程序,能夠直接存取EJB組件,并在EJB中運行;一個JavaBeans類還可以包括一個JavaBeans類,用來管理用戶的輸入并在商業邏輯層中運行EB對象。

在Web層,Java EE中的JSP、Servlet、Servlet Filter均屬于這一層。Servlet能夠在HTTP(HTTP)中嵌入應用邏輯來請求響應。JSP為網頁嵌入的構建提供了一種方法,網頁是基于文本的,Web容器是編譯成Web層的, JavaBeans類可以管理用戶的輸入,執行在業務邏輯層上的JavaBean或者EJB對象。

EJB服務器與EJB組件組成的服務層也被稱作EJB層或者是應用層,許多開發者經常將Web服務器和稱為ApplicationServer的EJB服務器產品相結合。EJB是一個以EJB為基礎的企業信息系統,是以EJB為基礎的企業應用的核心。

企業信息系統處理企業信息軟件包括企業基礎建設系統、客戶關系管理、數據庫和其他傳統的信息系統。

2.2 表示層框架WebWork

WebWork是由OpenSymphony組織開發。如今WebWork的輕量級迅速被全球開發人員認可。Webwork提供了幾個核心特性:前端攔截、形式確認、類型轉換、OGNL表達式,支持多視圖的表達,視圖可以使用JSP、Velocity、自由標記、JasperReports、XML等[5]。

2.3 業務邏輯框架Spring

Spring是一款開源Spring,它不僅關注單個級別的問題,而且能夠為Java EE的所有級別提供解決方案。整體來說,該系統可以很好地適應企業的實際應用。開發人員可以在不考慮其他條件的前提下根據自身需要選擇合適的應用程序。

Spring架構的核心是一個輕量級的容器,是實現IOC的容器,并提供AOP的實現??刂品崔D的基本理念不是創造一個物體,而是如何建立一個物體。在程式碼中并不會直接與物件或服務相關聯,但是在設定檔中會說明哪些是元件所需的服務,IOC容器會將它們相互關聯。

2.4 數據持久層框架Hibernate

Hibernate是一種面向對象映射的開放源碼框架,這是一種很輕的JDBC對象封裝,讓Java程序員能夠利用對象的思想來輕松地處理數據庫。Hibernate可以用于所有JDBC、Java客戶機、Servlet/JSP Web應用,最具有革新意義的是Hibernate能夠取代 CMP,承擔起數據持久的任務。

3 Java框架的設計與集成

3.1 不同框架的優缺點分析

Web Work架構非常適合MVC的設計模式,使得各組件能夠單獨執行一個功能,同時也便于開發、維護和更新;同時,該系統還提供了多種定制的選項庫,將JSP網頁上的顯示邏輯與靜態HTML分隔開來,使得網頁代碼更加清晰易懂。然而 Web Work架構的主要目標是表達層,而不能很好地支撐商業邏輯,Web Work在模型中僅提供了一個動作類,就要求開發人員在開發時要做一些復雜的工作[6]。

Spring框架是一種松耦合的結構,它被設計成盡可能地降低各個部件之間的耦合。Spring框架能夠提供一個一站式的企業應用程序,但是Spring也是一個模塊化的框架,讓開發者能夠利用部分的模塊進行開發。Spring的開發人員相信現在已經有了許多優秀的框架,不需要重新設計;Spring提供了與它們相整合的方案,部件結合在一起,這個模塊可以集成 Hibernate。

對于Hibernate來說,這是一種非常好的O/R映射架構,可以很好地支持數據模型。但是,如果僅使用 Hibernate,邏輯處理、流程控制和視圖之間的關系并沒有很好的分割,會導致系統的耦合程度依然很高,不便于維護。

3.2 架構目標

體系結構就是把整個結構分成若干個部分,這些部分之間有著特殊的聯系,這樣就可以有效地協調工作,以解決個別小組無法應付的主要問題。體系結構讓各個部件成為一個完整的整體。好的體系結構設計能夠確保一次工程的成功,并且能夠提供優秀的運行表現,而好的體系結構設計需要遵循一些原則,這些原則可以概括為如下幾點:

(1)復用

為了減少重復工作、減少費用,可利用舊的代碼和設計。復用是一直在追求的一個目標,但是實際上,它并不是一件簡單的事情。事實上,在體系結構復用上,已經做出了大量工作,其結果就是Frame Work,但是目前還沒有一個有效的框架。

(2)透明性

在一些案例中,為了更高效地完成具體的操作,會將界面隱藏起來,僅僅提供用戶的需要。

(3)擴展性

由于用戶需求經常變更,必須要使體系結構具有可伸縮性,以滿足將來的各種變化、可擴展性與穩定性。必須衡量一下投入和產出比率,以便設計一個合適的可擴展的體系結構。

(4)簡潔性

結構必須盡量做到簡潔,同時要達到目標。使用模式可以簡化設計,遵循一定的設計模式,體系結構不會非常復雜。

(5)高效性

開發者在開發系統時都希望系統高效運行,特別是在某些特殊的系統中,例如,一個即時系統,一個海量的站點。

體系結構設計的目的也是對整個系統進行抽象化。商業邏輯與持久力是企業應用中的兩大關鍵概念,企業的應用程序都是基于商業邏輯的。為了在企業中更好地組織不同的邏輯,采用層次技術來實施企業的應用程序。層技術是計算機領域的一種古老的技術,它的優點是層次化。

(1)高層邏輯不必了解全部底層邏輯,只要了解鄰近層的詳細信息即可。由于對各個層次進行了嚴格的劃分,使得各個層次的耦合程度大為下降。

(2)在一定水平上,下屬層可能會有不同的實施方法。比如,同樣的程序語言可以在不同的操作系統和不同的計算機上工作。

(3)同一層能夠支撐不同的上層。

將以上因素結合起來,企業應用程序一般分為若干層。多層次劃分的優點是:加快了系統的開發速度、魯棒性、穩定性、可維護性、擴展性、以及在系統成功后的維護和修改費用。

3.3 架構設計

Web Work框架擁有一個很好的標簽庫,所以Web層基本上是由Web Work框架來實現的;Spring框架與Web Work框架可以很好地結合起來,并且在事務管理和依賴注入方面有著獨特的優勢,所以Spring框架被廣泛地用于業務邏輯層面:Hibernate主要是Hibernate、O/R映射,JDBC則是一個輕量級的。WebWork框架擁有良好的標簽基礎,所以Web層主要由Web Work框架實現;Spring框架與Web Work框架結合得非常好,其特點是事務管理和依賴注入,因而在業務邏輯層中得到了廣泛的應用;在數據持久層,Hibernate主要使用Hibernate來完成O/R圖,JDBC是一種能為Java對象提供持久性的輕型對象封裝。下面是每個級別的職責。

在表示層次上,使用Web Work作為一個表示層的結構。網絡工作結構應負下列職責:管理使用者的需求及反應;提供用于授權呼叫業務邏輯及其他上行處理的控制器;將例外處理從其他層級扔到Web Work;把模型物體裝配成一個可以表達的視圖;UI糾正。

從商業邏輯的角度來看,一個典型的Web應用軟件就是一個商業和一個服務。使用Spring作為一種業務層面的體系結構,負責如下工作:業務邏輯和業務驗證;能夠與其他各層交互;在企業層次上管理對象之間的依賴關系;增加了可視化和持久化的靈活性,使它們不需要直接交流;將從表現層中的內容顯示到業務層,從而獲得業務服務;管理從商用到績效的轉變。

在數據持久層,存在著大量ORM開源框架[6],支持Java中的對象-關系保持和查詢服務。使用Hibernate作為架構的持久框架,提供如下功能:查詢關聯信息,Hibernate可以使用O0查詢HQL語言,或使用更多的 API;存儲、更新、刪除存儲在數據庫中的信息;Hibernate將普通的Java對象定義成持久化的類,在數據庫和對象之間建立映射,通過數據庫接口訪問數據。應用程序可以在不影響其他級別代碼的情況下,更靈活地進行修改。綜上,得到的Java系統架構如圖1所示。

圖1 系統整合架構圖

4 總結

本文對三種體系的利弊進行了分析,然后將三個框架有機地結合在一起,構成一個整體化的軟件開發體系,并對Spring框架與Hibernate框架進行了集成,并對其進行了解耦和改善,框架技術讓軟件開發產品在質量上得到保證。

猜你喜歡
體系結構應用程序框架
有機框架材料的后合成交換
框架
基于PPP工程采購模式的工程項目合同體系結構研究
刪除Win10中自帶的應用程序
足球機器人并行行為組合控制體系結構分析
谷歌禁止加密貨幣應用程序
關于原點對稱的不規則Gabor框架的構造
Acoustic Characteristics of Advertisement Calls in Babina adenopleura
我國在WYO框架下面對的貿易保護現狀及應對
三星電子將開設應用程序下載商店
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合