成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

EJB技術(shù)的歷史

開發(fā) 后端
本文介紹EJB技術(shù)的歷史和優(yōu)點,以及使用EJB組件及認(rèn)識這些組件的好處并不需要掌握這些相關(guān)技術(shù)的知識。

本文概述 Enterprise JavaBeans (EJB)技術(shù),旨在讓讀者快速理解基本 概念。本文講述 EJB技術(shù)的歷史。為了簡潔明了有選擇地講述EJB技術(shù)的一些關(guān)鍵要素。請注意,雖然 EJB 組件依賴于一些基礎(chǔ) 的 Java服務(wù)(如 Java Transaction Service),但使用EJB組件及認(rèn)識這些組件的好處并不需要掌握這些相關(guān)技術(shù)的知識。

Enterprise JavaBeans 這一名稱利用了 Java bean ― 這種可移植、可重用 的 Java 軟件組件的聲望。Enterprise JavaBeans 技術(shù)把 Java 組件的概念從客戶機域擴展到了 服務(wù)器域:這是 Java 技術(shù)成長過程中有重大意義的一步,它使 Java 技術(shù)發(fā)展成為一種強健的、可伸縮的環(huán)境,能夠支持以任務(wù)為關(guān)鍵的企業(yè)信息系統(tǒng)。

服務(wù)器上的 Java 應(yīng)用程序

Java 編程語言最初在 Web 開發(fā)人員中獲得好評的一個原因是,它支持稱 為 applet 的可下載 Java 程序。對 Applet 的支持以 Applet 類的形式內(nèi)置到 了 1.0 版的 Java Development Kit (JDK) 中。按照 1.0 版的時間框架,Java 開發(fā)是以 applet 和 應(yīng)用程序作為中心的。基于 JDK 1.0 版的 Java 讀物都是從 applet 和應(yīng)用程序的角度來描述 Java 編程的:

“Java 程序由更多的類定義中的某一個組成,每個類定義均已編譯成它自已 的 Java 虛擬機對象代碼的 .class 文件。這些類之一必須定義一個 叫做 main() 的方法,程序就是從這個方法開始運行的。想調(diào)用一個 Java 程序,需要運行 Java 解釋器 java,并指定包含 main() 方法的類的名稱。請注 意 Java applet 并不是一個應(yīng)用程序 ― 它是一個由已在運行的 Java 應(yīng)用 程序(如 Web 瀏覽器或 applet 查看器)裝入并運行的 Java 類。”(見 Flanagan 所著 的 Java in a Nutshell)

Java 應(yīng)用程序可以在服務(wù)器上運行,但是不管是在客戶機-服務(wù)器環(huán)境下,還是在基于 Web 的環(huán)境 下,JDK 中都沒有提供讓 Java 應(yīng)用程序?qū)S糜诜?wù)器機器的接口或包。認(rèn)識到 Java 在 Web 環(huán)境下作為一種服務(wù)器語言的潛力,Sun Microsystems 編寫了 Java Servlet 規(guī)范。servlet 在許多方面 與 applet 相似,它是專門為在 Web 服務(wù)器機器上運行而設(shè)計的 Java 程序:

“servlet 是由容器管理的 Web 組件,可產(chǎn)生動態(tài)內(nèi)容。servlet 是 一種小型的、與平臺無關(guān)的 Java 類,被編譯成體系結(jié)構(gòu)中立的字節(jié)代碼,這種代碼可以動態(tài)地加載到 一個 web 服務(wù)器上,并由此 web 服務(wù)器運行。servlet 通過一種 由 servlet 容器實現(xiàn)的請求-響應(yīng)模型與 Web 客戶機進行交互。這種請求-響應(yīng)模型建立在超文本傳輸協(xié)議 (HTTP) 行為的基礎(chǔ)之上。”(見 JavaSoft 的“Java Servlet API Specification”)

在一臺 Web 服務(wù)器控制下,在多臺服務(wù)器上運行若干小型用戶程序,這種想法并不新鮮 ― 一段時間 以來,公共網(wǎng)關(guān)接口 (CGI) 程序(常被稱為 CGI 腳本)一直起著這種作用,并推動了 Web 的普 及。但 Java servlet 可以以更高的效率和可移植性來實現(xiàn)這一目的,因而 可望最終會取代 CGI 程序。為 servlet 提供運行時環(huán)境的 軟件(通常被稱為 servlet 引擎)可以添加到現(xiàn)有的、本身并不支持 Java 可執(zhí)行程序 的 Web 服務(wù)器上。

Java servlet 的出現(xiàn),為應(yīng)用程序員使用 Java 來創(chuàng)建 Web 應(yīng)用程序開辟了新的途徑。但是,僅有 servlet 還不能為真正的企業(yè)計算提供完整的模型。CGI 應(yīng)用程序本身往往不是完整的應(yīng)用程序,在處理接收自 Web 瀏覽器上用戶的信息請求時,CGI 只是整個處理過程中的一個中間步驟。例如,CGI 應(yīng)用程序的一種常見用途是訪問數(shù)據(jù)庫。將它用于這種任務(wù)時,CGI 程序提供一種方法,將用戶的數(shù)據(jù)請求連接到能滿足這種請求的企業(yè)數(shù)據(jù)庫。CGI 程序常常充當(dāng)一種中間軟件,從 Web 瀏覽器接收請求,決定必須調(diào)用哪些計算資源來滿足這些請求,并向瀏覽器發(fā)回響應(yīng)。Java servlet 與 CGI 程序一樣,最適合充當(dāng)連接前端 Web 請求與后端 數(shù)據(jù)資源的中間層組件。

三層體系結(jié)構(gòu)

Web 編程向服務(wù)器端 Java 應(yīng)用程序的演化,也帶來了體系結(jié)構(gòu)的演化,使它脫離了常規(guī)的客戶機-服務(wù)器兩層模型,而向一種三層方法發(fā)展。兩層模型當(dāng)時曾經(jīng)具有創(chuàng)新意義,因為它將一些計算任務(wù)從主處理器上卸載到靈巧的客戶機。常規(guī)的基于 LAN 的數(shù)據(jù)庫應(yīng)用程序就是一個例子,其中數(shù)據(jù)庫管理器服務(wù)器軟件駐留在一個專用的服務(wù)器機器上,而用戶則通過他們的工作站上的客戶機代碼來訪問數(shù)據(jù)庫。隨著客戶機-服務(wù)器模型成長到能付諸使用,就出現(xiàn)了對服務(wù)器可伸縮性和對客戶機代碼大小和復(fù)雜性的關(guān)注。于是提出了一種三層的體系結(jié)構(gòu),以避免在兩層模型中已察覺到的弱點,使 Web 能成為一個計算平臺:

“許多人...斷言,傳統(tǒng)的客戶機/服務(wù)器兩層體系結(jié)構(gòu)不會有好的可伸縮性,因為用戶連接和數(shù)據(jù)訪問的數(shù)量無法預(yù)測,而且在一些系統(tǒng)管理上也存在問題。為處理兩層體系結(jié)構(gòu)的限制,許多開發(fā)集體都在轉(zhuǎn)向三層體系結(jié)構(gòu)。這種體系結(jié)構(gòu)大致可以定義為:客戶機層上的表示層、中間的服務(wù)器和后端的某種數(shù)據(jù)庫。這種設(shè)想的目的就是緩和客戶機或數(shù)據(jù)庫服務(wù)器上的代碼膨脹,集中管理業(yè)務(wù)邏輯,更靈活地使用數(shù)據(jù)庫,而不僅是使用所存儲的過程和觸發(fā)器。”(見 Kim 的“Looking for a 3-Tier App Builder?”)

一個三層結(jié)構(gòu)模型通常被想像成有一個 Web 瀏覽器作為客戶層。Web 瀏覽器由于有可能成為一種真正的通用客戶機,使它從觀念上取代了兩層結(jié)構(gòu)的“胖客戶機”。如果瀏覽器作為 Web 應(yīng)用程序體系結(jié)構(gòu)的標(biāo)準(zhǔn)瘦客戶機獲得認(rèn)可,那么以前駐留在兩層模型的胖客戶機中的功能會怎么樣呢?現(xiàn)在,應(yīng)用程序?qū)S玫墓δ懿⒉灰浦不胤?wù)器(例如數(shù)據(jù)庫管理器),而是有意將它駐留在一個新的中間層上。中間層支持應(yīng)用程序服務(wù)器軟件,這種軟件是中間件的一種形式,它處于第一層上瘦客戶機的最小功能和第三層上服務(wù)器端業(yè)務(wù)系統(tǒng)的豐富功能之間。由于三層體系結(jié)構(gòu)與 Web 處理模型有密切關(guān)系,所以中間層應(yīng)用程序服務(wù)器常被視 為 Web 服務(wù)器的一種功能擴展。現(xiàn)有的 Web 應(yīng)用程序利用 CGI 程序,將來自 Web 瀏覽器的用戶請求傳送 到不基于 Web 的業(yè)務(wù)系統(tǒng),并向瀏覽器返回響應(yīng),就是三層模型的一種實現(xiàn)。這些應(yīng)用程序逐漸向 servlet 技術(shù)的轉(zhuǎn)移說明三層模型正在增強。

JavaBeans 組件

JavaBeans 規(guī)范將“組件軟件”的概念引入到 Java 編程的領(lǐng)域。組件是自含的、可重用 的軟件單元;而 JavaBeans 組件,則可以使用可視的應(yīng)用程序開發(fā)工具,可視地將它們 編寫到 Java 程序中。JavaBeans 規(guī)范為 Java 開發(fā)人員提供了一種“組件化”其 Java 類的方法:

Bean 是一些 Java 類,可在一個可視的構(gòu)建器工具中操作它們,并且可以將它們一起編寫到應(yīng)用程序中。任何具有某種特性和事件接口約定的 Java 類都可以是一個 Bean。(見 JavaSoft,“Using the Beans Development Kit 1.0”)

如果軟件重用是一個好主意,那么是否應(yīng)該讓每一個 Java 類都成為 Java bean 呢?如 果 Java 類滿足某些準(zhǔn)則,它們就適于充當(dāng) bean 的角色:

在開發(fā)任何新軟件之前,都值得考慮是否用 JavaBean 的形式來開發(fā)它。如果軟件模塊要既能夠可視地操作,又能夠定制以達到某些效果,則這種軟件模塊就可能適于做成一個 JavaBean。為幫助您確定要開發(fā)的軟件是否應(yīng)該是一個 JavaBean,假定它應(yīng)該是 用 Java 編寫的,請向您自已提出以下問題,并相應(yīng)地作出決定:

是否打算讓它可重用?或者,它會是可重用的嗎?

是否希望將它與其他可重用的 Java 組件一起使用?

是否預(yù)計會在 IDE 工具中使用它?

如果上述問題的答案都是肯定的,則它應(yīng)該作為 JavaBean 來開 發(fā)。(見 developerWorks 的“JavaBeans Guidelines”)

JavaBean 概念是為了在 Java 編程環(huán)境中支持可重用的組件,它是一種一般性的設(shè)計方法,適用于客戶機或服務(wù)器機器上運行的 Java 程序。由于對可視的構(gòu)建器工具的強調(diào),也由于許多 Java bean 都是圖形用戶界面 (GUI) 組件,所以 JavaBean 組件可能被視為一種客戶端技術(shù)。但是,并不要求 Java bean 都是可視的,并且它們也可以用于服務(wù)器環(huán)境中。

編碼為 Java bean 的 Java 類通常具有以下特征:

使用設(shè)計模式。這些模式就是方法和接口的編碼約定。

支持可視的軟件開發(fā)工具。類必須將變量(稱為屬性)、方法和事件展示出來。

可以定制。定制包括能支持缺省的屬性編輯器,或者提供單一的定制規(guī)則。定制使開發(fā)人員得以在不更改源代碼的情況下更改 bean 的行為。

支持自省 (introspection)。這指的是將屬性、方法和事件公開給其他類,可以通過設(shè)計模式或通過創(chuàng)建 BeanInfo 類 來完成這種自省。

是持久的。這就允許在一個可視構(gòu)建器中定制一個 bean,然后以其定制后的狀態(tài)加以保存。

Java 2 Platform, Enterprise Edition

Sun Microsystems 發(fā)起了一項稱為 Java 2 Platform, Enterprise Edition (J2EE) 的技術(shù) 創(chuàng)新,旨在將 Java 平臺的范圍擴展到大規(guī)模服務(wù)器環(huán)境:

“1997 年 4 月 12 日,Sun 宣布了一項為企業(yè)環(huán)境 開發(fā) Java 平臺的創(chuàng)新成果。使 用開放式的 Java Community Process,Sun 促進了一組標(biāo)準(zhǔn)的 Java 擴展的開發(fā),稱 為 Enterprise Java API。這些應(yīng)用程序編程接口 (API) 為各種各樣的中間件的實現(xiàn)提供了不依賴 供應(yīng)商的編程 接口。Enterprise Java API 的要點是 Enterprise JavaBeans API,后者為 Java 應(yīng)用程序服務(wù)器定義了一個服務(wù)器端組件模型,以及一個不依賴供應(yīng)商的編程接口。”(見 Thomas 的“Java 2 Platform, Enterprise Edition: Ensuring Consistency, Portability, and Interoperability”)

J2EE 為 Enterprise JavaBeans 技術(shù)提供了工作環(huán)境。事實上,Sun 把若干項軟件技術(shù)都設(shè)想為這樣的構(gòu)件塊,它們將使大型企業(yè)能夠把以任務(wù)為關(guān)鍵的業(yè)務(wù)系統(tǒng)移植到 Java 環(huán)境 中,而 Enterprise JavaBeans 技術(shù)不過是這些技術(shù)之一。EJB 組件是按它們自己的規(guī)范定義 的,但 EJB技術(shù)并不是一項獨立的技術(shù)。它建立在 其他 Java 技術(shù)之上,這些技術(shù)由 Sun 和其他 IT 公司聯(lián)合規(guī)定,它們一起提供了這個框架的內(nèi)容,該框架就稱為 Java 2 Platform, Enterprise Edition。

J2EE 中包括以下技術(shù):
◆Enterprise JavaBeans (EJB) 技術(shù)
◆Java Interface Definition Language (IDL)
◆Java Message Service (JMS) API
◆Java Naming and Directory Interface (JNDI)
◆Java Remote Method Invocation (RMI) 和 Object Serialization
◆Java Servlet API
◆Java Transaction API (JTA)
◆Java Transaction Service (JTS)
◆JavaServer Pages (JSP) 技術(shù)
◆JDBC 數(shù)據(jù)庫訪問 API

參與到這個企業(yè) Java 框架中,并不意味著每項技術(shù)都依賴于所有其他技術(shù)。單獨的規(guī)范文檔指出每項技術(shù)的相關(guān)性。例如,Enterprise JavaBeans 規(guī)范 1.0 發(fā)行版就指明了在定位各個組件時與 JNDI 的相關(guān)性,以及在編程中啟動和停止事務(wù)處理時與 JTA 的相關(guān)性。

【編輯推薦】

  1. 設(shè)計模式在EJB中的應(yīng)用
  2. POJO與Spring和EJB 3.0的對比
  3. JavaBeans、EJB和POJO詳解
  4. J2EE web service開發(fā)(五)把ejb發(fā)布為web服務(wù)
  5. 快速開發(fā)EJB和J2EE Web應(yīng)用
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

2009-06-11 16:53:09

什么是EJBEJB

2009-06-12 11:06:35

EJB技術(shù)

2009-06-25 16:47:30

EJB技術(shù)

2011-03-04 10:03:45

EJB數(shù)據(jù)庫應(yīng)用

2009-06-26 16:01:39

EJB組織開發(fā)EJB容器EJB

2009-06-11 16:25:44

EJB2.0EJB

2009-06-12 11:19:03

EJB技術(shù)商務(wù)預(yù)訂系統(tǒng)

2011-06-03 13:15:01

JAVAEJB

2009-06-11 15:26:05

EJB組件EJB容器

2009-06-12 12:46:59

EJB3.0

2009-06-26 15:58:28

EJB

2009-06-26 14:54:18

Spring支持EJB

2009-06-12 11:46:39

JavaBeanEJB

2009-06-11 14:25:17

EJBJava

2022-05-15 23:34:08

區(qū)塊鏈去中心化安全

2022-08-29 10:57:09

語音識蘋果頻率

2009-06-11 16:01:17

EJB容器

2009-06-17 13:58:00

JMeter測試EJB

2009-06-04 17:33:08

EJB 3.1EJB 3.0

2009-08-25 08:52:23

SPARC歷史UltraSPARC
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 99视频在线| 欧美成人精品一区 | 国产激情一区二区三区 | www.日本三级 | 人人九九 | 国产99久久精品一区二区永久免费 | 久久久久久成人 | 日韩在线观看中文字幕 | 色婷婷久久久久swag精品 | 久久精品黄色 | 天天干天天玩天天操 | 精品一区二区三区视频在线观看 | 欧美高清免费 | 黄一区二区三区 | 精品久久久久久久 | 亚洲精品日韩欧美 | 亚洲 91| 欧美成人免费在线视频 | 欧美性生活免费 | 精品国产伦一区二区三区观看方式 | 综合久久99 | 欧美精品99 | 91在线观看免费视频 | 亚洲欧美自拍偷拍视频 | 久久久国产一区二区三区 | 欧美二区在线 | 国产视频一区二区三区四区五区 | 国产在线视频一区二区 | 91极品视频| 亚洲国产偷 | 一区二区在线看 | www.黄色网 | 国产亚洲高清视频 | 日韩另类视频 | 天堂av在线影院 | 久久久久国产精品一区三寸 | 91在线网站 | 国产精品久久久久久久一区二区 | 黄色网址在线免费观看 | 欧美精品一区二区免费视频 | 成人二区三区 |