軟件構(gòu)件與中間件技術(shù)_第1頁
軟件構(gòu)件與中間件技術(shù)_第2頁
軟件構(gòu)件與中間件技術(shù)_第3頁
軟件構(gòu)件與中間件技術(shù)_第4頁
軟件構(gòu)件與中間件技術(shù)_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件構(gòu)件與中間件技術(shù)cb什么是E J B? Enterprise Java Bean開發(fā)EJ B的目的 易于擴展,健壯并安全的應用程序傳統(tǒng)多層應用程序:企業(yè)級程序特點. 大量硬件和應用程序通過網(wǎng)絡互連'應用程序在網(wǎng)絡間共享(網(wǎng)絡調(diào)用)5大型企業(yè)系統(tǒng)需要考慮的問題遠程方法調(diào)用事務(并發(fā))軟件升級(重新部署)需要停機?正確/透明關(guān)機(用戶感覺不到)系統(tǒng)監(jiān)控(全部)對象生命周期(客戶少,用資源也少?) 安全和高速緩沖I中間件J 以上工作由Q 客戶端但rowser)來做?現(xiàn)成網(wǎng)絡服務器來做?(只能做部份) n 由數(shù)據(jù)庫服務器來做?(-小部份) 由程序員自己寫代碼處理(困難)螢入中間件復雜問題由

2、它來處理自行開發(fā)中間件的問題各人開發(fā)各人的,標準不統(tǒng)一,不兼容 開發(fā)難度大,周期太長,不符合需要 J 2 E E容器是一個合適的,標準化的 中間件E J B是中間件體系的一部份 E J B是什么?可以部署 一個E J B是由java開發(fā)的, 的,服務器端的組件 E J B體系指的是這些組件組成的體系 結(jié)構(gòu),由j2ee容器支持EJB的優(yōu)點它是統(tǒng)一的中間件標準.按這一標準開 發(fā),容易買到合適的組件,也容易賣掉 組件有利潤 E J B有統(tǒng)一的規(guī)范,程序移植性非常 好.系統(tǒng)開發(fā)規(guī)范,所以快速?。ǚ浅V匾┙M件結(jié)構(gòu)除了EJB還有.比爾蓋次.net的可控組件公共對象請求代理結(jié)構(gòu)(COREA)11E J B

3、具體是什么?.在用戶看來,E J B是若干.java程序 一個xml格式的部署文件 -個j2ee容器的專門部署文件 EJB程序經(jīng)過部署,在weblogic等容器上運行,自動實現(xiàn)中間件的特性(看前面的特性一頁)13部署文件說明ejb的組成的位置Ejb的實際類Weblogic等服務器的部署文件至少五個部份組成一個ejb,打包成ja詬發(fā)布到服務器吃EJB可以做哪些業(yè)務內(nèi)容?執(zhí)行商務邏緝(算算稅收,圖書過期罰 款等)數(shù)據(jù)庫存?。ㄍㄟ^jdbc),取指定圖書, 計算某本書的借書量訪問其它系統(tǒng),比如erp誰?怎么使用E J B? 網(wǎng)絡連接胖客戶(Applet/application)胖客戶(Applet/a

4、pplication)企業(yè)客戶瘦客戶SOARWSDLServleSspjJEJBSWeb serviceEJBS回顧:E J B的角色工具提供:系統(tǒng)集成者Bean提供者署者 二管理維護者Ejb容器提供者17j2ee中間件必須支持的AP I E J B © RM I J N D I © J D B C (3) J T A J M S J SP / SERVLET© XML 2 J A A SE J B基礎結(jié)構(gòu) Ejb的完整組成部份是 Eib類,遠程接口和ejb對象本地接口和本地對象 Home接口和Home對象部署描述文件 Ejbjar文件EJB類型(老生常談) Se

5、ssion Bean會話bean, 動詞.處理動作:計算價格,計算罰款等 Entity Bean實體bean.名詞.是數(shù)據(jù)庫 數(shù)據(jù)的java對象表示MessageBean也代表動作,只不過只 有發(fā)消息才能驅(qū)動它們.23client1遠程扌妾口1stub本地機器(非常一重要)遠程接口RMI Distributed Protocol顯式中間件顯式中間件特點可控制性強,一切都在掌握中.代碼難寫.我想算一下圖書罰款,可是. Step"!安全檢查(遠程調(diào)用) Step2事務檢查(遠程調(diào)用) Step3存取數(shù)據(jù)庫(遠程調(diào)用) Step4完成調(diào)用(遠程調(diào)用)每次都必須走stub/skeleton,

6、非常復雜!直接 指定中間件的動作 真要命使用顯式中間件的代碼調(diào)用安全檢查啟動事務從數(shù)據(jù)庫裝數(shù)據(jù)數(shù)據(jù)計算罰款向數(shù)據(jù)庫寫數(shù)據(jù) 結(jié)束事務注銷用戶Z顯式中間件對用戶要求過高J 顯式中間件有U Tuxedo 和CICS(weblogic里專門有tuxedo連接器)程序必須清楚中間件的api.刪程序員腦子要爆炸了隱式中間件非常簡單要算罰款么?代碼只要寫 計算罰款結(jié)束.那么,安全檢查,事務,數(shù)據(jù)庫這些東 西還做不做呢?隱式中間件25EJB Home & EJB Object27CopyrlQhi EMC 3un MIna. All rlgh:« rMervpd.E J B的組成1 E J

7、B類#以計算罰款處理為例, 心邏輯:算罰款.E J B類包括核#所有E J B類必須實現(xiàn) _iavax.ejb.EnterpriseBean 接 口實際上三類ejb實現(xiàn)各自的接口,比如 session Bean等,Wsession Bean最終實 現(xiàn) EnterpriseBean 接 口 EJB組成2 EJB對象J 還記得攔截器么?D Ejb放在遠程機器上,而客戶在本地機器 上 客戶不可以直接調(diào)用遠程ejb,要通過網(wǎng) 絡客戶不希望自己控制安全,事務等 攔截器在j2ee里實現(xiàn)為一個EJB對象29EJB對象Ejb container31EJB結(jié)構(gòu)33Ejb組成3遠程接口#遠程接口,E J B提供者

8、寫,表明#1給用戶看見多少業(yè)務方法2實現(xiàn)哪些系統(tǒng)方法Public interface javax.ejb.EJBObject getEJBHome,getHandle,.)遠程接口的作用客戶不直接和ejb或者ejb對象打交道 Ejb有些什么方法,只能看遠程接口里寫 了多少方法遠程接口是ejb的對外表現(xiàn)形式.遠程接口里的業(yè)務方法全部可以通過網(wǎng) 絡遠程調(diào)用.Ejb組成之四:Home對象 Ejb對象和遠程接口都在遠程機器上 Ejb被ejb對象和遠程接口的裳了遠程機器上的遠程接口表現(xiàn)了 ejb的行為 可是,客戶在本地怎么辦?位置透明 Ejb可以存在任何一臺機器上 /ejb

9、名,這種形式不靈活所以用至(JJNDI,要找一個ejb您必須: 1連接到J ND I服務器 2查到名字,再取得引用 3把引用返回給客戶 4客戶創(chuàng)建一個ejb實例Home對象的B的 Home對象負責在本地:生成ejb實例刪除ejb實例生成和刪除和容器緊密相關(guān),所以 Home對象由系統(tǒng)生成(容器)EJB部件之五:Home接口 Home對象用戶看不見創(chuàng)建ejb實例的時候,需要參數(shù)初始化 參數(shù)通過Home接口傳給容器,然后傳給Home對象,然后給遠程接口 Home接口用于指明定義,生成,回收查找ejb實例具體工作由Home對象來做Home接口和對象43EJB RMI Over HOP#containe

10、r deployment toolEJBClientemc. Ino. All rlgh& recerveid.EJBHome EJBObject SkeletonsEJBHomeEJBObjectStubs 1becejN. L45Ejb部件六本地對象和本地接口 Ejb的調(diào)用過程本質(zhì)上還是通過stub- skelet on 的.通過網(wǎng)絡連接比較費時本地調(diào)試時用EJBLocalHome代替EJBHome,不通過網(wǎng)絡連接本機犧牲了所有的分布網(wǎng)絡特性,調(diào)試時用Ejb部件之七部署描述安全性,事務,數(shù)據(jù)庫都交給容器了,用戶不必要編碼.但必須告訴容器,處理的方式 Xml來告訴容器,稱為部署描述

11、Bean的生命期,安全性,事務都在xml里面指 定和web.xml有點象.Web.xml描述web應用程 岸,這里是ejb-jar.xml描述.和web.xml是同 一級的Ejb部件之八供應商文件 Weblogic Jboss Websphere特定容器的特定描述 Ejb-weblogic.xml? Ejb-websphere.xml?告訴容器額外的信息49Ejb部件之九ejb-jar文件Ejb-jar51出賣/購買ejb 一個Ejb-jar文件打了包賣每個bean單獨賣單獨賣了以后賣服務,幫用戶組裝部署賺錢中說了這么多,復習! Ejb核心類/實例 Remote接口和EJB對象 Home接口和

12、Home對象本地接口和本地對象部署描述文件供應商文件 Ejb-jar 文件在W eblogic中創(chuàng)建并調(diào)試ejb準備軟件:jbuilder+weblogic目標:創(chuàng)建一個無狀態(tài)的sessionbean發(fā)布到weblogic編一個客戶程序調(diào)用bean的方法,同時 輸出結(jié)果。注意:weblogic的jndi在t3:/:7001±,使用方法同一般 jndi.笫一個ejb要做什么?有一個getName的邏輯方法,用來顯示 hello world的字符串Step 1建立ejb模塊 Filenewejb module,比如叫firstEjb出現(xiàn)圖形化的ejb-designer右

13、鍵,創(chuàng)建一個新的ejb,指定為ejb2.0的 sessionbea n 起個名字叫TestSesStep2:給ejb加入商務邏緝方法右擊testSes,add method加入方法,方法名 是getName,返回String,然后接口類型是 Remote(對象自己的)雙擊左欄MtestSesBean文件名,打開這個 bean這就是核心bean,繼承sessionBean,方法 getName改成public javaJang.String getName() return"你寫歡迎的話吧! ”;Step3自動產(chǎn)生jar文件在project上選擇Make,等啊等啊。成功樂!雙擊jar文

14、件。 anifest-Version: 1.0 zengejb/TestSesHomeclass/home 接 口 Name: META-INF/ejb-jar.xml/部署文件 Name: zengejb/TestSes.class/ejb對象 Name: META-INF/weblogic-ejb-jar.xml/應用 Name: zengejb/TestSesBean.class/邏緝類這些是什么?全部自動產(chǎn)生,爽啊59 Step4產(chǎn)生的結(jié)果看一看Home 接口 -TestSesHome.classRemote 接 口zen gejb/TestSes.class打包文件META-INF/

15、ejb-jar.xmlEjb本身zengejb/TestSesBean.class:應用程序配置META-INF/weblogic-ejb-jar.xmlStep5配置并在jbuilder內(nèi)部運 行weblogic (保持運行)項目右鍵,run中選擇servero Run選擇server, server就在jbuilder內(nèi) 部啟動。Step6 將 ejb 發(fā)布到 weblogic在jar文件上打右鍵直接選擇deploy屏幕底出現(xiàn)success就okay 了。請大家看weblogic控制臺,有您的ejb模 塊了碼?當然也能手工deploy,想必大 家熟悉了。Step7建立客戶端程序測試ejb File new -ejb test die nt 自動產(chǎn)生一個 TestSesClientl .java 文件此文件做的是:連接 weblogic查找jnd沖ejb的位置找到ejb后建立一個對象句柄用句柄調(diào)用getName并顯示結(jié)果Step8加入測試代碼 try client.create(); String name=clientgetName(); System.out.println("the name is"+name +"!"); catch(Exceptione) e

溫馨提示

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

評論

0/150

提交評論