(57)【要約】【課題】非同期にジョブ管理サービスからジョブを取得する構成において、同一テナントに属する異なるジョブのデータがテナント外に誤送信されることを防止する。【解決手段】ジョブ管理サービスサーバは、ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する。そして、タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する。タスク処理サービスサーバは、特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する。【選択図】  図７
2014036335.tif 000002
【特許請求の範囲】
【請求項１】
１または複数のタスクから構成されるジョブを処理するジョブ処理システムであって、
前記ジョブ処理システムは、
ジョブの指示を受け付けるサービスサーバと、
前記指示を受け付けることで生成されたジョブを管理するジョブ管理サービスサーバと、
前記ジョブに基づく処理を実行するために、前記ジョブを構成する１または複数のタスクを処理する１または複数のタスク処理サービスサーバと、
を有し、
前記ジョブ管理サービスサーバは、
前記ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する保持手段と、
前記タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する特定手段と、
を有し、
前記タスク処理サービスサーバは、
前記特定手段により特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する復号化手段
を有することを特徴とするジョブ処理システム。
【請求項２】
前記ジョブは、前記ジョブを指示したユーザが属するテナントごとに管理されることを特徴とする請求項１に記載のジョブ処理システム。
【請求項３】
ジョブは、スキャンジョブもしくはＦＡＸジョブであり、
前記暗号化情報において、
前記スキャンジョブに対しては、テナントを一意に識別するためのテナント情報を用いてキーを作成するように定義され、
前記ＦＡＸジョブに対しては、前記テナント情報とジョブを一意に識別するためのジョブ情報とを用いてキーを作成するように定義されている
ことを特徴とする請求項２に記載のジョブ処理システム。
【請求項４】
前記ジョブ処理システムは、前記ジョブに対応するファイルを管理するファイル管理サービスサーバを更に有し、
前記ファイル管理サービスサーバは、複数のファイルサーバにより提供され、
前記複数のファイルサーバは、同一のジョブに対応するファイルをそれぞれが保持することで多重化することを特徴とする請求項１乃至３のいずれか一項に記載のジョブ処理システム。
【請求項５】
前記タスク処理サービスサーバは、
前記復号化手段にてファイルの復号化が失敗した場合に、前記ファイルが、ジョブが指示された際の状態である初期データである場合、前記複数のファイルサーバのうちの他のファイルサーバから前記ファイルの多重化されているファイルを再取得し、
前記復号化手段は、前記再取得した多重化されているファイルに対して復号化することを特徴とする請求項４に記載のジョブ処理システム。
【請求項６】
前記ジョブ管理サービスサーバは、
前記復号化手段による復号化が失敗したファイルが、別のタスク処理サービスサーバにて処理された結果得られたファイルである場合、現在の処理対象を示すタスクを前記別のタスク処理サービスサーバの１つ前のタスクに戻す
ことを特徴とする請求項４または５に記載のジョブ処理システム。
【請求項７】
前記復号化手段にてファイルの復号化が失敗した場合にファイルを再取得する回数は予め定義されていることを特徴とする請求項５に記載のジョブ処理システム。
【請求項８】
１または複数のタスクから構成されるジョブを処理する情報処理システムであって、
前記情報処理システムは、
ジョブの指示を受け付けるサービスサーバと、
前記指示を受け付けることで生成されたジョブを管理するジョブ管理サービスサーバと、
前記ジョブに基づく処理を実行するために、前記ジョブを構成する１または複数のタスクを処理する１または複数のタスク処理サービスサーバと、
を有し、
前記ジョブ管理サービスサーバは、
前記ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する保持手段と、
前記タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する特定手段と
を有し、
前記タスク処理サービスサーバは、
前記特定手段により特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する復号化手段を有し、
前記暗号化および復号化されるファイルは、画像形成装置により生成されることを特徴とする情報処理システム。
【請求項９】
１または複数のタスクから構成されるジョブを処理するジョブ処理システムにおけるジョブ処理方法であって、
前記ジョブ処理システムは、
ジョブの指示を受け付けるサービスサーバと、
前記指示を受け付けることで生成されたジョブを管理するジョブ管理サービスサーバと、
前記ジョブに基づく処理を実行するために、前記ジョブを構成する１または複数のタスクを処理する１または複数のタスク処理サービスサーバと、
を有し、
前記ジョブ管理サービスサーバにおいて、
保持手段が、前記ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する保持工程と、
特定手段が、前記タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する特定工程と、
を有し、
前記タスク処理サービスサーバにおいて、
復号化手段が、前記特定工程にて特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する復号化工程
を有することを特徴とするジョブ処理方法。
【請求項１０】
１または複数のタスクから構成されるジョブを処理する情報処理システムにおける情報処理方法であって、
前記情報処理システムは、
ジョブの指示を受け付けるサービスサーバと、
前記指示を受け付けることで生成されたジョブを管理するジョブ管理サービスサーバと、
前記ジョブに基づく処理を実行するために、前記ジョブを構成する１または複数のタスクを処理する１または複数のタスク処理サービスサーバと、
を有し、
前記ジョブ管理サービスサーバにおいて、
保持手段が、前記ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する保持工程と、
特定手段が、前記タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する特定工程と
を有し、
前記タスク処理サービスサーバにおいて、
復号化手段が、前記特定工程にて特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する復号化工程を有し、
前記暗号化および復号化されるファイルは、画像形成装置により生成されることを特徴とする情報処理方法。
【請求項１１】
ジョブの指示を受け付けるサービスサーバと、前記指示を受け付けることで生成されたジョブを管理するジョブ管理サービスサーバと、前記ジョブに基づく処理を実行するために、前記ジョブを構成する１または複数のタスクを処理する１または複数のタスク処理サービスサーバと、を有するジョブ処理システムにおいて、
前記ジョブ管理サービスサーバを、
前記ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する保持手段、
前記タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する特定手段、
として機能させ、
前記タスク処理サービスサーバを、
前記特定手段により特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する復号化手段
として機能させるためのプログラム。
【請求項１２】
前記ジョブは、前記ジョブを指示したユーザが属するテナントごとに管理されることを特徴とする請求項１１に記載のプログラム。
【請求項１３】
ジョブは、スキャンジョブもしくはＦＡＸジョブであり、
前記暗号化情報において、
前記スキャンジョブに対しては、テナントを一意に識別するためのテナント情報を用いてキーを作成するように定義され、
前記ＦＡＸジョブに対しては、前記テナント情報とジョブを一意に識別するためのジョブ情報とを用いてキーを作成するように定義されている
ことを特徴とする請求項１２に記載のプログラム。
【請求項１４】
前記ジョブ処理システムは、前記ジョブに対応するファイルを管理するファイル管理サービスサーバを更に有し、
前記ファイル管理サービスサーバは、複数のファイルサーバにより提供され、
前記複数のファイルサーバは、同一のジョブに対応するファイルをそれぞれが保持することで多重化することを特徴とする請求項１１乃至１３のいずれか一項に記載のプログラム。
【請求項１５】
前記タスク処理サービスサーバは、
前記復号化手段にてファイルの復号化が失敗した場合に、前記ファイルが、ジョブが指示された際の状態である初期データである場合、前記複数のファイルサーバのうちの他のファイルサーバから前記ファイルの多重化されているファイルを再取得し、
前記復号化手段は、前記再取得した多重化されているファイルに対して復号化することを特徴とする請求項１４に記載のプログラム。
【請求項１６】
前記ジョブ管理サービスサーバは、
前記復号化手段による復号化が失敗したファイルが、別のタスク処理サービスサーバにて処理された結果得られたファイルである場合、現在の処理対象を示すタスクを前記別のタスク処理サービスの１つ前のタスクに戻す
ことを特徴とする請求項１４または１５に記載のプログラム。
【請求項１７】
前記復号化手段にてファイルの復号化が失敗した場合にファイルを再取得する回数は予め定義されていることを特徴とする請求項１５に記載のプログラム。
【請求項１８】
ジョブの指示を受け付けるサービスサーバと、前記指示を受け付けることで生成されたジョブを管理するジョブ管理サービスサーバと、前記ジョブに基づく処理を実行するために、前記ジョブを構成する１または複数のタスクを処理する１または複数のタスク処理サービスサーバと、を有する情報処理システムにおいて、
前記ジョブ管理サービスサーバを、
前記ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する保持手段、
前記タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する特定手段
として機能させ、
前記タスク処理サービスサーバを、
前記特定手段により特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する復号化手段
として機能させ、
前記暗号化および復号化されるファイルは、画像形成装置により生成されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ジョブ処理システム、情報処理システム、ジョブ処理方法、情報処理方法、およびプログラムに関する。特にジョブ処理においてジョブの暗号化の制御に関する。
【背景技術】
【０００２】
近年、サーバコンピュータ側で各種処理を行う形態として、クラウドコンピューティングシステムやＳａａＳ（Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）という技術が利用されている。クラウドコンピューティングでは、多くのコンピューティング・リソースを利用し、データ変換やデータ処理を分散実行することで、多くのクライアントからの要求を同時に処理することが可能となる。また、クラウドコンピューティングの特徴を生かすため、サーバでの一連の処理を細かく規定されたタスクの連結で実現し、それらを同時並行的に処理することで、多数のジョブをスケーラブルに処理する技術が存在する。
【０００３】
上記処理において、各タスクにてデータ変換やデータ処理の結果生成される一時データは、ユーザのグループを示すテナント単位に分離されて管理されている。サーバ単位などでデータを物理的に分離するのは非常に高コストであるため、保存および取得の際にテナントＩＤを指定することで論理的に分離されたテナント内でデータが管理されている。
【０００４】
テナント単位でデータを管理する際、テナントＩＤを使ってデータを暗号化することでセキュリティを向上することが可能となる。
【０００５】
特許文献１は音声データの無線通信において、複数の暗号化方式とそれらを一意に識別する識別子とをテーブルで管理する。暗号化・復号化する際には識別子に対応した暗号化方式をテーブルから特定し、その暗号化方式を用いて暗号化・復号化を行う。無線通信で送信されるデータは、暗号化された音声データと暗号化方式の識別子を含むため、復号化の際には暗号化の際と同じアルゴリズムを用いて復号化が可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８―３１６９５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、例えばスキャンなどのテナント内で閉じたジョブであればテナントＩＤから一意に生成される暗号化キーを利用すればよい。しかしながら、最終的にタスクの処理結果をＦＡＸ等の手段でテナント外にデータを送信するような処理を実行する場合は、その限りではない。例えば、タスクが処理対象データの取得時に誤って同一テナントの別ジョブのデータを取得してしまった場合、同一テナントのデータであるため、タスクは誤取得したデータを復号化可能であり、その結果、テナント外に誤ったデータを送信してしまう。つまり、上述したような例えばスキャンおよびＦＡＸ処理で使用されるデータを同一の方式で暗号化する技術では、この課題を解決できない。
【０００８】
引用文献１では、識別子がデータに同梱されているため、テーブルを参照することで必ず復号化できてしまい、誤って取得したデータのテナント外への誤送信を防ぐことができない。
【０００９】
本発明では、セキュリティを更に向上させたシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本願発明のジョブ処理システムは以下の構成を有する。即ち、１または複数のタスクから構成されるジョブを処理するジョブ処理システムであって、前記ジョブ処理システムは、ジョブの指示を受け付けるサービスサーバと、前記指示を受け付けることで生成されたジョブを管理するジョブ管理サービスサーバと、前記ジョブに基づく処理を実行するために、前記ジョブを構成する１または複数のタスクを処理する１または複数のタスク処理サービスサーバと、を有し、前記ジョブ管理サービスサーバは、前記ジョブに対応するファイルを暗号化および復号化する際の方式と、暗号化および復号化に用いられるキーを生成する際に用いられる情報とを定義した暗号化情報を前記サービスサーバごとに保持する保持手段と、前記タスク処理サービスサーバから暗号化情報の取得要求を受信した場合、前記タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する特定手段と、を有し、前記タスク処理サービスサーバは、前記特定手段により特定された前記暗号化情報に定義されている方式および情報を用いて、前記暗号化ファイルを復号化する復号化手段を有する。
【発明の効果】
【００１１】
本発明により、セキュリティを向上させたシステムを提供することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】クラウドシステムの全体構成を示す図。
【図２】クライアント端末、サーバコンピュータのハードウェア構成図。
【図３】クライアント端末のシステム構成図。
【図４】画像形成装置の内部構成の詳細を示す図。
【図５】スキャンサービスサーバ群のシステム構成図。
【図６】ＦＡＸサービスサーバ群のシステム構成図。
【図７】暗号化ライブラリのシステム構成図。
【図８】暗号化情報の構成要素を表した図。
【図９】スキャンサービスサーバ群にて保持するチケット情報の一例を示す図。
【図１０】スキャンサービスサーバ群にて保持するテンプレート情報の一例を示す図。
【図１１】タスクサービスサーバ群のシステム構成図。
【図１２】スキャン処理の一連の流れを示すシーケンス図。
【図１３】ＦＡＸサービスサーバ群の処理の一連の流れを示すシーケンス図。
【図１４】フローサービスサーバ群のシステム構成図。
【図１５】ルート管理サービスサーバ群のシステム構成図。
【図１６】ルート管理サービスサーバ群にて保持するルート情報の一例を示す図。
【図１７】ルート管理サービスサーバ群にて保持するタスク情報の一例を示す図。
【図１８】ジョブ管理サービスサーバ群のシステム構成図。
【図１９】タスクのリトライ判定処理の流れを示すフローチャート。
【図２０】ジョブ管理サービスサーバ群にて保持するジョブ情報および暗号化方式の情報の一例を示す図。
【図２１】一時ファイル管理サービスサーバ群の全体構成図。
【図２２】中央管理サーバのシステム構成図。
【図２３】中央管理サーバにて保持するファイルサーバ情報およびファイルパス情報の一例を示す図。
【図２４】一時ファイル管理サービスサーバ群にて使用するファイルサーバのフォルダの階層構造を示す図。
【図２５】第二の実施形態に係るデータの復号化失敗が原因によるジョブのリトライ処理の流れを表したフローチャート。
【発明を実施するための形態】
【００１３】
＜第１の実施形態＞
以下、本発明を実施するための形態について図面を用いて説明する。
【００１４】
［システム構成］
図１は、本発明の実施の形態に係るクラウドシステムとしての情報処理システムの全体構成を示す図である。図１において、本実施形態の情報処理システムを構成するサーバ群として、ＦＡＸサービスサーバ１００、スキャンサービスサーバ１０１、フローサービスサーバ１０２、タスクサービスサーバ１０３〜１０５が含まれる。なお、ＦＡＸサービスサーバ１００およびスキャンサービスサーバ１０１は、ジョブの指示を受け付けるサービスサーバの一例である。さらに、クラウドシステムには、クライアント端末１０６、１０９、画像形成装置１０７、クラウドサービスサーバ１０８が含まれる。各装置は、ネットワーク１１０〜１１３を介して接続されている。図１において、タスクサービスサーバ１０３〜１０５、クライアント端末１０６、１０９、画像形成装置１０７、クラウドサービスサーバ１０８は、ネットワーク上にて複数台接続されていることを仮定している。図１に示した各サーバは、物理的に複数台であってよく、処理を分担するサーバ群として構成することも可能である。
【００１５】
ネットワーク１１０〜１１３は、例えば、インターネット等のＬＡＮ、ＷＡＮ、電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等のいずれかである、いわゆる通信ネットワークである。なお、ネットワーク１１０〜１１３は、これらの組み合わせによって実現されてもよく、データの送受信が可能であればよい。一般的なクラウドサービスでは、ネットワーク１１０、１１２はインターネット、ネットワーク１１１、１１３は企業内ネットワークやサービスプロバイダーのネットワークとなる。
【００１６】
ＦＡＸサービスサーバ１００、スキャンサービスサーバ１０１、フローサービスサーバ１０２、タスクサービスサーバ１０３〜１０５は、一般的にサーバコンピュータ上にて実行されており、これらサーバ群がユーザに対してクラウドサービスを提供する。また、様々な企業などにより、同様にクラウドサービスサーバ１０８がインターネット上に公開されており、これらも一般的にサーバコンピュータ上にて実行されている。上述した通り、１台のサーバが提供すべき機能を複数台のサーバで実現しても良い。本願明細書では、各サーバを以降“サービス”と記載することもある。
【００１７】
クライアント端末１０６、１０９は、例えば、デスクトップパソコン、ノートパソコン、モバイルパソコン、ＰＤＡ（パーソナルデータアシスタント）等であり、その他、プログラムの実行環境が内蔵された携帯電話であってもよい。クライアント端末１０６、１０９には、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂの利用に供するブラウザ）等のプログラムを実行する環境が内蔵されている。
【００１８】
なお、図１のＦＡＸサービスサーバ１００乃至ネットワーク１１３を含むシステムを情報処理システムとして定義する。また、情報処理システムからクライアント端末１０６、画像形成装置１０７、ネットワーク１１１を除いたシステムをジョブ処理システムと定義する。
【００１９】
ここで、課題および目的について更に詳細に記載する。１つ以上のタスクから構成されるジョブと、ジョブに関する情報や実行順序などを制御するジョブ管理サービスを想定する。各タスクはそれぞれ複数のインスタンスを立ち上げることが可能である。また、各インスタンスは非同期でジョブ管理サービスからジョブを取得し、例えば黒点除去などの画像処理や共有フォルダへのデータ格納処理などを行う。各タスクで扱うデータは一時ファイル管理サービスにて管理される。
【００２０】
各タスクは、必要に応じて処理すべきデータを一時ファイル管理サービスサーバから取得し、処理結果を保存する。ジョブ管理サービスへは２つ以上の異なるサービスのアプリケーションからジョブが投入される。本明細書では、ジョブ管理サービスにジョブを投入するアプリケーションを“サービスアプリケーション”と呼ぶ。このような各タスクが、非同期でジョブを処理するシステムにおいて、ジョブ投入時にデータを暗号化し、タスク処理時に必要に応じて復号化・暗号化を行うことを考える。クラウドサービスでは、ユーザをテナントという概念で管理することがあり、例えばクラウドサービスを利用する会社が１のテナントから構成され、１のテナントに対して１のテナントＩＤが割り当てられる。この場合、他テナントの情報が誤って利用されることを防止する必要がある。すなわち、バイナリデータの暗号化キーは、異なるテナント同士で共通のものであってはならない。
【００２１】
一方、何らかの障害等によりタスクが利用するデータを復号化できなくなった場合、一時ファイル管理サービスのアプリケーションログを参照することで容易に復号化可能な構成にし、データ復旧の手段を確保する必要がある。従って、暗号化キーは複数テナントで非共通かつより多くのジョブで共通である方が望ましいため、テナントＩＤから一意に生成されるキーであればよい。しかし、このようにテナントＩＤから生成されるキーだけでは、同一テナントのデータが誤って処理される可能性があるため、その可能性を更に防止することが本願の目的の１つである。
【００２２】
［ハードウェア構成］
図２は、本発明の実施形態に係るクライアント端末１０６、１０９、各種サービスサーバのコンピュータ（情報処理装置）のハードウェア構成図である。
【００２３】
図２において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０２は装置全体の制御を行う。ＣＰＵ２０２は、ハードディスク（ＨＤＤ）２０５に格納されているアプリケーションプログラム、ＯＳ等を実行し、ＲＡＭ（Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０４は記憶手段であり、内部には、基本Ｉ／Ｏプログラム等の各種データを記憶する。ＲＡＭ２０３は一時記憶手段であり、ＣＰＵ２０２の主メモリ、ワークエリア等として機能する。ＨＤＤ２０５は外部記憶手段の一つであり、大容量メモリとして機能し、Ｗｅｂブラウザ等のアプリケーションプログラム、サービス群のプログラム、ＯＳ、関連プログラム等を格納する。
【００２４】
ディスプレイ２０６は表示手段であり、キーボード２０７から入力したコマンド等を表示する。インターフェース２０８は外部装置Ｉ／Ｆであり、プリンタ、ＵＳＢ機器、周辺機器を接続する。キーボード２０７は指示入力手段であり、ユーザからの指示を受け付ける際に用いられる。システムバス２０１は、装置内におけるデータの流れを司るものである。ＮＩＣ（ネットワークインターフェースカード）２０９は、インターフェース２０８、ネットワーク１１０〜１１２を介して外部装置とのデータのやり取りを行う。なお、上記のコンピュータの構成はその一例であり、図２の構成例に限定されるものではない。他の構成要素を備えていてもよい。また、データやプログラムの格納先は、その特徴に応じてＲＯＭ２０４、ＲＡＭ２０３、ＨＤＤ２０５などで変更することも可能である。
【００２５】
図３は、本発明の実施形態に係るクライアント端末１０６、１０９のシステム構成図である。図３において、Ｗｅｂブラウザ３０１を利用し、ＦＡＸサービスサーバ１００、スキャンサービスサーバ１０１が提供するＷｅｂアプリケーションへのリクエストの送信と、レスポンスの表示等を行う。クラウドサービスを利用するユーザはクライアント端末１０６、１０９のＷｅｂブラウザ３０１を介してクラウドサービスを利用する。
【００２６】
図４は、本発明の実施形態に係る画像形成装置１０７の内部構成を例示するブロック図である。本実施形態ではスキャン機能およびプリント機能の両機能を併せ持つ装置を例にする。なお、スキャンサービスサーバにより提供されるスキャンサービスを実現する場合、プリント機能のない、スキャン専用装置を用いてもよい。
【００２７】
図４において、画像形成装置１０７は、画像処理ユニット４０１、印刷ユニット４０２、および読み込みユニット４０３から構成される。画像処理ユニット４０１は、ＣＰＵ４０４、直接記憶部４０５、間接記憶部４０６、ユーザインターフェース４０７、および外部インターフェース４０８から構成される。
【００２８】
ＣＰＵ４０４は、所定のプログラムを実行し、画像形成装置１０７の各種制御を指示するユニットである。ＣＰＵ４０４はマルチプロセッサでも良い。直接記憶部４０５は、ＣＰＵ４０４がプログラムを実行する際に使用するワークメモリであり、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）により実現される。ＣＰＵ４０４が実行するプログラムは直接記憶部４０５にロードされる。間接記憶部４０６は、アプリケーションプログラム、およびプラットフォームプログラムを含む各種プログラムが記憶され、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、または、ＨＤＤにより実現される。間接記憶部４０６に記憶されている各種プログラムは、ＣＰＵ４０４がプログラムを実行する際に直接記憶部４０５へ移動する。
【００２９】
ここで、プラットフォームについて説明する。プラットフォームにより、ユーザが独自に開発した新しいアプリケーションを画像形成装置１０７上で実行できる他、画像形成装置１０７の操作画面をカスタマイズすることが可能になる。ＣＰＵ４０４は、間接記憶部４０６に記憶されたプラットフォームプログラムを直接記憶部４０５に移動する。移動が完了するとＣＰＵ４０４は、プラットフォームプログラム（例えば、Ｊａｖａ（登録商標））を実行することができる状態になる。本明細書では、ＣＰＵ４０４がプラットフォームプログラムを実行することを、「プラットフォームが起動する」と称する。なお、プラットフォームは、画像形成装置１０７のファームウェア（不図示）上で動作することになる。プラットフォームプログラムは、オブジェクト指向で記述されたアプリケーションプログラムを実行するための環境を提供するものである。
【００３０】
プラットフォーム上でアプリケーションプログラムを実行する方法について説明する。本実施形態において、プラットフォーム上には、スキャンした画像をクラウドサービスに送信するスキャンソフトウェアが動作している。スキャンソフトウェアは、ネットワークを介して接続されているスキャンサービスサーバ１０１より、例えば、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などの通信プロトコルによってスキャンチケットの一覧の受信を行う。スキャンチケットについては、処理のシーケンスと共に後述する。
【００３１】
スキャンチケットにはスキャンのための設定や、その後の処理フローといった情報が記録されている。以降、本明細書では、スキャンソフトウェアの動作により実現する部位を“スキャンソフトウェア部”と呼ぶ。ユーザはスキャンソフトウェア部により表示されたスキャンチケット一覧より、スキャンチケットを選択し、原稿を読み込ませることでスキャンを完了できる。スキャンソフトウェア部はユーザが選択したスキャンチケットの情報とスキャンした画像データを合わせてスキャンサービスサーバ１０１に送信する。このように、プラットフォームでアプリケーションプログラムを実行することによって、画像形成装置１０７の制御を実現することができる。
【００３２】
アプリケーションプログラムの実行方法について説明する。起動したプラットフォームは、間接記憶部４０６に記憶されたアプリケーションプログラムを直接記憶部４０５に移動する。移動が完了すると、プラットフォームはアプリケーションプログラムを実行することができる状態になる。そして、プラットフォームはアプリケーションプログラムを実行する。このように、アプリケーションプログラムを実行することで提供できるプラットフォームの機能を、本明細書では“プラットフォームアプリケーション”と呼ぶ。さらに、プラットフォームは、本明細書に記載するフローチャートの各処理の一部を行うことが可能である。
【００３３】
ユーザインターフェース４０７は、ユーザからの処理依頼を受け付ける際に用いられる。例えば、キーボード、マウス等を介してユーザが入力した指示に応じた信号を受け付ける。外部インターフェース４０８は、外部装置からのデータ受信や外部装置へのデータ送信が可能となっている。例えば、外部装置としては、外付けＨＤＤや外付けＵＳＢメモリ等の外付け記憶装置、またはネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。画像形成装置１０７は、ネットワーク１１０、１１１を介して、クライアント端末１０６、スキャンサービスサーバ１０１と通信可能である。
【００３４】
［スキャンサービスおよびＦＡＸサービスにおける処理シーケンス］
続いて、クラウドサービスを提供するＦＡＸサービスサーバ１００、スキャンサービスサーバ１０１、タスクサービスサーバ１０３〜１０５の各サービスサーバ群に関して説明する。また、各サービスサーバの説明とともに、図１２のスキャン処理のシーケンス図を用いてスキャン処理の流れを説明する。さらに、図１３のＦＡＸサービスのシーケンス図を用いてＦＡＸ処理の流れを説明する。
【００３５】
（スキャンチケットの作成とスキャンジョブの投入）
まずスキャン処理についてスキャンチケットの作成とスキャンジョブの投入までの流れを説明する。図５を用いて、スキャンサービスサーバ１０１に関して説明する。スキャンサービスサーバ１０１はクラウドサービスにおけるスキャン機能の提供を行うサービスである。
【００３６】
図５は、本実施形態に係るスキャンサービスサーバ１０１のシステム構成図である。スキャンサービスサーバ１０１は、Ｗｅｂアプリケーション部５０１、チケット管理ＤＢ５０２、テンプレート管理ＤＢ５０３、および暗号化ライブラリ５０４を有する。
【００３７】
暗号化ライブラリ５０４は、データの暗号化・復号化に用いられるライブラリである。図７に暗号化ライブラリ５０４のシステム構成図を示す。暗号化方式管理部７１１は、暗号化・復号化モジュール７２１〜７２３を管理する。暗号化・復号化モジュール７２１〜７２３はそれぞれ異なる暗号化方式に対応している。
【００３８】
暗号化キー生成方法管理部７１２は、キー生成モジュール７３１、７３２を管理する。暗号化部７０１および復号化部７０２は、暗号化方式読込部７０５を介して暗号化方式管理部７１１から暗号化・復号化モジュール７２１〜７２３のうちの１つを読み込み、それぞれデータの暗号化・復号化を行う。このように複数の暗号化・復号化モジュール７２１〜７２３を読み込み可能にすることで、サービスアプリケーション（すなわち、ジョブの内容）によって異なる暗号化方式を採用することが可能となる。
【００３９】
キー生成部７０４は、暗号化キー生成方法読込部７０８を介して暗号化キー生成方法管理部７１２からキー生成モジュール７３１、７３２のうちの１つを読み込み、暗号化・復号化に必要な暗号化キーを生成する。このように複数のキー生成モジュールを読み込み可能とすることで、サービスアプリケーションによって異なる暗号化キーの生成方法、異なる暗号化キーの生成に必要な情報（要素）の組み合せを採用することが可能になる。これにより、例えば、暗号化キーをテナントＩＤに対して一意なものとするか、ジョブに対して一意なものにするかを選択することが可能になる。固定キー記憶部７０６は、キー生成部７０４にて暗号化キーを生成する際に利用する固定キーを記憶する。暗号化ＩＤ発行部７０７は、ジョブに対して一意の暗号化ＩＤを発行する。
【００４０】
暗号化方式取得部７０３は、フローサービスサーバ１０２に対して後述の暗号化方式ＩＤを送信し、対応する暗号化情報８０１を取得する機能を有する。図８は、暗号化情報８０１の構成要素を表した図である。暗号化情報８０１は、暗号化アルゴリズム８１１、鍵長８１２、および暗号化キー生成方法８１３を有する。暗号化アルゴリズム８１１としては、例えばＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などが用いられる。鍵長８１２は例えば６４、１２８、２５６（ｂｉｔ）などが設定される。また、暗号化キー生成方法８１３には、暗号化キーを生成する際に利用する、テナントＩＤ・固定キー・暗号化ＩＤの組み合せ方法や、そこから暗号化キーを生成する方法の情報が設定される。
【００４１】
詳細については後述するが、暗号化ライブラリ５０４は、暗号化・復号化を行うサービスアプリケーションや、タスクサービスサーバ１０３〜１０５から共通で利用される。したがって、固定キー記憶部７０６にて記憶される固定キーは、暗号化ライブラリ５０４を利用するサービスアプリケーションや、タスクサービスサーバ１０３〜１０５で共通である。
【００４２】
本実施形態において、Ｗｅｂアプリケーション部５０１は、スキャン機能を提供する。チケット作成部５１１はユーザがスキャンチケットを作成するための一連の機能を提供する。スキャンチケットには、画像形成装置１０７で原稿をスキャンする際の設定や、その後の処理フローの定義、各処理フローで実施されるタスクの為のパラメーター等が記録されている。
【００４３】
図１２にて、チケット作成部５１１は、クライアント端末１０６のＷｅｂブラウザ３０１からのスキャンチケット作成画面リクエストを受け取る（Ｓ１２０１）。そして、チケット作成部５１１は、スキャンチケット作成画面を生成し、応答として返す（Ｓ１２０２）。この際、チケット作成部５１１は、テンプレート管理部５１６より、テンプレート管理ＤＢ５０３に登録されているスキャンチケットのテンプレートを取得し、テンプレートに含まれるテンプレート名を、クライアント端末１０６のＷｅｂブラウザ３０１に表示させる。テンプレート管理ＤＢ５０３の詳細な内容は、図１０を用いて後述する。
【００４４】
ユーザがクライアント端末１０６のＷｅｂブラウザ３０１にて操作を行い、スキャンチケット作成リクエストを行うと（Ｓ１２０３）、チケット作成部５１１は、スキャンチケット作成を行い、作成したスキャンチケットの保存をチケット管理部５１５へ依頼する。チケット管理部５１５は、チケット保存のリクエストを受け、チケット管理ＤＢ５０２にチケット情報を保存する。チケット管理ＤＢ５０２の詳細な説明は図９を用いて後述する。チケット管理部５１５は、チケット情報を保存した後、クライアント端末１０６に対してレスポンスを行う（Ｓ１２０４）。
【００４５】
外部Ｉ／Ｆ５１４は、画像形成装置１０７上で動作するスキャンソフトウェア部との通信を行う。スキャンソフトウェア部より、外部Ｉ／Ｆ５１４を介して、チケット一覧部５１２の機能や、スキャン受信部５１３の機能へのアクセスを行う。図１２にて、画像形成装置１０７のスキャンソフトウェア部は外部Ｉ／Ｆ５１４を介してチケット一覧部５１２に対し、チケット一覧取得を行う（Ｓ１２０５）。チケット一覧部５１２では、チケット管理部５１５が管理する情報を使ってスキャンチケットの一覧を生成し、スキャンソフトウェア部にレスポンスを返す（Ｓ１２０６）。レスポンスを受け取った画像形成装置１０７は、取得したチケット一覧を図４におけるユーザインターフェース４０７上に表示する。
【００４６】
図１２のスキャン処理（Ｓ１２０７）にて、ユーザインターフェース４０７上に表示されたスキャンチケットのいずれかがユーザにより選択され、画像形成装置に備え付けられたスキャン装置に紙を設置された後、スキャンが実行される。そして、スキャンソフトウェア部は、外部Ｉ／Ｆ５１４を介してスキャン受信部５１３に対し、スキャンした画像データとスキャンチケットの送信を行う（Ｓ１２０８）。
【００４７】
スキャン受信部５１３は、送信されたスキャンチケット、および画像データを受信した後、暗号化方式ＩＤ記憶部５１７から画像データの暗号化方式ＩＤを取得する。なお、これらの取得処理によりジョブの実行指示の受け付けが実現される。ここで暗号化方式ＩＤ記憶部５１７に記憶可能な暗号化方式ＩＤの個数は１である。すなわち、スキャンサービスサーバ１０１に対するデータの暗号化方式は１つであることを表している。スキャン受信部５１３は、暗号化方式ＩＤを暗号化ライブラリ５０４の暗号化方式取得部７０３を介してフローサービスサーバ１０２に送信する（Ｓ１２０９）。フローサービスサーバ１０２は暗号化方式ＩＤに対応する暗号化情報８０１をレスポンスとして返却する（Ｓ１２１０）。なお、フローサービスサーバ１０２は、暗号化方式ＩＤと暗号化情報８０１を対応付けて管理している。
【００４８】
次に、暗号化ＩＤ発行部７０７は暗号化ＩＤを発行する（Ｓ１２１１）。続いてスキャン受信部５１３は、固定キー記憶部７０６から固定キーを取得する。スキャン受信部５１３は、Ｓ１２１０にて取得した暗号化情報８０１に含まれる暗号化キー生成方法８１３に従って、固定キーとジョブに紐付いた情報とを組み合わせ、暗号化キーを生成する（Ｓ１２１２）。本処理の詳細については、後述する。なお、ここでの暗号化キー生成により、第一の生成手段を実現する。
【００４９】
次に、スキャン受信部５１３は、画像データの暗号化リクエストを暗号化部７０１に対して行うために、画像データとともにＳ１２１０にて取得した暗号化情報８０１とＳ１２１２にて生成した暗号化キーとを暗号化部７０１に対して送信する。そして、暗号化部７０１は、暗号化方式読込部７０５を介して暗号化方式管理部７１１から暗号化情報８０１に対応した暗号化・復号化モジュールを読み込み、暗号化を行う（Ｓ１２１３）。これにより、第一の暗号化手段を実現する。
【００５０】
スキャン受信部５１３は、暗号化された画像データをフローサービスサーバ１０２に投入する（Ｓ１２１４）。フローサービスサーバ１０２は、暗号化された画像データを正しく受信できた場合には、スキャンサービスサーバ１０１に、画像データを一意に表すＩＤ（ファイルグループＩＤ）を応答する（Ｓ１２１５）。その後、スキャン受信部５１３は、ファイルグループＩＤ、暗号化方式ＩＤ、スキャンチケット、テナントＩＤ、および暗号化ＩＤをジョブとしてフローサービスサーバ１０２に送信する（Ｓ１２１６）。つまり、ジョブは、スキャンサービスサーバ１０１等のサービスサーバがジョブの実行指示を受け付けることで生成される。ここでテナントＩＤとはジョブを投入（実行指示）したユーザ（図１２ではスキャン処理を指示したユーザ）が属するテナントを表す、テナントに対して一意となるテナント情報（ＩＤ：識別子）である。なお、これらのジョブは、後述のジョブ管理サービスサーバ１４０２にて管理される。
【００５１】
以上がスキャンサービスサーバ１０１のシステム構成と、スキャンジョブの投入までの流れである。
【００５２】
（ＦＡＸチケットの作成とＦＡＸジョブの投入）
続いて、ＦＡＸ処理についてＦＡＸチケットの作成とＦＡＸジョブの投入の流れを説明する。
【００５３】
図６を用いてＦＡＸサービスサーバ１００に関して説明する。ＦＡＸサービスサーバ１００はクラウドサービスにおけるＦＡＸ機能の提供を行うサービスサーバである。なお、ＦＡＸは送受信ともに行うことができるのが一般的であるが、本実施形態ではＦＡＸの送信に部分のみに関して記載する。
【００５４】
図６は本実施形態に係るＦＡＸサービスサーバ１００のシステム構成図である。ＦＡＸサービスサーバ１００は、Ｗｅｂアプリケーション部６０１、暗号化ライブラリ５０４、チケット管理ＤＢ６０３、およびテンプレート管理ＤＢ６０４を有する。暗号化ライブラリ５０４については、スキャンサービスサーバ１０１における構成（図７）と同様であるものとする。
【００５５】
Ｗｅｂアプリケーション部６０１は、ＦＡＸ機能を提供するアプリケーションプログラムを提供する。チケット作成部６１４はユーザがＦＡＸチケットを作成するための一連の機能を実現する。ＦＡＸチケットには処理フローの定義、ＦＡＸの送信先の宛先情報などが記録されている。
【００５６】
図１３にて、チケット作成部６１４はクライアント端末１０９のＷｅｂブラウザ３０１からのＦＡＸチケット作成画面リクエストを受け取る（Ｓ１３０１）。チケット作成部６１４は、ＦＡＸチケット作成画面を生成し、リクエストに対する応答として生成したＦＡＸチケット作成画面を返す（Ｓ１３０２）。この際、チケット作成部６１４は、テンプレート管理部６１７よりテンプレート管理ＤＢ６０４に登録されているＦＡＸチケットのテンプレートを取得し、テンプレートに含まれるテンプレート名をクライアント端末１０９のＷｅｂブラウザ３０１に表示する。テンプレート管理ＤＢ６０４の詳細な情報は図１０を用いて後述する。
【００５７】
ユーザがクライアント端末１０９のＷｅｂブラウザ３０１を介して行った操作に従って、クライアント端末１０９は、ＦＡＸチケット作成リクエストを行う（Ｓ１３０３）。ＦＡＸサービスサーバ１００は、ＦＡＸチケット作成リクエストを受信するとＦＡＸチケット作成を行い、作成したＦＡＸチケットの保存をチケット管理部６１６に依頼する。チケット管理部６１６は、チケット保存のリクエストを受け、チケット管理ＤＢ６０３にチケット情報を保存する。チケット管理部６１６は、チケット情報を保存した後、ＦＡＸチケット作成リクエストに応答を返す（Ｓ１３０４）。その後、ユーザからの指示に従って、クライアント端末１０９は、ＦＡＸチケットと共にＦＡＸ送信するデータをＦＡＸサービスサーバ１００に対して送信する（Ｓ１３０５）。
【００５８】
文書受信部６１３は、クライアント端末１０９からＦＡＸチケット及びＦＡＸ送信するデータを受け取ると、暗号化方式ＩＤ記憶部６１８から文書の暗号化方式ＩＤを取得する。ここで暗号化方式ＩＤ記憶部６１８に記憶可能な暗号化方式ＩＤの個数はスキャンサービスサーバ１０１の場合と同様に１である。すなわちＦＡＸサービスサーバ１００に対するデータの暗号化方式は１つであることを表している。なお、暗号化方式ＩＤ記憶部６１８に記述されている暗号化方式ＩＤはスキャンサービスサーバ１０１における暗号化方式ＩＤ記憶部５１７に記述されている暗号化方式ＩＤは同じものとは限らない。このように、フローサービスサーバ１０２を利用するサービスアプリケーションごとに暗号化方式ＩＤを変えることで、サービスアプリケーションごとに異なる暗号化方式でデータを暗号化することが可能である。図１３のＳ１３０６〜Ｓ１３１３にてＦＡＸ処理時の文章データの暗号化、ジョブ投入の流れを示しているが、これはスキャン処理時のＳ１２０９〜Ｓ１２１６と同様であるため、説明は省略する。
【００５９】
［データ構成］
図９にて、スキャンサービスサーバ１０１のチケット管理ＤＢ５０２、およびＦＡＸサービスサーバ１００のチケット管理ＤＢ６０３で管理されている情報の一例を示す。ユーザＩＤ９０１は、該チケットを作成したユーザを一意に表すＩＤ（識別子）である。チケットＩＤ９０２は、チケットを一意に定義するＩＤである。ルートＩＤ９０３は、チケット作成画面にて、ユーザが選択したテンプレートに対応するＩＤである。ユーザがチケットを選択し、スキャンを実行した場合には、そのスキャンデータは、ルートＩＤ９０３に定義されたタスクの順番で処理される。パラメーター９０４は、スキャンの設定が記録されている。
【００６０】
図１０にて、スキャンサービスサーバ１０１のテンプレート管理ＤＢ５０３、およびＦＡＸサービスサーバ１００のテンプレート管理ＤＢ６０４で管理されているテンプレートのデータ構成の一例を示す。テンプレート管理ＤＢ５０３、６０４は、図１５のルート情報管理ＤＢ１５０１にて管理されるルート情報と、チケット作成画面上に表示されるテンプレートとを関連付けるためのデータベースである。ここで、テンプレートのデータは、テンプレートＩＤ１００１、１０１１、テンプレート名１００２、１０１２、およびルートＩＤ１００３、１０１３を有する。テンプレートＩＤ１００１、１０１１は、各テンプレートを一意に表すＩＤである。テンプレート名１００２、１０１２は、チケット作成画面に表示される名前である。ルートＩＤ１００３、１０１３は、図１６に示すルート情報管理ＤＢ１５０１にて管理されるルートＩＤ１６０１への外部キーを表す。
【００６１】
［タスクサービスサーバにおける処理］
図１１を用いて本発明の実施形態に係るタスクサービスサーバ１０３〜１０５のシステム構成図を説明する。タスクサービスは、スキャンサービス、ＦＡＸサービス等を実現するための要素機能を提供するタスク処理サービスサーバ（またはサーバ群）によって提供される。例えば画像データ対して画像処理を行うタスクサービスサーバや、ファイル共有機能を提供するような他のクラウドサービスサーバ１０８に対して画像データを送信するタスクサービスサーバが存在する。なお、１または複数のタスク処理サービスサーバが、ジョブを構成する１または複数のタスクを処理することで、ジョブに基づく処理が実行される。
【００６２】
本実施形態では、タスクサービスサーバ１０３は、画像データに対してＯＣＲ処理を行いＯＣＲ結果のテキストデータを画像データに埋め込む処理を行う。タスクサービスサーバ１０４は、クラウドサービスサーバ１０８の中のストレージ機能を提供する特定のサービスサーバに対して画像データをアップロードし保管する処理を行う。タスクサービスサーバ１０５は、ＦＡＸ装置に文書（または画像）データを送信する処理を行う。なお、これらのタスクサービスサーバの処理は一例であり、他の処理を行っても構わない。
【００６３】
以下、図１２のスキャン処理のシーケンス図、図１３のＦＡＸ処理のシーケンス図の流れとともに各構成要素の説明を行う。図１２、図１３においてタスクサービスサーバ１０３はスキャンサービスサーバ１０１もしくはＦＡＸサービスサーバ１００のいずれかから投入されたジョブのルートに共通で組み込まれるタスクである。
【００６４】
タスクサービスサーバ１０３〜１０５のタスク取得部１１１１は、Ｓ１２１７、Ｓ１２２９、Ｓ１３１４、Ｓ１３２９にて、定期的にフローサービスサーバ１０２に問い合わせを行い、タスクサービスサーバ１０３〜１０５にて処理可能なタスクを取得する。例えば、フローサービスサーバ１０２が管理しているカレントタスクＩＤを使って処理可能なタスクが取得される。タスクサービスサーバ１０３〜１０５のデータ取得部１１１２は、タスク取得部１１１１で取得したジョブ情報を元に、Ｓ１２１９、Ｓ１２３１、Ｓ１３１６、Ｓ１３３１にてフローサービスサーバ１０２から処理すべき画像データや文書データなどの取得を行う（Ｓ１２２０、Ｓ１２３２、Ｓ１３１７、Ｓ１３３２）。
【００６５】
続いて、タスクサービスサーバ１０３〜１０５のデータ取得部１１１２は、画像・文書データの復号化を行う。まず、タスクサービスサーバ１０３〜１０５のデータ取得部１１１２は、暗号化ライブラリ５０４の暗号化方式取得部７０３を介し、フローサービスサーバ１０２に対して暗号化アルゴリズム取得リクエスト（取得要求）を送信する（Ｓ１２２１、Ｓ１２３３、Ｓ１３１８、Ｓ１３３３）。データ取得部１１１２は、暗号化アルゴリズム取得リクエストをジョブの構成要素の１つである後述の暗号化方式ＩＤと共にフローサービスサーバ１０２に送信する。フローサービスサーバ１０２は、暗号化方式ＩＤに対応した暗号化情報８０１をレスポンスとして返却する（Ｓ１２２２、Ｓ１２３４、Ｓ１３１９、Ｓ１３３４）。つまり、フローサービスサーバ１０２のジョブ管理サービスサーバ１４０２は、タスク処理サービスサーバにより復号化される暗号化ファイルに対応するジョブのサービスサーバ用の暗号化情報を特定する。そしてＳ１２２２、Ｓ１２３４、Ｓ１３１９、Ｓ１３３４においてレスポンスとして暗号化情報を返却する。
【００６６】
続いて、タスクサービスサーバ１０３〜１０５のデータ取得部１１１２は、キー生成部を介して、暗号化情報８０１の鍵長８１２に則った長さの暗号化キーを生成する（Ｓ１２２３、Ｓ１２３５、Ｓ１３２０、Ｓ１３３５）。ここでの暗号化キー生成により、第二の生成手段を実現する。暗号化キーは、固定キー記憶部７０６やジョブ情報管理ＤＢ１８０２にて管理されているジョブに関連付けられた情報を用いて生成される。
【００６７】
タスクサービスサーバ１０３〜１０５のデータ取得部１１１２は、画像・文書データの復号化リクエストを復号化部７０２に対して行う。この際、画像・文書データと共に、Ｓ１２２２、Ｓ１２３４、Ｓ１３１９、Ｓ１３３４にて取得した暗号化情報８０１およびＳ１２２３、Ｓ１２３５、Ｓ１３２０、Ｓ１３３５にて生成した暗号化キーを送信する。タスクサービスサーバ１０３〜１０５の復号化部７０２は、暗号化方式読込部７０５を介して暗号化方式管理部７１１から暗号化情報８０１に対応した暗号化・復号化モジュールを読み込み、復号化を行う（Ｓ１２２４、Ｓ１２３６、Ｓ１３２１、Ｓ１３３６）。この処理により、Ｓ１２２０、Ｓ１２３２、Ｓ１３１７、Ｓ１３３２にて取得されたデータが、ジョブ管理サービスサーバにより特定された暗号化情報に従って復号化される。つまり、暗号化情報に定義されている方式および情報を用いて、タスクサービスサーバの復号化部７０２が、暗号化ファイルを復号化する。
【００６８】
タスクサービスサーバ１０３〜１０５のタスク処理部１１１５は、取得・復号化したデータに対して各種処理を行う（Ｓ１２２５、Ｓ１２３７、Ｓ１３２２、Ｓ１３３７）。
【００６９】
次に、タスクサービスサーバ１０３のタスク処理部１１１５は、Ｓ１２２５、Ｓ１３３７での処理結果（処理後のデータ）を暗号化する。タスクサービスサーバ１０３のタスク処理部１１１５は、Ｓ１２２２、Ｓ１２１９で取得した暗号化情報８０１およびＳ１２２３、Ｓ１３３５にて取得した暗号化キーを処理結果とともに暗号化部７０１に対して送信する。暗号化部７０１は暗号化方式読込部７０５を介して暗号化方式管理部７１１から暗号化情報８０１に対応した暗号化・復号化モジュールを読み込み、暗号化を行う（Ｓ１２２６、Ｓ１３２４）。これにより、第二の暗号化手段を実現する。さらに、データ保存部１１１３はＳ１２２６、Ｓ１３２４で暗号化したデータをフローサービスサーバ１０２に保存させる（Ｓ１２２７、Ｓ１３２５）。
【００７０】
タスクサービスサーバ１０４のタスク処理部１１１５は、Ｓ１２３７での処理結果のデータをクラウドサービスサーバ１０８に送信する（Ｓ１２３８）。タスクサービスサーバ１０５のタスク処理部１１１５は、ＦＡＸ端末に対して画像・文書データを送信する（Ｓ１３３８）。タスクサービスサーバ１０３〜１０５のタスクステータス通知部１１１４は、一連のタスク処理の終了結果をフローサービスサーバ１０２に通知する（Ｓ１２２８、Ｓ１２３９、Ｓ１３２６、Ｓ１３３９）。なお、タスク処理の最中に処理が失敗した場合には、その旨をフローサービスサーバ１０２に通知することとなる。
【００７１】
［フローサービスサーバ］
続いて、フローサービスサーバ１０２の詳細な説明を行う。フローサービスサーバ１０２は、ルート管理、ジョブ管理、一時ファイル管理を行うサービスサーバである。
【００７２】
図１４は、フローサービスサーバ１０２のシステム構成の概要である。フローサービスサーバ１０２は、ルート管理サービスサーバ１４０１、ジョブ管理サービスサーバ１４０２、および一時ファイル管理サービスサーバ１４０３を有する。これらサーバ上により各種処理が実行されることで各サービスが提供され、それらが連携することで、フローサービスサーバ１０２のサービスがユーザに提供される。なお、ジョブ管理サービスサーバ１４０２は、ジョブを指示したユーザが属するテナントごとにジョブを管理する。
【００７３】
ルート管理サービスサーバ１４０１は、タスク間を連結させたルートの情報を管理する。上述したように、１のジョブは１または複数のタスクからなり、一連のタスクを処理することでジョブが処理される。ジョブ管理サービスサーバ１４０２は、ルートの情報に基づきジョブの処理を管理する。一時ファイル管理サービスサーバ１４０３は、ジョブ投入時のデータや各タスクの処理結果データの保存を管理する。
【００７４】
［ルート管理サービスサーバ］
図１５は、ルート管理サービスサーバ１４０１のシステム構成である。ルート管理サービスサーバ１４０１は、ルート情報管理ＤＢ１５０１、タスク情報管理ＤＢ１５０２、外部Ｉ／Ｆ１５０３を有する。
【００７５】
ルート情報管理ＤＢ１５０１は、タスク間の連結をルートという単位で定義するための情報を保持する。タスク情報管理ＤＢ１５０２は、各処理をタスクという単位で定義し、タスクに関する情報を保持している。外部Ｉ／Ｆ１５０３は、ルート管理サービスサーバ１４０１への問い合わせや、ジョブ管理サービスサーバ１４０２等からルート情報管理ＤＢ１５０１やタスク情報管理ＤＢ１５０２を参照する際に用いられるＩ／Ｆである。
【００７６】
図１６にて、ルート情報管理ＤＢ１５０１で管理されている情報の一例を示す。ルートＩＤ１６０１は、ルートを一意に識別するＩＤである。シーケンス番号１６０２はそのルートの何番目に実行するタスクであるかを保持する。タスクＩＤ１６０３はどのタスクを実行するかを示す。例えば、データ１６０６、１６０７、１６０８では、ルートＩＤが「００２」のルートを定義している。ルート「００２」においてデータ１６０６が１番目に実行するタスクであり、タスクＩＤが「Ｔａｓｋ１」のタスクを実行する。同様に、データ１６０８が２番目に実行するタスクであり、「Ｔａｓｋ３」のタスクを実行する。データ１６０９は３番目に実行するタスクであり、「Ｔａｓｋ５」のタスクを実行するという定義となる。
【００７７】
図１７にて、タスク情報管理ＤＢ１５０２で管理されている情報の一例を示す。タスクＩＤ１７０１は、タスクを一意に識別するＩＤである。タスク名１７０２は、そのタスクの名前である。リトライ回数上限値１７０３は、各タスクが失敗した際に行うリトライ回数の上限値である。各タスクは、タスク処理が成功した場合は終了するが、ファイルの取得失敗、通信エラーなど何らかの要因で最後まで処理が行われなかった場合は、リトライ回数上限値１７０３に基づいてタスクのリトライを実行する。
【００７８】
［ジョブ管理サービスサーバ］
図１８を用いて、ジョブ管理サービスサーバ１４０２に関して説明する。ジョブ管理サービスサーバ１４０２は、タスクサービスサーバ１０３〜１０５からのリクエストに対してタスク情報の授受や、各タスクの状態を管理するためのサービスサーバである。
【００７９】
外部Ｉ／Ｆ１８０１は、タスクサービスサーバ１０３〜１０５、およびＦＡＸサービスサーバ１００、スキャンサービスサーバ１０１との通信を行う際に用いられるＩ／Ｆである。ジョブ情報管理ＤＢ１８０２は、作成された各ジョブのステータスや、各ジョブが扱うデータのＩＤを管理する。ジョブ情報管理ＤＢ１８０２については図２０を用いて後述する。ジョブ追加部１８０３は、スキャンサービスサーバ１０１、ＦＡＸサービスサーバ１００それぞれが、ジョブ投入リクエストを受け（図１２、図１３のＳ１２１６、Ｓ１３１３）、ジョブ情報管理ＤＢ１８０２にジョブ情報を格納する。ここで、ジョブ情報は、図２０に示されるジョブ情報管理ＤＢ１８０２に存在する各カラム（２００１〜２０１３）から構成される。
【００８０】
ジョブ情報取得部１８０４は、タスクサービスサーバ１０３〜１０５からタスク取得リクエストを受け（Ｓ１２１７、Ｓ１２２９、Ｓ１３１４、Ｓ１３２９）、ジョブ情報管理ＤＢ１８０２からジョブ情報を取得する。ここで取得したジョブ情報は、タスク取得処理（Ｓ１２１８、Ｓ１２３０、Ｓ１３１５、Ｓ１３３０）にてタスクサービスサーバ１０３〜１０５にリクエストに対する応答として渡される。ジョブ情報更新部１８０５は、結果通知（Ｓ１２２８、Ｓ１２３９、Ｓ１３２６、Ｓ１３３９）にて、タスクサービスサーバ１０３〜１０５からジョブ情報更新リクエストを受け、ジョブ情報管理ＤＢ１８０２の該ジョブの情報を更新する。ここで、更新される情報としては、カレントタスクＩＤ２００４、ステータス２００５、最終更新時刻２００６などが挙げられる。
【００８１】
カレントタスクＩＤ２００４を更新する前に、ジョブ情報取得部１８０４は、ルート情報管理ＤＢ１５０１から、該ルートＩＤにおける次のタスクＩＤを取得する。ジョブ情報更新部１８０５は、取得したタスクＩＤに基づきカレントタスクＩＤ２００４を更新する。また、ジョブ情報更新部１８０５は、ステータス２００５は“０”、最終更新時刻２００６は現在時刻で更新する。暗号化方式管理ＤＢ１８０６は、画像・文書データの暗号化方式をＩＤや鍵長を管理する。暗号化方式管理ＤＢ１８０６については図２０を用いて後述する。
【００８２】
（ジョブ情報管理ＤＢ）
図２０（ａ）を用いて、ジョブ情報管理ＤＢ１８０２に保持されるデータについて説明する。ジョブＩＤ２００１は、各ジョブ情報に一意に割り当てられるＩＤである。ルートＩＤ２００２には、各ジョブを構成するタスク間のルートを示すルートＩＤが格納される。ファイルグループＩＤ２００３は、一時ファイル管理サービスサーバ１４０３から発行されるＩＤである。カレントタスクＩＤ２００４は、そのジョブにおいて現在処理対象であるタスクを示すタスクＩＤである。タスクサービスサーバ１０３〜１０５は、このカレントタスクＩＤ２００４を確認し、自タスクサービスに割り当てられたタスクＩＤと等しい行を選択し処理を行う。カレントタスクＩＤは、該タスクの処理が完了した際には、ジョブ情報更新部１８０５が、該ルートＩＤの次のタスクのタスクＩＤに更新する。更新された情報に基づいて、ルートにおける次のタスクを処理することとなる。
【００８３】
ステータス２００５には、処理待ち（０）、実行中（１）、エラー発生（２）、正常終了（−１）を表す値が設定される。タスクサービスサーバ１０３〜１０５がジョブを選択する際には、ステータスが待機中（０）となっている行を選択する。これにより、複数のタスクサービスが同一のタスクを処理するといった事態を防ぐことができる。タスクサービスサーバ１０３〜１０５が、ジョブを選択した後に、タスクサービスサーバ１０３〜１０５は、ジョブ情報更新部１８０５を介してステータス２００５を（１）に変更する。
【００８４】
最終更新時刻２００６は、タスクサービスサーバ１０３〜１０５が該ジョブに対して、何らかの処理を実行した際に更新される。ここでの何らかの処理とは、ステータスの更新処理やジョブの取得処理である。タスクサービスサーバ１０３〜１０５がジョブを取得する際に、自タスクＩＤと等しいジョブ情報が複数存在していた場合には、最終更新時刻２００６が最も古いジョブを選択する。これにより、いずれかのジョブに対する処理が滞ることがないように各ジョブに対して処理が進められる。
【００８５】
パラメーター２００７には、ジョブの設定情報や、他のタスクサービスサーバに渡す設定情報などを記載する。暗号化方式ＩＤ２００８には暗号化方式管理ＤＢ１８０６で管理されている暗号化方式ＩＤ２０２１が格納される。後述のように、暗号化方式ＩＤ２００８が異なるジョブは異なる暗号化方式で暗号化される。また、タスクサービスサーバ１０３〜１０５がデータを復号化・暗号化する際は、暗号化方式ＩＤ２００８を用いて暗号化方式管理ＤＢ１８０６から対応する暗号化方式および鍵長の情報を取得する。
【００８６】
ジョブリトライ回数上限値２００９は、ジョブのリトライ回数の上限値を表す。ジョブリトライ回数２０１０は、ジョブに対する現在のリトライ回数を表す。カレントタスクリトライ回数２０１１は、カレントタスクＩＤ２００４で表される現在処理対象となっているタスクのリトライ回数を表す。リトライ判定部１８０７はタスクおよびジョブが失敗した場合、ジョブリトライ回数上限値２００９、ジョブリトライ回数２０１０、カレントタスクリトライ回数２０１１、タスクのリトライ回数上限値１７０３を用いてリトライの制御を行う。タスクとジョブのリトライ判定処理については図１９にて後述する。
【００８７】
テナントＩＤ２０１２は、ジョブＩＤ２００１で表されるジョブを投入したユーザが属するテナントのテナントＩＤを表す。暗号化ＩＤ２０１３は、暗号化・復号化の際に必要となる暗号化キーを生成する際に利用される、ジョブに対して一意のＩＤである。
【００８８】
本実施形態では暗号化キー生成の際に、ジョブに対して一意な情報として暗号化ＩＤ２０１３を用いたが、これはジョブＩＤ２００１や、ファイルグループＩＤ２００３などジョブに対して一意な情報であれば何を用いてもよい。
【００８９】
（暗号化方式管理ＤＢ）
図２０（ｂ）を用いて暗号化方式管理ＤＢ１８０６で管理されているデータ（暗号化情報）について説明する。暗号化方式ＩＤ２０２１は各暗号化情報に一意に割り当てられるＩＤである。暗号化方式２０２２は、ＡＥＳ、ＤＥＳなどの暗号化アルゴリズム（またはそれに変わる記号）が格納される。各暗号化方式の違いは、暗号化方式管理部７１１の暗号化・復号化モジュール７２１〜７２３の違いに対応する。また、暗号化方式ＩＤは、各サービスサーバが１つ保持しているため、暗号化方式ＩＤはサービスサーバに対応するとも言える。そのため、ジョブ管理サービスサーバは、サービスサーバごとに暗号化情報を保持しているとも言える。
【００９０】
鍵長２０２３は、暗号化方式２０２２で暗号化を行う際に用いる鍵長がビット単位で格納される。図５、図６の暗号化方式ＩＤ記憶部５１７、６１８には、暗号化方式管理ＤＢ１８０６で管理される暗号化方式ＩＤ２０２１が記憶されている。スキャンサービスサーバ１０１、ＦＡＸサービスサーバ１００はそれぞれ暗号化方式ＩＤ記憶部５１７、６１８でそれぞれ異なる暗号化方式ＩＤ２０２１が割り当てられることで、画像・文書データを異なる暗号化方式で暗号化することができる。
【００９１】
暗号化キー生成方法２０２４は、キー生成部７０４にて暗号化キーを生成する際の暗号化キーの生成方法を表したものである。ここではＡ方法とＢ方法が示されており、生成方法とは、例えば、暗号化キーの生成の際に用いる要素（情報）を示す。要素としては、テナントＩＤ、ユーザＩＤ、暗号化ＩＤなどの情報が挙げられ、これらのうちのいずれを組み合わせてキーを生成するかを定義することができる。
【００９２】
例えば、スキャンなどのテナント内で閉じたジョブであればテナント外部にデータを送信しないので、本願が想定する課題が発生しない。そのため、スキャンジョブ用に暗号化キーを生成するための生成方法（要素の組み合わせ）は、例えば、テナントＩＤと固定キーと定義する。一方、ＦＡＸジョブなどはテナント外部にデータを送信するため、本願が想定する課題が発生する。そのため、ＦＡＸジョブ用に暗号化キーを生成するための生成方法（要素の組み合わせは）、例えば、テナントＩＤ、暗号化ＩＤ、固定キーと定義する。なお、単に同一テナント内の他のデータの誤送信を防ぐことだけを目的とするのであれば、ジョブに対して一意の暗号化ＩＤを使って暗号化キーを作成すれば良い。しかし、暗号化キーを生成するために、暗号化ＩＤだけでなくテナントＩＤや固定キーを組み合わせることで、セキュリティの更なる向上を図ることができる。
【００９３】
（リトライ判定処理）
図１９を用いてタスク、ジョブのリトライ判定処理について説明する。タスクサービスサーバ１０３〜１０５の処理が何らかの要因で失敗した場合、タスクサービスサーバ１０３〜１０５はタスク処理の失敗をフローサービスサーバ１０２に通知する。この場合、リトライ判定部１８０７は、タスクのリトライを行うのか、ジョブのリトライを行うのか、それとも失敗ジョブとして処理を終了するのかを決定する。図１９はリトライ判定部１８０７の判定処理を示したフローチャートである。
【００９４】
Ｓ１９０１にて、リトライ判定部１８０７は、カレントタスクリトライ回数２０１１と、カレントタスクＩＤ２００４に対応するタスクのリトライ回数上限値１７０３とを比較し、カレントタスクのリトライ回数が上限値以下か否かを判定する。カレントタスクのリトライ回数が上限値以下である場合（Ｓ１９０１にてＹＥＳ）、リトライ判定部１８０７は、Ｓ１９３１にてカレントタスクリトライ回数２０１１をインクリメントする。次に、リトライ判定部１８０７は、Ｓ１９３２にてジョブのステータス２００５を待機中（０）に変更する。このようにジョブ情報管理ＤＢ１８０２を変更することで、タスクサービスサーバ１０３〜１０５はタスクを再取得し、処理のリトライを行うことができる。
【００９５】
カレントタスクのリトライ回数が上限値以下でない場合（Ｓ１９０１にてＮＯ）、リトライ判定部１８０７は、Ｓ１９１０にてジョブリトライ回数が上限値以下か否かを判定する。その際、リトライ判定部１８０７は、ジョブリトライ回数上限値２００９とジョブリトライ回数２０１０とを比較する。
【００９６】
ジョブのリトライ回数が上限値以下である場合（Ｓ１９１０にてＹＥＳ）、リトライ判定部１８０７は、Ｓ１９１１にてジョブリトライ回数２０１０をインクリメントする。続いて、リトライ判定部１８０７は、Ｓ１９１２にてルートＩＤ２００２を用いて、ルート情報管理ＤＢ１５０１にアクセスし、先頭のタスクＩＤを取得する。そして、リトライ判定部１８０７は、カレントタスクＩＤ２００４を先頭タスクのＩＤに更新する。このようにジョブ情報管理ＤＢ１８０２を変更することで、先頭のタスクから処理をリトライする、すなわちジョブのリトライを行う。
【００９７】
リトライ回数が上限値以下でない場合（Ｓ１９１０にてＮＯ）、リトライ判定部１８０７は、Ｓ１９２１にてジョブのステータス２００５を失敗（２）に更新し、これによりジョブは失敗したとして扱う。
【００９８】
［一時ファイル管理サービスサーバ］
一時ファイル管理サービスサーバ１４０３は、スキャンサービスサーバ１０１、ＦＡＸサービスサーバ１００やタスクサービスサーバ１０３〜１０５からのリクエストに応じて、ファイルを格納し、その格納先のパスを管理するサービスサーバである。タスクサービスサーバ１０３〜１０５からファイル取得リクエストがあった際には、保存したファイルのバイナリデータをタスクサービスサーバ１０３〜１０５に返却する。また、タスクサービスサーバ１０３〜１０５やジョブ管理サービスサーバ１４０２からファイル削除のリクエストがあった際には、保存したファイルを削除する。
【００９９】
図２１は一時ファイル管理サービスサーバ１４０３の全体構成例を示す図である。一時ファイル管理サービスサーバの全体構成は、中央管理サーバ２１０１、ファイルサーバ２１０２〜２１０４から構成され、ネットワーク２１１０を介して接続されている。また、ネットワーク２１１０はネットワーク１１０と接続されている。ネットワーク２１１０はネットワーク１１０と同様のデータの送受信が可能な通信ネットワークである。中央管理サーバ２１０１は一般的にサーバコンピュータ上にて実行される。ファイルサーバ２１０２〜２１０４は一般にサーバコンピュータ上にて実行されており、必要に応じて電子データを保存、削除、取得する機能を有している。なお、本実施形態に係る一時ファイル管理サービスサーバの全体構成として、図２１に示す構成を示したが、この構成に限定するものではなく、物理的には任意の数の装置にて構成されるようにしてもよい。
【０１００】
［中央管理サーバ］
図２２は、本実施形態に係る中央管理サーバ２１０１のシステム構成図である。中央管理サーバ２１０１は、Ｗｅｂアプリケーション部２２０１、バックエンド部２２０２、ファイルサーバ管理ＤＢ２２３１、およびパス管理ＤＢ２２３２を有する。Ｗｅｂアプリケーション部２２０１は、一時ファイル管理機能を提供する。バックエンド部２２０２は、ファイルサーバ２１０２〜２１０４へのファイル保存、取得、削除などの機能を実現する。
【０１０１】
ファイルサーバ管理ＤＢ２２３１は、ファイルの格納先であるファイルサーバ２１０２〜２１０４に関する情報を管理する。図２３（Ａ）にファイルサーバ管理ＤＢ２２３１で管理するデータの例を示す。ＩＤ２３０１は、ファイルサーバを一時ファイル管理サービスサーバ１４０３内で一意に識別するための情報である。ホスト名２３０２は、ネットワーク２１１０上におけるファイルサーバの一意のアドレスを示し、Ｗｅｂアプリケーション部２２０１がバックエンド部２２０２を通じてファイルサーバ２１０２〜２１０４にアクセスする際に用いられる。
【０１０２】
アクティブフラグ２３０３は、Ｗｅｂアプリケーション部２２０１がバックエンド部２２０２を通じてホスト名２３０２に存在するファイルサーバとの通信の可否を示す真偽値である。ここでは、通信可能な場合は“Ｔｒｕｅ”、通信不可能な場合は“Ｆａｌｓｅ”の値を取る。共有フォルダ名２３０４は、ファイルサーバ２１０２〜２１０４上に作成した共有フォルダ名である。ホスト名２３０２と共有フォルダ名２３０４から、ファイルサーバ２１０２〜２１０４上に作成した共有フォルダのフルパスが得られる。
【０１０３】
パス管理ＤＢ２２３２は、一時ファイル管理サービスサーバ１４０３で管理している、ファイルサーバ２１０２〜２１０４に保存された一時ファイルとフォルダに関する情報を管理する。本明細書では、一時ファイル管理サービスサーバ１４０３で管理するファイルとフォルダとを合わせて「エンティティ」と呼ぶ。図２３（Ｂ）にパス管理ＤＢ２２３２で管理するデータの例を示す。ファイルＩＤ２３１０は、ファイルサーバ２１０２〜２１０４でエンティティを一意に識別するための情報である。ファイルグループＩＤ２３１１は、各エンティティを関連するジョブでグループ化するための情報である。従って、同一ジョブによって生成されたエンティティは同一のファイルグループＩＤ２３１１を有する。
【０１０４】
タスクＩＤ２３１２は、各エンティティに関連するタスクのタスクＩＤ、またはフォルダを表す「Ｆｏｌｄｅｒ」、またはスキャンサービスサーバ１０１からのリクエストにより格納されたファイルを表す「ｉｎｉｔ」のいずれかの値が入る。本明細書では、スキャンサービスサーバ１０１、ＦＡＸサービスサーバ１００からのリクエストにより格納されたファイルを「初期データ」と呼ぶ。つまり、初期データとは、ジョブの指示を受け付けた際の状態のデータを意味し、言い換えると、いずれのタスクサービスサーバにおいても当該ジョブを構成するタスクが未処理の状態のデータである。
【０１０５】
Ｎｏ２３１３は、各タスクによって生成されたファイルのファイル番号を示す。パス２３１４は、エンティティの格納先のフルパスを示し、Ｗｅｂアプリケーション部２２０１がバックエンド部２２０２を通じてエンティティにアクセスする際に使用する。ホスト名２３１５は、各エンティティの格納先のファイルサーバのホスト名を示す。作成日２３１６及び有効期限２３１７は、各エンティティの作成日及び有効期限を示す。テナントＩＤ２３１８は、各エンティティの所有者の属するテナントのテナントＩＤを表す。
【０１０６】
［ファイルサーバ］
ファイルサーバ２１０２〜２１０４は、一時ファイル管理サービスサーバ１４０３で管理するファイルを格納する。図２４にファイルサーバ２１０２〜２１０４のフォルダの階層構造の概念図を示す。
【０１０７】
共有フォルダ２４０１は共有であり、Ｗｅｂアプリケーション部２２０１がバックエンド部２２０２を通じてアクセス可能とする。共有フォルダ２４０１は各サーバに少なくとも１つ存在し、ファイルサーバ管理ＤＢ２２３１の共有フォルダ名２３０４と一致する。本実施形態では共有フォルダ２４０１の深さを“０”として扱う。共有フォルダ２４０１の直下にある、深さ“１”のフォルダ群２４３１のフォルダ２４１１、２４２１のフォルダ名はファイルグループＩＤ２３１１に対応する。また、フォルダ２４１１、２４２１の直下にある深さ“２”のフォルダ群２４３２のフォルダ２４１２、２４１３、２４２２、２４２４、２４２７のフォルダ名はタスクＩＤ２３１２に対応する。一時ファイル管理サービスサーバにて管理される一時ファイルは、深さ“２”のフォルダ群２４３２の直下に保存される。このときのファイル名はパス管理ＤＢ２２３２のＮｏ２３１３に対応する。
【０１０８】
［中央管理サーバ］
続いて、中央管理サーバ２１０１のＷｅｂアプリケーション部２２０１が持つ各機能について説明する。ファイル保存部２２１１は、スキャンサービスサーバ１０１、ＦＡＸサービスサーバ１００やタスクサービスサーバ１０３〜１０５からのリクエストに応じて、ファイルサーバ２１０２〜２１０４にファイルを多重化して保存する機能を実現する。多重度は、呼び出し元であるスキャンサービスサーバ１０１、ＦＡＸサービスサーバ１００やタスクサービスサーバ１０３〜１０５から１以上の整数を指定できる。例えば、多重度１の場合は、多重化せずに保存する場合と同義である。多重度２の場合は、同一のファイルを２のファイルにコピーして各ファイルサーバの共有フォルダにそれぞれ保存することを意味する。また多重度の最大値は、ファイルサーバ２１０２〜２１０４に存在する共有フォルダ数であり、それ以上は無視されるものとする。
【０１０９】
ファイル保存部２２１１は、スキャンサービスサーバ１０１もしくはＦＡＸサービスサーバ１００から初期データ保存のリクエストを受信すると、まず現在稼働中のファイルサーバの中から保存先のファイルサーバを選択する。この際、ファイル保存部２２１１は、深さ“１”のフォルダ群２４３１のフォルダ数が少ないファイルサーバから順に指定された多重度分だけ選択する。これは、いずれかのファイルサーバに保存するデータが偏ることを防止し、ファイルサーバ２１０２〜２１０４それぞれの容量をできるかぎり均一化するためである。スキャンサービスサーバ１０１およびＦＡＸサービスサーバ１００からの初期データ保存のリクエストには、多重度、タスクＩＤ、およびＮｏの情報が含まれる。ファイル保存部２２１１は、ファイルグループＩＤを生成し、ファイルグループＩＤ、タスクＩＤ、Ｎｏに基づいて保存先のファイルパスを生成する。そして、ファイル保存部２２１１は、後述のファイル保存処理を実行する。
【０１１０】
ファイル保存部２２１１がタスクサービスサーバ１０３〜１０５からファイル保存のリクエストを受信した場合、そのリクエストには多重度、ファイルグループＩＤ、タスクＩＤ、およびＮｏの情報が含まれる。ファイル保存部２２１１は、受信したリクエストに含まれるファイルグループＩＤと同一のファイルグループＩＤを有する初期データが保存されているファイルサーバをパス管理ＤＢ２２３２に格納された情報から特定する。ファイル保存部２２１１は、特定したファイルサーバの中から多重度分だけランダムにファイル保存先のファイルサーバとして選択する。ファイル保存部２２１１は、選択した各ファイルサーバに対して、ファイルグループＩＤ、タスクＩＤ、Ｎｏに基づいて保存先のファイルパスを決定し、ファイル保存処理を実行する。
【０１１１】
ファイル保存処理において、ファイル保存部２２１１がバックエンド部２２０２に対して保存先ファイルパスとファイルデータを送信する。バックエンド部２２０２は、保存先のファイルサーバとの通信の可否を確認し、通信可能である場合はファイルを保存先ファイルパスに保存する。さらに多重化してファイルを保存する場合は、上記の処理を多重度分繰り返す。バックエンド部２２０２は、全てのファイルの保存が完了したらファイル保存部２２１１に結果を返す。ファイル保存部２２１１は、パス管理ＤＢ２２３２に保存先ファイルパスに関するエントリを多重度分追加する。
【０１１２】
ファイル保存処理の完了後、初期データを保存した場合のみ、呼び出し元のスキャンサービスサーバ１０１あるいはＦＡＸサービスサーバ１００に対してファイルグループＩＤを返却する。
【０１１３】
ファイル取得部２２１２は、タスクサービスサーバ１０３〜１０５からのリクエストに応じてファイルサーバ２１０２〜２１０４に保存されたファイルをタスクサービスサーバ１０３〜１０５に返す。ファイル取得部２２１２は、タスクサービスサーバ１０３〜１０５からのリクエストを受信すると、リクエストに含まれるファイルグループＩＤやタスクＩＤ、Ｎｏの情報に基づいてパス管理ＤＢ２２３２に問い合わせ、格納先のファイルパスを取得する。ファイル取得部２２１２は、バックエンド部２２０２に対して格納先のファイパスを送信する。バックエンド部２２０２は、格納先のファイルサーバとの通信の可否を確認し、通信可能である場合はファイルデータをファイル取得部２２１２に返す。ファイル取得部２２１２は、バックエンド部２２０２から返却されたデータをタスクサービスサーバ１０３〜１０５に返す。
【０１１４】
ファイル削除部２２１３は、タスクサービスサーバ１０３〜１０５やジョブ管理サービスサーバ１４０２からのリクエストに応じてファイルサーバ２１０２〜２１０４に格納されたエンティティを削除する。ファイル削除部２２１３は、タスクサービスサーバ１０３〜１０５やジョブ管理サービスサーバ１４０２からのリクエストを受信すると、リクエストに含まれるファイルグループＩＤやタスクＩＤ、Ｎｏの情報に基づいてパス管理ＤＢ２２３２に問い合わせる。
【０１１５】
ファイル削除部２２１３は、取得した格納先のエンティティパスをバックエンド部２２０２に対して格納先のエンティティパスを送信する。バックエンド部２２０２は、格納先のファイルサーバとの通信の可否を確認し、通信可能である場合はエンティティを削除する。バックエンド部２２０２は削除が完了したら、ファイル削除部２２１３に結果を返す。エンティティの削除に成功したら、ファイル削除部２２１３は、パス管理ＤＢ２２３２から削除したエンティティに関するエントリを削除する。
【０１１６】
以上、本実施形態により、ジョブの処理内容に応じて、暗号化方式および暗号化のためのキーの生成方法を制御することができる。その結果、ＦＡＸサービスサーバ１００が投入するようなテナント外にデータを送信するジョブにおいて、ジョブに対して一意の暗号化ＩＤを使って暗号化キーを生成する。そのため、同一テナントに属する異なるジョブのデータがテナント外に誤送信される問題を防止できる。
【０１１７】
＜第２の実施形態＞
第１の実施形態では、タスクサービスサーバ１０３〜１０５がＳ１２２５、Ｓ１２３６、Ｓ１３２１、Ｓ１３３６にてデータの復号化に失敗した場合、リトライ判定部１８０７は図１９のリトライ判定処理に従って復号化処理を再実行するようにリトライ制御を行う。しかし、タスク失敗の原因がデータ復号化の失敗である場合、データ（ファイル）そのものが復号化の対象として間違っている可能性がある。この場合、タスクのリトライを行なっても再度データの復号化にて失敗する。従って、リソースを無駄に消費するこのリトライ処理は不要である。
【０１１８】
本実施形態では、復号化失敗が原因のリトライの場合、タスクサービスサーバ１０３〜１０５が同一のデータを用いたリトライを行わないようにすることで、無駄なリソースの消費を防ぐ。本実施形態では、復号化した対象のデータの状態に応じてリトライ制御の内容を切り替える。具体的には、初期データを利用するタスクの場合、つまり、初期データに対して復号化が失敗した場合、初期データは多重化されているため、復号化に失敗したデータとは別のデータ（多重化された別のデータ）を用いてタスクのリトライを行う。一方、初期データ以外のデータを利用するタスクの場合、つまり、すでに他のタスクサービスサーバにて処理が行われた結果得られたデータに対して復号化が失敗した場合、現在のタスクは復号化可能なデータが存在しない。そのため、１つ前のタスクからリトライを行う。なお、第２の実施形態において省略されている部分は、第１の実施形態に記載された処理が実行される。
【０１１９】
図２５は、スキャンサービスサーバ１０１またはＦＡＸサービスサーバ１００からジョブが投入された後、復号化の失敗によりタスクサービスサーバの処理が失敗した場合のリトライに関するタスク処理の流れを示している。なお、ジョブのリトライ及びタスク、ジョブのリトライ回数上限値に達した場合の失敗処理に関しては、図２５では省略している。
【０１２０】
まず、初期データを利用するタスクサービスサーバ１０３が、ファイルの復号化が原因で失敗した場合のジョブ処理の流れを説明する。
【０１２１】
処理が開始されると、タスクサービスサーバ１０３は、Ｓ２５０１にてジョブ管理サービスサーバ１４０２に対して処理対象ジョブの取得リクエストを送信する。ジョブ管理サービスサーバ１４０２は、Ｓ２５０２にてリクエストに対して処理対象ジョブを応答する。
【０１２２】
続いてタスクサービスサーバ１０３は、Ｓ２５０３にて、Ｓ２５０２にて取得したジョブが、復号化失敗が原因のリトライ実行ジョブか否かを判定する。なお不図示であるが、復号化失敗が原因のリトライ実行ジョブか否かは、図２０（Ａ）に示したジョブ情報管理ＤＢ１８０２がジョブ情報の一要素として復号化に失敗したファイルのパスを管理することで判断する。
【０１２３】
復号化失敗が原因のリトライ実行ジョブではないと判定された場合（Ｓ２５０３にてＮＯ）、タスクサービスサーバ１０３は中央管理サーバ２１０１に対して処理対象ファイルの取得リクエストを行う（Ｓ２５０４）。中央管理サーバ２１０１は、Ｓ２５０５にて、ファイルサーバ２１０２に対しファイル読込リクエストを行う。ファイルサーバ２１０２は、Ｓ２５０６にて、タスクサービスサーバ１０３に対してリクエストされたファイルを返却する。
【０１２４】
復号化失敗が原因のリトライ実行ジョブであると判定された場合（Ｓ２５０３にてＹＥＳ）、タスクサービスサーバ１０３は中央管理サーバ２１０１に対して処理対象ファイルの取得リクエストを行う（Ｓ２５０７）。このとき、タスクサービスサーバ１０３は、復号化に失敗したファイルとは別ファイル（多重化されたファイル）をリクエストする。
【０１２５】
中央管理サーバ２１０１は、Ｓ２５０８にて、復号化に失敗したファイルとは別のファイル（多重化されたファイル）が、ファイルサーバ２１０２〜２１０４のいずれかに存在するか否かを判定する。
【０１２６】
別のファイルが存在しない場合（Ｓ２５０８にてＮＯ）、中央管理サーバ２１０１は、ファイルが存在しない旨のレスポンスをタスクサービスサーバ１０３に返す。タスクサービスサーバ１０３は、Ｓ２５１１にて、ジョブ管理サービスサーバ１４０２にタスクの失敗を通知する。ジョブ管理サービスサーバ１４０２は、Ｓ２５１２にて、ジョブ失敗処理を行い、ジョブ情報管理ＤＢ１８０２のステータス２００５をエラー発生（２）に更新して、処理を終了する。
【０１２７】
別のファイルが存在する場合（Ｓ２５０８にてＹＥＳ）、中央管理サーバ２１０１は、Ｓ２５０９にて、別ファイルが存在するファイルサーバ（ここではファイルサーバ２１０３として説明する）に対してファイル読込リクエストを行う。ファイルサーバ２１０３は、Ｓ２５１０にて、タスクサービスサーバ１０３に対してファイルを返却する。タスクサービスサーバ１０３は、Ｓ２５１３にて、返却されたファイルを復号化する。
【０１２８】
タスクサービスサーバ１０３は、Ｓ２５１４にて、ファイルの復号化が成功したか否かを判定する。ファイルの復号化が成功しなかった場合（Ｓ２５１４にてＮＯ）、Ｓ２５１５にて、タスクサービスサーバ１０３はジョブ管理サービスサーバ１４０２に対して失敗通知処理を行う。通知を受けたジョブ管理サービスサーバ１４０２は、Ｓ２５１６にて、復号化に失敗したファイルのパスをジョブ情報管理ＤＢ１８０２に書き込む。そして、Ｓ２５１７にて、ジョブ管理サービスサーバ１４０２は、リトライ判定処理を行う。なお、図２５に示すリトライ判定処理は、第１の実施形態の図１９に示したリトライ判定処理と同様であるため、ここでは詳細な説明は省略する。
【０１２９】
図１９において、Ｓ１９０１にてタスクのリトライ回数が上限以下であった場合は、Ｓ２５０１に戻り、再びタスクサービスサーバ１０３がリトライ処理を行う。また、Ｓ１９０１にてタスクのリトライ回数が上限以下でない場合については、図２５では省略している。
【０１３０】
ファイルの復号化が成功した場合（Ｓ２５１４にてＹＥＳ）、タスクサービスサーバ１０３は、Ｓ２５２１にて、タスク処理を行う。そして、タスクサービスサーバ１０３は、Ｓ２５２２にて、タスクの処理結果ファイルを暗号化する。タスクサービスサーバ１０３は、Ｓ２５２３にて、中央管理サーバ２１０１に対してタスクの処理結果ファイルの保存リクエストを行う。保存リクエストを受けた中央管理サーバ２１０１は、Ｓ２５２４にて、ファイルサーバ２１０３へタスクの処理結果ファイルの書込リクエストを行う。ファイルサーバ２１０３は、Ｓ２５２５にて、タスクの処理結果ファイルの書き込み処理を行う。タスクの処理結果ファイルの保存処理の終了後、Ｓ２５２６にて、タスクサービスサーバ１０３は、ジョブ管理サービスサーバ１４０２に対してタスクの正常終了を通知する。
【０１３１】
Ｓ２５２７にて、ジョブ管理サービスサーバ１４０２は、ジョブ情報管理ＤＢ１８０２のカレントタスクＩＤ２００４を更新する。そして、ジョブ管理サービスサーバ１４０２は、Ｓ２５２８にて、カレントタスクリトライ回数２０１１を“０”にセットする。
【０１３２】
以上が、初期データを利用するタスクサービスサーバ１０３が、ファイルの復号化が原因で失敗した場合に関するジョブ処理の流れである。
【０１３３】
続いて、他タスク（ここではタスクサービスサーバ１０３で処理されたタスクとする）の処理結果データを利用するタスクサービスサーバ１０４が、ファイルの復号化が原因で失敗した場合に関するジョブ処理の流れを説明する。なお、タスクサービスサーバ１０４の代わりにタスクサービスサーバ１０５が処理する場合であっても同様である。
【０１３４】
Ｓ２５３１にて、タスクサービスサーバ１０４は、ジョブ管理サービスサーバ１４０２に対して処理対象ジョブの取得リクエストを行う。この取得リクエストに対し、ジョブ管理サービスサーバ１４０２は、Ｓ２５３２にて、処理対象ジョブを応答する。
【０１３５】
次に、タスクサービスサーバ１０４は、Ｓ２５３３にて、中央管理サーバ２１０１に対して処理対象ファイルの取得リクエストを行う。中央管理サーバ２１０１は、Ｓ２５３４にて、ファイルサーバ２１０２に対しファイル読込リクエストを行う。ファイルサーバ２１０２はＳ２５３５にて、リクエストされたファイルをタスクサービスサーバ１０４へ返却する。タスクサービスサーバ１０４は、Ｓ２５３６にて、返却されたファイルを復号化する。
【０１３６】
タスクサービスサーバ１０４は、Ｓ２５４１にて、ファイルの復号化が成功したか否かを判定する。ファイルの復号化が失敗した場合（Ｓ２５４１にてＮＯ）、タスクサービスサーバ１０４は、Ｓ２５４２にて、ジョブ管理サービスサーバ１４０２に対して失敗通知処理を行う。通知を受けたジョブ管理サービスサーバ１４０２は、Ｓ２５４３にて、ジョブ情報管理ＤＢ１８０２のカレントタスクＩＤ２００４を１つ前のタスク（ここではタスクサービスサーバ１０３に対応するタスクＩＤ）に更新する。このように１つ前のタスクに戻すことで、タスクサービスサーバ１０４は、復号化に失敗したファイルの１つ前の正常なファイルを再取得し、復号化を行う。これにより、復号化が成功し、処理が継続できる可能性がある。
【０１３７】
ジョブ管理サービスサーバ１４０２は、Ｓ２５４４にて、リトライ判定処理を行う。タスクのリトライ回数が上限以下である場合（Ｓ１９０１にてＹＥＳ）、Ｓ２５４５にてカレントタスクリトライ回数２０１１を０に設定する。その後、Ｓ２５０１に戻り、再びタスクサービスサーバ１０３は、リトライ処理を行う。また、前述のようにタスクのリトライ回数が上限以下でない場合については、図２５では説明を省略している。
【０１３８】
ファイルの復号化が成功した場合（Ｓ２５４１にてＹＥＳ）、タスクサービスサーバ１０４、１０５は、Ｓ２５５１にて、タスク処理を行う。次にタスクサービスサーバ１０４、１０５は、Ｓ２５５２にて、ジョブ管理サービスサーバ１４０２に対してタスクの正常終了を通知する。その後Ｓ２５５３にて、ジョブ管理サービスサーバ１４０２は、ジョブ情報管理ＤＢ１８０２のステータス２００５を正常終了（−１）に更新する。
【０１３９】
以上、他タスクの処理結果データを利用するタスクサービスサーバ１０４、１０５がファイルの復号化が原因で失敗した場合のジョブ処理の流れである。
【０１４０】
本実施形態により、第一の実施形態の効果に加え、復号化が原因データタスクサービスの処理が失敗した際に無駄なリトライ処理が行わず、メモリやＣＰＵなどのリソースを有効活用できる。
【０１４１】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014036335.tif 000003
【図２】
2014036335.tif 000004
【図３】
2014036335.tif 000005
【図４】
2014036335.tif 000006
【図５】
2014036335.tif 000007
【図６】
2014036335.tif 000008
【図７】
2014036335.tif 000009
【図８】
2014036335.tif 000010
【図９】
2014036335.tif 000011
【図１０】
2014036335.tif 000012
【図１１】
2014036335.tif 000013
【図１２】
2014036335.tif 000014
【図１３】
2014036335.tif 000015
【図１４】
2014036335.tif 000016
【図１５】
2014036335.tif 000017
【図１６】
2014036335.tif 000018
【図１７】
2014036335.tif 000019
【図１８】
2014036335.tif 000020
【図１９】
2014036335.tif 000021
【図２０】
2014036335.tif 000022
【図２１】
2014036335.tif 000023
【図２２】
2014036335.tif 000024
【図２３】
2014036335.tif 000025
【図２４】
2014036335.tif 000026
【図２５】
2014036335.tif 000027