J2EE的13種核心技術(二)
來源:互聯網
上載者:User
出處:UML軟體工程組織
Java Naming and Directory Interface (JNDI)
JNDI API被用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地檔案系統,後者在應用伺服器中的對象。
在JNDI中,在目錄結構中的每一個結點稱為context。每一個JNDI名字都是相對於context的。這裡沒有絕對名字的概念存在。對一個應用來說,它可以通過使用 InitialContext 類來得到其第一個context:
Context ctx = new InitialContext();
應用可以通過這個初始化的context經有這個分類樹來定位它所需要的資源或對象。例如,假設你在Weblogic伺服器中展開了一個EJB並將home介面綁定到名字 myApp.myEJB ,那麼該EJB的某個客戶在取得一個初始化context以後,可以通過以下語句定位home介面:
MyEJBHome home = ctx.lookup( "myApp.myEJB" );
在這個例子中,一旦你有了對被請求對象的參考,EJB的home介面就可以在它上面調用方法。我們將在下面的"Enterprise Java Beans"章節中做更多的介紹。
以上關於JNDI的討論只是冰山之一角而已。如果要更進一步地在context中尋找對象,JNDI也提供了一些方法來進行以下操作:
將一個對象插入或綁定到context。這在你展開一個EJB的時候是很有效。
從context中移去對象。
列出context中的所有對象。
建立或刪除子一級的context。
接下來,我們要開始關注EJB了。
Enterprise Java Beans (EJB)
J2EE技術之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個架構來開發和實施分布式商務邏輯,由此很顯著地簡化了具有延展性和高度複雜的企業級應用的開發。EJB規範定義了EJB組件在何時如何與它們的容器進行互動作用。容器負責提供公用的服務,例如目錄服務、交易管理、安全性、資源緩衝池以及容錯性。
EJB規範定義了3中基本的bean類型:
Stateless session beans: 提供某種單一的服務,不維持任何狀態,在伺服器故障發生時無法繼續存在,生命期相對較短。例如,一個stateless session bean可能被用於執行溫度轉換計算。
Stateful session bean: T提供了與用戶端的會話互動,可以儲存狀態從而代表一個客戶。典型例子是購物車。Stateful session bean在伺服器故障時無法繼續生存,生命氣相對較短。每一個執行個體只用於一個單個的線程。
Entity beans: 提供了一致性資料的表示-- 通常存放在資料庫中 -- 在伺服器故障發生後能繼續存在。多使用者情況下可以使用EJB來表示相同的資料。entity EJB的一個典型例子是客戶的帳號資訊。