- 相關(guān)推薦
Java應(yīng)用服務(wù)器的七種武器
在意識(shí)到軟件架構(gòu)的重要性后,應(yīng)用服務(wù)器必然成為程序員的一件必不可少的"武器"。對(duì)應(yīng)用服務(wù)器技術(shù)的透徹理解可以為程序員提供認(rèn)識(shí)軟件架構(gòu)的更大的空間,這種方式影響著軟件工程學(xué)文化。下面是小編整理的關(guān)于Java應(yīng)用服務(wù)器的七種武器,希望大家認(rèn)真閱讀!
第一種武器:信心——理解應(yīng)用服務(wù)器并不困難
某些技術(shù)創(chuàng)造自己的傳奇的方法是很有趣的。我還記得自己在作為程序員時(shí)處理包含源代碼注釋(例如"不要放入此處"或者稍微文雅一點(diǎn)"此處危險(xiǎn)")的產(chǎn)品。我們感覺(jué)非常復(fù)雜的代碼是不可管理的。應(yīng)用服務(wù)器也成了相似的情況,人們毫無(wú)理由地恐懼的領(lǐng)域。在市場(chǎng)上,很多雇主把人們對(duì)于應(yīng)用服務(wù)器的應(yīng)用知識(shí)作為強(qiáng)制性的工作要求。實(shí)際上應(yīng)用服務(wù)器并不是很復(fù)雜。例如,Sun微系統(tǒng)公司在自己的基于J2EE的應(yīng)用服務(wù)器中包含了大量的文檔信息。你甚至于可以免費(fèi)下載它,并在一個(gè)很基本的Windows XP專(zhuān)業(yè)版計(jì)算機(jī)上運(yùn)行那些優(yōu)秀的示例。
Sun的教程記述了大量的代碼示例,演示了J2EE和該公司的應(yīng)用服務(wù)器產(chǎn)品的優(yōu)勢(shì)和易用性。閱讀這些文檔是有價(jià)值的,因?yàn)樗鼮槲覀兌床爝@種極其重要的軟件技術(shù)的工作情況提供了入口。Sun的競(jìng)爭(zhēng)者還有BEA、IBM和開(kāi)放源代碼應(yīng)用服務(wù)器JBOSS。
BEA甚至于把應(yīng)用服務(wù)器作為它的"透明計(jì)算"的第一步。它具有面向服務(wù)的架構(gòu)的優(yōu)點(diǎn),在面向服務(wù)的架構(gòu)中,我們可以利用舊的和新的應(yīng)用程序來(lái)簡(jiǎn)化不斷增長(zhǎng)的敏捷型組織對(duì)服務(wù)的需求。BEA的觀(guān)點(diǎn)是可能出現(xiàn)一種情況:公司改變它們的IT系統(tǒng)和業(yè)務(wù)流程可以像從一個(gè)應(yīng)用程序中剪切數(shù)據(jù)然后粘貼到另一個(gè)應(yīng)用程序中那樣簡(jiǎn)單。其要點(diǎn)在于這種努力是基于應(yīng)用程序服務(wù)器技術(shù)的。
很明顯,應(yīng)用服務(wù)器是成熟的軟件工業(yè)中的重要元素。它們內(nèi)容豐富,并且依靠集中的應(yīng)用程序管理,允許數(shù)據(jù)的集中存儲(chǔ)。這種技術(shù)是可以使用并且不難理解的。
第二種武器 平臺(tái)性——應(yīng)用服務(wù)器是一種軟件平臺(tái)
應(yīng)用服務(wù)器趨向于減少企業(yè)需要的中間件數(shù)量--因?yàn)樗鼈兪侵虚g件!與包含了防火墻的Windows類(lèi)似,應(yīng)用服務(wù)器可能吸收一些現(xiàn)有的中間件產(chǎn)品所扮演的角色。這是因?yàn)閼?yīng)用服務(wù)器自身就是用于軟件部署以供多個(gè)客戶(hù)端使用的平臺(tái)。在應(yīng)用服務(wù)器中使用的軟件有截然不同的生命周期,包括:
· 開(kāi)發(fā)者建立應(yīng)用程序或組件
· 包裝成可部署的元素
· 部署在應(yīng)用服務(wù)器平臺(tái)上
· 被最終用戶(hù)使用
· 在再次部署中由開(kāi)發(fā)者更新特性或修補(bǔ)
· 應(yīng)用程序達(dá)到使用壽命后期的時(shí)候收回
在很多情況下,它與"正常的"應(yīng)用程序軟件的管理方式是不同的。這一點(diǎn)對(duì)于多層分布式軟件系統(tǒng)尤其突出(在這種情況下客戶(hù)端用戶(hù)與后端服務(wù)器應(yīng)用程序交互操作)。應(yīng)用程序服務(wù)器與多層軟件應(yīng)用程序套件之間最主要的區(qū)別在于,應(yīng)用服務(wù)器提供了大量的軟件包裝支持。換句話(huà)說(shuō),應(yīng)用服務(wù)器為很多領(lǐng)域(例如線(xiàn)程管理、數(shù)據(jù)庫(kù)連接、網(wǎng)絡(luò)訪(fǎng)問(wèn)等等)提供了運(yùn)行時(shí)(runtime)支持。應(yīng)用服務(wù)器中的這些設(shè)施都是自由使用的,但是在傳統(tǒng)的軟件套件中,它們一般要求人們手動(dòng)編寫(xiě)代碼來(lái)實(shí)現(xiàn)。
簡(jiǎn)單的說(shuō),應(yīng)用服務(wù)器有效地分割了主機(jī)平臺(tái)與應(yīng)用程序軟件的業(yè)務(wù)邏輯。通過(guò)提供對(duì)軟件的大量支持,應(yīng)用服務(wù)器技術(shù)允許軟件設(shè)計(jì)者和開(kāi)發(fā)者將精力集中在解決自己特定領(lǐng)域的問(wèn)題上。適當(dāng)?shù)厥褂脩?yīng)用服務(wù)器技術(shù)可以減少軟件開(kāi)發(fā)的費(fèi)用。
在上面的軟件生命周期中,我們把標(biāo)準(zhǔn)的應(yīng)用服務(wù)器工具(例如基于ant的工具)當(dāng)作專(zhuān)用工具來(lái)使用。其它的一些與J2EE應(yīng)用服務(wù)器部分綁定的應(yīng)用程序還包括:
· 管理控制臺(tái)
· 部署工具
· 調(diào)試工具
· J2EE兼容性檢測(cè)程序
管理控制臺(tái)用于管理應(yīng)用服務(wù)器上執(zhí)行的軟件,例如激活/不激活、列舉組件等等。部署工具用于為應(yīng)用服務(wù)器環(huán)境準(zhǔn)備軟件。調(diào)試工具用于輔助解決那些發(fā)生的問(wèn)題。J2EE兼容性檢查對(duì)于新軟件的作者來(lái)說(shuō)是非常重要的,因?yàn)镴2EE組件與標(biāo)準(zhǔn)的Java類(lèi)是不同的。
Sun的文檔表明應(yīng)用服務(wù)器軟件產(chǎn)品的生產(chǎn)事務(wù)是可以在專(zhuān)家之間進(jìn)行分工的。程序員編寫(xiě)和測(cè)試源代碼,接著把這些源代碼傳遞給部署人員。部署人員準(zhǔn)備并包裝軟件供我們?cè)趹?yīng)用服務(wù)器上使用。在這個(gè)時(shí)候,軟件可能被傳遞回程序員以供調(diào)試和集成測(cè)試。另一組專(zhuān)家可以檢測(cè)該軟件的J2EE兼容性。其要點(diǎn)是一個(gè)或多個(gè)稱(chēng)職人員可以執(zhí)行這么多不同的復(fù)雜的事務(wù)。
數(shù)據(jù)集中管理器對(duì)應(yīng)用服務(wù)器下運(yùn)行的應(yīng)用程序擁有更大的控制權(quán)。這意味著企業(yè)中運(yùn)行的軟件可以在同一個(gè)平臺(tái)上集中地管理和部署。在某些方面,應(yīng)用服務(wù)器技術(shù)使我們"后退"到了大型機(jī)時(shí)代的軟件部署情形。反對(duì)的觀(guān)點(diǎn)認(rèn)為這種模型使客戶(hù)端不需要寄宿和執(zhí)行大量的代碼,但是在客戶(hù)端上執(zhí)行比在一個(gè)或多個(gè)應(yīng)用服務(wù)器上執(zhí)行的效率更高;同樣,由于帶寬的迅速擴(kuò)大,帶寬的約束力也逐步縮小。
第三種武器 技術(shù)傳承——應(yīng)用服務(wù)器是基于組件的
J2EE應(yīng)用程序遵循廣泛采用的面向組件的方法。它們被分割成運(yùn)行在客戶(hù)端或服務(wù)器上的應(yīng)用程序?蛻(hù)端寄宿應(yīng)用程序和applets,服務(wù)器寄宿Java小服務(wù)器程序、JavaServer頁(yè)面和企業(yè)級(jí)JavaBean(EJB)技術(shù)。
可以在應(yīng)用服務(wù)器上部署的主要的組件文件類(lèi)型有:Web檔案文件(WAR)和企業(yè)級(jí)jar(EAR)文件?蛻(hù)端應(yīng)用程序都被打包成JAR文件。我們可以把組件準(zhǔn)備好,在Sun應(yīng)用服務(wù)器上部署它,而大多數(shù)準(zhǔn)備工作是在向?qū)У膸椭禄蚴褂霉ぞ?例如部署工具、asant和管理控制臺(tái)等等)來(lái)自動(dòng)地完成的。
應(yīng)用服務(wù)器技術(shù)的面向組件的特性與軟件工程文化的趨勢(shì)是一致的。有趣的是,軟件架構(gòu)的演化在描述給定架構(gòu)的軟件元素的時(shí)候趨向于不使用組件這個(gè)單詞。作為代替的是,在某個(gè)組件不僅僅是運(yùn)行時(shí)實(shí)體的時(shí)候,推薦使用元素來(lái)描述它。應(yīng)用服務(wù)器技術(shù)是否需要更多的架構(gòu)細(xì)節(jié)也是很有意思的。
第四種武器 團(tuán)隊(duì)工作——應(yīng)用服務(wù)器提供了軟件協(xié)同工作的能力
J2EE的根基之一是XML,它日益成為粘合各種應(yīng)用程序的"膠水"。在網(wǎng)絡(luò)管理領(lǐng)域,由于XML允許我們簡(jiǎn)單地定義服務(wù)并把它們轉(zhuǎn)換為軟件,從而顯得光芒耀眼。XML作為改善軟件(特別是寄宿在應(yīng)用服務(wù)器上的軟件)之間協(xié)同工作能力的一種途徑,其重要性還會(huì)不斷增加。
J2EE還提供了對(duì)數(shù)據(jù)庫(kù)事務(wù)的支持。使用ATM取錢(qián)就是事務(wù)的一個(gè)例子。如果在事務(wù)的過(guò)程中出現(xiàn)電力中斷或網(wǎng)絡(luò)故障,你不希望帳號(hào)多次記入貸方,除非你中了彩票(哈哈)。因此,事務(wù)支持是應(yīng)用服務(wù)器基礎(chǔ)構(gòu)造的一個(gè)重要的元素,它在J2EE中占據(jù)著重要的位置。
第五種武器 想象力——應(yīng)用服務(wù)器是高度抽象的
我經(jīng)常在想,軟件從業(yè)人員提升價(jià)值鏈的最好辦法就是使用抽象事務(wù)。我們不是在分散的和有限的事務(wù)上孤獨(dú)地工作,而是找出不太明確的抽象事務(wù)。抽象事務(wù)的例子包括建立存儲(chǔ)備份策略、定義某個(gè)重要的應(yīng)用程序特性的需求等等。
抽象事務(wù)是很大的挑戰(zhàn),它強(qiáng)迫大腦分而治之。應(yīng)用服務(wù)器為運(yùn)行在它上面的軟件使用了一個(gè)相當(dāng)抽象的模型。例如,J2EE允許你的軟件訪(fǎng)問(wèn)后臺(tái)的數(shù)據(jù)庫(kù),用這種方法提供了抽象的支持。它同時(shí)還考慮資源情況,隱藏了特定數(shù)據(jù)源的復(fù)雜性。
第六種武器 獨(dú)立性——J2EE與Sun的應(yīng)用服務(wù)器是獨(dú)立的、截然不同的
這是一個(gè)很基本的觀(guān)點(diǎn):J2EE本質(zhì)上是一個(gè)高級(jí)的API,但是它的確包含了一些在應(yīng)用服務(wù)器環(huán)境之外運(yùn)行部件。其中一個(gè)例子是XSLT,它允許我們把傳統(tǒng)的數(shù)據(jù)轉(zhuǎn)換為XML,反之亦然。
J2EE的重要性還在持續(xù)增長(zhǎng);有些軟件架構(gòu)專(zhuān)家甚至于把J2EE作為21世紀(jì)軟件工程文化首要的改造部分。它與環(huán)球網(wǎng)在90年代改變軟件工程文化的情況類(lèi)似--這也是花費(fèi)精力了解J2EE和相關(guān)技術(shù)的另一個(gè)原因。更深一層的原因是微軟和Sun目前在讓它們的產(chǎn)品協(xié)同工作方面積極地合作。
第七種武器 發(fā)展——應(yīng)用服務(wù)器:軟件未來(lái)之窗
應(yīng)用服務(wù)器對(duì)企業(yè)中的軟件集中執(zhí)行的能力是強(qiáng)大的、引人注目的。它可能使IT業(yè)對(duì)已部署的軟件的控制能力提高了一個(gè)很高的層次。當(dāng)主要的軟件組件基于應(yīng)用服務(wù)器的時(shí)候,我們可以應(yīng)用體系結(jié)構(gòu)方面的品質(zhì)屬性,例如安全性、可修改性和可靠性。
這樣,J2EE和應(yīng)用服務(wù)器技術(shù)無(wú)疑會(huì)成為軟件未來(lái)的橋梁。它還符合軟件架構(gòu)專(zhuān)家和面向服務(wù)的架構(gòu)典型。
【Java應(yīng)用服務(wù)器的七種武器】相關(guān)文章:
Java與Java web的區(qū)別08-10
魂斗羅歸來(lái)武器哪個(gè)好06-27
美語(yǔ)發(fā)音的秘密武器07-04
J2EE應(yīng)用服務(wù)器08-05
戶(hù)外求生必備的13種武器09-22
企業(yè)招聘的“秘密武器”是啥10-09