国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

EJB應用技術的體系結構詳解(1)

2019-11-18 15:59:25
字體:
來源:轉載
供稿:網友

EJB的體系結構

EJB的上層的分布式應用程序是基于對象組件模型的,低層的事務服務用了API技術。EJB技術簡化了用java語言編寫的企業應用系統的開發,配置,和執行。EJB的體系結構的規范由Sun Microsystems公司制定。InPRise的EJB容器是基于1.1版的規范。

EJB技術定義了一組可重用的組件:Enterprise Beans。你可以利用這些組件,象搭積木一樣的建立你的分布式應用程序。當你把代碼寫好之后,這些組件就被組合到特定的文件中去。每個文件有一個或多個Enterprise Beans,在加上一些配置參數。最后,這些Enterprise Beans被配置到一個裝了EJB容器的平臺上。客戶能夠通過這些Beans的home接口,定位到某個beans,并產生這個beans的一個實例。這樣,客戶就能夠調用Beans的應用方法和遠程接口。

EJB服務器作為容器和低層平臺的橋梁治理著EJB容器和函數。它向EJB容器提供了訪問系統服務的能力。例如:數據庫的治理和事務的治理,或者對于其它的Enterprise的應用服務器。

所有的EJB 實例都運行在EJB容器中。容器提供了系統級的服務,控制了EJB的生命周期。因為容器把握了絕大多數系統級的issues(呵呵,不知道怎么翻譯)。Enterprise Beans 的開發者不需要應用邏輯考慮進來。通常來說,EJB容器把握了以下的系統級issues.

1、Security--配置描述器(The Deployment descriptor)定義了客戶能夠訪問的不同的應用函數。容器通過只答應授權的客戶訪問這些函數來達到這個效果。

2、Remote Connectivity--容器為遠程鏈接治理著低層的通信issues,而且對Enterprise Beas的開發者和客戶都隱藏了通信issues.Enterprise Beans的開發者在編寫應用方法的時候,就象是在條用本地的平臺一樣的。客戶也不清楚他們調用的方法可能是在遠程被處理的。

3、Life Cycle managment--客戶簡單的創建一個Enterprise beans的實例,并通常取消一個實例。而容器治理著Enterprise Beans的實例,使Enterprise Beans實現最大的效能和內存利用率。容器能夠這樣來激活和去活Enterprise Beans,保持眾多客戶共享的實例池。等等。

4、Trasction management—配置描述器定義了Enterprise beans 的事務處理的需求。容器治理著那些治理分? 事務處理的復雜的issues。這些事務可能要在不同的平臺之間更新數據庫。容器使這些事務之間互相獨立,互不干擾。保證所有的更新數據庫都是成功發生的,否者,就回滾到事務處理之前的狀態。

Enterprise Beans 組件

Enterprise Beans 是基于分布式事務處理的企業級應用程序的組件。所有的Enterprise beans都有如下的特點:

  1. Enterprise beans包含了處理企業數據的應用邏輯
  2. Enterprise beans provider定義了Enterprise beans的客戶界面(Enterprise beans 的遠程界面)。這樣的界面不受容器和服務器的影響。于是,當一個Enterprise beans被集合到一個應用程序中去時,不用更改代碼和重新編譯
  3. Enterprise beans能夠被定制
  4. 各種系統級的服務,例如安全和事務處理的特性,都不是屬于Enterprise beans class的。而是由配置和組裝應用程序的工具來實現。

有兩種類型的Enterprise beans

session beans

Session beans 是一種作為單個的client執行的對象。作為對遠程的任務請求的相應,容器產生一個Session beans 的實例。一個Session beans有一個client.從某種程度上來說,一個Session bean 對于服務器來說就代表了它的那個client.Session beans 也能用于事務,它能夠更新共享的數據,但它不直接描繪這些共享的數據。

Session beans 的生命周期是相對較短的。典型的是,只有當client保持會話的時候,Session beans 才是活著的。一旦client退出了,Session beans 就不再與client相聯系了。Session beans被看成是瞬時的,因為假如容器崩潰了,那么client必須重新建立一個新的Session對象來繼續會話。

一個Session bean典型的聲明了與client的互操作或者會話。也就是說,Session bean了在客戶會話期間,通過方法的調用,把握Client的信息。一個具有狀態的Session bean稱為有狀態的Session bean.當client終止與Session beans互操作的時候.會話終止了,而且,bean 也不再擁有狀態值。

一個Session bean也可能是一個無狀態的 session bean.無狀態的Session beans并不把握它的客戶的信息或者狀態。Client能夠調用beans的方法來完成一些操作。但是,beans只是在方法調用的時候才知道client的參數變量。當方法調用完成以后,beans并不繼續保持這些參數變量。這樣,所有的無狀態的session beans的實例都是相同的,除非它正在方法調用期間。這樣,無狀態的Session beans就能夠支持多個client.容器能夠聲明一個無狀態的Session beans.能夠將任何Session beans指定給任何client.

Entity Beans

Entity Beans對數據庫中的數據提供了一種對象的視圖。例如:一個Entity bean能夠模擬數據庫表中一行相關的數據。多個client能夠共享訪問同一個Entity bean.多個client也能夠同時的訪問同一個Entity bean.Entity beans通過事務的上下文來訪問或更新下層的數據。這樣,數據的完整性就能夠被保證。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 乌审旗| 衡阳县| 沙河市| 子洲县| 武冈市| 宜良县| 义马市| 加查县| 乌拉特后旗| 常州市| 南涧| 镇江市| 陆良县| 泰兴市| 江达县| 牡丹江市| 夏河县| 吉隆县| 沈丘县| 龙门县| 白朗县| 前郭尔| 海淀区| 宽城| 梧州市| 固安县| 浦东新区| 长武县| 东至县| 保山市| 昌黎县| 乐安县| 永川市| 镇平县| 大宁县| 孟村| 长丰县| 乐亭县| 杭州市| 衡阳市| 深圳市|