(57)【要約】【課題】ワークフローの実行に複数のサービスを利用可能である場合に、ワークフローを効率的に実行可能とする。【解決手段】情報処理装置は、１以上の処理の処理手順を示すワークフローを実行する第１の実行部と、全ての処理が第１の実行部で実行される第１のワークフローと、第１のワークフローが外部の第２の実行部で実行される外部ワークフローと互換可能な処理を含む場合に、外部ワークフローを含み、第１のワークフローと処理内容が対応する第２のワークフローと、を作成する作成部と、第１の実行部の負荷および第２の実行部の負荷のうち少なくとも第１の実行部の負荷を取得する取得部と、実行部によるワークフローの実行を制御する制御部と、を備える。制御部は、取得部により取得された第１の実行部の負荷を用いて、第１のワークフローおよび第２のワークフローのうち何れを実行するかを選択する。【選択図】図６
2018156596.tif 000002
【特許請求の範囲】
【請求項１】
１以上の処理の処理手順を示すワークフローを実行する第１の実行部と、
全ての処理が前記第１の実行部で実行される第１のワークフローと、
前記第１のワークフローが外部の第２の実行部で実行される外部ワークフローと互換可能な処理を含む場合に、該外部ワークフローを含み、該第１のワークフローと処理内容が対応する第２のワークフローと、
を作成する作成部と、
前記第１の実行部の負荷および前記第２の実行部の負荷のうち少なくとも前記第１の実行部の負荷を取得する取得部と、
前記実行部によるワークフローの実行を制御する制御部と、
を備え、
前記制御部は、
前記取得部により取得された前記第１の実行部の前記負荷を用いて、前記第１のワークフローおよび前記第２のワークフローのうち何れを実行するかを選択する
情報処理装置。
【請求項２】
前記制御部は、
前記第１の実行部の前記負荷が閾値以上の場合に、前記第２のワークフローを選択する
請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、
前記第２の実行部の負荷が前記第１の実行部の負荷よりも小さい場合に、前記第２のワークフローを選択する
請求項１に記載の情報処理装置。
【請求項４】
前記作成部は、
前記第１のワークフローに含まれる１の前記処理に、１以上の前記外部ワークフローを対応付ける
請求項１乃至請求項３の何れか１項に記載の情報処理装置。
【請求項５】
前記作成部は、
前記第１のワークフローに含まれる１以上の前記処理に、１の前記外部ワークフローを対応付ける
請求項１乃至請求項４の何れか１項に記載の情報処理装置。
【請求項６】
前記作成部は、
前記第１のワークフローが含む前記処理の設定値と、該処理と互換可能な前記外部ワークフローの設定値との対応付けを行う
請求項１乃至請求項５の何れか１項に記載の情報処理装置。
【請求項７】
１以上の処理の処理手順を示すワークフローを実行する実行ステップと、
１以上の処理を含み、全ての該処理が前記実行ステップにより実行される第１のワークフローと、
前記第１のワークフローが外部の実行部で実行される外部ワークフローと互換可能な処理を含む場合に、該外部ワークフローを含み、該第１のワークフローと処理内容が対応する第２のワークフローと、
を作成する作成ステップと、
前記第１の実行ステップによる負荷および前記外部の実行部の負荷のうち、少なくとも前記第１の実行ステップによる負荷を取得する取得ステップと、
前記実行ステップによるワークフローの実行を制御する制御ステップと、
をコンピュータに実行させるための情報処理プログラムであって、
前記制御ステップは、
前記取得ステップにより取得された前記第１の実行ステップの前記負荷を用いて、前記第１のワークフローおよび前記第２のワークフローのうち何れを実行するかを選択する
情報処理プログラム。
【請求項８】
第１の情報処理装置と第２の情報処理装置とを含む情報処理システムであって、
前記第１の情報処理装置は、
１以上の処理の処理手順を示すワークフローを実行する第１の実行部を備え、
前記第２の情報処理装置は、
前記ワークフローを実行する第２の実行部と、
全ての処理が前記第２の実行部で実行される第１のワークフローと、
前記第１のワークフローが前記第１の実行部で実行される外部ワークフローと互換可能な処理を含む場合に、該外部ワークフローを含み、該第１のワークフローと処理内容が対応する第２のワークフローと、
を作成する作成部と、
前記第１の実行部の負荷および前記第２の実行部の負荷のうち少なくとも前記第１の実行部の負荷を取得する取得部と、
前記実行部によるワークフローの実行を制御する制御部と、
を備え、
前記制御部は、
前記取得部により取得された前記第１の実行部の前記負荷を用いて、前記第１のワークフローおよび前記第２のワークフローのうち何れを実行するかを選択する
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理プログラムおよび情報処理システムに関する。
【背景技術】
【０００２】
従来から、１以上の処理による処理手順を定義したワークフローを用いて業務などを実施することが行われている。例えば、組織体内などで完結するオンプレミスのシステムにおいてワークフローを実行する技術が知られている。また、特許文献１には、インターネット上で提供されるクラウドサービスにおいてワークフローを実行する技術が開示されている。
【０００３】
さらに、特許文献２には、オンプレミスのシステムと、クラウドサービスとを併用してワークフローを実行する技術が開示されている。特許文献２では、ワークフローに含まれる処理のうち、クラウドサービスで実行する処理と、オンプレミスのシステムで実行する処理とを識別し、処理の順序を並べ替え、クラウドサービスで実行する処理を纏めるようにしている。特許文献２の技術によれば、クラウドサービスと、オンプレミスのシステム内のデバイスとの間の通信処理を抑制できる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えばオンプレミスのシステムによる第１のサービスと、クラウドサービスといった第２のサービスとで機能が同等のワークフローが提供されている場合がある。従来の技術では、このような場合であっても、第１のサービスと第２のサービスとで、ユーザがワークフローを定義した際に選択したサービスにより提供されるワークフローしか実行できなかった。
【０００５】
例えば、ユーザが第１のサービスにより提供されるワークフローを選択し、第１のサービスのシステムにおいてワークフローの処理を実行するサーバで高負荷の処理が実行されている一方で、第２のサービスではワークフローの処理が行われておらず、低負荷状態である場合を考える。従来の技術では、このような場合であっても、ワークフローは、ユーザの選択に従い、第１のサービスのシステムにおけるサーバにおいて実行されていた。そのため、ワークフローによる処理の終了まで長時間を要する、メモリ不足などを引き起こしてシステム全体を停止させてしまう、などの問題が生じるおそれがあった。この問題は、上述した特許文献３においても、解消できていない。
【０００６】
本発明は、上記に鑑みてなされたものであって、ワークフローの実行に複数のサービスを利用可能である場合に、ワークフローを効率的に実行可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明は、１以上の処理の処理手順を示すワークフローを実行する第１の実行部と、全ての処理が第１の実行部で実行される第１のワークフローと、第１のワークフローが外部の第２の実行部で実行される外部ワークフローと互換可能な処理を含む場合に、外部ワークフローを含み、第１のワークフローと処理内容が対応する第２のワークフローと、を作成する作成部と、第１の実行部の負荷および第２の実行部の負荷のうち少なくとも第１の実行部の負荷を取得する取得部と、実行部によるワークフローの実行を制御する制御部と、を備え、制御部は、取得部により取得された第１の実行部の負荷を用いて、第１のワークフローおよび第２のワークフローのうち何れを実行するかを選択する。
【発明の効果】
【０００８】
本発明によれば、ワークフローの実行に複数のサービスを利用可能である場合に、ワークフローを効率的に実行可能にできるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る情報処理システムの一例の構成を示すブロック図である。
【図２】図２は、実施形態に適用可能なサーバの一例のハードウェア構成を示すブロック図である。
【図３】図３は、実施形態に係るオンプレミス用およびクラウド用の各サーバの機能を説明するための一例の機能ブロック図である。
【図４】図４は、実施形態に係るワークフローの作成処理を示す一例のフローチャートである。
【図５】図５は、実施形態に係る、互換ワークフローの有無確認の処理を示す一例のフローチャートである。
【図６】図６は、実施形態に係る、オンプレミス用のサーバがワークフローを実行する処理を示す一例のフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、情報処理装置、情報処理プログラムおよび情報処理システムの実施形態を詳細に説明する。図１は、実施形態に係る情報処理システムの一例の構成を示す。図１において、情報処理システム１は、例えばＬＡＮ(Local  Area  Network)によるネットワーク２に接続されるサーバ２０と、ネットワーク２からインターネット３を介して接続されるサーバ３０とを含む。情報処理システム１は、さらに、ネットワーク２に接続されるＭＦＰ(Multi  Function  Printer)１０とパーソナルコンピュータ（ＰＣ）４０とを含んでもよい。
【００１１】
ネットワーク２は、例えば１つの組織体内で閉じた、所謂オンプレミスのネットワークであり、サーバ２０は、オンプレミスのシステムにおけるサービスを提供する。ＭＦＰ１０は、プリンタ機能、スキャナ機能、複写機能、ＦＡＸ機能など複数の機能を１の筐体で実現した複合機である。ＰＣ４０は、一般的なパーソナルコンピュータであって、サーバ２０にログインしてサーバ２０の機能を利用することができる。また、ＰＣ４０は、ＭＦＰ１０に対して印刷ジョブを送信することもできる。サーバ３０は、クラウドネットワーク上のサーバである。
【００１２】
ここで、サーバ２０は、オンプレミスのシステムに対して、その組織の業務のための処理など、その組織に特有の処理を提供する。一方、サーバ３０は、クラウドネットワークに接続される、複数の異なるオンプレミスのシステム（組織）が利用するための汎用的な処理を提供する。
【００１３】
このような構成において、情報処理システム１は、１以上の処理による処理手順を定義したワークフローによるサービスを提供できる。ワークフロー（ＷＦ）は、処理を実行するコンポーネントと、コンポーネントの順序とが定義される。例えば、画像データをＰＤＦ(Portable  Document  Format)データに変換し、変換されたＰＤＦデータを電子メールを用いて所定の宛先に転送する処理が定義されたワークフローを考える。この場合、例えば、当該ワークフローには、ＰＤＦ変換を行うＰＤＦ変換コンポーネントと、データを電子メールで所定の宛先に送信する電子メール送信コンポーネントが定義される。
【００１４】
ワークフローの定義およびコンポーネントは、サーバ２０および３０に保存される。ワークフローは、サーバ２０に保存されるコンポーネントのみを用いて定義してもよいし、サーバ３０に保存されるコンポーネントのみを用いて定義してもよい。さらに、ワークフローは、サーバ２０に保存されるコンポーネントと、サーバ３０に保存されるコンポーネントとを混在して定義してもよい。
【００１５】
例えば、ＭＦＰ１０は、サーバ２０あるいはサーバ３０に対してワークフローの実行を要求することができる。例えば、ＭＦＰ１０のスキャナ機能により取得した画像データに対して、上述した、画像データをＰＤＦデータに変換して電子メールにより所定の宛先に転送する処理が定義されたワークフローを適用するものとする。この場合、ＭＦＰ１０においてスキャン機能により画像データを取得し、サーバ２０にアクセスして当該ワークフローの実行を要求する。サーバ２０は、この要求に応じて当該ワークフローを呼び出して、ワークフローの定義に従い、ＰＤＦ変換コンポーネントを実行してスキャン機能により取得した画像データをＰＤＦデータに変換し、次に電子メール送信コンポーネントを実行して、ＰＤＦ変換コンポーネントにより変換されたＰＤＦデータを、電子メールにより、指定された宛先に送信する。
【００１６】
このように、ワークフローを用いることで、様々な機能を容易に実行することが可能である。
【００１７】
また、実施形態に係る情報処理システム１では、オンプレミスのサーバ２０においてワークフローを作成する際に、サーバ２０が保存するコンポーネントのみを用いたワークフロー（第１のワークフローとする）を作成する。それと共に、実施形態に係る情報処理システム１では、サーバ２０においてワークフローを作成する際に、ワークフローに含まれるコンポーネントのうち、クラウドネットワーク上のサーバ３０が保存するワークフローまたはコンポーネントと互換性のあるコンポーネントを、サーバ３０が保持する当該ワークフローまたはコンポーネントと置き換えたワークフロー（第２のワークフローとする）も作成する。ワークフローの要求元、例えばＭＦＰ１０には、第１のワークフローが提示される。
【００１８】
その上で、サーバ２０は、当該第１のワークフローの実行時に、少なくともサーバ２０におけるワークフロー実行に関する負荷を取得し、取得した負荷に基づき、当該第１のワークフローを実行するか、サーバ３０が保存するワークフローまたはコンポーネントを含む第２のワークフローを実行するかを決定する。これにより、実施形態に係る情報処理システム１では、ワークフローの実行に複数のサービスを利用可能な場合に、ワークフローによる処理を効率的に実行可能となる。
【００１９】
図２は、実施形態に適用可能なサーバ２０の一例のハードウェア構成を示す。図２において、サーバ２０は、ＣＰＵ(Central  Processing  Unit)２０００と、ＲＯＭ(Read  Only  Memory)２００１と、ＲＡＭ(Random  Access  Memory)２００２と、ストレージ２００３と、通信Ｉ／Ｆ２００４とを含み、これら各部がバス２０１０により互いに通信可能に接続される。ストレージ２００３は、ハードディスクドライブや不揮発性半導体メモリにより構成される保存媒体である。ストレージ２００３は、ＣＰＵ２０００が動作するための各種プログラムやデータが格納される。
【００２０】
ＣＰＵ２０００は、ストレージ２００３やＲＯＭ２００１に予め格納されるプログラムに従い、ＲＡＭ２００２をワークエリアとして用いて動作し、サーバ２０の全体の動作を制御する。通信Ｉ／Ｆ２００４は、ＣＰＵ２０００の指示に従い、ネットワーク２を介した通信を制御する。
【００２１】
図２の例では、ストレージ２００３がサーバ２０に内蔵されているように示されているが、これはこの例に限定されない。例えば、ストレージ２００３は、サーバ２０に対して直接的、あるいは、ネットワーク２を介して接続される外部保存装置であってもよい。また、図１および図２の例では、サーバ２０が１台のコンピュータにより構成されているように示しているが、これはこの例に限定されず、サーバ２０は、複数台のコンピュータが分散して動作することで構成してもよい。
【００２２】
また、クラウドネットワーク上のサーバ３０も、図２に示すサーバ２０と同等の構成にて実現可能であるので、ここでの詳細な説明を省略する。
【００２３】
図３は、実施形態に係るサーバ２０および３０の機能を説明するための一例の機能ブロック図である。図３において、オンプレミスのサーバ２０は、通信部２００と、取得部２０１と、作成部２０２と、管理部２０３と、実行部２０４と、ＷＦ（ワークフロー）定義保存部２１０と、コンポーネント保存部２２０と、を含む。
【００２４】
これらのうち、ＷＦ定義保存部２１０およびコンポーネント保存部２２０は、例えばストレージ２００３の所定領域を用いて構成される。また、通信部２００、取得部２０１、作成部２０２、管理部２０３および実行部２０４は、ＣＰＵ２０００上で実施形態に係る情報処理プログラムが実行されることで形成される。これに限らず、通信部２００、取得部２０１、作成部２０２、管理部２０３および実行部２０４の一部または全部を、互いに協働して動作するハードウェア回路により構成してもよい。
【００２５】
サーバ２０における各機能を実現するための情報処理プログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ(Compact  Disk)、フレキシブルディスク（ＦＤ）、ＤＶＤ(Digital  Versatile  Disk)などのコンピュータで読み取り可能な記録媒体に記録して提供される。これに限らず、当該操作プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、当該ネットワークを介してダウンロードさせることにより提供してもよい。また、当該操作プログラムをインターネットなどのネットワークを経由して提供または配布するように構成してもよい。
【００２６】
当該操作プログラムは、上述した各部（通信部２００、取得部２０１、作成部２０２、管理部２０３および実行部２０４）を含むモジュール構成となっている。実際のハードウェアとしては、ＣＰＵ２０００がストレージ２００３などの保存媒体から当該操作プログラムを読み出して実行することにより、上述した各部がＲＡＭ２００２などの主記憶装置上にロードされ、通信部２００、取得部２０１、作成部２０２、管理部２０３および実行部２０４が主記憶装置上に生成されるようになっている。
【００２７】
図３において、ＷＦ定義保存部２１０は、ＷＦ（ワークフロー）定義２１１ａ、２１１ｂ、…が保存される。ＷＦ定義保存部２１０に含まれる各ＷＦ定義２１１ａ、２１１ｂ、…は、それぞれ、１以上のコンポーネントの組み合わせと、各コンポーネントによる処理の順序を示す情報と、プリセットされた情報と、ワークフローを識別するためのワークフローＩＤと、が関連付けられて含まれる。
【００２８】
コンポーネント保存部２２０は、各ＷＦ定義２１１ａ、２１１ｂ、…で用いるための各コンポーネント２２１ａ、２２１ｂ、…が保存される。各コンポーネント２２１ａ、２２１ｂ、…は、コンポーネントを識別するためのコンポーネントＩＤと、コンポーネントのバージョン情報と、が関連付けられて含まれる。
【００２９】
通信部２００は、通信Ｉ／Ｆ２００４を制御して、ネットワーク２に対する通信を行う。通信部２００は、これにより、ネットワーク２を介してインターネット３に接続し、ネットワーク２およびインターネット３を介してサーバ３０と通信を行うことができる。取得部２０１は、サーバ２０におけるワークフローの実行に関する負荷を取得する。取得部２０１は、サーバ３０におけるワークフローの実行に関する負荷をさらに取得することもできる。
【００３０】
作成部２０２は、コンポーネント保存部２２０に保存される各コンポーネント２２１ａ、２２１ｂ、…を用いてＷＦ定義２１１ａ、２１１ｂ、…を作成する。作成部２０２は、作成したＷＦ定義２１１ａ、２１１ｂ、…を、ＷＦ定義保存部２１０に保存させる。管理部２０３は、ＷＦ定義保存部２１０に保存される各ＷＦ定義２１１ａ、２１１ｂ、…を、例えばワークフローＩＤに基づき管理する。また、管理部２０３は、コンポーネント保存部２２０に保存される各コンポーネント２２１ａ、２２１ｂ、…を、コンポーネントＩＤおよびバージョン情報に基づき管理する。
【００３１】
実行部２０４は、利用者の操作や特定のイベントに基づき、指定されたワークフローを実行させる。例えば、実行部２０４は、ＭＦＰ１０からの指示に応じて、管理部２０３に管理されるＷＦ定義２１１ａ、２１１ｂ、…から指定されたＷＦ定義を取得して、取得したＷＦ定義に含まれる各コンポーネントを実行する。
【００３２】
図３において、クラウドネットワーク上のサーバ３０は、通信部３００と、管理部３０１と、実行部３０２と、ＷＦ定義保存部３１０と、コンポーネント保存部３２０と、を含む。これらのうち、通信部３００、管理部３０１および実行部３０２は、サーバ３０が備えるＣＰＵ上で所定のプログラムが動作されることで実現される。また、ＷＦ定義保存部３１０およびコンポーネント保存部３２０は、サーバ３０が備えるストレージの所定の保存領域が用いられる。
【００３３】
ＷＦ定義保存部３１０は、ＷＦ定義３１１ａ、３１１ｂ、…が保存される。各ＷＦ定義３１１ａ、３１１ｂ、…の構成は、上述したＷＦ定義２１１ａ、２１１ｂ、…と同様である。コンポーネント保存部３２０は、各ＷＦ定義３１１ａ、３１１ｂ、…で用いるための各コンポーネント３２１ａ、３２１ｂ、…が保存される。管理部３０１は、ＷＦ定義保存部３１０に保存される各ＷＦ定義３１１ａ、３１１ｂ、…と、コンポーネント保存部３２０に保存される各コンポーネント３２１ａ、３２１ｂ、…とを管理する。
【００３４】
通信部３００は、サーバ３０が備える通信Ｉ／Ｆを制御して、インターネット３に対する通信を行う。通信部３００は、これにより、インターネット３を介してネットワーク２に接続し、インターネット３およびネットワーク２を介してサーバ２０と通信を行うことができる。
【００３５】
実行部３０２は、特定のイベントに基づき、指定されたワークフローを実行させる。例えば、実行部３０２は、サーバ２０からの指示に応じて、管理部３０１に管理されるＷＦ定義３１１ａ、３１１ｂ、…から指定されたＷＦ定義を取得して、取得したＷＦ定義に含まれる各コンポーネントを実行する。
【００３６】
ここで、サーバ２０のコンポーネント保存部２２０に保存されるコンポーネント２２１’は、サーバ３０の実行部３０２に対して、ＷＦ定義保存部３１０に保存される各ＷＦ定義３１１ａ、３１１ｂ、…に定義されるワークフローの実行を指示することができる。また、サーバ３０においてＷＦ定義保存部３１０に保存される各ＷＦ定義３１１ａ、３１１ｂ、…に定義される各ワークフローは、例えばサーバ２０のコンポーネント２２１’からの指示に応じて、サーバ２０のＷＦ定義２１１ａ、２１１ｂ、…に含まれるコンポーネントとして実行させることができる。
【００３７】
なお、上述したサーバ２０に含まれる各コンポーネント２１１ａ、２１１ｂ、…、および、サーバ３０に含まれる各コンポーネント３１１ａ、３１１ｂ、…は、実行する処理を、外部の連携サーバや連携サービスに転送することができるようになっている。
【００３８】
（実施形態に係る処理）
次に、実施形態に係る処理について説明する。図４は、実施形態に係るワークフローの作成処理を示す一例のフローチャートである。この図４に示すフローチャートによる処理は、オンプレミスのサーバ２０において、例えば作成部２０２により実行される。
【００３９】
ステップＳ１００で、作成部２０２は、例えばＰＣ４０からの指示に応じて、オンプレミス用のワークフロー（ＷＦ）のワークフロー定義を作成する。オンプレミス用のワークフローは、オンプレミスのネットワーク２に接続されるサーバ２０において実行されるワークフローである。作成部２０２は、例えば、サーバ２０のコンポーネント保存部２２０に保存される各コンポーネント２２１ａ、２２１ｂ、…を用いて、オンプレミス用のワークフローのワークフロー定義を作成する。
【００４０】
このとき、作成部２０２は、作成したワークフローの、オンプレミス用のネットワーク２外、例えばクラウドネットワーク上のサーバ３０における実行を禁止する設定を行うことができる。例えば、作成するワークフローが機密情報を扱う処理を含む場合に、当該ワークフローのサーバ３０における実行を禁止すると言った適用が考えられる。作成部２０２は、例えば、オンプレミス用のネットワーク２外での実行を禁止することを示す禁止フラグを、作成したワークフローのＷＦ定義に設定する。
【００４１】
次のステップＳ１０１で、作成部２０２は、ステップＳ１００で作成したオンプレミス用のワークフロー（ＷＦ定義）をＷＦ定義保存部２１０に保存する。次のステップＳ１０２で、作成部２０２は、ステップＳ１０１で保存したオンプレミス用のワークフロー（以下、対象ワークフロー）を解析する。
【００４２】
次のステップＳ１０３で、作成部２０２は、ステップＳ１０２の解析結果に基づき、対象ワークフローがクラウドネットワーク上のサーバ３０にて実行可能か否かを判定する。例えば、作成部２０２は、対象ワークフローに禁止フラグが含まれる場合、対象ワークフローがサーバ３０にて実行不可であると判定し（ステップＳ１０３、「Ｎｏ」）、図４のフローチャートによる一連の処理を終了させる。一方、作成部２０２は、ステップＳ１０３で対象ワークフローがサーバ３０にて実行可能であると判定した場合（ステップＳ１０３、「Ｙｅｓ」）、処理をステップＳ１０４に移行させる。
【００４３】
ステップＳ１０４で、作成部２０２は、対象ワークフローに含まれるコンポーネントから１つを対象コンポーネントとして取得して、取得した対象コンポーネントを解析する。次のステップＳ１０５で、作成部２０２は、対象コンポーネントの解析結果に基づき、クラウドネットワーク上のサーバ３０のＷＦ定義保存部３１０における対象コンポーネントと互換性のあるワークフローの有無が確認される。このステップＳ１０５の処理の詳細については、後述する。
【００４４】
次のステップＳ１０６で、作成部２０２は、ステップＳ１０５での確認の結果、サーバ３０のＷＦ定義保存部３１０に、対象コンポーネントと互換性のあるワークフロー（以下、互換ワークフロー）のワークフロー定義が保存されているか否かを判定する。保存されていないと判定した場合（ステップＳ１０６、「Ｎｏ」）、処理がステップＳ１０８に移行される。一方、作成部２０２は、ステップＳ１０６で、保存されていると判定した場合（ステップＳ１０６、「Ｙｅｓ」）、処理をステップＳ１０７に移行させる。
【００４５】
ステップＳ１０７で、作成部２０２は、対象ワークフローにおいて、対象コンポーネントを、当該対象ワークフローと互換性のある、サーバ３０上の互換ワークフローと置き換えた置換ワークフローを作成し、作成した置換ワークフローのワークフロー定義を、ＷＦ定義保存部２１０に保存する。すなわち、ＷＦ定義保存部２１０には、対象ワークフローのＷＦ定義と、当該対象ワークフローに対応する置換ワークフローのＷＦ定義とが保存されていることになる。
【００４６】
なお、ステップＳ１０７において、既に対象ワークフローに対応する置換ワークフローが存在する場合は、当該置換ワークフローのワークフロー定義が互換ワークフローのワークフロー定義により更新される。
【００４７】
次のステップＳ１０８で、作成部２０２は、対象ワークフローに含まれる全てのコンポーネントについてステップＳ１０４〜ステップＳ１０７の処理が完了したか否かを判定する。完了していないと判定した場合（ステップＳ１０８、「Ｎｏ」）、作成部２０２は、処理をステップＳ１０４に戻し、対象ワークフローに含まれる次のコンポーネントについて、ステップＳ１０４以降の処理を実行する。
【００４８】
一方、作成部２０２は、対象ワークフローに含まれる全てのコンポーネントについてステップＳ１０４〜ステップＳ１０７の処理が完了したと判定した場合（ステップＳ１０８、「Ｙｅｓ」）、図４のフローチャートにおける一連の処理を終了させる。
【００４９】
図５は、実施形態に係る、互換ワークフローの有無確認の処理を示す一例のフローチャートである。この図５のフローチャートによる処理は、上述した図４のフローチャートのステップＳ１０５において実行される処理である。
【００５０】
ステップＳ２００およびステップＳ２０１で、作成部２０２は、対象コンポーネントのコンポーネントＩＤおよびバージョン情報を取得する。次のステップＳ２０２で作成部２０２は、取得したコンポーネントＩＤおよびバージョン情報に基づき互換コンポーネントチェックテーブルを参照する。
【００５１】
互換コンポーネントチェックテーブルは、オンプレミスのサーバ２０のコンポーネント保存部２２０に保存される各コンポーネント２２１ａ、２２１ｂ、…と、クラウドネットワーク上のサーバ３０のＷＦ保存部３１０に保存される各ＷＦ定義３１１ａ、３１１ｂ、…による各ワークフローとにおいて、互換性のあるコンポーネントとワークフローとの組を示すエントリが格納される。
【００５２】
より具体的には、互換コンポーネントチェックテーブルは、オンプレミスのコンポーネントのコンポーネントＩＤおよびバージョン情報をキーとして、当該コンポーネントと互換性のある、クラウドネットワーク上のワークフローのワークフローＩＤが関連付けられたエントリが格納される。この互換コンポーネントチェックテーブルは、予め作成され、例えばクラウドネットワーク上のサーバ３０において保存される。
【００５３】
次のステップＳ２０３で、作成部２０２は、互換コンポーネントチェックテーブルに、ステップＳ２００およびステップＳ２０１で取得したコンポーネントＩＤおよびバージョン情報に対応するエントリが存在するか否かを判定する。存在すると判定した場合（ステップＳ２０３、「Ｙｅｓ」）、作成部２０２は、処理をステップＳ２０５に移行させる。
【００５４】
ステップＳ２０５で、作成部２０２は、存在すると判定したエントリに格納されるクラウドネットワーク上のワークフローのワークフローＩＤを、互換ワークフローのワークフローＩＤであるとして取得する。作成部２０２は、互換ワークフローのワークフローＩＤを取得すると、図５のフローチャートによる処理を終了させて、処理を、図４のフローチャートにおけるステップＳ１０６に移行させる。
【００５５】
一方、作成部２０２は、ステップＳ２０３で、対応するエントリが存在しないと判定した場合（ステップＳ２０３、「Ｎｏ」）、処理をステップＳ２０４に移行させる。
【００５６】
ステップＳ２０４で、作成部２０２は、ステップＳ２００およびステップＳ２０１で取得したコンポーネントＩＤおよびバージョン情報に基づき、オンプレミス用互換コンポーネントチェックテーブルを参照する。オンプレミス用互換コンポーネントチェックテーブルは、上述した互換コンポーネントチェックテーブルと同様の構成を有するテーブルであって、オンプレミスのサーバ２０において保存される。
【００５７】
例えば、オンプレミスのワークフローサービスにおいて、オンプレミスで特注のコンポーネントなどがある場合、この特注コンポーネントに対応する、クラウドネットワーク上のワークフローの組み合わせを、このオンプレミス用互換コンポーネントチェックテーブルに登録しておく。特注コンポーネントは、例えばＭＦＰ１０に機能を追加するための特注のプラグインを適用することができる。これにより、この特注プラグインの処理も、オンプレミスで実行できる可能性がある。
【００５８】
ステップＳ２０４で、オンプレミス用互換コンポーネントチェックテーブルの参照が完了すると、作成部２０２は、処理を、上述したステップＳ２０５に移行させる。
【００５９】
図６は、実施形態に係る、サーバ２０において実行部２０４がワークフローを実行する処理を示す一例のフローチャートである。ここで実行されるワークフローは、上述した図４のフローチャートにおいて対象ワークフローとして作成されたワークフローであって、対応する置換ワークフローも作成、保存されているものとする。
【００６０】
ステップＳ３００で、実行部２０４は、オンプレミス用のワークフローである対象ワークフローに基づく処理（例えば置換ワークフローによる処理）を、クラウドネットワーク上のサーバ３０において実行可能であるか否かを判定する。実行部２０４は、対象ワークフローのワークフロー定義に禁止フラグが含まれている場合に、対象ワークフローに基づく処理のサーバ３０における実行が不可であると判定し（ステップＳ３００、「Ｎｏ」）、処理をステップＳ３０７に移行させる。
【００６１】
実行部２０４は、ステップＳ３０７で、オンプレミス用のワークフローすなわち対象ワークフローを実行させて、図６のフローチャートによる一連の処理を終了させる。
【００６２】
一方、実行部２０４は、対象ワークフローに基づく処理がサーバ３０において実行可能であると判定した場合（ステップＳ３００、「Ｙｅｓ」）、処理をステップＳ３０１に移行させる。ステップＳ３０１で、実行部２０４は、取得部２０１に対して、サーバ２０のワークフロー実行に関する負荷を取得するよう依頼する。次のステップＳ３０２で、取得部２０１は、この依頼に応じて、負荷の比較対象がクラウドネットワーク上のサーバ３０であるか否かを判定する。取得部２０１は、負荷の比較対象がサーバ３０ではないと判定すると（ステップＳ３０２、「Ｎｏ」）、処理をステップＳ３０４に移行させる。
【００６３】
一方、取得部２０１は、比較対象がサーバ３０であると判定した場合（ステップＳ３０２、「Ｙｅｓ」）、処理をステップＳ３０３に移行させ、サーバ３０のワークフロー実行に関する負荷を取得する。取得部２０１は、サーバ３０のワークフロー実行に関する負荷を取得すると、処理をステップＳ３０４に移行させる。
【００６４】
なお、ステップＳ３０２の処理において、負荷の比較対象がクラウドネットワーク上のサーバ３０であるか否かは、予め決められているものとする。
【００６５】
ステップＳ３０４で、取得部２０１は、取得したサーバ２０、あるいは、サーバ２０および３０の、ワークフロー実行に関する負荷を比較する。次のステップＳ３０５で、取得部２０１は、ステップＳ３０４での取得部２０１による負荷の比較結果に応じて、ワークフローをクラウドネットワーク上のサーバ３０で実行させるか否かを判定する。
【００６６】
取得部２０１は、ワークフローをサーバ３０で実行させると判定した場合（ステップＳ３０５、「Ｙｅｓ」）、処理をステップＳ３０６に移行させる。ステップＳ３０６で、実行部２０４は、クラウド用ワークフローすなわち置換ワークフローを実行する。一方、取得部２０１は、ワークフローをサーバ３０で実行させないと判定した場合（ステップＳ３０５、「Ｎｏ」）、処理をステップＳ３０７に移行させる。ステップＳ３０７で、実行部２０４は、オンプレミス用ワークフローすなわち対象ワークフローを実行する。
【００６７】
ステップＳ３０４の比較処理、および、ステップＳ３０５の判定処理について、より具体的に説明する。取得部２０１は、ステップＳ３０２で負荷の比較対象がサーバ３０ではないと判定され、処理がステップＳ３０２から直接的にステップＳ３０４に移行した場合、サーバ２０におけるワークフロー実行に関する負荷を閾値と比較する。例えば、取得部２０１は、サーバ２０において、ワークフローの実行に関して処理待ちのジョブが閾値以上（例えば１００個以上）ある場合に、ステップＳ３０５で、クラウド用ワークフローを実行すると判定し、処理をステップＳ３０６に移行させる。
【００６８】
また、取得部２０１は、ステップＳ３０２で負荷の比較対象がサーバ３０であるとしてステップＳ３０３でサーバ３０の負荷を取得した場合、ステップＳ３０４において、ステップＳ３０１で取得したサーバ２０の負荷と、ステップＳ３０３で取得したサーバ３０の負荷と、を比較する。取得部２０１は、ステップＳ３０４の比較の結果、ステップＳ３０５で、サーバ２０とサーバ３０とのうち、負荷の小さい方のサーバで、当該サーバに対応するワークフローを実行させる。
【００６９】
すなわち、取得部２０１は、ステップＳ３０４で、サーバ２０よりもサーバ３０の方が負荷が小さいことを示す比較結果を得た場合、ステップＳ３０５で、クラウド用ワークフローを実行すると判定し、処理をステップＳ３０６に移行させる。一方、取得部２０１は、ステップＳ３０４で、サーバ３０よりもサーバ２０の方が負荷が小さいことを示す比較結果を得た場合、ステップＳ３０５で、オンプレミス用ワークフローを実行すると判定し、処理をステップＳ３０７に移行させる。
【００７０】
このように、実施形態に係る情報処理システム１では、ワークフロー定義の作成時に、コンポーネントとしてオンプレミス用のコンポーネントのみを用いた対象ワークフローと、コンポーネントの一部をクラウド用のワークフローで置換した置換ワークフローとを作成する。その上で、情報処理システム１は、オンプレミス用のサーバ２０におけるワークフロー実行に関する負荷、あるいは、サーバ２０およびクラウド用のサーバ３０それぞれにおけるワークフロー実行に関する負荷に基づき、対象ワークフローを実行するか、置換ワークフローを実行するかを選択する。そのため、実施形態に係る情報処理システム１では、ワークフローの実行に複数のサービス（例えば、オンプレミス用のサーバ２０、および、クラウド用のサーバ３０）を利用可能な場合に、ワークフローによる処理を効率的に実行可能となる。
【００７１】
なお、上述の各実施形態は、本発明の好適な実施の例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形による実施が可能である。
【符号の説明】
【００７２】
１  情報処理システム
２  ネットワーク
３  インターネット
１０  ＭＦＰ
２０，３０  サーバ
４０  ＰＣ
２００，３００  通信部
２０１  取得部
２０２  作成部
２０３，３０１  管理部
２０４，３０２  実行部
２１０，３１０  ＷＦ定義保存部
２２０，３２０  コンポーネント保存部
【先行技術文献】
【特許文献】
【００７３】
【特許文献１】特開２０１５−０３２０４３号公報
【特許文献２】特開２０１４−０５６４８８号公報
【図１】
2018156596.tif 000003
【図２】
2018156596.tif 000004
【図３】
2018156596.tif 000005
【図４】
2018156596.tif 000006
【図５】
2018156596.tif 000007
【図６】
2018156596.tif 000008