以下、本発明の実施形態について図面を参照しながら詳細に説明する。
[第1の実施形態]
<システム構成>
まず、第1の実施形態に係る情報処理システム1のシステム構成について説明する。図1は、第1の実施形態に係る情報処理システムの一例の構成図である。図1に示される情報処理システム1において、サービス提供環境E2、ユーザ環境E1及び外部ストレージシステム40等は、インターネット等の広域的なネットワークN1を介して通信可能に接続されている。
サービス提供環境E2は、ネットワークを介してクラウドサービス等の外部サービスを提供するシステム環境である。なお、本実施の形態では、外部サービスの具体例としてクラウドサービスを採用して説明するが、ASP(Application Service Provider)によって提供されるサービスやWebサービス等、ネットワークを介して提供されるサービスに関して本実施の形態が適用されてもよい。
サービス提供環境E2は、一台以上の情報処理装置で実現されるサービス提供装置20と、一台以上の情報処理装置で実現される外部サービス連携装置30とを有する。ただし、サービス提供装置20及び外部サービス連携装置30は、一台の情報処理装置で実現されていてもよい。
サービス提供装置20は、ネットワークを介して所定のサービスを提供する。例えば、サービス提供装置20は、ユーザ環境E1の画像形成装置10において原稿をスキャンすることにより生成された画像データを、指定された保存先(外部ストレージシステム40上の指定されたフォルダ)に保存するサービスを提供する。
また、外部サービス連携装置30は、サービス提供装置20と外部ストレージシステム40との仲介を行う。例えば、外部サービス連携装置30は、サービス提供装置20からの要求に応じて、画像データの保存先のフォルダを指定するためのフォルダ情報を、外部ストレージシステム40から取得する。
本実施形態では、サービス提供環境E2は、クラウドサービスの一例として、外部ストレージシステム40と連携してクラウドストレージサービス(以降、単に「ストレージサービス」という)を提供するものとして説明する。より具体的には、後述するように、画像形成装置10で原稿をスキャンして生成された画像データを、ストレージサービスを提供する外部ストレージシステム40の指定されたフォルダに保存する場合について説明する。ただし、サービス提供環境E2により提供されるクラウドサービスは、ストレージサービスに限られない。例えば、画像形成装置10で原稿をスキャンして生成された画像データをOCR(Optical Character Reader)処理するクラウドサービスや所定の言語で記載されたテキストデータを他の言語に翻訳処理するクラウドサービス等であってもよい。
なお、サービス提供装置20の全部又は一部、外部サービス連携装置30の全部又は一部は、それぞれユーザ環境E1に設置されていてもよい。すなわち、サービス提供装置20及び外部サービス連携装置30を構成するそれぞれの情報処理装置の全部又は一部は、ユーザ環境E1に包含されていてもよい。
ユーザ環境E1は、例えば画像形成装置10を使用するユーザである企業等におけるシステム環境である。ユーザ環境E1において、一台以上の画像形成装置10がLAN(Local Area Network)等のネットワークに接続されている。また、ユーザ環境E1には、例えば、ユーザがストレージサービスにおける自身のデフォルト(標準)の保存先の設定やアカウントの設定等を行うためのPC端末等が含まれていてもよい。
なお、本実施形態に係る画像形成装置10は、スキャン機能を有する画像形成装置である。ただし、スキャン機能以外に、印刷、コピー、又はファクス(FAX)通信等の機能を有する複合機が画像形成装置10として用いられてもよい。
外部ストレージシステム40は、ネットワークを介してストレージサービス(又はオンラインストレージ)と呼ばれるクラウドサービスを提供するコンピュータシステムである。ストレージサービスとは、外部ストレージシステム40のストレージの記憶領域を貸し出すサービスである。本実施形態では、外部ストレージシステム40によって貸し出される記憶領域は、サービス提供装置20によって画像形成装置10に提供されるストレージサービスにおいて、画像データの保存先となる。すなわち、画像形成装置10において生成された画像データは、外部ストレージシステム40の記憶領域に割り当てられたフォルダに保存される。以降では、複数の外部ストレージシステム40について、各々を区別するときは、外部ストレージシステム401、外部ストレージシステム402、・・・と記載する。
なお、外部ストレージシステム40は、複数台の情報処理装置によって実現されるシステムであってもよい。また、図1に示される情報処理システム1の構成は一例であって、他の構成であってもよい。
<ハードウェア構成>
次に、第1の実施形態に係る情報処理システム1のハードウェア構成について説明する。
≪サービス提供装置、外部サービス連携装置≫
第1の実施形態に係るサービス提供装置20及び外部サービス連携装置30は、例えば図2に示すようなハードウェア構成により実現される。図2は、コンピュータの一例のハードウェア構成図である。図2のコンピュータ100は、入力装置101と、表示装置102と、外部I/F103と、RAM(Random Access Memory)104と、ROM(Read Only Memory)105と、CPU(Central Processing Unit)106と、通信I/F107と、HDD(Hard Disk Drive)108とを備え、それぞれがバスBで接続されている。
入力装置101はキーボードやマウス、タッチパネル等を含み、ユーザが各操作信号を入力するのに用いられる。表示装置102はディスプレイ等を含み、コンピュータ100による処理結果を表示する。なお、入力装置101及び表示装置102は必要なときに接続して利用する形態であってもよい。
通信I/F107はコンピュータ100をネットワークN1に接続するインタフェースである。これにより、コンピュータ100は通信I/F107を介してデータ通信を行うことができる。
また、HDD108は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、コンピュータ100全体を制御する基本ソフトウェアであるOS(Operating System)、及びOS上において各種機能を提供するアプリケーションソフトウェア等がある。なお、コンピュータ100はHDD108に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置(例えばソリッドステートドライブ:SSD)を利用するものであってもよい。
HDD108は格納しているプログラムやデータを所定のファイルシステム及び/又はDBにより管理している。外部I/F103は、外部装置とのインタフェースである。外部装置には、記録媒体103a等がある。
これにより、コンピュータ100は外部I/F103を介して記録媒体103aの読み取り及び/又は書き込みを行うことができる。記録媒体103aにはフレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
ROM105は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105にはコンピュータ100の起動時に実行されるBIOS、OS設定、及びネットワーク設定等のプログラムやデータが格納されている。RAM104はプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU106は、ROM105やHDD108等の記憶装置からプログラムやデータをRAM104上に読み出し、処理を実行することで、コンピュータ100全体の制御や機能を実現する演算装置である。サービス提供装置20及び外部サービス連携装置30は上記ハードウェア構成のコンピュータ100により、後述する各種処理を実現できる。
≪画像形成装置≫
第1の実施形態に係る画像形成装置10は、例えば図3に示されるようなハードウェア構成により実現される。図3は、第1の実施形態に係る画像形成装置の一例のハードウェア構成図である。図3に示される画像形成装置10は、コントローラ201と、操作パネル202と、外部I/F203と、通信I/F204と、スキャナ205とを備える。
コントローラ201はCPU211と、RAM212と、ROM213と、NVRAM214と、HDD215とを備える。ROM213は、各種プログラムやデータが格納されている。RAM212はプログラムやデータを一時保持する。NVRAM214は、例えば設定情報等が格納されている。また、HDD215は各種プログラムやデータが格納されている。
CPU211は、ROM213やNVRAM214、HDD215等からプログラムやデータ、設定情報等をRAM212上に読み出し、処理を実行することで、画像形成装置10全体の制御や機能を実現する。
操作パネル202はユーザからの入力を受け付ける入力部と、表示を行う表示部とを備えている。外部I/F203は外部装置とのインタフェースである。外部装置には、記録媒体203a等がある。これにより、画像形成装置10は外部I/F203を介して記録媒体203aの読み取り及び/又は書き込みを行うことができる。記録媒体203aにはICカード、フレキシブルディスク、CD、DVD、SDメモリカード、USBメモリ等がある。
通信I/F204は、画像形成装置10をネットワークN1に接続するインタフェースである。これにより、画像形成装置10は通信I/F204を介してデータ通信を行うことができる。スキャナ205は原稿から画像データ(電子データ)を読み取るための読取装置である。
<ソフトウェア構成>
次に、第1の実施形態に係る情報処理システム1のソフトウェア構成について説明する。第1の実施形態に係る情報処理システム1は、例えば図4に示されるような処理ブロックにより実現することができる。図4は、第1の実施形態に係る情報処理システムの一例の処理ブロック図である。
画像形成装置10は、表示部11と、スキャン実行部14とを有する。また、表示部11は、ユーザ操作受付部12と、フォルダ情報表示部13とを有する。
ユーザ操作受付部12は、例えばCPU211、操作パネル202等により実現され、ユーザによる各種操作を受け付ける。例えば、ユーザ操作受付部12は、画像データの保存先のストレージサービスの指定操作、この指定されたストレージサービスにおける画像データの保存先のフォルダの選択(指定)操作、原稿のスキャン実行操作等の各種操作を受け付ける。
フォルダ情報表示部13は、例えばCPU211、操作パネル202等により実現され、サービス提供装置20から受け取ったフォルダ情報に基づき、画像データの保存先となるフォルダを選択(指定)するためのフォルダ選択画面を表示させる。
スキャン実行部14は、例えばCPU211、スキャナ205等により実現され、原稿をスキャンして画像データを生成する。また、スキャン実行部14は、生成した画像データを指定されたストレージサービスの指定された保存先フォルダに保存させるための要求(アップロード要求)を、サービス提供装置20に対して行う。
サービス提供装置20は、スキャン制御部21を有する。また、スキャン制御部21は、取得方法特定部22と、スキャン配信部23とを有する。なお、サービス提供装置20は、例えば、ストレージサービスから電子データを取得(ダウンロード)して画像形成装置10で印刷等を行うサービスを提供するプリント制御部等を有していてもよい。
取得方法特定部22は、例えばCPU106等により実現され、後述するストレージサービス情報35Dを参照して、フォルダ情報を外部ストレージシステム40から取得するための取得方法を特定する。
一般に、フォルダ情報は、外部ストレージシステム40が公開するWebAPIを用いて取得することができるが、外部ストレージシステム40により公開されたWebAPIによってフォルダ情報の取得方法が異なる。例えば、指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するWebAPIを公開している外部ストレージシステム401が存在する一方、このようなWebAPIは公開しておらず、指定されたフォルダ以下の1階層のフォルダを含むフォルダ情報のみを取得するWebAPIを公開している外部ストレージシステム402も存在する。したがって、本実施形態では、取得方法特定部22により、該当の外部ストレージシステム40からフォルダ情報を取得するための取得方法が特定される。
以降では、外部ストレージシステム40によって公開された、フォルダ情報を取得するためのWebAPIは、上記に例示した「指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するWebAPI」又は「指定されたフォルダ以下の1階層のフォルダを含むフォルダ情報のみを取得するWebAPI」のいずれかであるものとする。ただし、フォルダ情報を取得するためのWebAPIは、これらに限られず、例えば、「指定されたフォルダ以下の所定の数の階層(例えば、2階層)のフォルダを含むフォルダ情報を取得するWebAPI」等であってもよい。換言しれば、外部ストレージシステム40からフォルダ情報を取得するための取得方法は、上記で述べたもの以外にも種々の取得方法が含まれていてもよい。
スキャン配信部23は、例えばCPU106、通信I/F107等により実現され、画像形成装置10からの要求に応じて、後述する外部サービス連携装置30のフォルダ情報取得部33又はデータアップロード部34に対して、フォルダ情報の取得要求又は画像データのアップロード要求を行う。
外部サービス連携装置30は、ストレージサービス情報管理部31と、外部ストレージ通信部32とを有する。また、外部ストレージ通信部32は、フォルダ情報取得部33と、データアップロード部34とを有する。さらに、外部サービス連携装置30は、ストレージサービス情報記憶部35を利用する。
ストレージサービス情報管理部31は、例えばCPU106等により実現され、サービス提供装置20の取得方法特定部22からの要求に応じて、後述するストレージサービス情報記憶部35からストレージサービス情報35Dを取得する。
フォルダ情報取得部33は、例えばCPU106、通信I/F107等により実現され、サービス提供装置20のスキャン配信部23からの要求に応じて、外部ストレージシステム40に対してフォルダ情報の取得要求を行う。なお、このときフォルダ情報取得部33は、サービス提供装置20の取得方法特定部22により特定された取得方法に応じた取得要求を行う。
データアップロード部34は、例えばCPU106、通信I/F107等により実現され、サービス提供装置20のスキャン配信部23からの要求に応じて、外部ストレージシステム40に対して画像データのアップロード要求を行う。
ストレージサービス情報記憶部35は、例えばHDD108又は外部サービス連携装置30とネットワークを介して接続された記憶装置等により実現され、ストレージサービス情報35Dを記憶する。
ここで、ストレージサービス情報35Dのデータ構成について説明する。図5は、ストレージサービス情報の一例の構成図である。図5に示すように、ストレージサービス情報35Dは、外部ストレージシステム40が提供するストレージサービスの名称を示す「ストレージサービス名」と、ストレージサービスにネットワークN1を介して接続するための「ホスト名」と、ストレージサービスを利用する際に用いる「認証方法」と、ストレージサービスからフォルダ情報を取得するための取得方法を示す「フォルダ情報の取得方法」とを有する。なお、ストレージサービス情報35Dは、上記のデータ項目の他、例えば、ストレージサービスを一意に識別するためのストレージサービスIDのデータ項目等を有していてもよい。
ここで、「フォルダ情報の取得方法」のデータ項目において、「Bundle」と指定されているストレージサービス(例えば、「Storage1」)は、指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するWebAPIを公開しているストレージサービスである。したがって、外部サービス連携装置30のフォルダ情報取得部33は、このようなストレージサービスに対しては、指定されたフォルダ以下のすべての階層のフォルダを含むフォルダ情報を取得するための取得要求を行う。
他方で、「フォルダ情報の取得方法」のデータ項目において、「OnlySubFolder」と指定されているストレージサービス(例えば、「Storage2」)は、指定されたフォルダ以下の1階層のフォルダを含むフォルダ情報のみを取得するWebAPIを公開しているストレージサービスである。したがって、外部サービス連携装置30のフォルダ情報取得部33は、このようなストレージサービスに対しては、指定されたフォルダ以下の1階層のフォルダを含むフォルダ情報のみを取得するための取得要求を行う。
<処理の詳細>
次に、第1の実施形態に係る情報処理システム1の処理の詳細について説明する。第1の実施形態に係る情報処理システム1では、ユーザが画像形成装置10において原稿をスキャンして生成された画像データをストレージサービス上の選択(指定)されたフォルダに保存する場合の処理(すなわち、スキャン配信処理)について説明する。このとき、画像形成装置10上でユーザが保存先のフォルダを選択するためのフォルダ選択画面は、外部ストレージシステム40から取得されるフォルダ情報に基づいて生成される。以降では、外部ストレージシステム40からフォルダ情報を取得するための取得方法が「Bundle」である場合と、「OnlySubFolder」である場合とに分けて説明する。
まず、ユーザが外部ストレージシステム401(フォルダ情報の取得方法が「Bundle」であるストレージサービス「storage1」)上の所望のフォルダに画像データの保存する場合について説明する。図6は、第1の実施形態に係るスキャン配信処理の一例のシーケンス図である。ここで、外部ストレージシステム401における当該ユーザのフォルダの階層構造は、図7に示すようなものであるとする。そして、当該ユーザは、フォルダ名「folder3」に当該画像データの保存を所望しているものとする。
ステップS601において、ユーザは、画像形成装置10上において所望のストレージサービスを指定して、このストレージサービスにおける画像データの保存先フォルダを選択するためのフォルダ選択画面を表示させるための操作を行う。ユーザにより当該操作が行われると、画像形成装置10のユーザ操作受付部12は、当該操作を受け付ける。本実施形態では、ユーザは、ストレージサービス名「storage1」を指定して、ユーザのデフォルトとして設定されているフォルダ(例えばフォルダ名「user1」)におけるフォルダ選択画面を表示させるための操作を行ったものとする。なお、例えば、ユーザが画像形成装置10にログインすると、予め設定されたストレージサービスが指定されるようにしてもよい。
ステップS602において、表示部11のユーザ操作受付部12は、ユーザによる上記操作を受け付けると、フォルダ選択画面を操作パネル202上に表示させるためのフォルダ情報の取得要求を、サービス提供装置20のスキャン制御部21に対して送信する。なお、フォルダ情報の取得要求には、指定されたストレージサービスに関する情報(例えば、ストレージサービス名)と、ユーザに関する情報(例えば、ユーザ名)とが含まれる。
ステップS603において、スキャン制御部21のスキャン配信部23は、フォルダ情報の取得要求を受け付けると、フォルダ情報の取得方法の特定を、取得方法特定部22に対して依頼する。そして、取得方法特定部22は、フォルダ情報の取得方法の取得要求を外部サービス連携装置30のストレージサービス情報管理部31に対して送信する。なお、当該取得要求には、指定されたストレージサービスに関する情報(例えば、ストレージサービス名)が含まれる。
ステップS604において、ストレージサービス情報管理部31は、フォルダ情報の取得方法の取得要求を受け付けると、ストレージサービス情報35Dを参照し、該当のストレージサービスのストレージサービス情報を、取得方法特定部22に対して返信する。本実施形態では、フォルダ情報の取得方法の取得要求に含まれるストレージサービスに関する情報(ストレージサービス名「storage1」)に基づき、ストレージサービス情報35Dから1行目のレコードが、取得方法特定部22に対して返信される。ここで取得方法特定部22に返信される情報は、例えば、図8(a)に示すようなデータ形式で返信される。図8(a)では、ストレージサービス情報35Dの「ストレージサービス名」が「name」、「ホスト名」が「host」、「認証方法」が「auth_type」、「フォルダ情報の取得方法」が「folder_acquisition_type」として指定されている。これにより、取得方法特定部22は、ストレージサービス情報管理部31から返信された情報の「folder_acquisition_type」を参照することにより、指定されたストレージサービス(ストレージサービス名「storage1」)のフォルダ情報の取得方法を特定することができる。
なお、図8(a)において「auth_type」に指定された「oauth」は、外部ストレージシステム401にユーザがログインする際に用いる認証方法としてOAuthを用いることを示している。認証方法としてOAuthを用いて予め所定の設定を行っておくことで、ユーザは、フォルダ選択画面を表示させる際の外部ストレージシステム401に対する認証操作(例えば、ユーザ名及びパスワードの入力操作)を不要とすることができる。
ステップS605において、スキャン制御部21のスキャン配信部23は、上記のステップS604で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。ここで生成されるフォルダ情報の取得要求は、例えば図9(a)に示すように、HTTP(Hypertext Transfer Protocol)リクエストのGETメソッドで記述される。図9(a)に示すHTTPリクエストのURI(Uniform Resource Identifier)において、「folder_id=xxx」及び「hierarchy=all」が指定されている。これは、フォルダ毎に一意に付与された識別情報であるフォルダIDが「xxx」のフォルダ以下の階層のすべてのフォルダ情報を取得する要求であることを示している。すなわち、スキャン制御部21のスキャン配信部23は、上記のステップS604で特定されたフォルダ情報の取得方法が「Bundle」である場合、URIの「hierarchy」を「all」と指定したHTTPリクエストを生成する。後述するように、このようなフォルダ情報の取得要求を、上記のステップS604で取得されたhost(www.storage1.com)宛に送信することでフォルダ情報の取得が行われる。
なお、ここで、「folder_id」に指定されるフォルダIDは、ユーザのデフォルトとして予め設定されているフォルダ(通常は、ユーザの最上階層のフォルダ)のフォルダIDが指定される。例えば、外部ストレージシステム401におけるユーザのフォルダの階層構造が図7に示すようなものである場合、「folder_id」は、フォルダ名「user1」のフォルダIDが指定される。
ステップS606において、スキャン制御部21のスキャン配信部23は、上記のステップS605で生成したフォルダ情報の取得要求を、外部サービス連携装置30の外部ストレージ通信部32に対して送信する。
ステップS607において、外部ストレージ通信部32のフォルダ情報取得部33は、受け取ったフォルダ情報の取得要求を、指定された外部ストレージシステム401に対して送信する。すなわち、外部ストレージ通信部32のフォルダ情報取得部33は、上記のステップS604で取得されたhost宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム401は、該当のフォルダ情報を外部サービス連携装置30を介して、サービス提供装置20に対して返信する。
ここで、該当のフォルダ情報とは、例えば図10に示すように、フォルダ名「user1」のフォルダ以下のすべての階層のフォルダのフォルダ情報である。すなわち、フォルダ名「user1」、「folder1」、「folder2」、及び「folder3」のフォルダ情報である。図10に示すように、フォルダ情報には、フォルダIDを示す「id」、フォルダ名を示す「name」、サブフォルダ(1つ下位の階層のフォルダ)のフォルダ情報が指定される「subfolders」、ユーザのデフォルトとして設定されているフォルダからのパス情報(相対パス)を示す「path」、サブフォルダが存在するか否かを示す「has_subfolder」等が指定される。ここで、「has_subfolder」に「true」が指定されている場合、「subfolders」にサブフォルダのフォルダ情報が指定されていることを示している。一方、「has_subfolder」に「false」が指定されている場合、「subfolders」にサブフォルダのフォルダ情報が指定されていない(すなわち、サブフォルダが存在しない)ことを示している。すなわち、「has_subfolder」は、サブフォルダ存在フラグである。
なお、例えば、サービス提供装置20により、ストレージサービス上に保存されている電子データを画像形成装置10で印刷するようなサービスが提供される場合には、上述したフォルダ情報には、フォルダに保存されているファイルに関する情報を含まれる。したがって、この場合、ユーザは画像形成装置10上に表示されたファイル選択画面において所望のファイルを選択することで、このファイルの印刷等を行うことができる。
ステップS608において、スキャン制御部21のスキャン配信部23は、受け取ったフォルダ情報を画像形成装置10の表示部11に対して返信する。
ステップS609において、表示部11のフォルダ情報表示部13は、ユーザ操作受付部12がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図11(a)〜図11(c)に示すようなフォルダ選択画面G11〜G13を生成する。そして、フォルダ情報表示部13は、フォルダ名「user1」におけるフォルダを選択するための画面を示す図11(a)のフォルダ選択画面G11を表示させる。
図11(a)のフォルダ選択画面G11において、ユーザがフォルダ名「folder1」を選択すると、図11(b)に示すようなフォルダ選択画面G12が表示される。さらに、図11(b)のフォルダ選択画面G12において、ユーザがフォルダ名「folder3」を選択すると、図11(c)に示すようなフォルダ選択画面G13が表示される。そして、ユーザが図11(c)において「OK」ボタンを選択することで、この「folder3」が保存先フォルダとして選択される。このようにして選択された外部ストレージシステム40上のフォルダ「folder3」に対して、後述する処理において生成された画像データが保存される。
なお、上記において、図11(a)〜図11(c)に示すようなフォルダ選択画面G11〜G13の生成を画像形成装置10において行ったが、これはサービス提供装置20において行われてもよい。すなわち、サービス提供装置20は、外部ストレージシステム40から外部サービス連携装置30を介してフォルダ情報を受け取ると、このフォルダ情報からフォルダ選択画面を生成する。そして、サービス提供装置20は、生成したフォルダ選択画面を画像形成装置10に送信するようにしてもよい。
ステップS610において、ユーザは、画像形成装置10上において、スキャン配信を行うための操作を行う。これは、例えば、画像形成装置10のスキャナに原稿がセットされた状態で、上記のステップS609で説明したように「OK」ボタンを選択して「folder3」を画像データの保存先フォルダとして選択する操作である。そして、ユーザにより当該操作が行われると、画像形成装置10のユーザ操作受付部12は、当該操作を受け付ける。
ステップS611において、ユーザ操作受付部12は、ユーザによる当該操作を受け付けると、原稿のスキャン及びスキャンにより生成される画像データの配信をスキャン実行部14に対して要求する。なお、当該要求には、指定されたストレージサービスに関する情報(例えば、ストレージサービス名)と、上記のステップS609でユーザにより選択された当該ストレージサービスにおける保存先のフォルダに関する情報(例えば、フォルダID)とが含まれる。
ステップS612において、スキャン実行部14は、原稿のスキャンを行って画像データを生成する。
ステップS613において、スキャン実行部14は、上記のステップS612で生成された画像データを指定されたストレージサービスの選択されたフォルダに保存するためのアップロード要求を、サービス提供装置20のスキャン制御部21に対して送信する。なお、当該アップロード要求には、指定されたストレージサービスに関する情報と、選択された保存先のフォルダに関する情報と、上記のステップS612でスキャン実行部14により生成された画像データとが含まれる。
ステップS614において、スキャン制御部21のスキャン配信部23は、画像形成装置10から受け付けたアップロード要求を、外部サービス連携装置30の外部ストレージ通信部32に送信する。
ステップS615において、外部ストレージ通信部32のデータアップロード部34は、該当の外部ストレージシステム401に対して、保存先のフォルダに関する情報と、生成された画像データとを含むアップロード要求を送信する。これにより、指定された外部ストレージシステム401の選択されたフォルダに、原稿をスキャンすることにより生成された画像データが保存される。
以上で説明したように、本実施形態に係る情報処理システム1は、指定されたフォルダ以下のすべての階層のフォルダのフォルダ情報を一括して取得できる外部ストレージシステム40に対して、データの保存を行うことができる。
次に、ユーザが外部ストレージシステム402(フォルダ情報の取得方法が「OnlySubFolder」であるストレージサービス)に対して画像データの保存を所望する場合について説明する。図12は、第1の実施形態に係るスキャン配信処理の他の例のシーケンス図である。ここで、外部ストレージシステム402における当該ユーザのフォルダの階層構造は、外部ストレージシステム401と同様に、図7に示すようなものであるとする。そして、当該ユーザは、フォルダ名「folder3」に当該画像データの保存を所望しているものとする。
なお、フォルダ情報の取得方法が「OnlySubFolder」である場合、フォルダ情報は1階層毎に取得される。したがって、「user1」のフォルダIDを指定してフォルダ情報の取得を行った場合、図13の点線1100で示す範囲のフォルダ(すなわち、「user1」の直下のフォルダ)のフォルダ情報が取得される。また、「folder1」のフォルダIDを指定してフォルダ情報の取得を行った場合、図13の点線1200で示す範囲のフォルダ(すなわち、「folder3」の直下のフォルダ)のフォルダ情報が取得される。このように、フォルダ情報の取得方法が「OnlySubFolder」である場合、取得されるフォルダ情報は、指定されたフォルダIDのフォルダ情報と、指定されたフォルダIDの直下に存在するフォルダのフォルダ情報である。
ステップS1201において、ユーザは、画像形成装置10上において所望のストレージサービスを指定して、このストレージサービスにおける画像データの保存先フォルダを選択するためのフォルダ選択画面を表示させるための操作を行う。ユーザにより当該操作が行われると、画像形成装置10のユーザ操作受付部12は、当該操作を受け付ける。本実施形態では、ユーザは、ストレージサービス名「storage2」を指定して、ユーザのデフォルトとして設定されているフォルダ(例えばフォルダ名「user1」)におけるフォルダ選択画面G11を表示させるための操作を行ったものとする。なお、例えば、ユーザが画像形成装置10にログインすると、予め設定されたストレージサービスが指定されるようにしてもよい。
ステップS1202〜ステップS1204は、それぞれ、図6におけるステップS602〜ステップS604の処理と同様であるため、説明を省略する。ただし、ステップS1204において、サービス提供装置20のストレージサービス情報管理部31は、ユーザにより指定されたストレージサービス名「storage2」に基づき、ストレージサービス情報35Dの2行目のレコードが、取得方法特定部22に対して返信される。すなわち、ストレージサービス情報管理部31は、例えば、図8(b)に示すようなデータ形式の情報が取得方法特定部22に返信される。図8(b)に示すように、「folder_acquisition_type」には、フォルダの取得方法を示す「OnlySubFolder」が指定されており、取得方法特定部22は、これを参照することにより、指定されたストレージサービス(ストレージサービス名「storage2」)のフォルダ情報の取得方法を特定することができる。
ステップS1205において、スキャン制御部21のスキャン配信部23は、上記のステップS1204で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。ここで生成されるフォルダ情報の取得要求は、例えば図9(b)に示すようにHTTPリクエストのGETメソッドで記述される。図9(b)に示すHTTPリクエストのURIにおいて、「folder_id=xxx」及び「hierarchy=1」が指定されている。これは、フォルダIDが「xxx」のフォルダ以下の1階層のフォルダ(すなわち、フォルダIDが「xxx」のフォルダ及びこのフォルダの直下のフォルダ)のフォルダ情報を取得する要求であることを示している。すなわち、スキャン制御部21のスキャン配信部23は、上記のステップS1204で特定されたフォルダ情報の取得方法が「OnlySubFolder」である場合、URIの「hierarchy」を「1」と指定したHTTPリクエストを生成する。後述するように、このようなフォルダ情報の取得要求を、上記のステップS1204で取得されたhost(www.storage2.co.jp)宛に送信することでフォルダ情報の取得が行われる。
ステップS1206において、スキャン制御部21のスキャン配信部23は、上記のステップS1205で生成したフォルダ情報の取得要求を、外部サービス連携装置30の外部ストレージ通信部32に対して送信する。
ステップS1207において、外部ストレージ通信部32のフォルダ情報取得部33は、受け取ったフォルダ情報の取得要求を、指定された外部ストレージシステム402に対して送信する。すなわち、外部ストレージ通信部32のフォルダ情報取得部33は、上記のステップS1204で取得されたhost宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム402は、該当のフォルダ情報を外部サービス連携装置30を介して、サービス提供装置20に対して返信する。
ここで、該当のフォルダ情報とは、例えば図14(a)に示すように、フォルダ名「user1」のフォルダ以下の1階層のフォルダのフォルダ情報である。すなわち、フォルダ名「user1」のフォルダ、並びにこのフォルダの直下に存在する「folder1」及び「folder2」のフォルダのフォルダ情報である。このように、フォルダ情報の取得要求のURIにおいて、「hierarchy=1」と指定されている場合、「folder_id」で指定されているフォルダIDのフォルダの直下に存在するフォルダを含むフォルダ情報が取得される。なお、この場合、「folder1」及び「folder2」のフォルダ情報において、サブフォルダ存在フラグ2100及び2200は、それぞれ「false」が指定される。
また、スキャン配信部23は、該当のフォルダ情報が返信されると、指定されたフォルダIDにサブフォルダ情報が指定されているか否かを判定する。そして、サブフォルダ情報が指定されている場合、ステップS1208の処理を行う。
例えば、図14(a)に示すようなフォルダ情報が返信された場合、指定されたフォルダID「xxx」(フォルダ名「user1」)には、「subfolder」として「folder1」及び「folder2」のフォルダ情報(すなわち、サブフォルダ情報)が指定されているため、ステップS1208の処理を行う。一方、例えば図14(c)に示すようなフォルダ情報が返信された場合、指定されたフォルダID「zzz」(フォルダ名「folder3」)には、「subfolder」が指定されていないため、ステップS1208の処理は行われない。なお、図14(c)に示すフォルダ情報は、後述するように、ユーザがフォルダ選択画面G12においてフォルダ名「folder3」のフォルダを選択した場合に取得されるフォルダ情報である。
ステップS1208において、スキャン配信部23は、フォルダ情報の「subfolder」に指定されているサブフォルダ情報のサブフォルダ存在フラグを「true」に書き換える。すなわち、例えば図14(a)に示すようなフォルダ情報の場合、サブフォルダ存在フラグ2100及び2200を、「false」から「true」に書き換える。また、例えば図14(b)に示すようなフォルダ情報の場合、サブフォルダ存在フラグ2300を、「false」から「true」に書き換える。
これは、フォルダ情報を受け取った画像形成装置10がフォルダ情報のサブフォルダ存在フラグを参照して、さらに下の階層にフォルダが存在するか否かを判定する場合があるためである。すなわち、実際にはさらに下の階層にフォルダが存在するにも関わらず、サブフォルダ存在フラグが「false」であるためにさらに下の階層にはフォルダが存在しないと判定されてしまうのを防止するためである。
ステップS1209において、スキャン制御部21のスキャン配信部23は、フォルダ情報を画像形成装置10の表示部11に対して返信する。ここで画像形成装置10の表示部11に対して返信されるフォルダ情報は、上記のステップS1208の処理が行われた場合は、サブフォルダ存在フラグを書き換えた後のフォルダ情報である。
ステップS1210において、表示部11のフォルダ情報表示部13は、ユーザ操作受付部12がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図11(a)に示すようなフォルダ選択画面G11を生成する。そして、フォルダ情報表示部13は、フォルダ名「user1」におけるフォルダを選択するための画面を示す図11(a)のフォルダ選択画面G11を表示させる。
なお、上述したように、このとき、フォルダ情報表示部13は、受け付けたフォルダ情報においてサブフォルダ存在フラグを参照して、さらに下の階層にフォルダが存在するか否かを判定してもよい。そして、画像形成装置10は、判定結果に応じて、例えば、さらに下の階層に存在するフォルダのフォルダ情報の取得要求をサービス提供装置20に送信してもよい。
次に、図11(a)に示すようなフォルダ選択画面G11においてユーザが、例えばフォルダ名「folder1」を選択すると、上記で説明したステップS1202〜ステップS1210の処理が実行され、図11(b)に示すようなフォルダ選択画面G12が表示される。すなわち、この場合、ステップS1205で「folder_id」として「folder1」のフォルダID「yyy1」が指定されたフォルダ情報の取得要求が生成される。すると、ステップS1207において、例えば図14(b)に示すように、フォルダ名「folder1」のフォルダ、及びこのフォルダの直下に存在する「folder3」のフォルダのフォルダ情報が取得される。そして、ステップS1210で図11(b)に示すようなフォルダ選択画面G12が表示される。
同様に、図11(b)に示すようなフォルダ選択画面G12において、ユーザが、例えばフォルダ名「folder3」を選択すると、上記で説明したステップS1202〜ステップS1210の処理が実行され、図11(c)に示すようなフォルダ選択画面G13が表示される。そして、ユーザが図11(c)において「OK」ボタンを選択することで、この「folder3」が保存先フォルダとして選択される。
なお、以降のステップS1211〜ステップS1216の処理は、それぞれ、図6におけるステップS610〜ステップS615の処理と同様であるため、説明を省略する。
以上で説明したように、本実施形態に係る情報処理システム1は、指定されたフォルダ以下の1階層のフォルダを含むフォルダ情報を取得できる外部ストレージシステム40に対して、データの保存を行うことができる。このとき、本実施形態に係る情報処理システム1では、取得されたフォルダ情報毎に(すなわち、1階層のフォルダ毎に)、フォルダ選択画面の生成及び表示を行う。したがって、指定されたフォルダ以下のフォルダ情報を一括して取得することができない(つまり、1階層毎のフォルダ情報しか取得することができない)外部ストレージシステム40に対してデータの保存を所望する場合においても、フォルダ選択画面の表示が遅滞なく行われる。これにより、ユーザ待ち時間が削減され、ユーザは、保存先のフォルダの選択操作をストレスなく行うことができる。
[第2の実施形態]
次に、第2の実施形態に係る情報処理システム1について説明する。第2の実施形態に係る情報処理システム1では、フォルダ情報の取得方法が「OnlySubFoloder」である外部ストレージシステム40において、フォルダ情報をバックグラウンドで順次取得し、キャッシュさせておくものである。すなわち、例えば、外部ストレージシステム402における当該ユーザのフォルダの階層構造が図15に示すようなものであるとする。このとき、点線3100で示す範囲のフォルダ情報が既に取得済みであり、「folder1」及び「folder2」を選択するためのフォルダ選択画面が画像形成装置10に表示されている場合、第2の実施形態に係る情報処理システム1では、点線3200〜3500で示す範囲のフォルダ情報もバックグラウンドで取得し、キャッシュさせておく。そして、画像形成装置10から例えば「folder1」が選択され、「folder3」及び「folder4」を選択するためのフォルダ選択画面の表示操作がなされた場合、キャッシュしておいた点線3200に示す範囲のフォルダ情報を画像形成装置10に返信するものである。なお、以降では、第1の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第1の実施形態と同一の符号を用いて、その説明を省略する。
<ソフトウェア構成>
まず、第2の実施形態に係る情報処理システム1のソフトウェア構成について説明する。第2の実施形態に係る情報処理システム1は、例えば図16に示されるような処理ブロックにより実現することができる。図16は、第2の実施形態に係る情報処理システムの一例の処理ブロック図である。第2の実施形態に係る情報処理システム1では、スキャン制御部21Aは、さらにキャッシュ情報管理部24を有する点が第1の実施形態と異なる。また、第2の実施形態に係るサービス提供装置20は、キャッシュ情報記憶部25を利用する点が第1の実施形態と異なる。
キャッシュ情報管理部24は、例えばCPU106等により実現され、外部サービス連携装置30を介して、外部ストレージシステム40から取得されたフォルダ情報を、キャッシュ情報記憶部25にキャッシュとして保存させる。また、スキャン配信部23からの要求に応じて、キャッシュとして保存されているフォルダ情報を取得する。
キャッシュ情報記憶部25は、例えばHDD108又はサービス提供装置20とネットワークを介して接続された記憶装置等により実現され、外部サービス連携装置30を介して外部ストレージシステム40から取得したフォルダ情報を、キャッシュとして保存する。
<処理の詳細>
次に、第2の実施形態に係る情報処理システム1の処理の詳細について説明する。第2の実施形態に係るスキャン配信処理では、上述したように、フォルダ情報の取得方法が「OnlySubFoloder」である外部ストレージシステム40において、フォルダ情報をバックグラウンドで順次取得し、キャッシュさせておく処理を行う。したがって、以降では、外部ストレージシステム40からフォルダ情報を取得するための取得方法が「OnlySubFolder」である場合について説明する。図17は、第2の実施形態に係るスキャン配信処理の一例のシーケンス図である。なお、図17では、図6のステップS610〜ステップS615で説明した処理を省略している。
ステップS1701及びステップS1702は、それぞれ、図12におけるステップS1201及びステップS1202の処理と同様であるため、説明を省略する。
ステップS1703において、スキャン制御部21Aのスキャン配信部23は、該当のフォルダ情報(例えば、ユーザのデフォルトとして設定されているフォルダのフォルダ情報やフォルダ選択画面において選択されたフォルダのフォルダ情報等)がキャッシュ情報記憶部25に存在するか否かの判定を依頼する。そして、キャッシュ情報管理部24は、該当のフォルダ情報がキャッシュ情報記憶部25に存在するか否かを判定する。
ここで、該当のフォルダ情報がキャッシュ情報記憶部25に存在する場合、以降の処理は行われずに、該当のフォルダ情報を画像形成装置10に対して返信する。そして、画像形成装置10の表示部11は、受け取ったフォルダ情報に基づきフォルダ選択画面を表示させる。以降では、該当のフォルダ情報はキャッシュ情報記憶部25に存在しないと判定されたものとして説明を続ける。
ステップS1704〜ステップS1711は、それぞれ、図12におけるステップS1203〜1210の処理と同様であるため、説明を省略する。これにより、例えば図11(a)に示すようなフォルダ選択画面G11が画像形成装置10に表示される。このとき、次のステップS1712〜ステップS1715で説明するように、サービス提供装置20は、外部サービス連携装置30を介して、外部ストレージシステム40からフォルダ情報をバックグラウンドで取得し、キャッシュ情報記憶部25にキャッシュとして保存させる。
ステップS1712において、スキャン制御部21のスキャン配信部23は、フォルダ情報の取得要求を生成する。ここで、生成されるフォルダ情報の取得要求は、例えば、図15において点線3100に示す範囲のフォルダ情報を既に取得済みである場合、点線3200に示す範囲のフォルダ情報を取得するための取得要求である。また、図15において点線3100及び点線3200に示す範囲のフォルダ情報を既に取得済みである場合、点線3300に示す範囲のフォルダ情報を取得するための取得要求である。さらに、図15において点線3100〜点線3300に示す範囲のフォルダ情報を既に取得済みである場合、点線3400に示す範囲のフォルダ情報を取得するための取得要求である。このように、フォルダ情報の取得要求は、例えば、図15において点線3100に示す範囲、点線3200に示す範囲、点線3300に示す範囲、点線3400に示す範囲、点線3500に示す範囲の順で生成される。したがって、フォルダ情報の取得も次のステップS1714においてこの順で行われる。
ただし、フォルダ情報の取得要求が生成される順(すなわち、フォルダ情報が取得される順)は、これに限られず、所定の優先順に応じて取得要求が生成(フォルダ情報が取得)されてもよい。所定の優先順は、例えば、図18に示すように、ユーザが画像形成装置10においてフォルダ名「folder3」におけるフォルダを選択するためのフォルダ選択画面を表示させている場合、この「folder3」より下位の階層に存在する点線3300及び点線3500に示す範囲のフォルダのフォルダ情報の取得要求を優先的に生成してもよい。他にも、例えば、フォルダIDの昇順又は降順等の優先順に応じて、フォルダ情報の取得要求が生成されてもよい。
ステップS1713において、スキャン制御部21Aのスキャン配信部23は、上記のステップS1712で生成したフォルダ情報の取得要求を、外部サービス連携装置30の外部ストレージ通信部32に対して送信する。
なお、情報処理システム1がサービス提供装置20を2台以上する場合、一のサービス提供装置20は、他のサービス提供装置20に対して上記のステップS1712及びステップS1713の処理を依頼してもよい。そして、一のサービス提供装置20は、他のサービス提供装置20が取得したフォルダ情報を、自身のキャッシュ情報記憶部25に保存(マージ)させるようにしてもよい。すなわち、複数のサービス提供装置20が相補的にフォルダ情報を取得して、一のキャッシュ情報記憶部25にフォルダ情報を保存させるようにしてもよい。
ステップS1714において、外部ストレージ通信部32のフォルダ情報取得部33は、受け取ったフォルダ情報の取得要求を、指定された外部ストレージシステム401に対して送信する。そして、外部ストレージシステム40は、該当のフォルダ情報を外部サービス連携装置30を介して、サービス提供装置20に対して返信する。
ステップS1715において、スキャン制御部21Aのスキャン配信部23は、上記のステップS1714で取得したフォルダ情報の保存を、キャッシュ情報管理部24に依頼する。そして、キャッシュ情報管理部24は、フォルダ情報を、キャッシュとしてキャッシュ情報記憶部25に保存させる。なお、このとき、キャッシュ情報管理部24は、外部ストレージシステム40におけるフォルダの格納先の絶対パスのパス情報(すなわち、ルートフォルダからの相対パス)又は親フォルダからの相対パスのパス情報を、フォルダ情報に関連付けて保存してもよい。これにより、例えば、ユーザが画像形成装置10において、表示させたいフォルダのパス情報を指定した場合等に、指定されたフォルダ選択画面が表示されるまでのユーザ待ち時間が削減させることができる。
以上のようなステップS1712〜ステップS1715の処理を、取得されたフォルダ情報にサブフォルダ情報が指定されている間(すなわち、指定されたフォルダIDのフォルダ情報のサブフォルダ存在フラグが「true」である間)、繰り返す。これにより、例えば図15において、点線3200〜3500に示す範囲のフォルダ情報が順次取得され、キャッシュとしてキャッシュ情報記憶部25に保存される。
なお、情報処理システム1がサービス提供装置20を2台以上する場合、それぞれのサービス提供装置20が有するキャッシュ情報記憶部25を所定のタイミングで同期(例えば、それぞれのサービス提供装置20が有するキャッシュ情報記憶部25の内容のマージ又は補完)させるようにしてもよい。
なお、上述したように、ステップS1711においてフォルダ選択画面が表示された後、ユーザが所望のフォルダを選択すると、図6で説明したステップS610〜ステップS615の処理が行われる。
以上で説明したように、本実施形態に係る情報処理システム1は、指定されたフォルダ以下の1階層のフォルダのフォルダ情報を取得できる外部ストレージシステム40に対して、データの保存を行うことができる。このとき、本実施形態に係る情報処理システム1では、1階層毎のフォルダ情報をバックグラウンドで取得し、キャッシュ情報記憶部25にキャッシュとして保存する。したがって、キャッシュされているフォルダ情報の取得要求が画像形成装置10からあった場合、フォルダ選択画面が表示されるまでのユーザ待ち時間がさらに削減される。
<まとめ>
以上の第1の実施形態に係る情報処理システム1によれば、指定されたフォルダ以下のフォルダ情報を一括して取得することができない(つまり、所定の数の階層毎(例えば、1か階層毎)のフォルダ情報しか取得することができない)外部ストレージシステム40に対してデータの保存を所望する場合においても、保存先のフォルダを選択するためのフォルダ選択画面が遅滞なく表示される。したがって、フォルダ選択画面が表示されるまでのユーザ待ち時間が削減される。これにより、ユーザは、画像形成装置10から外部ストレージシステム40を快適に利用することができる。
また、第2の実施形態に係る情報処理システム1によれば、指定されたフォルダ以下のフォルダ情報を一括して取得することができない場合、バックグラウンドでフォルダ情報が取得され、キャッシュとして保存される。したがって、フォルダ選択画面が表示されるまでのユーザ待ち時間がさらに削減される。
なお、第1及び第2の実施形態においては、入力元として画像処理装置の一例である画像形成装置10においてスキャンした画像データを、出力先として外部ストレージシステム40に保存する場合について説明したが、これに限られない。例えば、入力元としてはスキャンしたものに限られず、デジタルカメラ、携帯電話等で撮像された画像データであってもよいし、また、画像データに限られずPCで作成された文書データ、ICレコーダで作成された音声データ等の種々の電子データであってもよい。また、出力先としては、例えば、プロジェクタのような画像投影装置、デジタルサイネージ、プリンタ、会議システム等であってもよい。
その他、電子データの入力元又は出力先としては、電子データの入力手段又は出力手段として機能可能な機器であれば、他の機器を用いて、本実施形態の形態と同趣旨のサービスが実現されていてもよい。
[第3の実施形態]
次に、第3の実施形態に係る情報処理システム1について説明する。第3の実施形態に係る情報処理システム1では、サービス提供装置20と外部サービス連携装置30とが一台の情報処理装置で構成されているものである。また、第3の実施形態に係る情報処理システム1では、デジタルカメラで撮像された画像を外部ストレージシステム40にアップロードするものである。なお、以降では、第1の実施形態と実質的に同一の機能を有する箇所及び同一の処理を行う箇所については、第1の実施形態と同一の符号を用いて、その説明を省略する。
<システム構成>
まず、第3の実施形態に係る情報処理システム1のシステム構成について説明する。図19は、第3の実施形態に係る情報処理システムの一例の構成図である。
第3の実施形態に係る情報処理システム1では、ユーザ環境E1にデジタルカメラ50が含まれる点と、サービス提供環境E2にサービス提供装置60が含まれる点とが第1の実施形態と異なる。
ユーザ環境E1には、一台以上のデジタルカメラ50が含まれ、例えば無線LAN等のネットワークに接続されている。デジタルカメラ50は、ユーザが利用する機器である。ユーザは、デジタルカメラ50において選択した画像データを外部ストレージシステム40の指定した保存先(外部ストレージシステム40上の指定したフォルダ)に保存することができる。
サービス提供環境E1には、サービス提供装置60が含まれる。サービス提供装置60は、ユーザ環境E1のデジタルカメラ50において選択された画像データを外部ストレージシステム40の指定した保存先に保存するサービスを提供する。このとき、サービス提供装置60は、例えば、画像データの保存先のフォルダを指定するためのフォルダ情報を外部ストレージシステム40から取得する。
すなわち、第3の実施形態に係るサービス提供装置60は、第1の実施形態に係るサービス提供装置20と、第1の実施形態に係る外部サービス連携装置30とを一台の情報処理装置で構成したものである。
<ハードウェア構成>
次に、第3の実施形態に係る情報処理システム1に含まれるデジタルカメラ50のハードウェア構成について説明する。図20は、第3の実施形態に係るデジタルカメラの一例のハードウェア構成図である。
図20に示されるデジタルカメラ50は、入力装置301と、表示装置302と、外部I/F303と、RAM304と、ROM305と、CPU306と、通信I/F307と、フラッシュメモリ308と、撮像装置309とを備える。これらの各ハードウェアは、それぞれがバスB1で接続されている。
入力装置301は、タッチパネルや各種ボタン等であり、ユーザが各操作信号を入力するのに用いられる。表示装置302は、ディスプレイ等であり、デジタルカメラ50の処理結果を表示する。
通信I/F307は、デジタルカメラ50をネットワークN1に接続するインタフェースである。これにより、デジタルカメラ50は、通信I/F307を介してデータ通信を行うことができる。
外部I/F303は、外部装置とのインタフェースである。外部装置には、記録媒体303a等がある。これにより、デジタルカメラ50は、外部I/F303を介して記録媒体303aの読み取り及び/又は書き込みを行うことができる。
記録媒体303aには、SDメモリカードやUSBメモリ等がある。記録媒体303aには、例えば、撮像装置309により生成された画像データ等が格納される。
フラッシュメモリ308は、デジタルカメラ50の全体を制御するプログラム等を格納している不揮発性の記憶装置の一例である。ROM305は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM305には、各種の設定情報等が格納されている。RAM304は、プログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)である。
CPU306は、ROM305やフラッシュメモリ308からプログラムやデータをRAM304上に読み出し、処理を実行することで、デジタルカメラ50全体の制御や機能を実現する演算装置である。
撮像装置309は、撮像対象を撮像することにより画像データを生成する。撮像装置309により生成される画像データは、静止画の画像データに限られず、動画の画像データ(すなわち、動画データ)であっても良い。すなわち、画像データには、静止画の画像データと、動画の画像データとが含まれる。
デジタルカメラ50は、上記ハードウェア構成を有することにより、後述する各種処理を実現できる。
<ソフトウェア構成>
次に、第3の実施形態に係る情報処理システム1のソフトウェア構成について説明する。第3の実施形態に係る情報処理システム1は、例えば図21に示されるような処理ブロックにより実現することができる。図21は、第3の実施形態に係る情報処理システムの一例の処理ブロック図である。
デジタルカメラ50は、ユーザ入出力部51と、データ配信部54とを有する。また、ユーザ入出力部51は、ユーザ操作受付部52と、フォルダ情報表示部53とを有する。
ユーザ操作受付部52は、例えばCPU306、入力装置301等により実現され、ユーザによる各種操作を受け付ける。例えば、ユーザ操作受付部52は、ストレージサービスに保存する画像データの選択操作や、選択された画像データのストレージサービスにおける保存先のフォルダの選択(指定)操作等の各種操作を受け付ける。
フォルダ情報表示部53は、例えばCPU306、表示装置302等により実現され、各種の画面を表示させる。例えば、フォルダ情報表示部53は、ストレージサービスに保存する画像データを選択するための配信画像の選択画面や、選択された画像データの保存先となるフォルダを選択するためのフォルダ選択画面を表示させる。
データ配信部54は、例えばCPU306等により実現され、ユーザにより選択された画像データをストレージサービスの指定された保存先フォルダに保存させるための要求(アップロード要求)をサービス提供装置60に対して行う。
サービス提供装置60は、取得制御部61と、ストレージサービス情報管理部31と、外部ストレージ通信部32Aとを有する。また、サービス提供装置60は、ストレージサービス情報記憶部35を利用する。
さらに、取得制御部61は、取得方法特定部22と、取得要求生成部62とを有し、外部ストレージ通信部32Aは、フォルダ情報取得部33と、データアップロード部34Aとを有する。
なお、取得方法特定部22、ストレージサービス情報管理部31、フォルダ情報取得部33、及びストレージサービス情報記憶部35は、第1の実施形態と同様であるため、その説明を省略する。
取得要求生成部62は、例えばCPU106等により実現され、デジタルカメラ50からの要求に応じて、フォルダ情報取得部33に対してフォルダ情報の取得要求を行う。
データアップロード部34Aは、例えばCPU106、通信I/F107等により実現され、デジタルカメラ50のデータ配信部54からの要求に応じて、外部ストレージシステム40に対して画像データのアップロード要求を行う。
<処理の詳細>
次に、第3の実施形態に係る情報処理システム1の処理の詳細について説明する。第3の実施形態に係る情報処理システム1では、ユーザがデジタルカメラ50に格納されている画像データをストレージサービス上の選択(指定)されたフォルダに保存する場合の処理(すなわち、データ配信処理)について説明する。このとき、デジタルカメラ50上でユーザが保存先のフォルダを選択するためのフォルダ選択画面は、外部ストレージシステム40から取得されるフォルダ情報に基づいて生成される。以降では、外部ストレージシステム40からフォルダ情報を取得するための取得方法が「Bundle」である場合と、「OnlySubFolder」である場合とに分けて説明する。
まず、ユーザが外部ストレージシステム401(フォルダ情報の取得方法が「Bundle」であるストレージサービス「storage1」)上の所望のフォルダに画像データの保存する場合について説明する。図22は、第3の実施形態に係るデータ配信処理の一例のシーケンス図である。なお、以降では、図6を用いて説明したスキャン配信処理と同様の処理を行う箇所については、適宜説明を簡略化して記載する。
ここで、外部ストレージシステム401における当該ユーザのフォルダの階層構造は、第1の実施形態と同様に、図7に示すようなものであるとする。そして、当該ユーザは、フォルダ名「folder3」に画像データの保存を所望しているものとする。
ステップS2201において、ユーザは、デジタルカメラ50においてストレージサービスに保存する画像データの選択操作を行う。ユーザにより当該操作が行われると、デジタルカメラのユーザ操作受付部52は、当該操作を受け付ける。
ここで、ユーザは、例えば図23(a)に示すような配信画像の選択画面G21において、ストレージサービスに保存を所望する画像データを選択することができる。図23(a)に示す配信画像の選択画面G21では、デジタルカメラ50に格納されている画像データが一覧表示されている。ユーザは、図23(a)に示す配信画像の選択画面G21において、ストレージサービスに保存を所望する1又は複数の画像データを選択することができる。
ステップS2202において、ユーザ入出力部51のユーザ操作受付部52は、ユーザによる上記操作を受け付けると、フォルダ選択画面を表示装置302上に表示させるためのフォルダ情報の取得要求を、サービス提供装置60の取得制御部61に対して送信する。
なお、本実施形態では、上記のステップS2201で選択された画像データの保存先としてストレージサービス名「storage1」の外部ストレージシステム401が予め設定されているものとする。したがって、フォルダ情報の取得要求には、ストレージサービス名「storage1」と、ユーザに関する情報(例えば、ユーザ名「user1」)とが含まれる。
ただし、画像データの保存先のストレージサービスは、例えば、図23(a)に示す配信画像の選択画像G1において、配信対象の画像データとともに、ユーザにより選択されてもよい。
ステップS2203において、取得制御部61の取得要求生成部62は、フォルダ情報の取得要求を受け付けると、フォルダ情報の取得方法の特定を、取得方法特定部22に対して依頼する。そして、取得方法特定部22は、フォルダ情報の取得方法の取得要求をストレージサービス情報管理部31に送信する。なお、当該取得要求には、ストレージサービスに関する情報(例えば、ストレージサービス名)が含まれる。
ステップS2204において、ストレージサービス情報管理部31は、フォルダ情報の取得方法の取得要求を受け付けると、ストレージサービス情報35Dを参照し、該当のストレージサービスのストレージサービス情報を、取得方法特定部22に対して返信する。なお、ここで返信される情報は、第1の実施形態と同様に、例えば図8(a)で示される。
ステップS2205において、取得制御部61の取得要求生成部62は、上記のステップS2204で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。なお、ここで生成されるフォルダ情報の取得要求は、第1の実施形態と同様に、例えば図9(a)で示される。
ステップS2206において、取得制御部61の取得要求生成部62は、上記のステップS2205で生成したフォルダ情報取得要求を外部ストレージ通信部32Aに対して送信する。
ステップS2207において、外部ストレージ通信部32Aのフォルダ情報取得部33は、受け取ったフォルダ情報の取得要求を、予め設定された外部ストレージシステム401に送信する。すなわち、外部ストレージ通信部32Aは、上記のステップS2204で取得された図8(a)に示すストレージサービス情報に含まれるhost宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム401は、該当のフォルダ情報をサービス提供装置60に対して返信する。なお、ここで返信される該当のフォルダ情報は、第1の実施形態と同様に、例えば図10で示される。
ステップS2208において、取得制御部61の取得要求生成部62は、受け取ったフォルダ情報をデジタルカメラ50のユーザ入出力部51に対して返信する。
ステップS2209において、ユーザ入出力部51のフォルダ情報表示部53は、ユーザ操作受付部52がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図23(b)〜図23(d)に示すようなフォルダ選択画面G22〜G24を生成する。そして、フォルダ情報表示部53は、フォルダ名「user1」におけるフォルダを選択するための画面を示す図23(b)のフォルダ選択画面G22を表示させる。
図23(b)のフォルダ選択画面G22において、ユーザがフォルダ名「folder1」を選択すると、図23(c)に示すようなフォルダ選択画面G23が表示される。さらに、図23(c)のフォルダ選択画面G23において、ユーザがフォルダ名「folder3」を選択すると、図23(d)に示すようなフォルダ選択画面G24が表示される。
そして、後述するように、ユーザが図23(d)において「OK」ボタンを選択することで、外部ストレージシステム401上のフォルダ「folder3」に対して、図23(a)で選択された画像データが保存される。
ステップS2210において、ユーザは、図23(d)のフォルダ選択画面G22において、「OK」ボタンを選択して、画像データを選択した保存先フォルダにアップロードするためのデータ配信操作を行う。そして、ユーザにより当該操作が行われると、デジタルカメラ50のユーザ操作受付部52は、当該操作を受け付ける。
ステップS2211において、ユーザ操作受付部52は、ユーザによる当該操作を受け付けると、選択された画像データのアップロード(配信)を外部ストレージ通信部32Aに対して要求する。なお、当該要求には、選択された画像データの保存先である外部ストレージシステム401のストレージサービス名と、上記のステップS2209で選択された保存先フォルダに関する情報と、上記のステップS2201で選択された画像データとが含まれる。
ステップS2212において、外部ストレージ通信部32Aのデータアップロード部34Aは、デジタルカメラ50から受け付けたアップロード要求を該当の外部ストレージシステム401に対して送信する。これにより、外部ストレージシステム401の選択されたフォルダに、選択された画像データが保存される。
以上で説明したように、本実施形態に係る情報処理システム1は、指定されたフォルダ以下のすべての階層のフォルダのフォルダ情報を一括して取得できる外部ストレージシステム40に対して、デジタルカメラ50に格納されたデータの保存を行うことができる。
次に、ユーザが外部ストレージシステム402(フォルダ情報の取得方法が「OnlySubFolder」であるストレージサービス)に対して画像データの保存を所望する場合について説明する。図24は、第3の実施形態に係るデータ配信処理の他の例のシーケンス図である。
ここで、外部ストレージシステム402における当該ユーザのフォルダの階層構造は、外部ストレージシステム401と同様に、図7に示すようなものであるとする。そして、当該ユーザは、フォルダ名「folder3」に画像データの保存を所望しているものとする。なお、以降では、図12を用いて説明したスキャン配信処理と同様の処理を行う箇所については、適宜説明を簡略化して記載する。
まず、ステップS2401〜ステップS2403の処理は、それぞれ、図22におけるステップS2201〜ステップS2203と同様であるため、説明を省略する。
ただし、本実施形態では、上記のステップS2401で選択された画像データの保存先としてストレージサービス名「storage2」の外部ストレージシステム402が予め設定されているものとする。したがって、ステップS2402で送信されるフォルダ情報の取得要求には、ストレージサービス名「storage2」と、ユーザに関する情報(例えば、ユーザ名「user1」)とが含まれる。
ステップS2404において、ストレージサービス情報管理部31は、フォルダ情報の取得方法の取得要求を受け付けると、ストレージサービス情報35Dを参照し、該当のストレージサービスのストレージサービス情報を、取得方法特定部22に対して返信する。なお、ここで返信される情報は、第1の実施形態と同様に、例えば図8(b)で示される。
ステップS2405において、取得制御部61の取得要求生成部62は、上記のステップS2204で特定されたフォルダ情報の取得方法に基づき、フォルダ情報の取得要求を生成する。なお、ここで生成されるフォルダ情報の取得要求は、第1の実施形態と同様に、例えば図9(b)で示される。
ステップS2406において、取得制御部61の取得要求生成部62は、上記のステップS2405で生成したフォルダ情報取得要求を外部ストレージ通信部32Aに対して送信する。
ステップS2407において、外部ストレージ通信部32Aのフォルダ情報取得部33は、受け取ったフォルダ情報の取得要求を、予め設定された外部ストレージシステム402に送信する。すなわち、外部ストレージ通信部32Aは、上記のステップS2404で取得された図8(b)に示すストレージサービス情報に含まれるhost宛に、フォルダ情報の取得要求を送信する。そして、外部ストレージシステム402は、該当のフォルダ情報をサービス提供装置60に対して返信する。なお、ここで返信される該当のフォルダ情報は、第1の実施形態と同様に、例えば図14(a)で示される。
また、取得要求生成部62は、該当のフォルダ情報が返信されると、指定されたフォルダIDにサブフォルダ情報が指定されているか否かを判定する。そして、サブフォルダ情報が指定されている場合、ステップS2408の処理を行う。
ステップS2408において、取得要求生成部62は、フォルダ情報の「subfolder」に指定されているサブフォルダ情報のサブフォルダ存在フラグを「true」に書き換える。
ステップS2409において、取得制御部61の取得要求生成部62は、フォルダ情報をデジタルカメラ50のユーザ入出力部51に対して返信する。ここでデジタルカメラ50のユーザ入出力部51に対して返信されるフォルダ情報は、上記のステップS2408の処理が行われた場合は、サブフォルダ存在フラグを書き換えた後のフォルダ情報である。
ステップS2410において、ユーザ入出力部51のフォルダ情報表示部53は、ユーザ操作受付部52がフォルダ情報を受け付けると、このフォルダ情報に基づき、例えば図23(b)に示すようなフォルダ選択画面G22を生成する。そして、フォルダ情報表示部53は、フォルダ名「user1」におけるフォルダを選択するための画面を示す図23(b)のフォルダ選択画面G22を表示させる。
なお、このとき、フォルダ情報表示部53は、受け付けたフォルダ情報においてサブフォルダ存在フラグを参照して、さらに下の階層にフォルダが存在するか否かを判定してもよい。そして、デジタルカメラ50は、判定結果に応じて、例えば、さらに下の階層に存在するフォルダのフォルダ情報の取得要求をサービス提供装置60に送信してもよい。
次に、図23(b)に示すようなフォルダ選択画面G22においてユーザが、例えばフォルダ名「folder1」を選択すると、上記で説明したステップS2402〜ステップS2410の処理が実行され、図23(c)に示すようなフォルダ選択画面G23が表示される。すなわち、この場合、ステップS2405で「folder_id」として「folder1」のフォルダID「yyy1」が指定されたフォルダ情報の取得要求が生成される。すると、ステップS2407において、例えば図14(b)に示すように、フォルダ名「folder1」のフォルダ、及びこのフォルダの直下に存在する「folder3」のフォルダのフォルダ情報が取得される。そして、ステップS2410で図23(c)に示すようなフォルダ選択画面G23が表示される。
同様に、図23(c)に示すようなフォルダ選択画面G23において、ユーザが、例えばフォルダ名「folder3」を選択すると、上記で説明したステップS2402〜ステップS2410の処理が実行され、図23(d)に示すようなフォルダ選択画面G24が表示される。
そして、後述の処理において、ユーザが図23(d)において「OK」ボタンを選択することで、外部ストレージシステム402上のフォルダ「folder3」に対して、図23(a)で選択された画像データが保存される。
ステップS2411〜ステップS2413の処理は、それぞれ、図22におけるステップS2210〜ステップS2212の処理と同様であるため、説明を省略する。
以上で説明したように、本実施形態に係る情報処理システム1は、指定されたフォルダ以下の1階層のフォルダを含むフォルダ情報を取得できる外部ストレージシステム40に対して、デジタルカメラ50に格納されたデータの保存を行うことができる。
なお、スキャン配信部23は、受付手段の一例である。取得方法特定部22は、特定手段の一例である。スキャン配信部23及びフォルダ情報取得部33は、第1の取得手段の一例である。ストレージサービス情報記憶部35は、第1の記憶手段の一例である。キャッシュ情報記憶部25は、第2の記憶手段及び第3の記憶手段の一例である。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。