




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
JavaEE6企業級應用
開發教程
軟構件與中間件技術
主要參考書目:(1)JavaEETutorial:Oracle網站文檔(2)JavaEE6企業級應用開發教程:講義王曉燕,計算機支持協同工作教研室,博士,講師,研究方向:軟件建模與驗證技術,軟件形式化。辦公地址:計算機樓B131室E-Mail:wangxy@課程內容安排:第1章JavaEE概述 2課時Web應用開發第2章Servlet2課時
第3章JSP程序開發 2課時第4章JSF 4課時JDBC和JNDI第5章和第6章2課時EJB第7章EJB概述2課時
第8章會話Bean4課時
第9章消息驅動Bean 2課時
JPA 第10章JPA
4課時
第11章JPQL2課時
第12章WebService 2課時第13章JavaEE安全性2課時第14章SSH架構2課時成績評定和考核方式:成績評定將采取平時成績、實驗成績與期末考試結合的考核辦法,平時成績+實驗成績的比例在30%~50%之間。要求全體學生課堂教學保證出勤,實驗教學保證完成實驗內容。
第1章JavaEE概述
本章內容安排:構件技術與中間件JavaEE的產生與發展JavaEE6架構JavaEE6常用技術JavaEE6特性JavaEE6應用服務器介紹JavaEE開發環境的配置構件技術與中間件軟件的運行平臺要求高度統一到“分布式”“異構”的Internet平臺上來。如何適應復雜的分布環境、讓軟件平臺具有靈活的應用模式、廣泛的包容性等,傳統的軟件設計思想已遠遠不夠。構件技術應運而生,并逐漸炙手可熱。不同于面向對象技術強調對個體的抽象,構件則更推廣了對象封裝的內涵,側重于復雜系統中組成部分的協調關系,強調實體在環境中的存在形式,形成一個專門的技術領域。構件技術與中間件構件的存在某種程度上極大地依賴了構架技術,或環境、基礎設施、計算平臺,只有在適當的構架中,軟件才有可能被抽象和隔離,最終成為構件。因此,單獨討論構件是抽象而空洞的。架構不是操作系統、數據庫或網絡協議,也不完全是應用,而是在某種特定意義上的構件運行容器,層次上界于應用和基礎設施之間。構件技術與中間件中間件,從本質上是對分布式應用的抽象,因而拋開了與應用相關的業務邏輯的細節,保留了典型的分布交互模式的關鍵特征。經過抽象,將紛繁復雜的分布式系統經過提煉和必要的隔離后,以統一的層面形式呈現給應用。應用程序在中間件提供的環境中可以更好地集中于業務邏輯上,并以構件化的形式存在,最終自然而然地在異構環境中實現良好的協同工作。構件技術與中間件一個普遍被接受的定義是IDC(InternationalDataCorporation,國際數據公司)給出的:
“中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。”這個對于中間件概念的闡述明確指出了中間件是一類軟件而不是某一種軟件,其作用是在系統軟件和應用軟件之間實現連接,實現通過不同的接口共享資源。構件技術與中間件中間件的特征(1)獨立于系統(2)用于分布式環境(3)支持標準的協議和接口(4)可以實現應用之間的互操作(5)具有網絡通信功能執行中間件的一個關鍵途徑是信息傳遞。通過中間件應用程序可以工作于多平臺或OS環境。構件技術與中間件中間件的分類通常按照中間件的作用,大致可以將中間件分為兩大類:(1)把支持單個的應用系統或解決一類問題的中間件稱為底層中間件,一般包括交易中間件、應用服務器、消息中間件、數據訪問中間件。(2)把用于與各種應用系統關聯,完成系統整合的中間件稱為高層中間件,一般包括企業應用集成中間件、工作流中間件、門戶中間件等。構件技術與中間件中間件的發展:1990年:Bell實驗室開發的Tuxedo系統標志中間件的誕生。1994年:IBM發布了消息隊列服務MQ系列產品,解決了分布式系統異步、可靠、傳輸的通訊服務問題,消息中間件正式誕生。1995年:Java語言橫空出世,特別是J2EE發布以來,Java語言從一個編程語言,演變為網絡應用架構,成為應用服務平臺的事實標準和應用服務器中間件,成為中間件技術的集成者,也成為事實上的中間件的核心。2001年,微軟發布.NET,加入中間件的市場競爭。構件技術與中間件在商業中間件及信息化市場主要存在Java陣營、微軟陣營、開源陣營。陣營的區分主要體現在對下層操作系統的選擇以及對上層組件標準的制訂上。商業操作系統主要來自UNIX、蘋果公司和Linux的系統以及微軟Windows系列。Java陣營:IBM、Sun、Oracle、BEA及其合作伙伴。微軟陣營:微軟及其商業伙伴開源陣營:JBoss,Apache,SourceForge等國內:金蝶、浪潮等構件技術與中間件中間件的優越性主要表現在以下一些地方:1、在應用開發方面,通常可以節省25%~60%的應用開發費用,如果配合使用商用構件,最多可節省80%的開發費用。2、在系統運行過程中,可節省50%的初期資金和運行費用。3、開發周期:使用標準的商業中間件可縮短開發周期50%~75%。4、在項目開發上可以有效減少項目開發風險,失敗率低。5、合理運用資金:利用中間件可以將原有的系統“改頭換面”,增加功能模塊,成為Internet/Intranet系統,有效地保護已有的軟件資源。6、應用集成:標準化的中間件可以集成現有的應用、新的應用和新購買的商務構件。7、系統維護:中間件的開發代價高,但是購買商業中間件只需付出產品價格的15%~25%的維護費,從而降低維護費用。具體費用要看供應商的價格和購買數量。8、質量:標準中間件在接口方面應該是清晰和規范的,能夠有效地保證應用系統的質量。9、技術革新:標準的商業中間件廠商應該責無旁貸地把握技術方向和技術革新,因此在軟件的革新和升級方面,中間件可以做得更好。10、增加產品吸引力:不同的商業中間件提供不同的功能模塊,合理使用,可使應用軟件流光溢彩。11、優化軟件開發:開放的中間件標準可以讓更多的廠商和個人中間件開發者加入,有利于軟件開發的優化。1.1JavaEE架構產生與發展1、傳統應用程序模型(1)基于主機系統或單層結構:主機/終端模式數據訪問、表示和業務邏輯在一個應用中代碼復用、代碼可維護性、代碼的修改十分困難應用不是分布式的,不具有可伸縮性1.1JavaEE架構產生與發展(2)客戶/服務器結構:“胖”客戶端用戶界面和程序邏輯綁在一起,代碼難以重用服務器的數據庫必須同每一個活動的客戶保持連接,消耗大量的運算資源,隨著客戶數目的增加性能不斷下降,且存在死鎖及崩潰的可能數據模型“緊耦合”在每一客戶端,數據庫結構改變將導致全體客戶端改變,不利于更新和維護原始數據通過網絡傳遞:加重網絡負擔客戶端應用程序越來越大,對使用者的要求也越來越高數據庫胖客戶端:表示邏輯業務邏輯業務數據模型通訊Fatclient1.1JavaEE架構產生與發展2、Web應用程序模型:三層分布式架構1.1JavaEE架構產生與發展WWW瀏覽方式帶來的變化:“Browser-based”的客戶端與“Internetworking”計算方式向服務器端的集中轉化客戶端:業務數據模型與UI分開,更“瘦”業務邏輯在中間層,通過連接池,多線程可以處理多客戶端早期應用編程困難且性能比較差:CGI(C/C++,VB,Perl,PHP等等),ISAPI,NSAPI1.1JavaEE架構產生與發展3、N層計算模式的引入
采用多層計算結構,從邏輯角度看,系統分成客戶端、Web服務器、應用服務器、數據庫服務器等多層;從物理角度看,應用服務器可以視用戶并發數從1到N臺進行擴充,以保證客戶端用戶的響應要求。
1.1JavaEE架構產生與發展從1層到N層,得到的改進:每一層可以被單獨改變,而無需其它層的改變降低了部署與維護的開銷,提高了靈活性、可伸縮性引入瘦客戶端,計算被集中至服務器端,使性能提高成為可能仍然存在的問題:對企業級應用開發人員的要求太高:需要熟悉分布式協議(IIOP、IIOPS、HTTP、HTTPS、CGI、ISAPI、NSAPI),進行一致性事務處理,負載平衡,考慮安全性……1999年12月17日隨Java語言1.2版的發布,SUN公司首次公布了J2EE(Java2PlatformEnterpriseEdition,Java企業版),與J2SE(Java2PlatformStandardEdition,Java標準版)、J2ME(Java2PlatformMicroEdition,Java迷你版)相區別。這是JavaEE的第一個版本。JavaEE是Java2EnterpriseEdition的縮寫,是Java2企業級版本;JavaEE5之前的版本就是J2EE,在2006年5月發布了JavaEE5。2009年12月Sun公司正式發布了JavaEE6標準。2013年6月Oracle公司正式發布了JavaEE7標準。1.1JavaEE架構產生與發展1.2JavaEE6架構圖1-1JavaEE6平臺1.2JavaEE6架構圖1-1JavaEE6平臺EJB容器運行在JavaEE服務器上,負責管理JavaEE應用程序系統中的EJB組件的執行。1.2JavaEE6架構圖1-1JavaEE6平臺Web容器負責管理Web頁面、Servlets和某些EJB組件的執行,同樣也運行在JavaEE服務器上。1.2JavaEE6架構圖1-1JavaEE6平臺Application客戶端容器負責管理Application客戶端組件的執行,運行在客戶機上。1.2JavaEE6架構圖1-1JavaEE6平臺Applet容器負責管理Applet的執行,由Web瀏覽器和運行在客戶端的Java插件共同構成。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebService1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceJDBC(JavaDatabaseConnectivity,Java數據庫連接)是一種用于執行SQL語句的JavaAPI,可為訪問不同的關系型數據庫提供一種統一的途徑。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceJNDI(JavaNameandDirectoryInterface,Java命名和目錄接口)被用于執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源,如DNS、LDAP、本地文件系統或應用服務器中的對象。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceServlet技術規范是JavaEE技術規范中的一個重要組成部分。Servlet是一種獨立于平臺和協議的服務器端的Java應用程序,可以生成動態的Web頁面。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceJSP(JavaServerPages)是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceJSF(JavaServerFaces)是一種用于構建Web應用程序的新標準Java框架,是一種JavaEE表示層的技術,其主旨是為了使Java開發人員能夠快速的開發基于Java的Web應用程序。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceEJB(EnterpriseJavaBean)提供了一個框架來開發和實施分布式商務邏輯,由此顯著地簡化了具有可伸縮性和高度復雜的企業級應用開發。EJB規范定義了EJB組件在何時如何與它們的容器進行交互作用。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceJMS(JavaMessageService)是具有面向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的消息模型,也支持發布/訂閱的消息模型。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceRMI(RemoteMethodInvoke,遠程方法調用)定義了調用遠程對象上的方法的標準接口。它作為一種被EJB使用的更底層的協議,通過使用序列化方式在客戶端和服務器端直接傳遞數據。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceJTA(JavaTransactionArchitecture,Java事務架構)定義了面向分布式事務服務的標準API,可支持事物范圍的界定、事務的提交和回滾。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceJavaMail使應用程序組件可以發送互聯網郵件。JavaMailAPI有兩個部分:一個是應用程序組件用于發送郵件的應用程序級接口,另一個是JavaEESPI級的服務供應商接口。1.3JavaEE6常用技術1. JDBC2. JNDI3. Servlet4. JSP5. JSF6. EJB7. JMS8. RMI9. JTA10. JavaMail11. WebServiceWebService使得在運行在不同的平臺和框架的軟件應用程序之間可以進行互操作,WebService可以以松耦合的方式達成復雜的操作,程序提供簡單的服務,可以實現交互。1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性RESTfulWebServicesJavaAPIRESTfulWeb服務是按照REST架構風格構建的Web服務JAX-RS1.0技術規范定稿于2008年10月,包括了一個參考實現Jersey,JavaEE6包括了這個技術規范的最新版本JAX-RS1.1,這個版本與JavaEE6中的新特性保持一致。1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性JSF使用JavaBean來達到程序邏輯與視圖分離的目的,其作用是在真正的業務邏輯Bean及UI組件之間搭起橋梁,在托管Bean中會調用業務邏輯Bean處理使用者的請求,或者是將業務處理結果放置其中,等待UI組件取出當中的值并顯示結果給使用者。1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性上下文和依賴注入(CDI)是新的JavaEE6規范CDI是JavaEE平臺的Web層和企業層之間的一座橋梁,通過CDI提供的服務,使Web層也支持事務,這樣在Web應用程序中訪問事務資源就更容易了。1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性JavaEE架構中Bean驗證(JSR303)提供了一個標準的驗證框架,在框架中相同的驗證集可以在應用程序的所有層之間共享,因此使驗證變得更簡單了,減少了重復,錯誤和凌亂。1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性通過該接口集成的認證提供者對調用它們的容器發出的網絡消息進行處理,認證提供者對發出的消息進行變換以保證接收容器能對該消息通過其認證,同時為了為了保證接收方返回的回執也能被發送方認證,證提供者除了對進入的消息進行認證以外,還要向發出方返回其身份以建立互信。1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性EJB3.1通過讓本地業務接口成為可選組件簡化了這個方法,沒有本地業務接口的Bean暴露的是無接口視圖,現在你不用編寫獨立的業務接口就可以獲得相同的企業Bean功能。同時添加了單例會話Bean以及會話Bean的異步調用。1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性Servlet3.0作為JavaEE6規范體系中一員異步處理支持新增的標注支持可插性支持1.4JavaEE6特性1. JAX-RS2. 托管Bean3. 上下文和依賴注入4. Bean驗證規范5. JASPIC6. EJB3.17. Servlet新特性8. JSF組件新特性JavaEE6也使用了新的JSF2.0標準。JavaServerFaces技術提供了一個服務端組件框架,簡化了JavaEE應用程序用戶界面的開發,其中最顯著的改進是頁面制作,通過使用標準的JavaServerFaces視圖聲明語言(JavaServerFacesViewDeclarationLanguage,俗稱Facelets)使得創建一個JSF頁面更加容易。1.5JavaEE應用服務器1.WAS2. WebLogic3. JBoss4. Tomcat5. Apusic6. GlassFishWAS是IBMWebSphereApplicationServer的簡稱,它是IBMWebSphere軟件平臺的基礎和面向服務的體系結構的關鍵構件。目前,IBM推出的WAS版本是8.5。1.5JavaEE應用服務器1.WAS2. WebLogic3. JBoss4. Tomcat5. Apusic6. GlassFishWebLogic是美國BEA公司出品的一個基于JavaEE規范的應用服務器軟件,后來BEA被Oracle收購。目前的最新版本為OracleWebLogicServer12c,它是適用于云環境和傳統環境的最佳應用服務器。1.5JavaEE應
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版一年級下冊數學10.兩位數加一位數、整十數的計算方法 習題
- 2025汽車零部件區域代理合同汽車零部件區域代理合同范本
- 建筑防水合作協議合同范本
- 版倉庫保管員雇傭合同
- 2025合同管理與招標投標
- 2025私營企業員工勞動合同模板
- 聯動汽車租賃合同簡約范本
- 2025招商代理服務合同(標準版)
- 2025物流企業貨車租賃合同范本
- 2025經紀人聘用勞動合同
- 影視廣告賞析(哈爾濱師范大學)智慧樹知到期末考試答案2024年
- 培訓機構與家長溝通技巧
- 保安交通安全常識教育
- 2022年10月自考00883學前特殊兒童教育試題及答案含解析
- 群文閱讀《杜甫詩三首》(公開課課件)
- 【海南康養旅游現狀和對策探究11000字(論文)】
- (高清版)DZT 0002-2017 含煤巖系鉆孔巖心描述
- 天然石材更換方案
- 腹腔鏡下子宮肌瘤剔除術護理查房
- 嚴防管制刀具 對自己和他人負責-校園安全教育主題班會課件
- 09J202-1 坡屋面建筑構造(一)-1
評論
0/150
提交評論