J2EE系統設計方案_第1頁
J2EE系統設計方案_第2頁
J2EE系統設計方案_第3頁
J2EE系統設計方案_第4頁
J2EE系統設計方案_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

J2EE系統技術方案J2EE系統技術方案 1一、 技術平臺 21. J2EE的概念 32. J2EE的優勢 33. J2EE有關核心技術 44. 輕量級J2EE架構 5二、 應用布署架構 61. 服務器操作系統 62. Web服務器架構 63. 系統數據庫 6三、 開發核心技術 71. 軟件版本與工具 72. 重要技術方案 83. 業務邏輯層 94. 數據持久層 95. 域對象層 96. WEB層 107. 任務調度 108. Ajax技術 10四、 系統緩存 101. 普通緩存方略 102. Hibernate二級緩存 113. JSP頁面緩存 11五、 軟件成本比較 11技術平臺J2EE(Java2EnterpriseEdition)是建立在Java2平臺上的公司級應用的解決方案。J2EE技術的基礎便是Java2平臺,不僅有J2SE平臺的全部功效,同時還提供了對EJB,Servlet,JSP,XML等技術的全方面支持,其最后目的是成為一種支持公司級應用開發的體系構造,簡化公司解決方案的開發,布署和管理等復雜問題。事實上,J2EE已經成為公司級開發的工業原則和首選平臺。市場上能夠看到諸多實現了J2EE的產品,如BEAWebLogic,IBMWebSphere以及開源的JBoss等等。J2EE并非一種產品,而是一系列的原則,它是由sun公司提出的,符合這個原則的產品叫"實現"。J2EE的概念現在,Java2平臺有3個版本,它們是合用于小型設備和智能卡的Java2平臺Micro版(Java2PlatformMicroEdition,J2ME)、合用于桌面系統的Java2平臺原則版(Java2PlatformStandardEdition,J2SE)、合用于創立服務器應用程序和服務的Java2平臺公司版(Java2PlatformEnterpriseEdition,J2EE)。J2EE是一種運用Java2平臺來簡化公司解決方案的開發、布署和管理有關的復雜問題的體系構造。J2EE技術的基礎就是核心Java平臺或Java2平臺的原則版,J2EE不僅鞏固了原則版中的許多優點,例如"編寫一次、隨處運行"的特性、方便存取數據庫的JDBCAPI、CORBA技術以及能夠在Internet應用中保護數據的安全模式等等,同時還提供了對EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術的全方面支持。其最后目的就是成為一種能夠使公司開發者大幅縮短投放市場時間的體系構造。J2EE體系構造提供中間層集成框架用來滿足無需太多費用而又需要高可用性、高可靠性以及可擴展性的應用的需求。通過提供統一的開發平臺,J2EE減少了開發多層應用的費用和復雜性,同時提供對現有應用程序集成強有力支持,完全支持EnterpriseJavaBeans,有良好的向導支持打包和布署應用,添加目錄支持,增強了安全機制,提高了性能。J2EE的優勢

J2EE為搭建含有可伸縮性、靈活性、易維護性的商務系統提供了良好的機制。

這之因此成為可能是由于J2EE擁有廣泛的業界支持和某些重要的'公司計算'領域供應商的參加。每一種供應商都對現有的客戶提供了不用廢棄已有投資,進入可移植的J2EE領域的升級途徑。由于基于J2EE平臺的產品幾乎能夠在任何操作系統和硬件配備上運行,現有的操作系統和硬件也能被保存使用。高效的開發:J2EE允許公司把某些通用的、很繁瑣的服務端任務交給中間件供應商去完畢。這樣開發人員能夠集中精力在如何創立商業邏輯上,對應地縮短了開發時間。高級中間件供應商提供下列這些復雜的中間件服務。狀態管理服務:讓開發人員寫更少的代碼,不用關心如何管理狀態,這樣能夠更快地完畢程序開發。持續性服務:讓開發人員不用對數據訪問邏輯進行編碼就能編寫應用程序,能生成更輕巧,與數據庫無關的應用程序,這種應用程序更易于開發與維護。分布式共享數據對象CACHE服務--讓開發人員編制高性能的系統,極大提高整體布署的伸縮性。支持異構環境:J2EE能夠開公布署在異構環境中的可移植程序。基于J2EE的應用程序不依賴任何特定操作系統、中間件、硬件。因此設計合理的基于J2EE的程序只需開發一次就可布署到多個平臺。這在典型的異構公司計算環境中是十分核心的。J2EE原則也允許客戶訂購與J2EE兼容的第三方的現成的組件,把他們布署到異構環境中,節省了由自己制訂整個方案所需的費用。可伸縮性:公司必須要選擇一種服務器端平臺,這種平臺應能提供極佳的可伸縮性去滿足那些在他們系統上進行商業運作的大批新客戶。基于J2EE平臺的應用程序可被布署到多個操作系統上。例如可被布署到高端UNIX與大型機系統,這種系統單機可支持64至256個解決器。(這是NT服務器所望塵莫及的)J2EE領域的供應商提供了更為廣泛的負載平衡方略。能消除系統中的瓶頸,允許多臺服務器集成布署。這種布署可達數千個解決器,實現可高度伸縮的系統,滿足將來商業應用的需要。穩定的可用性:J2EE布署到可靠的操作環境中,支持長久的可用性。某些J2EE布署在WINDOWS環境中,客戶也可選擇強健性能更加好的操作系統如Linux,SunSolaris、IBMOS/390。J2EE有關核心技術J2EE的多個組件、服務和API,進行更加具體的敘述,在開發不同類型的公司級應用時,根據各自需求和目的的不同,應當如何靈活使用并組合不同的組件和服務。Servlet

Servlet是Java平臺上的CGI技術。Servlet在服務器端運行,動態地生成Web頁面。與傳統的CGI和許多其它類似CGI的技術相比,JavaServlet含有更高的效率并更容易使用。對于Servlet,重復的請求不會造成同一程序的多次轉載,它是依靠線程的方式來支持并發訪問的。JSP

JSP(JavaServerPage)是一種實現普通靜態HTML和動態頁面輸出混合編碼的技術。從這一點來看,非常類似MicrosoftASP、PHP等技術。借助形式上的內容和外觀體現的分離,Web頁面制作的任務能夠比較方便地劃分給頁面設計人員和程序員,并方便地通過JSP來合成。在運行時態,JSP將會被首先轉換成Servlet,并以Servlet的形態編譯運行,因此它的效率和功效與Servlet相比沒有差別,同樣含有很高的效率。JDBC

JDBC(JavaDatabaseConnectivity,Java數據庫連接)API是一種原則SQL(StructuredQueryLanguage,構造化查詢語言)數據庫訪問接口,它使數據庫開發人員能夠用原則JavaAPI編寫數據庫應用程序。JDBCAPI重要用來連接數據庫和直接調用SQL命令執行多個SQL語句。運用JDBCAPI能夠執行普通的SQL語句、動態SQL語句及帶IN和OUT參數的存儲過程。Java中的JDBC相稱與Microsoft平臺中的ODBC(OpenDatabaseConnectivity)。JMS

JMS(JavaMessageService,Java消息服務)是一組Java應用接口,它提供創立、發送、接受、讀取消息的服務。JMSAPI定義了一組公共的應用程序接口和對應語法,使得Java應用能夠和多個消息中間件進行通信,這些消息中間件涉及IBMMQ-Series、MicrosoftMSMQ及純Java的SonicMQ。通過使用JMSAPI,開發人員無需掌握不同消息產品的使用辦法,也能夠使用統一的JMSAPI來操縱多個消息中間件。通過使用JMS,能夠最大程度地提高消息應用的可移植性。JMS既支持點對點的消息通信,也支持公布/訂閱式的消息通信。JNDI

由于J2EE應用程序組件普通分布在不同的機器上,因此需要一種機制方便于組件客戶使用者查找和引用組件及資源。在J2EE體系中,使用JNDI(JavaNamingandDirectoryInterface)定位多個對象,這些對象涉及EJB、數據庫驅動、JDBC數據源及消息連接等。JNDIAPI為應用程序提供了一種統一的接口來完畢原則的目錄操作,如通過對象屬性來查找和定位該對象。由于JNDI是獨立于目錄合同的,應用還能夠使用JNDI訪問多個特定的目錄服務,如LDAP、NDS和DNS等。輕量級J2EE架構現在J2EE應用中,由于應用需求不同,架構設計上分成兩種設計方式,即重量級J2EE架構和輕量級J2EE架構。銀行,電信,大型公司的業務系統邏輯復雜,結點分布廣泛,且普遍使用了物理上多層架構,事務規定性極高,對系統的穩定性規定也是極高的,因此大多數使用重量級的EJB開發架構。普通的中小型應用系統,所關注的是訪問速度與快速響應市場需求變化,強大的系統緩存功效,傳統的大型分布式J2EE架構就顯得不太適宜。本系統的開發基于J2EE的輕量級多層架構,即業界比較成熟的Struts2+Spring+Hibernate框架:Struts2實現MVC最為成熟的框架之一,在J2EE項目中應用廣泛;Spring能夠實現對Hibernate的無縫鏈接,合用于業務解決層;在數據持久層中,采用Hibernate這一功效強大的ORM映射工具。J2EE的三層構造在業界是指表達層(Presentation),業務邏輯層(Businesslogic)以及基礎架構層(Infrastructure)。一種最慣用的擴展就是將三層體系擴展為五層體系,即表達層(Presentation)、控制/中介層(Controller/Mediator)、領域層(Domain)、數據持久層(DataPersistence)和數據源層(DataSource)。它其實是在三層架構中增加了兩個中間層。控制/中介層位于表達層和領域層之間,數據持久層位于領域層和基礎架構層之間。而輕量級架構Struts2+Spring+Hibernate能夠實現J2EE多層構造,Struts2用于表達層、控制層,Spring用于業務解決層,而Hibernate用于數據持久層。應用布署架構服務器操作系統GSR系統將運行在Linux操作系統,Linux最大的優點在于它作為服務器操作系統的強大功效,尚有它的可靠的性能,穩定性與網絡安全性,是大型公司和網絡中心加高服務器首選的操作系統,它提供了最慣用最廣泛使用的諸如負載均衡,遠程鏡像等集成解決方案。J2EE作為一種跨操作系統平臺的應用系統平臺,在Linux上面能夠體現出非常好的性能。Web服務器架構JBoss是一種運行EJB的強健的、高質量的和性能良好的J2EE應用服務器。它是開放源代碼的項目,遵照最新的J2EE規范。從JBoss項目開始至今,它已經從一種EJB容器發展成為一種基于的J2EE的一種web操作系統。含有革命性的JMX微內核服務作為其總線構造;面對服務的架構(Service-OrientedArchitecture,SOA);含有統一的類裝載器,從而能夠實現應用的熱布署和熱卸載能力。JBoss集成了Tomcat做為Web服務器,Tomcat優點是免費,實現J2ee規范最佳的應用服務器,能夠極大地減少甲方的運行成本。Tomcat是Apache的核心項目之一,也被SUN視作Servlet/JSP容器的一種重要參考實現而加以支持。因此SUN最新的Servlet/JSP規范,往往能夠很快地在Tomcat的新版本中得到體現;Tomcat是一種小巧精巧的web應用服務器,配備、安裝、運行、布署web應用都很簡樸;Tomcat與開源緊密結合,開源軟件的生命力,往往與其社區的狀況有緊密的聯系。總而言之,采用此種服務器配備方案無論從成本上還是系統性能和安全上考慮都是非常適宜的。系統數據庫中心數據庫系統使用Oracle10g,oracle是業界各方面最佳的數據庫。節點數據庫使用MySQL,MySQL是最流行的開放源碼SQL數據庫管理系統,它是由MySQLAB公司開發、公布并支持的。MySQL是一種關聯數據庫管理系統,它是一種開放源碼軟件。MySQL含有良好的擴展性,在數據訪問上碰到瓶頸時,能夠布署MySQL集群來實現負載均衡。開發核心技術軟件版本與工具名稱版本號闡明JavaSE6.0Java虛擬機版本號J2EE1.4J2EE平臺版本號JSP2.0JSP界面編寫版本規范JSTL1.1JSP原則標簽庫版本Servlet2.4Servlet引擎版本規范Struts2.1WEB層MVC框架版本Spring2.0輕量級業務邏輯層解決框架Xfire2.0WebService實現技術Hinbernate3.1ORM對象關系映射層版本XHtml1.1Html書寫版本規范CSS2.0Html樣式版本規范JQuery2.2Ajax框架版本號Ext2.0Javascript類庫Acige2.0權限控制框架開發工具:工具名稱工具版本闡明Eclipse3.3JavaIDEMyEclipse6.0J2EE開發工具PowerDesigner12數據庫設計工具JBoss4.2Java應用服務器版本號Tomcat6.0開發測試服務器Oracle10gMysql5.18數據庫版本號重要技術方案系統架構圖:從架構圖中能夠看出系統分為四層:UI層:借助JSP,Struts實現業務層:借助SpringFramework進行業務組件的組裝關聯。數據持久層:借助Hibernate實現域對象層:將全部域對象劃分在一種層面采用這樣的四層架構能夠達成下列效果:通過成熟的開源產品實現各層,同自己編寫代碼實現,相比之下能縮短開發周期,且架構所用到的開源產品都有很廣泛的顧客群,經受過實踐的考驗,質量和性能更有保障。層與層之間松散耦合,增加代碼重用率。各層分工明確,這樣也利于團體的明確分工。業務邏輯層在實際的項目開發中,每個領域都會有自己獨特的業務邏輯,正由于這樣,致使項目中代碼高度耦合,原本有可能被重用的代碼或功效,由于與具體的業務邏輯綁定在一塊而造成很難被重用。因此我們將實現這些具體邏輯的代碼抽取出來分為單獨的一層,其目的是但愿通過層,來減少它與系統其它部分的耦合度。現實中世界是變化的,既然該層實現的是現實中具體的業務邏輯,那該層的實當代碼不可避免的會發生變更。如何讓該層適應最大的變化,做到最小的改動?普通我們在編碼的時候會盡量考慮到同一業務多個實現的兼容和可擴展的能力。因此我們在該層借助了Spring,通過依賴注入、AOP應用、面對接口編程,來減少業務組件之間的耦合度,增強系統擴展性。Spring設計方案:IOC(InversionofControl),譯作反轉控制,其功效是將類之間的依賴轉移到外部的配備文獻中,避免在調用類中硬編碼實現類,因此也被稱作依賴注入(DependencyInjection)。在以往的開發中,普通運用工廠模式(Factory)來解決這類問題,其實不管是工廠模式還是依賴注入,調用類與實現類不可能沒有任何依賴,工廠模式中工廠類普通根據參數來判斷該實例化哪個實現類,SpringIOC將需要實例的類在配備文獻文獻中配備。使用SpringIOC能得到工廠模式同樣的效果,并且編碼更加簡潔。需要指出的是本系統全部的事務管理,資源管理的AOP方案都是配備在本層的接口之上,運用Java對接口的動態代理技術實現,特別注意辦法命名規范,避免資源泄露。數據持久層本系統與數據庫進行數據交互非常大,普通我們歸為CRUD(添加、讀取、修改、刪除),這些操作占據了系統開發中大部分的時間,同時我們還需要考慮與數據庫交互的性能問題,如連接池、數據緩存等等。因此該層實現借助了Hibernate。而Hibernate已經成為事實上的輕量級ORM原則,在某此方面甚至超越了實體EJB的功效。Hibernate是一種ORM工具,它不僅僅是實現了數據庫訪問性能優化和與數據庫交互的慣用操作(CRUD),還將數據表與對象進行了關聯,讓開發人員能夠脫離數據表,而直接針對對象來與數據庫交互,開發人員不再需要用字符串去描述表中字段,這使得編碼中可書寫性提高。在本系統中已經抽象出了一種CRUDDAO組件基類,運用JDK5.0的泛型技術,每個繼承此組件基類的DAO都持有本身的持久對象類型,非常方便操作。在此基類中涵蓋了大多數數據庫操作辦法,如CRUD,分頁,屬性查詢等。域對象層該層應當說是ORM思想的產物,ORM用對象關聯數據表,將這些對象的集合歸為一種專門的層即DomainLayer。域對象是各層之間數據通信的載體。事實上域對象也是一種完完全全的業務對象,如User對象、Book對象。通過對業務的對象化,這有助于業務邏輯的重用。在傳統的多層J2EE系統中,為了避免層與層之間的互相侵入性,普通采用DTO(DataTransferObject數據傳輸對象)方式,但是本系統層次與業務并不復雜,侵入性也不會太高,為了性能上的考慮,決定使用PO(PersistenceObject持久對象)來取代DTO,個別復雜狀況除外。WEB層JSP2.0的特點是:

使動態網頁的設計更加容易

簡化JSP頁面,使得JSP頁面容易維護

使WEB應用程序前后臺應用更清晰

無需學習Java編程語言就能夠編寫JSP頁面本系統需要嚴格按照JSP2.0規范編寫,具體JSP2.0規范請參考《JSP2.0技術手冊》。本系統Struts2全部的Action對象繼承ActionSupport基類,由前端注入攔截器(interceptor)將Spring業務解決對象自動裝配到Struts2Action之中,開發人員不須手動管理業務解決對象的實例化。Struts2配備文獻需要按模塊進行分類。具體Struts2使用方式請參考《Struts2inAction》。任務調度本系統中含有大量的時間任務調度功效規定,如每天凌晨2:00進行內容索引更新,每月第一天00:00將最活躍顧客算出增加積分等。Quartz使用Trigger,Job以及JobDetail等對象來進行多個類型的任務調度。Quartz能夠用來創立簡樸或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表,這是asp,php,甚至等其它開發平臺望塵莫及的。使用這種技術,能夠滿足我們的足夠復雜的業務邏輯。Ajax技術當今互聯網時代,Ajax技術已經是這個領域的技術領頭羊,Web2.0網站的核心技術也是以Ajax為中心,為了最高層次地提高顧客的體驗,必須使用Ajax技術,本系統重要使用JQuery和Ext框架來實現Ajax技術。系統緩存普通緩存方略空間換取時間,緩存永遠計算機設計的重中之重,從cpu到io,到處都能夠看到緩存的身影,web架構設計重,緩存設計必不可少,設計web緩存和公司級緩存是非常不同的,公司級緩存偏重于邏輯,而web緩存,簡樸快速為好。緩存的使用也會帶來的問題,它使程序的復雜度上升,由于數據散布在多個進程,因此同時就是一種麻煩的問題,加上集群,復雜度會進一步提高,在實際運用中,采用如何的同時方略經常需要和業務綁定。Cache的慣用的方略是:讓數據在內存中,而不是在比較耗時的磁盤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論