以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
図1は、本実施形態におけるシステム100の概略図である。図1に示されるシステム100は、MFP10と、情報処理端末50と、中継サーバ80とで構成される。このシステム100は、サービス提供装置110、120からサービスの提供を受けるためのシステムである。MFP10、情報処理端末50、中継サーバ80、及びサービス提供装置110、120は、通信ネットワークを介して相互に通信可能とされている。通信ネットワークの具体例は特に限定されないが、例えば、インターネット101、無線LAN102、有線LAN103、或いはこれらの組み合わせであってもよい。
MFP10及び情報処理端末50は、無線LAN102に属している。また、無線LAN102は、ルータ102Aを通じてインターネット101に接続されている。さらに、中継サーバ80及びサービス提供装置110、120は、インターネット101に接続されている。そして、MFP10及び情報処理端末50は、ルータ102Aからインターネット101を経由して、中継サーバ80及びサービス提供装置110、120と通信することができる。但し、MFP10及び情報処理端末50は、異なる通信ネットワークに属していてもよい。
MFP10(Multi-Function Peripheralの略)は、図2(A)に示されるように、プリンタ11と、スキャナ12と、ディスプレイ23と、入力I/F24と、通信I/F25と、CPU31と、メモリ32と、通信バス33とを主に備える。MFP10を構成する各構成要素は、通信バス33を通じて相互に接続されている。MFP10は、画像処理装置の一例である。また、画像処理装置の具体例はMFP10に限定されず、例えば、プリンタ単能機或いはスキャナ単能機であってもよい。
プリンタ11は、画像データで示される画像をシートに記録するプリント動作を実行するハードウェアである。プリンタ11の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ12は、原稿に記録されている画像を読み取って画像データ(以下、「スキャンデータ」と表記する。)を生成するスキャン動作を実行するハードウェアである。プリント動作及びスキャン動作は、画像処理動作の一例である。なお、画像処理動作の具体例はこれらに限定されず、例えば、FAXプロトコルに従って画像データを外部装置にFAX送信するFAX送信動作等であってもよい。
ディスプレイ23は、液晶ディスプレイ、有機ELディスプレイ等であり、各種情報を表示する表示画面を備える。
入力I/F24は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力I/F24はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をCPU31へ出力する。さらに、入力I/F24は、ディスプレイ23の表示画面に重畳された膜状のタッチセンサを有していてもよい。ディスプレイ23の表示画面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、ユーザ操作の一例である。「オブジェクト」とは、例えば、ディスプレイ23に表示された文字列、アイコン、ボタン、リンク、ラジオボタン、チェックボックス、プルダウンメニュー等である。
タッチセンサとして実現される入力I/F24は、ユーザがタッチした表示画面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示画面に接触させる操作全般を含む。また、入力媒体が表示画面に触れていなくても、表示画面との間の距離がごく僅かな位置まで入力媒体を近接させる「ホバー」或いは「フローティングタッチ」を、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ23に表示されたオブジェクトの位置をタップするユーザ操作は、当該オブジェクトを指定するユーザ操作の一例である。
通信I/F25は、通信ネットワークを通じて外部装置と通信可能な第2通信インタフェースの一例である。すなわち、MFP10は、通信I/F25を通じて外部装置に各種情報を送信し、通信I/F25を通じて外部装置から各種情報を受信する。通信I/F25の具体的な通信手順は特に限定されないが、例えば、Wi−Fi(Wi-Fi Allianceの登録商標)を採用することができる。また、MFP10及び情報処理端末50がUSBケーブルで接続される場合、通信I/F25は、USBケーブルを着脱可能なUSBインタフェースであってもよい。
CPU31は、MFP10の全体動作を制御するものである。CPU31は、入力I/F24から出力される各種情報、通信I/F25を通じて外部装置から受信した各種情報等に基づいて、後述する各種プログラムをメモリ32から取得して実行する。CPU31及びメモリ32は、第2コントローラの一例を構成する。
メモリ32は、OS34と、装置プログラム35とを記憶する第2メモリの一例である。装置プログラム35は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ32は、装置プログラム35の実行に必要なデータ或いは情報等を記憶する。メモリ32は、例えば、RAM、ROM、EEPROM、HDD、MFP10に着脱されるUSBメモリ等の可搬記憶媒体、CPU31が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ32は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット101上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。後述する情報処理端末50のメモリ62についても同様である。
また、メモリ32は、図2(B)に示されるように、アクセスIDを記憶することができる。アクセスIDは、サービス提供装置110が提供するサービスの利用を中継サーバ80に要求する際に、中継サーバ80に送信する情報である。アクセスIDは、MFP10のユーザ毎に個別に割り当てられる。すなわち、MFP10が複数のユーザで共用されている場合、メモリ32には、複数のアクセスIDが記憶される。アクセスIDに対応付けられたユーザ名は、アクセスIDが割り当てられたユーザを識別するための情報であって、例えば、入力I/F24を通じてユーザが指定してもよい。
また、メモリ32は、図2(C)に示されるように、トークンと、アドレス情報とを対応付けて記憶することができる。トークンは、サービス提供装置120が提供するサービスを利用する権限を有することを示すために、サービス提供装置120によって発行される認証情報の一例である。トークンは、MFP10のユーザ毎に個別に割り当てられる。アドレス情報は、サービスを利用するためにアクセスすべきサービス提供装置120のアドレスを示す情報である。アドレス情報は、例えば、URL形式の情報である。サービス提供装置120は、複数のユーザに対して共通のアドレス情報を割り当てる。すなわち、図2(C)に示されるように、複数のトークンに対して同一のアドレス情報が対応付けられる。
さらに図示は省略するが、メモリ32は、閾値サイズを示すサイズ情報を記憶することができる。閾値サイズは、メモリ32に記憶可能なトークンのデータサイズの最大値である。閾値サイズは、例えば、画像処理動作の対象となる画像データを記憶するためのメモリ領域を十分に確保でき、且つMFP10を共用するユーザの想定人数分のトークンが記憶可能になるように、MFP10の管理者によって予め設定された値である。
情報処理端末50は、図3(A)に示されるように、ディスプレイ53と、入力I/F54と、通信I/F55と、CPU61と、メモリ62と、通信バス63とを主に備える。情報処理端末50に含まれるディスプレイ53、入力I/F54、通信I/F55、CPU61、メモリ62、及び通信バス63は、MFP10に含まれるディスプレイ23、入力I/F24、通信I/F25、CPU31、メモリ32、及び通信バス33と同様の構成であるので、説明は省略する。情報処理端末50は、例えば、携帯電話、スマートフォン、タブレット端末、或いはPC等である。メモリ62に記憶された端末プログラム65は、例えば、ブラウザプログラムである。
中継サーバ80は、図3(B)に示されるように、第1通信インタフェースの一例である通信I/F85と、CPU91と、第1メモリの一例であるメモリ92と、通信バス93とを主に備える。CPU91及びメモリ92は、第1コントローラの一例を構成する。中継サーバ80に含まれる通信I/F85、CPU91、メモリ92、及び通信バス93は、MFP10に含まれる通信I/F25、CPU31、メモリ32、及び通信バス33と同様の構成であるので、説明は省略する。
メモリ92は、サーバプログラム95を記憶している。サーバプログラム95は、MFP10、情報処理端末50、及びサービス提供装置110、120と通信するためのモジュールを含む。より詳細には、サーバプログラム95は、サービス提供装置110と通信する際に呼び出される第1モジュールと、サービス提供装置120と通信する際に呼び出される第2モジュールとを含む。なお、モジュールとは、複数の処理の纏まりを示すプログラム上の単位であって、関数、ライブラリ、或いはAPI等と呼ばれることもある。
第1モジュールは、サービス提供装置110が公開した通信手順をサポートしている。すなわち、CPU91は、第1モジュールを呼び出すことによって、サービス提供装置110が公開した通信手順に従って、サービス提供装置110と通信することができる。第2モジュールは、サービス提供装置120が公開した通信手順をサポートしている。すなわち、CPU91は、第2モジュールを呼び出すことによって、サービス提供装置120が公開した通信手順に従って、サービス提供装置120と通信することができる。なお、以下の処理の説明において、第1モジュール及び第2モジュールの明記は省略する。
中継サーバ80は、例えば図1に示されるように、第1サーバ80Aと、第2サーバ80Bとで実現されてもよい。第1サーバ80A及び第2サーバ80Bの構成は、図3(B)に示される中継サーバ80の構成と共通する。第1サーバ80A及び第2サーバ80Bは、中継サーバ80が実行すべき処理を分担する。但し、中継サーバ80の具体的な構成はこれに限定されず、単一の装置で実現されてもよいし、不図示の第3サーバをさらに含んでもよい。
第1サーバ80A及び第2サーバ80Bは、通信ネットワークの一例である有線LAN103を通じて、相互に通信可能に構成されている。第1サーバ80Aは、例えば、有線LAN103上のDMZ(DeMilitarized Zoneの略)に接続されており、MFP10、情報処理端末50、第2サーバ80B、及びサービス提供装置110、120と通信可能な所謂WEBサーバである。一方、第2サーバ80Bは、例えば、有線LAN103のファイアーウォールの内側に接続されており、MFP10、情報処理端末50、第1サーバ80A、及びサービス提供装置110、120のうち、第1サーバ80Aのみと接続可能な所謂データベースサーバである。
第2サーバ80Bのメモリ92は、図3(C)に示されるアクセスリストを記憶することができる。アクセスリストは、1以上のアクセスレコードを含む。アクセスリストは、TempIDと、トークンと、アドレス情報と、アクセスIDとを含む。なお、中継サーバ80が単一の装置で構成されている場合、アクセスリストは、中継サーバ80のローカルメモリに記憶される。
TempIDは、サービス提供装置110が発行したトークンを取得する権限をMFP10に与えるために、中継サーバ80が発行する情報である。トークンは、サービス提供装置110が発行する認証情報の一例である。アドレス情報は、サービス提供装置110が提供するサービスを利用するために、アクセスすべきサービス提供装置110のメモリ領域を示す。サービス提供装置110は、MFP10のユーザ毎に個別のアドレス情報を割り当てる。すなわち、図3(C)に示されるように、トークンとアドレス情報とは、一対一に対応付けられる。アクセスIDは、対応するトークン及びアドレス情報の組み合わせを識別するために、中継サーバ80が発行する情報である。
TempID及びアドレス情報は、例えば、情報処理端末50のユーザが一見して認識可能なテキストデータである。一方、トークン及びアクセスIDは、例えば、バイナリデータであってもよい。また、アクセスIDのデータサイズは、トークン及びアドレス情報のデータサイズより小さい。また、アドレス情報のデータサイズは、トークンのデータサイズより大きい場合が多い。トークンのデータサイズは、例えば、128バイト、256バイト等である。また、N個の文字で構成されるアドレス情報のデータサイズは、Nバイトである。
MFP10及び中継サーバ80は、連携動作を実行することができる。連携動作は、中継サーバ80がMFP10に動作を指示し、中継サーバ80に指示された動作をMFP10が実行し、当該動作の結果をMFP10が中継サーバ80に報告し、当該報告に基づいて中継サーバ80がMFP10に次の動作を指示するものである。連携動作において、MFP10から中継サーバ80への情報はHTTPリクエストとして送信され、中継サーバ80からMFP10への情報はHTTPレスポンスとして送信される。
また、中継サーバ80からMFP10に送信される指示情報は、例えば、XMLによって記述されている。そして、当該指示情報は、例えば、ディスプレイ23に表示させる画面を示す画面指示情報と、入力情報を取得するインタフェース(例えば、入力I/F24、通信I/F25等)を示すインタフェース情報と、次の動作の要求先を示す次動作URLとを含む。
当該指示情報を受信したMFP10は、画面指示情報で示される画面をディスプレイ23に表示させ、インタフェース情報で示すインタフェースを通じて入力情報を取得し、次動作URLで示される次の指示情報の送信を要求するHTTPリクエストを送信する。さらに、MFP10は、当該HTTPリクエストを送信する際に、一連の連携動作において取得した入力情報をGETメソッドによって中継サーバ80に送信する。
サービス提供装置110、120は、MFP10にサービスを提供する装置である。サービス提供装置110、120はインターネット101上に存在し、MFP10、情報処理端末50、或いは中継サーバ80からのリクエストに応じて各種サービスを提供する。本実施形態に係るサービス提供装置110、120は、例えば、MFP10の状態を管理するサービス、アップロードされたデータを記憶するサービス、ダウンロード要求に応じて記憶しているデータを送信するサービス、或いはデータの形式を変換するサービス等を提供してもよい。
サービス提供装置110は、MFP10のユーザ毎に異なるアドレス情報を発行し、且つ第1サービスを提供する第1装置の一例である。サービス提供装置120は、MFP10の複数のユーザに共通のアドレス情報を発行し、且つ第1サービスと異なる第2サービスを提供する第2装置の一例である。一方、サービス提供装置110、120は、MFP10のユーザ毎に異なるトークンを発行する点において共通する。
より詳細には、サービス提供装置110が発行するアドレス情報は、例えば、サービス提供装置110を識別するドメイン情報“www.server-a.com”と、ユーザに割り当てたメモリ領域へのパスを示すパス情報“mfp/user-b”とを含む。一方、サービス提供装置120が発行するアドレス情報は、例えば、サービス提供装置120を識別するドメイン情報“www.server-a.com”を含み、パス情報を含まない。
なお、パス情報で示されるメモリ領域とは、サービス提供装置110が備えるメモリの論理的な領域(例えば、フォルダ)を示すものであればよく、メモリの物理的な領域を示すものでなくてもよい。パス情報は、例えば、階層関係を有する複数のフォルダのうち、ルートフォルダ(例えば、“mfp”)からユーザBに割り当てたフォルダ(例えば、“user-b”)までの経路を示す。後述するログイン指示情報及びトークン指示情報についても同様である。
サービス提供装置110、120は、例えば、「Evernote(Evernote Corporationの登録商標)」、「Dropbox(DropBox, Inc.の登録商標)」、「Google Drive(Googleは、Google, Inc.の登録商標)」、SharePointOnline(Microsoft Corporationの登録商標)、OneDrive for Business(OneDriveは、Microsoft Corporationの登録商標)等のサービスを提供する装置である。
[システム100の動作]
図4〜図7を参照して、本実施形態に係るシステム100の動作を説明する。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU31、61の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU31、61の処理を表している。CPU31、61による処理は、OS34、64を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
まず、図4を参照して、MFP10のユーザBが情報処理端末50を用いて、中継サーバ80からTempIDを取得する処理を説明する。なお、図4の処理の開始時点において、ユーザBは、サービス提供装置110がユーザBに対して発行したアカウント情報及びアドレス情報“www.server-a.com/mfp/user-b”を取得しているものとする。アカウント情報は、トークンの発行をサービス提供装置110に要求する権限を有することを示すための情報であって、例えば、ユーザID“USER−B”及びパスワード“ABCDE”の組み合わせである。
まず、情報処理端末50の端末プログラム65は、通信I/F55を通じて中継サーバ80にサービス一覧要求情報を送信する(S11)。サービス一覧要求情報は、中継サーバ80が通信可能なサービス提供装置110、120を示すサービス一覧情報の送信を要求するための情報である。
次に、中継サーバ80のサーバプログラム95は、通信I/F85を通じて情報処理端末50からサービス一覧要求情報を受信する(S11)。そして、サーバプログラム95は、サービス一覧要求情報の応答として、通信I/F85を通じて情報処理端末50にサービス一覧情報を送信する(S12)。サービス一覧情報は、例えば、図8(A)に示されるサービス選択画面を示すHTMLである。
次に、端末プログラム65は、通信I/F85を通じて中継サーバ80からサービス一覧情報を受信する(S12)。次に、端末プログラム65は、受信したサービス一覧情報に従って、図8(A)に示されるサービス選択画面をディスプレイ53に表示させる(S13)。サービス選択画面は、サービス提供装置110に対応するサービスアイコン131と、サービス提供装置120に対応するサービスアイコン132とを含む。そして、端末プログラム65は、サービス選択画面に対するユーザ操作を、入力I/F54を通じて受け付ける(S14)。
次に、端末プログラム65は、サービスアイコン131の指定を入力I/F54を通じて受け付けたことに応じて(S14)、通信I/F55を通じて中継サーバ80に発行要求情報を送信する(S15)。発行要求情報は、指定されたサービスアイコン131に対応するサービス提供装置110に、トークンの発行を要求するための情報である。ユーザBが指定したサービス提供装置110は、指定装置の一例である。
次に、サーバプログラム95は、通信I/F85を通じて情報処理端末50から発行要求情報を受信する(S15)。そして、サーバプログラム95は、情報処理端末50が指定したサービス提供装置110に、通信I/F85を通じて発行要求情報を送信する(S16)。中継サーバ80が実行するS15の処理は第5受信処理の一例であり、中継サーバ80が実行するS16の処理は第5送信処理の一例である。
次に、サービス提供装置110は、中継サーバ80から発行要求情報を受信する(S16)。次に、サービス提供装置110は、発行要求情報の応答として、ログイン指示情報を中継サーバ80に送信する(S17)。ログイン指示情報は、ログイン画面情報が記憶されたサービス提供装置110のメモリ領域を示す第1リダイレクト情報の一例である。ログイン指示情報は、例えば、URL形式の情報である。
次に、サーバプログラム95は、通信I/F85を通じてサービス提供装置110からログイン指示情報を受信する(S17)。そして、サーバプログラム95は、発行要求情報の応答として、通信I/F85を通じて情報処理端末50にログイン指示情報を送信する(S18)。中継サーバ80が実行するS17の処理は第6受信処理の一例であり、中継サーバ80が実行するS18の処理は第6送信処理の一例である。
次に、端末プログラム65は、通信I/F55を通じて中継サーバ80からログイン指示情報を受信する(S18)。そして、端末プログラム65は、通信I/F55を通じてサービス提供装置110にログイン画面要求情報を送信し(S19)、通信I/F55を通じてサービス提供装置110からログイン画面情報を受信する(S20)。ログイン画面要求情報は、ログイン指示情報で示されるメモリ領域に記憶されたログイン画面情報の送信を要求するための情報である。ログイン画面情報は、図8(B)に示されるログイン画面を示すHTMLであって、ログイン画面要求情報の応答としてサービス提供装置110によって送信される。
次に、端末プログラム65は、受信したログイン画面情報に従って、図8(B)に示されるログイン画面をディスプレイ53に表示させる(S21)。ログイン画面は、「ユーザID&パスワードを入力して、[ログイン]を押して下さい。」とのメッセージと、ユーザIDの入力を受け付けるためのテキストボックス136と、パスワードの入力を受け付けるためのテキストボックス137と、[ログイン]アイコン138とを含む。そして、端末プログラム65は、ユーザID“USER−B”の入力と、パスワード“ABCDE”の入力と、[ログイン]アイコン138の指定とを入力I/F54を通じて受け付けたことに応じて(S22)、入力されたアカウント情報“USER−B”&“ABCDE”を、通信I/F55を通じてサービス提供装置110に送信する(S23)。
次に、サービス提供装置110は、情報処理端末50からアカウント情報を受信する。次に、サービス提供装置110は、受信したアカウント情報に対応付けてトークン“0x4CD7”を発行し、発行したトークンをメモリに記憶させる。そして、サービス提供装置110は、アカウント情報の応答として、情報処理端末50にトークン指示情報を送信する(S24)。トークン指示情報は、発行したトークンが記憶されたメモリ領域を示す第2リダイレクト情報の一例である。
次に、端末プログラム65は、通信I/F55を通じてサービス提供装置110からトークン指示情報を受信する(S24)。そして、端末プログラム65は、通信I/F55を通じて中継サーバ80にトークン指示情報を送信する(S25)。
次に、サーバプログラム95は、通信I/F85を通じて端末プログラム65からトークン指示情報を受信する(S25)。次に、サーバプログラム95は、通信I/F85を通じてサービス提供装置110にトークン要求情報を送信する(S26)。トークン要求情報は、トークン指示情報で示されるメモリ領域に記憶されたトークンの送信を要求する送信要求情報の一例である。S25の処理は第7受信処理の一例であり、S26の処理は第7送信処理の一例である。
次に、サーバプログラム95は、ユーザBのアカウント情報に対応付けて発行されたトークン“0x4CD7”を、トークン要求情報の応答として、通信I/F85を通じてサービス提供装置110から受信する(S27)。S27の処理は第4受信処理の一例である。なお、ステップS15〜S27の処理は、例えば、OAuthプロトコルに準拠した周知の手順に従って実行されてもよい。
次に、サーバプログラム95は、トークン指示情報の応答として、通信I/F85を通じて情報処理端末50にアドレス指示情報を送信する(S28)。アドレス指示情報は、ユーザBが取得したアドレス情報の送信を指示するための情報である。アドレス指示情報は、例えば、図9(A)に示されるアドレス入力画面を示すHTMLである。
次に、端末プログラム65は、通信I/F55を通じて中継サーバ80からアドレス指示情報を受信する(S28)。次に、端末プログラム65は、受信したアドレス指示情報に従って、図9(A)に示されるアドレス入力画面をディスプレイ53に表示させる(S29)。アドレス入力画面は、「アドレス情報を入力して、[OK]を押して下さい。」とのメッセージと、アドレス情報の入力を受け付けるためのテキストボックス141と、[OK]アイコン142とを含む。
そして、端末プログラム65は、アドレス情報“www.server-a.com/mfp/user-b”の入力と、[OK]アイコン142の指定とを入力I/F54を通じて受け付けたことに応じて(S30)、入力されたアドレス情報を通信I/F54を通じて中継サーバ80に送信する(S31)。なお、アドレス情報の入力とは、例えば、アドレス情報を構成する文字列をキーボードを通じて入力することに限定されず、例えば、メモリ62に記憶されたEメールからコピー&ペーストすること等も含む。
次に、サーバプログラム95は、通信I/F85を通じて情報処理端末50からアドレス情報を受信する(S31)。次に、サーバプログラム95は、受信したアドレス情報で示されるメモリ領域にアクセス可能か否かを判断する(S32)。S31の処理は第3受信処理の一例であり、S32の処理は第1判断処理の一例である。
サーバプログラム95は、例えば、アドレス情報で示されるサービス提供装置110に対して、ICMP(Internet Control Message Protocolの略)のエコーリクエストを通信I/F85を通じて送信する。そして、サーバプログラム95は、通信I/F85を通じてサービス提供装置110からエコーリプライを受信したことに応じて、アクセス可能と判断する。一方、サーバプログラム95は、所定の時間が経過してもエコーリプライを受信できないことに応じて、アクセス不能と判断する。但し、アクセス可能か否かの判断方法は前述の例に限定されず、他の周知の方法を採用してもよい。
次に、サーバプログラム95は、メモリ領域にアクセス可能と判断したことに応じて、アクセスリスト内で一意なTempID“789”を発行する(S33)。そして、サーバプログラム95は、S27で受信したトークン“0x4CD7”と、S31で受信したアドレス情報“www.server-a.com/mfp/user-b”と、S33で発行したTempID“789”とを含むアクセスレコードを、アクセスリストに登録する(S34)。ここで登録されるアクセスレコードには、アクセスIDが含まれていなくてもよい。S34の処理は、記憶処理の一例である。そして、サーバプログラム95は、S33で発行したTempID“789”を、アドレス情報の応答として、通信I/F85を通じて情報処理端末50に送信する(S35)。
次に、端末プログラム65は、通信I/F55を通じて中継サーバ80からTempID“789”を受信する(S35)。そして、端末プログラム65は、受信したTempID“789”をディスプレイ53に表示させて、ユーザBに報知する(S36)。
一方、システム100は、図8(A)に示されるサービスアイコン132が指定された場合に、S28〜S31の処理を省略した図4の処理を実行する。この場合の処理は、例えば、サービス提供装置110の代わりにサービス提供装置120が通信相手になる点、複数のユーザに共通のアドレス情報“www.server-b.com”をサービス提供装置120から受信する点において前述の処理と相違し、その他の点において前述の処理と共通する。
次に、図5を参照して、ユーザBが取得したTmpID“789”を用いて、中継サーバ80が発行したアクセスIDをMFP10に記憶させる処理を説明する。
まず、MFP10の装置プログラム35は、図9(B)に示されるTempID入力画面をディスプレイ53に表示させる(S41)。TempID入力画面は、「TempIDを入力して下さい。」とのメッセージと、TempIDの入力を受け付けるためのテキストボックス146と、[送信]アイコン147とを含む。そして、装置プログラム35は、TempID“789”の入力と、[送信]アイコン147の指定とを入力I/F54を通じて受け付けたことに応じて(S42)、入力されたTempID “789”及びメモリ32に記憶されたサイズ情報を、通信I/F25を通じて中継サーバ80に送信する(S43)。
次に、サーバプログラム95は、TempID及びサイズ情報を通信I/F85を通じてMFP10から受信する(S43)。次に、サーバプログラム95は、TempID“789”に対応付けられたトークン“0x4CD7”のデータサイズが閾値サイズ以上か否かを判断する(S44)。S44の処理は、第2判断処理の一例である。
次に、サーバプログラム95は、トークンが閾値サイズ以上だと判断したことに応じて(S44:Yes)、アクセスリスト内で一意なアクセスID“xyz”を発行する(S45)。そして、サーバプログラム95は、S45で発行したアクセスID “xyz”を、S43で受信したTempID“789”を含むアクセスレコードに登録する(S46)。S45の処理は発行処理の一例であり、S46の処理は記憶処理の一例である。
次に、サーバプログラム95は、S45で発行したアクセスID“xyz”を、TempID及びアドレス情報の応答として、通信I/F85を通じてMFP10に送信する(S47)。一方、サーバプログラム95は、トークンが閾値サイズ未満だと判断したことに応じて(S44:No)、S45〜S47の処理をスキップして、S43で受信したTempIDに対応するトークン “0x4CD7”を、TempID及びサイズ情報の応答として、通信I/F85を通じてMFP10に送信する(S49)。中継サーバ80が実行するS47の処理は第3送信処理の一例であり、中継サーバ80が実行するS49の処理は第4送信処理の一例である。
次に、装置プログラム35は、通信I/F25を通じて中継サーバ80からアクセスID“xyz”を受信したことに応じて(S47)、図2(B)に示されるように、入力I/F25を通じて入力されたユーザ名“ユーザB”と、S47で受信したアクセスID“xyz”とを対応付けてメモリ32に記憶させる(S48)。一方、装置プログラム35は、通信I/F25を通じて中継サーバ80からトークン“0x4CD7”を受信したことに応じて(S49)、入力I/F25を通じて入力されたユーザ名“ユーザB”と、S49で受信したトークン“0x4CD7”とを対応付けてメモリ32に記憶させる(S50)。
一方図示は省略するが、サーバプログラム95は、サービス提供装置120が発行したトークンに対応付けられたTempIDを、通信I/F85を通じてMFP10から受信することができる(S43)。この場合のサーバプログラム95は、S44の処理を実行することなく、サービス提供装置120から受信したトークン“0x8B26”及びアドレス情報“www.server-b.com”を、通信I/F85を通じてMFP10に送信する。中継サーバ80が実行するこの処理は、第8送信処理の一例である。そして、装置プログラム35は、図2(C)に示されるように、通信I/F25を通じて中継サーバ80から受信したトークン及びアドレス情報を、メモリ32に記憶させる。
次に、図6を参照して、サービス提供装置110、120が提供するスキャンアップロードサービスを、ユーザBがMFP10を用いて利用する処理を説明する。
まず、装置プログラム35は、スキャンアップロードサービスの利用を指示するユーザ操作を入力I/F24を通じて受け付けたことに応じて、サービス選択画面をディスプレイ23に表示させる(S61)。サービス選択画面は、図8(A)と同様に、サービス提供装置110に対応するサービスアイコン131と、サービス提供装置120に対応するサービスアイコン132とを含む。
次に、装置プログラム35は、例えば、サービスアイコン131の指定を入力I/F24を通じて受け付けたことに応じて(S62)、図10(A)に示されるユーザ選択画面をディスプレイ23に表示させる(S63)。ユーザ選択画面は、「サービスAを利用するユーザを選択して下さい。」とのメッセージと、ユーザアイコン151、152とを含む。ユーザアイコン151、152は、メモリ32に記憶されているアクセスIDの1つに対応する。また、ユーザアイコン151、152には、アクセスIDに対応付けられたユーザ名が記述される。
次に、装置プログラム35は、例えば、ユーザアイコン152の指定を入力I/F24を通じて受け付けたことに応じて(S64)、スキャナ12にスキャン動作を実行させる(S65)。すなわち、スキャナ12は、コンタクトガラス或いはADFにセットされた原稿に記録された画像を読み取って、当該画像を示すスキャンデータを生成する。
そして、装置プログラム35は、通信I/F25を通じて中継サーバ80に第1アップロード要求情報を送信する(S66)。第1アップロード要求情報は、サービス提供装置110のメモリのうち、ユーザアイコン152に対応するユーザBに割り当てられたメモリ領域にスキャンデータを記憶させることを要求するための第1要求情報の一例である。第1アップロード要求情報は、ユーザアイコン152に対応付けられたアクセスID“xyzと、S65で生成したスキャンデータとを含む。MFP10が実行するS66の処理は、第3送信処理の一例である。
次に、サーバプログラム95は、通信I/F85を通じてMFP10から第1アップロード要求情報を受信する(S66)。次に、サーバプログラム95は、第1アップロード要求情報に含まれるアクセスID“xyz”を含むアクセスレコードを、アクセスリストから読み出す(S67)。中継サーバ80が実行するS66の処理は第1受信処理の一例であり、S67の処理は読出処理の一例である。
次に、サーバプログラム95は、S67で読み出したアクセスレコードのドメイン情報“www.server-a.com”で識別されるサービス提供装置110に、通信I/F85を通じて第2アップロード要求情報を送信する(S68)。第2アップロード要求情報は、パス情報で示されるメモリ領域へのスキャンデータの記憶を要求するための第2要求情報の一例である。第2アップロード要求情報は、例えば、第1アップロード要求情報に含まれるスキャンデータと、S67で読み出したアクセスレコードのトークン“0x4CD7”及びパス情報“mfp/user-b”とを含む。中継サーバ80が実行するS68の処理は、第1送信処理の一例である。
次に、サービス提供装置110は、中継サーバ80から第2アップロード要求情報を受信する(S68)。次に、サービス提供装置110は、第2アップロード要求情報に含まれるトークン“0x4CD7”が有効か否かを判断する。次に、サービス提供装置110は、トークンが有効だと判断したことに応じて、パス情報“mfp/user-b”で示されるメモリ領域にスキャンデータを記憶させる。一方、サービス提供装置110は、トークンが無効だと判断したことに応じて、スキャンデータの記憶を拒否する。
そして、サービス提供装置110は、アップロード結果情報を中継サーバ80に送信する(S69)。アップロード結果情報は、第2アップロード要求情報に従ってメモリ領域にアクセスした結果、すなわち、スキャンアップロードサービスの実行結果を示すためのアクセス結果情報の一例である。トークンが有効だと判断した場合のアップロード結果情報は、パス情報で示されるメモリ領域にスキャンデータを記憶させたことを示す情報である。トークンが無効だと判断した場合のアップロード結果情報は、スキャンデータの記憶を拒否したことを示す情報である。
次に、サーバプログラム95は、通信I/F85を通じてサービス提供装置110からアップロード結果情報を受信する(S69)。そして、サーバプログラム95は、S69で受信したアップロード結果情報を、第1アップロード要求情報の応答として、通信I/F85を通じてMFP10に送信する(S70)。中継サーバ80が実行するS69の処理は第2受信処理の一例であり、中継サーバ80が実行するS70の処理は第2送信処理の一例である。
次に、装置プログラム35は、通信I/F25を通じて中継サーバ80からアップロード結果情報を受信する(S70)。MFP10が実行するS70の処理は、第3受信処理の一例である。そして、装置プログラム35は、例えば、アップロード結果情報で示されるスキャンアップロードサービスの実行結果を、ディスプレイ53に表示させて、ユーザBに報知する。
一方、装置プログラム35は、サービス選択画面のサービスアイコン132の指定を入力I/F24を通じて受け付けたことに応じて、S65で生成したスキャンデータと、メモリ32に記憶されたトークン“0x8B26”及びアドレス情報“www.server-b.com”とを含む第1アップロード要求情報を送信する(S66)。また、サーバプログラム95は、S67の処理をスキップする。さらに、サーバプログラム95は、第1アップロード要求情報に含まれるアドレス情報で示されるサービス提供装置120に、第2アップロード要求情報を送信する(S68)。その他の処理は前述の説明と同様なので、説明を省略する。
次に、図7を参照して、サービス提供装置110、120が提供するダウンロードプリントサービスを、ユーザBがMFP10を用いて利用する処理を説明する。なお、前述のスキャンアップロードサービスを利用する際の処理との共通点の詳しい説明は省略し、相違点を中心に説明する。まず、図7のS81の処理に先立って、図6のS61〜S64までの処理実行される。
装置プログラム35は、ダウンロードプリントサービスの利用を指示するユーザ操作と、サービスアイコン131の指定と、ユーザアイコン152の指定とを入力I/F24を通じて受け付けたことに応じて、通信I/F25を通じて中継サーバ80に第1リスト要求情報を送信する(S81)。第1リスト要求情報は、ユーザBに割り当てられたサービス提供装置110のメモリ領域に記憶されたデータのデータIDのリスト(以下、「リストデータ」表記する。)の送信を要求するための第1要求情報の一例である。第1リスト要求情報は、ユーザアイコン152に対応付けられたアクセスID“xyzを含む。MFP10が実行するS81の処理は、第3送信処理の一例である。
次に、サーバプログラム95は、通信I/F85を通じてMFP10から第1リスト要求情報を受信する(S81)。次に、サーバプログラム95は、第1リスト要求情報に含まれるアクセスID“xyz”を含むアクセスレコードを、アクセスリストから読み出す(S82)。中継サーバ80が実行するS81の処理は第1受信処理の一例であり、S82の処理は読出処理の一例である。
次に、サーバプログラム95は、S82で読み出したアクセスレコードのドメイン情報“www.server-a.com"で識別されるサービス提供装置110に、通信I/F85を通じて第2リスト要求情報を送信する(S83)。第2リスト要求情報は、パス情報で示されるメモリ領域のリストデータの送信を要求するための第2要求情報の一例である。第2リスト要求情報は、例えば、S82で読み出したアクセスレコードのトークン“0x4CD7”及びパス情報“mfp/user-b”を含む。中継サーバ80が実行するS83の処理は、第1送信処理の一例である。
次に、サービス提供装置110は、中継サーバ80から第2リスト要求情報を受信する(S83)。次に、サービス提供装置110は、第2リスト要求情報に含まれるトークンが有効だと判断したことに応じて、パス情報“mfp/user-b”で示されるメモリ領域のリストデータを生成する。そして、サービス提供装置110は、アクセス結果情報の一例であるリストデータを中継サーバ80に送信する(S84)。
次に、サーバプログラム95は、通信I/F85を通じてサービス提供装置110からリストデータを受信する(S84)。そして、サーバプログラム95は、S84で受信したリストデータを、第1リスト要求情報の応答として、通信I/F85を通じてMFP10に送信する(S85)。中継サーバ80が実行するS84の処理は第2受信処理の一例であり、中継サーバ80が実行するS85の処理は第2送信処理の一例である。
次に、装置プログラム35は、通信I/F25を通じて中継サーバ80からリストデータを受信する(S85)。MFP10が実行するS85の処理は、第3受信処理の一例である。そして、装置プログラム35は、図10(B)に示されるデータ選択画面をディスプレイ23に表示させる(S86)。データ選択画面は、データアイコン156、157、158を含む。データアイコン156、157、158は、リストデータに含まれるデータID“写真.JPEG”、“見積書.PDF”、“プレゼン.PPT”の1つに対応する。
次に、装置プログラム35は、例えば、データアイコン156の指定を入力I/F24を通じて受け付けたことに応じて(S87)、通信I/F25を通じて中継サーバ80に第1データ要求情報を送信する(S88)。第1データ要求情報は、ユーザBに割り当てられたサービス提供装置110のメモリ領域に記憶されたデータ、より詳細には、データアイコン156に対応するデータIDで識別されるデータの送信を要求するための第1要求情報の一例である。第1リスト要求情報は、データアイコン156に対応するデータID“写真.JPEG”と、ユーザアイコン152に対応付けられたアクセスID“xyzとを含む。MFP10が実行するS88の処理は、第3送信処理の一例である。
次に、サーバプログラム95は、通信I/F85を通じてMFP10から第1データ要求情報を受信する(S88)。次に、サーバプログラム95は、第1データ要求情報に含まれるアクセスID“xyz”を含むアクセスレコードを、アクセスリストから読み出す(S89)。中継サーバ80が実行するS88の処理は第1受信処理の一例であり、S89の処理は読出処理の一例である。
次に、サーバプログラム95は、S89で読み出したアクセスレコードのドメイン情報“www.server-a.com”で識別されるサービス提供装置110に、通信I/F85を通じて第2データ要求情報を送信する(S90)。第2データ要求情報は、パス情報で示されるメモリ領域に記憶されたデータ“写真.JPEG”の送信を要求するための第2要求情報の一例である。第2データ要求情報は、例えば、第1データ要求情報に含まれるデータID“写真.JPEG”と、S89で読み出したアクセスレコードのトークン“0x4CD7”及びパス情報“mfp/user-b”とを含む。中継サーバ80が実行するS90の処理は、第1送信処理の一例である。
次に、サービス提供装置110は、中継サーバ80から第2データ要求情報を受信する(S90)。次に、サービス提供装置110は、第2データ要求情報に含まれるトークンが有効だと判断したことに応じて、パス情報“mfp/user-b”で示されるメモリ領域からデータID“写真.JPEG”で識別されるデータ(以下、「ダウンロードデータ」と表記する。)を読み出す。そして、サービス提供装置110は、アクセス結果情報の一例であるダウンロードデータを中継サーバ80に送信する(S91)。
次に、サーバプログラム95は、通信I/F85を通じてサービス提供装置110からダウンロードデータを受信する(S91)。そして、サーバプログラム95は、S91で受信したダウンロードデータを、第1データ要求情報の応答として、通信I/F85を通じてMFP10に送信する(S92)。中継サーバ80が実行するS91の処理は第2受信処理の一例であり、中継サーバ80が実行するS92の処理は第2送信処理の一例である。
次に、装置プログラム35は、通信I/F25を通じて中継サーバ80からダウンロードデータを受信する(S92)。MFP10が実行するS92の処理は、第3受信処理の一例である。そして、装置プログラム35は、ダウンロードデータを対象とするプリント動作をプリンタ11に実行させる(S93)。すなわち、プリンタ11は、ダウンロードデータで示される画像をシートに記録する。
一方、装置プログラム35は、サービス選択画面のサービスアイコン132の指定を入力I/F24を通じて受け付けたことに応じて、メモリ32に記憶されたトークン“0x8B26”及びアドレス情報“www.server-b.com”を含む第1リスト要求情報を送信する(S81)。また、装置プログラム35は、データIDと、メモリ32に記憶されたトークン“0x8B26”及びアドレス情報“www.server-b.com”とを含む第1データ要求情報を送信する(S88)。また、サーバプログラム95は、S82、S89の処理をスキップする。さらに、サーバプログラム95は、第1リスト要求情報及び第1データ要求情報に含まれるアドレス情報で示されるサービス提供装置120に、第2リスト要求情報及び第2データ要求情報を送信する(S83、S90)。その他の処理は前述の説明と同様なので、説明を省略する。
[実施形態の作用効果]
上記の実施形態に係る中継サーバ80は、MFP10からサービス提供装置110へのアクセスを中継する際に、第1要求情報に含まれるアクセスIDに対応するアドレス情報を読み出し、読み出したアドレス情報で示されるサービス提供装置110のメモリ領域にアクセスする。これにより、データサイズの大きいアドレス情報をMFP10に記憶させなくても、ユーザ毎に個別に割り当てられたアドレス情報で示されるメモリ領域に、MFP10をアクセスさせることができる。
また、上記の実施形態によれば、MFP10の入力I/F24を通じてアドレス情報が手入力されるので、中継サーバ80は、MFP10から受信したアドレス情報が正しく入力されたことを事前に確認する。これにより、サービス提供装置110が提供するサービスを実際に利用しようとする場合に、割り当てられたメモリ領域にアクセスできないことを抑制できる。なお、上記の実施形態では、図4に示される処理が情報処理端末50を用いて行われる例を説明した。しかしながら、図4で情報処理端末50が実行する処理の一部又は全部は、MFP10が実行してもよい。すなわち、MFP10及び情報処理端末50は、外部装置の一例である。
また、上記の実施形態によれば、トークンが閾値サイズ以上の場合に、アドレス情報及びトークンの組み合わせを識別するアドレスIDがMFP10に記憶される。これにより、データサイズの大きいトークンをMFP10に記憶させなくても、MFP10をサービス提供装置110にアクセスさせることができる。一方、トークンが閾値サイズ未満の場合に、当該トークンがアクセスIDとして用いられる。これにより、トークンとは別のアクセスIDを用いる必要がなくなるので、中継サーバ80の処理を簡素化することができる。但し、中継サーバ80は、S44の処理をスキップして、常にアクセスIDをMFP10に送信してもよい。
また、上記の実施形態によれば、サービス提供装置110との通信に第1モジュールを用い、サービス提供装置120との通信に第2モジュールを用いる。このように、サービス提供装置110、120毎に異なる通信手順を予めモジュール化しておくことにより、既存のサービス提供装置110、120の通信手順の変更、或いは新たなサービス提供装置との接続等が容易となる。
なお、トークンは、リフレッシュトークンと、アクセストークンとに区別されてもよい。リフレッシュトークンは、アクセストークンの発行をサービス提供装置110、120に要求するためのトークンである。アクセストークンは、サービス提供装置110、120にアクセスする度に、新たに発行されるトークンである。すなわち、中継サーバ80は、サービス提供装置110、120が提供するサービスをMFP10に複数回利用させる場合において、同一のリフレッシュトークンと、異なるアクセストークンとを用いて、サービス提供装置110、120にアクセスする。
より詳細には、図4、図5、図6のS67、図7のS82、S89で用いられるトークンは、リフレッシュトークンである。また、サーバプログラム95は、S68、S83、S90において、メモリ92から読み出したリフレッシュトークンを含むアクセストークン要求情報を、通信I/F85を通じてサービス提供装置110に送信する。そして、サーバプログラム95は、サービス提供装置110が新たに発行したアクセストークンを、アクセストークン要求情報の応答として、通信I/F85を通じてサービス提供装置110から受信する。そして、サーバプログラム95は、受信したアクセストークンを含む第2要求情報を、通信I/F85を通じてサービス提供装置110に送信する。
また、上記の実施形態のMFP10、情報処理端末50、及び中継サーバ80において、メモリ32、62、92に記憶された各種プログラムがCPU31、61、91によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、MFP10、情報処理端末50、及び中継サーバ80として実現できるだけでなく、MFP10、情報処理端末50、及び中継サーバ80に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワークを通じてMFP10、情報処理端末50、及び中継サーバ80に接続可能なサーバに搭載された記憶部を含んでもよい。そして、サーバの記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット101等の通信ネットワークを通じて配信されてもよい。