ジョブネット
表示
ジョブネットとはジョブ管理システムにおいてジョブの依存関係等を定義したもの。
ジョブネットの定義内容
[編集]ジョブネットはコマンドの実行やイベントの受信、条件判断等を行う「ジョブユニット」同士を関連線で結合し、ジョブの依存関係を定義する。これにより「ジョブAを実行した後でジョブBを実行する」といった連携を実現する。
シェルスクリプトでも同様の機能を実現できるが、ジョブネットにすることで次のようなメリットを享受できる。
- 異なるノード同士でのジョブの連携
- 「DBサーバでRDBMSを起動してからAPサーバでアプリケーションを起動する」といった連携を容易に記述できる。シェルスクリプトでも実現できなくは無いが、rexecやリモートシェル、ssh、Windows PowerShell等でリモート実行する必要がある。またリモート実行のための信頼関係をそれぞれ定義しなければならない[1]。
- 処理の進行状況の可視化
- 多くのジョブ管理システムではジョブネットの進行状況をグラフィカルに表示するインタフェースを備えており、ジョブネット中のどのユニットが実行中なのかを容易に把握できる。またジョブユニットが異常終了した場合は、どのユニットが異常終了したのか把握しやすい (例:JP1/AJS3 - Viewのジョブネットモニタ画面構成)。
- ジョブの部分再実行、実行保留、実行中止
- シェルスクリプトでは一連の処理のうち一部だけの再実行や、処理の保留と再開、一部処理のみのスキップを実現できないが、ジョブネットではジョブユニットの単位で再実行や保留、実行中止を設定できる。
- ジョブの並列実行
- シェルスクリプトでは終了コードを確認しての並列実行を記述できないが、ジョブネットでは記述できる。そのため「バックエンドサービスA、B、Cを起動し、すべて起動してからフロントエンドサービスX、Y、Zを起動する」といったロジックを定義できる。[2]
ジョブネットを定義できるジョブ管理システムの例
[編集]ジョブ管理システムの要求の性質上エンタープライズ向け製品が多く、無償で使用できるオープンソースソフトウェアとして提供されるものは少ない。またオープンソースソフトウェアであっても有償サポートのある製品が多い。 このような背景から商用UNIX、Linux、Windowsを動作環境とするものがほとんどで、macOSやBSD系UNIXで動作するものは少ない。
商用ソフトウェア
[編集]オープンソースソフトウェア
[編集]- Hinemos (NTTデータ)
- 初期のバージョンではジョブの並列実行ができなかったが、現在では可能になっている
- マネージャはLinux (x86/x64) のみ、エージェントはLinux (x86/x64)、Windowsのみ。AIX、HP-UX、SolarisはHinemosパートナーより提供。
- JobScheduler(ドイツSOS社)
- マスタはLinux/Windowsのみ、エージェントはLinux (x86/x64)、Windows、HP-UX、AIX、Solaris、Mac OS X
- 日本語対応済
- Job Arranger for Zabbix (大和総研ビジネス・イノベーション、旧FitechForce)
- マネージャはWindowsのみ、エージェントはLinux (x86/x64)、Windows、HP-UX、AIXのみ。