Chap基于分布構(gòu)件的體系結(jié)構(gòu)實(shí)用_第1頁
Chap基于分布構(gòu)件的體系結(jié)構(gòu)實(shí)用_第2頁
Chap基于分布構(gòu)件的體系結(jié)構(gòu)實(shí)用_第3頁
Chap基于分布構(gòu)件的體系結(jié)構(gòu)實(shí)用_第4頁
Chap基于分布構(gòu)件的體系結(jié)構(gòu)實(shí)用_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

會(huì)計(jì)學(xué)1Chap基于分布構(gòu)件的體系結(jié)構(gòu)實(shí)用2內(nèi)容8.1 EJB分布構(gòu)件框架8.2 DCOM分布構(gòu)件框架8.3 CORBA分布構(gòu)件框架第1頁/共44頁38.1EJB分布構(gòu)件框架簡介:EJB(EnterpriseJavaBean)分布構(gòu)件框架由SUN公司主導(dǎo)制定,它基于Java語言,面向企業(yè)級(jí)的分布式系統(tǒng)開發(fā)。第2頁/共44頁48.1EJB分布構(gòu)件框架實(shí)例:HelloWorldEJB構(gòu)件HelloWorldBean文件HelloWorldBean.java:第3頁/共44頁58.1EJB分布構(gòu)件框架實(shí)例:HelloWorldEJB構(gòu)件HelloWorldBean文件HelloWorld.java:第4頁/共44頁68.1EJB分布構(gòu)件框架實(shí)例:HelloWorldEJB構(gòu)件HelloWorldBean

編譯上述兩個(gè)文件,便能夠得到兩個(gè)類文件HelloWorldBean.class和HelloWorld.class,它們分別描述了EJB構(gòu)件HelloWorldBean和它的遠(yuǎn)程接口HelloWorld。將這兩個(gè)類放在Jboss安裝目錄的examples\server子目錄下,然后打包成一個(gè)文件HelloWorld.jar。至此,EJB構(gòu)件HelloWorldBean就開發(fā)好了。第5頁/共44頁78.1EJB分布構(gòu)件框架實(shí)例:HelloWorldEJB構(gòu)件HelloWorldBean的部署 在開發(fā)完EJB構(gòu)件之后,需要將其部署到EJB應(yīng)用服務(wù)器中。對(duì)于Jboss,在成功啟動(dòng)之后,只需要將上述的文件HelloWorld.jar直接拷貝到Jboss安裝目錄下的一個(gè)特定子目錄中,Jboss就會(huì)自動(dòng)完成EJB構(gòu)件HelloWorldBean的部署。第6頁/共44頁88.1EJB分布構(gòu)件框架實(shí)例:HelloWorldEJB客戶HelloWorldClient的開發(fā)第7頁/共44頁98.1EJB分布構(gòu)件框架實(shí)例:HelloWorld測試 編譯完文件HelloWorldClient.java后,即可運(yùn)行命令“javaexamples.client.HelloWorldClient”,結(jié)果如下所示:第8頁/共44頁108.1EJB分布構(gòu)件框架原理分析:本實(shí)例中定義的三個(gè)類之間的關(guān)系如下圖所示。構(gòu)件HelloWorldBean的實(shí)例由構(gòu)件容器負(fù)責(zé)創(chuàng)建。第9頁/共44頁118.1EJB分布構(gòu)件框架原理分析:本實(shí)例中定義的三個(gè)類之間的關(guān)系如下圖所示。構(gòu)件HelloWorldBean的實(shí)例由構(gòu)件容器負(fù)責(zé)創(chuàng)建。第10頁/共44頁128.1EJB分布構(gòu)件框架原理分析:RMI原理第11頁/共44頁138.1EJB分布構(gòu)件框架其它說明:在EJB構(gòu)件框架下,客戶端可以有各種不同的形式,如下圖所示。無論簡單的Java程序,還是Web容器或者客戶容器中的Java程序,它們都遵守上述的EJB構(gòu)件框架,即通過遠(yuǎn)程對(duì)象的存根訪問EJB容器中的會(huì)話Bean。第12頁/共44頁14內(nèi)容8.1 EJB分布構(gòu)件框架8.2 DCOM分布構(gòu)件框架8.3 CORBA分布構(gòu)件框架第13頁/共44頁158.2DCOM分布構(gòu)件框架DCOM(DistributedComponentObjectModel,分布構(gòu)件對(duì)象模型)是一個(gè)二進(jìn)制代碼層面的構(gòu)件模型,由微軟公司于1995年左右提出,從COM(ComponentObjectModel,構(gòu)件對(duì)象模型)擴(kuò)充而成。按照這個(gè)模型,以二進(jìn)制形式存在的構(gòu)件可以被遠(yuǎn)程客戶透明訪問。第14頁/共44頁168.2DCOM分布構(gòu)件框架基本概念DCOM客戶:泛指所有與DCOM構(gòu)件交互的程序片斷。如果一個(gè)DCOM構(gòu)件要與其他DCOM構(gòu)件交互,那它同時(shí)也是一個(gè)DCOM客戶。DCOM構(gòu)件:是具有特定格式要求的動(dòng)態(tài)鏈接庫(DLL)文件或可執(zhí)行(EXE)文件。對(duì)象、類和類工廠接口接口的代理/殘樁DLL第15頁/共44頁17第16頁/共44頁188.2DCOM分布構(gòu)件框架整體結(jié)構(gòu)第17頁/共44頁198.2DCOM分布構(gòu)件框架實(shí)例:HelloWorld,共包含十個(gè)文件:HelloComponent.cpp、HelloComponent.h:包含EXE構(gòu)件的主函數(shù)WinMain()和相關(guān)代碼。HelloClass.cpp、HelloClass.h:包含EXE構(gòu)件向外提供的類CHelloClass的定義、以及向外提供的工廠類CFactory的定義。Hello.idl:定義類CHelloClass向外提供的接口IHello。既用于EXE構(gòu)件,也用于客戶程序。HelloClient.cpp:客戶程序。Registry.cpp、Registry.h:包含一些輔助函數(shù)的定義,用于訪問Windows注冊表。Makefile、HelloProxy.def第18頁/共44頁208.2DCOM分布構(gòu)件框架實(shí)例:HelloWorldEXE構(gòu)件主程序(HelloComponent.cpp)第19頁/共44頁218.2DCOM分布構(gòu)件框架實(shí)例:HelloWorldEXE構(gòu)件中的工廠類CFactory第20頁/共44頁228.2DCOM分布構(gòu)件框架實(shí)例:HelloWorldEXE構(gòu)件中的類CHelloClass第21頁/共44頁238.2DCOM分布構(gòu)件框架實(shí)例:HelloWorld類CHelloClass的接口IHello第22頁/共44頁248.2DCOM分布構(gòu)件框架實(shí)例:HelloWorld類CHelloClass的接口IHello:Hello.idl第23頁/共44頁258.2DCOM分布構(gòu)件框架實(shí)例:HelloWorldEXE構(gòu)件HelloComponent.exe的生成和部署:部署時(shí),需要將HelloComponent.exe和HelloProxy.dll拷貝到服務(wù)器上,并應(yīng)該將它們都注冊到服務(wù)器上的DCOM系統(tǒng)中。注冊HelloProxy.dll的命令是“Regsvr32HelloProxy.dll”;注冊HelloComponent.exe的命令是“HelloComponent.exe-regserver”,也就是說它能夠自我注冊。第24頁/共44頁268.2DCOM分布構(gòu)件框架實(shí)例:HelloWorld客戶程序(HelloClient.cpp)第25頁/共44頁278.2DCOM分布構(gòu)件框架實(shí)例:HelloWorld客戶程序(HelloClient.cpp):客戶端請求服務(wù)器創(chuàng)建對(duì)象的過程第26頁/共44頁288.2DCOM分布構(gòu)件框架實(shí)例:HelloWorld客戶方的部署和測試:將HelloClient.exe和HelloProxy.dll拷貝到客戶機(jī)上,并將HelloProxy.dll注冊到客戶機(jī)上的DCOM系統(tǒng)中。第27頁/共44頁298.2DCOM分布構(gòu)件框架對(duì)原理的進(jìn)一步分析:客戶與EXE服務(wù)構(gòu)件之間有三次直接的交互,如圖上的數(shù)字6、8、9所標(biāo)識(shí)。但在分布環(huán)境下,客戶是不可能直接與EXE構(gòu)件在接口層面直接交互的。實(shí)際上,上述三次交互都是由本地機(jī)器上的代理對(duì)象或殘根對(duì)象完成的,而這些代理對(duì)象和殘根對(duì)象都是由前面生成的代理/殘根動(dòng)態(tài)鏈接庫HelloProxy.dll生成,只不過這個(gè)過程由DCOM系統(tǒng)控制,外界看不到而已。第28頁/共44頁30第29頁/共44頁31內(nèi)容8.1 EJB分布構(gòu)件框架8.2 DCOM分布構(gòu)件框架8.3 CORBA分布構(gòu)件框架第30頁/共44頁328.3CORBA分布構(gòu)件框架CORBA(CommonObjectRequestBrokerArchitecture,分布對(duì)象請求代理體系結(jié)構(gòu))是一種異構(gòu)平臺(tái)下的語言無關(guān)的分布對(duì)象互操作模型。由OMG(ObjectManagementGroup,對(duì)象管理組織)于1990年首次提出,后經(jīng)過多版改進(jìn),最新的CORBA規(guī)范是2008年發(fā)布的3.1版。第31頁/共44頁338.3CORBA分布構(gòu)件框架基本體系結(jié)構(gòu)第32頁/共44頁348.3CORBA分布構(gòu)件框架基本體系結(jié)構(gòu)第33頁/共44頁358.3CORBA分布構(gòu)件框架基本體系結(jié)構(gòu)第34頁/共44頁368.3CORBA分布構(gòu)件框架實(shí)例分析:HelloWorld,包含四個(gè)文件和七個(gè)Java類第35頁/共44頁378.3CORBA分布構(gòu)件框架實(shí)例分析:HelloWorld接口的定義(Hello.idl)第36頁/共44頁388.3CORBA分布構(gòu)件框架實(shí)例分析:HelloWorld服務(wù)器端的對(duì)象實(shí)現(xiàn)類的定義HelloImpl.java第37頁/共44頁398.3CORBA分布構(gòu)件框架實(shí)例分析:HelloWorld服務(wù)器端的主程序(Server.java)第38頁/共44頁408.3CORBA分布構(gòu)件框架實(shí)例分析:HelloWorld客戶端程序(Client.java)第39頁/共44頁418.3CORBA分布構(gòu)件框架實(shí)例分析:HelloWorld測試在服務(wù)器上使用JacORB的ns命

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論