| 
 | JavaTM 2 Platform Standard Ed. 5.0 | |||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | |||||||||
参照先:
          説明
| インタフェースの概要 | |
|---|---|
| AdapterActivator | アダプタアクティベータは、子 POA (POA の子供のどれか) の名前を指定する要求を受信したときの副作用として、または activate パラメータ値を TRUE に設定して find_POA を呼び出したときに、POA が必要に応じて子 POA を作成できるようにします。 | 
| AdapterActivatorOperations | アダプタアクティベータは、子 POA (POA の子供のどれか) の名前を指定する要求を受信したときの副作用として、または activate パラメータ値を TRUE に設定して find_POA を呼び出したときに、POA が必要に応じて子 POA を作成できるようにします。 | 
| Current | PortableServer::Current インタフェースは、CORBA::Current から派生し、メソッドの各実装でそのメソッド呼び出しの対象となるオブジェクトの ID にアクセスできるようにします。 | 
| CurrentOperations | PortableServer::Current インタフェースは、CORBA::Current から派生し、メソッドの各実装でそのメソッド呼び出しの対象となるオブジェクトの ID にアクセスできるようにします。 | 
| ID_ASSIGNMENT_POLICY_ID | org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java。 | 
| ID_UNIQUENESS_POLICY_ID | org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java。 | 
| IdAssignmentPolicy | IdAssignmentPolicy は、作成された POA のオブジェクト ID がアプリケーションまたは ORB のどちらによって生成されるのかを指定します。 | 
| IdAssignmentPolicyOperations | IdAssignmentPolicy は、作成された POA のオブジェクト ID がアプリケーションまたは ORB のどちらによって生成されるのかを指定します。 | 
| IdUniquenessPolicy | IdUniquenessPolicy は、作成された POA で起動されるサーバントに、一意のオブジェクト ID が必要かどうかを示します。 | 
| IdUniquenessPolicyOperations | IdUniquenessPolicy は、作成された POA で起動されるサーバントに、一意のオブジェクト ID が必要かどうかを示します。 | 
| IMPLICIT_ACTIVATION_POLICY_ID | org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java。 | 
| ImplicitActivationPolicy | このポリシーは、作成された POA でサーバントの暗黙的な起動がサポートされているかどうかを示します。 | 
| ImplicitActivationPolicyOperations | このポリシーは、作成された POA でサーバントの暗黙的な起動がサポートされているかどうかを示します。 | 
| LIFESPAN_POLICY_ID | org/omg/PortableServer/LIFESPAN_POLICY_ID.java。 | 
| LifespanPolicy | LifespanPolicy は、作成された POA で実装されたオブジェクトの有効期間を示します。 | 
| LifespanPolicyOperations | LifespanPolicy は、作成された POA で実装されたオブジェクトの有効期間を示します。 | 
| POA | POA オブジェクトは、オブジェクトのコレクションの実装を管理します。 | 
| POAManager | 各 POA オブジェクトには、POAManager オブジェクトが関連付けられています。 | 
| POAManagerOperations | 各 POA オブジェクトには、POAManager オブジェクトが関連付けられています。 | 
| POAOperations | POA オブジェクトは、オブジェクトのコレクションの実装を管理します。 | 
| REQUEST_PROCESSING_POLICY_ID | org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.java。 | 
| RequestProcessingPolicy | このポリシーは、作成された POA がどのように要求を処理するかを示します。 | 
| RequestProcessingPolicyOperations | このポリシーは、作成された POA がどのように要求を処理するかを示します。 | 
| SERVANT_RETENTION_POLICY_ID | org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.java。 | 
| ServantActivator | POA に RETAINポリシーが指定されているときは、サーバントマネージャとしてServantActivatorが使用されます。 | 
| ServantActivatorOperations | POA に RETAINポリシーが指定されているときは、サーバントマネージャとしてServantActivatorが使用されます。 | 
| ServantLocator | POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャとして ServantLocator が使用されます。 | 
| ServantLocatorOperations | POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャとして ServantLocator が使用されます。 | 
| ServantManager | サーバントマネージャは、POA が停止中のオブジェクトをターゲットとした要求を受信したときに、必要に応じてオブジェクトを起動できるようにします。 | 
| ServantManagerOperations | サーバントマネージャは、POA が停止中のオブジェクトをターゲットとした要求を受信したときに、必要に応じてオブジェクトを起動できるようにします。 | 
| ServantRetentionPolicy | このポリシーは、作成された POA がアクティブなサーバントを Active Object Map に保存するかどうかを示します。 | 
| ServantRetentionPolicyOperations | このポリシーは、作成された POA がアクティブなサーバントを Active Object Map に保存するかどうかを示します。 | 
| THREAD_POLICY_ID | org/omg/PortableServer/THREAD_POLICY_ID.java。 | 
| ThreadPolicy | ThreadPolicy は、作成された POA で使用されるスレッドモデルを示します。 | 
| ThreadPolicyOperations | ThreadPolicy は、作成された POA で使用されるスレッドモデルを示します。 | 
| クラスの概要 | |
|---|---|
| _ServantActivatorStub | POA に RETAINポリシーが指定されているときは、サーバントマネージャとしてServantActivatorが使用されます。 | 
| _ServantLocatorStub | POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャとして ServantLocator が使用されます。 | 
| CurrentHelper | PortableServer::Current インタフェースは、CORBA::Current から派生し、メソッドの各実装でそのメソッド呼び出しの対象となるオブジェクトの ID にアクセスできるようにします。 | 
| DynamicImplementation | オブジェクト呼び出しの動的な処理を可能にします。 | 
| ForwardRequestHelper | org/omg/PortableServer/ForwardRequestHelper.java。 | 
| IdAssignmentPolicyValue | IdAssignmentPolicyValue には、次の値を指定できます。 | 
| IdUniquenessPolicyValue | IdUniquenessPolicyValue には、次の値を指定できます。 | 
| ImplicitActivationPolicyValue | ImplicitActivationPolicyValue には、次のセマンティクスを指定できます。 | 
| LifespanPolicyValue | LifespanPolicyValue には、次の値を指定できます。 | 
| POAHelper | POA オブジェクトは、オブジェクトのコレクションの実装を管理します。 | 
| RequestProcessingPolicyValue | RequestProcessingPolicyValue には、次の値を指定できます。 | 
| Servant | ネイティブな Servant型を定義します。 | 
| ServantActivatorHelper | POA に RETAINポリシーが指定されているときは、サーバントマネージャとしてServantActivatorが使用されます。 | 
| ServantActivatorPOA | POA に RETAINポリシーが指定されているときは、サーバントマネージャとしてServantActivatorが使用されます。 | 
| ServantLocatorHelper | POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャとして ServantLocator が使用されます。 | 
| ServantLocatorPOA | POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャとして ServantLocator が使用されます。 | 
| ServantRetentionPolicyValue | ServantRetentionPolicyValue には、次の値を指定できます。 | 
| ThreadPolicyValue | ThreadPolicyValue には、次の値を指定できます。 | 
| 例外の概要 | |
|---|---|
| ForwardRequest | org/omg/PortableServer/ForwardRequest.java。 | 
クラスとインタフェースを提供し、アプリケーションのサーバ側を複数ベンダー間 ORB で移植できるようにします。
Java では、POA (Portable Object Adaptor) ベースの DSI (Dynamic Skeleton Interface) サーバントは、標準の DynamicImplementation クラスから継承します。これは、Servant クラスから継承しています。ネイティブな Servant 型は、POA の PortableServer モジュールによって定義されます。Java では、Servant 型は Java の org.omg.PortableServer.Servant クラスにマップされます。このクラスは、すべての POA サーバント実装の基底クラスとして機能し、アプリケーションプログラマが呼び出すことのできるいくつかのメソッドのほかに、POA そのものによって呼び出され、サーバントの動作を制御するためにユーザがオーバーライドできるメソッドも提供します。
Java 2 Platform, Standard Edition, v.1.4 が準拠している正式な OMG 仕様のサポート済みのセクションについては、「J2SE 1.4 における CORBA サポートの正式な仕様」を参照してください。
PortableServer モジュールは、次の POA 関連のインタフェースを定義します。
また、POA は Servant ネイティブ型も定義します。
上記の各インタフェースには、Operations インタフェースが関連付けられています。Operations インタフェースは、idlj コンパイラによって生成され、それに関連付けられたインタフェースに定義されているメソッドのメソッドシグニチャーを格納します。Operations インタフェースはクライアントとサーバの両方からアクセスできますが、それに関連付けられたインタフェースはクライアントからしか呼び出せません。
PolicyValue で終わるクラスは、POA のポリシーを設定する create_POA 呼び出しに使用される値を提供します。デモンストレーションについては、以下のコード例を参照してください。PolicyValue ファイルには、次のものがあります。
 
IdAssignmentPolicyValue IdUniquenessPolicyValueImplicitActivationPolicyValueLifespanPolicyValueRequestProcessingPolicyValueServantRetentionPolicyValueThreadPolicyValue
ヘルパークラスは、OMG IDL インタフェース内のすべてのユーザ定義型に対して生成され、それらの型の操作に必要な static メソッドを提供します。ヘルパークラスには、アプリケーションプログラマが使用するメソッドが 1 つだけあります。narrow メソッドです。IDL インタフェースからマップされる Java インタフェースだけが、narrow メソッドを含むヘルパークラスを備えています。したがって、PortableServer パッケージでは、次のクラスにだけ narrow メソッドがあります。
ForwardRequestHelperServantActivatorHelperServantLocatorHelper
POA クラスは、ServantActivator または ServantLocator の実装に使用します。
ForwardRequest 例外は、現在の要求と後続の ForwardRequest 要求をその例外の forward_reference メンバに示されたオブジェクトに配信する責任があることを ORB に通知します。
PortableServer によって行われる処理のほとんどは、ユーザには見えません。このため、上記のインタフェースのうちでプログラマが使用するものはほんのわずかです。残りのインタフェースは、ORB 実装によって提供されます。アプリケーションプログラマが使用するインタフェースは、次のとおりです。
AdapterActivator       アダプタアクティベータは、POA に関連付けられており、子 POA (POA の子供のいずれか) の名前を指定する要求を受信したときの副作用として、または activate パラメータ値を TRUE に設定して find_POA を呼び出したときに、POA が必要に応じて子 POA を作成できるようにします。実行のはじめで必要な POA をすべて作成するアプリケーションサーバでは、アダプタアクティベータを使用する必要も用意する必要もありません。つまり、要求の処理時に POA を作成する必要がある場合にだけアダプタアクティベータが必要になります。        
ServantLocator POA に NON_RETAIN ポリシーが指定されているときは、サーバントマネージャとして ServantLocator が使用されます。     
ServantActivator       POA に RETAIN ポリシーが指定されているときは、サーバントマネージャとして ServantActivator が使用されます。 
このパッケージは、Cookie 型を out パラメータとして渡すための CookieHolder クラスを提供します。CookieHolder クラスは、基本型のほかのホルダークラスとまったく同じパターンに従います。
Java IDL の概要については、次のドキュメントを参照してください。
import javax.naming.InitialContext;import javax.naming.Context;import javax.rmi.PortableRemoteObject ;import com.sun.corba.se.impl.poa.POAORB;import org.omg.PortableServer.*;import java.util.*;import org.omg.CORBA.*;import javax.rmi.CORBA.Stub;import javax.rmi.CORBA.Util;
public class HelloServer { public HelloServer(String[] args) { try { Properties p = System.getProperties(); //   p.put("org.omg.CORBA.ORBClass", "com.sun.corba.ee.internal.POA.POAORB"); ORB orb = ORB.init( args, p );
POA rootPOA = (POA)orb.resolve_initial_references("RootPOA"); Policy[] tpolicy = new Policy[3]; tpolicy[0] = rootPOA.create_lifespan_policy( LifespanPolicyValue.TRANSIENT ); tpolicy[1] = rootPOA.create_request_processing_policy( RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY ); tpolicy[2] = rootPOA.create_servant_retention_policy( ServantRetentionPolicyValue.RETAIN); POA tpoa = rootPOA.create_POA("MyTransientPOA", null, tpolicy);
String  ObjectId = "MyObjectId"; byte[] oid = ObjectId.getBytes();
org.omg.CORBA.Object obj = tpoa.create_reference_with_id(oid, new _HelloImpl_Tie()._all_interfaces(tpoa, oid)[0]); HelloInterface helloRef = (HelloInterface)PortableRemoteObject.narrow( obj, HelloInterface.class );
Context initialNamingContext = new InitialContext(); initialNamingContext.rebind("HelloService", helloRef); System.out.println("Hello Server: Ready..."); orb.run(); } catch (Exception e) { System.out.println("Trouble: " + e); e.printStackTrace(); }  }
public static void main(String args[]) { new HelloServer( args ); }}
 
| 
 | JavaTM 2 Platform Standard Ed. 5.0 | |||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | |||||||||
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。