WebSphere Extended Deployment, Version 6.0.x     Operating Systems: AIX, HP-UX, Linux, Solaris, Windows, z/OS

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

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

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

ジョブ概念は。すべての長時間実行アプリケーションで共有され、別の場所で説明されます。 以下のセクションでは、非同期 Bean プログラミング・モデルへの拡張に関する追加情報を示します。

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

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

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

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

コントローラー Bean

コントローラー Bean は、実行環境が数値計算アプリケーションのジョブを制御できるようにする、 数値計算アプリケーションのデプロイメント記述子で定義されるステートレス・セッション Bean です。 このステートレス・セッション Bean の実装は、WebSphere によって提供されます。 アプリケーションの唯一の職責は、エンタープライズ Bean モジュールの 1 つのデプロイメント記述子に、以下の定義に示されるステートレス・セッション Bean を組み込むことです。 それぞれの数値計算アプリケーションごとに 1 つのコントローラー Bean を定義する必要があることに注意してください。 コントローラー Bean の実装は WebSphere ランタイムに提供されるため、 アプリケーション・デプロイヤーは数値計算アプリケーションのデプロイメント中にエンタープライズ 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。
      
      <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 が定義されている場合、 アプリケーション・サーバーの開始時にそれらが実行されます。 アプリケーションのジョブが到着すると、数値計算の実行環境 (LREE.ear) は、アプリケーションの EJB モジュール・デプロイメント記述子に定義された CIControllerBean ステートレス・セッションを呼び出します。 このステートレス・セッション Bean の JNDI 名は、ジョブの 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 オブジェクトへの呼び出しはこれ以上行われず、またそれへの参照すべてが除去されます。




Related concepts
長時間実行アプリケーションの開発

Concept topic    

Terms of Use | Feedback Last updated: Mar 20, 2006 12:32:00 PM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/scheduler/cschintensve.html

© Copyright IBM 2005, 2006. All Rights Reserved.
This information center is powered by Eclipse technology. (http://www.eclipse.org)