オープンソースのジョブ管理システム「SOS JobScheduler」をご紹介

企業システムには欠かせないジョブ管理システム。商用では日立のJP1やIBMのTivoli、野村総研の千手、それから富士通のSystemwalkerといったあたりが有名どころです。
しかし、オープンソースではあまり名前が挙がりません。せいぜいNTTデータのHinemosくらいでしょうか。ただ、そのHinemosもジョブ管理機能も持っているけど、監視機能もあるし・・・といった感じで、純粋なジョブ管理システムではありません。それから、Quartzはかなり有名なようですが基本的にJ2EE向けで、シェルスクリプトやPerlなどで書いたジョブを実行するのには適していないようです。

そんなわけで結局、cronやatといった標準的なツールを使ってジョブ管理することになるのですが、もう少し何かないのでしょうか。

いろいろ探してみたところ、ついに発見したのがJobSchedulerです。名前が一般名詞すぎてアレですね。なので、ベンダーの名前を付けてSOS JobSchedulerと呼ぶことにしましょう。ドイツのSoftware- und Organization-Service GmbH(SOS社)が提供しているオープンソースで、GPLと商用のデュアルライセンスになっています。

ドイツ製とはいえ英語での情報提供が行われているので何とかついて行けます。残念ながら日本語での情報は極めて限定的な状況です。(JobSchedulerという一般名詞すぎる名前が災いして検索が難しいというのもありますが)

SOS JobScheduler

ジョブの実行や結果の参照を行うJOC(JobScheduler Operatios Centre)

SOS JobScheduler Object Editor

ジョブやジョブチェーンの編集を行うJOE(JobScheduler Object Editor)

SOS JobSchedulerには下記のような機能があります。ジョブ管理システムとしては充分な機能を揃えているといえるでしょう。

  • 通常の実行可能プログラム、シェルスクリプトなどをジョブとして実行
  • ジョブの戻り値に依存した後続ジョブの実行
  • ジョブの並列実行(並列実行数の設定も可能)
  • ジョブチェーンの作成と実行
  • 設定ファイルを自動で読み込むHot Folder機能
  • ジョブの実行や状況を確認するためのWebUI、JOC(JobScheduler Operetions Centre)
  • ジョブやジョブチェーンを作成するためのJava Swingアプリ、JOE(JobScheduler Object Editor)
  • コマンドラインでの操作
  • XMLコマンドによるTCPでのリモート操作
  • Webサービス統合
  • ファイル着信を監視してジョブを実行する機能
  • 豊富なジョブ実行スケジュール設定
  • メール通知
  • ジョブ実行のロック
  • リモートジョブの実行
  • 複数のJobSchedulerの協調動作(ロードバランシング、フェイルオーバー)

これでもJobSchedulerのサイトで紹介されている機能の一部です。
実際にインストールしていろいろと試しているのですが、機能がありすぎて、正直言ってお腹いっぱいです。

ただ、日本だと・・・という感じのようですね。

ということで、まずはSOS JobSchedulerの機能について紹介しました。次回はインストールについて書きたいと思います。

この記事を書いた人

井上 研一

株式会社ビビンコ代表取締役、ITエンジニア/経済産業省推進資格ITコーディネータ。AI・IoTに強いITコーディネータとして活動。画像認識モデルを活用したアプリや、生成AIを業務に組み込むためのサービス「Gen2Go」の開発などを行っている。近著に「使ってわかった AWSのAI」、「ワトソンで体感する人工知能」。日本全国でセミナー・研修講師としての登壇も多数。