このトピックでは、標準的な Compute Grid 環境を構成する各コンポーネントについて説明します。
ジョブ・スケジューラーは、サブミット、キャンセル、リスタートなど、すべてのジョブ管理機能を提供する Compute Grid コンポーネントです。 この機能では、実行を待機するジョブ、実行中のジョブ、および実行済みのジョブなど、全ジョブのヒストリーを維持します。 また、実行したジョブの使用データも維持します。 ジョブ・スケジューラーは、WebSphere Network Deployment 環境内の WebSphere Application Server (またはクラスター) でホストされます。 1 つの Websphere セルで保持できるのは、1 つのジョブ・スケジューラーのみです。
バッチ・コンテナーは、バッチ・ジョブの実行環境を提供する Compute Grid コンポーネントです。 Java 2 Platform Enterprise Edition (J2EE) をベースにしたバッチ・アプリケーションは、WebSphere バッチ・コンテナーの内部で実行されます。 ネイティブ実行のアプリケーションは個別のコンテナー内で実行され、下記で説明されています。 バッチ・コンテナーは、WebSphere Network Deployment 環境内の WebSphere Application Server (またはクラスター) でホストされます。 Websphere セルでは、さまざまなバッチ・コンテナーを保持できます。
J2EE バッチ・アプリケーションは、通常の WebSphere J2EE アプリケーションであり、 1 つ以上の Java バッチ・アプリケーションの実装が格納された Enterprise Archive (EAR) ファイルとしてデプロイされます。 これらの Java バッチ・アプリケーションは、トランザクション・バッチ、または計算主体のプログラミングのいずれかのモデルに従っています。
ジョブは、ジョブ制御言語を使用して記述されます。 Compute Grid のジョブでは、XML をベースにしたジョブ制御言語を使用します。 ジョブ記述では、実行するアプリケーション、その入力、および出力を識別します。
ジョブ・スケジューラーでは、その管理機能にアクセスする 3 つのタイプの API (ジョブ管理コンソールという Web インターフェース、lrcmd というシェル・コマンド行、および API) を公開していて、 Web サービスおよび EJB のいずれとしても使用可能です。
ジョブ・スケジューラーでは、リレーショナル・データベースを使用してジョブ情報を保管しています。 WebSphere Application Server でサポートされる任意のリレーショナル・データベースを使用できます。 ジョブ・スケジューラーがクラスター化されている場合、このデータベースは DB2 などのネットワーク・データベースにする必要があります。
バッチ・コンテナーでは、リレーショナル・データベースを使用してトランザクション・バッチ・アプリケーションのチェックポイント情報を保管しています。 このデータベースには、WebSphere Application Server でサポートされる任意のリレーショナル・データベースを使用できます。 バッチ・コンテナーがクラスター化されている場合、このデータベースは DB2 などのネットワーク・データベースにする必要があります。
これは、WebSphere Application Server の接続マネージャーでサポートされている、スケジューラー表およびコンテナー表への標準 JDBC 接続です。
Compute Grid ジョブ・スケジューラーでは、ネイティブ実行のジョブも管理できます。 ネイティブ実行ジョブとは、非対話式のバックグラウンド・コマンドとして実行可能な任意のアプリケーションであるネイティブ・アプリケーションの呼び出しを記述したジョブです。 これには、Java のメインプログラム、COBOL や C++ などの言語で作成されたコンパイル済みアプリケーション、および実質的にすべての種類のスクリプトが含まれています。
下図には、ネイティブ実行ジョブの実行環境を構成する追加のエレメントが示されています。
ネイティブ実行エンドポイントとは、ネイティブ実行ジョブを実行できる Websphere セル内のノードです。 ネイティブ実行ジョブの実行には、WebSphere Application Server ノードおよび非 WebSphere Application Server ノードの両方を使用できます。 WebSphere Application Server ノードでは、ジョブ・スケジューラーによってノード・エージェントが使用され、ネイティブ実行ジョブが制御されます。 非 WebSphere Application Server ノードでは、ミドルウェア・エージェントによってネイティブ実行ジョブが制御されます。
WebSphere Application Server ノードがネイティブ実行ジョブの実行エンドポイントとなる場合があります。 ジョブ・スケジューラーは、ネイティブ実行ジョブをノード・エージェントに送信します。そのノード・エージェントは、指定されたネイティブ・アプリケーションが呼び出されるネイティブのオペレーティング・システム・プロセスを作成します。
ネイティブ・アプリケーションは、それ独自のプロセスで実行され、ジョブ記述 (xJCL) で指定された入力パラメーターが渡されます。 このプロセスは、xJCL で指定された環境変数を使用して構成されます。
ネイティブ実行ジョブは、非 WebSphere ノードでも実行可能です。 非 WebSphere Application Server ノードは、ミドルウェア・ノードとも呼ばれます。 ミドルウェア・ノードでは、ネイティブ実行ジョブの実行にミドルウェア・エージェントと呼ばれる小さな制御エージェントが必要です。 ミドルウェア・エージェントは、ジョブ・スケジューラーに制御点を提供します。 このミドルウェア・エージェントを使用して、ジョブ・スケジューラーはミドルウェア・ノードで実行するようにネイティブ実行ジョブを送信します。 ミドルウェア・エージェントは、ノード・エージェントと同様に、各ネイティブ実行アプリケーションをそれ独自のプロセスで実行します。