|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | |||||||||
参照先:
説明
| インタフェースの概要 | |
|---|---|
| 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 が、アクティブオブジェクトマップ内にアクティブなサーバントを保持するかどうかを指定します。 |
| ServantRetentionPolicyOperations | このポリシーは、作成済みの POA が、アクティブオブジェクトマップ内にアクティブなサーバントを保持するかどうかを指定します。 |
| 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(TM) Platform, Standard Edition 6 が準拠する公式の OMG 仕様のサポートセクションの正確なリストは、「Java(TM) SE 6 での正式な CORBA サポート仕様」を参照してください。
PortableServer モジュールは、次の POA 関連のインタフェースを定義します。
また、POA は Servant ネイティブ型も定義します。
上記の各インタフェースには、Operations インタフェースが関連付けられています。Operations インタフェースは、idlj コンパイラによって生成され、それに関連付けられたインタフェースに定義されているメソッドのメソッドシグニチャーを格納します。Operations インタフェースはクライアントとサーバーの両方からアクセスできますが、それに関連付けられたインタフェースはクライアントからしか呼び出せません。
PolicyValue で終わるクラスは、POA のポリシーを設定する create_POA 呼び出しに使用される値を提供します。デモンストレーションについては、以下のコード例を参照してください。PolicyValue ファイルには、次のものがあります。
IdAssignmentPolicyValue
IdUniquenessPolicyValue
ImplicitActivationPolicyValue
LifespanPolicyValue
RequestProcessingPolicyValue
ServantRetentionPolicyValue
ThreadPolicyValue
OMG IDL インタフェースのすべてのユーザー定義型で生成されるヘルパークラスは、ユーザー定義型の操作に必要な static メソッドを提供します。ヘルパークラスには、アプリケーションプログラマが使用するメソッドが 1 つだけあります。narrow メソッドです。IDL インタフェースからマップされる Java インタフェースだけが、narrow メソッドを含むヘルパークラスを備えています。 したがって、PortableServer パッケージでは、次のクラスにだけ narrow メソッドがあります。
ForwardRequestHelper
ServantActivatorHelper
ServantLocatorHelper
POA クラスは、ServantActivator または ServantLocator の実装に使用します。
ForwardRequest 例外は、現在の要求と後続の ForwardRequest 要求をその例外の forward_reference メンバーに示されたオブジェクトに配信する責任があることを ORB に通知します。
PortableServer によって行われる処理のほとんどは、ユーザーには見えません。このため、上記のインタフェースのうちでプログラマが使用するものはほんのわずかです。残りのインタフェースは、ORB 実装によって提供されます。アプリケーションプログラマが使用するインタフェースは、次のとおりです。
AdapterActivator
アダプタアクティベータは POA と関連付けられます。アダプタアクティベータを使用すると、POA は、必要に応じて子 POA を作成できるようになります。子 POA の作成は、子 POA (または複数の子のどれか) を指定した要求を受信したときの副作用として実行されるか、あるいは起動パラメータ値 TRUE を使用して find_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 Platform Standard Ed. 6 |
|||||||||
| 前のパッケージ 次のパッケージ | フレームあり フレームなし | |||||||||
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。