版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
信息系統(tǒng)開(kāi)發(fā)技術(shù)概述主要內(nèi)容1.統(tǒng)一建模語(yǔ)言UML2.COM+組件技術(shù)3.CORBA4.EJB與J2EE5..NET平臺(tái)1.統(tǒng)一建模語(yǔ)言UML1.1UML產(chǎn)生背景面向?qū)ο蠼UZ(yǔ)言出現(xiàn)于70年代中期。從1989年到1994年,其數(shù)量從不到十種增加到了五十多種。90年代中,一批新方法出現(xiàn)了,其中最引人注目的是Booch1993、OOSE和OMT-2等。Booch是面向?qū)ο蠓椒ㄗ钤绲某珜?dǎo)者之一,Booch1993比較適合于系統(tǒng)的設(shè)計(jì)和構(gòu)造。Rumbaugh等人提出了面向?qū)ο蟮慕<夹g(shù)(OMT)方法,用對(duì)象模型、動(dòng)態(tài)模型、功能模型和用例模型,共同完成對(duì)整個(gè)系統(tǒng)的建模,所定義的概念和符號(hào)可用于軟件開(kāi)發(fā)的分析、設(shè)計(jì)和實(shí)現(xiàn)的全過(guò)程,軟件開(kāi)發(fā)人員不必在開(kāi)發(fā)過(guò)程的不同階段進(jìn)行概念和符號(hào)的轉(zhuǎn)換。OMT-2特別適用于分析和描述以數(shù)據(jù)為中心的信息系統(tǒng)。Jacobson于1994年提出了OOSE方法,其最大特點(diǎn)是面向用例(Use-Case),并在用例的描述中引入了外部角色的概念。OOSE比較適合支持商業(yè)工程和需求分析。統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,UML)不僅統(tǒng)一了Booch、Rumbaugh和Jacobson的表示方法,而且對(duì)其作了進(jìn)一步的發(fā)展,并最終統(tǒng)一為大眾所接受的標(biāo)準(zhǔn)建模語(yǔ)言。“統(tǒng)一建模語(yǔ)言(UML)是一種用于軟件系統(tǒng)制品規(guī)約的、可視化的構(gòu)造及建檔語(yǔ)言,也可用于業(yè)務(wù)建模以及其它非軟件系統(tǒng)。”UML是一種通用的可視化建模語(yǔ)言,用于對(duì)軟件進(jìn)行描述、可視化處理、構(gòu)造和建立軟件系統(tǒng)的文檔。UML適用于各種軟件開(kāi)發(fā)方法、軟件生命周期的各個(gè)階段、各種應(yīng)用領(lǐng)域以及各種開(kāi)發(fā)工具UML能夠描述系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為:靜態(tài)結(jié)構(gòu)定義了系統(tǒng)中重要對(duì)象的屬性和操作以及這些對(duì)象之間的相互關(guān)系;動(dòng)態(tài)行為定義了對(duì)象的時(shí)間特性和對(duì)象為完成目標(biāo)任務(wù)而相互進(jìn)行通信的機(jī)制。UML不是一種程序設(shè)計(jì)語(yǔ)言,但我們可以用代碼生成器將UML模型轉(zhuǎn)換為多種程序設(shè)計(jì)語(yǔ)言代碼,或使用反向生成器工具將程序源代碼轉(zhuǎn)換為UML模型。1.2UML語(yǔ)言概述1.2.1UML語(yǔ)言的特征不是一種可視化的程序設(shè)計(jì)語(yǔ)言,而是一種可視化的建模語(yǔ)言;是一種建模語(yǔ)言規(guī)格說(shuō)明,是面向?qū)ο蠓治雠c設(shè)計(jì)的一種標(biāo)準(zhǔn)表示;不是過(guò)程,也不是方法,但允許任何一種過(guò)程和方法使用它。1.2.2UML語(yǔ)言的目標(biāo)易于使用,表達(dá)能力強(qiáng),進(jìn)行可視化建模;與具體的實(shí)現(xiàn)無(wú)關(guān),可應(yīng)用于任何語(yǔ)言平臺(tái)和工具平臺(tái);與具體的過(guò)程無(wú)關(guān),可應(yīng)用于任何軟件開(kāi)發(fā)過(guò)程;簡(jiǎn)單并且可擴(kuò)展,具有擴(kuò)展和專有化機(jī)制;強(qiáng)調(diào)在軟件開(kāi)發(fā)中,對(duì)架構(gòu)、框架、模式和組件的重用;與最好的軟件工程實(shí)踐經(jīng)驗(yàn)集成;可升級(jí),具有廣闊的適用性和可用性;有利于面向?qū)ο蠊ぞ叩氖袌?chǎng)增長(zhǎng)。1.2.3UML組成由視圖view,圖diagram,模型元素modelelement和通用機(jī)制generalmechanism等幾個(gè)部分組成。視圖是表達(dá)系統(tǒng)的某一方面特征的UML建模元素的子集,由多個(gè)圖構(gòu)成,是系統(tǒng)的抽象表示;圖是模型元素集的圖形表示;模型元素代表面向?qū)ο笾械念?、?duì)象、消息和關(guān)系等概念,是構(gòu)成圖的最基本的常用概念。通用機(jī)制用于表示其它信息,比如注釋、模型元素的語(yǔ)義等。。1.3UML語(yǔ)語(yǔ)義義UML語(yǔ)語(yǔ)義義描描述述基基于于UML的的精精確確元元模模型型((MetaModel))定定義義。。元元模模型型為為UML的的所所有有元元素素在在語(yǔ)語(yǔ)法法和和語(yǔ)語(yǔ)義義上上提提供供了了簡(jiǎn)簡(jiǎn)單單、、一一致致、、通通用用的的定定義義性性說(shuō)說(shuō)明明,,使使開(kāi)開(kāi)發(fā)發(fā)者者能能在在語(yǔ)語(yǔ)義義上上取取得得一一致致,,消消除除了了因因人人而而異異的的最最佳佳表表達(dá)達(dá)方方法法所所造造成成的的影影響響。。此此外外UML還還支支持持對(duì)對(duì)元元模模型型的的擴(kuò)擴(kuò)展展定定義義。。1.4UML表示法法UML表表示法定定義UML符號(hào)號(hào)的表示示法,為為開(kāi)發(fā)者者或開(kāi)發(fā)發(fā)工具使使用這些些圖形符符號(hào)和文文本語(yǔ)法法為系統(tǒng)統(tǒng)建模提提供了標(biāo)標(biāo)準(zhǔn)。這這些圖形形符號(hào)和和文字所所表達(dá)的的是應(yīng)用用級(jí)的模模型,在在語(yǔ)義上上它是UML元元模型的的實(shí)例。。統(tǒng)一建模模語(yǔ)言UML的的重要內(nèi)內(nèi)容可以以由五類類圖(共共9種圖圖形)來(lái)來(lái)定義。。用用例圖((UseCasediagram)用例視圖圖是被稱稱為參與與者的外外部用戶戶所能觀觀察到的的系統(tǒng)功功能的模模型圖。。用例是是外部可可見(jiàn)的一一個(gè)系統(tǒng)統(tǒng)功能單單元,這這些功能能由系統(tǒng)統(tǒng)單元所所提供,,并通過(guò)過(guò)一系列列系統(tǒng)單單元與一一個(gè)或多多個(gè)參與與者之間間交換的的消息所所表達(dá)。。用例也可可以有不不同的層層次。用用例可以以用其他他更簡(jiǎn)單單的用例例進(jìn)行說(shuō)說(shuō)明。在在交互視視圖中,,用例作作為交互互圖中的的一次協(xié)協(xié)作來(lái)實(shí)實(shí)現(xiàn)。靜靜態(tài)態(tài)圖圖((Staticdiagram))靜態(tài)態(tài)圖圖對(duì)對(duì)應(yīng)應(yīng)用用領(lǐng)領(lǐng)域域中中的的概概念念以以及及與與系系統(tǒng)統(tǒng)實(shí)實(shí)現(xiàn)現(xiàn)有有關(guān)關(guān)的的內(nèi)內(nèi)部部概概念念建建模模,,包包括括類類圖圖、、對(duì)對(duì)象象圖圖和和包包圖圖。。類圖圖描描述述系系統(tǒng)統(tǒng)中中類類的的靜靜態(tài)態(tài)結(jié)結(jié)構(gòu)構(gòu)。。對(duì)象象圖圖是是類類圖圖的的實(shí)實(shí)例例,,幾幾乎乎使使用用與與類類圖圖完完全全相相同同的的標(biāo)標(biāo)識(shí)識(shí)。。他他們們的的不不同同點(diǎn)點(diǎn)在在于于對(duì)對(duì)象象圖圖顯顯示示類類的的多多個(gè)個(gè)對(duì)對(duì)象象實(shí)實(shí)例例,,而而不不是是實(shí)實(shí)際際的的類類。。包圖圖由由包包或或類類組組成成,,表表示示包包與與包包之之間間的的關(guān)關(guān)系系。。包包是是操操作作模模型型內(nèi)內(nèi)容容、、存存取取控控制制和和配配置置控控制制的的基基本本單單元元。。行行為為圖圖((Behaviordiagram))行為圖包括狀狀態(tài)圖和活動(dòng)動(dòng)圖,描述系系統(tǒng)的動(dòng)態(tài)模模型和組成對(duì)對(duì)象間的交互互關(guān)系。狀態(tài)圖描述類類的對(duì)象所有有可能的狀態(tài)態(tài)以及事件發(fā)發(fā)生時(shí)狀態(tài)的的轉(zhuǎn)移條件。。狀態(tài)圖可用用于描述用戶戶接口、設(shè)備備控制器和其其他具有反饋饋的子系統(tǒng)。?;顒?dòng)圖描述滿滿足用例要求求所要進(jìn)行的的活動(dòng)以及活活動(dòng)間的約束束關(guān)系,有利利于識(shí)別并行行活動(dòng)?;顒?dòng)動(dòng)圖有助于理理解系統(tǒng)高層層活動(dòng)的執(zhí)行行行為,而不不涉及建立協(xié)協(xié)作圖所必須須的消息傳送送細(xì)節(jié)。交交互圖(Interactivediagram)交互圖描述了了執(zhí)行系統(tǒng)功功能的各個(gè)角角色之間相互互傳遞消息的的順序關(guān)系,,包括順序圖圖和合作圖。。順序圖顯示對(duì)對(duì)象之間的動(dòng)動(dòng)態(tài)合作關(guān)系系,它強(qiáng)調(diào)對(duì)對(duì)象之間傳送送消息的時(shí)間間順序,同時(shí)時(shí)顯示對(duì)象之之間的交互關(guān)關(guān)系。順序圖圖可以用來(lái)進(jìn)進(jìn)行一個(gè)場(chǎng)景景說(shuō)明,即一一個(gè)事務(wù)的歷歷史過(guò)程。協(xié)作圖描述對(duì)對(duì)象間的協(xié)作作關(guān)系,協(xié)作作圖跟順序圖圖相似,顯示示對(duì)象間的動(dòng)動(dòng)態(tài)合作關(guān)系系,但它們的的側(cè)重點(diǎn)不同同。實(shí)實(shí)現(xiàn)圖(Implementationdiagram)實(shí)現(xiàn)圖包括構(gòu)構(gòu)件圖和配置置圖,顯示系系統(tǒng)實(shí)現(xiàn)時(shí)的的一些特性,,包括源代碼碼的靜態(tài)結(jié)構(gòu)構(gòu)和運(yùn)行時(shí)刻刻的實(shí)現(xiàn)結(jié)構(gòu)構(gòu)。構(gòu)件圖描述代代碼部件的物物理結(jié)構(gòu)及各各部件之間的的依賴關(guān)系,,有助于分析析和理解部件件之間的相互互影響程度。。配置圖圖定義義系統(tǒng)統(tǒng)硬件件的物物理拓拓?fù)浣Y(jié)結(jié)構(gòu)以以及在在此結(jié)結(jié)構(gòu)上上執(zhí)行行的軟軟件。。它可可以顯顯示計(jì)計(jì)算結(jié)結(jié)點(diǎn)的的拓?fù)鋼浣Y(jié)構(gòu)構(gòu)和通通信路路徑、、結(jié)點(diǎn)點(diǎn)上運(yùn)運(yùn)行的的軟件件構(gòu)件件、軟軟件構(gòu)構(gòu)件包包含的的邏輯輯單元元(對(duì)對(duì)象、、類)等。。1.5UML的應(yīng)應(yīng)用領(lǐng)領(lǐng)域UML的目目標(biāo)是是以面面向?qū)?duì)象圖圖的方方式來(lái)來(lái)描述述任何何類型型的系系統(tǒng),,具有有很寬寬的應(yīng)應(yīng)用領(lǐng)領(lǐng)域。。其中中最常常用的的是建建立軟軟件系系統(tǒng)的的模型型,但但它同同樣可可以用用于描描述非非軟件件領(lǐng)域域的系系統(tǒng),,如機(jī)機(jī)械系系統(tǒng)、、企業(yè)業(yè)機(jī)構(gòu)構(gòu)或業(yè)業(yè)務(wù)過(guò)過(guò)程,,以及及處理理復(fù)雜雜數(shù)據(jù)據(jù)的信信息系系統(tǒng)、、具有有實(shí)時(shí)時(shí)要求求的工工業(yè)系系統(tǒng)或或工業(yè)業(yè)過(guò)程程等。。總之,,UML是是一個(gè)個(gè)通用用的標(biāo)標(biāo)準(zhǔn)建建模語(yǔ)語(yǔ)言,,可以以對(duì)任任何具具有靜靜態(tài)結(jié)結(jié)構(gòu)和和動(dòng)態(tài)態(tài)行為為的系系統(tǒng)進(jìn)進(jìn)行建建模。。此外外,UML適用用于系系統(tǒng)開(kāi)開(kāi)發(fā)過(guò)過(guò)程中中從需需求規(guī)規(guī)格描描述到到系統(tǒng)統(tǒng)完成成后測(cè)測(cè)試的的不同同階段段。2.COM+組組件技技術(shù)所謂組組件,,其實(shí)實(shí)就是是一種種可部部署軟軟件的的代碼碼包,,其中中包括括某些些可執(zhí)執(zhí)行模模塊。。組件件單獨(dú)獨(dú)開(kāi)發(fā)發(fā)并作作為軟軟件單單元使使用,,它具具有明明確的的接口口,軟軟件就就是通通過(guò)這這些接接口調(diào)調(diào)用組組件所所能提提供的的服務(wù)務(wù),多多種組組件可可以聯(lián)聯(lián)合起起來(lái)構(gòu)構(gòu)成更更大型型的組組件乃乃至直直接建建立整整個(gè)系系統(tǒng)。。實(shí)現(xiàn)組組件并并不一一定需需要采采用面面向?qū)?duì)象語(yǔ)語(yǔ)言。。支持持組件件的技技術(shù)包包括COM+、、CORBA和和EJB等等。2.1COM的產(chǎn)產(chǎn)生Microsoft出品品了COM(ComponentObjectModel)),COM僅僅僅只是是一個(gè)個(gè)規(guī)范范。不不管組組件用用什么么語(yǔ)言言寫(xiě)成成,只只要符符合這這個(gè)COM規(guī)范范,就就能被被用任任何一一種語(yǔ)語(yǔ)言寫(xiě)寫(xiě)成的的客戶戶程序序調(diào)用用。Microsoft推推出出Windows98和和Windows2000后后,,整整個(gè)個(gè)操操作作系系統(tǒng)統(tǒng)的的核核心心都都圍圍繞繞著著COM來(lái)來(lái)建建立立。。我我們們可可以以把把Windows系系統(tǒng)統(tǒng)看看作作是是一一系系列列的的COM接接口口,,在在需需要要是是可可以以調(diào)調(diào)用用這這些些接接口口。。COM服服務(wù)務(wù)程程序序有有三三種種形形式式::第一一種種是是駐駐留留在在本本地地機(jī)機(jī)器器上上以以DLL形形式式提提供供,,該該服服務(wù)務(wù)程程序序被被調(diào)調(diào)用用時(shí)時(shí),,嵌嵌入入到到調(diào)調(diào)用用程程序序的的線線程程中中運(yùn)運(yùn)行行,,是是最最常常用用的的形形式式;;第二種是駐留留在本地機(jī)器器上以EXE形式提供,,該服務(wù)程序序被調(diào)用時(shí)將將占用獨(dú)立的的線程運(yùn)行;;第三種駐留在在遠(yuǎn)端機(jī)器上上以EXE形形式提供,服服務(wù)程序通過(guò)過(guò)網(wǎng)絡(luò)被調(diào)用用,它在遠(yuǎn)端端機(jī)器上運(yùn)行行,結(jié)果通過(guò)過(guò)網(wǎng)絡(luò)返回調(diào)調(diào)用者。COM的缺點(diǎn)點(diǎn)就是大家常常常提到的““DLL地獄獄”。這個(gè)問(wèn)問(wèn)題在一個(gè)DLL要被一一個(gè)新版本的的DLL所取取代時(shí)引發(fā)。。開(kāi)發(fā)者不得得不通過(guò)關(guān)閉閉所有的客戶戶應(yīng)用程序的的方法來(lái)達(dá)到到清除所用對(duì)對(duì)這個(gè)組件的的引用的目的的。有時(shí)所有有的方法都還還起不了作用用,那你只好好重新啟動(dòng)服服務(wù)器后才能能替換掉老的的DLL。2.2DCOM即DistributedCOM,與COM的不同點(diǎn)::COM有兩種種存在形式((DLL、EXE),但但DCOM必必須是可執(zhí)行行程序,因?yàn)闉镈COM不不可能在客戶戶程序的內(nèi)存存空間運(yùn)行,,所以不能是是動(dòng)態(tài)連接庫(kù)庫(kù)。COM(DLL形式)可可以不用RPC通信,而而DCOM必必須使用RPC遠(yuǎn)程調(diào)用用。COM(DLL形式)與與客戶共同存存在于同一內(nèi)內(nèi)存空間,調(diào)調(diào)用速度快。。COM(DLL形式)的的安全性不高高,客戶程序序可以造成服服務(wù)COM發(fā)發(fā)生錯(cuò)誤,DCOM安全全性高。COM程序配配置簡(jiǎn)單,DCOM配置置較復(fù)雜。2.3COM+的產(chǎn)生生為了讓企業(yè)級(jí)級(jí)的應(yīng)用程序序能使用上COM,它必必需要有以下下的特定的能能力。驗(yàn)證能力對(duì)象池(ObjectPooling)事務(wù)處理支持分布式架架構(gòu)為了使開(kāi)發(fā)者者不必去為他他們的組件添添加這些能力力,微軟公司司出品了DCOM和MTS(MicrosoftTransactionServer,微軟事務(wù)務(wù)服務(wù)器)。。MTS允許相相關(guān)的作業(yè)單單元被當(dāng)作一一個(gè)事務(wù)來(lái)對(duì)對(duì)待,這意味味著如果所有有的作業(yè)單元元被成功地完完成,整個(gè)事事務(wù)就被當(dāng)作作成功地完成成,反之如果果有一個(gè)單元元未成功完成成,整個(gè)事務(wù)務(wù)將被重新輪輪回。在客戶請(qǐng)求對(duì)對(duì)象和釋放對(duì)對(duì)象后,MTS仍保存著著這個(gè)對(duì)象,,所以當(dāng)另一一個(gè)客戶請(qǐng)求求同一個(gè)組件件的時(shí)候,MTS就將保保存著的對(duì)象象交給它。通通過(guò)這種方式式,MTS減減少了在服務(wù)務(wù)器源實(shí)例化化的次數(shù)。MTS針對(duì)企企業(yè)應(yīng)用和Web應(yīng)用的的特點(diǎn),在COM/DCOM的基礎(chǔ)礎(chǔ)上又添加了了許多功能和和特性,包括括事務(wù)特性、、安全模型、、管理和配置置等,MTS使COM成成為一個(gè)完整整的組件體系系結(jié)構(gòu)。COM+并不不是COM的的新版本,我我們可以把它它理解為COM的新發(fā)展展,COM+的底層結(jié)構(gòu)構(gòu)仍然以COM為基礎(chǔ)。??梢哉J(rèn)為COM+是COM、DCOM和MTS的集成。。但更重要的的一點(diǎn)是,COM+倡導(dǎo)導(dǎo)了一種新的的概念,它把把COM組件件軟件提升到到應(yīng)用層而不不再是底層的的軟件結(jié)構(gòu),,它通過(guò)操作作系統(tǒng)的各種種支持,使組組件對(duì)象模型型建立在應(yīng)用用層上,把所所有組件的底底層細(xì)節(jié)留給給操作系統(tǒng),,因此,COM+與操作作系統(tǒng)的結(jié)合合更加緊密。。2.4COM+基本結(jié)結(jié)構(gòu)COM+不再再局限于COM的組件技技術(shù),它更加加注重于分布布式網(wǎng)絡(luò)應(yīng)用用的設(shè)計(jì)和實(shí)實(shí)現(xiàn),已經(jīng)成成為Microsoft系統(tǒng)平臺(tái)策策略和軟件發(fā)發(fā)展策略的一一部分。2.4.1WindowsDNA策略WindowsDNA(DistributedinterNetApplicationArchitecture)是Microsoft多年積積累下來(lái)的技技術(shù)精華集合合起來(lái)而形成成一個(gè)完整的的、多層結(jié)構(gòu)構(gòu)的企業(yè)應(yīng)用用總體方案,,它使Windows真真正成為企業(yè)業(yè)應(yīng)用平臺(tái)。。(a)三層層結(jié)構(gòu)技術(shù)組組成模型(b)WindowsDNA結(jié)構(gòu)構(gòu)2.4.2COM+基基本結(jié)構(gòu)從COM的發(fā)發(fā)展角度來(lái)看看,COM最最初作為桌面面操作系統(tǒng)平平臺(tái)上的組件件技術(shù),主要要為OLE服服務(wù)。但是隨隨著WindowsNT與DCOM的發(fā)布,,COM通過(guò)過(guò)底層的遠(yuǎn)程程支持使組件件技術(shù)延伸到到了分布式應(yīng)應(yīng)用領(lǐng)域,充充分體現(xiàn)了COM的擴(kuò)展展能力以及組組件結(jié)構(gòu)模型型的優(yōu)勢(shì)。MTS為COM增添了許許多新的內(nèi)容容,彌補(bǔ)了COM和DCOM的一些些不足,它注注重于服務(wù)器器一端的組件件管理和配置置環(huán)境。COM+進(jìn)一步步把COM、、DCOM和和MTS統(tǒng)一一起來(lái),形成成真正適合于于企業(yè)應(yīng)用的的組件技術(shù)。。COM+組成成結(jié)構(gòu)圖COM+不僅僅繼承了COM、DCOM和MTS的許多特性性,同時(shí)也新新增了一些服服務(wù),比如負(fù)負(fù)載平衡、內(nèi)內(nèi)存數(shù)據(jù)庫(kù)、、事件模型、、隊(duì)列服務(wù)等等。COM和MTS把組件的的所有配置信信息都保存在在Windows的系統(tǒng)統(tǒng)注冊(cè)表中,,然而,COM+把大多多數(shù)的組件信信息保存在一一個(gè)新的數(shù)據(jù)據(jù)庫(kù)中,稱為為COM+目目錄(COM+Catalog)。COM+目錄把COM和MTS的注冊(cè)模型型統(tǒng)一起來(lái),,并提供了一一個(gè)專門(mén)針對(duì)對(duì)組件的管理理環(huán)境。2.5COM+新新增系系統(tǒng)服服務(wù)介介紹COM+的的系統(tǒng)統(tǒng)服務(wù)務(wù)充分分體現(xiàn)現(xiàn)了COM+的的特征征,通通過(guò)這這些系系統(tǒng)服服務(wù),,我們們可以以很容容易地地開(kāi)發(fā)發(fā)出多多層結(jié)結(jié)構(gòu)的的應(yīng)用用系統(tǒng)統(tǒng),因因?yàn)檫@這些系系統(tǒng)服服務(wù)本本身已已經(jīng)滿滿足了了多層層應(yīng)用用的一一些基基本要要求。。COM+的的系統(tǒng)統(tǒng)服務(wù)務(wù)有的的是新新增加加的,,包括括隊(duì)列列組件件、負(fù)負(fù)載平平衡、、內(nèi)存存數(shù)據(jù)據(jù)庫(kù)和和事件件服務(wù)務(wù)。有有的從從MTS繼繼承過(guò)過(guò)來(lái)并并增強(qiáng)強(qiáng)了的的,包包括事事務(wù)、、對(duì)象象池、、安全全模型型以及及管理理特性性。2.5.1COM+隊(duì)隊(duì)列組組件COM+除除了支支持這這種基基于RPC連接接的運(yùn)運(yùn)行方方式,,它還還支持持另一一種運(yùn)運(yùn)行模模式,,基于于消息息的通通訊過(guò)過(guò)程,,它可可以有有效地地把客客戶與與組件件的生生存期期分離離開(kāi)。。這種種模式式通過(guò)過(guò)COM+的隊(duì)隊(duì)列組組件服服務(wù)實(shí)實(shí)現(xiàn)。。隊(duì)列組組件并并沒(méi)有有使用用直接接的RPC連接接,而而是采采用了了底層層的消消息系系統(tǒng)MSMQ(MicrosoftMessageQueueServer)。??蛻魬舫绦蛐虿辉僭僦苯咏诱{(diào)用用組件件對(duì)象象,它它利用用消息息機(jī)制制與組組件對(duì)對(duì)象進(jìn)進(jìn)行通通訊,,即使使組件件對(duì)象象并沒(méi)沒(méi)有運(yùn)運(yùn)行,,客戶戶程序序仍然然可以以執(zhí)行行操作作。2.5.2COM+事件模模型COM+事件模模型用中中心服務(wù)務(wù)和中心心管理的的方式把把發(fā)布者者與訂閱閱者之間間的依賴賴關(guān)系分分離開(kāi),,它用事事件類作作為發(fā)布布者和訂訂閱者之之間的中中間對(duì)象象,發(fā)布布者必須須通過(guò)事事件類發(fā)發(fā)布信息息。事件件類是由由COM+事件件服務(wù)提提供的對(duì)對(duì)象,它它實(shí)現(xiàn)了了事件接接口。當(dāng)當(dāng)發(fā)布者者要激發(fā)發(fā)事件時(shí)時(shí),它創(chuàng)創(chuàng)建一個(gè)個(gè)事件類類對(duì)象,,調(diào)用相相應(yīng)的事事件方法法,然后后釋放對(duì)對(duì)象的接接口。COM+事件服服務(wù)會(huì)決決定如何何通知訂訂閱者,,決定什什么時(shí)候候通知訂訂閱者。。如同隊(duì)隊(duì)列組件件情形一一樣,發(fā)發(fā)布者和和訂閱者者的生存存時(shí)間可可以被分分離。負(fù)負(fù)載平衡衡為了使組組件支持持負(fù)載平平衡,必必須定義義一個(gè)應(yīng)應(yīng)用群集集(applicationcluster),應(yīng)用用群集是是指一組組已經(jīng)安安裝了服服務(wù)器端端組件的的機(jī)器,,然后把把一臺(tái)機(jī)機(jī)器配置置成負(fù)載載平衡路路由器(router)。COM+負(fù)載平平衡以NT系統(tǒng)統(tǒng)服務(wù)的的形式運(yùn)運(yùn)行在路路由器機(jī)機(jī)器上,,當(dāng)路由由器的SCM(ServiceControlManager)接收到到遠(yuǎn)程創(chuàng)創(chuàng)建對(duì)象象請(qǐng)求時(shí)時(shí),它把把請(qǐng)求傳傳遞到負(fù)負(fù)載最輕輕的機(jī)器器上。一一旦對(duì)象象已經(jīng)被被成功創(chuàng)創(chuàng)建,那那么客戶戶與對(duì)象象之間的的連接是是直接進(jìn)進(jìn)行的,,而不必必再通過(guò)過(guò)路由器器。內(nèi)內(nèi)存數(shù)數(shù)據(jù)庫(kù)庫(kù)(IMDB)COM+的的內(nèi)存存數(shù)據(jù)據(jù)庫(kù)(InMemoryDatabase)服服務(wù)用用于保保存應(yīng)應(yīng)用的的非永永久狀狀態(tài)信信息。。IMDB是一一個(gè)駐駐留在在內(nèi)存存中的的支持持事務(wù)務(wù)特性性的數(shù)數(shù)據(jù)庫(kù)庫(kù)系統(tǒng)統(tǒng),它它可以以為COM+應(yīng)應(yīng)用程程序提提供快快速的的數(shù)據(jù)據(jù)訪問(wèn)問(wèn)。由于IMDB是是內(nèi)存存中的的數(shù)據(jù)據(jù)庫(kù),,所以以IMDB只對(duì)對(duì)本機(jī)機(jī)器上上的COM+組組件有有效,,不支支持分分布式式概念念,并并且多多個(gè)IMDB機(jī)機(jī)器不不能裝裝入同同一個(gè)個(gè)數(shù)據(jù)據(jù)表。。2.5.3COM+對(duì)象象池對(duì)象池池是指指把對(duì)對(duì)象的的實(shí)例例保留留在內(nèi)內(nèi)存中中,以以便當(dāng)當(dāng)客戶戶請(qǐng)求求創(chuàng)建建對(duì)象象時(shí)可可以馬馬上用用到這這些對(duì)對(duì)象。。對(duì)象象池如如同IMDB一一樣,,完全全是出出于效效率考考慮的的原因因,用用來(lái)建建立大大型的的應(yīng)用用系統(tǒng)統(tǒng)。2.6COM+的的主主要要特特性性真正正的的異異步步通通訊訊。??涂蛻魬艉秃徒M組件件有有可可能能在在不不同同的的時(shí)時(shí)間間點(diǎn)點(diǎn)上上協(xié)協(xié)同同工工作作。。事件件服服務(wù)務(wù)。??缮焐炜s縮性性。。動(dòng)動(dòng)態(tài)態(tài)負(fù)負(fù)載載平平衡衡以以及及內(nèi)內(nèi)存存數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)、、對(duì)對(duì)象象池池等等系系統(tǒng)統(tǒng)服服務(wù)務(wù)都都為為COM+的的可可伸伸縮縮性性提提供供了了技技術(shù)術(shù)基基礎(chǔ)礎(chǔ)。。繼承并發(fā)展了了MTS的特特性。可管理和可配配置性。易于開(kāi)發(fā)。COM+開(kāi)發(fā)發(fā)模型比以前前的COM組組件開(kāi)發(fā)更為為簡(jiǎn)化。3.CORBA3.1對(duì)象象管理集團(tuán)((OMG)OMG(ObjectManagementGroup)成立于于1989年年,作為一個(gè)個(gè)非營(yíng)利性組組織,致力于于開(kāi)發(fā)在技術(shù)術(shù)上具有先進(jìn)進(jìn)性、在商業(yè)業(yè)上具有可行行性并且獨(dú)立立于廠商的軟軟件互聯(lián)規(guī)范范,推廣面向向?qū)ο竽P图技夹g(shù),增強(qiáng)軟軟件的可移植植性、可重用用性和互操作作性。OMG于于1990年末末提出出了一一個(gè)對(duì)對(duì)象管管理結(jié)結(jié)構(gòu)的的基準(zhǔn)準(zhǔn)結(jié)構(gòu)構(gòu)OMA(ObjectManagementArchitecture)。OMA主要要涉及及用于于面向向?qū)ο笙笳Z(yǔ)言言、系系統(tǒng)、、數(shù)據(jù)據(jù)庫(kù)及及應(yīng)用用程序序框架架的統(tǒng)統(tǒng)一術(shù)術(shù)語(yǔ)體體系,,面向向?qū)ο笙筌浖到y(tǒng)統(tǒng)的抽抽象框框架和和基于于面向向?qū)ο笙蠹夹g(shù)術(shù)的分分布式式軟件件系統(tǒng)統(tǒng)參考考模型型等。。OMG于于1991年末末提出出的公公共對(duì)對(duì)象請(qǐng)請(qǐng)求代代理程程序體體系結(jié)結(jié)構(gòu)CORBA(CommonObjectRequestBrokerArchitecture),是是OMA參參考模模型中中的ORB接口口技術(shù)術(shù)規(guī)范范。這這一標(biāo)標(biāo)準(zhǔn)規(guī)規(guī)定了了如何何定義義、創(chuàng)創(chuàng)建、、調(diào)度度、引引用對(duì)對(duì)象,,以及及對(duì)象象之間間如何何通訊訊。3.2CORBA規(guī)范范基本本內(nèi)容容CORBA是一一個(gè)規(guī)規(guī)范((Specification))而不不是程程序?qū)崒?shí)現(xiàn)((Implementation),,提供供了一一個(gè)允允許在在分布布式和和異構(gòu)構(gòu)型環(huán)環(huán)境中中應(yīng)用用程序序之間間進(jìn)行行互操操作的的框架架。CORBA規(guī)范范的基基本組組成如如下圖圖所示示。對(duì)對(duì)象請(qǐng)請(qǐng)求代代理ORBORB(ObjectRequestBroker)是CORBA的核核心,,在CORBA中,,所有有的通通訊都都通過(guò)過(guò)ORB進(jìn)進(jìn)行。。ORB作為為一個(gè)個(gè)“軟軟件總總線””來(lái)連連接網(wǎng)網(wǎng)絡(luò)上上的不不同對(duì)對(duì)象,,提供供對(duì)象象的定定位和和方法法調(diào)用用,它它是CORBA實(shí)現(xiàn)現(xiàn)的關(guān)關(guān)鍵。。其主主要功功能是是定位位服務(wù)務(wù)對(duì)象象,分分析客客戶對(duì)對(duì)象的的請(qǐng)求求,獲獲取服服務(wù)對(duì)對(duì)象的的功能能接口口,在在客戶戶與服服務(wù)對(duì)對(duì)象間間建立立通信信連接接。客戶對(duì)象完全全可以不關(guān)心心服務(wù)器對(duì)象象的位置、實(shí)實(shí)現(xiàn)它所采用用的具體技術(shù)術(shù)和工作的硬硬件平臺(tái)。接接口定義語(yǔ)語(yǔ)言IDLIDL(InterfaceDefinitionLanguage)是用用于描述對(duì)象象接口的一種種高級(jí)符號(hào)語(yǔ)語(yǔ)言。IDL不涉及任何何接口的實(shí)現(xiàn)現(xiàn)細(xì)節(jié),所有有COBRA系統(tǒng)都根據(jù)據(jù)IDL用某某種特定語(yǔ)言言來(lái)實(shí)現(xiàn)接口口。IDL是獨(dú)立立于其他編程程語(yǔ)言的功能能描述性語(yǔ)言言。利用IDL,完成CORBA服服務(wù)對(duì)象方法法的說(shuō)明,然然后利用語(yǔ)言言映射工具,,將用IDL定義的CORBA對(duì)象象方法說(shuō)明翻翻譯成高級(jí)編編程語(yǔ)言的接接口說(shuō)明。IDL描述通通常以接口庫(kù)庫(kù)的方式進(jìn)行行存貯。接接口庫(kù)CORBA引引入接口倉(cāng)庫(kù)庫(kù)(InterfaceRepository)的目的的在于使服務(wù)務(wù)對(duì)象能夠提提供持久的對(duì)對(duì)象服務(wù)。將將接口信息存存入接口倉(cāng)庫(kù)庫(kù)后,如果客客戶端應(yīng)用提提交動(dòng)態(tài)調(diào)用用請(qǐng)求(DynamicInvocation),ORB可以根據(jù)據(jù)接口倉(cāng)庫(kù)中中的接口信息息及分布環(huán)境境下數(shù)據(jù)對(duì)象象的描述,獲獲取請(qǐng)求調(diào)用用所需的信息息。接口信息息包括了所有有描述服務(wù)對(duì)對(duì)象屬性、操操作、自定義義數(shù)據(jù)類型及及異常處理的的IDL定義義?;緦?duì)象適適配器BOABOA(BasicObjectAdapter)是是為服務(wù)對(duì)象象端管理對(duì)象象引用和實(shí)現(xiàn)現(xiàn)而引入的。。CORBA規(guī)范中要求求系統(tǒng)實(shí)現(xiàn)時(shí)時(shí)必須有一種種對(duì)象適配器器。對(duì)象適配配器完成如下下功能:生成并解釋對(duì)對(duì)象的引用,,把客戶端的的對(duì)象引用映映射到服務(wù)對(duì)對(duì)象的功能中中;激活或撤消對(duì)對(duì)象的實(shí)現(xiàn);;注冊(cè)服務(wù)功能能的實(shí)現(xiàn);確保對(duì)象引用用的安全性;;完成對(duì)服務(wù)對(duì)對(duì)象方法的調(diào)調(diào)用。作為CORBA設(shè)計(jì)中常常用的對(duì)象適適配器——基基本對(duì)象適配配器BOA,,在分布式應(yīng)應(yīng)用程序設(shè)計(jì)計(jì)中是必要的的元素。ORB將服務(wù)請(qǐng)請(qǐng)求的參數(shù)及及操作控制權(quán)權(quán)傳遞給BOA,由BOA將執(zhí)行結(jié)結(jié)果返回給ORB。BOA用服務(wù)對(duì)對(duì)象骨架(Skeleton)將ORB和對(duì)象象實(shí)現(xiàn)中的方方法聯(lián)系在一一起,服務(wù)對(duì)對(duì)象骨架中相相應(yīng)的方法將將對(duì)BOA方方法的請(qǐng)求調(diào)調(diào)用映射為服服務(wù)對(duì)象中的的方法。靜靜態(tài)請(qǐng)求接接口SIISII(StaticInvocationInterface)假設(shè)在編編譯時(shí)刻客戶戶對(duì)象能夠明明確了解服務(wù)務(wù)對(duì)象的接口口,即客戶與與服務(wù)器之間間的關(guān)系應(yīng)當(dāng)當(dāng)是可知的、、固定的,服服務(wù)接口的任任何改變都會(huì)會(huì)導(dǎo)致軟件系系統(tǒng)的重新編編譯。SII是由由IDL描描述的。3.2.6動(dòng)態(tài)請(qǐng)請(qǐng)求接口DIIDII(DynamicInvocationInterface))允許在客客戶端動(dòng)態(tài)態(tài)創(chuàng)建和調(diào)調(diào)用對(duì)服務(wù)務(wù)對(duì)象的請(qǐng)請(qǐng)求。一個(gè)個(gè)請(qǐng)求包括括對(duì)象引用用、操作和和參數(shù)列表表。與新服服務(wù)對(duì)象及及其行為相相關(guān)的信息息可以通過(guò)過(guò)接口庫(kù)獲獲得,客戶戶程序根據(jù)據(jù)這些信息息可以在運(yùn)運(yùn)行時(shí)刻動(dòng)動(dòng)態(tài)構(gòu)造請(qǐng)請(qǐng)求。客戶對(duì)象的的句柄(Stub)和服務(wù)對(duì)對(duì)象的Skeleton是IDL與與對(duì)象實(shí)現(xiàn)現(xiàn)語(yǔ)言之間間的橋梁。??蛻魧?duì)象的的Stub是IDL定義的方方法接口經(jīng)經(jīng)IDL編編譯器編譯譯后,在編編寫(xiě)客戶對(duì)對(duì)象時(shí),高高級(jí)編程語(yǔ)語(yǔ)言可應(yīng)用用的用于識(shí)識(shí)別服務(wù)對(duì)對(duì)象方法的的代碼,提提供服務(wù)對(duì)對(duì)象接口的的簡(jiǎn)要說(shuō)明明。服務(wù)對(duì)對(duì)象的骨架架是IDL定義的方方法接口經(jīng)經(jīng)IDL編編譯器編譯譯后,形成成的說(shuō)明服服務(wù)對(duì)象提提供方法的的框架。對(duì)對(duì)于服務(wù)對(duì)對(duì)象接口中中的每個(gè)方方法,必須須在服務(wù)對(duì)對(duì)象程序中中實(shí)現(xiàn)。3.3服服務(wù)請(qǐng)求的的實(shí)現(xiàn)方式式CORBA的底層結(jié)結(jié)構(gòu)是基于于面向?qū)ο笙竽P偷?,,由IDL、ORB和IIOP標(biāo)準(zhǔn)協(xié)協(xié)議(InternetInter-ORBProtocol,也稱稱網(wǎng)絡(luò)ORB交換協(xié)協(xié)議)3個(gè)個(gè)關(guān)鍵模塊塊組成。IDL使得得所有有CORBA對(duì)對(duì)象象以一一種方方式被被描述述,僅僅僅需需要一一個(gè)由由本地地語(yǔ)言言(C/C++、COOBOL或或Java)到到IDL的的“橋橋梁””。CORBA對(duì)象象的互互通信信要以以O(shè)RB為為中介介,這這種互互通信信可以以在多多種流流行通通信協(xié)協(xié)議((如TCP/IP或或IPX/SPX))之上上實(shí)現(xiàn)現(xiàn)。在在TCP/IP上,,來(lái)自自于不不同開(kāi)開(kāi)發(fā)商商的ORB用IIOP標(biāo)標(biāo)準(zhǔn)協(xié)協(xié)議進(jìn)進(jìn)行通通訊。。關(guān)于對(duì)對(duì)象請(qǐng)請(qǐng)求的的實(shí)現(xiàn)現(xiàn)方式式,CORBA規(guī)范范中定定義客客戶程程序可可以用用動(dòng)態(tài)態(tài)調(diào)用用接口口DII方方式或或通過(guò)過(guò)IDL文文件經(jīng)經(jīng)編譯譯后在在客戶戶端生生成的的Stub方式式提出出服務(wù)務(wù)請(qǐng)求求。在提出出請(qǐng)求求時(shí),,客戶戶可以以使用用動(dòng)態(tài)態(tài)調(diào)用用接口口或者者IDL句句柄。??蛻魧⑿枰瓿沙傻墓すぷ鹘唤唤oORB,由由ORB決決定由由哪一一個(gè)對(duì)對(duì)象實(shí)實(shí)例完完成這這個(gè)請(qǐng)請(qǐng)求,,然后后激活活這個(gè)個(gè)對(duì)象象,將將完成成請(qǐng)求求所需需要的的參數(shù)數(shù)傳送送給這這個(gè)激激活的的對(duì)象象。對(duì)象的的接口口有兩兩種定定義方方式,,可以以使用用IDL進(jìn)進(jìn)行靜靜態(tài)定定義,,這種種語(yǔ)言言根據(jù)據(jù)進(jìn)行行的操操作和和傳送送的參參數(shù)定定義對(duì)對(duì)象。。另一一種方方法,,可以以將接接口加加入接接口庫(kù)庫(kù)服務(wù)務(wù)中,,允許許在運(yùn)運(yùn)行時(shí)時(shí)對(duì)這這些成成為組組件的的接口口進(jìn)行行訪問(wèn)問(wèn),這這兩種種方法法是等等效的的。對(duì)象實(shí)實(shí)現(xiàn)通通過(guò)IDL產(chǎn)生生的框框架或或通過(guò)過(guò)動(dòng)態(tài)態(tài)框架架接收收到調(diào)調(diào)用請(qǐng)請(qǐng)求,,在處處理這這些請(qǐng)請(qǐng)求時(shí)時(shí),對(duì)對(duì)象實(shí)實(shí)現(xiàn)可可以調(diào)調(diào)用對(duì)對(duì)象適適配器器和ORB。3.4基基于CORBA應(yīng)用用的優(yōu)優(yōu)點(diǎn)CORBA是開(kāi)開(kāi)放式式的、、獨(dú)立立于廠廠商、、用于于網(wǎng)絡(luò)絡(luò)上計(jì)計(jì)算機(jī)機(jī)應(yīng)用用的底底層結(jié)結(jié)構(gòu)。。任何何廠家家、計(jì)計(jì)算機(jī)機(jī)、操操作系系統(tǒng)、、編程程語(yǔ)言言及網(wǎng)網(wǎng)絡(luò)環(huán)環(huán)境下下的基基于CORBA的應(yīng)應(yīng)用均均使用用IIOP標(biāo)準(zhǔn)準(zhǔn)協(xié)議議,所所以任任何基基于CORBA的應(yīng)應(yīng)用均均能協(xié)協(xié)同工工作。。CORBA對(duì)象象可以以用任任何一一種CORBA軟件件開(kāi)發(fā)發(fā)商所所支持持的語(yǔ)語(yǔ)言來(lái)來(lái)編寫(xiě)寫(xiě),也也可以以運(yùn)行行在任任何一一種CORBA軟件件開(kāi)發(fā)發(fā)商所所支持持的平平臺(tái)上上。CORBA是在在不同同平臺(tái)臺(tái)、不不同語(yǔ)語(yǔ)言之之間實(shí)實(shí)現(xiàn)對(duì)對(duì)象通通信的的模型型,它它為分分布式式應(yīng)用用環(huán)境境下對(duì)對(duì)象資資源共共享、、代碼碼重用用、可可移植植和對(duì)對(duì)象間間相互互訪問(wèn)問(wèn)建立立了通通用標(biāo)標(biāo)準(zhǔn),,同樣樣也為為在大大量硬硬件、、軟件件之間間實(shí)現(xiàn)現(xiàn)互操操作提提供了了良好好的解解決方方案。。與傳統(tǒng)統(tǒng)的DCOM相相比,,CORBA體體系結(jié)結(jié)構(gòu)獨(dú)獨(dú)立于于語(yǔ)言言、獨(dú)獨(dú)立于于工作作平臺(tái)臺(tái)等方方面的的特點(diǎn)點(diǎn),使使得基基于CORBA開(kāi)發(fā)發(fā)的應(yīng)應(yīng)用系系統(tǒng)在在網(wǎng)絡(luò)絡(luò)實(shí)現(xiàn)現(xiàn)中具具有更更大的的優(yōu)勢(shì)勢(shì)。4.EJB與J2EE4.1發(fā)發(fā)展歷歷史在JDK((JavaDevelopmentKit))1.0版版的的框框架架,,Java開(kāi)開(kāi)發(fā)發(fā)是是以以Applet和和Application應(yīng)應(yīng)用用程程序序作作為為中中心心的的。。Servlet在在許許多多方方面面與與Applet相相似似,,它它是是專專門(mén)門(mén)為為在在Web服服務(wù)務(wù)器器機(jī)機(jī)器器上上運(yùn)運(yùn)行行而而設(shè)設(shè)計(jì)計(jì)的的Java程程序序,,Servlet是是由由容容器器管管理理的的Web組組件件,,可可產(chǎn)產(chǎn)生生動(dòng)動(dòng)態(tài)態(tài)內(nèi)內(nèi)容容。。JavaServlet的的出出現(xiàn)現(xiàn),,為為應(yīng)應(yīng)用用程程序序員員使使用用Java來(lái)來(lái)創(chuàng)創(chuàng)建建Web應(yīng)應(yīng)用用程程序序開(kāi)開(kāi)辟辟了了新新的的途途徑徑。。但但是是,,僅僅有有Servlet還還不不能能為為真真正正的的企企業(yè)業(yè)計(jì)計(jì)算算提提供供完完整整的的模模型型。。JavaServlet與與CGI程程序序一一樣樣,,最最適適合合充充當(dāng)當(dāng)連連接接前前端端Web請(qǐng)請(qǐng)求求與與后后端端數(shù)數(shù)據(jù)據(jù)資資源源的的中中間間層層組組件件。。JavaBeans規(guī)范范將組件軟件件的概念引入入到Java編程的領(lǐng)域域。JavaBeans規(guī)范為Java開(kāi)發(fā)人人員提供了一一種“組件化化”其Java類的的方法。Bean是一些些Java類類,可在一個(gè)個(gè)可視的構(gòu)建建器工具中操操作它們,并并且可以將它它們一起編寫(xiě)寫(xiě)到應(yīng)用程序序中。任何具具有某種特性性和事件接口口約定的Java類都可可以是一個(gè)Bean。EJB(EnterpriseJavaBeans))規(guī)范的第第一版以初稿稿形式于1997年12月公布,并并于1998年3月作為為1.0版版發(fā)行。EJB體系結(jié)結(jié)構(gòu)的目標(biāo)是是:EJB體系結(jié)結(jié)構(gòu)將是標(biāo)準(zhǔn)準(zhǔn)的組件體系系結(jié)構(gòu),用于于以Java編程語(yǔ)語(yǔ)言構(gòu)建分布布式的面向?qū)?duì)象的商務(wù)應(yīng)應(yīng)用程序。EJB體系結(jié)結(jié)構(gòu)將使編寫(xiě)寫(xiě)應(yīng)用程序變變得容易。EJB應(yīng)用程程序?qū)⒆裱璊ava編程程語(yǔ)言的“一一次編寫(xiě),隨隨處運(yùn)行”的的原則。EJB體系結(jié)結(jié)構(gòu)將處理企企業(yè)應(yīng)用程序序生命周期中中的開(kāi)發(fā)、部部署和運(yùn)行等等方面。EJB體系結(jié)結(jié)構(gòu)將定義一一些約定,這這些約定使多多個(gè)供應(yīng)商提提供的工具能能夠開(kāi)發(fā)并部部署可在運(yùn)行行時(shí)互操作的的組件。EJB體系系結(jié)構(gòu)將與與現(xiàn)有的服服務(wù)器平臺(tái)臺(tái)兼容。供供應(yīng)商將能能夠擴(kuò)展它它們的現(xiàn)有有產(chǎn)品,以以支持EJB組件。。EJB體系系結(jié)構(gòu)將與與Java編程程語(yǔ)言編寫(xiě)寫(xiě)的其他API兼兼容。EJB體系系結(jié)構(gòu)將提提供EJB組件件和非Java編編程語(yǔ)言言應(yīng)用程序序之間的互互操作性。。EJB體系系結(jié)構(gòu)將與與CORBA兼兼容。J2EE((Java2Platform,,EnterpriseEdition)為為EJB技術(shù)提供供了工作環(huán)環(huán)境。事實(shí)實(shí)上,Sun把若若干項(xiàng)軟件件技術(shù)都設(shè)設(shè)想為這樣樣的構(gòu)件塊塊,它們將將使大型企企業(yè)能夠把把以任務(wù)為為關(guān)鍵的業(yè)業(yè)務(wù)系統(tǒng)移移植到Java環(huán)境境中,而EJB技技術(shù)不過(guò)是是這些技術(shù)術(shù)之一。EJB技技術(shù)并不是是一項(xiàng)獨(dú)立立的技術(shù),,它建立在在其他Java技術(shù)之之上,這些些技術(shù)由Sun和和其他IT公公司聯(lián)合規(guī)規(guī)定,它們們一起提供供了這個(gè)框框架的內(nèi)容容,該框架架就稱為J2EE。J2EE中中包括以以下技術(shù)::EnterpriseJavaBeans技技術(shù)JavaInterfaceDefinitionLanguage(IDL)JavaMessageService(JMS)APIJavaNamingandDirectoryInterface(JNDI)JavaRemoteMethodInvocation(RMI)和和ObjectSerializationJavaServletAPIJavaTransactionAPI(JTA)JavaTransactionService(JTS)JavaServerPages(JSP)技技術(shù)JDBC數(shù)數(shù)據(jù)庫(kù)訪訪問(wèn)API4.2J2EE應(yīng)應(yīng)用模型J2EE多多層體系的的思想在很很大程度上上受到了MVC設(shè)計(jì)計(jì)模式的啟啟發(fā)和影響響。所謂MVC,即即Model-View-Controller,它是是一種在復(fù)復(fù)雜的應(yīng)用用系統(tǒng)中劃劃分和界定定各個(gè)組件件的職能和和作用范圍圍的設(shè)計(jì)模模式。在MVC設(shè)計(jì)計(jì)模式中,,Model即模型型,是處理理核心數(shù)據(jù)據(jù)模型或?qū)崒?shí)現(xiàn)核心應(yīng)應(yīng)用功能的的部分;View即即視圖,主主要與用戶戶界面有關(guān)關(guān)。MVC設(shè)計(jì)模式式認(rèn)為這些些不同的部部分應(yīng)該盡盡可能地相相互獨(dú)立,,它們之間間的交互則則由Controller((控制器))協(xié)調(diào)。為了更好地地控制和管管理這些應(yīng)應(yīng)用,支持持各種用戶戶的業(yè)務(wù)功功能被連接接到中間層層。J2EE應(yīng)用模模式定義了了用于以多多層的方式式實(shí)現(xiàn)應(yīng)用用的一種結(jié)結(jié)構(gòu),它避避免了兩層層結(jié)構(gòu)的局局限性,并并提供足夠夠的可伸縮縮性、可接接入性和可可管理性。。4.2.1中間層層在J2EE平臺(tái),中中間層業(yè)務(wù)務(wù)功能是由由企業(yè)EJB組件實(shí)實(shí)現(xiàn)。這些些企業(yè)Bean讓服服務(wù)開(kāi)發(fā)者者將精力集集中在業(yè)務(wù)務(wù)邏輯,并并讓EJB服務(wù)的處處理提供可可靠、可伸伸縮服務(wù)的的復(fù)雜工作作。4.2.2客戶層層J2EE平平臺(tái)支持幾幾種類型的的客戶端。。許多J2EE服務(wù)務(wù)被設(shè)計(jì)成成支持Web瀏覽器器的客戶端端。這些服服務(wù)通過(guò)動(dòng)動(dòng)態(tài)生成的的HTML頁(yè)面和表表格與客戶戶端進(jìn)行交交互操作。。更復(fù)雜的服服務(wù)將直接接與第一層層客戶端直直接交換數(shù)數(shù)據(jù)。這里里,JSP和Servlet用于規(guī)格格化業(yè)務(wù)數(shù)數(shù)據(jù),以方方便J2EE客戶端端處理。這這些客戶端端既能在一一個(gè)Web瀏覽器以以JavaApplet方方式運(yùn)行,,也能用以以Java技術(shù)為基基礎(chǔ)的程序序方式運(yùn)行行。4.2.3企業(yè)信信息系統(tǒng)EIS一個(gè)服務(wù)的的中間層的的業(yè)務(wù)模塊塊必須存取取和更新在在企業(yè)應(yīng)用用系統(tǒng)EIS層的信信息。下列列標(biāo)準(zhǔn)是Java服服務(wù)的API,它們們提供了對(duì)對(duì)企業(yè)信息息系統(tǒng)的基基本存取功功能:JDBC,用于于存取數(shù)數(shù)據(jù)的Java標(biāo)準(zhǔn)API;;JNDI(JavaNamingandDirectoryInterface),用用于從企企業(yè)的名名字和目目錄服務(wù)務(wù)存取信信息的標(biāo)標(biāo)準(zhǔn)API;JMS(JavaMessageService),通過(guò)過(guò)消息中中間件發(fā)發(fā)送和接接收信息息的標(biāo)準(zhǔn)準(zhǔn)API;JavaMail,發(fā)發(fā)送電子子郵件的的標(biāo)準(zhǔn)API;;JavaIDL,調(diào)用用CORBA服服務(wù)的標(biāo)標(biāo)準(zhǔn)API。4.3J2EE中間間件的體體系結(jié)構(gòu)構(gòu)4.3.1J2EE總體結(jié)結(jié)構(gòu)J2EE應(yīng)用服服務(wù)器由由四個(gè)部部分組成成:Applet容器器、應(yīng)用用客戶端端容器、、Web容器和和EJB容器,,它們之之間的關(guān)關(guān)系由下下圖表示示。容器是應(yīng)應(yīng)用服務(wù)務(wù)器的運(yùn)運(yùn)行環(huán)境境,J2EE為為容器中中的應(yīng)用用組件提提供服務(wù)務(wù)。應(yīng)用客戶戶端容器器通過(guò)用用于連接接數(shù)據(jù)庫(kù)庫(kù)系統(tǒng)的的JavaAPI、、JDBCAPI與與應(yīng)用服服務(wù)器要要求的數(shù)數(shù)據(jù)庫(kù)相相連接。。包含有有JSP和Servlet的的Web容器和和EJB容器也也使用同同樣的接接口與數(shù)數(shù)據(jù)庫(kù)相相連接。。J2EE應(yīng)應(yīng)用服服務(wù)器器為應(yīng)應(yīng)用組組件的的部署署、管管理和和執(zhí)行行提供供了支支持。。根據(jù)據(jù)對(duì)應(yīng)應(yīng)用服服務(wù)器器的依依賴程程度,,應(yīng)用用組件件可以以被分分成3種類類型::在應(yīng)用用服務(wù)務(wù)器中中被部部署、、管理理和執(zhí)執(zhí)行的的組件件,這這樣的的組件件有Web組件件和EJB組件件。在應(yīng)用用服務(wù)務(wù)器中中被部部署、、管理理,但但是被被下載載到一一個(gè)客客戶端端系統(tǒng)統(tǒng)上去去執(zhí)行行的組組件。。不完全全按照照應(yīng)用用服務(wù)務(wù)器的的要求求被部部署和和管理理的組組件,,應(yīng)用用客戶戶端就就是這這樣的的組件件。應(yīng)應(yīng)用服服務(wù)器器體系系結(jié)構(gòu)構(gòu)瀏覽器器ServletorJSP容器EJBServerBCHTTPEntity
BeanHOMEREMOTESession
BeanHOMEREMOTE數(shù)據(jù)J2EE模模型A數(shù)據(jù)JDBCRMI/IIOPJDBC應(yīng)用服服務(wù)器器4.4J2EE應(yīng)應(yīng)用組組件J2EE應(yīng)應(yīng)用組組件是是指在在應(yīng)用用服務(wù)務(wù)器中中運(yùn)行行的軟軟件組組件,,主要要有JSP、EJB和Servlet三種種。JSP提供供了一一種在在網(wǎng)頁(yè)頁(yè)中嵌嵌入組組件的的方式式,并并且允允許生生成相相應(yīng)的的網(wǎng)頁(yè)頁(yè)最終終發(fā)送送給客客戶。。JSP網(wǎng)網(wǎng)頁(yè)可可以包包含HTML、、Java代碼碼及JavaBeans組件件。JSP網(wǎng)頁(yè)頁(yè)實(shí)際際上是是Servlet編編程模模型的的一個(gè)個(gè)擴(kuò)充充。當(dāng)當(dāng)用戶戶請(qǐng)求求一個(gè)個(gè)JSP網(wǎng)網(wǎng)頁(yè)時(shí)時(shí),Web容器器會(huì)把把相應(yīng)應(yīng)的JSP網(wǎng)頁(yè)頁(yè)編譯譯成一一個(gè)Servlet。接接著此此Web容容器調(diào)調(diào)用這這個(gè)Servlet,并并且把把得到到的內(nèi)內(nèi)容返返回給給Web瀏瀏覽器器。JSP與ASP技術(shù)術(shù)非常常相似似。兩兩者都都提供供在HTML代代碼中中混合合某種種程序序代碼碼、由由語(yǔ)言言引擎擎解釋釋執(zhí)行行程序序代碼碼的能能力。。但是,,ASP的的編程程語(yǔ)言言是VBScript之之類的的腳本本語(yǔ)言言,JSP使用用的是是Java,這這是兩兩者最最明顯顯的區(qū)區(qū)別。。此外外,ASP與JSP還有有一個(gè)個(gè)更為為本質(zhì)質(zhì)的區(qū)區(qū)別::兩種種語(yǔ)言言引擎擎用完完全不不同的的方式式處理理頁(yè)面面中嵌嵌入的的程序序代碼碼。在ASP下下,VBScript代代碼被被ASP引引擎解解釋執(zhí)執(zhí)行;;在JSP下,,代碼碼被編編譯成成Servlet并并由Java虛虛擬機(jī)機(jī)執(zhí)行行。Servlet是是一一個(gè)個(gè)以以Java技技術(shù)術(shù)為為基基礎(chǔ)礎(chǔ)的的Web組組件件,,它它被被一一個(gè)個(gè)容容器器管管理理,,它它能能產(chǎn)產(chǎn)生生動(dòng)動(dòng)態(tài)態(tài)的的內(nèi)內(nèi)容容。。Servlet通通過(guò)過(guò)Servlet容容器器實(shí)實(shí)現(xiàn)現(xiàn)的的請(qǐng)請(qǐng)求求/應(yīng)應(yīng)答答機(jī)機(jī)制制與與Web客客戶戶端端進(jìn)進(jìn)行行交交互互。。所有有的的Servlet容容器器必必須須將將HTTP作作為為請(qǐng)請(qǐng)求求和和應(yīng)應(yīng)答答的的協(xié)協(xié)議議。。一個(gè)個(gè)Servlet可可以以具具有有這這樣樣一一個(gè)個(gè)處處理理流流程程::一個(gè)個(gè)客客戶戶端端連連接接到到一一個(gè)個(gè)Web服服務(wù)務(wù)器器,,并并發(fā)發(fā)送送一一個(gè)個(gè)HTTP請(qǐng)請(qǐng)求求到到這這個(gè)個(gè)Web服服務(wù)務(wù)器器。。請(qǐng)求被Web服服務(wù)器接接收并轉(zhuǎn)轉(zhuǎn)交給Servlet容器。。Servlet容器器可以與與Web服務(wù)器器在相同同主機(jī)或或不同的的主機(jī)上上運(yùn)行。。Servlet容器在在其配置置的Servlet中中找到調(diào)調(diào)用的Servlet,然后后用代表表請(qǐng)求和和應(yīng)答的的對(duì)象調(diào)調(diào)用它。。Servlet使用請(qǐng)請(qǐng)求對(duì)象象找到誰(shuí)誰(shuí)是遠(yuǎn)端端的用戶戶,并通通過(guò)應(yīng)答答對(duì)象將將生成的的數(shù)據(jù)返返回客戶戶端。當(dāng)Servlet完成成了對(duì)請(qǐng)請(qǐng)求的處處理,Servlet容器確確認(rèn)應(yīng)答答已經(jīng)完完成,則則將控制制權(quán)返回回給Web服務(wù)務(wù)器。EJB是是用于開(kāi)開(kāi)發(fā)安全全、可擴(kuò)擴(kuò)展、事事務(wù)型及及多用戶戶組件的的一種分分布式組組件模型型。簡(jiǎn)單單地講,,EJB是包含含業(yè)務(wù)邏邏輯的可可重用軟軟件單元元。正如如JSP網(wǎng)頁(yè)允允許把應(yīng)應(yīng)用程序序和表示示邏輯分分開(kāi),EJB允允許把應(yīng)應(yīng)用程序序邏輯與與系統(tǒng)級(jí)級(jí)服務(wù)分分開(kāi),這這樣開(kāi)發(fā)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度合并選集員工管理篇十篇
- 《學(xué)習(xí)英語(yǔ)的困難》課件
- 單位管理制度分享大合集【員工管理篇】十篇
- 《證券經(jīng)紀(jì)與交易》課件
- 2024年農(nóng)業(yè)局上半年科技教育工作總結(jié)
- 九上歷史:第一次月考A卷(考試版+解析)
- DBJT 13-313-2019 城市軌道交通工程滲漏水治理技術(shù)規(guī)程
- XX中學(xué)師生生活綜合樓可研報(bào)告
- 《液壓支架技術(shù)》課件
- 《證券投資要義》課件
- 口腔頜面外科學(xué) 09顳下頜關(guān)節(jié)疾病
- 應(yīng)急物資清單明細(xì)表
- 房地產(chǎn)估計(jì)第八章成本法練習(xí)題參考
- 《社會(huì)主義核心價(jià)值觀》優(yōu)秀課件
- DB11-T1835-2021 給水排水管道工程施工技術(shù)規(guī)程高清最新版
- 《妊娠期糖尿病患者個(gè)案護(hù)理體會(huì)(論文)3500字》
- 《小學(xué)生錯(cuò)別字原因及對(duì)策研究(論文)》
- 便攜式氣體檢測(cè)報(bào)警儀管理制度
- 酒店安全的管理制度
- (大潔王)化學(xué)品安全技術(shù)說(shuō)明書(shū)
- 2022年科學(xué)道德與學(xué)術(shù)規(guī)范知識(shí)競(jìng)賽決賽題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論