freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計(jì)算機(jī)軟件及應(yīng)用]ejb3課件(已修改)

2024-10-31 04:05 本頁(yè)面
 

【正文】 EJB Enterprise JavaBeans ? Enterprise JavaBeans架構(gòu)是一個(gè)用于開發(fā)和部署基于組件的分布式業(yè)務(wù)應(yīng)用的組件架構(gòu)。采用 Enterprise JavaBeans架構(gòu)編寫的應(yīng)用是可伸縮的、事務(wù)性的、多用戶安全的??梢砸淮尉帉戇@些應(yīng)用,然后部署于任何支持 Enterprise JavaBeans規(guī)范的服務(wù)器平臺(tái)上 ? Enterprise JavaBeans 是一個(gè)用于分布式業(yè)務(wù)應(yīng)用的標(biāo)準(zhǔn)服務(wù)器端組件模型。 服務(wù)器端組件 ? 一個(gè)服務(wù)器端組件模型可以定義一個(gè)用來(lái)開發(fā)分布式業(yè)務(wù)對(duì)象的架構(gòu),以便將針對(duì)分布式對(duì)象系統(tǒng)的訪問(wèn)組合起來(lái),該系統(tǒng)體現(xiàn)了目標(biāo)明確的業(yè)務(wù)邏輯的流動(dòng)性。 ? 服務(wù)器端組件模型被用于中間層的應(yīng)用服務(wù)器,此類服務(wù)器在運(yùn)行時(shí)管理組件,并使其可以被遠(yuǎn)程客戶端訪問(wèn)到。 ? 依賴于組件模型,服務(wù)器管理員通過(guò)給屬性設(shè)置特定取值,可以為服務(wù)器端組件聲明事務(wù)、安全,甚至持久化行為。 EJB的分類 ? 有三類基本的 bean: entity, session,以及messagedriven。 ? Entity bean是持久化的,它代表著人,場(chǎng)所,或者事物。 ? Session bean則是客戶端的延伸,它包含著一個(gè)定義了其他 bean如何交互的流程或任務(wù)流。Session bean不是持久化的:它們從客戶端接受狀態(tài),并且只在客戶端需要它們的時(shí)候才存在。 ? Messagedriven bean則是用于整合的,它允許其他應(yīng)用使用 JMS或別的 EJB應(yīng)用進(jìn)行交互。和 stateless session bean一樣,messagedriven bean不用持久化,并且不維持會(huì)話狀態(tài)。 Session Bean ? Session bean就像代理一樣為客戶端管理業(yè)務(wù)流程或任務(wù),他們是安置業(yè)務(wù)邏輯的理想之所。 Session bean時(shí)不必持久化的;在session bean里不存在任何直接映射到數(shù)據(jù)庫(kù)或者存儲(chǔ)于若干 session 之間的信息。 ? Session bean與 entity bean、數(shù)據(jù)、還有其他用以控制任務(wù)流的資源一起工作。任務(wù)流是任何業(yè)務(wù)系統(tǒng)的本質(zhì)所在,因?yàn)樗磉_(dá)了實(shí)體間如何交互,用以模塑實(shí)際的業(yè)務(wù)。Session bean控制任務(wù)和資源,但它們自身并不代表實(shí)際數(shù)據(jù) 代理存根和 bean實(shí)例 ? 當(dāng)你的業(yè)務(wù)邏輯與 session bean交互時(shí),它并不直接與 bean class的實(shí)例打交道,而是經(jīng)由 bean的遠(yuǎn)程或本地接口。當(dāng)調(diào)用遠(yuǎn)程或本地接口的方法時(shí),你所使用的對(duì)象實(shí)例時(shí)一種被稱為代理存根的東西。該代理存根實(shí)現(xiàn)了 session bean的遠(yuǎn)程或本地接口,并且負(fù)責(zé)將你的 session bean方法調(diào)用經(jīng)過(guò)網(wǎng)絡(luò)發(fā)生到遠(yuǎn)程 EJB容器,或?qū)⒄?qǐng)求路由到位于本地 JVM內(nèi)的 EJB容器。 ? 代理存根可以由像 RMI的 rmic這樣的預(yù)編譯器生成,或者像 JBoss那樣,在部署期間使用 JDK所帶的 成。 Session Bean ? 將任務(wù)流邏輯移到 session bean中還簡(jiǎn)化了客戶端應(yīng)用,降低了網(wǎng)絡(luò)通信。過(guò)量的網(wǎng)絡(luò)通信是分布式對(duì)象系統(tǒng)的常見(jiàn)問(wèn)題:它能搞垮服務(wù)器和阻塞網(wǎng)絡(luò),損害響應(yīng)時(shí)間和性能。 ? 如果使用得當(dāng),通過(guò)限制執(zhí)行一項(xiàng)任務(wù)所需的請(qǐng)求數(shù)量, session bean能夠減小網(wǎng)絡(luò)通信流量。 Sessoin bean的使用者將任務(wù)流所涉及的不同 bean之間的彼此交互保持于服務(wù)器端。位于客戶端應(yīng)用的一次方法調(diào)用導(dǎo)致了服務(wù)器端的多次方法調(diào)用,但是網(wǎng)絡(luò)所看到的僅僅是由客戶端調(diào)用 session bean所引起的通信流量。 Stateful和 stateless session bean ? Sessoin bean既可以是有狀態(tài)的,也可以是無(wú)狀態(tài)的。當(dāng)客戶端使用 stateless session bean時(shí) session bean就維持了會(huì)話狀態(tài)。會(huì)話狀態(tài)是不寫入數(shù)據(jù)庫(kù)的。它是客戶端在維持與某一 enterprise bean的會(huì)話時(shí)保存于內(nèi)存中的信息,并且一旦會(huì)話結(jié)束或 EJB容器崩潰,就會(huì)隨即消失。 ? 會(huì)話狀態(tài)僅在客戶端應(yīng)用正在使用 bean 的時(shí)候才會(huì)被保持。一旦客戶端關(guān)閉或釋放了Session Bean,會(huì)話狀態(tài)就永久性消失了。Stateful Session Bean只為同一客戶端提供服務(wù)。 持久化和 Entity Beans ? 持久化是位于 JDBC 之上的一個(gè)更高層抽象。持久層將對(duì)象映射到數(shù)據(jù)庫(kù),以便在查詢、裝載、更新,或刪除對(duì)象的時(shí)候,無(wú)須使用像 JDBC 那樣繁瑣的 API。在 EJB 的早期版本中,持久化是 EJB 平臺(tái)的一部分。從EJB 開始,持久化已經(jīng)自成規(guī)范,被稱為 Java Persistence API。 ? Java Persistence API 定義了一種方法,可以將常規(guī)的普通 Java 對(duì)象(有時(shí)被稱作 POJO)映射到數(shù)據(jù)庫(kù)。這些普通 Java 對(duì)象被稱作 entity bean。 Entity Bean ? Java entity bean僅作為普通Java對(duì)象( POJO)來(lái)使用,并且是映射到關(guān)系數(shù)據(jù)庫(kù)表的。與其他類型的 EJB不同, entity bean可以被分配,序列化,并像任何其他 POJO那樣通過(guò)網(wǎng)絡(luò)被發(fā)送出去。 ? 用 entity bean來(lái)模塑那些可以被表達(dá)成名詞的業(yè)務(wù)概念。例如,一個(gè) entity bean可以代表一位顧客、一臺(tái)設(shè)備、存貨清單中的一項(xiàng),或者一個(gè)地點(diǎn)。為了實(shí)現(xiàn)entity bean,你需要定義一個(gè) bean class,并選擇合適的數(shù)據(jù)成員作為該 bean class的標(biāo)識(shí)(即主鍵)。 ? 主鍵是一種提供數(shù)據(jù)庫(kù)指向的手段。它給予 entity bean class以標(biāo)識(shí),即作為內(nèi)存中的對(duì)象,也作為數(shù)據(jù)庫(kù)里表中的一行。主鍵可以是一個(gè)類,也可以是基本類型( primitive type)。 持久化和 Entity Beans ? 在 EJB 規(guī)范中, entity bean 非常笨重并且依賴于應(yīng)用服務(wù)器和整個(gè) Java EE 運(yùn)行時(shí)環(huán)境。在 Java Persistence 里, entity bean 是受持久化服務(wù)管理的常規(guī) Java 對(duì)象。與 EJB 不同, Java Persistence 中的 entity bean 并不要求實(shí)現(xiàn)任何規(guī)范特有的接口或類。 ? 舊規(guī)范的另一個(gè)缺點(diǎn)在于,它讓每個(gè)廠商自行決定對(duì)象如何映射到數(shù)據(jù)庫(kù)。這使得 EJB 的 entity bean通常無(wú)法在不同廠商間進(jìn)行移植。新的 Java Persistence 規(guī)范定義了一個(gè)完備的對(duì)象關(guān)系映射( ORM),如此,entity bean 便能夠在廠商之間輕松移植。 持久化和 Entity Beans ? 由于 entity bean在 Java對(duì)象了,它們不僅可以在應(yīng)用服務(wù)器之間進(jìn)行移植;還能用于應(yīng)用服務(wù)器之外的常規(guī) Java應(yīng)用程序,甚至可以用于客戶端和服務(wù)器之間的數(shù)據(jù)傳輸。這使得設(shè)計(jì)更加簡(jiǎn)潔,也更為緊湊。 ? Java Persistence 中的 entity bean不同于 entity bean。應(yīng)用程序的代碼可以直接與 entity bean class打交道,而且不用像 EJB session bean那樣,通過(guò)一個(gè)組件接口來(lái)與 entity交互。 ? 與舊版本的 EJB規(guī)范不同,在 Java Persistence中,entity bean和 Entity Manager不要求必須使用應(yīng)用服務(wù)器。你可以在單元測(cè)試和 Java應(yīng)用程序中使用 Java Persistence,就像使用任何別的 Java庫(kù)一樣。 MessageDriven Beans ? Messagedriven bean處理異步消息的 EJB。 ? Messagedriven bean是用來(lái)整合其他應(yīng)用系統(tǒng)的,這些系統(tǒng)和 EJB應(yīng)用一起工作。需要訪問(wèn) EJB應(yīng)用的Java應(yīng)用或遺留系統(tǒng)可以通過(guò) JMS向 messagedriven bean發(fā)送消息。由這些 bean來(lái)處理消息,并利用其他的 entity bean和 session bean來(lái)執(zhí)行必要的任務(wù)。 ? 在許多場(chǎng)合下, JMSMDB扮演著與 stateless session bean同樣的角色:它們管理著 entity bean和session bean的任務(wù)流。這些任務(wù)是由應(yīng)用系統(tǒng)利用JMS發(fā)送的異步消息來(lái)發(fā)起的。與 session bean調(diào)用其組件接口的業(yè)務(wù)方法以做出響應(yīng)。因?yàn)橄⑹钱惒降?,所以發(fā)送消息的客戶端就不用期望有回復(fù)了??蛻舳撕?jiǎn)單的將消息發(fā)送,然后便可將其拋在腦后。 異步通信 ? 除了支持基于 RMI 的分布式業(yè)務(wù)對(duì)象,Enterprise JavaBeans 還支持異步通信。一個(gè)異步通信系統(tǒng)允許兩個(gè)或多個(gè)應(yīng)用以消息的形式交換信息。在這里,消息( message)是一個(gè)攜帶業(yè)務(wù)數(shù)據(jù)和網(wǎng)絡(luò)路由包頭( work routing header)的自包含數(shù)據(jù)包( selfcontained package)。 ? 包含在消息中的業(yè)務(wù)數(shù)據(jù),根據(jù)業(yè)務(wù)場(chǎng)景可以是任何內(nèi)容,并且時(shí)常包含有關(guān)業(yè)務(wù)性事務(wù)的信息。在企業(yè)系統(tǒng)中,消息用于通知一個(gè)應(yīng)用系統(tǒng)中的某一事件,或是在其他系統(tǒng)內(nèi)發(fā)生的事件。 異步通信 ? 使用面向消息的中間件( messageoriented middleware, MOM)可以在網(wǎng)絡(luò)上將異步消息從一個(gè)應(yīng)用傳送到另一個(gè)應(yīng)用。 MOM 產(chǎn)品確保消息正確地分布于應(yīng)用系統(tǒng)間。此外,MOM通常還為需要可靠的交換大量消息的企業(yè)提供容錯(cuò)、負(fù)載均衡、可伸縮,以及事務(wù)支持。 ? Enterprise JavaBeans 將 MOM 的功能集成到其組件模型中。該集成擴(kuò)展了 EJB 平臺(tái),因而它同時(shí)支持 RMI 和異步消息。 EJB 借助 Java Message Service( JMS)和一個(gè)被稱作 messagedriven bean 的新型組件來(lái)支持異步消息。 Java Message Service ? 雖然每個(gè) MOM 廠商各自實(shí)現(xiàn)自己的網(wǎng)絡(luò)協(xié)議,路由和管理設(shè)施,但是不同 MOM 為開發(fā)者所提供的 API,其基本語(yǔ)義是相同的。正是 API 的相似性使得 Java Message Service( JMS)成為可能。 ? JMS 是一組廠商無(wú)關(guān)( vendoragnostic)的 Java API,可以用于許多不同的 MOM 廠商。 JMS 與 JDBC 非常類似,應(yīng)用程序開發(fā)者能夠重復(fù)使用同樣的 API 來(lái)訪問(wèn)許多不同的系統(tǒng)。如果廠商提供了 JMS 兼容服務(wù)提供程序,我們就可以使用 JMS API 來(lái)向其發(fā)送消息,并且接收來(lái)自該提供商的消息。 JCA ? 在 EJB 中,借助新的 Java EE Connector Architecture( JCA ),messagedriven bean向其他協(xié)議的擴(kuò)展成為了可能。該規(guī)范定義了一個(gè)用于和企業(yè)信息系統(tǒng)交互的可移植的編程模型。在 Java EE 中使用 JCA 就如同在計(jì)算機(jī)硬件中使用 USB。 Web Services ? web service 代表了分布計(jì)算領(lǐng)域里最近的潮流。盡管 web service 這一術(shù)語(yǔ)已經(jīng)廣為流傳,但是要形成具體化的定義卻比較困難,因?yàn)樵谧罡邔用嫔希?web service 并非專屬于任何特定技術(shù)或平臺(tái)。 ? SOAP ? WSDL ? UDDI XML部署描述文件和 JAR文件 ? 注解允許開發(fā)人員在 bean class文件中直接制定數(shù)據(jù)庫(kù)映射用元數(shù)據(jù)。 ? Java Persistence規(guī)范允許你在一個(gè)叫做映射文件( mapping file)的 XML部署描述文件中定義 bean到數(shù)據(jù)庫(kù)的映射。該 XML映射文件可以用來(lái)取代 bean class的注解。 ? 如果 bean class的注解早已存在,那么該映射文件能夠覆蓋這些注解,或是提供附加的元數(shù)據(jù)。 XML映射文件的優(yōu)先級(jí)總是高于任何 bean class的注解。一旦定義很好 XML部署描述文件和 entity bean class,你必須將它們?nèi)看虬M(jìn)一個(gè) Java Archive( JAR)文件里 Session Bean的開發(fā) Session Bean ? Session bean可分為兩種基本類型:stateless和 stateful。 Stateless session bean是一組相關(guān)服務(wù)的集合,每個(gè)服務(wù)由一個(gè)方法來(lái)表示。 Stateless session bean不維護(hù)任何介于兩次方法調(diào)用間的狀態(tài)。當(dāng)你調(diào)用 stateless session bean的某個(gè)方法時(shí),它會(huì)執(zhí)行該方法并返回結(jié)果,既不了解也不關(guān)心前后還有哪些調(diào)用請(qǐng)求。因此,可以將stateless session bean理解為一組子程序(procedure)或批處理程序 (batch progr。am),它們根據(jù)傳的參數(shù)執(zhí)行請(qǐng)求,然后返回結(jié)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1