(57)【要約】【課題】イネーブラでの処理リソースの無駄な消費を防ぐ。【解決手段】スケジューリング実行装置１は、アプリのサービスを提供するために用いるイネーブラの実行開始時刻を事前に予約する。また、スケジューリング実行装置１は、複数のアプリから要求を受けた場合、要求の受付順に早い時刻からイネーブラの実行開始時刻を予約し、複数のイネーブラを順番に用いるアプリにおいて、前順のイネーブラの実行終了予定時刻と後順のイネーブラの実行開始時刻との間に一定以上の時間がある場合、予約したイネーブラの実行開始時刻を変更する。【選択図】図５
2018181180.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションソフトウェアのサービスを提供するために用いるイネーブラの実行開始時刻を予約する予約部と、
予約したイネーブラの実行開始時刻を記憶する記憶部と、
を備えることを特徴とするスケジューリング実行装置。
【請求項２】
前記予約部は、
複数のアプリケーションソフトウェアから要求を受けた場合、要求の受付順に早い時刻からイネーブラの実行開始時刻を予約し、複数のイネーブラを順番に用いるアプリケーションソフトウェアにおいて、前順のイネーブラの実行終了予定時刻と後順のイネーブラの実行開始時刻との間に一定以上の時間がある場合、予約したイネーブラの実行開始時刻を変更することを特徴とする請求項１に記載のスケジューリング実行装置。
【請求項３】
スケジューリング実行装置で行うスケジューリング実行方法において、
前記スケジューリング実行装置は、
アプリケーションソフトウェアのサービスを提供するために用いるイネーブラの実行開始時刻を予約する予約ステップと、
予約したイネーブラの実行開始時刻を記憶部に記憶する記憶ステップと、
を行うことを特徴とするスケジューリング実行方法。
【請求項４】
前記予約ステップでは、
複数のアプリケーションソフトウェアから要求を受けた場合、要求の受付順に早い時刻からイネーブラの実行開始時刻を予約し、複数のイネーブラを順番に用いるアプリケーションソフトウェアにおいて、前順のイネーブラの実行終了予定時刻と後順のイネーブラの実行開始時刻との間に一定以上の時間がある場合、予約したイネーブラの実行開始時刻を変更することを特徴とする請求項３に記載のスケジューリング実行方法。
【請求項５】
請求項１又は２に記載のスケジューリング実行装置としてコンピュータを機能させることを特徴とするスケジューリング実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イネーブラを利用してサービスを提供する技術に関する。
【背景技術】
【０００２】
現在、ＡＰＩ（Application Programming Interface）の普及に伴い、Ｗｅｂ上に提供されている情報及び機能プログラムを組み合わせることにより、所定のサービスを提供することができる（特許文献１，２）。
【０００３】
具体的には、図８に示すように、ＡＰＩ提供装置において、アプリケーションソフトウェア（以下、アプリ）からのＡＰＩリクエストに基づき、そのＡＰＩリクエスト内の指定サービスを実行可能なイネーブラへ処理を要求することにより、そのサービスを提供することができる。
【０００４】
例えば、ＡＰＩ提供装置は、翻訳アプリから翻訳要求を含むＡＰＩリクエストを受信した場合、翻訳対象の日本語音声をテキストに変換する要求を音声−テキスト変換機能を持つイネーブラＡへ送信し、変換後の日本語テキストを英語テキストに変換する要求を日本語−英語変換機能を持つイネーブラＢへ送信し、変換後の英語テキストを音声に変換する要求をテキストデータ読み上げ機能を持つイネーブラＣへ送信して、返信された翻訳結果の英語音声を翻訳アプリへ送信する。その後、翻訳アプリを通じて英語音声がユーザへ提供されることにより、翻訳サービスを実現することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−００１３５５号公報
【特許文献２】特開２０１７−０３３２３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
先に例示したような、複数のイネーブラを経由する一連の処理を完結した上で意味を成すサービスにおいて、一部のイネーブラで処理の輻輳が発生し、全ての処理が完了しない場合、ユーザはサービス再実行を行わなければならない。これにより、ＡＰＩ提供装置で改めて最初から処理が開始され、既に処理を終えていたイネーブラを再利用することになるため、イネーブラで処理リソースの無駄が生じていた。
【０００７】
例えば、図９に示すように、初回のサービス実行時にイネーブラＣで処理リソース不足により処理が破棄された場合、サービス再実行時に処理要求がイネーブラＡ，Ｂに再送信されてしまい、イネーブラＡ，Ｂの装置でＣＰＵ使用率及びメモリ使用量を無駄に消費してしまう。
【０００８】
本発明は、上記事情を鑑みてなされたものであり、イネーブラでの処理リソースの無駄な消費を防ぐことを目的とする。
【課題を解決するための手段】
【０００９】
以上の課題を解決するため、請求項１に係るスケジューリング実行装置は、アプリケーションソフトウェアのサービスを提供するために用いるイネーブラの実行開始時刻を予約する予約部と、予約したイネーブラの実行開始時刻を記憶する記憶部と、を備えることを特徴とする。
【００１０】
請求項２に係るスケジューリング実行装置は、請求項１に記載のスケジューリング実行装置において、前記予約部は、複数のアプリケーションソフトウェアから要求を受けた場合、要求の受付順に早い時刻からイネーブラの実行開始時刻を予約し、複数のイネーブラを順番に用いるアプリケーションソフトウェアにおいて、前順のイネーブラの実行終了予定時刻と後順のイネーブラの実行開始時刻との間に一定以上の時間がある場合、予約したイネーブラの実行開始時刻を変更することを特徴とする。
【００１１】
請求項３に係るスケジューリング実行方法は、スケジューリング実行装置で行うスケジューリング実行方法において、前記スケジューリング実行装置は、アプリケーションソフトウェアのサービスを提供するために用いるイネーブラの実行開始時刻を予約する予約ステップと、予約したイネーブラの実行開始時刻を記憶部に記憶する記憶ステップと、を行うことを特徴とする。
【００１２】
請求項４に係るスケジューリング実行方法は、請求項３に記載のスケジューリング実行方法において、前記予約ステップでは、複数のアプリケーションソフトウェアから要求を受けた場合、要求の受付順に早い時刻からイネーブラの実行開始時刻を予約し、複数のイネーブラを順番に用いるアプリケーションソフトウェアにおいて、前順のイネーブラの実行終了予定時刻と後順のイネーブラの実行開始時刻との間に一定以上の時間がある場合、予約したイネーブラの実行開始時刻を変更することを特徴とする。
【００１３】
請求項５に係るスケジューリング実行プログラムは、請求項１又は２に記載のスケジューリング実行装置としてコンピュータを機能させることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、イネーブラでの処理リソースの無駄な消費を防ぐことができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の概要を説明する際の参照図である。
【図２】スケジューリング処理の概要を説明する際の参照図である。
【図３】予約順最適化処理の概要を説明する際の参照図である。
【図４】スケジューリング実行システムの構成例を示す図である。
【図５】スケジューリング実行装置の構成例を示す図である。
【図６】スケジューリング処理フローを示す図である。
【図７】予約順最適化処理フローを示す図である。
【図８】ＡＰＩリクエストに基づくサービスの提供方法を示す図である。
【図９】課題説明時の参照図である。
【発明を実施するための形態】
【００１６】
以下、本発明を実施する一実施の形態について図面を用いて説明する。
【００１７】
＜概要＞
本発明では、ＡＰＩリクエストを実行する際に、イネーブラの処理リソースを事前に予約する方法を提案する。具体的には、図１に示すように、ＡＰＩ提供装置を兼ねたスケジューリング実行装置において、アプリのサービスを提供するために必要な全てのイネーブラの実行開始時刻及び実行時間を予約する。
【００１８】
予約とは、本発明において、イネーブラの利用時間帯を予め確保してスケジューリング実行装置のスケジュール管理テーブルに入力すること、予約時間帯でイネーブラの処理リソースが占有されるようにイネーブラの機能プログラム自体又はイネーブラ装置のＯＳ（ＣＰＵ，メモリ，ハードディスク等を含む）に動作上の時間的制限・排他的制限をかけることをいう。
【００１９】
これにより、イネーブラの処理リソースが予め確保されるので、イネーブラにおいて処理の輻輳が発生しなくなり、１回のサービス実行でサービスを確実に提供することができる。その結果、サービス再実行を行う必要がなくなり、イネーブラでの処理リソースの無駄な消費を防ぐことができる。
【００２０】
＜提案機能＞
より具体的には、スケジューリング処理と予約順最適化処理を提案する。
【００２１】
（１）スケジューリング処理
スケジューリング処理では、イネーブラを時間毎に事前予約する。図２に示すように、スケジューリング実行装置１は、例えば、イネーブラを１秒単位で予約可能なスケジュール管理テーブルを用意し、予め全てのイネーブラの全予約欄を「空き」に設定しておく。
【００２２】
そして、スケジューリング実行装置１は、アプリからＡＰＩリクエストを受信すると、そのアプリで必要な機能処理（以下、個別処理；例えば、上述した翻訳対象の日本語音声をテキストに変換する処理）を確認し、個別処理ＩＤ，個別処理の実行順序，個別処理を実行するイネーブラのＩＤ，イネーブラの実行順序を確認して、イネーブラの処理能力を元に、個別処理ＩＤをスケジュール管理テーブルに予約する。
【００２３】
例えば、対象アプリがアプリ１の場合、図２の上側の表から、アプリ１（１）とアプリ１（２）の個別処理を必要とし、「イネーブラＡ→イネーブラＢ」がイネーブラ順序であることを確認する。なお、イネーブラＡは、アプリ１（１）に対応する機能を持つイネーブラであり、イネーブラＢは、アプリ１（２）に対応する機能を持つイネーブラである。また、図２の下側の表から、イネーブラＡ，Ｂでの１個別処理あたりの平均処理時間は、イネーブラＡで３秒、イネーブラＢで１秒であることを確認する。
【００２４】
その後、スケジューリング実行装置１は、図２の右側の表に示すように、まず、アプリ１（１）をイネーブラＡの予約欄のうち最も早い「０９：００：１２」から３秒分予約し、次に、アプリ１（２）をイネーブラＢの予約欄にアプリ１（１）の実行終了時刻に連続する「０９：００：１５」から１秒分予約する。これにより、アプリ１のサービスを提供するために必要な全てのイネーブラの処理リソースが予約されることになる。
【００２５】
引き続き、スケジューリング実行装置１は、アプリ２からＡＰＩリクエストを受信すると、アプリ１の予約方法と同様の方法でアプリ２を予約する。例えば、アプリ２ではアプリ２（１）の個別処理のみを必要とし、アプリ２（１）に対応する機能を持つイネーブラはイネーブラＢなので、イネーブラＢの予約欄内で「空き」のある最も早い「０９：００：１２」から１秒分予約する。
【００２６】
以上のように、スケジューリング処理では、イネーブラを時間毎に予約するので、そのイネーブラが他のアプリ用に予約されている場合であっても、その予約前後の時間に空きがあれば予約でき、イネーブラの処理リソースを効率的に活用することができる。
【００２７】
なお、イネーブラの処理能力の基準については、１個別処理あたりの平均処理時間を用いる代わりに、１個別処理あたりの最大処理時間を用いてもよい。また、対象アプリの数が膨大である場合、イネーブラの実行開始時刻が随分と遅くなり、ユーザの予期しない不都合なタイミングでサービスが提供される可能性がある。そこで、ＡＰＩリクエストを受信後、一定時間内しか予約できないように予約時間帯に制限を設けてもよい。
【００２８】
（２）予約順最適化処理
次に、予約順最適化処理について説明する。上記（１）で説明したように、本発明では、ＡＰＩリクエストの受付順に早い時刻から予約する方法を基本方針とする。一方、複数のイネーブラを経由するアプリにおいて、イネーブラ間で待ち時間が発生する場合には、イネーブラの実行開始時刻を調整することにより、アプリ全体の処理最適化を行う。
【００２９】
例えば、図３の左側の表に示すように、イネーブラＡで「０９：００：１２」〜「０９：００：１５」が予約済であり、イネーブラＢで「０９：００：１２」，「０９：００：１５」〜「０９：００：２１」が予約済の場合、基本方針の予約方法では、イネーブラＡ，Ｂを使用するアプリ９を予約する際、アプリ９（１）をイネーブラＡの「０９：００：１６」から３秒分予約し、アプリ９（２）をイネーブラＢの「０９：００：２２」から１秒分予約することになる。
【００３０】
この場合、イネーブラＡの実行終了予定時刻からイネーブラＢの実行開始時刻までに３秒間の待ち時間が発生してしまう。また、イネーブラＡを使用する受付順の遅いアプリ１０（１）については、イネーブラＡの「０９：００：１９」から予約することになる。
【００３１】
このような場合、予約順最適化処理では、アプリ９について、予約実行時間帯の遅いアプリ９（２）の実行開始時刻に合せるように、アプリ９（１）をイネーブラＡの「０９：００：１９」からの３秒分に予約変更する。また、アプリ１０（１）については、アプリ９（１）の予約変更により「空き」となったイネーブラＡの「０９：００：１６」〜「０９：００：１８」に予約する。
【００３２】
この予約変更を行った場合であっても、アプリ９に係る全てのイネーブラの実行終了予定時刻は予約変更前と変わらず、また、アプリ１０に係るイネーブラの実行終了予定時刻は基本方針で予約する場合よりも早くなるので、アプリ全体の処理を最適化することができる。
【００３３】
特に、アプリ９については、アプリ９（１）とアプリ９（２）を時間的に連続して実行できるので、アプリ９（１）に係るイネーブラＡの処理結果をメモリに保持しておく時間が低下する等の効果も期待できる。また、アプリ１０については、より速くサービスを提供することが可能となる。
【００３４】
＜システム構成＞
次に、本実施の形態に係るスケジューリング実行システムの構成例について説明する。図４に示すように、スケジューリング実行システム１００は、アプリ実行装置３、スケジューリング実行装置１、及びイネーブラ装置５を備えて構成される。
【００３５】
アプリ実行装置３は、アプリを実行するユーザ端末である。アプリは、自身が提供するサービスを実行するためのサービス実行要求（ＡＰＩリクエスト）をスケジューリング実行装置１へ送信し、返信されたサービス情報（データ情報及び音声情報）をアプリ実行装置３のモニタに表示してマイクから出力することにより、サービスを提供する。なお、アプリとはアプリケーションソフトウェアの略称であり、例えば既出の翻訳アプリである。
【００３６】
スケジューリング実行装置１は、ＡＰＩ提供装置を兼ねた装置であり、アプリ実行装置３からのＡＰＩリクエストに基づき、所望のサービスを提供するために利用するイネーブラの実行開始時刻及び実行時間をスケジュール管理テーブルに予約し、イネーブラ及びイネーブラ装置５の処理リソースを予約する。なお、予約の定義は説明済みである。
【００３７】
また、スケジューリング実行装置１は、イネーブラの処理リソースの予約完了後、予約時間が到来したタイミングでイネーブラ装置５へ処理を要求し、その処理結果のサービス情報をアプリ実行装置３へ返信する。なお、この処理要求はＡＰＩ提供装置に任せてもよく、スケジューリング実行装置１では予約処理のみを行うようにしてもよい。
【００３８】
イネーブラ装置５は、スケジューリング実行装置１から要求された処理を実行するイネーブラを備える装置である。イネーブラは、イネーブラ毎に異なる機能を備え、例えば、イネーブラＡは音声−テキスト変換機能を備え、イネーブラＢは日本語−英語変換機能を備える。このようなイネーブラは、インターネットのＷｅｂ上に提供されており、いつでも利用可能である。
【００３９】
なお、アプリとアプリ実行装置との数量的関係については、１対１でなくてもよい。１つのアプリ実行装置が複数のアプリを実装している場合もある。イネーブラ装置５についても同様であり、１つのイネーブラ装置５がＷｅｂインタフェースを介して複数のイネーブラを提供している場合もある。
【００４０】
ここまで説明したスケジューリング実行装置１、アプリ実行装置３、及びイネーブラ装置５は、ＣＰＵ、メモリ、ハードディスク、ネットワークインタフェース等を備えたコンピュータで実施可能である。また、それら各装置としてコンピュータを機能させるためのプログラム、そのプログラムの記憶媒体を作成することも可能である。
【００４１】
＜スケジューリング実行装置の構成＞
次に、本実施の形態に係るスケジューリング実行装置１の構成例について説明する。図５に示すように、スケジューリング実行装置１は、受付部１１、スケジュール確認部１２、予約依頼部１３、実行部１４、受付管理テーブル１５、アプリ情報テーブル１６、イネーブラ情報テーブル１７、スケジュール管理テーブル１８、及びイネーブラ処理数管理テーブル１９を備えて構成される。
【００４２】
受付部１１は、アプリ実行装置３のアプリからのＡＰＩリクエストを受け付け、そのＡＰＩリクエストに含まれるアプリのＩＤと該アプリの処理状況をＡＰＩリクエストの受付順に受付管理テーブル１５に入力する機能を備える。受付管理テーブル１５には、受付部１１により入力されたアプリＩＤとアプリの状況情報が受付ＩＤに関連付けて格納される。
【００４３】
また、受付部１１は、処理対象アプリのサービスを提供するために必要なイネーブラのＩＤをアプリ情報テーブル１６から取得し、そのイネーブラに関するリソース情報をイネーブラ情報テーブル１７から取得して、スケジュール確認部１２に渡す機能を備える。
【００４４】
アプリ情報テーブル１６には、アプリでサービスを提供するために必要なイネーブラのＩＤがイネーブラの利用順を把握できるようにアプリ毎に予め格納されている。例えば、アプリ１について、そのアプリ１の個別処理がアプリ１（１）とアプリ１（２）であれば、アプリ１（１）に対応する機能を持つイネーブラＡと、アプリ１（２）に対応する機能を持つイネーブラＢとが、イネーブラＡ→イネーブラＢという利用順と共に格納されている。このアプリ情報テーブル１６を参照すれば、処理対象アプリについて、どのイネーブラをどの順番で利用すればよいかを特定することができる。
【００４５】
イネーブラ情報テーブル１７には、イネーブラの処理に必要な処理リソースの総量、１処理あたりに必要な処理リソース量、１処理あたりに必要な平均処理時間（秒）がイネーブラ毎に予め格納されている。つまり、イネーブラ情報テーブル１７には、各イネーブラを処理するために必要なリソース情報が格納されており、このリソース情報を元に、各イネーブラで必要なアプリの実行時間を算出することができる。
【００４６】
スケジュール確認部１２は、ＡＰＩリクエストに対する処理を受付順に開始し、受付部１１から渡されたイネーブラＩＤとリソース情報を用いて、スケジュール管理テーブル１８の予約状況及び空き状況から予約可能な時間帯を特定し、早い時刻からイネーブラの実行開始時刻及び実行時間をスケジュール管理テーブル１８に予約する機能を備える。この機能は、上述した“ＡＰＩリクエストの受付順に早い時刻から予約するスケジューリング処理”の機能に対応する。スケジュール管理テーブル１８には、個別処理ＩＤが予約時間帯に入力される。
【００４７】
予約依頼部１３は、スケジュール管理テーブル１８を参照し、予約時間帯でイネーブラの処理リソースが占有されるように、イネーブラの機能プログラム自体やイネーブラ装置５に対して動作上の時間的制限・排他的制限をかける要求を実行部１４に依頼する機能を備える。
【００４８】
また、予約依頼部１３は、処理対象アプリが複数のイネーブラを順番に利用する場合、前順のイネーブラの実行終了予定時刻と後順のイネーブラの実行開始時刻との間に一定以上の待ち時間がある場合には、予約したイネーブラの実行開始時刻を変更することにより、アプリ全体の処理最適化を行う機能を備える。この機能は、上述した“予約順最適化処理”の機能に対応する。
【００４９】
なお、処理対象アプリが複数のイネーブラを利用するか否かについては、イネーブラ処理数管理テーブル１９を参照することにより特定可能である。イネーブラ処理数管理テーブル１９には、経由するイネーブラの数ｎ（初期値；０）がアプリ毎に入力されており、「ｎ＞１」であれば複数のイネーブラを利用するアプリとなる。
【００５０】
なお、スケジュール確認部１２と予約依頼部１３は、それら全ての機能を包含した１つの機能部（例えば、スケジューリング処理と予約順最適化処理の両方を行うスケジュール管理部という名称の機能部）で実現してもよい。
【００５１】
実行部１４は、予約依頼部１３からの予約依頼に基づき、予約時間帯でイネーブラの処理リソースが占有されるように、イネーブラの機能プログラム自体やイネーブラ装置５に対して動作上の時間的制限・排他的制限を設定する機能部である。
【００５２】
例えば、予約時間帯では処理対象アプリのみがイネーブラを占有するようにイネーブラ装置５のＯＳを設定したり、複数のアプリから高頻度で利用される汎用性のあるイネーブラの場合には、予約時間帯であっても一定以上のユーザの利用は許容するように、イネーブラの機能プログラムの利用者上限数を予約時間帯に限って低下させたりする方法がある。
【００５３】
＜スケジューリング実行装置の処理動作＞
次に、本実施の形態に係るスケジューリング実行装置１で行うスケジューリング実行方法について説明する。最初に、図６を参照しながら、スケジューリング処理の動作について説明する。
【００５４】
まず、ステップＳ１において、アプリ（以下、処理対象アプリ）からのＡＰＩリクエストを受け付けると、そのＡＰＩリクエストを受付順にキューに一旦格納すると共に、そのＡＰＩリクエストに含まれるアプリのＩＤを受付順に受付管理テーブル１５に入力する。
【００５５】
次に、ステップＳ２において、以前に受け付けていたアプリの処理が完了した後に、処理対象アプリをキューから読み出して処理を開始し、まず、アプリ情報テーブル１６を参照して、処理対象アプリでサービスを提供するために必要なイネーブラのＩＤがイネーブラＡか否かを判定する。
【００５６】
次に、必要なイネーブラのＩＤがイネーブラＡの場合、ステップＳ３において、イネーブラＡのスケジュール管理テーブル１８を参照して、現在の時刻から一定時間内に空きがあるか否かを判定する。
【００５７】
なお、この一定時間とは、図３を用いて説明した通り、処理対象アプリの数が膨大であることにより、イネーブラの実行開始時刻が随分と遅くなり、ユーザの予期しない不都合なタイミングでサービスの提供に至る可能性を回避することを考慮した時間である。
【００５８】
次に、一定時間内に空きがある場合、ステップＳ４において、イネーブラ情報テーブル１７からイネーブラＡのリソース情報を把握し、空きのある最も早い時刻からイネーブラＡの実行開始時刻をイネーブラＡのスケジュール管理テーブル１８に予約し、ステップＳ５において、イネーブラ数ｎ（初期値；０）に１を加算してイネーブラ処理数管理テーブル１９を更新する。一方、一定時間内に空きがない場合には、ステップＳ６において、予約に失敗したことをアプリへ返信して処理を終了する。
【００５９】
次に、ステップＳ５の後、ステップＳ７において、アプリ情報テーブル１６を参照し、イネーブラＡの次に利用するイネーブラがあるか否かを判定する。次に利用するイネーブラがある場合、ステップＳ２に戻る。一方、次に利用するイネーブラがない場合には、後述する予約順最適化処理へ進む。
【００６０】
続いて、ステップＳ２に戻るが、次に利用するイネーブラはイネーブラＡではないため、ステップＳ８において、イネーブラＡの後順であるイネーブラＢを利用するか否かを判定する。その後、イネーブラＢを利用する場合、ステップＳ９〜ステップＳ１３において、ステップＳ３〜ステップＳ７と同様に、空きのある最も早い時刻からイネーブラＢの実行開始時刻をイネーブラＢのスケジュール管理テーブル１８に予約する。但し、本動作例ではイネーブラＢはイネーブラＡの後順と仮定しているため、イネーブラＡの実行終了予定時刻よりも後の時間帯に設定する。
【００６１】
これ以降、イネーブラＣ，イネーブラＤ，イネーブラＥ，…について、ステップＳ２〜ステップＳ７，ステップＳ８〜ステップＳ１３と同様の処理を繰り返し行うことにより、処理対象アプリのサービスを提供するために必要な全てのイネーブラの処理リソースが予約されることになる。その後、後述する予約順最適化処理へ進む。
【００６２】
次に、図７を参照しながら、予約順最適化処理の動作について説明する。
【００６３】
まず、ステップＳ３１において、イネーブラ処理数管理テーブル１９から処理対象アプリのイネーブラ数ｎを取得し、そのイネーブラ数ｎが「ｎ＞１」であるか否かを判定する。
【００６４】
次に、「ｎ＞１」である場合、ステップＳ３２において、その処理対象アプリについて、ｎ番目のイネーブラの実行開始時刻と、ｎ−１番目のイネーブラの実行終了予定時刻とを比較する。例えば、図３の左側に示したスケジュール管理テーブルの場合、アプリ９について、アプリ９（２）のイネーブラＢの実行開始時刻と、アプリ９（１）のイネーブラＡの実行終了予定時刻とを比較する。
【００６５】
次に、ステップＳ３３において、ステップＳ３２で比較した２つの時刻間に一定以上の時間（待ち時間）があるか否かを判定し、待ち時間がある場合には予約順最適化処理の対象アプリに該当すると特定として、ステップＳ３４において、予約していたｎ−１番目のイネーブラの実行開始時刻を変更する。先の例で言えば、図３の右側に示すように、イネーブラＡ，Ｂ間の処理待ち時間が例えばゼロとなるように、イネーブラＡの実行開始時刻を繰り下げる。一方、待ち時間が無い場合には、ステップＳ３４の予約順最適化処理は行わず、ステップＳ３５へ進む。
【００６６】
次に、ステップＳ３５において、イネーブラ数ｎから１を減算してステップＳ３１へ戻る。以降、イネーブラ数ｎが「ｎ＞１」でなくなるまでステップＳ３２〜ステップＳ３５を繰り返す。これにより、イネーブラの処理順序が最後順であるイネーブラの実行開始時刻を基準にして、より後順のイネーブラから順次実行開始時刻が繰り下げられることになる。
【００６７】
その後、ステップＳ３１でイネーブラ数ｎが「ｎ＞１」でなくなった後、ステップＳ３６において、予約に成功したことをアプリへ返信して処理を終了する。
【００６８】
以上より、本実施の形態によれば、アプリのサービスを提供するために用いるイネーブラの実行開始時刻を事前に予約するので、イネーブラでの処理リソースの無駄な消費を防ぐことができる。
【００６９】
また、本実施の形態によれば、複数のアプリから要求を受けた場合、要求の受付順に早い時刻からイネーブラの実行開始時刻を予約し、複数のイネーブラを順番に用いるアプリにおいて、前順のイネーブラの実行終了予定時刻と後順のイネーブラの実行開始時刻との間に一定以上の時間がある場合、予約したイネーブラの実行開始時刻を変更するので、アプリ全体の処理最適化を実現することができる。
【符号の説明】
【００７０】
１００…スケジューリング実行システム
１…スケジューリング実行装置
３…アプリ実行装置
５…イネーブラ装置
１１…受付部
１２…スケジュール確認部（予約部）
１３…予約依頼部（予約部）
１４…実行部
１５…受付管理テーブル
１６…アプリ情報テーブル
１７…イネーブラ情報テーブル
１８…スケジュール管理テーブル（記憶部）
１９…イネーブラ処理数管理テーブル
【図１】
2018181180.tif 000003
【図２】
2018181180.tif 000004
【図３】
2018181180.tif 000005
【図４】
2018181180.tif 000006
【図５】
2018181180.tif 000007
【図６】
2018181180.tif 000008
【図７】
2018181180.tif 000009
【図８】
2018181180.tif 000010
【図９】
2018181180.tif 000011