サイト内の現在位置を表示しています。

WebOTX Batch Server - 機能詳細

WebOTX Batch Server (WebOTX BS) が提供している特徴的な機能を紹介します。

ジョブリクエスト制御

大規模なバッチ処理では、多数のユーザからの多数のジョブが実行されることがあります。こうした際には業務やユーザの特性に応じてジョブを最適に実行することでジョブを効率的に処理できます。最適なジョブ実行実現のためにWebOTX Batch Serverでは、以下の機能を実現しています。

  • キューイングされたジョブリクエストに対し優先度の高いジョブから実行していく優先度制御
  • ジョブリクエストキューを多重化し、ユーザや業務に応じてリクエストキューを分離することでジョブの隔離性を強化
  • どのジョブをどのバッチサーバ上で実行するかをポリシーで設定可能。これによりバッチサーバの負荷状況に基づき負荷の低いバッチサーバ上でジョブを実行するといった制御が実現できます。

ジョブ実行状態の監視

バッチ処理では予定時刻までに終了することが重要であり、バッチがオンライン開始時刻など予定時刻に終了しないことでシステム障害に繋がることがあります。こうした障害防止のため、WebOTX Batch Serverではジョブ実行時に終了予定時刻を設定し、予定時刻に終了していない場合はアラートをログ出力することができます。これにより運用管理ソフトウェアと連携した対処処理の実行などが実現できます。

またJava VM上で多数のジョブを動かす場合、メモリを大量に消費するジョブの影響等でJava VMのメモリが枯渇し障害となる懸念があります。こうしたメモリ不足に起因する障害を防ぐためにWebOTX Batch ServerではバッチコンテナのJava VMのメモリを監視し、閾値を超えた場合にアラートをログ出力することが可能です。これにより運用管理ソフトウェアと連携した対処処理の実行などが実現できます。

設定、アプリケーションの動的更新

連続稼動システムにおいてサービス中断なくアプリケーションを置き換えるためには、複数台のサーバを順次停止しアプリケーションを置換していくなど一般に運用が複雑になります。WebOTX Batch Serverではバッチアプリケーションを稼動させたままのバッチアプリケーションの追加・更新を実現し、アプリケーション配備時の運用を簡易化します。また動的な設定変更も実現します。

分散トランザクション制御

バッチ処理は複数のシステムに跨ることがあります。こうした際のシステム間連携はファイル連携、DB連携等様々な方式があります。WebOTX Batch Serverでは分散トランザクション制御機能をサポートしていますので、複数データベースなど複数のリソースに跨るバッチ処理が実現でき、複数システムに跨るバッチ処理の設計が簡易化されます。

バッチアプリケーション開発フレームワーク

WebOTX Batch Serverは、オープンソースソフトウェアであるSpring Batch(*)をベースとした製品です。
Spring Batchは、「バッチ処理は、何らかの処理対象(アイテム)に対する(1件ずつの)繰り返し処理である」というモデルに基づくフレームワークとなっており、ループ処理、コミット処理、リスタート処理等の汎用的な制御ロジックや、入出力処理対象の各種リソースに応じた部品が含まれています。
バッチアプリケーションの開発者は、1件のアイテムに対する処理をビジネスロジックとして実装することで、バッチアプリケーションを開発することが可能です。

  • (*)
    Spring Batchは、SpringSourceおよびAccentureの協働により、Spring Frameworkをベースに開発されたオープンソースのバッチアプリケーション開発フレームワークです。

バッチコンテナ

Javaでバッチアプリケーションを実装する際に気になる点は、Javaプロセスのメモリ使用量とプロセス起動時間のオーバヘッドです。
WebOTX Batch Serverでは、ジョブを実行するJava VMを常駐化することができ、複数のジョブを多重実行した際のメモリ使用量を大幅に削減可能にし、ジョブ実行プロセスの起動時オーバーヘッドを削減しています。
単一のジョブ実行プロセス上で複数のジョブが実行される構成となる為、ジョブ毎のクラスローダを分離しジョブ間の隔離性を確保。
さらに、ジョブ実行プロセスを多重化した構成も可能であり、バッチアプリケーションの特性や、システムのマシンリソースに合わせて柔軟に対応することが可能です。
また、Java VMを常駐化することにより、HotSpot Compilerやデータベースのコネクションプーリング機能による性能向上効果が期待できます。

ジョブスケジューラ連携

オープンソースソフトウェアは、その進化や実験的・先進的機能への取り組み早く、手軽に利用することができることから、近年様々な局面での利用が進んでいます。その反面、商用製品に比べて運用管理系の機能が不足していると言われています。

WebOTX Batch Serverでは、基本的なジョブ操作(起動、停止、再実行、強制停止、状態表示)のコマンドを提供しており、常駐化したジョブ実行プロセス上でバッチアプリケーションにより出力されたログやジョブの終了コードを、コマンドの標準出力や戻り値として返却可能にする等、ジョブスケジューラ製品との連携や本番運用を想定した機能強化を行っています。
また、ジョブ実行時に任意のIDを指定可能にしており、ジョブスケジューラ製品などのジョブ実行結果との紐付けも可能にしています。

WebSAM JobCenterからは、WebOTX Batch Server用の単位ジョブ部品が提供され、WebSAM JobCenterのGUIを使用してジョブネットワークおよびジョブのフロー定義やジョブパラメータの設定やジョブに対する各種操作が行えるなど、より運用性を高める為の連携を行っています。