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

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

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

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

SOS JobScheduler

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

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

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コーディネータとして活動。北九州市主催のビジネスコンテスト「北九州でIoT」に応募したアイディアが入選し、メンバーと株式会社ビビンコを創業。著書に「初めてのWatson」、「ワトソンで体感する人工知能」など。セミナーや研修講師での登壇多数。