【菜鳥學Java】2:初識J2EE

連江偉發表於2015-10-31

        自從軟考之後,就沒再寫過關於Java的部落格了,雖然學習Java有段時間了,也正在做著Java開發的專案,但是對於Java技術的總結還開始,真的是不應該啊,今天準備開始寫Java技術方面的部落格,發現無從下手,不知從哪開始,於是就先對J2EE來個入門總結吧。


        眾所周知,Java2平臺包括標準版(J2SE)、企業版(J2EE)和微縮版(J2ME)三個版本。今天我們要討論的是Java 2 Platform Enterprise Edition(Java2平臺企業版)。


        首先我們必須明確幾個問題,便於我們對J2EE更好的認識和理解。


        1J2EE是一套不同於傳統應用開發的技術架構,包含許多元件,主要作用是簡化並且規範應用系統的開發和部署,進而提高可移植性、安全性與複用性。注意,它是一套技術架構!


        2J2EE的核心內容為一組技術規範和指南,其中所包含的各類元件、服務架構及技術層次,均有共同的標準及規範,讓各種遵循J2EE架構的不同平臺之間,能夠很好實現相容。注意,它的核心是一組規範,劇透一下,這些規範大致分為13個。


        3J2EE元件和我們通常意義的Java類的區別是:J2EE元件被轉配在一個J2EE應用中,具有固定的格式並遵守J2EE規範,由J2EE伺服器對其進行管理。比如J2EE規範這樣定義J2EE元件:客戶端應用程式和Applet是執行在客戶端的元件;Java Service和Java Server Pages是執行在伺服器端的Web元件;Enterprise Java Bean是執行在伺服器端的業務元件。


        以上三點是我們在學習J2EE的時候,個人認為需要好好理解的。關於J2EE的體系結構,請看下圖:


        我們可以看到,整個J2EE架構無非就是由若干J2EE元件組合起來的,這樣的架構設計很好的體現了可維護性,可移植性以及可複用性等優勢。


        J2EE技術的核心——13個技術規範

        1.JDBC(JavaDatabase Connectivity)

        JDBC是以統一方式訪問資料庫的API.它提供了獨立於平臺的資料庫訪問,也就是說,有了JDBC API,我們就不必為訪問Oracle資料庫專門寫一個程式,為訪問Sybase資料庫又專門寫一個程式等等,只需要用JDBC API寫一個程式就夠了,它可以向相應資料庫傳送SQL呼叫.JDBC是Java應用程式與各種不同資料庫之間進行對話的方法的機制.簡單地說,它做了三件事:與資料庫建立連線--傳送運算元據庫的語句--處理結果.

 

        2.JNDI(JavaName and Directory Interface)

        JNDI是一組在Java應用中訪問命名和目錄服務的API.(命名服務將名稱和物件聯絡起來,我們即可用名稱訪問物件.JNDI允許把名稱同Java物件或資源關聯起來,建立邏輯關聯,而不必知道物件或資源的物理ID.)JNDI為開發人員提供了查詢和訪問各種命名和目錄服務的通用,統一的介面,可訪問的目錄及服務,利用JNDI的命名與服務功能可滿足企業級API對命名與服務的訪問,諸如EJB,JMS,JDBC 2.0以及IIOP上的RMI通過JNDI來使用CORBA的命名服務.

JNDI和JDBC類似,都是構建在抽象層上.因為:它提供了標準的獨立於命名系統的API,這些API構建在命名系統之上.這一層有助於將應用與實際資料來源分離,因此不管是訪問的LDAP,RMI還是DNS.也就是說,JNDI獨立於目錄服務的具體實現,只要有目錄的服務提供介面或驅動,就可以使用目錄.

 

        3.EJB(EnterpriseJavaBean)

        J2EE將業務邏輯從客戶端軟體中抽取出來,封裝在一個元件中。這個元件執行在一個獨立的伺服器上,客戶端軟體通過網路呼叫元件提供的服務以實現業務邏輯,而客戶端軟體的功能只是負責傳送呼叫請求和顯示處理結果。

在J2EE中,這個執行在一個獨立的伺服器上,並封裝了業務邏輯的元件就是EJB元件。其實就是把原來放到客戶端實現的程式碼放到伺服器端,並依靠RMI進行通訊。

 

        4.RMI(Remote MethodInvoke)

        是一組使用者開發分散式應用程式的API.

        這一協議呼叫遠端物件上的方法使用了序列化的方式在客戶端和伺服器之間傳遞資料,使得原先的程式在同一作業系統的方法呼叫,變成了不同作業系統之間程式的方法呼叫,即RMI機制實現了程式元件在不同作業系統之間的通訊.它是一種被EJB使用的更底層的協議.

        RMI/JNI: RMI可利用標準Java本機方法介面與現有的和原有的系統相連線

        RMI/JDBC: RMI利用標準JDBC包與現有的關聯式資料庫連線

        這就實現了與非Java語言的現有伺服器進行通訊.

 

        5.JavaIDL/CORBA(Common Object Request BrokerArchitecture)

        Java介面定義語言/公用物件請求代理程式體系結構

        在JavaIDL的支援下,開發人員可以將Java和CORBA整合在一起。他們可以建立Java物件並使之可在CORBAORB中展開,或者他們還可以建立Java類並作為和其它ORB一起展開的CORBA物件的客戶。後一種方法提供了另外一種途徑,通過它Java可以被用於將新的應用和舊的系統相整合。

        CORBA是物件導向標準的第一步,有了這個標準,軟體的實現與工作環境對使用者和開發者不再重要,可以把精力更多地放在本地系統的實現與優化上。

 

        6.JSP(Java Server Pages)

        JSP頁面=HTML+Java,其根本是一個簡化的Servlet設計.

        伺服器在頁面被客戶端請求後,對這些Java程式碼進行處理,然後將執行結果連同原HTML程式碼生成的新HTML頁面返回給客戶端瀏覽器.

 

        7.Java Servlet

        Servlet是一種小型的Java程式,擴充套件了Web伺服器的功能,作為一種伺服器的應用,當被請求時開始執行.Servlet提供的功能大多和JSP類似,不過,JSP通常是大多數的HTML程式碼中嵌入少量的Java程式碼,而Servlet全部由Java寫成並生成HTML.

 

        8.XML

        XML是一個用來定義其它標記語言的語言,可用作資料共享。XML的發展和Java是相互獨立的。不過,它和Java具有的相同目標就是跨平臺。通過將Java與XML結合,我們可以得到一個完全與平臺無關的解決方案。

 

        9.JMS(JavaMessage Service)

        它是一種與廠商無關的API,用來訪問訊息收發系統訊息.它類似於JDBC.JDBC是可以用來訪問不同關聯式資料庫的API,而JMS則提供同樣與廠商無關的訪問訊息收發服務的方法,這樣就可以通過訊息收發服務實現從一個JMS客戶機向另一個JMS客戶機傳送訊息,所需要的是廠商支援JMS.換句話說,JMS是Java平臺上有關面向訊息中介軟體的技術規範.

 

        10.JTA(JavaTransaction API)

        定義了一種標準API,應用程式由此可以訪問各種事務監控.它允許應用程式執行分散式事務處理--在兩個或多個網路計算機資源上訪問並且更新資料.JTA和JTS為J2EE 平臺提供了分散式事務服務.

        TA事務比JDBC事務更強大,一個JTA事務可以有多個參與者,而一個JDBC事務則被限定在一個單一的資料庫連線.

 

        11.JTS(JavaTransaction Service)

        JTS是CORBA OTS事務監控器的一個基本實現。JTS指定了一個事務管理器的實現(Transaction Manager),這個管理器在一個高階別上支援JTA規範,並且在一個低階別上實現了OMGOTS規範的Java對映。一個JTS事務管理器為應用伺服器、資源管理器、standalone應用和通訊資源管理器提供事務服務。

 

        12.JavaMail

        用於訪問郵件伺服器的API,提供了一套郵件伺服器的抽象類.

 

        13.JAF(JavaBeansActivation Framework)

        JAF是一個專用的資料處理框架,它用於封裝資料,併為應用程式提供訪問和運算元據的介面.也就是說,JAF讓Java程式知道怎麼對一個資料來源進行檢視,編輯,列印等.

JavaMail利用JAF來處理MIME編碼的郵件附件.

 

        小結一下:

        J2EE的學習才剛剛開始,對於理論的學習還要繼續,同時在理論學習的基礎上嘗試實踐,這樣才會深刻的理解J2EE技術規範的那些東西是什麼,有什麼作用,他們是如何為我們的系統提供服務的,進而學習J2EE企業級開發的各種前沿技術,想想都有點小激動呢。

相關文章