Feature Pack for Modern Batch / SCA 1 ISE Webアプリケーション基盤
by user
Comments
Transcript
Feature Pack for Modern Batch / SCA 1 ISE Webアプリケーション基盤
Feature Pack for Modern Batch / SCA ISE Webアプリケーション基盤 高浜 めぐみ([email protected]) 1 08.Feature Pack for Modern Batch / SCA Disclaimer この資料は日本アイ・ビー・エム株式会社ならびに日本アイ・ビー・エム システムズ・エンジニアリ ング株式会社の正式なレビューを受けておりません。 当資料は、資料内で説明されている製品の仕様を保証するものではありません。 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2010年12月現在の情 報であり、製品の新しいリリース、PTFなどによって動作、仕様が変わる可能性があるのでご注意 下さい。 今後国内で提供されるリリース情報は、対応する発表レターなどでご確認ください。 2 WAS V7 最新動向Workshop 2 08.Feature Pack for Modern Batch / SCA Agenda §1. Feature Pack for Modern Batch 1. 2. 3. 4. 5. Javaバッチの背景 Feature Pack for Modern Batchとは 基本コンポーネント バッチ要件ごとの提供機能 Feature Pack for Modern Batchの開発 §2. Feature Pack for SCA 1. Open SCAとは 2. Feature Pack for SCA概要 (参考)Feature Pack for XML 3 WAS V7 最新動向Workshop 3 08. Feature Pack for Modern Batch / SCA §1. Feature Pack for Modern Batch 4 WAS V7 最新動向Workshop 4 08.Feature Pack for Modern Batch / SCA Javaバッチの背景 既存資産に対応可能な技術者の減少 – 従来のバッチ処理は、COBOL、PL/Iなどが中心 – これらのスキル保有者減少によりメンテナンスが困難 新規システム構築時の課題 – 開発言語を統一化したい(複数開発言語の担当者が必要) Javaバッチにすると Javaバッチにすると オンラインもバッチもJava開発担当者 オンラインもバッチもJava開発担当者 – オンライン処理システムとの連携が困難 Javaバッチにすると Javaバッチにすると Javaの台頭 – Java実行性能の向上 – 大規模開発における実績 オンライン処理との連携が容易 オンライン処理との連携が容易 オンラインバッチでのコンポーネント共有が可能 オンラインバッチでのコンポーネント共有が可能 オンライン処理のバッチ化、バッチ処理のオンライン化が可能 Javaでバッチ処理を実装しよう! 5 WAS V7 最新動向Workshop Javaバッチ処理登場には以下の3つの背景があります。 ・既存資産に対応可能な技術者の減少 ・新規システム構築時の問題 ・Java実行性能の向上 5 08.Feature Pack for Modern Batch / SCA Feature Pack for Modern Batch(FP Batch)とは JavaEEアプリケーション・サーバー(WAS)を活用した、バッチ/グリッド・アプリ ケーション実行エンジン – 以下の形態のプログラム実行をサポート • トランザクション・バッチ • 数値計算型(CI:Compute Intensiveアプリケーション) – ジョブ受付とジョブ実行のサーバーを分離、非同期に処理を実行 • ジョブ受付/ジョブ割振サーバー:ジョブ・スケジューラー • JavaEEバッチ実行環境サーバー:グリッド・エンドポイント POJOによるバッチアプリケーション開発 – 最低限必要なコーディングはジョブ実装部分のPOJO開発のみ トランザクション・バッチ 数値計算型 Feature Pack for Modern Batch WebSphere Application Server V7 6 WAS V7 最新動向Workshop Feature Pack for Modern Batch(以降、FP Batch)はJavaEEアプリケーション・ サーバー(WAS)を活用したバッチ/グリッド・アプリケーションの実行エンジンを提供し ています。トランザクション・バッチと数値計算型の2つのタイプのアプリケーション・プ ログラム実行をサポートしています。 バッチアプリケーション開発における最低限必要なコーディングはジョブ実装部分の みでPOJO開発となっています。 6 08.Feature Pack for Modern Batch / SCA サポートするバッチ・アプリケーションの種類 トランザクション・バッチ型 (J2EE-Batch) 入力 データ 次行読み込み (Batch Loop) J2EE Long-Running プログラミング・モデル データを読み込んでは処理を行い、 書き込むことを繰り返し行う構造の アプリケーション 例)日次処理、月次処理など データ 読み込み バッチ・ ロジック (Step1) 数値計算型(CI) (Compute-Intensive) データ 分割1 非同期実行 計算データ UOWコミット (チェックポイント 取得) 出力 データ 次行読み込み (Batch Loop) CPUを長時間大量消費して計算 を行い、結果を非同期に出力する 構造のアプリケーション 例)科学技術計算・金融シミュレー ションなど 非同期実行 データ 読み込み バッチ・ ロジック (Step2) UOWコミット (チェックポイント 取得) 非同期実行 7 WAS V7 最新動向Workshop FP Batch がサポートするバッチ・アプリケーション・タイプは2種類になります。J2EE を利用したLong-Runningプログラミング・モデルです。 ①トランザクション・バッチ型(J2EE-Batch) 入力データを読み込んでは処理を行い、処理結果データをファイルもしくはDBへ書 き込むというトランザクションを繰り返し行うタイプのアプリケーションです。日次処理、 月次処理などに代表されるいわゆるバッチ処理がこれにあたります。Entity EJB (CMP) をベースにしたプログラミング・モデルとなります。 ②数値計算型(CI)(Compute-Intensive) CPUを大量消費して長時間にわたる計算処理を行い、その結果を非同期に出力す るタイプのアプリケーションです。科学技術計算・金融シミュレーションなどのようなも のに代表され、入力データを分割して大量のサーバーで計算処理を実行させるいわ ゆるGrid的なアプリケーションがこれにあたります。Asnyc Bean をベースにしたプロ グラミング・モデルとなります。 7 08.Feature Pack for Modern Batch / SCA 基本コンポーネントとリクエスト・フロー 基本コンポーネント Deployment Manager (DM) ・コマンド行インターフェース(lrcmd) ・ジョブ管理コンソール ・EJB インターフェース ・Web Services インターフェース JOB01.ear グリッド・エンドポイント LongRunningScheduler.ear ジョブ・スケジューラー xJCL JOB01.ear グリッド・エンドポイント ジョブ情報を記 述したファイル クラスター or 単体サーバー : クラスター or 単体サーバー ジョブ情報 ジョブ・データ ベース リクエスト・フロー Client Submit <Job ID> Finished ? Finished ? Finished ! 8 チェックポイント情報 Job Scheduler Grid Endpoint Dispatch Result Execute WAS V7 最新動向Workshop 基本のコンポーネントは上記のようになります。リクエストの受付・ディスパッチングを行うジョブ・スケ ジューラー、ジョブ実行エンジンであるグリッド・エンドポイントはそれぞれ単体サーバーもしくはクラス ターに構成できます。典型的な構成はジョブ・スケジューラーが単体もしくは2台程度のクラスターで、 グリッド・エンドポイントがクラスター構成となります。 ジョブ・スケジューラー、グリッド・エンドポイントともにジョブの状態管理などのためにDBを使用します。 それぞれ単体構成であれば自動的にWAS付属のDerbyを使用した構成となります。複数サーバーか らアクセスするクラスター構成の場合、Derbyのネットワーク・サーバー環境を使用してDBを作成する か、DB2/OracleのDBMSを使用して構成します。必要なDDLなどは製品導入ディレクトリで提供され ます。 クライアントはグリッド・エンドポイントには直接アクセスせず、ジョブ・スケジューラーに対してリクエスト を投げます。クライアントはCUIのコマンド(lrcmd)、GUIのブラウザー画面(ジョブ管理コンソール)を 選ぶことが出来ます。ジョブ・スケジューラーの受付プログラムはEJBのシステム・アプリケーションであ り、そのアプリケーションに対するWebサービスのラッパーが提供されているので(lrcmdなども内部で これらのアプリケーションにアクセスしています)、EJBもしくはWebサービスのAPIを使用してクライア ント・アプリケーションを自作することも可能です。 ジョブを実行する場合のリクエストは、クライアントからいずれかのインターフェースを使用してジョブ・ スケジューラーに対してリクエストが投げられます。その際に、ジョブ実行に必要なパラメーター群を XMLファイルで渡します。このXMLはXMLベース・ジョブ管理言語、『xJCL』と呼ばれます。ジョブ・ス ケジューラーはクライアントに対し、ジョブIDと呼ばれる一意の値をリクエスト受領の旨として返します。 ジョブ・スケジューラーはその後空いているグリッド・エンドポイントを探し、ジョブの実行を依頼します。 ジョブが完了すると結果はジョブ・スケジューラーに通知されるのですが、クライアント側には通知され ません。従ってクライアントは定期的に終了したかどうかを確認する必要があります。 8 08.Feature Pack for Modern Batch / SCA バッチで必要とされる要件 ジョブ実行制御機能 (コントローラー) Controller Interface 入力処理 ファイル ファイル スケジューリング 機能 業務処理 JOB 出力処理 ファイル ファイル Status ジョブ機能 呼び出し用イン ターフェース ジョブ実行環境 状態管理機能/ 障害対応 FP Batch提供部分 9 WAS V7 最新動向Workshop バッチ処理で必要とされる要件をまとめました。 9 08.Feature Pack for Modern Batch / SCA ジョブ実行制御機能とジョブ実行環境 WASv7 FP Batch セル ジョブ・スケジューラー – – – – インターフェースからのジョブ受付 グリッド・エンドポイントへのジョブ割り振り ジョブ情報をデータベースに保存 管理コンソールからホストするクラスター/ サーバーを指定 Deployment Manager ジョブ受付 xJCL グリッド・エンドポイント – バッチ・アプリケーションの実行環境 • • ジョブ・スケ ジューラー クラスター or 単体サーバー トランザクション・バッチ型と数値計算型のア プリケーションが共に稼動 通常のJavaEEアプリケーションと共存可能 – チェックポイント情報(ジョブ実行状況)を データベースに保存 グリッド・ エンドポイント グリッド・ エンドポイント : クラスター or 単体サーバー ジョブ情報 チェックポイント情報 ジョブ・データ ベース 10 WAS V7 最新動向Workshop ジョブ・スケジューラーではジョブ実行制御機能を提供しています。管理インター フェースからxJCLファイルと共にジョブを受付け、グリッド・エンドポイントに対してジョ ブを割り振ります。受け付けたジョブの情報や状態はジョブ・データベースに保存しま す。 WAS管理コンソールからジョブ・スケジューラーをホストさせるクラスター/単体サー バーを指定することで、該当するサーバーにLongRunningScheduler.ear がデプロイされジョブ・スケジューラーとして稼動します。 グリッド・エンドポイントではバッチ・アプリケーションの実行環境を提供します。トラン ザクション・バッチ型と数値計算型のアプリケーション稼動が可能ですが、通常の JavaEEアプリケーションも同一サーバー上で稼動させることができます。 グリッド・エンドポイントで稼動するバッチ・アプリケーションはチェックポイント情報 (ジョブの実行状況)をジョブ・データベースに保存します。 10 08.Feature Pack for Modern Batch / SCA xJCL(XML-based Job Control Language)とは ジョブの定義/実行手順(JCL=Job Control Language)をXMLで記述 – – – xJCLをもって、ジョブ・スケジューラーへジョブの実行依頼 ジョブ・スケジューラーはxJCL情報をグリッドエンドポイントへ渡してジョブをディスパッチ グリッドエンドポイントは、xJCL定義に従ってディスパッチされたジョブを実行 Client xJCL Job Scheduler Grid Endpoint Submit Dispatch <Job ID> Result Execute 可変パラメーター(変数)を使用可能 – – バッチ・アプリケーションの種類によりxJCLのエレメントは異なる – – 11 ジョブ・サブミット時に変数の値を指定 入出力ファイル名、チェックポイント間隔等を変数指定可能 トランザクション・バッチ型 数値計算(CI)型 WAS V7 最新動向Workshop ホストを触ったことがある方であればなじみがあると思いますが、ホストでは実行ジョ ブの定義と実行手順を記述したものにJob Control Language (JCL)があります。 FP Batch では、ジョブの定義と実行手順はxJCLとよばれる XMLベースのJCLで記 述します。 xJCLへは、ジョブの名前、JNDI名と実装クラス名、ジョブの実行順序、そのほかジョ ブの実行制御に関わるパラメータとプロパティを記述します。 以下のように、ジョブのサブミット、ジョブの実行環境へのディスパッチ、ジョブの実行 は、すべてxJCLに書かれている定義に従って実施されることになります。 ①クライアントは、スケジューラーに対してxJCLをもってジョブを実行依頼します。 ②スケジューラーは、サブミットされたxJCLの定義に従い、該当のジョブを処理可能 な実行環境を選択し、ディスパッチします。 ③グリッド実行環境も、xJCLの定義に従い、サブミットされたジョブに該当するアプリ ケーションを実行します。 バッチ・アプリケーションの種類によりサポートされるxJCLのエレメント、すなわちXML のSchemaが異なっていますので注意してください。 続く2ページで、各アプリケーションの種類ごとのサンプルxJCLを載せていますので、 参考にしてください。 11 08.Feature Pack for Modern Batch / SCA (参考)サンプルxJCL – トランザクション・バッチ型 job step-scheduling-criteria checkpoint-algorithm result-algorithms job-step batch-data-streams 12 <?xml version="1.0" encoding="UTF-8"?> <job name="BatchTest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <jndi-name>ejb/BatchTestEJBController</jndi-name> <step-scheduling-criteria> チェックポイント・ア <scheduling-mode>sequential</scheduling-mode> ルゴリズムの記述 </step-scheduling-criteria> <checkpoint-algorithm name="recordbased"> <classname>com.ibm.wsspi.batch.checkpointalgorithms.recordbased</classname> <props> チェックポイント・アル <prop name="recordcount" value="1000" /> <prop name=“TransactionTimeOut" value="1000" /> ゴリズムのプロパティ </props> </checkpoint-algorithm> <results-algorithms> リザルト・アルゴ <results-algorithm name="jobsum"> <classname>com.ibm.wsspi.batch.resultsalgorithms.jobsum</classname> リズムの記述 </results-algorithm> </results-algorithms> リザルト・アルゴリ <job-step name="Step1"> ズムのクラス名 <jndi-name>ejb/BTStep1EJB</jndi-name> <checkpoint-algorithm-ref name="recordbased" /> <results-ref name="jobsum"/> バッチステップ <props> Bean のJNDI名 <prop name="LOG_LEVEL" value="2" /> </props> <batch-data-streams> <bds> BDSのクラス名 <logical-name>step1bds-in</logical-name> <impl-class>com.ise.sample.batchtest.bds.BTStep1_BDS_IN</impl-class> <props> <prop name="INPUT_FILENAME" value=“/work/data/BT01IN_1000000.txt" /> </props> </bds> BDSに渡すプロパティー <batch-data-streams> </job-step> <job-step name=“Step2”> ・・・ </job-step> </job> WAS V7 最新動向Workshop xJCLへは、バッチ・アプリケーションに含まれているバッチ・ステップの実行定義 (JNDI名と実装クラス名)、実行順序、そしてチェックポイント・アルゴリズムの挙動など、 ジョブの実行制御に関係ある記述をします。 最も大きなエレメントとして、jobがあります。その中に、step-scheduling-criteria、 checkpoint-algorithm、result-algorithmsおよびjob-stepなどのエレメントが含まれま す。job-stepエレメントの中にはbatch-data-stream要素が含まれます。その他に、 バッチ型では複数バッチ・ジョブ・ステップがサポートされますので、このサンプルで は詳細を見せていないため有りませんが、ジョブ内に複数バッチ・ジョブ・ステップを 定義している場合には、step-schedulingエレメントというものでバッチ・ジョブ・ステッ プの実行の可否を判断するものも有ります。 12 08.Feature Pack for Modern Batch / SCA (参考)サンプルxJCL – 数値計算(CI)型 実行するCIController (SLSB)のJNDI名 job job-step 13 <?xml version="1.0" encoding="UTF-8"?> <job name="SimpleCIEar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <jndi-name>ejb/com/ibm/ws/ci/SimpleCIEJB</jndi-name> <job-step name="Step1"> 実行する <!-- classname element within the job-step indicates this is a CI application --> CIWorkクラス名 <classname>com.ibm.websphere.ci.samples.SimpleCIWork</classname> <!-- following element is used to pass properties (name-value pairs) to CI application --> <props> <prop name="calculationTimeInSecs" value="30" /> SimpleCIWork <prop name="outputFileName" value="/tmp/SimpleCI.out" /> に渡すプロパティー </props> </job-step> </job> WAS V7 最新動向Workshop 基本的な大枠はCI型でもバッチ型と同様ですが、CI型でサポートされるバッチ・ジョ ブ・ステップ数は1ステップのみとなっており、またチェックポイント機能などもないた め、ジョブの実効制御に関わる定義の数も少なくなっています。サンプルを見ても、 非常にシンプルであることがわかると思います。 13 08.Feature Pack for Modern Batch / SCA 状態管理機能/障害対応 ジョブ実行時にエラーが発生した際の対応 – 最初からのジョブ再実行 • 大量データ処理では非現実的 • 実行時間帯が決まっている場合は適さない – 未完了部分からの再実行 • どこまでの処理が完了しているかステータス確認して、ジョブ再実行 • 処理ステータスをDBに保存 1件ごとに完了ステータスを書き込むのはパフォーマンスが悪いため、再 実行単位でチェックポイントのステータスを書き込む。チェックポイントから、 ジョブを再実行 チェックポイント/リスタート機能 チェックポイント/リスタート機能 14 WAS V7 最新動向Workshop ジョブ実行時にエラーが発生した場合、どのような処理が必要になるでしょうか?一 つは完了処理を全てロールバックし、最初からのジョブ再実行が考えられますが、オ フラインバッチのように実行時間帯が決まっている上に大量データ処理では、時間が かかりすぎるために非現実的です。 最初からではなく、未完了部分からの再実行が効率的です。エラー発生時にどこま での処理が完了しているかステータスを確認しジョブを再実行します。処理完了のス テータスはデータベースやファイル等に保存しておく必要があります。1件の処理ごと に完了ステータスを書き込むのはパフォーマンスの悪化をまねくため、一定の件数ご とにチェックポイントとしてステータスを書き込み、エラー発生時にはチェックポイント からジョブを再実行するのが一般的です。 FP Batchでは「チェックポイント/リスタート機能」として提供されています。 14 08.Feature Pack for Modern Batch / SCA チェックポイント/リスタート機能 指定された間隔で処理済みレコード数をチェックポイントとしてDBに保管 トランザクションが開始後、チェックポイント取得時に処理済レコード(UOW)をコミット FP Batchでは製品機能として提供されており、2つのチェックポイント・アルゴリズムを提供 – – timebased(秒指定) / recordbased(レコード数指定) xJCLファイルで指定 checkpoint-algorithm checkpoint-algorithm =com.ibm.wsspi.batch.checkpointalgorithms.recordbased =com.ibm.wsspi.batch.checkpointalgorithms.recordbased recordcount recordcount =10 =10 file file Batch1 Batch2 DB DB ACCOUNT トランザクション開始 ACCOUNTID UOW チェックポイント取得 ロールバック 障害発生 15 ファイルから読み込ん だデータをDBに書き 込む処理 OVERDRAFTPROTECTION OVERDRAFTUSED BALANCE 更新 1000 0 0 更新 1001 0 0 62.0 更新 1002 0 0 563.0 更新 1003 300 0 504.00 更新 1004 0 0 437.00 更新 1006 0 0 1010.00 更新 1008 500 0 983.00 更新 1009 0 0 811.00 更新 1010 0 0 553.00 更新 1011 0 0 1251.00 更新 1014 0 0 730.00 更新 更新 1015 0 0 736.00 更新 更新 1016 100 0 198.00 更新 133.00 トランザクション開始 再実行時は ここから再開 WAS V7 最新動向Workshop チェックポイント/リスタート機能について解説します。チェックポイント機能とは、バッ チが障害などの理由で途中停止した場合に備えて指定タイミングで定期的にコミット を取り、その進捗を記録することで、回復時に再実行可能な状態にしておく機能で す。リスタート機能はチェックポイントの情報を読み取り、再実行された際に最後にコ ミットしたレコードの次の行からの処理を行う機能です。 FP Batchでは製品機能として提供されています。チェックポイントのコミット・タイミン グの指定は、xJCL内部のcheckpoint-algorithmで指定します。指定可能なアルゴリ ズムは上記例にある“recordbased”(処理行数)の他に、“timebased”(処理秒数) 指定が可能です。ジョブステップの単位で異なるチェックポイント・アルゴリズムを指 定することも出来ます。しかし、チェックポイント指定の単位、すなわち最大UOWの 単位はジョブではなくステップですので、三つのステップを内在するジョブでは最小 でも三つのUOWに分かれることに注意してください。上記の例は、チェックポイントを recordbasedで10行単位と指定し、障害が起きた場合の挙動を示しています。 15 08.Feature Pack for Modern Batch / SCA (参考)バッチ・ジョブに関連するタイムアウト値 トランザクション・タイムアウト トランザクション・タイムアウト バッチ・ジョブ実行時のグローバル・トランザクションのタイムアウト値。 ジョブ実行のフェーズにより、使用されるタイムアウト値が異なる(後述) ・合計トランザクション・タイムアウト ・xJCL内 TransactionTimeOut 値 ジョブ・スケジューラーが使用するトランザ クションのタイムアウトには、合計トランザ クション・タイムアウトが使用される。 トランザクション・タイムアウトを超えた場合は、当該トランザクションは ロールバックされ、バッチ・ジョブは異常終了する ジョブ・スケジューラーでのジョブの実行依 頼などのトランザクションと、グリッドエンド ポイントでのジョブの実行自体のトランザク ションは別なので、問題となることは少ない データ・ソース側でのタイムアウトをWASでハンドルできるよう、DBの ロック・タイムアウトより長い値を設定する グリッド・ エンドポイント lrcmd.sh[bat] ジョブ・ スケジューラー Application DB グリッド・ エンドポイント ロック・タイムアウト ロックの取得を待機する時間 デフォルト値:無制限(-1) ジョブ・ データベース 16 通常時の最大処理時間より 長い必要がある WAS V7 最新動向Workshop 上図では、バッチジョブの実行に関わるタイムアウト値を図示しました。 ジョブ・スケジューラーが使用するトランザクション・タイムアウトには、WASの合計トラ ンザクション・タイムアウトの値が使用されます。ジョブ・スケジューラーのトランザクショ ンは、ジョブ実行とは別のトランザクションですので、通常は問題となることはありませ ん。 グリッド・エンドポイントで、バッチ実行の際に適用されるトランザクション・タイムアウト 値はジョブの実行フェーズにより、使用されるタイムアウト値が異なりますので、注意 が必要です(次ページ)。 トランザクション・タイムアウトが発生した場合には、当該トランザクションはロールバッ クされ、バッチ・ジョブは異常終了します。 なお、データ・ソース側でのタイムアウトをWASでハンドルできるよう、DBのロック・タ イムアウトよりは長い値を設定します。 DB2のロック・タイムアウトは、ロックの取得を待機する時間です。先に実行中の処理 が保持しているロックが開放されるのを待機する時間ですので、通常時の想定最大 処理時間よりは長く設定する必要があります。 16 08.Feature Pack for Modern Batch / SCA (参考)バッチ・ジョブに関連するトランザクション・タイムアウト begin tx initialize() 初期化フェーズ open() positionAtInitialCheckpoint() createJobStep() commit tx begin tx externalizeCheckpointInfomation() commit tx begin tx ジョブのフェーズにより、有効な トランザクション・タイムアウト値が異なる ① 初期化フェーズ • 9 – – intermediateCheckpoint () processJobStep() 実行フェーズ externalizeCheckpointInfomation() commit tx begin tx 当該ジョブのディスパッチされたASの 『合計トランザクション・タイムアウト』 が有効 xJCLが読込まれる前のフェーズであるため デフォルト 120秒 BDSの初期化処理などに時間がかかる場合には注意が必要 ② 実行フェーズ、終了フェーズ • xJCL内、checkpoint-algorithmの属性として指定 intermediateCheckpoint () processJobStep() externalizeCheckpointInfomation() commit tx begin tx intermediateCheckpoint () destroyJobStep() <checkpoint-algorithm name=“recordbased”> <classname>com.ibm.wsspi.batch.checkpointalgorithms.recordbased</classname> <props> <prop name=“recordcount” value=“100” /> <prop name=“TransactionTimeOut” value=“30” /> </props> – xJCL内で指定しない場合は、デフォルトの60秒 が使用される </checkpoint-algorithm> 終了フェーズ close() externalizeCheckpointInfomation() commit tx 17 WAS V7 最新動向Workshop バッチ・ジョブ実行時に参照されるトランザクション・タイムアウト値は、ジョブのフェー ズにより異なります。 BDSのinitializeやJobStepBeanのcreateJobStepなどが呼び出される初期化フェー ズでは、xJCLが読み込まれる前のフェーズであるため、WASの合計トランザクショ ン・タイムアウトの値(デフォルト120秒)が使用されます。BDSの初期化などで重い 処理を行っている場合には注意が必要です。 一方、xJCL読み込み後のトランザクション・タイムアウトの値には、チェックポイント・ア ルゴリズムのプロパティとして指定するTransactionTimeOutの値が使用されます。 明示的に指定していない場合は、暗黙的に設定されているデフォルト値60秒が使 用されます。このTransactionTimeOutを超える間隔でチェックポイントを取得しようと しても、トランザクションがロールバックされバッチジョブが異常終了しますので、注意 が必要です。 17 08.Feature Pack for Modern Batch / SCA 呼び出し用インターフェース • GUIツール - ジョブ管理コンソール(JMC) • コマンドライン - lrcmd • API - EJB Clients - Web Services clients グリッド・ エンドポイント xJCL xJCL ジョブ・ スケジューラー クラスター or 単体サーバー 18 グリッド・ エンドポイント : クラスター or 単体サーバー WAS V7 最新動向Workshop FP Batchで提供されている呼び出し用インターフェースです。ジョブ実行以外にも ジョブ・ステータスの確認等を行う管理インターフェースとなります。 GUIツールとして、Job 管理コンソール(JMC)があります。そして、コマンドライン・ ツールとして、lrcmd があります。また、リモートからのEJBコールとWebサービス・ コールが可能なAPIも提供されています。 18 08.Feature Pack for Modern Batch / SCA ジョブ管理コンソール(JMC) ジョブ実行及び管理をブラウザ・ベースで実施 – xJCLファイルを指定したジョブのサブミット – 実行ジョブの状態表示 • 実行ジョブに対するアクション(取り消し、除去、再始動、再開、停止、中断) • ジョブログの表示 http://localhost:9080/jmc/console.jsp 19 WAS V7 最新動向Workshop ジョブ管理コンソールでは、ジョブの実行及び管理をブラウザ・ベースで実施すること ができます。WASの管理コンソールとは別に提供されており、以下のURLにアクセス します。ジョブ管理コンソールは、ジョブ・スケジューラー上で稼動するアプリケーショ ンなので、ホスト名/ポート番号にはジョブ・スケジューラーの値を指定します。 http://<host_name>:<port#>/jmc/console.jsp ジョブ管理コンソールではあらかじめ用意したxJCLファイルと共にジョブのサブミット を実行することができます。xJCLファイルに変数が使用されている場合は、値入力も 行います。 グリッド・エンドポイントで実行中(完了)のジョブの状態を表示し、「取り消し/除去/再 始動/再開/停止/中断」のアクションを施すことができます。 19 08.Feature Pack for Modern Batch / SCA lrcmd 基本のコマンド・ライン・ツール – ジョブに対する全ての操作が可能 – JavaEEクライアント・アプリケーションとして実装されている • ジョブの実行依頼をしてもジョブの終了まで待たない – TWS(TivoliWorkloadScheduler)など外部スケジューラー連携の場合には、工夫 が必要(後述) • コマンド実行毎にJVMが起動 – ステータス確認などのため、繰返し実行するにはオーバーヘッドが大きい ジョブの実行依頼 C:¥WebSphere¥AppServer¥bin>lrcmd.bat -port=9080 -cmd=submit -xJCL=..¥longRunning¥postingSampleXJCL.xml -userid=wasadmin -password=passw0rd CWLRB4940I: com.ibm.ws.batch.wsbatch : -port=9080 -cmd=submit -xJCL=..¥longRunning¥postingSampleXJCL.xml -userid=wasadmin -password=******** CWLRB4960I: Thu Oct 25 13:52:12 JST 2007 : com.ibm.ws.batch.wsbatch : ジョブ [PostingsSampleEar:10] がサブミットされます 。 ジョブのステータス確認 C:¥WebSphereXD¥AppServer¥bin>lrcmd.bat -port=9080 -cmd=status -jobid=PostingsSampleEar:10 -userid=wasadmin -password=passw0rd CWLRB4940I: com.ibm.ws.batch.wsbatch : -port=9080 -cmd=status -jobid=PostingsSampleEar:10 -userid=wasadmin -password=******** CWLRB5160I: Thu Oct 25 13:53:48 JST 2007 : ジョブ [PostingsSampleEar:10] の実行は終了しました。 20 WAS V7 最新動向Workshop lrcmdはジョブの実行および管理を行うコマンド・ライン・ツールです。ジョブ管理に関 わる一通りの操作が可能です。 先にも述べましたが、lrcmdコマンドはジョブのサブミットを行っても、当該ジョブのサ ブミット処理が終了するとジョブIDを返して直ぐに抜けてしまい、ジョブの成否を待ち ません。したがって、ジョブの成否は改めてlrcmdからステータス確認のコマンドを実 行するか、ジョブ管理コンソールから確認する必要があります。 lrcmdはJ2EEクライアント・アプリケーションとして実装されており、コマンドの実行毎 にJVMが起動/停止します。lrcmdのステータス確認コマンドをポーリングなどの用途 に使用するには実行するにはオーバーヘッドが大きくなり、注意が必要です。コマン ドの実行毎にJVMが起動しますので、外部スケジューラーにより同時に複数のlrcmd コマンドがキックされた際にも、複数のJVMが同時に起動し、マシン・リソースを浪費 してしまうことがありますので注意が必要です(連携シェル内で一度に起動できる lrcmdコマンドの数を制限するなどが現実的な対応です)。 20 08.Feature Pack for Modern Batch / SCA スケジューラー FP Batchではスケジューラー機能を提供していない スケジューラー製品を利用するかどうか? スケジューラーの役割 – 様々な起動条件での稼動 • • • 21時ジョブ 起動 時間起動 ファイルが生成されたら起動 複数ジョブの依存関係 JobAが完了した らJobB実行 ファイル検 知で起動 JobA JobB – 稼動状況のモニタリング、異常時の通知 • • • オフラインバッチの数十個のジョブの稼動状況確認 予定時間にジョブCが終了していない場合の原因特定 異常時の画面通知やメール送信 製品を利用しないと実装困難 スケジューラー製品 – IBM TWS(Tivoli Workload Scheduler) – 日立 JP1 スケジューラー製品を利用しないケース – 数個~10個のジョブ数で、処理制御が複雑でないケース – UNIX系環境では、シェルとcronで制御することが多い – Java EEアプリケーションでの実装(Async Bean / EJB Timer) • 21 管理インターフェースのEJBやWebサービスのAPIを使用 WAS V7 最新動向Workshop バッチ実行にはスケジューラーが必要となりますが、FP Batchでは機能提供されて いません。そこで、スケジューラー機能をどう実装するかを検討する必要があります。 スケジューラーの役割として重要なのは「様々な起動条件での稼動」と「稼動状況の モニタリング、異常時の通知」です。 スケジューラーの実装を検討する際に、まずは製品を使用するかどうかという判断が 必要になりますが、スケジューラーに要求される機能は判断ポイントの一つになりま す。 スケジューラー製品を利用しない場合、UNIX系環境ではシェルとcronで制御するこ とが多いのですが、製品を利用しなくとも実装可能かどうかを検討する必要がありま す。特に稼動状況のモニタリングや異常時に通知を上げるといった機能はスケ ジューラー製品で提供されていますが、シェルとcronでは実装は困難でしょう。 稼動状況のモニタリングといった機能は大規模システムでの数十個のオフラインバッ チなどで必要とされる要件です。大規模なオフラインバッチでは製品の採用を検討し、 数個~10個程度のジョブ数で処理制御も複雑でないケースは製品を利用しないの が一般的です。 21 08.Feature Pack for Modern Batch / SCA TWS連携 lrcmdを利用して連携する場合、連携シェルを作成 – TWS連携シェルに必要な機能 ① 実行用xJCLの生成(オプション) – xJCL内で変数が利用可能 » 実行コマンドの引数として、業務日付など、変数を指定して実行 » xJCLをリポジトリへ事前登録し、実行時に変数を指定 ② ジョブの実行依頼 ③ ジョブステータスの監視/ジョブ終了の検知 – lrcmdコマンドはジョブの終了を待機しない » lrcmdまたはSQLの発行などを利用して定期的にジョブ・ステータスをポーリン グする仕組みを、TWS連携シェルの中に実装する必要がある ④ FP Batchジョブの成否をリターン・コードでTWSへ返す 22 WAS V7 最新動向Workshop lrcmdコマンドを使用してTWS連携を実装する場合、TWSとFP Batchジョブの連携 に必要な機能は以下のようになります。 ①実行用xJCLの生成:xJCL内で変数が使用可能なので基本的には実行時に xJCLを生成するといった作業は不要です。変数を利用することができず、実行時に 毎回xJCLを生成する必要がある場合のみの処理です。 ②ジョブの実行依頼:ジョブ・スケジューラーに対して、ジョブの実行依頼を行います。 ③ジョブのステータス監視、終了検知:TWSにバッチ・ジョブの実行結果を戻すため に、ジョブのステータスを確認する必要があります。lrcmdコマンドはジョブの終了を 待機しないため、連携シェルの中で独自にポーリングの実装を盛り込む必要がありま す。 ④ジョブの成否をリターン・コードでTWSへ返す:最終的なジョブの実行結果をTWS にリターン・コードとして返す必要があります。 22 08.Feature Pack for Modern Batch / SCA (参考)TWS連携:lrcmdでの実装例 TWS シェル名や引数を渡して、ジョブを起動 連携シェルや引数、TWS変数を指定して実行 JOB ①ジョブの実行依頼 レポジトリに登録したジョブ名と置換える変数の値を引数に 指定し、lrcmdコマンドよりジョブ実行依頼 lrcmdのリターンとして、JOBIDを受取る lrcmd.sh –cmd=submit … ②ジョブのステータス確認 定期的に(1分間隔など)、SQLでジョブ・データベースの ジョブ・ステータスを直接監視 ※lrcmdコマンドでもステータスは確認できるが、コマンド実行 毎にJVMが起動し負荷が高いため注意が必要 ジョブ・スケ ジューラー グリッド・エ ンドポイント JOB BatchApp:101 ジョブDB ③リターン・コードを戻す TWSにジョブの成否を伝える FP Batchのジョブ・ステータスをそのまま返すか、 シェル自体のリターン・コードを返す 23 select STATUS from LRSSCHEMA.JOBSTATUS where JOBID= ‘BatchApp:101’ WAS V7 最新動向Workshop lrcmdでのTWS連携シェルの実装例です。 変数が使えることでxJCLの生成処理は不要であり、xJCLは事前にレポジトリーに登 録しておくことができます。 ジョブの実効依頼は、レポジトリに登録したジョブ名と置換え変数値を引数に渡して 行います。 23 08.Feature Pack for Modern Batch / SCA FP Batchの実行環境および開発環境 実行環境 – WAS V7.0.0.13にFP Batchを適用 開発環境 – RAD V8.0.1にFP Batchを適用 – Compute Grid Toolsを使用可能 V8.0.1 New EAR形式でWAS環境にデプロイ RAD 8.0.1 ComputeGrid Tools EAR WAS 7.0.0.13 FP Batch xJCL ジョブ実行時にxJCLを使用 24 WAS V7 最新動向Workshop FP Batchの実行環境および開発環境について説明します。 実行環境はWAS V7.0.0.13以上にFP Batchを適用します。 開発環境はRAD V8.0.1にFP Batchを適用します。RADのテスト環境を使用するた めに、テスト環境に対してもFP Batchを適用します。 RAD V8.0.1からはバッチ開発用として新たにCompute Grid Toolsが提供されるよう になりました。次のページで説明します。 RAD V8.0.1で開発したバッチ・アプリケーションはEAR形式でエクスポートし、WAS 環境にデプロイするという流れになります。xJCLファイルは実行時に使用しますが、 RAD V8.0.1で開発しエクスポートしておきます。 24 08.Feature Pack for Modern Batch / SCA Compute Grid Tools提供機能 バッチ・プロジェクトの生成 バッチ・ジョブの生成 xJCLエディター バッチPOJO開発機能 – コードアシスト ジョブ実行機能 – xJCLファイルから直接ジョブ実行 xJCLエディター Job Launch 25 WAS V7 最新動向Workshop Compute Grid Toolsで提供されているバッチ・アプリケーション開発機能は以下に なります。 •バッチ・プロジェクトの生成/バッチ・ジョブの生成:JavaEEアプリケーションでWebプ ロジェクト生成のウィザードが提供されているように、「バッチ・ププロジェクト」および 「バッチ・ジョブ」を生成するためのウィザードが提供されています。 •xJCLエディター:XMLベースのバッチ情報を含んだxJCLファイルを設定ベースで 生成するエディターが提供されています。以前は全て作りこみでの生成でしたが、 xJCLエディターを使用することで容易に誤りなく生成が可能になりました。 •バッチ実行部分のPOJO開発を行う際のコードアシスト機能を提供しています。 •ジョブ実行機能:ワークスペースでxJCLファイルから直接ジョブ実行を行うJob Launchが提供されています。 25 08.Feature Pack for Modern Batch / SCA バッチアプリケーションのパッケージング BatchJob.EAR BatchJob.EAR EAR形式でパッケージング BatchJobEJBs – 1EAR = 1ジョブ – 一つのジョブは単数または複数のバッチ・ステップ から構成される • ejb-jar.xml Session Beans BatchJobBatchController 1バッチ・ステップ = 1バッチ・ステップEJB Entity Beans JOB STEP EAR EJB STEP EJB STEP EJB Step1CMP Step2CMP 主な要素 – バッチ・ジョブ・ステップ • Checkpoint DB 実際のビジネス・ロジックをPOJOで実装 POJOStep1 – BDS(バッチ・データ・ストリーム) • POJOStep2 バッチ・ジョブ・ステップと入出力データとの間を仲介 – バッチコントローラーBean • Step1BDS バッチ・ジョブ・ステップのコントローラー xJCLを元に自動生成されるコードが多数 – コーディングはバッチ・ジョブ・ステップのみ 26 Step2BDS 入出力 入出力 ファイル ファイル データ入出力 テーブル WAS V7 最新動向Workshop バッチアプリケーションのパッケージングについて説明します。 バッチアプリケーションはEAR形式でのパッケージングとなり、一つのEARが一つの ジョブに相当します。一つのジョブは単数または複数のバッチ・ステップから構成され ますが、一つのバッチ・ステップが一つのバッチ・ステップEJBに相当します。 EARに含まれる主な要素は以下になります。 •バッチ・ジョブ・ステップ:実際のバッチのビジネス・ロジックをPOJOで実装するクラ スです。ジョブ・ステップごとに生成します。 •BDS(バッチ・データ・ストリーム):バッチ・ジョブ・ステップとファイルやDBといった入 出力データとの間を仲介するコンポーネントです。BDSはフレームワーク化されてお り、xJCLファイルの定義に従って自動生成されます。 •バッチコントローラーBean:バッチ・ジョブ・ステップのコントローラーで、一つのEAR に一つ生成されます。 xJCLの定義に基づいて、チェックポイント情報をDBに書き込むEJBのエンティティ Beanが生成されます。 バッチアプリケーションには多くのコンポーネントが含まれますが、基本的な機能を 使用する上で開発者がコーディングを必要とするのはバッチ・ジョブ・ステップのみで、 多くのコードはxJCLファイルを元に開発ツールによって自動生成することができます。 26 08.Feature Pack for Modern Batch / SCA FP Batch開発環境の構成イメージ Rational Rational Application Application Developer Developer V8.0.1 V8.0.1 開発 開発 WebSphere WebSphere AS AS V7.0 V7.0 FP FP Batch(テスト環境) Batch(テスト環境) ワークスペース テスト テスト FP FP Batch Batch プロファイル プロファイル server1 LongRunningScheduler.ear (バッチ・スケジューラー) BatchJob.ear モニター モニター LRSCHED JMC Derby Derby 27 WAS V7 最新動向Workshop Javaバッチ開発環境の構成イメージになります。 Javaバッチ開発環境としては、以下があります。 ・Rational Application Develoer V8.0.1(以下、RAD) エンタープライズ・アプリケーションを効率よく開発するための機能を豊富に備えた統 合開発環境。開発環境にWASのテスト環境も含まれます。 RADテストサーバーに対してFP Batchを導入し、テストサーバーとしてFP Batchの プロファイルを作成し開発テスト用の実行環境を用意します。 なお、システムアプリケーションが使用するリポジトリーのデータベースも、プロファイ ルの構成の中でテストサーバーに組み込まれているDerbyデータベースがセットアッ プされますので、別途リポジトリー用DBを用意する必要はありません。但し、作成す るバッチ・アプリケーションが使用するアプリケーション・データ用のDBは別途用意し ていただく必要があります。 作成したアプリケーションのテストは、通常のFP Batchが構成された環境と変わらず、 lrcmdコマンドもしくはジョブ管理コンソール(JMC)から実施します。 27 08.Feature Pack for Modern Batch / SCA WebSphere XD Compute Gridのご紹介 WebSphere ASの上位エディションとして、Javaバッチ実行環境、管理基盤を 提供する製品 多様なアプリケーションの混在をサポート – Java EEでのバッチ系実行環境を提供 – オンライン処理実行環境とバッチ系実行環境の間でサーバー資源を共有し、動的に配置 – サーバー資源の統合管理&仮想化を実現 リソースの仮想化 高度なジョブ制御機能 ネイティブプログラム実行機能 WebSphere XD Compute Grid 環境 28 WAS V7 最新動向Workshop WASの上位エディションの位置づけにあり、Javaバッチ実行環境、管理基盤を提供 する製品としてWebSphere XD Compute Grid(WXD CG)を紹介します。 FP Batchと同様にオンライン処理実行環境とバッチ実行環境の間でサーバー資源 の共有を実現します。更にはリソースの仮想化、高度なジョブ制御機能、ネイティブ プログラム実行機能を提供しています。 28 08.Feature Pack for Modern Batch / SCA WebSphere XD Compute Gridとの機能比較 WXD CGではFP Batch提供機能はすべて提供されている – バッチ処理を拡張する高機能を提供 FP Batch インターフェース ジョブ管理コンソール EJB/Webサービス API lrcmdコマンド ロギング機能 WXD CG(FP Batchとの差分のみ記述) WSGridコマンド –ジョブ完了までコマンドの終了を待機。ジョブ完了の確認作 業が必要ない。外部スケジューラー連携に有効。 ジョブログの出力 ジョブ管理コンソールからの確認 ジョブ実行機能 通常のJavaクラスの実行 ネイティブプログラムの実行 ジョブの並行実行 半自動でジョブを分割実行する機能(パラレル・ジョブ・マ リポジトリーDBに実行情報を格納 ジョブの優先度や並行処理数、ジョブ実行時間の制御 ジョブ実行環境に静的にジョブを割り振り ジョブ内のジョブステップまでの簡易スケジュール機能を ネージャー) ジョブ制御機能 提供(時間指定ジョブの実行など) ジョブ実行環境の負荷状況に応じて動的にジョブを割り 振り(WebSphere Virtual Enterpriseと連携) 障害検知・対応機能 ジョブ・スケジューラー/グリッド・エンドポイント 実行環境 WAS 29 のクラスタリング構成で対応 コンテナー管理によるチェックポイント・リスター ト機能 V7 WebSphere XD ComputeGrid V7 WAS V7 最新動向Workshop WXD CGはFP Batch提供機能については全て提供されています。バッチ処理を更 に拡張する高機能を提供していますが、その機能比較を表一覧に示します。 29 08.Feature Pack for Modern Batch / SCA FP Batch まとめ FP BatchではJavaバッチ実行環境として必要なコンテナ機能を提供 – スケジューラー機能は提供されていない POJOベースでの開発が可能なプログラミング・モデルの提供 – RAD V8.0.1よりCompute Grid Toolsを提供 WASでサポートされるJavaバッチ環境 容易なプログラミング・モデル オンライン処理実行環境とバッチ系実行環境の間でサーバー資源を共有 30 WAS V7 最新動向Workshop 30 08. Feature Pack for Modern Batch / SCA §2. Feature Pack for SCA 1.0.1 31 WAS V7 最新動向Workshop 31 08.Feature Pack for Modern Batch / SCA Feature Pack for SCA OSOAによって標準化されたOpen SCAをサポート – Open SCAの実装は複数のコミュニティが開発しているが、WASでは ApacheプロジェクトのTuscanyを採用 – 現在はOASIS標準へと移行されている SCA(Service Component Architecture)とは・・・ – SOAに基づき、様々なIT資産をサービス・コンポーネントとして捉える – サービス・コンポーネントの再利用性、変化に強い柔軟性・迅速性を追求 SOA SOAソリューションを目的としたオープン仕様のプログラミングモデル WAS V7 最新動向Workshop 32 Feature Pack for SCA(以降、SCA FP)はOSOAによって標準化されたOpen SCA をサポートしています。Open SCA登場の当初はOSOAが標準化を行っていました が、現在はOASIS標準へと移行されています。 Open SOA http://www.osoa.org/display/Main/Home SCAとは、SOAの考え方に基づいて様々なIT資産をサービス・コンポーネントとして 捉え、再利用性、変化に強い柔軟性、迅速性を追求したアプリケーションのプログラ ミング・モデルです。 32 08.Feature Pack for Modern Batch / SCA (参考)SOAが目指すシステム構築の考え方 従来の アプリケーション コンポジット・アプリケーション サービスに分解されたアプリケーション 1 2 1. ビジネス・アプリケーションを 再利用可能なサービスに分解する 3 2. ビジネス・プロセスに合わせ、それらのサービスを 組み合わせる 新しいビジネス要求 に合わせ再構成する 3. ビジネス・プロセスの変化に対し、 サービスを再利用して、再構築する ビジネス・プロセスに変更が起こったときに、 ビジネス・プロセスに変更が起こったときに、 サービスの組み合わせで、迅速に対応できる サービスの組み合わせで、迅速に対応できる 33 SOA SOA WAS V7 最新動向Workshop SOAが目指すサービス組み合わせによるシステムの構築方法を図で表したものです。 一番左が従来のアプリケーションです。一枚岩のアプリケーションのため、ビジネスに変更が起 こった際、アプリケーション全体を分析して、影響のある箇所を修正する必要がありますが、こ の変更は、アプリケーション全体に及んでしまいます。このようなアプリケーションでは、ビジネス に変更が起きたときに、ITを迅速に対応させることができません。 サービス指向の考え方では、まず、このアプリケーションを、再利用可能なサービス(お互いに できるだけ依存しない形にして)に分解します。そして、ビジネスプロセスに合わせてサービスを 組み合わせてアプリケーションを構築します。このようにして構築したアプリケーションは、ジグ ソーパズルを組み合わるようにして、ビジネスプロセスの変化に対応してサービスを再利用して、 再構築することが可能になります。 33 08.Feature Pack for Modern Batch / SCA SCAの基本構造 Composite Intent Property Interface Policy * Policy Set • Java • WSDL ….. Wire Component Service Binding 34 Component Implementation • • • Reference Reference Service • SCA • WebServices • EJB • JMS • HTTP • ATOM Promote Java Spring BPEL … • • • C C++ COBOL … Implementation Composite WAS V7 最新動向Workshop SCAではアプリケーションをコンポーネントを組み合わせるように開発していく考え方となりますが、そ の考え方に基づいて画面に示すような基本構造が仕様で規定されています。 •Component:Implementationが構成されたインスタンスです。Open SCAではJava、BPEL、C++等 の異なる実装技術を用いることを許容していますが、SCA FPではJavaとSpringのみサポートしていま す。一つ以上のComponentが同じImplementationを用いることができます。 •Implementation:ビジネス・ロジックの実装コードです。POJO(Javaの場合)となり、SCA固有の特別 な実装は必要ありません。 •Service:Componentによって提供するサービスを定義します。一つのInterfaceと、バインディングを 設定します。 •Interface:一つ以上の"Business Function"を定義します。Serviceで提供され、Referenceで使用さ れます。SCA FPでサポートされるインターフェースはJava InterfaceとWSDL 1.1です。 •Reference:Implementationの中のReferenceは、他のcomponentが提供するサービスのLinkを表 します。 •Compositeの中のReferenceは、Component内のReferenceをプロモートします。 •Binding:ReferenceとServiceで使用されます。Referenceでは外部のServiceをコールする時に使 用するアクセス・メカニズムを、ServiceではServiceをコールする時に使わなければいけないアクセス・ メカニズムを示します。 •Property:外部からImplentationへデータをセットする方法です。SCA FPでは管理コンソールから セットすることができます。 •Composite:SCAのElementsを束ねる論理的なグループです。SCAシステムを作成する際の基本 ユニットで、SCA FPではEARに相当します。上位レベルのCompositeのimplementationになりえま す。 34 08.Feature Pack for Modern Batch / SCA SCA FPの実行環境および開発環境 実行環境 – WASv7.0.0.9以上にSCA FPを適用 開発環境 – RADv7.5.5以上 RAD 7.5.5 SCA Tools RAD 7.5.5 SCA Tools WAS 7.0 SCA Feature Pack Service Component 35 WAS 7.0.0.9 SCA FP WAS V7 最新動向Workshop SCA FPの実行環境および開発環境を示します。 実行環境はWAS V7.0.0.9以上にSCA FPを適用します。 開発環境はRAD V7.5.5以上にSCA FPを適用することで、SCA開発用のSCA Toolsを使用することができます。 35 08.Feature Pack for Modern Batch / SCA RAD 7.5.5 SCA Tools SCA コンポジット・ダイアグラムを使用して開発 36 WAS V7 最新動向Workshop SCA Toolsでは画面に示すように、SCAの基本構造に基づいたビジュアルな開発が 可能です。 36 08.Feature Pack for Modern Batch / SCA SCA ToolsによるSCA開発概要 HelloComposite SCAプロジェクトの作成 SCAコンポジットの作成 SCAコンポーネントの作成 HelloService 枠作り Component – インターフェースの定義 • • Javaインターフェースクラスを指定 SCAアノテーションを使用 – バインディングの設定 – 実装の作成 • • POJO実装 SCAアノテーションを使用 バインディング Javaインターフェース package test; package test; import org.osoa.sca.annotations.Remotable; import org.osoa.sca.annotations.Remotable; @Remotable @Remotable public interface HelloService { public interface HelloService { public String sayHello(String name); public String sayHello(String name); } } Java実装 package test.impl; package test.impl; import test.*; import test.*; import org.osoa.sca.annotations.Service; import org.osoa.sca.annotations.Service; @Service (HelloService.class) @Service (HelloService.class) public class HelloServiceImpl implements HelloService { public class HelloServiceImpl implements HelloService { public String sayHello(String name) { public String sayHello(String name) { return “Hello, ” + name + “ !”; // 実装を作成 return “Hello, ” + name + “ !”; // 実装を作成 } } } } 37 WAS V7 最新動向Workshop SCA Toolsを使用したSCA開発の概要を説明します。 まず、SCAプロジェクト/SCAコンポジット/SCAコンポーネントの作成で、枠組みを作 成します。SCAコンポーネントのインターフェース/リファレンスに対して、インター フェース/バインディングの設定、コンポーネントに対して実装の作成を行っていくと いう流れになりmす。 インターフェースにはJava/WSDLを使用することができます。Webサービスでのアク セスを提供したい場合でも、Javaインターフェースクラスを定義し、バインディングに Webサービスを設定すると、自動的にWSDLファイルが生成されます。 実装コードはSCAアノテーションを使用したPOJO実装になります。 開発方法の詳細につきましては、以下リンクの「WAS V7 FeaturePack 利用ガイド」 に詳細手順が記載されていますのでご参照ください。 http://www.ibm.com/developerworks/jp/websphere/library/was/was7_fep_guide / 37 08.Feature Pack for Modern Batch / SCA SCA FP提供機能 バインディング – – – – – – SCA Web Services EJB JMS HTTP Atom V1.0.1 New QoS – トランザクション – セキュリティ その他 – Java EE統合 • 既存JavaEEアプリケーションをSCAコンポーネントと連携 – Springコンテナー V1.0.1 New • SCA実装にSpring2.5.5を使用可能 38 WAS V7 最新動向Workshop SCA FPでの提供機能を示します。 各機能の詳細につきましては、以下リンクの「WAS V7 FeaturePack 利用ガイド」に 詳細手順が記載されていますのでご参照ください。 http://www.ibm.com/developerworks/jp/websphere/library/was/was7_fep_guide / 38 08.Feature Pack for Modern Batch / SCA SCAのメリット コードの開発・変更・再利用が容易 – 実装コードは接続先プロトコルに依存しない POJO Component Component • 接続情報はバインディングのプロパティ設定 – トランザクションやセキュリティのQoS実装を 設定レベルで実施 “完成アプリケーション” 最上位Composite 抽象的 上流 – Recursiveモデルの利用によってサービス 粒度を自由に調整可能 “適切な粒度のサービス” 中間Composite “実装” 下位Composite Spring 39 Java Java 具象的 下流 WAS V7 最新動向Workshop SCAのメリットはコードの開発・変更・再利用が容易な点にあります。 •実装コードは接続先プロトコルに依存しないPOJO実装であるため、コードの再利 用が容易になります。接続情報はバインディングのプロパティ設定のみであり、プロト コル依存のコーディングを必要とせず、容易な開発が可能です。 •トランザクションやセキュリティといったQoSの実装についても実装コードで意識する ことはなく、設定レベルになるため容易に実装することができます。 •サービス粒度を自由に調整することができ、ComponentのワイヤリングやRecursive モデルを利用することで、多様な構造に組み立てることができます。 39 08.Feature Pack for Modern Batch / SCA (参考)既存のSCA製品とOpen SCAとの相互運用性 Open SCA(WAS V7 + SCA FP) SCA(WebSphere Process Server/WebSphere Enterprise Service Bus) 接続可能なバインディング – – – – SCAバインディング Webサービスバインディング EJBバインディング JMSバインディング Open SCA コンポジット SCA モジュール 40 SCA モジュール Open SCA コンポジット WAS V7 最新動向Workshop SCA FPで提供するOpen SCAベースのSCA以外にも、IBM製品で提供されている SCAがあります。Open SCAをサポートしているわけではありませんが、基本構造は 同様です。WebSphere Process ServerやWebSphere Enterprise Service Busで 使用されています。 異なるSCAをベースとしていますが、以下のバインディングで相互接続が可能です。 •SCAバインディング •Webサービスバインディング •EJBバインディング •JMSバインディング 40 08.Feature Pack for Modern Batch / SCA SCA FP まとめ SCA FPとは コンポジット・アプリケーション – OASIS標準のOpen SCAをサポート – SOAソリューションを目的としたプログラミング・モデル SCA FPのメリットは – コードの開発・変更・再利用が容易 • プロトコルに依存しないPOJOベースの開発 • 設定レベルで容易なQoS(トランザクション/セキュリティ)実装 • Recursiveモデルによる柔軟なサービス粒度の定義 41 WAS V7 最新動向Workshop 41 08.Feature Pack for Modern Batch / SCA (参考)Feature Pack for XML W3C 標準のXPath 2.0, XSLT 2.0, and XQuery 1.0をサポート エンタープライズ環境で使用可能なマルチスレッドによる拡張性や高い有用性 に加え、IBMによるサポートを提供 XMLシン・クライアントを通じてWebSphere Application Serverに接続する Javaアプリケーションをサポート XML Thin Client WAS Applications Feature Pack for XML XML FP API XPath 2.0,XSLT 2.0,XQuery 1.0 Runtime WebSphere Application Server V7 42 XPath 1.0 XSLT 1.0 WAS V7 最新動向Workshop Feature Paack for XMLではW3C標準のXPath2.0、XSLT2.0、XQuery1.0をサ ポートしています。 42 08.Feature Pack for Modern Batch / SCA 参考文献 Feature Pack – WAS V7 FeaturePack 利用ガイド – http://www.ibm.com/developerworks/jp/websphere/library/was/was7_fep_guide/ FP Batch – WAS v7 Information Center –FeaturePack for Modern Batch – http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.bpfep.multiplatform.doc/info/ae/ae/welcome_fepbp. html – WebSphere XD ComputeGrid ポータルサイト – http://www.ibm.com/developerworks/jp/websphere/category/wxd/cg.html SCA FP – WAS v7 Information Center –FeaturePack for SCA v1.0.1 – http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/welcome_fepsc a.html – RedPaper:Getting Started with WAS Feature Pack for SCA – http://publib-b.boulder.ibm.com/abstracts/redp4633.html?Open – IBM Education Assistant - WAS Feature Pack for SCA – http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.ibm.iea.wasfpsca/plugin_coverpage.html – RAD V7.5 Information Center –SCAアプリケーションの開発(チュートリアル集) – http://publib.boulder.ibm.com/infocenter/radhelp/v7r5/topic/com.ibm.sca.tools.doc/topics/sca_tools_intro.html – OASIS SCA spec – http://www.oasis-opencsa.org/sca XML FP – WAS v7 Information Center ‐FeaturePack for XML – http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.xmlfep.multiplatform.doc/info/welcome_nd.html – Redbooks | Getting Started with the WebSphere Application Server Feature Pack for XML – http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/redp4654.html?Open – IBM Education Assistant - WAS Feature Pack for XML – http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.wasfpxml/plugin_coverpage.html 43 WAS V7 最新動向Workshop 43