2014年11月4日火曜日

A-AUTOのスケジュール日の概念について

こんにちは、渡辺です。

ジョブ管理ツール(ジョブスケジューラ)には、OSS(オープンソース)やフリーソフトウェア、有償パッケージソフトウェアと、 様々なツールが存在していますね。

どのソフトウェアを利用するか選定する際のポイントとしては、価格、機能、操作性、運用面、サポート面などいろいろありますが、業務運用をどれだけ想定されているかが重要と考えます。

今回はA-AUTO 50(エーオート・フィフティー)のことを知っていただこうと考え、A-AUTOの特徴の一つである『スケジュール日についてお話しします。




A-AUTOでは、ジョブを実行させる方法として大きく2つ用意しています。
  1. 処理日がいつであるかを意識し業務を予めスケジュールして実行する
  2. 予めスケジュールは行わずイベントが発生する都度実行する


1つ目は、自動スケジュールによって処理日を決定し、業務を自動実行する方法です。
2つ目は、イベントドリブンな業務実行です。

今回は、『スケジュール日』について書こうと思いますので、「1.処理日がいつであるかを意識し業務を予めスケジュールして実行する」ことについて書いてきます。




早速ですが、業務には『いつ処理する業務か』を意味する処理日という考え方がありますね。
例えば、日次処理であれば、毎日処理することとなるので、101日、102日、103日...のように処理日が決まります。

A-AUTOでは、『スケジュール日』という概念を用いて、この処理日を意識したスケジュールならびに実行制御を行います。

スケジュール日とは

A-AUTOでは、一つ一つのネットワークがそれぞれ「○年△月×日分のネットワーク」というように、『日付』+『ネットワークID』の情報で実行制御しています。
この”○年△月×日分”というのが、A-AUTOでの「スケジュール日」という概念です。この『スケジュール日』によって、同じネットワークIDであっても別ものとして識別し処理します。



この『スケジュール日』の主な利点は以下の2つです。
① 処理日を意識した業務アプリケーションを簡単に扱える
② 同一業務の追い越し防止


① 処理日を意識した業務アプリケーションを簡単に扱える


業務アプリケーションではインプットに日付を用いることが良くあります。このとき、日付にCPU日付を用いるのであれば問題はありません。しかしながら、処理日を用いたいと考えた場合、処理日にCPU日付を利用すると、アプリケーションが実行するタイミングに依存してしまい、CPU日付では期待する日付を確実に取得することはできません。

ここで、A-AUTOでは、業務に○年△月×日というスケジュール日を付加して業務の実行制御を行います。
このことによって、業務がいつ実行されたとしても、いつのスケジュール日(処理日)の業務かを識別して実行を制御します。
そして、A-AUTOでは、スケジュール日や運用日と言ったA-AUTOが管理する複数の日付をお客様のアプリケーションに引き渡すインタフェースを用意しています。(下図参照)
このインタフェースを利用いただくことで、処理日を意識したアプリケーションの実行を容易にしています。



② 同一業務の追い越し防止

前述したように、A-AUTOは業務にスケジュール日を付加することで、同一の業務であっても処理日の異なる別の業務として扱います。
仮に、マシントラブルや業務トラブルによって業務開始が遅延し翌日にし残し業務が発生すると、前日分と本日分と同一業務が複数未処理状態となります。

このような場合でも、A-AUTOでは同一業務に関しては古いスケジュール日の業務から順番に実行し、古いスケジュール日の業務が正常に終了してから翌日以降の業務を処理します。

業務の追い越しを行わず処理日毎に確実に処理を行わせることができます。

スケジュール日を踏まえた業務追い越し防止制御






最後に、A-AUTOのスケジュール機能では、さまざまな条件を用いたスケジュール生成が行えます。お客様が実現したいスケジュールを自在にスケジュールしていただけるはずです!


次回は、「イベントドリブンなジョブ実行」についてお話しします。





0 件のコメント:

コメントを投稿