大話J2EE、J2SE和J2ME
隨著Internet網(wǎng)絡(luò)的迅速發(fā)展,基于互聯(lián)網(wǎng)的企業(yè)應(yīng)用要求軟件平臺(tái)具有開(kāi)放性、分布性和平臺(tái)無(wú)關(guān)性.于是就相繼出現(xiàn)了RPC/COM/CORBA等技術(shù),但這些技術(shù)在實(shí)際應(yīng)用中存在著許多不足和局限.
它們的特定協(xié)議難以通過(guò)防火墻,因而不適于Web上的應(yīng)用開(kāi)發(fā).為了進(jìn)一步開(kāi)發(fā)基于Web的應(yīng)用,出現(xiàn)了Sun公司的Sun ONE(Open Net Environment 開(kāi)發(fā)網(wǎng)絡(luò)環(huán)境)和Microsoft公司的.NET等Web 服務(wù)技術(shù)體系. Sun ONE體系結(jié)構(gòu)以Java語(yǔ)言為核心,包括J2SE/J2EE/J2ME和一系列的標(biāo)準(zhǔn)、技術(shù)及協(xié)議.它包括Sun獨(dú)有的iPlanet軟件系列,其中有在市場(chǎng)上受歡迎的LDAP目錄服務(wù)器軟件,以及Forte for Java――便于在任何環(huán)境下書(shū)寫(xiě)Java 語(yǔ)言的軟件工具.我們很容易就能從網(wǎng)上免費(fèi)獲得和使用包括Java 集成開(kāi)發(fā)環(huán)境、Java數(shù)據(jù)庫(kù)和中間件(Application Server)服務(wù)器等產(chǎn)品,以及它們的源代碼.Sun ONE更接近或能滿足互聯(lián)網(wǎng)在智能化Web服務(wù)方面對(duì)分布性、開(kāi)發(fā)性和平臺(tái)無(wú)關(guān)性的要求.
隨著Java技術(shù)的不斷發(fā)展,它根據(jù)市場(chǎng)進(jìn)一步細(xì)分為:針對(duì)企業(yè)網(wǎng)應(yīng)用的J2EE(Java 2 Enterprise Edition)、針對(duì)普通PC應(yīng)用的J2SE(Java 2 Standard Edition)和針對(duì)嵌入式設(shè)備及消費(fèi)類(lèi)電器的J2ME(Java 2 Micro Edition)三個(gè)版本.本文就Sun ONE的Java核心應(yīng)用――J2SE/J2EE/J2ME作一些介紹.
J2EE技術(shù)應(yīng)用
J2EE是Sun公司推出的一種全新概念的模型,比傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用程序模型更有優(yōu)勢(shì).
J2EE模型 J2EE的應(yīng)用編程模型(J2EE Blueprints)提供了一種用于實(shí)施基于J2EE多層應(yīng)用的文檔和實(shí)例套件的體系模型,簡(jiǎn)化了這項(xiàng)復(fù)雜的工作.它被開(kāi)發(fā)人員用作設(shè)計(jì)和優(yōu)化組件,以便開(kāi)發(fā)人員從策略上對(duì)開(kāi)發(fā)工作進(jìn)行分工. J2EE應(yīng)用編程模型要求開(kāi)發(fā)者將自己的工作分成兩類(lèi):商業(yè)邏輯和表示邏輯,其余則由系統(tǒng)資源自動(dòng)處理,不必為中間層管道進(jìn)行編碼.這樣,開(kāi)發(fā)人員就能將更多的時(shí)間花在商業(yè)邏輯和表示邏輯上.對(duì)重視縮短項(xiàng)目周期的公司來(lái)說(shuō),這種轉(zhuǎn)變深受歡迎.
J2EE平臺(tái) J2EE平臺(tái)是運(yùn)行J2EE應(yīng)用的標(biāo)準(zhǔn)環(huán)境,由J2EE部署規(guī)范(一套所有J2EE平臺(tái)產(chǎn)品都必須支持的標(biāo)準(zhǔn))、IETF標(biāo)準(zhǔn)集和CORBA標(biāo)準(zhǔn)組成.***的J2EE平臺(tái)還添加了JavaBean組件模型.開(kāi)發(fā)人員可以利用JavaBean組件模型來(lái)自定義Java類(lèi)實(shí)例,并可通過(guò)已定義的事件訪問(wèn)Java類(lèi). J2EE支持EJB,因此開(kāi)發(fā)人員可以執(zhí)行多用戶(hù)交易功能.當(dāng)在J2EE服務(wù)器上運(yùn)行時(shí),Enterprise JavaBeans將應(yīng)用邏輯分成可再利用和可擴(kuò)展的代碼段.Enterprise JavaBeans并不是新特征,但是通過(guò)定義標(biāo)準(zhǔn)客戶(hù)端和服務(wù)API,J2EE增強(qiáng)了它的能力和可移植性. EJB在服務(wù)器的一個(gè)容器內(nèi)運(yùn)行,提供所有典型的中間層服務(wù),如事務(wù)管理、安全、遠(yuǎn)程客戶(hù)連接、生存周期管理和數(shù)據(jù)庫(kù)連接緩沖.為了讓事務(wù)系統(tǒng)在存在EJB容器的情況下運(yùn)行,開(kāi)發(fā)人員只需在部署描述文件中定義Beans的事務(wù)屬性即可. J2EE通過(guò)定義一組標(biāo)準(zhǔn)的結(jié)構(gòu)來(lái)實(shí)現(xiàn)它的優(yōu)勢(shì),例如: 1.J2EE Application Programming Model,是一種用于開(kāi)發(fā)多層次、瘦型客戶(hù)用戶(hù)程序的標(biāo)準(zhǔn)設(shè)計(jì)模型; 2. J2EE Platform,是一個(gè)標(biāo)準(zhǔn)的平臺(tái),用來(lái)整合J2EE的應(yīng)用程序,并指定一系列的接口和方法; 3. J2EE Compatibility Test Suite,是一套兼容測(cè)試組件,用來(lái)檢測(cè)產(chǎn)品是否同J2EE平臺(tái)兼容; 4.J2EE Reference Implementation,用來(lái)示范J2EE的能力.
J2EE服務(wù)器 Sun的J2EE服務(wù)器通過(guò)Java 命名和目錄接口(JNDI)、認(rèn)證、HTTP及與Enterprise JavaBeans兼容的能力,提供命名和目錄服務(wù).JNDI是Java平臺(tái)的一種標(biāo)準(zhǔn)擴(kuò)展版,向企業(yè)內(nèi)的命名和目錄服務(wù)提供具有Java功能的,帶有統(tǒng)一接口的應(yīng)用,包括LDAP. J2EE服務(wù)器還利用了Java Servlet技術(shù).Java Servlet可以看作是運(yùn)行在服務(wù)器上的一個(gè)小程序,它向開(kāi)發(fā)人員提供以組件為基礎(chǔ)創(chuàng)建基于Web應(yīng)用的、獨(dú)立于平臺(tái)的方法.它不像利用CGI那樣具有性能局限.Java Servlet是一種擴(kuò)展Web服務(wù)器功能的簡(jiǎn)單技巧.由于它是用Java編寫(xiě)的,因而能夠訪問(wèn)整個(gè)Java API庫(kù),也包括用于訪問(wèn)企業(yè)數(shù)據(jù)庫(kù)的JDBC API. JSP是Java Servlet的一種擴(kuò)展.Java Servlet提供開(kāi)發(fā)和顯示來(lái)自服務(wù)器的交互式Web頁(yè).如今JSP又有了進(jìn)一步的改進(jìn),它使得創(chuàng)建和支持靜態(tài)模板和動(dòng)態(tài)內(nèi)容相結(jié)合的HTML和XML頁(yè)面更加容易.
J2EE 平臺(tái)是Java技術(shù)企業(yè)級(jí)應(yīng)用的***平臺(tái),它可以讓程序員迅速、快捷地開(kāi)發(fā)和分布企業(yè)級(jí)應(yīng)應(yīng)用程序.以下便是它的相關(guān)技術(shù):
1.Enterprise JavaBeans Architecture,企業(yè)級(jí)JavaBeans 定義了一個(gè)應(yīng)用程序接口.它可以使程序員迅速開(kāi)發(fā)、發(fā)布和管理跨平臺(tái)的、基于組件的企業(yè)級(jí)應(yīng)用程序.
2.JavaServer Pages,JSP 技術(shù)提供了一種簡(jiǎn)單、快速的方法來(lái)創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè).通過(guò)它,可以快速地開(kāi)發(fā)基于Web的應(yīng)用程序,并且這些應(yīng)用程序都是與平臺(tái)無(wú)關(guān)的.因?yàn)镴SP與ASP很相似,所以熟悉ASP的人學(xué)習(xí)它就很容易了.
3.Java Servlet,提供了應(yīng)用程序接口.通過(guò)它可以簡(jiǎn)單快速地開(kāi)發(fā)并擴(kuò)展服務(wù)器功能.就發(fā)展趨勢(shì)來(lái)看,它將來(lái)有可能取代CGI.
4.J2EE Connector,提供了一種標(biāo)準(zhǔn)結(jié)構(gòu)來(lái)聯(lián)接不同的企業(yè)信息平臺(tái).
5.Java Naming and Directory Interface(JNDI),在Java 平臺(tái)與商業(yè)信息之間,JNDI提供了統(tǒng)一、無(wú)縫的標(biāo)準(zhǔn)化連接.通過(guò)使用JNDI,程序員可以在企業(yè)多命名與目錄服務(wù)之間傳送Java 應(yīng)用程序.
6.Java Interface Definition Language(JIDL),通過(guò)使用CORBA,可以提供協(xié)同工作的能力.JIDL包括一個(gè)IDL-to-Java 編譯器和支持IIOP(Internet Inter-Orb Protocol)的ORB.
7.JDBC,幾乎是為所有的數(shù)據(jù)庫(kù)提供了統(tǒng)一的接口,同時(shí)可以創(chuàng)建高級(jí)工具和接口.
8.Java Message Service(JMS),它幾乎規(guī)范了所有企業(yè)級(jí)消息服務(wù),如可靠查詢(xún)、發(fā)布消息、訂閱雜志等各種各樣的PUSS/PULL技術(shù)的應(yīng)用,并且為它們提供了一個(gè)標(biāo)準(zhǔn)接口.
9.Java Transaction API(JTA),為分布式系統(tǒng)中可處理的應(yīng)用程序規(guī)定了一個(gè)高級(jí)的管理規(guī)范.
10.JavaMail,JavaMail應(yīng)用程序接口提供了一整套模擬郵件系統(tǒng)的抽象類(lèi).通過(guò)JavaMail,可以創(chuàng)建郵件或消息應(yīng)用程序.
11.RMI-IIOP,使用它就可以只用Java 技術(shù)和Java RMI接口開(kāi)發(fā)客戶(hù)機(jī)與服務(wù)器的遠(yuǎn)程接口.
J2EE使用固定的文件格式捆綁某個(gè)模塊:用.ear文件捆綁J2EE應(yīng)用程序;用.jar捆綁Enterprise Bean.例如,一個(gè).ear文件包含一個(gè).xml文件作為其分布描述,還包含一個(gè)或多個(gè).jar和.war文件;一個(gè).jar文件除了包含它的分布描述外,還包含了作為Enterprise bean的.class文件.
J2EE應(yīng)用程序的開(kāi)發(fā)階段分為四步:1.Enterprise Bean創(chuàng)建;2.Web Component創(chuàng)建;3.J2EE應(yīng)用程序裝配;4.J2EE應(yīng)用程序分布.以下是J2EE兼容產(chǎn)品部分列表: BEA WebLogic Server 6.0、Borland App Server、HP Bluestone Total-e-Server、IBM WebSphere Application Server、IONA iPortal Application Server、iPlanet Application Server、Macromedia JRun Server、Oracle 9i Application Server、SilverStrean Application Server、Sybase EAServer、TogetherSoft ControlCenter、Java 2 SDK Enterprise Edition.
J2ME技術(shù)的應(yīng)用
J2ME(Java 2 Platform Micro Edition)是為無(wú)線電子市場(chǎng)所設(shè)計(jì)的,包括JVM規(guī)范和API規(guī)范.其API規(guī)范是基于J2SE(Java 2 Standard Editon)的.J2ME 定義了一套合適的類(lèi)庫(kù)和虛擬機(jī)技術(shù).這些技術(shù)可以使用戶(hù)、服務(wù)提供商和設(shè)備制造商通過(guò)物理(有線)連接或無(wú)線連接,按照需要隨時(shí)使用豐富的應(yīng)用程序. J2ME又被稱(chēng)為Java 2 微型版,被使用在各種各樣的消費(fèi)電子產(chǎn)品上,例如智能卡、手機(jī)、PDA、電視機(jī)頂盒等方面.當(dāng)然了,J2ME也提供了Java語(yǔ)言一貫的特性,那就是跨平臺(tái)和安全網(wǎng)絡(luò)傳輸.它使用了一系列更小的包,而且Javax.microedition.io 為J2SE包的子集.J2ME可以升級(jí)到J2SE和J2EE. 在J2ME出現(xiàn)之前,我們更多接觸到的是Java卡(Java Card)、嵌入式Java(Embedded Java)和實(shí)時(shí)Java(Real Time Java)等.其中Java卡是針對(duì)SIM卡、智能卡等設(shè)備而定制的最小Java子集,比J2ME還要小,移植性也不強(qiáng).嵌入式Java則針對(duì)特殊用戶(hù)自行配置Java類(lèi)庫(kù)和VM(Virtual Machine,虛擬機(jī)).它對(duì)資源需求極小,可運(yùn)行在無(wú)圖形用戶(hù)接口和網(wǎng)絡(luò)的設(shè)備上,可以添加用戶(hù)專(zhuān)用的API,但是它就無(wú)法移植.實(shí)時(shí)Java是由IBM領(lǐng)導(dǎo)的實(shí)時(shí)定制Java專(zhuān)家組負(fù)責(zé)實(shí)施的,現(xiàn)在還在不斷完善中.不過(guò),從嚴(yán)格意義上來(lái)說(shuō),它們都不是真正的J2ME.
【編輯推薦】