J2EE究竟是什么?

          Posted on 2006-03-02 20:59 killvin 閱讀(2703) 評論(0)  編輯  收藏 所屬分類: java
          J2EE(即Java 2 平臺企業(yè)版)是由Sun公司主持推出的一項(xiàng)中間件技術(shù)。從CORBA、IDL到面向消息的系統(tǒng),中間件技術(shù)已經(jīng)走過了很長的一段路程,如今J2EE作為中間件技術(shù)史上的一塊具有決定意義的里程碑,正受到業(yè)界越來越廣泛的重視和采納。

          J2EE,一方面有著一套相當(dāng)龐大的標(biāo)準(zhǔn)體系和數(shù)個(gè)不同版本,另一方面,由于市場上應(yīng)用服務(wù)器品種多樣,各家開發(fā)商使用的術(shù)語又不盡相同,因此,圍繞著J2EE,常常有不少被人誤解的地方。本文將深入探討J2EE究竟是什么,它到底能做什么。
          什么是J2EE?
          在試圖給J2EE 下一個(gè)明確的定義之前,我們首先要了解J2EE 并不簡單地只是一門語言、一種工具或一套服務(wù)。

          · J2EE——Java 2 平臺企業(yè)版
          簡單地說,J2EE是一個(gè)標(biāo)準(zhǔn)中間件體系結(jié)構(gòu),旨在簡化和規(guī)范多層分布式企業(yè)應(yīng)用系統(tǒng)的開發(fā)和部署。J2EE方案的實(shí)施可顯著地提高系統(tǒng)的可移植性、安全性、可伸縮性、負(fù)載平衡和可重用性。

          J2EE技術(shù)出現(xiàn)之前,幾家主要的中間件開發(fā)商的產(chǎn)品各自為陣,彼此之間缺乏兼容性,可移植性差,難以實(shí)現(xiàn)互操作,沒有一個(gè)被普遍認(rèn)可的行業(yè)標(biāo)準(zhǔn)。J2EE的出現(xiàn)標(biāo)志著中間件技術(shù)在經(jīng)歷了多年的不斷摸索和經(jīng)驗(yàn)總結(jié)后,正逐步走向成熟。

          J2EE的核心是一組規(guī)范和指南,定義了一個(gè)使用Java語言開發(fā)多層分布式企業(yè)應(yīng)用系統(tǒng)的標(biāo)準(zhǔn)平臺。開發(fā)人員在這些規(guī)范和指南的基礎(chǔ)上開發(fā)企業(yè)級應(yīng)用,同時(shí)由J2EE供應(yīng)商確保不同的J2EE平臺之間的兼容性。由于基于規(guī)范的各J2EE平臺之間具有良好的兼容性, 因此J2EE應(yīng)用系統(tǒng)可以部署在不同的應(yīng)用服務(wù)器上,無需或只需進(jìn)行少量的代碼修改。


          · J2EE視點(diǎn)
          下面我們將從幾個(gè)不同的側(cè)面來考察J2EE,以期讀者能對J2EE有個(gè)更全面清晰的印象。

          (1)J2EE:多層、分布式中間件語法
          采用多層分布式應(yīng)用模型,J2EE將應(yīng)用開發(fā)劃分為多個(gè)不同的層,并在每一個(gè)層上定義組件。各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在同一個(gè)或不同的服務(wù)器上,共同組成基于組件的多層分布式系統(tǒng)。典型的J2EE四層結(jié)構(gòu)包括客戶層、表示邏輯層(Web層)、商業(yè)邏輯層和企業(yè)信息系統(tǒng)層。

          有了J2EE,分布式系統(tǒng)的開發(fā)變得簡單了,部署的速度也可以加快。J2EE組件的分布與服務(wù)器環(huán)境無關(guān),所有的資源都可通過分布式目錄進(jìn)行訪問。這意味著開發(fā)人員不再需要為組件和資源的分布問題耗費(fèi)精力,從而可以有更多的時(shí)間專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),提高開發(fā)效率。

          (2)J2EE:企業(yè)級應(yīng)用系統(tǒng)開發(fā)平臺
          J2EE本身是一個(gè)標(biāo)準(zhǔn),一個(gè)為企業(yè)分布式應(yīng)用的開發(fā)提供的標(biāo)準(zhǔn)平臺。而J2EE的實(shí)施,則具體表現(xiàn)為諸如BEA Web logic或IBM Web sphere之類的特定Web服務(wù)器產(chǎn)品。利用J2EE應(yīng)用-編程模型開發(fā)的企業(yè)應(yīng)用系統(tǒng),可以部署在不同廠商生產(chǎn)的、但相互兼容的J2EE 應(yīng)用服務(wù)器上。

          目前,市場上基于J2EE的Web服務(wù)器品種繁多,性能特點(diǎn)各有千秋,每家廠商的產(chǎn)品都有精心設(shè)計(jì)的獨(dú)到之處。但與產(chǎn)品個(gè)性無關(guān)的是,所有的J2EE應(yīng)用服務(wù)器都為企業(yè)級應(yīng)用系統(tǒng)的開發(fā)和部署提供了一個(gè)共同的基礎(chǔ)。

          (3)J2EE:電子化應(yīng)用開發(fā)模型
          J2EE應(yīng)用很容易發(fā)布到Web、掌上電腦或移動電話等手持設(shè)備上。換言之,應(yīng)用組件可以很輕松地實(shí)現(xiàn)電子化。J2EE的應(yīng)用-編程模型保證組件在向不同類型的客戶端移植過程中,商業(yè)邏輯和后端系統(tǒng)保持不變。

          此外,J2EE平臺的其他主要優(yōu)點(diǎn)還有:自動負(fù)載平衡、可伸縮、容錯(cuò)和具有故障排除等功能。部署在J2EE環(huán)境中的組件將自動獲得上述特性,而不必增加額外的代碼開銷。

          J2EE所有這些特性對于需要構(gòu)建全天候網(wǎng)絡(luò)門戶的企業(yè)來說顯得尤為重要。

          (4)J2EE:Web應(yīng)用服務(wù)器上廣泛采用的標(biāo)準(zhǔn)
          可以說,J2EE是首個(gè)獲得業(yè)界廣泛認(rèn)可和采納的中間件標(biāo)準(zhǔn)。目前幾乎所有的一流Web應(yīng)用服務(wù)器,如BEA的Web logic、IBM的Web sphere、HP的應(yīng)用服務(wù)器、Sun的iPlanet和Macromedia的Jrun等,都是基于J2EE的。迄今為止,還沒有哪個(gè)其他標(biāo)準(zhǔn)能獲得如此眾多的中間件供應(yīng)商的一致支持。

          而且,有了J2EE,企業(yè)的應(yīng)用開發(fā)對于某個(gè)特定的開發(fā)商或應(yīng)用服務(wù)供應(yīng)商的依賴性更小。應(yīng)用組件只要符合J2EE規(guī)范,完全可以部署在不同的應(yīng)用服務(wù)器上。為了確保不同廠商的J2EE應(yīng)用服務(wù)器的兼容性和一致性,Sun公司發(fā)布了J2EE兼容性測試包。

          · J2EE究竟是什么
          至此,我們可以試著用一句話來概括J2EE,那就是:J2EE是一個(gè)中間件基礎(chǔ)架構(gòu),有了它,開發(fā)者只需要集中精力編寫代碼來表達(dá)企業(yè)應(yīng)用的商業(yè)邏輯和表示邏輯,至于其他系統(tǒng)問題,如內(nèi)存管理,多線程,資源分布和垃圾收集等,都將由J2EE自動完成。

          J2EE如何應(yīng)對挑戰(zhàn)?
          在這一部分里,我們將探討J2EE是如何應(yīng)對企業(yè)開發(fā)過程中所面臨的問題,以及如何為企業(yè)未來發(fā)展之需要提供空間。

          · 獨(dú)立于硬件配置和操作系統(tǒng)
          J2EE運(yùn)行在Java虛擬機(jī)(JVM)上,利用Java本身的跨平臺特性,獨(dú)立于硬件配置和操作系統(tǒng)。Java運(yùn)行環(huán)境(JRE)——JVM的可安裝版本加上其他一些重要組件——幾乎可以運(yùn)行于所有的硬件/OS組合。因此,通過采用Java,J2EE使企業(yè)免于高昂的硬件設(shè)備和操作系統(tǒng)的再投資,保護(hù)已有的IT資源。在很多情況下,J2EE還可以直接運(yùn)行在EIS服務(wù)器環(huán)境中,從而節(jié)約網(wǎng)絡(luò)帶寬,提高性能。


          · 堅(jiān)持面向?qū)ο蟮脑O(shè)計(jì)原則
          作為一門完全面向?qū)ο蟮恼Z言,Java幾乎支持所有的面向?qū)ο蟮某绦蛟O(shè)計(jì)特征。面向?qū)ο蠛突诮M件的設(shè)計(jì)原則構(gòu)成了J2EE應(yīng)用編程模型的基礎(chǔ)。

          J2EE多層結(jié)構(gòu)的每一層都有多種組件模型。因此,開發(fā)人員所要做的就是為應(yīng)用項(xiàng)目選擇適當(dāng)?shù)慕M件模型組合,靈活地開發(fā)和裝配組件,這樣不僅有助于提高應(yīng)用系統(tǒng)的可擴(kuò)展性,還能有效地提高開發(fā)速度,縮短開發(fā)周期。此外,基于J2EE的應(yīng)用還具有結(jié)構(gòu)良好,模塊化,靈活和高度可重用性等優(yōu)點(diǎn)。

          · 靈活性、可移植性和互操作性
          利用Java的跨平臺特性,J2EE組件可以很方便地移植到不同的應(yīng)用服務(wù)器環(huán)境中。這意味著企業(yè)不必再拘泥于單一的開發(fā)平臺。

          J2EE的應(yīng)用系統(tǒng)可以部署在不同的應(yīng)用服務(wù)器上,在全異構(gòu)環(huán)境下,J2EE組件仍可彼此協(xié)同工作。這一特征使得裝配應(yīng)用組件首次獲得空前的互操作性。例如,安裝在IBM Websphere環(huán)境下的EJB,一方面可以直接與Websphere環(huán)境下的CICS直接交互,另一方面也可以通過安裝在別處的BEA Weblogic 服務(wù)器上的EJB進(jìn)行訪問。

          · 輕松的企業(yè)信息系統(tǒng)集成
          J2EE技術(shù)出臺后不久,很快就將JDBC、 JMS和 JCA等一批標(biāo)準(zhǔn)納歸自身體系之下,這大大簡化了企業(yè)信息系統(tǒng)整合的工作量,方便企業(yè)將諸如legacy system(早期投資系統(tǒng)),ERP和數(shù)據(jù)庫等多個(gè)不同的信息系統(tǒng)進(jìn)行無縫集成。

          由于幾乎所有的關(guān)系型數(shù)據(jù)庫系統(tǒng)都支持JDBC,因此只需借助必要的JDBC驅(qū)動程序,J2EE應(yīng)用就可以和所有主流數(shù)據(jù)庫系統(tǒng)進(jìn)行通信。類似的,目前業(yè)界正冒出一批基于Java連接器體系標(biāo)準(zhǔn)的EI適配器,也用于提供各類legacy system和ERP/CRM的無縫集成。

          · 引進(jìn)面向服務(wù)的體系結(jié)構(gòu)
          隨著Web服務(wù)以及SOAP等開放標(biāo)準(zhǔn)的出現(xiàn),企業(yè)異構(gòu)系統(tǒng)之間的互操作性成為可能。J2EE,作為一個(gè)可擴(kuò)展平臺,很自然需要加入Web服務(wù)特性。為此,Sun公司發(fā)布了一整套稱為“JAX包”的API,支持從XML語法分析、XML綁定、SOAP消息發(fā)送、注冊表查尋、XML RPC到XML消息傳遞等所有各種Web服務(wù)需求。

          雖然J2EE平臺的出現(xiàn)早于Web服務(wù)技術(shù),但它的可擴(kuò)展能力使它能很好地適應(yīng)技術(shù)的最新發(fā)展。我們有理由相信,在未來,J2EE將引入更多的技術(shù)進(jìn)步而不會動搖它的核心框架和應(yīng)用-編程模型。

          結(jié)束語
          作為一個(gè)被業(yè)界廣泛采用的中間件標(biāo)準(zhǔn),J2EE是開發(fā)可伸縮的、具有負(fù)載平衡能力的多層分布式跨平臺企業(yè)應(yīng)用的理想平臺。J2EE的首要任務(wù)在于提供一個(gè)標(biāo)準(zhǔn)中間件基礎(chǔ)架構(gòu),由該基礎(chǔ)架構(gòu)負(fù)責(zé)處理企業(yè)開發(fā)中所涉及的所有系統(tǒng)級問題,從而使得開發(fā)人員可以集中精力重視商業(yè)邏輯的設(shè)計(jì)和應(yīng)用的表示,提高開發(fā)工作的效率。

          J2EE有效地滿足了行業(yè)需求,提供獨(dú)立于操作系統(tǒng)的開發(fā)環(huán)境?;贘2EE的應(yīng)用系統(tǒng)靈活且易于移植和重用,可運(yùn)行在不同廠家的Web服務(wù)器上。更為重要的是,J2EE是一個(gè)開放體系,完全有能力適應(yīng)未來技術(shù)的進(jìn)步和發(fā)展。
          主站蜘蛛池模板: 桃园市| 西乌珠穆沁旗| 光山县| 遂宁市| 盖州市| 吉安县| 长宁区| 彩票| 阿拉尔市| 察雅县| 连平县| 连城县| 龙口市| 浠水县| 长岛县| 志丹县| 龙游县| 五峰| 蕲春县| 陇西县| 孟州市| 福海县| 阜阳市| 兴宁市| 集贤县| 太和县| 巨野县| 中山市| 白水县| 礼泉县| 兴城市| 托克托县| 永春县| 翁源县| 夹江县| 昭平县| 张家港市| 宿州市| 达日县| 富宁县| 乐陵市|