WebSphere Extended Deployment Compute Grid, Version 6.1.1
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows,


数値計算のプログラミング・モデル

数値計算のアプリケーションは、従来の Java 2 Platform Enterprise Edition (J2EE) の要求および応答パラダイムに適切に対応できない、計算主体の処理を実行するアプリケーションです。

数値計算アプリケーション

これらのアプリケーションには、従来の J2EE プログラミング・モデル用として不適当なもとなる可能性のある 以下のような多くの特性があります。
  • 非同期の実行依頼および作業の開始の必要性。
  • 作業が延長時間に実行される必要性。
  • 個々の作業単位の処理がオペレーターおよび管理者によって見ることができ、管理しやすい ものである必要性。
WebSphere Extended Deployment で提供される数値計算のプログラミング・モデルでは、これらの必要性を 扱う環境が提供されています。 数値計算のプログラミング・モデルの中心には 2 つの基本概念があります。
  1. 作業を非同期に実行依頼し管理するジョブの使用。
  2. 延長時間に実行する作業をサポートする非同期 Bean プログラミング・モデルについての若干の拡張。

以下のセクションでは、非同期 Bean プログラミング・モデルへの拡張に関する追加情報を示します。

コントローラー bean

コントローラー Bean は、ランタイム環境が数値計算アプリケーションのジョブを制御できるようにする、 数値計算アプリケーションのデプロイメント記述子で定義されるステートレス・セッション Bean です。 このステートレス・セッション Bean の実装は、アプリケーション・サーバーによって提供されます。 アプリケーションは、エンタープライズ Bean モジュールの 1 つのデプロイメント記述子に、以下の定義に示されるステートレス・セッション Bean を組み込みます。 それぞれの数値計算アプリケーションごとに 1 つのコントローラー Bean を 定義する必要があります。 コントローラー Bean の実装はアプリケーション・サーバーのランタイムに提供されるため、 アプリケーション・デプロイヤーは数値計算アプリケーションのデプロイメント中に エンタープライズ Bean のデプロイメントを要求することはできません。
<session id="ここに適切な名前を指定します">
   <ejb-name>CIController</ejb-name>
   <home>com.ibm.ws.ci.CIControllerHome</home>
   <remote>com.ibm.ws.ci.CIController</remote>
   <ejb-class>com.ibm.ws.ci.CIControllerBean</ejb-class>
   <session-type>Stateless</session-type>
   <transaction-type>Bean</transaction-type>
   <resource-ref id="WorkManager_ResourceRef">
      <description>
         WorkManager that is used to execute jobs.
      
      <res-ref-name>wm/CIWorkManager</res-ref-name>
      <res-type>commonj.work.WorkManager</res-type>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope>
   

数値計算アプリケーションのパッケージ化

数値計算のアプリケーションのためのロジック、いくつかの CIWork オブジェクト、 およびそれらの CIWork オブジェクトをサポートするために必要なクラス は、J2EE アプリケーションの Enterprise Archive (EAR) ファイルの エンタープライズ Bean モジュールにパッケージされています。 エンタープライズ Bean モジュールのデプロイメント記述子には、 前述のステートレス・セッション Bean の定義が含まれていなければならないことに注意してください。 アプリケーション自体が他のエンタープライズ Bean またはリソースを使用する場合、 これらの Bean の定義およびリソースもまたデプロイメント記述子に出力される可能性があります。 IBM Rational Application Developer のような J2EE 開発ツールは、 エンタープライズ Bean モジュールおよび非同期 Bean を含む J2EE アプリケーション を構成する場合と同じように使用して、数値計算アプリケーションの開発、 パッケージを行うことができます。

数値計算アプリケーションのライフサイクル

数値計算アプリケーションは、他の J2EE アプリケーションと完全に同じ方法で アプリケーション・サーバーによって開始します。 アプリケーションで任意の開始 Bean が定義されている場合、 アプリケーション・サーバーの開始時にそれらが実行されます。 実行するアプリケーションのジョブが到着すると、数値計算の実行環境 (GEE.ear) は、 そのアプリケーションの EJB モジュール・デプロイメント記述子に定義された CIControllerBean ステートレス・セッション Bean を呼び出します。 このステートレス・セッション Bean の Java Naming and Directory Interface (JNDI) 名は、 ジョブの XML ジョブ制御言語 (xJCL) で指定されます。 それぞれのジョブ・ステップごとに、CIControllerBean は以下のアクションを行います。
  1. CIWork クラスの非引数コンストラクターを使用してジョブ・ステップの xJCL のクラス名エレメントによって指定された、アプリケーションの CIWork オブジェクトをインスタンス化します。
  2. CIWork オブジェクトの setProperties() メソッドを呼び出し、 ジョブ・ステップの xJCL で定義されたプロパティーをすべて受け渡します。
  3. エンタープライズ Bean モジュールのデプロイメント記述子が定義された作業マネージャーを検索し、 それを使用して、CIWork オブジェクトの run() メソッドを非同期で呼び出します。

run() メソッドが戻る前にジョブが取り消されると、CIControllerBean は別のスレッド で CIWork オブジェクトの release() メソッドを呼び出します。run() メソッドを直ちに戻させるロジックを release() メソッドに配置することは、長時間実行アプリケーションの開発者の担当範囲となります。run() メソッドが戻るまで、ジョブはキャンセル保留 状態を維持します。

ジョブがキャンセルされず、run() メソッドが例外を返さずに戻った場合、 ジョブは正常に完了します。run() メソッドが例外をスローした場合、ジョブの状況は実行の失敗 になります。 run() メソッドが (正常に、または例外を返して) 戻った場合、 CIWork オブジェクトはこれ以上呼び出されず、オブジェクトへの参照はすべて除去されます。

数値計算のジョブ・ステップ

すべての長時間実行ジョブと同様、数値計算のジョブは複数のジョブ・ステップに分割されます。 数値計算のジョブの場合、それぞれのジョブ・ステップは com.ibm.websphere.ci.CIWork インターフェースを実装するクラスのインスタンスによって表されます。 CIWork インターフェースは、アプリケーション・サーバーの非同期 Bean プログラミング・モデル および Java Specification Request (JSR) 237 から commonj.Work 作業インターフェースを拡張します。 これらの拡張機能は 2 つのメソッドからなり、ジョブで指定されたジョブ・ステップ特定の プロパティーを CIWork オブジェクトに受け渡す方法を提供します。

詳しくは API 資料を参照してください。

非同期 Bean について学習するには、WebSphere Application Server インフォメーション・センターの 『非同期 Bean の使用』セクションを参照してください。




関連概念
バッチ・プログラミング・モデル
関連タスク
Compute Gridのプログラミング・モデル
概念のトピック    

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

最終更新: 2009/09/17 16時38分56秒EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1m1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/cschintensve.html