ジョブスケジューラ
JobScheduler
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/27 06:23 UTC 版)
ナビゲーションに移動 検索に移動開発元 | Software- und Organisations-Service GmbH[1] |
---|---|
初版 | 2005年[2] |
最新版 |
2.3.1[3]
/ 2022年5月4日 |
プログラミング 言語 | Java, Scala, JavaScript |
対応OS | マスター: Linux, Windows; エージェント: あらゆるプラットフォーム |
対応言語 | 英語、日本語、ドイツ語、フランス語 |
サポート状況 | アクティブ |
種別 | ジョブ管理システム |
ライセンス | GPL またはクローズドソース[4] |
公式サイト |
www |
JobSchedulerは、エンタープライズレベルのスケジューリングとプロセス自動化のためのオープンソースのアプリケーションソフトウェアである。実行ファイルやスクリプトを起動し、ユーザープログラムを自動的に実行するために使用される。JobSchedulerは、ステータスと履歴情報をバックエンドデータベース管理システムに保存する。
JobSchedulerのクラスタリングを除くすべての機能は、GPL V.3ライセンスの下で使用可能となっている。クラスタリングとエンタープライズレベルのサポートとサービスを求めるユーザーは、商用ライセンスを利用可能である。
主な機能
- JobSchedulerは、実行ファイル、シェルスクリプト、およびデータベースプロシージャを実行できる。[5]
- ジョブの開始は、カレンダーイベント、受信ファイルの監視、他のジョブスケジューリングイベント、外部アプリケーションによって開始されたAPIイベントなどのイベントによってトリガーできる。[6]
歴史と発展
JobSchedulerは、Joacim Zschimmerから提供されたコードを使用してSOS GmbHによって開発された。[6] 独立した製品としてのJobSchedulerの開発は2005年に開始され、同年にオープンソースGPL 2ライセンスの下でリリースされた。 JobSchedulerの64ビットバージョンは2013年にリリースされ[7]、ユニバーサルエージェントは2015年9月にリリースされた[8]
SOS GmbHとJobSchedulerは、2012年にガートナーのITリサーチおよびアドバイザリー会社により、世界的な作業自動化市場に関するMagic Quadrantレポートにおいて選ばれている。JobSchedulerは、「...オープンソースツールの採用ポリシーを持つ組織にとって魅力的」と説明されていた。[9]
2021年10月従来のコードベースを完全に書き換えたV.2系が発表され、JS7® JobSchedulerとリブランディングされた。
説明
アーキテクチャ
- JS7® JobSchedulerは、JOCコックピット、コントローラー、エージェントから構成される。
- JOCコックピット
- WEB GUI/REST API
- ジョブ実行制御配布
- 履歴情報収集・保存
- ジョブ定義・リソースの作成
- ジョブ定義の管理とコントローラーへの配布
- クラスター制御、イベントキュー、ロギングなど
- コントローラー
- DB接続を廃止
- ジョブ定義をJOCコックピットから取得
- 実行履歴をJOCコックピットに送信
- 実行計画とジョブ定義をエージェントに配布
- 自律型エージェント
- コントローラーとの通信障害時にも自律的にジョブ実行制御
- エージェントクラスター内で実行計画とジョブ定義を同期
- 実行履歴をコントローラーに送信
- 公開鍵認証の導入
- 各モジュール間通信の公開鍵認証
- JOCコックピットまたは外部認証局で証明書を作成・署名
- ルート証明書と中間証明書を各コントローラーとエージェントに配布
- ジョブ定義ファイルの公開鍵認証
- JOCコックピットまたは外部認証局でジョブ定義ファイル毎に署名
- 各コントローラー及びエージェントで配布された署名が一致するかを確認
- 各モジュール間通信の公開鍵認証
動作モード
- JS7® JobSchedulerコントローラー・エージェントは、バックグラウンドでUnixデーモンまたはWindowsサービスとして無人で実行される。
- 監視と手動介入は、JOCコックピットのWebベースのGUI、REST API、Powershellコマンドレットを利用して実行できる。
主な機能
- ワークフロー:複数のジョブノードが渡されるアセンブリラインとして見ることができる。ワークフロー内の各ジョブは、処理のステップを構成する。
- ワークフローはDAG(有向非巡回グラフ、Directed Acyclic Graph)モデルを採用し、BPMN(ビジネスプロセスモデリング表記法、Business Process Model and Notation)ベースのワークフローパターンを採用している(ただし準拠ではない)
- ワークフロー・ジョブ定義のフォーマットはJSONベースのHOCON(Human-Optimized Config Object Notation)形式であり、JOCコックピットのGUIエディタまたはテキストエディタで作成・編集できる。
- クロスプラットフォームスケジューリング:
- 異なるオペレーティングシステムのリモートホストでジョブを直接実行するユニバーサルエージェント。
- 異なるオペレーティングシステムでジョブを実行するためのエージェントレススケジューリング。
- 高可用性のためのアクティブ/パッシブクラスタ。
- SQLデータベースでのジョブ履歴、およびログ情報の記録。
- ジョブのトリガーは、ディレクトリ監視およびファイル監視などによって開始する。
- ビルトインのファイル転送機能。
- スクリプト機能(シェル、JavaScript、PowerShellなど) )。
- Nagios、Zabbix、SCOMなどのシステムモニターと統合するための監視インターフェイス。
- ファイル転送やログローテーションなどの操作をカバーする標準ジョブテンプレートのライブラリ。
- SAP S/4 HANA®に提供される SAP Job Scheduling Service REST API を使用したJS7ワークフローテンプレート。
実装
- JS7®JobSchedulerはScalaとJavaで開発されている。JS7®JobSchedulerで配布される標準ジョブはJavaで実装されている。
- JS7®JobSchedulerによって処理される個々のオブジェクトに関する情報(ジョブ、ワークフロー、スケジュールなど)は、HOCON(JSON)形式で永続的に保存される。
- JOCコックピットは、データベース管理システム(DBMS)を使用して、ジョブのステータス、および履歴情報を保存する。
JobScheduler ユニバーサルエージェント
- エージェントは、Java仮想マシンをサポートするオペレーティングシステムで実行される。
- エージェントは、コントローラーから構成およびタスク実行要求を取得し、DBMSは必要ない。
- コントローラー/エージェント通信は、単一のHTTPまたはHTTPS接続を使用する。
- 複数のエージェントは、冗長性とフェールオーバーを満たすようエージェントクラスターで設定できる。
サポートされているプラットフォーム
JOCコックピット/コントローラー
オペレーティングシステム: [10]
データベース管理システムl(JOCコックピットのみ必要):
JobScheduler ユニバーサルエージェント
ユニバーサルエージェントは、Oracle/openJDK 8 - 11, 17をサポートする任意のオペレーティングシステムで実行できる。DBMSは必要ない。
ライセンス
JS7® JobSchedulerは、オープンソースのGPL 3.0ライセンスの下で使用できる。ユーザーは商用ライセンスも購入可能。
オープンソース版と商用ライセンス版の違いは、クラスタリング機能及び商用サポートの提供の有無である。
サポートとサービス
商用ライセンスをお持ちのユーザーは、エンタープライズレベルのサポートとサービスを利用できる。 オープンソースライセンスでJobSchedulerを操作しているユーザーは、JobScheduler Knowledge BaseおよびSourceForgeのフォーラムからサポートを受けることができる。
関連項目
- ジョブスケジューラソフトウェアのリスト
- Mohr、James: "Job Schedulingàla Carte"、Linux Magazine、2008年12月、#97;オンライン版はこちら。
- Simon Brock、Simon:「 完璧なオープンソースタスクスケジューラ 」2010年2月、デニスパブリッシングリミテッド、イギリス。2016年5月にアクセス。
参照資料
- ^ “Legal Notice”. Software- und Organisations-Service. 2016年5月27日閲覧。
- ^ “Job Scheduler 1.2 moved to SourceForge.net”. SourceForge. 2016年5月27日閲覧。
- ^ “Versions”. SOS GmbH Change Management System. 2019年9月3日閲覧。
- ^ “Licensing”. Software- und Organisations-Service. 2015年9月16日閲覧。
- ^ “Features”. SOS GmbH Product Knowledge Base. 2016年5月26日閲覧。
- ^ a b “The JobScheduler in a Nutshell”. Software- und Organisations-Service. 2016年5月26日閲覧。
- ^ “64-Bit JobScheduler released”. Software- und Organisations-Service. 2016年5月26日閲覧。
- ^ “JobScheduler, Universal Agent and JADE 1.10 released”. Software- und Organisations-Service. 2016年5月26日閲覧。
- ^ Govekar, Milind; Mahapatra, Biswajeet (February 2012). Magic Quadrant for Workload Automation. Stamford: Gartner, Inc.. G00219826
- ^ “Which platforms is JobScheduler available for and what platform support is provided?”. SOS GmbH Product Knowledge Base. 2016年5月26日閲覧。
外部リンク
- 公式ウェブサイト
- ドイツのベルリンにあるSoftware- und Organisations-Service GmbH社のWebサイト
- 日本国内代理店:OSSラボ株式会社
ジョブ管理システム
ジョブ管理システム(ジョブかんりシステム)とは、コンピュータ上での複数のジョブ(プログラム、バッチ処理)の起動や終了を制御したり、ジョブの実行・終了状態の監視・報告などを行うソフトウェアである。「ジョブスケジューラ」、「タスクスケジューラ」とも呼ばれる。
なお、設定した時間にプログラムを起動するような単純なものを「タスクスケジューラ」と呼び、高度なもの(営業日や稼働日などの複数のカレンダーを持ち、複数のコンピュータ間の複雑なジョブ間の先行関係や例外処理を定義できるものなど)を「ジョブスケジューラ」と呼び分ける場合もある。比較的単純なものはオペレーティングシステムに標準装備されている場合も多い。
主な機能
ジョブ管理システムは、一般的に次のような機能を持つ。
ジョブのスケジューリング
複数あるジョブそれぞれの起動契機をスケジュールする。たとえば、毎日何時何分にジョブ A を起動するとか、ジョブ B が正常終了したらジョブ C を起動する等とかいったことである。WindowsやUNIXなどのOS標準機能でも簡単な曜日・時刻指定の起動ができるが、ジョブ管理ソフトウェアでは複数のカレンダー、複雑な先行関係、ファイルトリガー、外部トリガーなどが組み合わせられるものが多い。
計算資源スケーリング
ジョブはしばしば高負荷・低頻度である(c.f. ストリーム処理)。すなわちジョブを実行する計算資源は常に100%利用されているのではなく、間欠的に高負荷がかかる形で利用される。効率的な計算資源利用のために、ジョブ管理システムはしばしば計算資源のスケーリングを提供する。例えばJobがない場合には全てのクラウドインスタンスを停止し、Job開始にあわせてインスタンスを起動、Job数が増えた場合にはインスタンスを一時的に増加させる[1]。オンプレミス環境の場合でも、高負荷時だけ一時的にクラウドへオフローディングできる。
ジョブの異常の報告
ジョブが実行時あるいは終了時に異常が発生した場合、メールやメッセージ等でオペレータに異常を報告する。
自動リトライ
ジョブは様々な理由から失敗しうる。その理由はエラー発生・プロセス停止・インスタンスダウンなど様々あり[2]、場合によってはJobをもう一度おこなう(リトライする)方が好ましい場合がある。ジョブ管理システムはJob失敗検出をトリガーとした自動リトライを提供する[3][4] (c.f. システム運用における復旧・自動修復。Jobは正常終了時にterminateするがサービスの場合はその数を維持する)。
ジョブの実行状態のログを保存
ジョブが出力したメッセージやジョブの終了ステータス等をログに保存する。
主な実装
システム管理
メインフレーム
- ジョブ入力サブシステム
- ジョブスケジューラ
- A-AUTO
- Systemwalker Operation Manager
- Tivoli Workload Scheduler (TWS)
- ジョブ制御スクリプト
- Job Control Language (JCL)
UNIX / Windows
- Hinemos
- A-AUTO
- Tivoli Workload Scheduler (TWS)
- JP1 Automatic Job Management System 3 (JP1/AJS3[5])
- OpenView
- Systemwalker
- WebSAM JMSS
- WebSAM JobCenter
- 千手 (Senju Operation Conductor)
- HP JobCenter software
- JS7® JobScheduler オープンソース、日本語化あり
- Job Arranger for Zabbix
並列・グリッドコンピューティング
- Globus
- Sun Grid Engine
- Sun N1 Grid Engine
- LSF
- NQS
- Portable Batch System (PBS)
- PBS Professional
- OpenPBS
- TORQUE
- Moab Cluster Suite
- Maui Cluster Scheduler
- Slurm Workload Manager
- Berkeley Open Infrastructure for Network Computing (BOINC)
- Condor
- Windows Compute Cluster Pack (Windows Compute Cluster Server 2003に同梱されている)
- Xgrid
- DQS
参考文献
- 伊藤忠テクノソリューションズ著 『JP1によるジョブ管理の実践ノウハウ』日経BP社、2008年3月、ISBN 482222984X
- OSS「JobScheduler」で実現するこれからの運用自動化
関連項目
脚注
- ^ 「AWS Batch は、コンピューティングリソースを自動的にプロビジョニングし、ワークロードの量と規模に基づいてワークロードのディストリビューションを最適化します。」AWS Batch とは - AWS Batch
- ^ 「Pod内のコンテナは、その中のプロセスが0以外の終了コードで終了した、またはメモリー制限を超えたためにコンテナが強制終了されたなど、さまざまな理由で失敗する可能性があります。」Podおよびコンテナの障害の処理 - kubernetes
- ^ 「Jobは1つ以上のPodを作成し、指定された数のPodが正常に終了することを保証します。...さまざまな理由で失敗する可能性があり…場合、Podはノードに残りますが、コンテナは再実行されます。…Podが失敗した場合、Jobコントローラーは新しいPodを開始します。」Podおよびコンテナの障害の処理 - kubernetes
- ^ 「ジョブおよびジョブ定義に再試行戦略を適用し、失敗したジョブを自動的に再試行できます。」AWS Batch
- ^ 現行バージョン。JP1 Automatic Job Management System 2は「JP1/AJS2」と略した。
- JobSchedulerのページへのリンク