(57)【特許請求の範囲】
【請求項１】
１以上の情報処理装置を含む情報処理システムであって、
電子データを格納するフォルダをそれぞれ有する複数の外部サービス毎に、該外部サービスを識別する識別情報と、該外部サービスからフォルダの情報を取得するための取得方法に関する情報とを関連付けて記憶する第１の記憶手段と、
前記複数の外部サービスのうちの一の外部サービスから該一の外部サービスが有するフォルダの情報を取得する要求を、前記情報処理システムにネットワークを介して接続される機器から受け付ける受付手段と、
前記受付手段で前記要求を受け付けると、該要求に係る前記一の外部サービスを識別する識別情報と関連付けて前記第１の記憶手段に記憶されている前記フォルダの情報を取得するための取得方法に関する情報に基づいて、該一の外部サービスからフォルダの情報を取得する取得方法を特定する特定手段と、
前記特定手段により特定された前記取得方法に基づき、前記一の外部サービスから前記フォルダの情報を取得する第１の取得手段と、
前記第１の取得手段で取得したフォルダの情報を、前記要求の要求元の前記機器に送信する送信手段と
を有し、
前記第１の取得手段は、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記外部サービスから取得する第１の取得方法である場合、前記指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記一の外部サービスから取得する一方、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記外部サービスから取得する第２の取得方法である場合、前記指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記一の外部サービスから取得する、情報処理システム。
【請求項２】
フォルダの情報を記憶する第２の記憶手段を有し、
前記第１の取得手段は、
前記特定手段により特定された前記取得方法が、前記第１の取得方法である場合、前記指定されたフォルダの階層以下の階層のフォルダの情報を、前記所定の数の階層毎に繰り返し取得し、該取得されたフォルダの情報を前記第２の記憶手段に記憶させる、請求項１記載の情報処理システム。
【請求項３】
前記第１の取得手段は、
さらに、前記指定されたフォルダの階層以下の階層のフォルダの情報を、所定の優先順に従って、前記所定の数の階層毎に繰り返し取得し、該取得されたフォルダの情報を前記第２の記憶手段に記憶させる、請求項２記載の情報処理システム。
【請求項４】
前記特定手段により特定された前記取得方法に基づき、前記一の外部サービスから前記フォルダの情報を取得する第２の取得手段を有し、
前記第１の取得手段及び第２の取得手段は、
前記特定手段により特定された前記取得方法が、前記第１の取得方法である場合、前記指定されたフォルダの階層以下の階層のフォルダの情報を、それぞれ相補的に、前記所定の数の階層毎に繰り返し取得し、該それぞれ取得したフォルダの情報を前記第２の記憶手段に記憶させる、請求項２又は３記載の情報処理システム。
【請求項５】
フォルダの情報を記憶する第３の記憶手段を有し、
前記第３の記憶手段に記憶されるフォルダの情報は、所定のタイミングで前記第２の記憶手段に記憶されているフォルダの情報と内容の同期又は／及び内容の補完が行われる、請求項２ないし４のいずれか１項に記載の情報処理システム。
【請求項６】
前記送信手段は、
前記一の外部サービスから取得された前記フォルダの情報又は前記第２の記憶手段に記憶されているフォルダ情報のいずれか一方を、前記要求の要求元の前記機器に送信する、請求項２ないし５のいずれか１項に記載の情報処理システム。
【請求項７】
前記第２の記憶手段に記憶されるフォルダの情報は、各フォルダを一意に識別する識別情報と、該フォルダを含むフォルダである親フォルダの前記外部サービスにおける格納先を示すパス情報とを含む、請求項２ないし６のいずれか１項に記載の情報処理システム。
【請求項８】
外部サービスを提供するサービス提供装置と、該サービス提供装置と連携して前記外部サービスに対して所定の処理を要求する外部サービス連携装置とを有する情報処理システムであって、
前記外部サービス連携装置が、電子データを格納するフォルダをそれぞれ有する複数の外部サービス毎に、該外部サービスを識別する識別情報と、該外部サービスからフォルダの情報を取得するための取得方法に関する情報とを関連付けて記憶する第１の記憶手段と、
前記サービス提供装置が、前記複数の外部サービスのうちの一の外部サービスから該一の外部サービスが有するフォルダの情報を取得する要求を、前記情報処理システムにネットワークを介して接続される機器から受け付ける受付手段と、
前記サービス提供装置が、前記受付手段で前記要求を受け付けると、該要求に係る前記一の外部サービスを識別する識別情報と関連付けて前記第１の記憶手段に記憶されている前記フォルダの情報を取得するための取得方法に関する情報に基づいて、該一の外部サービスからフォルダの情報を取得する取得方法を特定する特定手段と、
前記外部サービス連携装置が、前記特定手段により特定された前記取得方法に基づき、前記一の外部サービスから前記フォルダの情報を取得する第１の取得手段と、
前記サービス提供装置が、前記第１の取得手段で取得したフォルダの情報を、前記要求の要求元の前記機器に送信する送信手段と
を有し、
前記第１の取得手段は、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記外部サービスから取得する第１の取得方法である場合、前記指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記一の外部サービスから取得する一方、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記外部サービスから取得する第２の取得方法である場合、前記指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記一の外部サービスから取得する、情報処理システム。
【請求項９】
情報処理装置であって、
電子データを格納するフォルダをそれぞれ有する複数の外部サービス毎に、該外部サービスを識別する識別情報と、該外部サービスからフォルダの情報を取得するための取得方法に関する情報とを関連付けて記憶する第１の記憶手段と、
前記複数の外部サービスのうちの一の外部サービスから該一の外部サービスが有するフォルダの情報を取得する要求を、前記情報処理装置にネットワークを介して接続される機器から受け付ける受付手段と、
前記受付手段で前記要求を受け付けると、該要求に係る前記一の外部サービスを識別する識別情報と関連付けて前記第１の記憶手段に記憶されている前記フォルダの情報を取得するための取得方法に関する情報に基づいて、該一の外部サービスからフォルダの情報を取得する取得方法を特定する特定手段と、
前記特定手段により特定された前記取得方法に基づき、前記一の外部サービスから前記フォルダの情報を取得する第１の取得手段と、
前記第１の取得手段で取得したフォルダの情報を、前記要求の要求元の前記機器に送信する送信手段と
を有し、
前記第１の取得手段は、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記外部サービスから取得する第１の取得方法である場合、前記指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記一の外部サービスから取得する一方、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記外部サービスから取得する第２の取得方法である場合、前記指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記一の外部サービスから取得する、情報処理装置。
【請求項１０】
電子データを格納するフォルダをそれぞれ有する複数の外部サービス毎に、該外部サービスを識別する識別情報と、該外部サービスからフォルダの情報を取得するための取得方法に関する情報とを関連付けて記憶する記憶手段と、１以上の情報処理装置とを含む情報処理システムにおける情報処理方法であって、
前記複数の外部サービスのうちの一の外部サービスから該一の外部サービスが有するフォルダの情報を取得する要求を、前記情報処理システムにネットワークを介して接続される機器から受け付ける受付手順と、
前記受付手順で前記要求を受け付けると、該要求に係る前記一の外部サービスを識別する識別情報と関連付けて前記記憶手段に記憶されている前記フォルダの情報を取得するための取得方法に関する情報に基づいて、該一の外部サービスからフォルダの情報を取得する取得方法を特定する特定手順と、
前記特定手順により特定された前記取得方法に基づき、前記一の外部サービスから前記フォルダの情報を取得する取得手順と、
前記取得手順で取得したフォルダの情報を、前記要求の要求元の前記機器に送信する送信手順と
を有し、
前記取得手順は、
前記特定手順により特定された前記取得方法が、指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記外部サービスから取得する第１の取得方法である場合、前記指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記一の外部サービスから取得する一方、
前記特定手順により特定された前記取得方法が、指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記外部サービスから取得する第２の取得方法である場合、前記指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記一の外部サービスから取得する、情報処理方法。
【請求項１１】
電子データを格納するフォルダをそれぞれ有する複数の外部サービス毎に、該外部サービスを識別する識別情報と、該外部サービスからフォルダの情報を取得するための取得方法に関する情報とを関連付けて記憶する記憶手段を有する情報処理装置を、
前記複数の外部サービスのうちの一の外部サービスから該一の外部サービスが有するフォルダの情報を取得する要求を、前記情報処理装置にネットワークを介して接続される機器から受け付ける受付手段、
前記受付手段で前記要求を受け付けると、該要求に係る前記一の外部サービスを識別する識別情報と関連付けて前記記憶手段に記憶されている前記フォルダの情報を取得するための取得方法に関する情報に基づいて、該一の外部サービスからフォルダの情報を取得する取得方法を特定する特定手段、
前記特定手段により特定された前記取得方法に基づき、前記一の外部サービスから前記フォルダの情報を取得する取得手段、
前記取得手段で取得したフォルダの情報を、前記要求の要求元の前記機器に送信する送信手段
として機能させ、
前記取得手段は、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記外部サービスから取得する第１の取得方法である場合、前記指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記一の外部サービスから取得する一方、
前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記外部サービスから取得する第２の取得方法である場合、前記指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記一の外部サービスから取得する、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティング等により多種多様な外部サービスが提供されるようになった。例えば、外部ストレージに電子データを保管する外部サービスが知られている。このような外部サービスを利用するために、クライアント端末で管理されている電子データを、ユーザが指定した外部ストレージに保管させる技術が従来より知られている（例えば特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記の従来技術においては、外部ストレージが提供するＷｅｂＡＰＩ（Application Programming Interface）によっては、ユーザの快適な利用が損なわれる場合があった。例えば、外部ストレージによっては、外部ストレージ上の指定されたフォルダ以下の階層のフォルダ情報を一括して取得するＷｅｂＡＰＩが提供されていない場合がある。このような外部ストレージの場合、指定されたフォルダ以下の階層のフォルダ情報を、例えば１階層毎に取得することとなり、ユーザは、すべてのフォルダ情報が取得されるまで待たされることとなる。
【０００４】
本発明の一実施形態は、上記の点に鑑みてなされたもので、外部サービスを利用するユーザの快適な利用を図ることを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本発明の一実施形態は、１以上の情報処理装置を含む情報処理システムであって、電子データを格納するフォルダをそれぞれ有する複数の外部サービス毎に、該外部サービスを識別する識別情報と、該外部サービスからフォルダの情報を取得するための取得方法に関する情報とを関連付けて記憶する第１の記憶手段と、前記複数の外部サービスのうちの一の外部サービスから該一の外部サービスが有するフォルダの情報を取得する要求を、前記情報処理システムにネットワークを介して接続される機器から受け付ける受付手段と、前記受付手段で前記要求を受け付けると、該要求に係る前記一の外部サービスを識別する識別情報と関連付けて前記第１の記憶手段に記憶されている前記フォルダの情報を取得するための取得方法に関する情報に基づいて、該一の外部サービスからフォルダの情報を取得する取得方法を特定する特定手段と、前記特定手段により特定された前記取得方法に基づき、前記一の外部サービスから前記フォルダの情報を取得する第１の取得手段と、前記第１の取得手段で取得したフォルダの情報を、前記要求の要求元の前記機器に送信する送信手段とを有し、前記第１の取得手段は、前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記外部サービスから取得する第１の取得方法である場合、前記指定されたフォルダの階層以下の所定の数の階層のフォルダの情報を前記一の外部サービスから取得する一方、前記特定手段により特定された前記取得方法が、指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記外部サービスから取得する第２の取得方法である場合、前記指定されたフォルダの階層以下のすべての階層のフォルダの情報を前記一の外部サービスから取得する、ことを特徴とする。
【発明の効果】
【０００６】
本発明の一実施形態によれば、外部サービスを利用するユーザの快適な利用を図ることができる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係る情報処理システムの一例の構成図である。
【図２】コンピュータの一例のハードウェア構成図である。
【図３】第１の実施形態に係る画像形成装置の一例のハードウェア構成図である。
【図４】第１の実施形態に係る情報処理システムの一例の処理ブロック図である。
【図５】ストレージサービス情報の一例の構成図である。
【図６】第１の実施形態に係るスキャン配信処理の一例のシーケンス図である。
【図７】ストレージサービスにおけるフォルダの階層構造の一例について説明するための図である。
【図８】ストレージサービス情報の一例を説明するための図である。
【図９】フォルダ情報取得要求の一例を説明するための図である。
【図１０】フォルダ情報の一例を説明するための図である。
【図１１】フォルダ選択画面の一例のイメージ図である。
【図１２】第１の実施形態に係るスキャン配信処理の他の例のシーケンス図である。
【図１３】フォルダ情報が取得される階層の一例について説明するための図である。
【図１４】フォルダ情報の他の例を説明するための図である。
【図１５】第２の実施形態に係る情報処理システムにおけるフォルダ情報の取得を説明するための図である。
【図１６】第２の実施形態に係る情報処理システムの一例の処理ブロック図である。
【図１７】第２の実施形態に係るスキャン配信処理の一例のシーケンス図である。
【図１８】フォルダ情報が取得される階層の他の例について説明するための図である。
【図１９】第３の実施形態に係る情報処理システムの一例の構成図である。
【図２０】第３の実施形態に係るデジタルカメラの一例のハードウェア構成図である。
【図２１】第３の実施形態に係る情報処理システムの一例の処理ブロック図である。
【図２２】第３の実施形態に係るデータ配信処理の一例のシーケンス図である。
【図２３】配信画像の選択画面及びフォルダ選択画面の一例のイメージ図である。
【図２４】第３の実施形態に係るデータ配信処理の他の例のシーケンス図である。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【０００９】
［第１の実施形態］
＜システム構成＞
まず、第１の実施形態に係る情報処理システム１のシステム構成について説明する。図１は、第１の実施形態に係る情報処理システムの一例の構成図である。図１に示される情報処理システム１において、サービス提供環境Ｅ２、ユーザ環境Ｅ１及び外部ストレージシステム４０等は、インターネット等の広域的なネットワークＮ１を介して通信可能に接続されている。
【００１０】
サービス提供環境Ｅ２は、ネットワークを介してクラウドサービス等の外部サービスを提供するシステム環境である。なお、本実施の形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、ＡＳＰ（Application Service Provider）によって提供されるサービスやＷｅｂサービス等、ネットワークを介して提供されるサービスに関して本実施の形態が適用されてもよい。
【００１１】
サービス提供環境Ｅ２は、一台以上の情報処理装置で実現されるサービス提供装置２０と、一台以上の情報処理装置で実現される外部サービス連携装置３０とを有する。ただし、サービス提供装置２０及び外部サービス連携装置３０は、一台の情報処理装置で実現されていてもよい。
【００１２】
サービス提供装置２０は、ネットワークを介して所定のサービスを提供する。例えば、サービス提供装置２０は、ユーザ環境Ｅ１の画像形成装置１０において原稿をスキャンすることにより生成された画像データを、指定された保存先（外部ストレージシステム４０上の指定されたフォルダ）に保存するサービスを提供する。
【００１３】
また、外部サービス連携装置３０は、サービス提供装置２０と外部ストレージシステム４０との仲介を行う。例えば、外部サービス連携装置３０は、サービス提供装置２０からの要求に応じて、画像データの保存先のフォルダを指定するためのフォルダ情報を、外部ストレージシステム４０から取得する。
【００１４】
本実施形態では、サービス提供環境Ｅ２は、クラウドサービスの一例として、外部ストレージシステム４０と連携してクラウドストレージサービス（以降、単に「ストレージサービス」という）を提供するものとして説明する。より具体的には、後述するように、画像形成装置１０で原稿をスキャンして生成された画像データを、ストレージサービスを提供する外部ストレージシステム４０の指定されたフォルダに保存する場合について説明する。ただし、サービス提供環境Ｅ２により提供されるクラウドサービスは、ストレージサービスに限られない。例えば、画像形成装置１０で原稿をスキャンして生成された画像データをＯＣＲ（Optical Character Reader）処理するクラウドサービスや所定の言語で記載されたテキストデータを他の言語に翻訳処理するクラウドサービス等であってもよい。
【００１５】
なお、サービス提供装置２０の全部又は一部、外部サービス連携装置３０の全部又は一部は、それぞれユーザ環境Ｅ１に設置されていてもよい。すなわち、サービス提供装置２０及び外部サービス連携装置３０を構成するそれぞれの情報処理装置の全部又は一部は、ユーザ環境Ｅ１に包含されていてもよい。
【００１６】
ユーザ環境Ｅ１は、例えば画像形成装置１０を使用するユーザである企業等におけるシステム環境である。ユーザ環境Ｅ１において、一台以上の画像形成装置１０がＬＡＮ（Local Area Network）等のネットワークに接続されている。また、ユーザ環境Ｅ１には、例えば、ユーザがストレージサービスにおける自身のデフォルト（標準）の保存先の設定やアカウントの設定等を行うためのＰＣ端末等が含まれていてもよい。
【００１７】
なお、本実施形態に係る画像形成装置１０は、スキャン機能を有する画像形成装置である。ただし、スキャン機能以外に、印刷、コピー、又はファクス（ＦＡＸ）通信等の機能を有する複合機が画像形成装置１０として用いられてもよい。
【００１８】
外部ストレージシステム４０は、ネットワークを介してストレージサービス（又はオンラインストレージ）と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム４０のストレージの記憶領域を貸し出すサービスである。本実施形態では、外部ストレージシステム４０によって貸し出される記憶領域は、サービス提供装置２０によって画像形成装置１０に提供されるストレージサービスにおいて、画像データの保存先となる。すなわち、画像形成装置１０において生成された画像データは、外部ストレージシステム４０の記憶領域に割り当てられたフォルダに保存される。以降では、複数の外部ストレージシステム４０について、各々を区別するときは、外部ストレージシステム４０１、外部ストレージシステム４０２、・・・と記載する。
【００１９】
なお、外部ストレージシステム４０は、複数台の情報処理装置によって実現されるシステムであってもよい。また、図１に示される情報処理システム１の構成は一例であって、他の構成であってもよい。
【００２０】
＜ハードウェア構成＞
次に、第１の実施形態に係る情報処理システム１のハードウェア構成について説明する。
【００２１】
≪サービス提供装置、外部サービス連携装置≫
第１の実施形態に係るサービス提供装置２０及び外部サービス連携装置３０は、例えば図２に示すようなハードウェア構成により実現される。図２は、コンピュータの一例のハードウェア構成図である。図２のコンピュータ１００は、入力装置１０１と、表示装置１０２と、外部Ｉ／Ｆ１０３と、ＲＡＭ（Random Access Memory）１０４と、ＲＯＭ（Read Only Memory）１０５と、ＣＰＵ（Central Processing Unit）１０６と、通信Ｉ／Ｆ１０７と、ＨＤＤ（Hard Disk Drive）１０８とを備え、それぞれがバスＢで接続されている。
【００２２】
入力装置１０１はキーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置１０２はディスプレイ等を含み、コンピュータ１００による処理結果を表示する。なお、入力装置１０１及び表示装置１０２は必要なときに接続して利用する形態であってもよい。
【００２３】
通信Ｉ／Ｆ１０７はコンピュータ１００をネットワークＮ１に接続するインタフェースである。これにより、コンピュータ１００は通信Ｉ／Ｆ１０７を介してデータ通信を行うことができる。
【００２４】
また、ＨＤＤ１０８は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、コンピュータ１００全体を制御する基本ソフトウェアであるＯＳ（Operating System）、及びＯＳ上において各種機能を提供するアプリケーションソフトウェア等がある。なお、コンピュータ１００はＨＤＤ１０８に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであってもよい。
【００２５】
ＨＤＤ１０８は格納しているプログラムやデータを所定のファイルシステム及び／又はＤＢにより管理している。外部Ｉ／Ｆ１０３は、外部装置とのインタフェースである。外部装置には、記録媒体１０３ａ等がある。
【００２６】
これにより、コンピュータ１００は外部Ｉ／Ｆ１０３を介して記録媒体１０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体１０３ａにはフレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００２７】
ＲＯＭ１０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ１０５にはコンピュータ１００の起動時に実行されるＢＩＯＳ、ＯＳ設定、及びネットワーク設定等のプログラムやデータが格納されている。ＲＡＭ１０４はプログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。
【００２８】
ＣＰＵ１０６は、ＲＯＭ１０５やＨＤＤ１０８等の記憶装置からプログラムやデータをＲＡＭ１０４上に読み出し、処理を実行することで、コンピュータ１００全体の制御や機能を実現する演算装置である。サービス提供装置２０及び外部サービス連携装置３０は上記ハードウェア構成のコンピュータ１００により、後述する各種処理を実現できる。
【００２９】
≪画像形成装置≫
第１の実施形態に係る画像形成装置１０は、例えば図３に示されるようなハードウェア構成により実現される。図３は、第１の実施形態に係る画像形成装置の一例のハードウェア構成図である。図３に示される画像形成装置１０は、コントローラ２０１と、操作パネル２０２と、外部Ｉ／Ｆ２０３と、通信Ｉ／Ｆ２０４と、スキャナ２０５とを備える。
【００３０】
コントローラ２０１はＣＰＵ２１１と、ＲＡＭ２１２と、ＲＯＭ２１３と、ＮＶＲＡＭ２１４と、ＨＤＤ２１５とを備える。ＲＯＭ２１３は、各種プログラムやデータが格納されている。ＲＡＭ２１２はプログラムやデータを一時保持する。ＮＶＲＡＭ２１４は、例えば設定情報等が格納されている。また、ＨＤＤ２１５は各種プログラムやデータが格納されている。
【００３１】
ＣＰＵ２１１は、ＲＯＭ２１３やＮＶＲＡＭ２１４、ＨＤＤ２１５等からプログラムやデータ、設定情報等をＲＡＭ２１２上に読み出し、処理を実行することで、画像形成装置１０全体の制御や機能を実現する。
【００３２】
操作パネル２０２はユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部Ｉ／Ｆ２０３は外部装置とのインタフェースである。外部装置には、記録媒体２０３ａ等がある。これにより、画像形成装置１０は外部Ｉ／Ｆ２０３を介して記録媒体２０３ａの読み取り及び／又は書き込みを行うことができる。記録媒体２０３ａにはＩＣカード、フレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、ＵＳＢメモリ等がある。
【００３３】
通信Ｉ／Ｆ２０４は、画像形成装置１０をネットワークＮ１に接続するインタフェースである。これにより、画像形成装置１０は通信Ｉ／Ｆ２０４を介してデータ通信を行うことができる。スキャナ２０５は原稿から画像データ（電子データ）を読み取るための読取装置である。
【００３４】
＜ソフトウェア構成＞
次に、第１の実施形態に係る情報処理システム１のソフトウェア構成について説明する。第１の実施形態に係る情報処理システム１は、例えば図４に示されるような処理ブロックにより実現することができる。図４は、第１の実施形態に係る情報処理システムの一例の処理ブロック図である。
【００３５】
画像形成装置１０は、表示部１１と、スキャン実行部１４とを有する。また、表示部１１は、ユーザ操作受付部１２と、フォルダ情報表示部１３とを有する。
【００３６】
ユーザ操作受付部１２は、例えばＣＰＵ２１１、操作パネル２０２等により実現され、ユーザによる各種操作を受け付ける。例えば、ユーザ操作受付部１２は、画像データの保存先のストレージサービスの指定操作、この指定されたストレージサービスにおける画像データの保存先のフォルダの選択（指定）操作、原稿のスキャン実行操作等の各種操作を受け付ける。
【００３７】
フォルダ情報表示部１３は、例えばＣＰＵ２１１、操作パネル２０２等により実現され、サービス提供装置２０から受け取ったフォルダ情報に基づき、画像データの保存先となるフォルダを選択（指定）するためのフォルダ選択画面を表示させる。
【００３８】
スキャン実行部１４は、例えばＣＰＵ２１１、スキャナ２０５等により実現され、原稿をスキャンして画像データを生成する。また、スキャン実行部１４は、生成した画像データを指定されたストレージサービスの指定された保存先フォルダに保存させるための要求（アップロード要求）を、サービス提供装置２０に対して行う。
【００３９】
サービス提供装置２０は、スキャン制御部２１を有する。また、スキャン制御部２１は、取得方法特定部２２と、スキャン配信部２３とを有する。なお、サービス提供装置２０は、例えば、ストレージサービスから電子データを取得（ダウンロード）して画像形成装置１０で印刷等を行うサービスを提供するプリント制御部等を有していてもよい。
【００４０】
取得方法特定部２２は、例えばＣＰＵ１０６等により実現され、後述するストレージサービス情報３５Ｄを参照して、フォルダ情報を外部ストレージシステム４０から取得するための取得方法を特定する。
【００４１】
一般に、フォルダ情報は、外部ストレージシステム４０が公開するＷｅｂＡＰＩを用いて取得することができるが、外部ストレージシステム４０により公開されたＷｅｂＡＰＩによってフォルダ情報の取得方法が異なる。例えば、指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するＷｅｂＡＰＩを公開している外部ストレージシステム４０１が存在する一方、このようなＷｅｂＡＰＩは公開しておらず、指定されたフォルダ以下の１階層のフォルダを含むフォルダ情報のみを取得するＷｅｂＡＰＩを公開している外部ストレージシステム４０２も存在する。したがって、本実施形態では、取得方法特定部２２により、該当の外部ストレージシステム４０からフォルダ情報を取得するための取得方法が特定される。
【００４２】
以降では、外部ストレージシステム４０によって公開された、フォルダ情報を取得するためのＷｅｂＡＰＩは、上記に例示した「指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するＷｅｂＡＰＩ」又は「指定されたフォルダ以下の１階層のフォルダを含むフォルダ情報のみを取得するＷｅｂＡＰＩ」のいずれかであるものとする。ただし、フォルダ情報を取得するためのＷｅｂＡＰＩは、これらに限られず、例えば、「指定されたフォルダ以下の所定の数の階層（例えば、２階層）のフォルダを含むフォルダ情報を取得するＷｅｂＡＰＩ」等であってもよい。換言しれば、外部ストレージシステム４０からフォルダ情報を取得するための取得方法は、上記で述べたもの以外にも種々の取得方法が含まれていてもよい。
【００４３】
スキャン配信部２３は、例えばＣＰＵ１０６、通信Ｉ／Ｆ１０７等により実現され、画像形成装置１０からの要求に応じて、後述する外部サービス連携装置３０のフォルダ情報取得部３３又はデータアップロード部３４に対して、フォルダ情報の取得要求又は画像データのアップロード要求を行う。
【００４４】
外部サービス連携装置３０は、ストレージサービス情報管理部３１と、外部ストレージ通信部３２とを有する。また、外部ストレージ通信部３２は、フォルダ情報取得部３３と、データアップロード部３４とを有する。さらに、外部サービス連携装置３０は、ストレージサービス情報記憶部３５を利用する。
【００４５】
ストレージサービス情報管理部３１は、例えばＣＰＵ１０６等により実現され、サービス提供装置２０の取得方法特定部２２からの要求に応じて、後述するストレージサービス情報記憶部３５からストレージサービス情報３５Ｄを取得する。
【００４６】
フォルダ情報取得部３３は、例えばＣＰＵ１０６、通信Ｉ／Ｆ１０７等により実現され、サービス提供装置２０のスキャン配信部２３からの要求に応じて、外部ストレージシステム４０に対してフォルダ情報の取得要求を行う。なお、このときフォルダ情報取得部３３は、サービス提供装置２０の取得方法特定部２２により特定された取得方法に応じた取得要求を行う。
【００４７】
データアップロード部３４は、例えばＣＰＵ１０６、通信Ｉ／Ｆ１０７等により実現され、サービス提供装置２０のスキャン配信部２３からの要求に応じて、外部ストレージシステム４０に対して画像データのアップロード要求を行う。
【００４８】
ストレージサービス情報記憶部３５は、例えばＨＤＤ１０８又は外部サービス連携装置３０とネットワークを介して接続された記憶装置等により実現され、ストレージサービス情報３５Ｄを記憶する。
【００４９】
ここで、ストレージサービス情報３５Ｄのデータ構成について説明する。図５は、ストレージサービス情報の一例の構成図である。図５に示すように、ストレージサービス情報３５Ｄは、外部ストレージシステム４０が提供するストレージサービスの名称を示す「ストレージサービス名」と、ストレージサービスにネットワークＮ１を介して接続するための「ホスト名」と、ストレージサービスを利用する際に用いる「認証方法」と、ストレージサービスからフォルダ情報を取得するための取得方法を示す「フォルダ情報の取得方法」とを有する。なお、ストレージサービス情報３５Ｄは、上記のデータ項目の他、例えば、ストレージサービスを一意に識別するためのストレージサービスＩＤのデータ項目等を有していてもよい。
【００５０】
ここで、「フォルダ情報の取得方法」のデータ項目において、「Ｂｕｎｄｌｅ」と指定されているストレージサービス（例えば、「Ｓｔｏｒａｇｅ１」）は、指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するＷｅｂＡＰＩを公開しているストレージサービスである。したがって、外部サービス連携装置３０のフォルダ情報取得部３３は、このようなストレージサービスに対しては、指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するための取得要求を行う。
【００５１】
他方で、「フォルダ情報の取得方法」のデータ項目において、「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」と指定されているストレージサービス（例えば、「Ｓｔｏｒａｇｅ２」）は、指定されたフォルダ以下の１階層のフォルダを含むフォルダ情報のみを取得するＷｅｂＡＰＩを公開しているストレージサービスである。したがって、外部サービス連携装置３０のフォルダ情報取得部３３は、このようなストレージサービスに対しては、指定されたフォルダ以下の１階層のフォルダを含むフォルダ情報のみを取得するための取得要求を行う。
【００５２】
＜処理の詳細＞
次に、第１の実施形態に係る情報処理システム１の処理の詳細について説明する。第１の実施形態に係る情報処理システム１では、ユーザが画像形成装置１０において原稿をスキャンして生成された画像データをストレージサービス上の選択（指定）されたフォルダに保存する場合の処理（すなわち、スキャン配信処理）について説明する。このとき、画像形成装置１０上でユーザが保存先のフォルダを選択するためのフォルダ選択画面は、外部ストレージシステム４０から取得されるフォルダ情報に基づいて生成される。以降では、外部ストレージシステム４０からフォルダ情報を取得するための取得方法が「Ｂｕｎｄｌｅ」である場合と、「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」である場合とに分けて説明する。
【００５３】
まず、ユーザが外部ストレージシステム４０１（フォルダ情報の取得方法が「Ｂｕｎｄｌｅ」であるストレージサービス「ｓｔｏｒａｇｅ１」）上の所望のフォルダに画像データの保存する場合について説明する。図６は、第１の実施形態に係るスキャン配信処理の一例のシーケンス図である。ここで、外部ストレージシステム４０１における当該ユーザのフォルダの階層構造は、図７に示すようなものであるとする。そして、当該ユーザは、フォルダ名「ｆｏｌｄｅｒ３」に当該画像データの保存を所望しているものとする。
【００５４】
ステップＳ６０１において、ユーザは、画像形成装置１０上において所望のストレージサービスを指定して、このストレージサービスにおける画像データの保存先フォルダを選択するためのフォルダ選択画面を表示させるための操作を行う。ユーザにより当該操作が行われると、画像形成装置１０のユーザ操作受付部１２は、当該操作を受け付ける。本実施形態では、ユーザは、ストレージサービス名「ｓｔｏｒａｇｅ１」を指定して、ユーザのデフォルトとして設定されているフォルダ（例えばフォルダ名「ｕｓｅｒ１」）におけるフォルダ選択画面を表示させるための操作を行ったものとする。なお、例えば、ユーザが画像形成装置１０にログインすると、予め設定されたストレージサービスが指定されるようにしてもよい。
【００５５】
ステップＳ６０２において、表示部１１のユーザ操作受付部１２は、ユーザによる上記操作を受け付けると、フォルダ選択画面を操作パネル２０２上に表示させるためのフォルダ情報の取得要求を、サービス提供装置２０のスキャン制御部２１に対して送信する。なお、フォルダ情報の取得要求には、指定されたストレージサービスに関する情報（例えば、ストレージサービス名）と、ユーザに関する情報（例えば、ユーザ名）とが含まれる。
【００５６】
ステップＳ６０３において、スキャン制御部２１のスキャン配信部２３は、フォルダ情報の取得要求を受け付けると、フォルダ情報の取得方法の特定を、取得方法特定部２２に対して依頼する。そして、取得方法特定部２２は、フォルダ情報の取得方法の取得要求を外部サービス連携装置３０のストレージサービス情報管理部３１に対して送信する。なお、当該取得要求には、指定されたストレージサービスに関する情報（例えば、ストレージサービス名）が含まれる。
【００５７】
ステップＳ６０４において、ストレージサービス情報管理部３１は、フォルダ情報の取得方法の取得要求を受け付けると、ストレージサービス情報３５Ｄを参照し、該当のストレージサービスのストレージサービス情報を、取得方法特定部２２に対して返信する。本実施形態では、フォルダ情報の取得方法の取得要求に含まれるストレージサービスに関する情報（ストレージサービス名「ｓｔｏｒａｇｅ１」）に基づき、ストレージサービス情報３５Ｄから１行目のレコードが、取得方法特定部２２に対して返信される。ここで取得方法特定部２２に返信される情報は、例えば、図８（ａ）に示すようなデータ形式で返信される。図８（ａ）では、ストレージサービス情報３５Ｄの「ストレージサービス名」が「ｎａｍｅ」、「ホスト名」が「ｈｏｓｔ」、「認証方法」が「ａｕｔｈ＿ｔｙｐｅ」、「フォルダ情報の取得方法」が「ｆｏｌｄｅｒ＿ａｃｑｕｉｓｉｔｉｏｎ＿ｔｙｐｅ」として指定されている。これにより、取得方法特定部２２は、ストレージサービス情報管理部３１から返信された情報の「ｆｏｌｄｅｒ＿ａｃｑｕｉｓｉｔｉｏｎ＿ｔｙｐｅ」を参照することにより、指定されたストレージサービス（ストレージサービス名「ｓｔｏｒａｇｅ１」）のフォルダ情報の取得方法を特定することができる。
【００５８】
なお、図８（ａ）において「ａｕｔｈ＿ｔｙｐｅ」に指定された「ｏａｕｔｈ」は、外部ストレージシステム４０１にユーザがログインする際に用いる認証方法としてＯＡｕｔｈを用いることを示している。認証方法としてＯＡｕｔｈを用いて予め所定の設定を行っておくことで、ユーザは、フォルダ選択画面を表示させる際の外部ストレージシステム４０１に対する認証操作（例えば、ユーザ名及びパスワードの入力操作）を不要とすることができる。
【００５９】
ステップＳ６０５において、スキャン制御部２１のスキャン配信部２３は、上記のステップＳ６０４で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。ここで生成されるフォルダ情報の取得要求は、例えば図９（ａ）に示すように、ＨＴＴＰ（Hypertext Transfer Protocol）リクエストのＧＥＴメソッドで記述される。図９（ａ）に示すＨＴＴＰリクエストのＵＲＩ（Uniform Resource Identifier）において、「ｆｏｌｄｅｒ＿ｉｄ＝ｘｘｘ」及び「ｈｉｅｒａｒｃｈｙ＝ａｌｌ」が指定されている。これは、フォルダ毎に一意に付与された識別情報であるフォルダＩＤが「ｘｘｘ」のフォルダ以下の階層のすべてのフォルダ情報を取得する要求であることを示している。すなわち、スキャン制御部２１のスキャン配信部２３は、上記のステップＳ６０４で特定されたフォルダ情報の取得方法が「Ｂｕｎｄｌｅ」である場合、ＵＲＩの「ｈｉｅｒａｒｃｈｙ」を「ａｌｌ」と指定したＨＴＴＰリクエストを生成する。後述するように、このようなフォルダ情報の取得要求を、上記のステップＳ６０４で取得されたｈｏｓｔ（ｗｗｗ．ｓｔｏｒａｇｅ１．ｃｏｍ）宛に送信することでフォルダ情報の取得が行われる。
【００６０】
なお、ここで、「ｆｏｌｄｅｒ＿ｉｄ」に指定されるフォルダＩＤは、ユーザのデフォルトとして予め設定されているフォルダ（通常は、ユーザの最上階層のフォルダ）のフォルダＩＤが指定される。例えば、外部ストレージシステム４０１におけるユーザのフォルダの階層構造が図７に示すようなものである場合、「ｆｏｌｄｅｒ＿ｉｄ」は、フォルダ名「ｕｓｅｒ１」のフォルダＩＤが指定される。
【００６１】
ステップＳ６０６において、スキャン制御部２１のスキャン配信部２３は、上記のステップＳ６０５で生成したフォルダ情報の取得要求を、外部サービス連携装置３０の外部ストレージ通信部３２に対して送信する。
【００６２】
ステップＳ６０７において、外部ストレージ通信部３２のフォルダ情報取得部３３は、受け取ったフォルダ情報の取得要求を、指定された外部ストレージシステム４０１に対して送信する。すなわち、外部ストレージ通信部３２のフォルダ情報取得部３３は、上記のステップＳ６０４で取得されたｈｏｓｔ宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム４０１は、該当のフォルダ情報を外部サービス連携装置３０を介して、サービス提供装置２０に対して返信する。
【００６３】
ここで、該当のフォルダ情報とは、例えば図１０に示すように、フォルダ名「ｕｓｅｒ１」のフォルダ以下のすべての階層のフォルダのフォルダ情報である。すなわち、フォルダ名「ｕｓｅｒ１」、「ｆｏｌｄｅｒ１」、「ｆｏｌｄｅｒ２」、及び「ｆｏｌｄｅｒ３」のフォルダ情報である。図１０に示すように、フォルダ情報には、フォルダＩＤを示す「ｉｄ」、フォルダ名を示す「ｎａｍｅ」、サブフォルダ（１つ下位の階層のフォルダ）のフォルダ情報が指定される「ｓｕｂｆｏｌｄｅｒｓ」、ユーザのデフォルトとして設定されているフォルダからのパス情報（相対パス）を示す「ｐａｔｈ」、サブフォルダが存在するか否かを示す「ｈａｓ＿ｓｕｂｆｏｌｄｅｒ」等が指定される。ここで、「ｈａｓ＿ｓｕｂｆｏｌｄｅｒ」に「ｔｒｕｅ」が指定されている場合、「ｓｕｂｆｏｌｄｅｒｓ」にサブフォルダのフォルダ情報が指定されていることを示している。一方、「ｈａｓ＿ｓｕｂｆｏｌｄｅｒ」に「ｆａｌｓｅ」が指定されている場合、「ｓｕｂｆｏｌｄｅｒｓ」にサブフォルダのフォルダ情報が指定されていない（すなわち、サブフォルダが存在しない）ことを示している。すなわち、「ｈａｓ＿ｓｕｂｆｏｌｄｅｒ」は、サブフォルダ存在フラグである。
【００６４】
なお、例えば、サービス提供装置２０により、ストレージサービス上に保存されている電子データを画像形成装置１０で印刷するようなサービスが提供される場合には、上述したフォルダ情報には、フォルダに保存されているファイルに関する情報を含まれる。したがって、この場合、ユーザは画像形成装置１０上に表示されたファイル選択画面において所望のファイルを選択することで、このファイルの印刷等を行うことができる。
【００６５】
ステップＳ６０８において、スキャン制御部２１のスキャン配信部２３は、受け取ったフォルダ情報を画像形成装置１０の表示部１１に対して返信する。
【００６６】
ステップＳ６０９において、表示部１１のフォルダ情報表示部１３は、ユーザ操作受付部１２がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図１１（ａ）〜図１１（ｃ）に示すようなフォルダ選択画面Ｇ１１〜Ｇ１３を生成する。そして、フォルダ情報表示部１３は、フォルダ名「ｕｓｅｒ１」におけるフォルダを選択するための画面を示す図１１（ａ）のフォルダ選択画面Ｇ１１を表示させる。
【００６７】
図１１（ａ）のフォルダ選択画面Ｇ１１において、ユーザがフォルダ名「ｆｏｌｄｅｒ１」を選択すると、図１１（ｂ）に示すようなフォルダ選択画面Ｇ１２が表示される。さらに、図１１（ｂ）のフォルダ選択画面Ｇ１２において、ユーザがフォルダ名「ｆｏｌｄｅｒ３」を選択すると、図１１（ｃ）に示すようなフォルダ選択画面Ｇ１３が表示される。そして、ユーザが図１１（ｃ）において「ＯＫ」ボタンを選択することで、この「ｆｏｌｄｅｒ３」が保存先フォルダとして選択される。このようにして選択された外部ストレージシステム４０上のフォルダ「ｆｏｌｄｅｒ３」に対して、後述する処理において生成された画像データが保存される。
【００６８】
なお、上記において、図１１（ａ）〜図１１（ｃ）に示すようなフォルダ選択画面Ｇ１１〜Ｇ１３の生成を画像形成装置１０において行ったが、これはサービス提供装置２０において行われてもよい。すなわち、サービス提供装置２０は、外部ストレージシステム４０から外部サービス連携装置３０を介してフォルダ情報を受け取ると、このフォルダ情報からフォルダ選択画面を生成する。そして、サービス提供装置２０は、生成したフォルダ選択画面を画像形成装置１０に送信するようにしてもよい。
【００６９】
ステップＳ６１０において、ユーザは、画像形成装置１０上において、スキャン配信を行うための操作を行う。これは、例えば、画像形成装置１０のスキャナに原稿がセットされた状態で、上記のステップＳ６０９で説明したように「ＯＫ」ボタンを選択して「ｆｏｌｄｅｒ３」を画像データの保存先フォルダとして選択する操作である。そして、ユーザにより当該操作が行われると、画像形成装置１０のユーザ操作受付部１２は、当該操作を受け付ける。
【００７０】
ステップＳ６１１において、ユーザ操作受付部１２は、ユーザによる当該操作を受け付けると、原稿のスキャン及びスキャンにより生成される画像データの配信をスキャン実行部１４に対して要求する。なお、当該要求には、指定されたストレージサービスに関する情報（例えば、ストレージサービス名）と、上記のステップＳ６０９でユーザにより選択された当該ストレージサービスにおける保存先のフォルダに関する情報（例えば、フォルダＩＤ）とが含まれる。
【００７１】
ステップＳ６１２において、スキャン実行部１４は、原稿のスキャンを行って画像データを生成する。
【００７２】
ステップＳ６１３において、スキャン実行部１４は、上記のステップＳ６１２で生成された画像データを指定されたストレージサービスの選択されたフォルダに保存するためのアップロード要求を、サービス提供装置２０のスキャン制御部２１に対して送信する。なお、当該アップロード要求には、指定されたストレージサービスに関する情報と、選択された保存先のフォルダに関する情報と、上記のステップＳ６１２でスキャン実行部１４により生成された画像データとが含まれる。
【００７３】
ステップＳ６１４において、スキャン制御部２１のスキャン配信部２３は、画像形成装置１０から受け付けたアップロード要求を、外部サービス連携装置３０の外部ストレージ通信部３２に送信する。
【００７４】
ステップＳ６１５において、外部ストレージ通信部３２のデータアップロード部３４は、該当の外部ストレージシステム４０１に対して、保存先のフォルダに関する情報と、生成された画像データとを含むアップロード要求を送信する。これにより、指定された外部ストレージシステム４０１の選択されたフォルダに、原稿をスキャンすることにより生成された画像データが保存される。
【００７５】
以上で説明したように、本実施形態に係る情報処理システム１は、指定されたフォルダ以下のすべての階層のフォルダのフォルダ情報を一括して取得できる外部ストレージシステム４０に対して、データの保存を行うことができる。
【００７６】
次に、ユーザが外部ストレージシステム４０２（フォルダ情報の取得方法が「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」であるストレージサービス）に対して画像データの保存を所望する場合について説明する。図１２は、第１の実施形態に係るスキャン配信処理の他の例のシーケンス図である。ここで、外部ストレージシステム４０２における当該ユーザのフォルダの階層構造は、外部ストレージシステム４０１と同様に、図７に示すようなものであるとする。そして、当該ユーザは、フォルダ名「ｆｏｌｄｅｒ３」に当該画像データの保存を所望しているものとする。
【００７７】
なお、フォルダ情報の取得方法が「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」である場合、フォルダ情報は１階層毎に取得される。したがって、「ｕｓｅｒ１」のフォルダＩＤを指定してフォルダ情報の取得を行った場合、図１３の点線１１００で示す範囲のフォルダ（すなわち、「ｕｓｅｒ１」の直下のフォルダ）のフォルダ情報が取得される。また、「ｆｏｌｄｅｒ１」のフォルダＩＤを指定してフォルダ情報の取得を行った場合、図１３の点線１２００で示す範囲のフォルダ（すなわち、「ｆｏｌｄｅｒ３」の直下のフォルダ）のフォルダ情報が取得される。このように、フォルダ情報の取得方法が「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」である場合、取得されるフォルダ情報は、指定されたフォルダＩＤのフォルダ情報と、指定されたフォルダＩＤの直下に存在するフォルダのフォルダ情報である。
【００７８】
ステップＳ１２０１において、ユーザは、画像形成装置１０上において所望のストレージサービスを指定して、このストレージサービスにおける画像データの保存先フォルダを選択するためのフォルダ選択画面を表示させるための操作を行う。ユーザにより当該操作が行われると、画像形成装置１０のユーザ操作受付部１２は、当該操作を受け付ける。本実施形態では、ユーザは、ストレージサービス名「ｓｔｏｒａｇｅ２」を指定して、ユーザのデフォルトとして設定されているフォルダ（例えばフォルダ名「ｕｓｅｒ１」）におけるフォルダ選択画面Ｇ１１を表示させるための操作を行ったものとする。なお、例えば、ユーザが画像形成装置１０にログインすると、予め設定されたストレージサービスが指定されるようにしてもよい。
【００７９】
ステップＳ１２０２〜ステップＳ１２０４は、それぞれ、図６におけるステップＳ６０２〜ステップＳ６０４の処理と同様であるため、説明を省略する。ただし、ステップＳ１２０４において、サービス提供装置２０のストレージサービス情報管理部３１は、ユーザにより指定されたストレージサービス名「ｓｔｏｒａｇｅ２」に基づき、ストレージサービス情報３５Ｄの２行目のレコードが、取得方法特定部２２に対して返信される。すなわち、ストレージサービス情報管理部３１は、例えば、図８（ｂ）に示すようなデータ形式の情報が取得方法特定部２２に返信される。図８（ｂ）に示すように、「ｆｏｌｄｅｒ＿ａｃｑｕｉｓｉｔｉｏｎ＿ｔｙｐｅ」には、フォルダの取得方法を示す「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」が指定されており、取得方法特定部２２は、これを参照することにより、指定されたストレージサービス（ストレージサービス名「ｓｔｏｒａｇｅ２」）のフォルダ情報の取得方法を特定することができる。
【００８０】
ステップＳ１２０５において、スキャン制御部２１のスキャン配信部２３は、上記のステップＳ１２０４で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。ここで生成されるフォルダ情報の取得要求は、例えば図９（ｂ）に示すようにＨＴＴＰリクエストのＧＥＴメソッドで記述される。図９（ｂ）に示すＨＴＴＰリクエストのＵＲＩにおいて、「ｆｏｌｄｅｒ＿ｉｄ＝ｘｘｘ」及び「ｈｉｅｒａｒｃｈｙ＝１」が指定されている。これは、フォルダＩＤが「ｘｘｘ」のフォルダ以下の１階層のフォルダ（すなわち、フォルダＩＤが「ｘｘｘ」のフォルダ及びこのフォルダの直下のフォルダ）のフォルダ情報を取得する要求であることを示している。すなわち、スキャン制御部２１のスキャン配信部２３は、上記のステップＳ１２０４で特定されたフォルダ情報の取得方法が「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」である場合、ＵＲＩの「ｈｉｅｒａｒｃｈｙ」を「１」と指定したＨＴＴＰリクエストを生成する。後述するように、このようなフォルダ情報の取得要求を、上記のステップＳ１２０４で取得されたｈｏｓｔ（ｗｗｗ．ｓｔｏｒａｇｅ２．ｃｏ．ｊｐ）宛に送信することでフォルダ情報の取得が行われる。
【００８１】
ステップＳ１２０６において、スキャン制御部２１のスキャン配信部２３は、上記のステップＳ１２０５で生成したフォルダ情報の取得要求を、外部サービス連携装置３０の外部ストレージ通信部３２に対して送信する。
【００８２】
ステップＳ１２０７において、外部ストレージ通信部３２のフォルダ情報取得部３３は、受け取ったフォルダ情報の取得要求を、指定された外部ストレージシステム４０２に対して送信する。すなわち、外部ストレージ通信部３２のフォルダ情報取得部３３は、上記のステップＳ１２０４で取得されたｈｏｓｔ宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム４０２は、該当のフォルダ情報を外部サービス連携装置３０を介して、サービス提供装置２０に対して返信する。
【００８３】
ここで、該当のフォルダ情報とは、例えば図１４（ａ）に示すように、フォルダ名「ｕｓｅｒ１」のフォルダ以下の１階層のフォルダのフォルダ情報である。すなわち、フォルダ名「ｕｓｅｒ１」のフォルダ、並びにこのフォルダの直下に存在する「ｆｏｌｄｅｒ１」及び「ｆｏｌｄｅｒ２」のフォルダのフォルダ情報である。このように、フォルダ情報の取得要求のＵＲＩにおいて、「ｈｉｅｒａｒｃｈｙ＝１」と指定されている場合、「ｆｏｌｄｅｒ＿ｉｄ」で指定されているフォルダＩＤのフォルダの直下に存在するフォルダを含むフォルダ情報が取得される。なお、この場合、「ｆｏｌｄｅｒ１」及び「ｆｏｌｄｅｒ２」のフォルダ情報において、サブフォルダ存在フラグ２１００及び２２００は、それぞれ「ｆａｌｓｅ」が指定される。
【００８４】
また、スキャン配信部２３は、該当のフォルダ情報が返信されると、指定されたフォルダＩＤにサブフォルダ情報が指定されているか否かを判定する。そして、サブフォルダ情報が指定されている場合、ステップＳ１２０８の処理を行う。
【００８５】
例えば、図１４（ａ）に示すようなフォルダ情報が返信された場合、指定されたフォルダＩＤ「ｘｘｘ」（フォルダ名「ｕｓｅｒ１」）には、「ｓｕｂｆｏｌｄｅｒ」として「ｆｏｌｄｅｒ１」及び「ｆｏｌｄｅｒ２」のフォルダ情報（すなわち、サブフォルダ情報）が指定されているため、ステップＳ１２０８の処理を行う。一方、例えば図１４（ｃ）に示すようなフォルダ情報が返信された場合、指定されたフォルダＩＤ「ｚｚｚ」（フォルダ名「ｆｏｌｄｅｒ３」）には、「ｓｕｂｆｏｌｄｅｒ」が指定されていないため、ステップＳ１２０８の処理は行われない。なお、図１４（ｃ）に示すフォルダ情報は、後述するように、ユーザがフォルダ選択画面Ｇ１２においてフォルダ名「ｆｏｌｄｅｒ３」のフォルダを選択した場合に取得されるフォルダ情報である。
【００８６】
ステップＳ１２０８において、スキャン配信部２３は、フォルダ情報の「ｓｕｂｆｏｌｄｅｒ」に指定されているサブフォルダ情報のサブフォルダ存在フラグを「ｔｒｕｅ」に書き換える。すなわち、例えば図１４（ａ）に示すようなフォルダ情報の場合、サブフォルダ存在フラグ２１００及び２２００を、「ｆａｌｓｅ」から「ｔｒｕｅ」に書き換える。また、例えば図１４（ｂ）に示すようなフォルダ情報の場合、サブフォルダ存在フラグ２３００を、「ｆａｌｓｅ」から「ｔｒｕｅ」に書き換える。
【００８７】
これは、フォルダ情報を受け取った画像形成装置１０がフォルダ情報のサブフォルダ存在フラグを参照して、さらに下の階層にフォルダが存在するか否かを判定する場合があるためである。すなわち、実際にはさらに下の階層にフォルダが存在するにも関わらず、サブフォルダ存在フラグが「ｆａｌｓｅ」であるためにさらに下の階層にはフォルダが存在しないと判定されてしまうのを防止するためである。
【００８８】
ステップＳ１２０９において、スキャン制御部２１のスキャン配信部２３は、フォルダ情報を画像形成装置１０の表示部１１に対して返信する。ここで画像形成装置１０の表示部１１に対して返信されるフォルダ情報は、上記のステップＳ１２０８の処理が行われた場合は、サブフォルダ存在フラグを書き換えた後のフォルダ情報である。
【００８９】
ステップＳ１２１０において、表示部１１のフォルダ情報表示部１３は、ユーザ操作受付部１２がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図１１（ａ）に示すようなフォルダ選択画面Ｇ１１を生成する。そして、フォルダ情報表示部１３は、フォルダ名「ｕｓｅｒ１」におけるフォルダを選択するための画面を示す図１１（ａ）のフォルダ選択画面Ｇ１１を表示させる。
【００９０】
なお、上述したように、このとき、フォルダ情報表示部１３は、受け付けたフォルダ情報においてサブフォルダ存在フラグを参照して、さらに下の階層にフォルダが存在するか否かを判定してもよい。そして、画像形成装置１０は、判定結果に応じて、例えば、さらに下の階層に存在するフォルダのフォルダ情報の取得要求をサービス提供装置２０に送信してもよい。
【００９１】
次に、図１１（ａ）に示すようなフォルダ選択画面Ｇ１１においてユーザが、例えばフォルダ名「ｆｏｌｄｅｒ１」を選択すると、上記で説明したステップＳ１２０２〜ステップＳ１２１０の処理が実行され、図１１（ｂ）に示すようなフォルダ選択画面Ｇ１２が表示される。すなわち、この場合、ステップＳ１２０５で「ｆｏｌｄｅｒ＿ｉｄ」として「ｆｏｌｄｅｒ１」のフォルダＩＤ「ｙｙｙ１」が指定されたフォルダ情報の取得要求が生成される。すると、ステップＳ１２０７において、例えば図１４（ｂ）に示すように、フォルダ名「ｆｏｌｄｅｒ１」のフォルダ、及びこのフォルダの直下に存在する「ｆｏｌｄｅｒ３」のフォルダのフォルダ情報が取得される。そして、ステップＳ１２１０で図１１（ｂ）に示すようなフォルダ選択画面Ｇ１２が表示される。
【００９２】
同様に、図１１（ｂ）に示すようなフォルダ選択画面Ｇ１２において、ユーザが、例えばフォルダ名「ｆｏｌｄｅｒ３」を選択すると、上記で説明したステップＳ１２０２〜ステップＳ１２１０の処理が実行され、図１１（ｃ）に示すようなフォルダ選択画面Ｇ１３が表示される。そして、ユーザが図１１（ｃ）において「ＯＫ」ボタンを選択することで、この「ｆｏｌｄｅｒ３」が保存先フォルダとして選択される。
【００９３】
なお、以降のステップＳ１２１１〜ステップＳ１２１６の処理は、それぞれ、図６におけるステップＳ６１０〜ステップＳ６１５の処理と同様であるため、説明を省略する。
【００９４】
以上で説明したように、本実施形態に係る情報処理システム１は、指定されたフォルダ以下の１階層のフォルダを含むフォルダ情報を取得できる外部ストレージシステム４０に対して、データの保存を行うことができる。このとき、本実施形態に係る情報処理システム１では、取得されたフォルダ情報毎に（すなわち、１階層のフォルダ毎に）、フォルダ選択画面の生成及び表示を行う。したがって、指定されたフォルダ以下のフォルダ情報を一括して取得することができない（つまり、１階層毎のフォルダ情報しか取得することができない）外部ストレージシステム４０に対してデータの保存を所望する場合においても、フォルダ選択画面の表示が遅滞なく行われる。これにより、ユーザ待ち時間が削減され、ユーザは、保存先のフォルダの選択操作をストレスなく行うことができる。
【００９５】
［第２の実施形態］
次に、第２の実施形態に係る情報処理システム１について説明する。第２の実施形態に係る情報処理システム１では、フォルダ情報の取得方法が「ＯｎｌｙＳｕｂＦｏｌｏｄｅｒ」である外部ストレージシステム４０において、フォルダ情報をバックグラウンドで順次取得し、キャッシュさせておくものである。すなわち、例えば、外部ストレージシステム４０２における当該ユーザのフォルダの階層構造が図１５に示すようなものであるとする。このとき、点線３１００で示す範囲のフォルダ情報が既に取得済みであり、「ｆｏｌｄｅｒ１」及び「ｆｏｌｄｅｒ２」を選択するためのフォルダ選択画面が画像形成装置１０に表示されている場合、第２の実施形態に係る情報処理システム１では、点線３２００〜３５００で示す範囲のフォルダ情報もバックグラウンドで取得し、キャッシュさせておく。そして、画像形成装置１０から例えば「ｆｏｌｄｅｒ１」が選択され、「ｆｏｌｄｅｒ３」及び「ｆｏｌｄｅｒ４」を選択するためのフォルダ選択画面の表示操作がなされた場合、キャッシュしておいた点線３２００に示す範囲のフォルダ情報を画像形成装置１０に返信するものである。なお、以降では、第１の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第１の実施形態と同一の符号を用いて、その説明を省略する。
【００９６】
＜ソフトウェア構成＞
まず、第２の実施形態に係る情報処理システム１のソフトウェア構成について説明する。第２の実施形態に係る情報処理システム１は、例えば図１６に示されるような処理ブロックにより実現することができる。図１６は、第２の実施形態に係る情報処理システムの一例の処理ブロック図である。第２の実施形態に係る情報処理システム１では、スキャン制御部２１Ａは、さらにキャッシュ情報管理部２４を有する点が第１の実施形態と異なる。また、第２の実施形態に係るサービス提供装置２０は、キャッシュ情報記憶部２５を利用する点が第１の実施形態と異なる。
【００９７】
キャッシュ情報管理部２４は、例えばＣＰＵ１０６等により実現され、外部サービス連携装置３０を介して、外部ストレージシステム４０から取得されたフォルダ情報を、キャッシュ情報記憶部２５にキャッシュとして保存させる。また、スキャン配信部２３からの要求に応じて、キャッシュとして保存されているフォルダ情報を取得する。
【００９８】
キャッシュ情報記憶部２５は、例えばＨＤＤ１０８又はサービス提供装置２０とネットワークを介して接続された記憶装置等により実現され、外部サービス連携装置３０を介して外部ストレージシステム４０から取得したフォルダ情報を、キャッシュとして保存する。
【００９９】
＜処理の詳細＞
次に、第２の実施形態に係る情報処理システム１の処理の詳細について説明する。第２の実施形態に係るスキャン配信処理では、上述したように、フォルダ情報の取得方法が「ＯｎｌｙＳｕｂＦｏｌｏｄｅｒ」である外部ストレージシステム４０において、フォルダ情報をバックグラウンドで順次取得し、キャッシュさせておく処理を行う。したがって、以降では、外部ストレージシステム４０からフォルダ情報を取得するための取得方法が「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」である場合について説明する。図１７は、第２の実施形態に係るスキャン配信処理の一例のシーケンス図である。なお、図１７では、図６のステップＳ６１０〜ステップＳ６１５で説明した処理を省略している。
【０１００】
ステップＳ１７０１及びステップＳ１７０２は、それぞれ、図１２におけるステップＳ１２０１及びステップＳ１２０２の処理と同様であるため、説明を省略する。
【０１０１】
ステップＳ１７０３において、スキャン制御部２１Ａのスキャン配信部２３は、該当のフォルダ情報（例えば、ユーザのデフォルトとして設定されているフォルダのフォルダ情報やフォルダ選択画面において選択されたフォルダのフォルダ情報等）がキャッシュ情報記憶部２５に存在するか否かの判定を依頼する。そして、キャッシュ情報管理部２４は、該当のフォルダ情報がキャッシュ情報記憶部２５に存在するか否かを判定する。
【０１０２】
ここで、該当のフォルダ情報がキャッシュ情報記憶部２５に存在する場合、以降の処理は行われずに、該当のフォルダ情報を画像形成装置１０に対して返信する。そして、画像形成装置１０の表示部１１は、受け取ったフォルダ情報に基づきフォルダ選択画面を表示させる。以降では、該当のフォルダ情報はキャッシュ情報記憶部２５に存在しないと判定されたものとして説明を続ける。
【０１０３】
ステップＳ１７０４〜ステップＳ１７１１は、それぞれ、図１２におけるステップＳ１２０３〜１２１０の処理と同様であるため、説明を省略する。これにより、例えば図１１（ａ）に示すようなフォルダ選択画面Ｇ１１が画像形成装置１０に表示される。このとき、次のステップＳ１７１２〜ステップＳ１７１５で説明するように、サービス提供装置２０は、外部サービス連携装置３０を介して、外部ストレージシステム４０からフォルダ情報をバックグラウンドで取得し、キャッシュ情報記憶部２５にキャッシュとして保存させる。
【０１０４】
ステップＳ１７１２において、スキャン制御部２１のスキャン配信部２３は、フォルダ情報の取得要求を生成する。ここで、生成されるフォルダ情報の取得要求は、例えば、図１５において点線３１００に示す範囲のフォルダ情報を既に取得済みである場合、点線３２００に示す範囲のフォルダ情報を取得するための取得要求である。また、図１５において点線３１００及び点線３２００に示す範囲のフォルダ情報を既に取得済みである場合、点線３３００に示す範囲のフォルダ情報を取得するための取得要求である。さらに、図１５において点線３１００〜点線３３００に示す範囲のフォルダ情報を既に取得済みである場合、点線３４００に示す範囲のフォルダ情報を取得するための取得要求である。このように、フォルダ情報の取得要求は、例えば、図１５において点線３１００に示す範囲、点線３２００に示す範囲、点線３３００に示す範囲、点線３４００に示す範囲、点線３５００に示す範囲の順で生成される。したがって、フォルダ情報の取得も次のステップＳ１７１４においてこの順で行われる。
【０１０５】
ただし、フォルダ情報の取得要求が生成される順（すなわち、フォルダ情報が取得される順）は、これに限られず、所定の優先順に応じて取得要求が生成（フォルダ情報が取得）されてもよい。所定の優先順は、例えば、図１８に示すように、ユーザが画像形成装置１０においてフォルダ名「ｆｏｌｄｅｒ３」におけるフォルダを選択するためのフォルダ選択画面を表示させている場合、この「ｆｏｌｄｅｒ３」より下位の階層に存在する点線３３００及び点線３５００に示す範囲のフォルダのフォルダ情報の取得要求を優先的に生成してもよい。他にも、例えば、フォルダＩＤの昇順又は降順等の優先順に応じて、フォルダ情報の取得要求が生成されてもよい。
【０１０６】
ステップＳ１７１３において、スキャン制御部２１Ａのスキャン配信部２３は、上記のステップＳ１７１２で生成したフォルダ情報の取得要求を、外部サービス連携装置３０の外部ストレージ通信部３２に対して送信する。
【０１０７】
なお、情報処理システム１がサービス提供装置２０を２台以上する場合、一のサービス提供装置２０は、他のサービス提供装置２０に対して上記のステップＳ１７１２及びステップＳ１７１３の処理を依頼してもよい。そして、一のサービス提供装置２０は、他のサービス提供装置２０が取得したフォルダ情報を、自身のキャッシュ情報記憶部２５に保存（マージ）させるようにしてもよい。すなわち、複数のサービス提供装置２０が相補的にフォルダ情報を取得して、一のキャッシュ情報記憶部２５にフォルダ情報を保存させるようにしてもよい。
【０１０８】
ステップＳ１７１４において、外部ストレージ通信部３２のフォルダ情報取得部３３は、受け取ったフォルダ情報の取得要求を、指定された外部ストレージシステム４０１に対して送信する。そして、外部ストレージシステム４０は、該当のフォルダ情報を外部サービス連携装置３０を介して、サービス提供装置２０に対して返信する。
【０１０９】
ステップＳ１７１５において、スキャン制御部２１Ａのスキャン配信部２３は、上記のステップＳ１７１４で取得したフォルダ情報の保存を、キャッシュ情報管理部２４に依頼する。そして、キャッシュ情報管理部２４は、フォルダ情報を、キャッシュとしてキャッシュ情報記憶部２５に保存させる。なお、このとき、キャッシュ情報管理部２４は、外部ストレージシステム４０におけるフォルダの格納先の絶対パスのパス情報（すなわち、ルートフォルダからの相対パス）又は親フォルダからの相対パスのパス情報を、フォルダ情報に関連付けて保存してもよい。これにより、例えば、ユーザが画像形成装置１０において、表示させたいフォルダのパス情報を指定した場合等に、指定されたフォルダ選択画面が表示されるまでのユーザ待ち時間が削減させることができる。
【０１１０】
以上のようなステップＳ１７１２〜ステップＳ１７１５の処理を、取得されたフォルダ情報にサブフォルダ情報が指定されている間（すなわち、指定されたフォルダＩＤのフォルダ情報のサブフォルダ存在フラグが「ｔｒｕｅ」である間）、繰り返す。これにより、例えば図１５において、点線３２００〜３５００に示す範囲のフォルダ情報が順次取得され、キャッシュとしてキャッシュ情報記憶部２５に保存される。
【０１１１】
なお、情報処理システム１がサービス提供装置２０を２台以上する場合、それぞれのサービス提供装置２０が有するキャッシュ情報記憶部２５を所定のタイミングで同期（例えば、それぞれのサービス提供装置２０が有するキャッシュ情報記憶部２５の内容のマージ又は補完）させるようにしてもよい。
【０１１２】
なお、上述したように、ステップＳ１７１１においてフォルダ選択画面が表示された後、ユーザが所望のフォルダを選択すると、図６で説明したステップＳ６１０〜ステップＳ６１５の処理が行われる。
【０１１３】
以上で説明したように、本実施形態に係る情報処理システム１は、指定されたフォルダ以下の１階層のフォルダのフォルダ情報を取得できる外部ストレージシステム４０に対して、データの保存を行うことができる。このとき、本実施形態に係る情報処理システム１では、１階層毎のフォルダ情報をバックグラウンドで取得し、キャッシュ情報記憶部２５にキャッシュとして保存する。したがって、キャッシュされているフォルダ情報の取得要求が画像形成装置１０からあった場合、フォルダ選択画面が表示されるまでのユーザ待ち時間がさらに削減される。
【０１１４】
＜まとめ＞
以上の第１の実施形態に係る情報処理システム１によれば、指定されたフォルダ以下のフォルダ情報を一括して取得することができない（つまり、所定の数の階層毎（例えば、１か階層毎）のフォルダ情報しか取得することができない）外部ストレージシステム４０に対してデータの保存を所望する場合においても、保存先のフォルダを選択するためのフォルダ選択画面が遅滞なく表示される。したがって、フォルダ選択画面が表示されるまでのユーザ待ち時間が削減される。これにより、ユーザは、画像形成装置１０から外部ストレージシステム４０を快適に利用することができる。
【０１１５】
また、第２の実施形態に係る情報処理システム１によれば、指定されたフォルダ以下のフォルダ情報を一括して取得することができない場合、バックグラウンドでフォルダ情報が取得され、キャッシュとして保存される。したがって、フォルダ選択画面が表示されるまでのユーザ待ち時間がさらに削減される。
【０１１６】
なお、第１及び第２の実施形態においては、入力元として画像処理装置の一例である画像形成装置１０においてスキャンした画像データを、出力先として外部ストレージシステム４０に保存する場合について説明したが、これに限られない。例えば、入力元としてはスキャンしたものに限られず、デジタルカメラ、携帯電話等で撮像された画像データであってもよいし、また、画像データに限られずＰＣで作成された文書データ、ＩＣレコーダで作成された音声データ等の種々の電子データであってもよい。また、出力先としては、例えば、プロジェクタのような画像投影装置、デジタルサイネージ、プリンタ、会議システム等であってもよい。
【０１１７】
その他、電子データの入力元又は出力先としては、電子データの入力手段又は出力手段として機能可能な機器であれば、他の機器を用いて、本実施形態の形態と同趣旨のサービスが実現されていてもよい。
【０１１８】
［第３の実施形態］
次に、第３の実施形態に係る情報処理システム１について説明する。第３の実施形態に係る情報処理システム１では、サービス提供装置２０と外部サービス連携装置３０とが一台の情報処理装置で構成されているものである。また、第３の実施形態に係る情報処理システム１では、デジタルカメラで撮像された画像を外部ストレージシステム４０にアップロードするものである。なお、以降では、第１の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第１の実施形態と同一の符号を用いて、その説明を省略する。
【０１１９】
＜システム構成＞
まず、第３の実施形態に係る情報処理システム１のシステム構成について説明する。図１９は、第３の実施形態に係る情報処理システムの一例の構成図である。
【０１２０】
第３の実施形態に係る情報処理システム１では、ユーザ環境Ｅ１にデジタルカメラ５０が含まれる点と、サービス提供環境Ｅ２にサービス提供装置６０が含まれる点とが第１の実施形態と異なる。
【０１２１】
ユーザ環境Ｅ１には、一台以上のデジタルカメラ５０が含まれ、例えば無線ＬＡＮ等のネットワークに接続されている。デジタルカメラ５０は、ユーザが利用する機器である。ユーザは、デジタルカメラ５０において選択した画像データを外部ストレージシステム４０の指定した保存先（外部ストレージシステム４０上の指定したフォルダ）に保存することができる。
【０１２２】
サービス提供環境Ｅ１には、サービス提供装置６０が含まれる。サービス提供装置６０は、ユーザ環境Ｅ１のデジタルカメラ５０において選択された画像データを外部ストレージシステム４０の指定した保存先に保存するサービスを提供する。このとき、サービス提供装置６０は、例えば、画像データの保存先のフォルダを指定するためのフォルダ情報を外部ストレージシステム４０から取得する。
【０１２３】
すなわち、第３の実施形態に係るサービス提供装置６０は、第１の実施形態に係るサービス提供装置２０と、第１の実施形態に係る外部サービス連携装置３０とを一台の情報処理装置で構成したものである。
【０１２４】
＜ハードウェア構成＞
次に、第３の実施形態に係る情報処理システム１に含まれるデジタルカメラ５０のハードウェア構成について説明する。図２０は、第３の実施形態に係るデジタルカメラの一例のハードウェア構成図である。
【０１２５】
図２０に示されるデジタルカメラ５０は、入力装置３０１と、表示装置３０２と、外部Ｉ／Ｆ３０３と、ＲＡＭ３０４と、ＲＯＭ３０５と、ＣＰＵ３０６と、通信Ｉ／Ｆ３０７と、フラッシュメモリ３０８と、撮像装置３０９とを備える。これらの各ハードウェアは、それぞれがバスＢ１で接続されている。
【０１２６】
入力装置３０１は、タッチパネルや各種ボタン等であり、ユーザが各操作信号を入力するのに用いられる。表示装置３０２は、ディスプレイ等であり、デジタルカメラ５０の処理結果を表示する。
【０１２７】
通信Ｉ／Ｆ３０７は、デジタルカメラ５０をネットワークＮ１に接続するインタフェースである。これにより、デジタルカメラ５０は、通信Ｉ／Ｆ３０７を介してデータ通信を行うことができる。
【０１２８】
外部Ｉ／Ｆ３０３は、外部装置とのインタフェースである。外部装置には、記録媒体３０３ａ等がある。これにより、デジタルカメラ５０は、外部Ｉ／Ｆ３０３を介して記録媒体３０３ａの読み取り及び／又は書き込みを行うことができる。
【０１２９】
記録媒体３０３ａには、ＳＤメモリカードやＵＳＢメモリ等がある。記録媒体３０３ａには、例えば、撮像装置３０９により生成された画像データ等が格納される。
【０１３０】
フラッシュメモリ３０８は、デジタルカメラ５０の全体を制御するプログラム等を格納している不揮発性の記憶装置の一例である。ＲＯＭ３０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）である。ＲＯＭ３０５には、各種の設定情報等が格納されている。ＲＡＭ３０４は、プログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）である。
【０１３１】
ＣＰＵ３０６は、ＲＯＭ３０５やフラッシュメモリ３０８からプログラムやデータをＲＡＭ３０４上に読み出し、処理を実行することで、デジタルカメラ５０全体の制御や機能を実現する演算装置である。
【０１３２】
撮像装置３０９は、撮像対象を撮像することにより画像データを生成する。撮像装置３０９により生成される画像データは、静止画の画像データに限られず、動画の画像データ（すなわち、動画データ）であっても良い。すなわち、画像データには、静止画の画像データと、動画の画像データとが含まれる。
【０１３３】
デジタルカメラ５０は、上記ハードウェア構成を有することにより、後述する各種処理を実現できる。
【０１３４】
＜ソフトウェア構成＞
次に、第３の実施形態に係る情報処理システム１のソフトウェア構成について説明する。第３の実施形態に係る情報処理システム１は、例えば図２１に示されるような処理ブロックにより実現することができる。図２１は、第３の実施形態に係る情報処理システムの一例の処理ブロック図である。
【０１３５】
デジタルカメラ５０は、ユーザ入出力部５１と、データ配信部５４とを有する。また、ユーザ入出力部５１は、ユーザ操作受付部５２と、フォルダ情報表示部５３とを有する。
【０１３６】
ユーザ操作受付部５２は、例えばＣＰＵ３０６、入力装置３０１等により実現され、ユーザによる各種操作を受け付ける。例えば、ユーザ操作受付部５２は、ストレージサービスに保存する画像データの選択操作や、選択された画像データのストレージサービスにおける保存先のフォルダの選択（指定）操作等の各種操作を受け付ける。
【０１３７】
フォルダ情報表示部５３は、例えばＣＰＵ３０６、表示装置３０２等により実現され、各種の画面を表示させる。例えば、フォルダ情報表示部５３は、ストレージサービスに保存する画像データを選択するための配信画像の選択画面や、選択された画像データの保存先となるフォルダを選択するためのフォルダ選択画面を表示させる。
【０１３８】
データ配信部５４は、例えばＣＰＵ３０６等により実現され、ユーザにより選択された画像データをストレージサービスの指定された保存先フォルダに保存させるための要求（アップロード要求）をサービス提供装置６０に対して行う。
【０１３９】
サービス提供装置６０は、取得制御部６１と、ストレージサービス情報管理部３１と、外部ストレージ通信部３２Ａとを有する。また、サービス提供装置６０は、ストレージサービス情報記憶部３５を利用する。
【０１４０】
さらに、取得制御部６１は、取得方法特定部２２と、取得要求生成部６２とを有し、外部ストレージ通信部３２Ａは、フォルダ情報取得部３３と、データアップロード部３４Ａとを有する。
【０１４１】
なお、取得方法特定部２２、ストレージサービス情報管理部３１、フォルダ情報取得部３３、及びストレージサービス情報記憶部３５は、第１の実施形態と同様であるため、その説明を省略する。
【０１４２】
取得要求生成部６２は、例えばＣＰＵ１０６等により実現され、デジタルカメラ５０からの要求に応じて、フォルダ情報取得部３３に対してフォルダ情報の取得要求を行う。
【０１４３】
データアップロード部３４Ａは、例えばＣＰＵ１０６、通信Ｉ／Ｆ１０７等により実現され、デジタルカメラ５０のデータ配信部５４からの要求に応じて、外部ストレージシステム４０に対して画像データのアップロード要求を行う。
【０１４４】
＜処理の詳細＞
次に、第３の実施形態に係る情報処理システム１の処理の詳細について説明する。第３の実施形態に係る情報処理システム１では、ユーザがデジタルカメラ５０に格納されている画像データをストレージサービス上の選択（指定）されたフォルダに保存する場合の処理（すなわち、データ配信処理）について説明する。このとき、デジタルカメラ５０上でユーザが保存先のフォルダを選択するためのフォルダ選択画面は、外部ストレージシステム４０から取得されるフォルダ情報に基づいて生成される。以降では、外部ストレージシステム４０からフォルダ情報を取得するための取得方法が「Ｂｕｎｄｌｅ」である場合と、「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」である場合とに分けて説明する。
【０１４５】
まず、ユーザが外部ストレージシステム４０１（フォルダ情報の取得方法が「Ｂｕｎｄｌｅ」であるストレージサービス「ｓｔｏｒａｇｅ１」）上の所望のフォルダに画像データの保存する場合について説明する。図２２は、第３の実施形態に係るデータ配信処理の一例のシーケンス図である。なお、以降では、図６を用いて説明したスキャン配信処理と同様の処理を行う箇所については、適宜説明を簡略化して記載する。
【０１４６】
ここで、外部ストレージシステム４０１における当該ユーザのフォルダの階層構造は、第１の実施形態と同様に、図７に示すようなものであるとする。そして、当該ユーザは、フォルダ名「ｆｏｌｄｅｒ３」に画像データの保存を所望しているものとする。
【０１４７】
ステップＳ２２０１において、ユーザは、デジタルカメラ５０においてストレージサービスに保存する画像データの選択操作を行う。ユーザにより当該操作が行われると、デジタルカメラのユーザ操作受付部５２は、当該操作を受け付ける。
【０１４８】
ここで、ユーザは、例えば図２３（ａ）に示すような配信画像の選択画面Ｇ２１において、ストレージサービスに保存を所望する画像データを選択することができる。図２３（ａ）に示す配信画像の選択画面Ｇ２１では、デジタルカメラ５０に格納されている画像データが一覧表示されている。ユーザは、図２３（ａ）に示す配信画像の選択画面Ｇ２１において、ストレージサービスに保存を所望する１又は複数の画像データを選択することができる。
【０１４９】
ステップＳ２２０２において、ユーザ入出力部５１のユーザ操作受付部５２は、ユーザによる上記操作を受け付けると、フォルダ選択画面を表示装置３０２上に表示させるためのフォルダ情報の取得要求を、サービス提供装置６０の取得制御部６１に対して送信する。
【０１５０】
なお、本実施形態では、上記のステップＳ２２０１で選択された画像データの保存先としてストレージサービス名「ｓｔｏｒａｇｅ１」の外部ストレージシステム４０１が予め設定されているものとする。したがって、フォルダ情報の取得要求には、ストレージサービス名「ｓｔｏｒａｇｅ１」と、ユーザに関する情報（例えば、ユーザ名「ｕｓｅｒ１」）とが含まれる。
【０１５１】
ただし、画像データの保存先のストレージサービスは、例えば、図２３（ａ）に示す配信画像の選択画像Ｇ１において、配信対象の画像データとともに、ユーザにより選択されてもよい。
【０１５２】
ステップＳ２２０３において、取得制御部６１の取得要求生成部６２は、フォルダ情報の取得要求を受け付けると、フォルダ情報の取得方法の特定を、取得方法特定部２２に対して依頼する。そして、取得方法特定部２２は、フォルダ情報の取得方法の取得要求をストレージサービス情報管理部３１に送信する。なお、当該取得要求には、ストレージサービスに関する情報（例えば、ストレージサービス名）が含まれる。
【０１５３】
ステップＳ２２０４において、ストレージサービス情報管理部３１は、フォルダ情報の取得方法の取得要求を受け付けると、ストレージサービス情報３５Ｄを参照し、該当のストレージサービスのストレージサービス情報を、取得方法特定部２２に対して返信する。なお、ここで返信される情報は、第１の実施形態と同様に、例えば図８（ａ）で示される。
【０１５４】
ステップＳ２２０５において、取得制御部６１の取得要求生成部６２は、上記のステップＳ２２０４で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。なお、ここで生成されるフォルダ情報の取得要求は、第１の実施形態と同様に、例えば図９（ａ）で示される。
【０１５５】
ステップＳ２２０６において、取得制御部６１の取得要求生成部６２は、上記のステップＳ２２０５で生成したフォルダ情報取得要求を外部ストレージ通信部３２Ａに対して送信する。
【０１５６】
ステップＳ２２０７において、外部ストレージ通信部３２Ａのフォルダ情報取得部３３は、受け取ったフォルダ情報の取得要求を、予め設定された外部ストレージシステム４０１に送信する。すなわち、外部ストレージ通信部３２Ａは、上記のステップＳ２２０４で取得された図８（ａ）に示すストレージサービス情報に含まれるｈｏｓｔ宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム４０１は、該当のフォルダ情報をサービス提供装置６０に対して返信する。なお、ここで返信される該当のフォルダ情報は、第１の実施形態と同様に、例えば図１０で示される。
【０１５７】
ステップＳ２２０８において、取得制御部６１の取得要求生成部６２は、受け取ったフォルダ情報をデジタルカメラ５０のユーザ入出力部５１に対して返信する。
【０１５８】
ステップＳ２２０９において、ユーザ入出力部５１のフォルダ情報表示部５３は、ユーザ操作受付部５２がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図２３（ｂ）〜図２３（ｄ）に示すようなフォルダ選択画面Ｇ２２〜Ｇ２４を生成する。そして、フォルダ情報表示部５３は、フォルダ名「ｕｓｅｒ１」におけるフォルダを選択するための画面を示す図２３（ｂ）のフォルダ選択画面Ｇ２２を表示させる。
【０１５９】
図２３（ｂ）のフォルダ選択画面Ｇ２２において、ユーザがフォルダ名「ｆｏｌｄｅｒ１」を選択すると、図２３（ｃ）に示すようなフォルダ選択画面Ｇ２３が表示される。さらに、図２３（ｃ）のフォルダ選択画面Ｇ２３において、ユーザがフォルダ名「ｆｏｌｄｅｒ３」を選択すると、図２３（ｄ）に示すようなフォルダ選択画面Ｇ２４が表示される。
【０１６０】
そして、後述するように、ユーザが図２３（ｄ）において「ＯＫ」ボタンを選択することで、外部ストレージシステム４０１上のフォルダ「ｆｏｌｄｅｒ３」に対して、図２３（ａ）で選択された画像データが保存される。
【０１６１】
ステップＳ２２１０において、ユーザは、図２３（ｄ）のフォルダ選択画面Ｇ２２において、「ＯＫ」ボタンを選択して、画像データを選択した保存先フォルダにアップロードするためのデータ配信操作を行う。そして、ユーザにより当該操作が行われると、デジタルカメラ５０のユーザ操作受付部５２は、当該操作を受け付ける。
【０１６２】
ステップＳ２２１１において、ユーザ操作受付部５２は、ユーザによる当該操作を受け付けると、選択された画像データのアップロード（配信）を外部ストレージ通信部３２Ａに対して要求する。なお、当該要求には、選択された画像データの保存先である外部ストレージシステム４０１のストレージサービス名と、上記のステップＳ２２０９で選択された保存先フォルダに関する情報と、上記のステップＳ２２０１で選択された画像データとが含まれる。
【０１６３】
ステップＳ２２１２において、外部ストレージ通信部３２Ａのデータアップロード部３４Ａは、デジタルカメラ５０から受け付けたアップロード要求を該当の外部ストレージシステム４０１に対して送信する。これにより、外部ストレージシステム４０１の選択されたフォルダに、選択された画像データが保存される。
【０１６４】
以上で説明したように、本実施形態に係る情報処理システム１は、指定されたフォルダ以下のすべての階層のフォルダのフォルダ情報を一括して取得できる外部ストレージシステム４０に対して、デジタルカメラ５０に格納されたデータの保存を行うことができる。
【０１６５】
次に、ユーザが外部ストレージシステム４０２（フォルダ情報の取得方法が「ＯｎｌｙＳｕｂＦｏｌｄｅｒ」であるストレージサービス）に対して画像データの保存を所望する場合について説明する。図２４は、第３の実施形態に係るデータ配信処理の他の例のシーケンス図である。
【０１６６】
ここで、外部ストレージシステム４０２における当該ユーザのフォルダの階層構造は、外部ストレージシステム４０１と同様に、図７に示すようなものであるとする。そして、当該ユーザは、フォルダ名「ｆｏｌｄｅｒ３」に画像データの保存を所望しているものとする。なお、以降では、図１２を用いて説明したスキャン配信処理と同様の処理を行う箇所については、適宜説明を簡略化して記載する。
【０１６７】
まず、ステップＳ２４０１〜ステップＳ２４０３の処理は、それぞれ、図２２におけるステップＳ２２０１〜ステップＳ２２０３と同様であるため、説明を省略する。
【０１６８】
ただし、本実施形態では、上記のステップＳ２４０１で選択された画像データの保存先としてストレージサービス名「ｓｔｏｒａｇｅ２」の外部ストレージシステム４０２が予め設定されているものとする。したがって、ステップＳ２４０２で送信されるフォルダ情報の取得要求には、ストレージサービス名「ｓｔｏｒａｇｅ２」と、ユーザに関する情報（例えば、ユーザ名「ｕｓｅｒ１」）とが含まれる。
【０１６９】
ステップＳ２４０４において、ストレージサービス情報管理部３１は、フォルダ情報の取得方法の取得要求を受け付けると、ストレージサービス情報３５Ｄを参照し、該当のストレージサービスのストレージサービス情報を、取得方法特定部２２に対して返信する。なお、ここで返信される情報は、第１の実施形態と同様に、例えば図８（ｂ）で示される。
【０１７０】
ステップＳ２４０５において、取得制御部６１の取得要求生成部６２は、上記のステップＳ２２０４で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。なお、ここで生成されるフォルダ情報の取得要求は、第１の実施形態と同様に、例えば図９（ｂ）で示される。
【０１７１】
ステップＳ２４０６において、取得制御部６１の取得要求生成部６２は、上記のステップＳ２４０５で生成したフォルダ情報取得要求を外部ストレージ通信部３２Ａに対して送信する。
【０１７２】
ステップＳ２４０７において、外部ストレージ通信部３２Ａのフォルダ情報取得部３３は、受け取ったフォルダ情報の取得要求を、予め設定された外部ストレージシステム４０２に送信する。すなわち、外部ストレージ通信部３２Ａは、上記のステップＳ２４０４で取得された図８（ｂ）に示すストレージサービス情報に含まれるｈｏｓｔ宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム４０２は、該当のフォルダ情報をサービス提供装置６０に対して返信する。なお、ここで返信される該当のフォルダ情報は、第１の実施形態と同様に、例えば図１４（ａ）で示される。
【０１７３】
また、取得要求生成部６２は、該当のフォルダ情報が返信されると、指定されたフォルダＩＤにサブフォルダ情報が指定されているか否かを判定する。そして、サブフォルダ情報が指定されている場合、ステップＳ２４０８の処理を行う。
【０１７４】
ステップＳ２４０８において、取得要求生成部６２は、フォルダ情報の「ｓｕｂｆｏｌｄｅｒ」に指定されているサブフォルダ情報のサブフォルダ存在フラグを「ｔｒｕｅ」に書き換える。
【０１７５】
ステップＳ２４０９において、取得制御部６１の取得要求生成部６２は、フォルダ情報をデジタルカメラ５０のユーザ入出力部５１に対して返信する。ここでデジタルカメラ５０のユーザ入出力部５１に対して返信されるフォルダ情報は、上記のステップＳ２４０８の処理が行われた場合は、サブフォルダ存在フラグを書き換えた後のフォルダ情報である。
【０１７６】
ステップＳ２４１０において、ユーザ入出力部５１のフォルダ情報表示部５３は、ユーザ操作受付部５２がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図２３（ｂ）に示すようなフォルダ選択画面Ｇ２２を生成する。そして、フォルダ情報表示部５３は、フォルダ名「ｕｓｅｒ１」におけるフォルダを選択するための画面を示す図２３（ｂ）のフォルダ選択画面Ｇ２２を表示させる。
【０１７７】
なお、このとき、フォルダ情報表示部５３は、受け付けたフォルダ情報においてサブフォルダ存在フラグを参照して、さらに下の階層にフォルダが存在するか否かを判定してもよい。そして、デジタルカメラ５０は、判定結果に応じて、例えば、さらに下の階層に存在するフォルダのフォルダ情報の取得要求をサービス提供装置６０に送信してもよい。
【０１７８】
次に、図２３（ｂ）に示すようなフォルダ選択画面Ｇ２２においてユーザが、例えばフォルダ名「ｆｏｌｄｅｒ１」を選択すると、上記で説明したステップＳ２４０２〜ステップＳ２４１０の処理が実行され、図２３（ｃ）に示すようなフォルダ選択画面Ｇ２３が表示される。すなわち、この場合、ステップＳ２４０５で「ｆｏｌｄｅｒ＿ｉｄ」として「ｆｏｌｄｅｒ１」のフォルダＩＤ「ｙｙｙ１」が指定されたフォルダ情報の取得要求が生成される。すると、ステップＳ２４０７において、例えば図１４（ｂ）に示すように、フォルダ名「ｆｏｌｄｅｒ１」のフォルダ、及びこのフォルダの直下に存在する「ｆｏｌｄｅｒ３」のフォルダのフォルダ情報が取得される。そして、ステップＳ２４１０で図２３（ｃ）に示すようなフォルダ選択画面Ｇ２３が表示される。
【０１７９】
同様に、図２３（ｃ）に示すようなフォルダ選択画面Ｇ２３において、ユーザが、例えばフォルダ名「ｆｏｌｄｅｒ３」を選択すると、上記で説明したステップＳ２４０２〜ステップＳ２４１０の処理が実行され、図２３（ｄ）に示すようなフォルダ選択画面Ｇ２４が表示される。
【０１８０】
そして、後述の処理において、ユーザが図２３（ｄ）において「ＯＫ」ボタンを選択することで、外部ストレージシステム４０２上のフォルダ「ｆｏｌｄｅｒ３」に対して、図２３（ａ）で選択された画像データが保存される。
【０１８１】
ステップＳ２４１１〜ステップＳ２４１３の処理は、それぞれ、図２２におけるステップＳ２２１０〜ステップＳ２２１２の処理と同様であるため、説明を省略する。
【０１８２】
以上で説明したように、本実施形態に係る情報処理システム１は、指定されたフォルダ以下の１階層のフォルダを含むフォルダ情報を取得できる外部ストレージシステム４０に対して、デジタルカメラ５０に格納されたデータの保存を行うことができる。
【０１８３】
なお、スキャン配信部２３は、受付手段の一例である。取得方法特定部２２は、特定手段の一例である。スキャン配信部２３及びフォルダ情報取得部３３は、第１の取得手段の一例である。ストレージサービス情報記憶部３５は、第１の記憶手段の一例である。キャッシュ情報記憶部２５は、第２の記憶手段及び第３の記憶手段の一例である。
【０１８４】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１８５】
１      情報処理システム
１０    画像形成装置
１１    表示部
１２    ユーザ操作受付部
１３    フォルダ情報表示部
１４    スキャン実行部
２０    サービス提供装置
２１    スキャン制御部
２２    取得方法特定部
２３    スキャン配信部
３０    外部サービス連携装置
３１    ストレージサービス情報管理部
３２    外部ストレージ通信部
３３    フォルダ情報取得部
３４    データアップロード部
３５    ストレージサービス情報記憶部
４０    外部ストレージシステム
【先行技術文献】
【特許文献】
【０１８６】
【特許文献１】特開２０１３−９２８３３号公報
【図１】
0006536309.tif 000002
【図２】
0006536309.tif 000003
【図３】
0006536309.tif 000004
【図４】
0006536309.tif 000005
【図５】
0006536309.tif 000006
【図６】
0006536309.tif 000007
【図７】
0006536309.tif 000008
【図８】
0006536309.tif 000009
【図９】
0006536309.tif 000010
【図１０】
0006536309.tif 000011
【図１１】
0006536309.tif 000012
【図１２】
0006536309.tif 000013
【図１３】
0006536309.tif 000014
【図１４】
0006536309.tif 000015
【図１５】
0006536309.tif 000016
【図１６】
0006536309.tif 000017
【図１７】
0006536309.tif 000018
【図１８】
0006536309.tif 000019
【図１９】
0006536309.tif 000020
【図２０】
0006536309.tif 000021
【図２１】
0006536309.tif 000022
【図２２】
0006536309.tif 000023
【図２３】
0006536309.tif 000024
【図２４】
0006536309.tif 000025