欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

J2EE入門2

系統 1718 0

---轉 http://www.ibm.com/developerworks/cn/java/j2ee/

J2EE 的四層模型

J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據他們所在的層分布在不同的機器上。事實上,sun設計J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統模式中,客戶端擔當了過多的角色而顯得臃腫,在這種模式中,第一次部署的時候比較容易,但難于升級或改進,可伸展性也不理想,而且經常基于某種專有的協議?D?D通常是某種數據庫協議。它使得重用業務邏輯和界面邏輯非常困難。現在J2EE 的多層企業級應用模型將兩層化模型中的不同層面切分成許多層。一個多層化應用能夠為不同的每種服務提供一個獨立的層,以下是 J2EE 典型的四層結構:

  • 運行在客戶端機器上的客戶層組件
  • 運行在J2EE服務器上的Web層組件
  • 運行在J2EE服務器上的業務邏輯層組件
  • 運行在EIS服務器上的企業信息系統(Enterprise information system)層軟件


J2EE應用程序組件
J2EE應用程序是由組件構成的.J2EE組件是具有獨立功能的軟件單元 ,它們通過相關的類和文件組裝成J2EE應用程序,并與其他組件交互。J2EE說明書中定義了以下的J2EE組件:

  • 應用客戶端程序和applets是客戶層組件.
  • Java Servlet和JavaServer Pages(JSP)是web層組件.
  • Enterprise JavaBeans(EJB)是業務層組件.

客戶層組件
J2EE應用程序可以是基于web方式的,也可以是基于傳統方式的.

web 層組件
J2EE web層組件可以是JSP 頁面或Servlets.按照J2EE規范,靜態的HTML頁面和Applets不算是web層組件。

正如下圖所示的客戶層那樣,web層可能包含某些 JavaBean 對象來處理用戶輸入,并把輸入發送給運行在業務層上的enterprise bean 來進行處理。


業務層組件
業務層代碼的邏輯用來滿足銀行,零售,金融等特殊商務領域的需要,由運行在業務層上的enterprise bean 進行處理. 下圖表明了一個enterprise bean 是如何從客戶端程序接收數據,進行處理(如果必要的話), 并發送到EIS 層儲存的,這個過程也可以逆向進行。

有三種企業級的bean: 會話(session) beans, 實體(entity) beans, 和消息驅動(message-driven) beans. 會話bean 表示與客戶端程序的臨時交互. 當客戶端程序執行完后, 會話bean 和相關數據就會消失. 相反, 實體bean 表示數據庫的表中一行永久的記錄. 當客戶端程序中止或服務器關閉時, 就會有潛在的服務保證實體bean 的數據得以保存.消息驅動 bean 結合了會話bean 和 JMS的消息監聽器的特性, 允許一個業務層組件異步接收JMS 消息.


企業信息系統層
企業信息系統層處理企業信息系統軟件包括企業基礎建設系統例如企業資源計劃 (ERP), 大型機事務處理, 數據庫系統,和其它的遺留信息系統. 例如,J2EE 應用組件可能為了數據庫連接需要訪問企業信息系統

J2EE 的結構

這種基于組件,具有平臺無關性的J2EE 結構使得J2EE 程序的編寫十分簡單,因為業務邏輯被封裝成可復用的組件,并且J2EE 服務器以容器的形式為所有的組件類型提供后臺服務. 因為你不用自己開發這種服務, 所以你可以集中精力解決手頭的業務問題.

容器和服務
容器設置定制了J2EE服務器所提供得內在支持,包括安全,事務管理,JNDI(Java Naming and Directory Interface)尋址,遠程連接等服務,以下列出最重要的幾種服務:

  • J2EE安全(Security)模型可以讓你配置 web 組件或enterprise bean ,這樣只有被授權的用戶才能訪問系統資源. 每一客戶屬于一個特別的角色,而每個角色只允許激活特定的方法。你應在enterprise bean的布置描述中聲明角色和可被激活的方法。由于這種聲明性的方法,你不必編寫加強安全性的規則。
  • J2EE 事務管理(Transaction Management)模型讓你指定組成一個事務中所有方法間的關系,這樣一個事務中的所有方法被當成一個單一的單元. 當客戶端激活一個enterprise bean中的方法,容器介入一管理事務。因有容器管理事務,在enterprise bean中不必對事務的邊界進行編碼。要求控制分布式事務的代碼會非常復雜。你只需在布置描述文件中聲明enterprise bean的事務屬性,而不用編寫并調試復雜的代碼。容器將讀此文件并為你處理此enterprise bean的事務。
  • JNDI 尋址(JNDI Lookup)服務向企業內的多重名字和目錄服務提供了一個統一的接口,這樣應用程序組件可以訪問名字和目錄服務.
  • J2EE遠程連接(Remote Client Connectivity)模型管理客戶端和enterprise bean間的低層交互. 當一個enterprise bean創建后, 一個客戶端可以調用它的方法就象它和客戶端位于同一虛擬機上一樣.
  • 生存周期管理(Life Cycle Management)模型管理enterprise bean的創建和移除,一個enterprise bean在其生存周期中將會歷經幾種狀態。容器創建enterprise bean,并在可用實例池與活動狀態中移動他,而最終將其從容器中移除。即使可以調用enterprise bean的create及remove方法,容器也將會在后臺執行這些任務。
  • 數據庫連接池(Database Connection Pooling)模型是一個有價值的資源。獲取數據庫連接是一項耗時的工作,而且連接數非常有限。容器通過管理連接池來緩和這些問題。enterprise bean可從池中迅速獲取連接。在bean釋放連接之可為其他bean使用。

容器類型
J2EE應用組件可以安裝部署到以下幾種容器中去:

  • EJB 容器管理所有J2EE 應用程序中企業級bean 的執行. enterprise bean 和它們的容器運行在J2EE 服務器上.
  • Web 容器管理所有J2EE 應用程序中JSP頁面和Servlet組件的執行. Web 組件和它們的容器運行在J2EE 服務器上.
  • 應用程序客戶端容器管理所有J2EE應用程序中應用程序客戶端組件的執行. 應用程序客戶端和它們的容器運行在J2EE 服務器上.
  • Applet 容器是運行在客戶端機器上的web瀏覽器和 Java 插件的結合.







回頁首

J2EE的核心API與組件

J2EE平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發基于Web的多層應用提供了功能支持,下面對J2EE中的13種技術規范進行簡單的描述(限于篇幅,這里只能進行簡單的描述):

  1. JDBC(Java Database Connectivity): JDBC API為訪問不同的數據庫提供了一種統一的途徑,象ODBC一樣,JDBC對開發者屏蔽了一些細節問題,另外,JDCB對數據庫的訪問也具有平臺無關性。
  2. JNDI(Java Name and Directory Interface): JNDI API被用于執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統,或應用服務器中的對象。
  3. EJB(Enterprise JavaBean): J2EE技術之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發和實施分布式商務邏輯,由此很顯著地簡化了具有可伸縮性和高度復雜的企業級應用的開發。EJB規范定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩沖池以及容錯性。但這里值得注意的是,EJB并不是實現J2EE的唯一途徑。正是由于J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。
  4. RMI(Remote Method Invoke): 正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用了序列化方式在客戶端和服務器端傳遞數據。RMI是一種被EJB使用的更底層的協議。
  5. Java IDL/CORBA: 在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象并使之可在CORBA ORB中展開, 或者他們還可以創建Java類并作為和其它ORB一起展開的CORBA對象的客戶。后一種方法提供了另外一種途徑,通過它Java可以被用于將你的新的應用和舊的系統相集成。
  6. JSP(Java Server Pages): JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端所請求以后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。
  7. Java Servlet: Servlet是一種小型的Java程序,它擴展了Web服務器的功能。作為一種服務器端的應用,當被請求時開始執行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成并且生成HTML。
  8. XML(Extensible Markup Language): XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平臺獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平臺獨立性的解決方案。
  9. JMS(Java Message Service): MS是用于和面向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的域,有支持發布/訂閱(publish/subscribe)類型的域,并且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應用與舊的后臺系統相集成。
  10. JTA(Java Transaction Architecture): JTA定義了一種標準的API,應用系統由此可以訪問各種事務監控。
  11. JTS(Java Transaction Service): JTS是CORBA OTS事務監控的基本的實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API (JTA)規范,并且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用服務器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。
  12. JavaMail: JavaMail是用于存取郵件服務器的API,它提供了一套郵件服務器的抽象類。不僅支持SMTP服務器,也支持IMAP服務器。
  13. JTA(JavaBeans Activation Framework): JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節流可以被轉換成Java對象,或者轉換自Java對象。大多數應用都可以不需要直接使用JAF。

J2EE入門2


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲狠狠丁香婷婷综合久久久 | 国产自啪啪 | 欧美成熟丰满老妇xxxx | 中文字幕在线观看av | 天天干天天干天天干天天干天天干 | 欧美一级毛片高清免费观看 | 欧美一级高潮片免费的 | 福利免费在线观看 | 久久精品免费视频观看 | 国产乱码精品一区二区三区五月婷 | 噜噜噜动态图超猛烈 | 国产一级做a爰片在线 | 性欧美一区 | 日本夜爽爽一区二区三区 | 亚洲欧美日韩激情在线观看 | 超碰人人人| 无码又黄又爽又舒服的A片 综合久久网 | 色橹橹欧美在线观看视频高清免费 | 国产福利不卡视频在免费播放 | 色悠悠久久久久 | 岛国av在线 | 九九有点热 | 日韩一级视频 | 九色传媒 | 激情视频区 | 一级毛片免费播放视频 | 日韩黄色一级大片 | 加勒比精品久久一区二区三区 | 日韩小视频 | 一区二区三区四区国产精品视频 | av在线第一页 | 中文字幕一区二区在线观看 | 国产欧美日韩不卡一区二区三区 | 欧美视频在线一区二区三区 | 成人免费网视频 | 夜夜骚 | 欧美在线一区二区三区欧美 | 日韩一页 | 日本无码欧美激情在线视频 | 天天色综合5 | 亚洲视频一区二区 |