WebSphere Application Server Network Deployment, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

シン・アプリケーション・クライアント

シン・アプリケーション・クライアントには、エンタープライズ Bean と対話することのできる、 軽量でダウンロード可能な Java アプリケーション・ランタイムが用意されています。

シン・アプリケーション・クライアントは、 クライアント・マシン上での J2EE プラットフォームのオーバーヘッドなしで、 軽量の Java クライアント・アプリケーション・プログラミング環境を 必要とするユーザーをサポートするように、設計されています。 このクライアント用のプログラミング・モデルは、CORBA プログラミング・モデルの影響を強く受けていますが、エンタープライズ Bean へのアクセスをサポートします。

このクライアントからエンタープライズ Bean にアクセスするときに、 クライアント・アプリケーションは、エンタープライズ Bean オブジェクト参照を CORBA オブジェクトの参照と見なすことができます。

ツールは、クライアント上には存在せず、サーバー上に存在します。 ユーザーは、クライアント・アプリケーションを開発し、 エンタープライズ Bean および CORBA オブジェクトに対して必要なクライアント・バインディングを生成し、 それらすべてを 1 つに束ねて、クライアント・マシンにインストールする責任があります。

シン・アプリケーション・クライアントは、 クライアントとサーバーの間の通信ニーズをサポートするために必要なランタイムを提供します。

シン・アプリケーション・クライアントは RMI-IIOP プロトコルを使用します。 このプロトコルを使用することによって、 クライアント・アプリケーションは、エンタープライズ Bean 参照および CORBA オブジェクト参照にアクセスできるようになるだけでなく、 サポートされている任意の CORBA サービスをクライアント・アプリケーションが使用できるようになります。 RMI-IIOP プロトコルの使用および CORBA サービスのアクセス可能性は、 エンタープライズ Bean 参照と CORBA オブジェクト参照の両方へアクセスする必要があるクライアント・アプリケーションを開発する際にユーザーを支援します。

J2EE と CORBA の環境を 1 つのクライアント・アプリケーションで組み合わせて使用する場合には、 2 つのプログラミング・モデルの相違を理解する必要があり、 それぞれを適切に使用し管理する必要があります。

シン・アプリケーション・クライアント・ランタイムは、 オブジェクトの解決、 セキュリティー、信頼性・可用性・保守性 (RAS)、 およびその他のサービスについて、 クライアント・アプリケーションに必要なサポートを提供します。 しかし、これらのサービスへのアクセスを容易にするコンテナーはサポートしません。 例えば、エンタープライズ Bean またはローカル・リソース解決のためのニックネーム の使用に対するサポートはありません。 エンタープライズ Bean ソースへの解決 (JNDI か CosNaming を使用する) の場合、 クライアント・アプリケーションは、ネーム・サーバーの場所と参照がネーム・スペースにバインドされるときに使われる完全修飾名を知っている必要があります。 ローカル・リソースへの解決の場合、 クライアント・アプリケーションは JNDI ルックアップを使用してリソースへ解決することはできません。 その代わりに、クライアント・アプリケーションは適切な API (JDBC、JMS、その他) を使ってリソースへの接続を明示的に作成する必要があります。 このクライアントは、 クライアント・アプリケーションが必要とするサービスに対する初期化は行いません。 例えば、クライアント・アプリケーションは、 CosNaming または JNDI API のいずれかを使用したネーミング・サービスの初期化を担当します。

シン・アプリケーション・クライアントは、 J2EE アプリケーション・クライアントで使用可能な大部分のクライアント・サービスへのアクセスを提供します。 しかし、これらのサービスへのアクセスは、 シン・クライアントの場合、J2EE アプリケーション・クライアントでのアクセスと同じほどに容易ではありません。 J2EE クライアントは、必要なサービスまたはリソースにアクセスするのに単純な JNDI ネーム・スペース・ルックアップを実行すればよいという利点を持っています。 シン・クライアントはクライアント・アプリケーションで、 それぞれのリソースごとに明示的にコーディングをする必要があります。 例えば、エンタープライズ Bean ホームをルックアップするには、 J2EE アプリケーション・クライアントでは次のコードが必要です。

java.lang.Object ejbHome =  initialContext.lookup("java:comp/env/ejb/MyEJBHome");
MyEJBHome = (MyEJBHome)javax.rmi.PortableRemoteObject.narrow(ejbHome,  MyEJBHome.class);

しかし、シン・アプリケーション・クライアントでは、コードは、以下に示すようにさらに明示的でなければなりません。

java.lang.Object ejbHome =
  initialContext.lookup("the/fully/qualified/path/to/actual/home/in/namespace/MyEJBHome");
MyEJBHome = (MyEJBHome)javax.rmi.PortableRemoteObject.narrow(ejbHome,  MyEJBHome.class);

この例では、J2EE アプリケーション・クライアントは、 java:comp ネーム・スペースから論理名にアクセスします。 J2EE クライアント・ランタイムは、その名前を物理ロケーションに解決し、 参照をクライアント・アプリケーションに戻します。 シン・アプリケーション・クライアントは、 ネーム・スペース内のエンタープライズ Bean Home の完全修飾された物理ロケーションを認識している必要があります。 この場所が変更されると、 シン・クライアント・アプリケーションは lookup() ステートメントに置かれた値も変更する必要があります。

J2EE クライアントでは、クライアント・アプリケーションは、論理名を使用するので、 このような変更から保護されています。 変更により EAR ファイルの再デプロイメントが必要となる場合がありますが、 実際のクライアント・アプリケーションのコードは変更されません。

シン・アプリケーション・クライアントは、 main 関数が入っている在来の Java アプリケーションです。 WebSphere シン・アプリケーション・クライアントは、 リモート・エンタープライズ Bean にアクセスするためのランタイム・サポートと、 各種サービスのインプリメンテーションを提供します。 このクライアントは CORBA オブジェクトおよび CORBA ベースのサービスにもアクセスすることができます。 1 つのクライアント・アプリケーション内で両方の環境を使用する場合には、 エンタープライズ Bean と CORBA のプログラミング・モデルの相違を理解し、 両方の環境を管理する必要があります。

例えば、CORBA プログラミング・モデルでは、 ネーム・スペースでのオブジェクトの解決のために CORBA CosNaming ネーム・サービスを使用する必要があります。 エンタープライズ Bean プログラミング・モデルでは、JNDI ネーム・サービスを使用する必要があります。 クライアント・アプリケーションは、 これら 2 つのネーミング・サービスの使用を初期化し適切に管理する必要があります。

エンタープライズ Bean モデルには、もう 1 つの相違があります。 エンタープライズ Bean モデル内の JNDI インプリメンテーションを使用して、 オブジェクト・リクエスト・ブローカー (ORB) を初期化します。 クライアント・アプリケーションは、ORB が存在することを認識しません。 しかし、CORBA モデルでは、クライアント・アプリケーションが ORB.init() 静的メソッドを用いて ORB を明示的に初期化することが必要になります。

このアプリケーション・クライアントには、 シン・アプリケーション・クライアント・ランタイムを使用可能にするために CLASSPATH 環境変数と JAVA_HOME 環境変数を設定して使用できる、バッチ・コマンドが提供されています。




関連タスク
シン・アプリケーション・クライアント・コードの実行
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 10:13:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/ccli_thinclient.html