説明

通信装置

【課題】 ユーザが、画像データをサービス提供サーバに容易にアップロードし得る技術を提供すること。
【解決手段】
多機能機10は、アップロード指示が特定のユーザから与えられる場合に、多機能機10に予め記憶されているアクセストークン「AK1」を用いて、サービス提供サーバ100から、電子メールアドレス「M1」を取得する。多機能機10は、電子メールアドレス「M1」が送信先アドレスとして指定されている電子メールEMを送信することによって、画像データをサービス提供サーバ100にアップロードする。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書では、データアップロードサービスを提供可能なサービス提供サーバに、インターネットを介して通信可能に接続される通信装置を開示する。
【背景技術】
【0002】
例えば、特許文献1には、文書をスキャンして画像データを生成する画像処理装置が開示されている。画像処理装置は、上記の画像データをサーバにアップロードすることが可能である。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005−269250号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書では、ユーザが、アップロード対象の対象データをサービス提供サーバに容易にアップロードし得る技術を提供する。
【課題を解決するための手段】
【0005】
本明細書では、データアップロードサービスを提供可能であるサービス提供サーバに、インターネットを介して通信可能に接続される通信装置を開示する。サービス提供サーバは、ユーザ毎に、当該ユーザのための認証情報と、当該ユーザのための電子メールアドレスと、を対応付けて記憶可能である。通信装置は、記憶制御部と、取得部と、アップロード部と、を備える。記憶制御部は、特定のユーザのための特定の認証情報を、通信装置のメモリに記憶させる。取得部は、アップロード対象の対象データをサービス提供サーバにアップロードするためのアップロード指示が、特定のユーザから与えられる場合に、メモリ内の特定の認証情報を用いて、サービス提供サーバから、特定の認証情報に対応付けて記憶されている特定の電子メールアドレスを取得する。アップロード部は、特定の電子メールアドレスが送信先アドレスとして指定されている特定の電子メールであって、対象データを含む特定の電子メールを送信することによって、対象データをサービス提供サーバにアップロードする。
【0006】
上記の構成によると、通信装置は、特定のユーザからアップロード指示が与えられる場合に、メモリ内の特定の認証情報を用いて、特定のユーザのための特定の電子メールアドレスをサービス提供サーバから取得する。そして、通信装置は、特定の電子メールアドレスが送信先アドレスとして指定されている特定の電子メールを送信することによって、対象データをサービス提供サーバにアップロードする。従って、特定のユーザは、例えば、通信装置の操作部を操作して、特定の電子メールアドレスを通信装置に入力する作業を実行せずに済む。このために、特定のユーザは、対象データをサービス提供サーバに容易にアップロードし得る。
【0007】
取得部は、アップロード指示が与えられる場合に、サービス提供サーバから通信装置へのデータアップロードサービスの提供を仲介する仲介サーバに、特定の認証情報を送信する送信部と、仲介サーバが、特定の認証情報を用いて、サービス提供サーバから取得する特定の電子メールアドレスを、仲介サーバから受信する受信部と、を備えていてもよい。この構成によると、通信装置は、特定の電子メールアドレスを適切に取得することができる。
【0008】
サービス提供サーバは、さらに、データダウンロードサービスを提供可能であってもよい。取得部は、サービス提供サーバからアップロード済みの対象データをダウンロードするためのダウンロード指示が、特定のユーザから与えられる場合に、サービス提供サーバから特定の電子メールアドレスを取得しなくてもよい。通信装置は、さらに、ダウンロード指示が与えられる場合に、メモリ内の特定の認証情報を用いて、サービス提供サーバから対象データをダウンロードするダウンロード部を備えていてもよい。この構成によると、通信装置は、ダウンロード指示が与えられる場合に、サービス提供サーバから特定の電子メールアドレスを取得せずに、メモリ内の特定の認証情報を用いて、サービス提供サーバから対象データをダウンロードする。このように、通信装置は、特定のユーザからアップロード指示が与えられる場合でも、特定のユーザからダウンロード指示が与えられる場合でも、共通の認証情報を用いることができる。従って、アップロードのための認証情報と、ダウンロードのための認証情報と、の両方をメモリに記憶させる構成と比べると、メモリが記憶すべき情報量を低減させることができる。
【0009】
サービス提供サーバは、電子メールの通信のための第1の通信プロトコルに従った第1種のアップロード要求に対応しており、第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2種のアップロード要求に対応しておらず、第2の通信プロトコルに従った第2種のダウンロード要求に対応していてもよい。アップロード部は、アップロード指示が与えられる場合に、第1種のアップロード要求である特定の電子メールを送信することによって、対象データをサービス提供サーバにアップロードしてもよい。ダウンロード部は、ダウンロード指示が与えられる場合に、第2種のダウンロード要求をサービス提供サーバに送信することによって、サービス提供サーバから対象データをダウンロードしてもよい。この構成によると、通信装置は、サービス提供サーバが対応しているアップロード要求及びダウンロード要求に応じて、対象データのアップロード及びダウンロードを適切に実行することができる。
【0010】
メモリは、不揮発性メモリと、揮発性メモリと、を含んでいてもよい。記憶制御部は、特定の認証情報を、不揮発性メモリに記憶させ、特定の電子メールアドレスが取得される場合に、特定の電子メールアドレスを、不揮発性メモリに記憶させずに、揮発性メモリに記憶させてもよい。この構成によると、特定の電子メールアドレスが不揮発性メモリに記憶されないために、不揮発性メモリに記憶される情報量を低減させ得る。
【0011】
サービス提供サーバに記憶される各ユーザのための各認証情報は、アクセストークンを含んでいてもよい。特定の認証情報は、特定のユーザのための特定のアクセストークンを含んでいてもよい。
【0012】
なお、通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。
【図面の簡単な説明】
【0013】
【図1】通信システムの構成を示す。
【図2】各デバイスが実行する各処理のシーケンス図を示す。
【発明を実施するための形態】
【0014】
(システムの構成)
図1に示されるように、通信システム2は、多機能機10と、仲介サーバ50と、PC90と、複数個のサービス提供サーバ100,110と、を備える。多機能機10とPC90とは、LAN4に接続されている。仲介サーバ50と複数個のサービス提供サーバ100,110とは、インターネット6に接続されている。多機能機10は、インターネット6を介して、仲介サーバ50及び各サービス提供サーバ100,110と通信可能である。
【0015】
(多機能機10の構成)
多機能機10は、印刷機能、スキャン機能、コピー機能、FAX機能等の多機能を実行可能である。多機能機10は、さらに、サービス提供サーバ100,110に保存されている画像データをダウンロードして、当該画像データによって表わされる画像を印刷するダウンロード印刷機能(以下では「DL印刷機能」と呼ぶ)を実行可能である。また、多機能機10は、さらに、多機能機10がスキャンすることによって生成される画像データを、サービス提供サーバ100,110にアップロードするスキャンアップロード機能(以下では「スキャンUL機能」と呼ぶ)を実行可能である。
【0016】
多機能機10は、操作部12と、表示部14と、ネットワークインターフェイス16と、印刷実行部18と、スキャン実行部20と、制御部30と、を備える。操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示を多機能機10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。ネットワークインターフェイス16は、LAN4に接続されている。印刷実行部18は、インクジェット方式、レーザ方式等の印刷機構である。スキャン実行部20は、CCD、CIS等のスキャン機構である。
【0017】
制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に格納されているプログラム(図示省略)に従って、様々な処理を実行する。CPU32が上記のプログラムに従って処理を実行することによって、記憶制御部40、取得部41、アップロード部44、及び、ダウンロード部45の各機能が実現される。なお、取得部41は、送信部42及び受信部43を備える。
【0018】
メモリ34は、NVRAM36と、VRAM38と、を備える。NVRAM36は、不揮発性のメモリである。従って、多機能機10の電源がOFFされても、NVRAM36内のデータは消去されない。NVRAM36は、表示名テーブル37を格納する。表示名テーブル37は、表示名とサーバ名とアクセストークンとが対応付けられた情報を記憶するためのテーブルである。表示名テーブル37がどのようにして生成されるのかについては、後で詳しく説明する。VRAM38は、揮発性のメモリである。従って、多機能機10の電源がOFFされると、VRAM38内のデータは消去される。
【0019】
(仲介サーバ50の構成)
仲介サーバ50は、サービス提供サーバ100,110から多機能機10へのサービスの提供を仲介する。仲介サーバ50は、多機能機10のベンダによって提供されるサーバである。仲介サーバ50は、ネットワークインターフェイス52と、制御部60と、を備える。制御部60は、CPU62と、メモリ64と、を備える。CPU62は、メモリ64に格納されているプログラムに従って、様々な処理を実行する。
【0020】
(サービス提供サーバ100,110の構成)
各サービス提供サーバ100,110は、例えば、「Evernote(登録商標)」、「Google(登録商標) Docs」、「PICASA(登録商標)」、「FACEBOOK(登録商標)」等の公知のサービス提供サーバである。なお、本実施例では、サービス提供サーバ100のサーバ名が「SE1」(例えば「Evernote(登録商標)」)であり、サービス提供サーバ110のサーバ名が「SE2」(例えば「Google(登録商標) Docs」)である状況を想定している。
【0021】
各サービス提供サーバ100,110は、多機能機10を含む様々な通信機器にサービスを提供可能である。例えば、各サービス提供サーバ100,110は、多機能機10がスキャンUL機能を実行する際に、多機能機10から取得される画像データを保存するデータアップロードサービス(以下では「ULサービス」と呼ぶ)を実行可能である。また、例えば、各サービス提供サーバ100,110は、多機能機10がDL印刷機能を実行する際に、多機能機10に画像データを供給するデータダウンロードサービス(以下では「DLサービス」と呼ぶ)を実行可能である。
【0022】
なお、サービス提供サーバ100は、第1のサービス事業者(即ち第1の会社)によって提供されるサーバであり、サービス提供サーバ110は、第1のサービス事業者とは異なる第2のサービス事業者(即ち第2の会社)によって提供されるサーバである。第1のサービス事業者は、サービス提供サーバ100からサービスを受けるための第1のAPI(Application Program Interface)を公開しており、第2のサービス事業者は、サービス提供サーバ110からサービスを受けるための第2のAPIを公開している。第1のサービス事業者と第2のサービス事業者とが異なるために、通常、第1のAPIと第2のAPIとは異なる。通信機器は、例えば、サービス提供サーバ100,110の両方からサービスを受けるためには、第1及び第2のAPIの両方に対応している必要がある(即ち、第1のAPIを利用するためのプログラムと、第2のAPIを利用するためのプログラムと、の両方が必要である)。
【0023】
例えば、多機能機10が複数個のサービス提供サーバ100,110のそれぞれからサービスを受けるためには、多機能機10は、複数個のAPIに対応している必要があり、多くのプログラムを格納する必要がある。しかしながら、PC等と比べると、多機能機10のメモリ34の記憶容量は少ない。従って、本実施例では、多機能機10に多くのプログラムを格納させることなく、多機能機10が複数個のサービス提供サーバ100,110のそれぞれからサービスを受けることができるように、仲介サーバ50が設けられている。即ち、仲介サーバ50は、複数個のサービス提供サーバ100,110のための複数個のAPIに対応している。そして、多機能機10が、複数個のサービス提供サーバ100,110のうちの特定のサービス提供サーバ(例えばサービス提供サーバ100)からサービスを受けるべき状況では、仲介サーバ50は、特定のサービス提供サーバのためのAPIを利用して、特定のサービス提供サーバと後述の様々な通信(例えば、図2のリクエストR4,R12、レスポンスR6,R14等)を実行する。これにより、多機能機10は、特定のサービス提供サーバのためのAPIに対応していなくても、特定のサービス提供サーバと画像データの通信を実行することができる。即ち、多機能機10は、複数個のAPIを利用するための多くのプログラムを格納していなくても、複数個のサービス提供サーバ100,110のそれぞれからサービスを受けることができる。
【0024】
サービス提供サーバ100は、ユーザ情報テーブル101を記憶する。ユーザ情報テーブル101は、アクセストークンと電子メールアドレスとアカウント名とパスワードとが対応付けられた情報を記憶するためのテーブルである。ユーザ情報テーブル101がどのようにして生成されるのかについては、後で詳しく説明する。なお、サービス提供サーバ100と同様に、サービス提供サーバ110も、ユーザ情報テーブル(図示省略)を記憶する。
【0025】
なお、インターネット6上の公知のサービス提供サーバへのアップロード要求の手法としては、HTTP(Hyper Text Transfer Protocol)に従ったコマンドを利用する手法と、SMTP(Simple Mail Transfer Protocol)に従った電子メールを利用する手法と、が知られている。ただし、全てのサービス提供サーバが両方の手法に対応しているとは限らない。例えば、本実施例では、サービス提供サーバ100(例えば「Evernote(登録商標)」)は、SMTPに従ったアップロード要求に対応しているが、HTTPに従ったアップロード要求に対応していない。即ち、サービス提供サーバ100は、SMTPに従ったアップロード要求を受信する場合に、当該アップロード要求に応じてULサービスを提供するが(即ち、SMTPに従ったアップロード要求をサポートしているが)、HTTPに従ったアップロード要求を受信する場合に、当該アップロード要求に応じてULサービスを提供しない(即ち、HTTPに従ったアップロード要求をサポートしてしない)。
【0026】
また、インターネット6上の公知のサービス提供サーバへのダウンロード要求の手法としては、HTTPに従ったコマンドを利用する手法が知られている。本実施例では、サービス提供サーバ100は、HTTPに従ったダウンロード要求に対応している。即ち、サービス提供サーバ100は、HTTPに従ったダウンロード要求を受信する場合に、当該ダウンロード要求に応じてDLサービスを提供する(即ち、HTTPに従ったダウンロード要求をサポートしている)。
【0027】
(各デバイス10,50,100が実行する各処理)
続いて、図2を参照しながら、各デバイス10,50,100が実行する各処理の内容を説明する。
【0028】
(登録処理)
多機能機10のユーザ(以下では「特定のユーザ」と呼ぶ)は、多機能機10が各サービス提供サーバ100,110からサービスを受けるために、以下の事前準備を実行する必要がある。特定のユーザは、PC90を利用して、サービス提供サーバ100からサービスを受けるためのアカウント名「U1」及びパスワード「PW1」を、サービス提供サーバ100に登録する。この場合、サービス提供サーバ100は、特定のユーザのための電子メールアドレス「M1」を発行し、「U1」と「PW1」と「M1」とを対応付けて、ユーザ情報テーブル101に登録する。
【0029】
次いで、特定のユーザは、PC90を利用して、仲介サーバ50にアクセスし、「認証情報の取得」を選択する。なお、本実施例では、「認証情報」は、後述のアクセストークン(例えば「AK1」)を意味する。「認証情報の取得」が選択されると、仲介サーバ50は、サービス提供サーバ100にアクセスするための特定のURLを、PC90に送信する。特定のURLは、アクセストークンを生成することをサービス提供サーバ100に指示するための生成指示と、当該アクセストークンを仲介サーバ50に送信することをサービス提供サーバ100に指示するための送信指示と、を含む。次いで、特定のユーザは、特定のURLを用いて、PC90からサービス提供サーバ100にアクセスする。次いで、特定のユーザは、PC90を介して、アカウント名「U1」及びパスワード「PW1」をサービス提供サーバ100に入力して、認証手続を実行する。認証が成功すると、サービス提供サーバ100は、特定のユーザのためのアクセストークン「AK1」を生成して、アクセストークン「AK1」を仲介サーバ50に送信する。なお、この際に、サービス提供サーバ100は、「U1」と「PW1」と「M1」とに対応付けて、「AK1」をユーザ情報テーブル101に登録する。仲介サーバ50は、サービス提供サーバ100からアクセストークン「AK1」を受信すると、テンポラリIDを生成して、テンポラリIDをPC90に送信する。これにより、PC90にテンポラリIDが表示される。特定のユーザは、PC90に表示されたテンポラリIDを知ることができる。
【0030】
次いで、特定のユーザは、多機能機10の操作部12を操作して、サービス提供サーバ100のサーバ名「SE1」と、多機能機10上での特定のユーザの表示用の名称である表示名「Alice」と、を多機能機10に入力する。特定のユーザは、さらに、多機能機10の操作部12を操作して、テンポラリIDを多機能機10に入力する。この場合、多機能機10は、仲介サーバ50にテンポラリIDを送信する。これにより、仲介サーバ50は、アクセストークン「AK1」を多機能機10に送信する。このようにして、図2の登録指示が多機能機10に与えられ、その結果、多機能機10の記憶制御部40(図1参照)は、特定のユーザによって入力された表示名「Alice」と、特定のユーザによって入力されたサーバ名「SE1」と、仲介サーバ50から取得されたアクセストークン「AK1」と、を対応付けて、表示名テーブル37に記憶させる。
【0031】
上述したように、サービス提供サーバ100及び仲介サーバ50がアクセストークン「AK1」をPC90に送信せずに、仲介サーバ50は、アクセストークン「AK1」を一時的に保持する。そして、多機能機10は、テンポラリIDを用いて、仲介サーバ50からアクセストークン「AK1」を取得する。これにより、アクセストークン「AK1」が、PC90で表示されたり、PC90から他のデバイスに送信されたりすることを抑制することができ、この結果、アクセストークンというセキュリティの高い情報が流出するのを抑制することができる。なお、表示名テーブル37には、特定のユーザのための電子メールアドレス「M1」が記憶されない。即ち、記憶制御部40は、電子メールアドレス「M1」をNVRAM36に記憶させない。なお、特定のユーザは、上記と同様に、サービス提供サーバ110に関して、表示名「Alice」と、サーバ名「SE2」と、アクセストークン「AK2」と、を対応付けて、表示名テーブル37に登録可能である。
【0032】
(多機能機10がULサービスを受けるための処理)
続いて、多機能機10がULサービスを受けるために、各デバイス10,50,100が実行する各処理の内容を説明する。図示していないが、特定のユーザは、多機能機10の操作部12を操作して、どのサービス提供サーバからULサービスを受けるのかを選択すると共に、特定のユーザのための表示名を選択する。本実施例では、特定のユーザによってサービス提供サーバ100(即ちサーバ名「SE1」)が選択され、かつ、特定のユーザによって表示名「Alice」が選択された場合を例として、説明を続ける。特定のユーザは、さらに、操作部12を操作して、多機能機10が実行可能な複数の機能の中から、スキャンUL機能を選択する。これにより、特定のユーザから多機能機10にアップロード指示が与えられる。
【0033】
上述したように、サービス提供サーバ100は、HTTPに従ったアップロード要求に対応しておらず、SMTPに従ったアップロード要求に対応している。このために、アップロード要求の電子メール(後述の電子メールEM)の送信先アドレスとして指定されるべき電子メールアドレスが必要である。従って、多機能機10の取得部41(図1参照)は、サービス提供サーバ100から電子メールアドレスを取得するために、以下の各処理を実行する。
【0034】
即ち、特定のユーザからアップロード指示が与えられる場合に、取得部41は、まず、NVRAM36内の表示名テーブル37から、サーバ名「SE1」及び表示名「Alice」に対応付けられているアクセストークン「AK1」を特定する。次いで、送信部42(図1参照)は、特定済みのアクセストークン「AK1」を含むリクエストR2を、仲介サーバ50に送信する。なお、リクエストR2は、アクセストークン「AK1」に対応付けられている電子メールアドレス「M1」(サービス提供サーバ100内のユーザ情報テーブル101参照)を多機能機10に送信するように、仲介サーバ50に指示するためのリクエストである。
【0035】
仲介サーバ50の制御部60は、多機能機10からリクエストR2を受信すると、第1のAPIに従って、アクセストークン「AK1」を含むリクエストR4を生成して、リクエストR4をサービス提供サーバ100に送信する。リクエストR4は、アクセストークン「AK1」に対応付けられている電子メールアドレス「M1」を仲介サーバ50に送信するように、サービス提供サーバ100に指示するためのリクエストである。
【0036】
サービス提供サーバ100は、リクエストR4を受信すると、アクセストークン「AK1」の認証を実行する(即ち、「AK1」がユーザ情報テーブル101に登録されているのか否かを判断する)。サービス提供サーバ100は、認証が成功すると(即ち、「AK1」がユーザ情報テーブル101に登録されていると)、ユーザ情報テーブル101から、アクセストークン「AK1」に対応付けられている電子メールアドレス「M1」を特定する。次いで、サービス提供サーバ100は、特定済みの電子メールアドレス「M1」を含むレスポンスR6を、仲介サーバ50に送信する。
【0037】
仲介サーバ50の制御部60は、サービス提供サーバ100からレスポンスR6を受信すると、電子メールアドレス「M1」を含むレスポンスR8を生成して、レスポンスR8を多機能機10に送信する。
【0038】
多機能機10の受信部43(図1参照)は、仲介サーバ50からレスポンスR8を受信する。これにより、取得部41は、サービス提供サーバ100から、仲介サーバ50を介して、電子メールアドレス「M1」を取得する。このように、本実施例では、多機能機10は、仲介サーバ50を利用して、サービス提供サーバ100から電子メールアドレス「M1」を取得する。このために、多機能機10は、第1のAPIに対応していなくても、サービス提供サーバ100から電子メールアドレス「M1」を取得することができる。
【0039】
サービス提供サーバ100から電子メールアドレス「M1」が取得される場合に、記憶制御部40は、電子メールアドレス「M1」をVRAM38に記憶させる。これにより、アップロード部44(図1参照)は、後の処理で電子メールEMを送信する際に、VRAM38内の電子メールアドレス「M1」を利用することができる。なお、記憶制御部40は、電子メールアドレス「M1」をNVRAM36に記憶させない。これにより、NVRAM36に記憶される情報量を低減させることができる。
【0040】
次いで、制御部30は、原稿のスキャンをスキャン実行部20に実行させる。以下では、原稿のスキャンによって生成される画像データのことを「特定の画像データ」と呼ぶ。次いで、アップロード部44は、SMTP(Simple Mail Transfer Protocol)に従って、VRAM38内の電子メールアドレス「M1」が送信先アドレスとして指定されている電子メールEMを生成する。電子メールEMは、上記の特定の画像データを含む。そして、アップロード部44は、SMTPに従って、電子メールEMをサービス提供サーバ100に送信する。電子メールEMは、上記の特定の画像データを保存(即ちアップロード)するように、サービス提供サーバ100に指示するためのリクエストである。即ち、電子メールEMは、SMTPに従ったアップロード要求である。
【0041】
サービス提供サーバ100は、電子メールEMを受信すると、特定のユーザのためのユーザ情報(例えばアカウント名「U1」)に対応付けて、電子メールEMに含まれる上記の特定の画像データを保存(アップロード)する。これにより、サービス提供サーバ100から多機能機10へULサービスが提供される。即ち、多機能機10は、スキャンUL機能を実行することができる。
【0042】
なお、例えば、サービス提供サーバ100が、SMTPに従ったアップロード要求と、HTTPとは異なるプロトコルに従ったアップロード要求(以下では「特定のアップロード要求」と呼ぶ)と、に対応している可能性がある。そして、多機能機10が、上記の特定のアップロード要求を送信するためのプログラムを備えていないが、仲介サーバ50が、当該プログラムを備えている可能性がある。この場合、多機能機10から仲介サーバ50に上記の特定の画像データを送信し、仲介サーバ50からサービス提供サーバ100に上記の特定の画像データを含む上記の特定のアップロード要求を送信すれば、サービス提供サーバ100に上記の特定の画像データをアップロードし得る。
【0043】
しかしながら、このような手法を利用すると、特定のユーザのプライベートな画像を表わす上記の特定の画像データが、多機能機10のベンダによって提供される仲介サーバ50を経由することになる。特定のユーザの個人情報の保護の観点から、このような手法を採用するのは好ましくない。このために、本実施例では、仮に、仲介サーバ50が、上記の特定のアップロード要求を送信するためのプログラムを備えていても、多機能機10のアップロード部44は、上記の特定の画像データを含む電子メールEMを送信することによって、上記の特定の画像データをサービス提供サーバ100にアップロードする。これにより、上記の特定の画像データが多機能機10から仲介サーバ50を介してサービス提供サーバ100に送信されないために、特定のユーザのプライベートな画像が仲介サーバ50を経由することを防止することができる。
【0044】
なお、図2では省略しているが、仮に、特定のユーザから、サービス提供サーバ100に画像データをアップロードするための新たなアップロード指示が与えられると、上記と同様に、電子メールを用いたアップロードが実行される。即ち、特定のユーザからアップロード指示が与えられる毎に、取得部41は、サービス提供サーバ100から電子メールアドレス「M1」を取得し、アップロード部44は、電子メールアドレス「M1」が送信先として指定されている電子メールを送信することによって、画像データをサービス提供サーバ100にアップロードする。
【0045】
(多機能機10がDLサービスを受けるための処理)
続いて、多機能機10がDLサービスを受けるために、各デバイス10,50,100が実行する各処理の内容を説明する。図示していないが、上記のULサービスの場合と同様に、特定のユーザは、多機能機10の操作部12を操作して、サービス提供サーバ100(即ちサーバ名「SE1」)と、表示名「Alice」と、を選択する。特定のユーザは、さらに、操作部12を操作して、多機能機10が実行可能な複数の機能の中から、DL印刷機能を選択する。これにより、特定のユーザから多機能機10にダウンロード指示が与えられる。
【0046】
なお、特定のユーザは、多機能機10にダウンロード指示を与える際に、特定のユーザによってサービス提供サーバ100に過去にアップロードされた1個以上の画像データの中から、ダウンロード対象の画像データを選択する。例えば、特定のユーザは、画像データのファイル名を指定したり、画像データのサムネイルを選択したりして、ダウンロード対象の画像データを選択する。本実施例では、特定のユーザによって上記の特定の画像データ(即ち、原稿のスキャンによって生成された画像データ)が選択された場合を例として、以下の説明を続ける。
【0047】
上述したように、サービス提供サーバ100は、HTTPに従ったダウンロード要求に対応している。多機能機10は、ダウンロード指示が与えられた場合に、サービス提供サーバ100から電子メールアドレスを取得する必要がない。このために、上記のULサービスの場合とは異なり、取得部41は、特定のユーザからダウンロード指示が与えられても、サービス提供サーバ100から電子メールアドレスを取得しない。このために、多機能機10の処理負荷を低減させることができる。
【0048】
ダウンロード部45(図1参照)は、特定のユーザからダウンロード指示が与えられる場合に、NVRAM36内の表示名テーブル37から、サーバ名「SE1」及び表示名「Alice」に対応付けられているアクセストークン「AK1」を特定する。次いで、ダウンロード部45は、特定済みのアクセストークン「AK1」を含むリクエストR10を、仲介サーバ50に送信する。なお、リクエストR10は、ダウンロード対象の上記の特定の画像データのURL(以下では「ダウンロード元のURL」と呼ぶ)を多機能機10に送信するように、仲介サーバ50に指示するためのリクエストである。
【0049】
仲介サーバ50の制御部60は、多機能機10からリクエストR10を受信すると、第1のAPIに従って、アクセストークン「AK1」を含むリクエストR12を生成して、リクエストR12をサービス提供サーバ100に送信する。リクエストR12は、ダウンロード元のURLを仲介サーバ50に送信するように、サービス提供サーバ100に指示するためのリクエストである。
【0050】
サービス提供サーバ100は、リクエストR12を受信すると、アクセストークン「AK1」の認証を実行する。サービス提供サーバ100は、認証が成功すると、特定のユーザのためのユーザ情報(例えばアカウント名「U1」)に対応付けられている上記の特定の画像データのURL(即ちダウンロード元のURL)を含むレスポンスR14を、仲介サーバ50に送信する。
【0051】
仲介サーバ50の制御部60は、サービス提供サーバ100からレスポンスR14を受信すると、第1のAPIに従ってHTTPコマンドを生成する。ここでのHTTPコマンドには、ダウンロード元のURLが記述される。HTTPコマンドは、ダウンロード元のURLに保存されている上記の特定の画像データを送信するように、サービス提供サーバ100に指示するためのリクエストである。即ち、HTTPコマンドは、HTTPに従ったダウンロード要求である。次いで、制御部60は、生成済みのHTTPコマンドを含むレスポンスR16を、多機能機10に送信する。
【0052】
多機能機10のダウンロード部45は、仲介サーバ50からレスポンスR16を受信すると、レスポンスに含まれるHTTPコマンドを、仲介サーバ50を介さずに、サービス提供サーバ100に送信する。上述したように、本実施例では、仲介サーバ50が、第1のAPIに従ってHTTPコマンドを生成して、HTTPコマンドを多機能機10に供給する。このために、多機能機10は、第1のAPIに対応していなくても、仲介サーバ50から取得されるHTTPコマンドを用いて、サービス提供サーバ100にダウンロード要求を送信することができる。
【0053】
サービス提供サーバ100は、多機能機10からHTTPコマンドを受信すると、HTTPコマンドに含まれるダウンロード元のURLに保存されている上記の特定の画像データを、仲介サーバ50を介さずに、多機能機10に供給する。上記の特定の画像データがサービス提供サーバ100から仲介サーバ50を介して多機能機10に送信されないために、特定のユーザのプライベートな画像が仲介サーバ50を経由することを防止することができる。
【0054】
多機能機10のダウンロード部45は、サービス提供サーバ100から上記の特定の画像データを受信する。これにより、サービス提供サーバ100から多機能機10へDLサービスが提供される。次いで、制御部30は、上記の特定の画像データによって表わされる画像の印刷を印刷実行部18に実行させる。これにより、多機能機10は、DL印刷機能を実行することができる。
【0055】
なお、図2では省略しているが、仮に、特定のユーザから、サービス提供サーバ100から画像データをダウンロードするための新たなダウンロード指示が与えられると、上記と同様に、HTTPコマンドを用いたダウンロードが実行される。即ち、特定のユーザからダウンロード指示が与えられる毎に、ダウンロード部45は、サービス提供サーバ100からダウンロードURLを取得し、HTTPコマンドを送信することによって、サービス提供サーバ100から画像データをダウンロードする。
【0056】
(本実施例の効果)
本実施例によると、多機能機10は、特定のユーザからアップロード指示が与えられる場合に、NVNAM36内のアクセストークン「AK1」を用いて、特定のユーザのための電子メールアドレス「M1」をサービス提供サーバ100から取得する。そして、多機能機10は、電子メールアドレス「M1」が送信先アドレスとして指定されている電子メールEMを送信することによって、上記の特定の画像データをサービス提供サーバ100にアップロードする。従って、特定のユーザは、例えば、多機能機10の操作部12を操作して、電子メールアドレス「M1」を多機能機10に入力する作業を実行せずに済む。このために、特定のユーザは、上記の特定の画像データをサービス提供サーバ100に容易にアップロードすることができる。
【0057】
また、例えば、セキュリティ強化の観点から、サービス提供サーバ100に登録されている電子メールアドレス「M1」が、特定のユーザによって変更される可能性がある。このような場合でも、多機能機10は、特定のユーザからアップロード指示が与えられる場合に、変更後の電子メールアドレスをサービス提供サーバ100から取得して、画像データをサービス提供サーバ100にアップロードすることができる。サービス提供サーバ100に登録されている電子メールアドレスが変更される毎に、特定のユーザが、変更後の電子メールアドレスを多機能機に入力する構成と比べると、本実施例の多機能機10は、画像データをサービス提供サーバ100に容易にアップロードすることができる。
【0058】
また、本実施例では、多機能機10は、特定のユーザからアップロード指示が与えられる場合でも、特定のユーザからダウンロード指示が与えられる場合でも、共通のアクセストークン「AK1」を用いて、サービス提供サーバ100からULサービス及びDLサービスを受けることができる。このために、ULサービスを受けるための第1のアクセストークンと、DLサービスを受けるための第2のアクセストークンと、の両方をメモリに記憶させる構成と比べると、多機能機10のメモリ34が記憶すべき情報量を低減させることができる。また、特定のユーザは、第1のアクセストークンを多機能機10に登録するための手続きと、第2のアクセストークンを多機能機10に登録するための手続きと、を実行せずに済み、共通のアクセストークン「AK1」を多機能機10に登録するための手続きを実行すれば足りる。このために、特定のユーザが、サービス提供サーバ100からULサービス及びDLサービスを受けるための手続き(例えば、アクセストークン「AK1」の登録手続き)を簡単化することができる。
【0059】
(対応関係)
多機能機10が、「通信装置」の一例である。アクセストークン「AK1」、電子メールアドレス「M1」、電子メールEM、上記の特定の画像データが、それぞれ、「特定の認証情報」、「特定の電子メールアドレス」、「特定の電子メール」、「対象データ」の一例である。SMTP、HTTPが、それぞれ、「第1の通信プロトコル」、「第2の通信プロトコル」の一例である。また、電子メールEM、HTTPコマンドが、それぞれ、「第1種のアップロード要求」、「第2種のダウンロード要求」の一例である。また、「AK1」を含むリクエストR2を送信することが、「取得部」によって実行される「前記メモリ内の前記特定の認証情報を用いて」の一例である。また、「AK1」を含むリクエストR10を送信することが、「ダウンロード部」によって実行される「前記メモリ内の前記特定の認証情報を用いて」の一例である。
【0060】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例が含まれる。
【0061】
(1)「通信装置」は、印刷機能、スキャン機能等を実行可能である多機能機10に限られず、印刷機能のみを実行可能であるプリンタであってもよいし、スキャン機能のみを実行可能であるスキャナであってもよい。また、「通信装置」は、PC、携帯電話、PDA、FAX装置、サーバ等の他の種類のデバイスであってもよい。一般的に言うと、「通信装置」は、インターネットに接続可能であればよい。
【0062】
(2)サービス提供サーバ100は、ULサービスとDLサービスとの両方を提供可能でなくてもよく、ULサービスのみを提供可能であってもよいし、ULサービスと他のサービス(DLサービス以外のサービス)を提供可能であってもよい。一般的に言うと、「サービス提供サーバ」は、ULサービスを提供可能であればよい。
【0063】
(3)上記の実施例では、「認証情報」としてアクセストークンを利用しているが、「認証情報」は、例えば、ユーザ名とパスワードとの組合せの情報であってもよい。一般的に言うと、「認証情報」は、サービス提供サーバが認証のために利用する情報であればよい。
【0064】
(4)上記の実施例では、取得部41は、サービス提供サーバ100から、仲介サーバ50を介して、電子メールアドレス「M1」を取得している。これに代えて、例えば、多機能機10が第1のAPIに対応している場合(即ち、多機能機10が、第1のAPIを利用するためのプログラムを備えている場合)には、取得部41は、サービス提供サーバ100に、仲介サーバ50を介さずに、アクセストークン「AK1」を含むリクエストを送信して、サービス提供サーバ100から、仲介サーバ50を介さずに、電子メールアドレス「M1」を取得してもよい。一般的に言うと、「取得部」は、特定の認証情報を用いて、サービス提供サーバから特定の電子メールアドレスを取得すればよい。
【0065】
(5)上記の実施例では、サービス提供サーバ100にアップロードされるデータは、原稿のスキャンによって生成される画像データである。これに代えて、サービス提供サーバ100にアップロードされるデータは、多機能機10に接続されている外部メモリ(例えばUSBメモリ)に記憶されているデータであってもよいし、多機能機10が外部装置(例えばPC90)から取得するデータであってもよい。一般的に言うと、「対象データ」は、アップロードされるデータであれば、どのような種類のデータであってもよい。
【0066】
(6)上記の実施例では、多機能機10は、サービス提供サーバ100からダウンロードされるデータに従って、印刷を実行する。これに代えて、多機能機10は、サービス提供サーバ100からダウンロードされるデータを、多機能機10に接続されている外部メモリ(例えばUSBメモリ)に記憶させてもよい。また、多機能機10は、サービス提供サーバ100からダウンロードされるデータを加工(例えば、画像処理、演算等)してもよい。一般的に言うと、「対象データ」がダウンロードされる場合に、通信装置は、上記の実施例のように、印刷を実行してもよいし、他の処理を実行してもよい。
【0067】
(7)上記の実施例では、多機能機10が複数個のAPIに対応していないために、仲介サーバ50が必要である。しかしながら、多機能機10は、複数個のAPIに対応していいてもよい。この場合、多機能機10は、仲介サーバ50を介さずに、アップロード及びダウンロードのための各通信を実行してもよい。一般的に言うと、「通信装置」は、仲介サーバを介して、サービス提供サーバからデータアップロードサービスの提供を受けてもよいし、仲介サーバを介さずに、サービス提供サーバからデータアップロードサービスの提供を受けてもよい。
【0068】
(8)「第2の通信プロトコル」は、HTTPとは異なる通信プロトコル(例えば、インターネットの通信に利用される公知の通信プロトコル、サービス提供サーバによって利用される特殊なプロトコル等)であってもよい。一般的に言うと、「第2の通信プロトコル」は、「第1の通信プロトコル」とは異なる通信プロトコルであればよい。
【0069】
(9)上記の実施例では、多機能機10のCPU32がソフトウェアに従って処理を実行することによって、各部40〜45の機能が実現される。ただし、各部40〜45の機能のうちの少なくとも一部は、論理回路等のハードウェアによって実現されてもよい。
【符号の説明】
【0070】
2:通信システム、6:インターネット、10:多機能機、50:仲介サーバ、100,110:サービス提供サーバ、R2,R4,R10,R12:リクエスト、R6,R8,R14,R16:レスポンス、SE1,SE2:サーバ名、AK1,AK2,AK3:アクセストークン、M1,M2:電子メールアドレス、EM:電子メール

【特許請求の範囲】
【請求項1】
データアップロードサービスを提供可能なサービス提供サーバであって、ユーザ毎に、当該ユーザのための認証情報と、当該ユーザのための電子メールアドレスと、を対応付けて記憶可能な前記サービス提供サーバに、インターネットを介して通信可能に接続される通信装置であって、
特定のユーザのための特定の認証情報を、前記通信装置のメモリに記憶させる記憶制御部と、
アップロード対象の対象データを前記サービス提供サーバにアップロードするためのアップロード指示が、前記特定のユーザから与えられる場合に、前記メモリ内の前記特定の認証情報を用いて、前記サービス提供サーバから、前記特定の認証情報に対応付けて記憶されている特定の電子メールアドレスを取得する取得部と、
前記特定の電子メールアドレスが送信先アドレスとして指定されている特定の電子メールであって、前記対象データを含む前記特定の電子メールを送信することによって、前記対象データを前記サービス提供サーバにアップロードするアップロード部と、
を備える通信装置。
【請求項2】
前記取得部は、
前記アップロード指示が与えられる場合に、前記サービス提供サーバから前記通信装置への前記データアップロードサービスの提供を仲介する仲介サーバに、前記特定の認証情報を送信する送信部と、
前記仲介サーバが、前記特定の認証情報を用いて、前記サービス提供サーバから取得する前記特定の電子メールアドレスを、前記仲介サーバから受信する受信部と、を備える請求項1に記載の通信装置。
【請求項3】
前記サービス提供サーバは、さらに、データダウンロードサービスを提供可能であり、
前記取得部は、前記サービス提供サーバからアップロード済みの前記対象データをダウンロードするためのダウンロード指示が、前記特定のユーザから与えられる場合に、前記サービス提供サーバから前記特定の電子メールアドレスを取得せず、
前記通信装置は、さらに、
前記ダウンロード指示が与えられる場合に、前記メモリ内の前記特定の認証情報を用いて、前記サービス提供サーバから前記対象データをダウンロードするダウンロード部を備える、請求項1又は2に記載の通信装置。
【請求項4】
前記サービス提供サーバは、
電子メールの通信のための第1の通信プロトコルに従った第1種のアップロード要求に対応しており、
前記第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2種のアップロード要求に対応しておらず、
前記第2の通信プロトコルに従った第2種のダウンロード要求に対応しており、
前記アップロード部は、前記アップロード指示が与えられる場合に、前記第1種のアップロード要求である前記特定の電子メールを送信することによって、前記対象データを前記サービス提供サーバにアップロードし、
前記ダウンロード部は、前記ダウンロード指示が与えられる場合に、前記第2種のダウンロード要求を前記サービス提供サーバに送信することによって、前記サービス提供サーバから前記対象データをダウンロードする、請求項3に記載の通信装置。
【請求項5】
前記メモリは、不揮発性メモリと、揮発性メモリと、を含み、
前記記憶制御部は、
前記特定の認証情報を、前記不揮発性メモリに記憶させ、
前記特定の電子メールアドレスが取得される場合に、前記特定の電子メールアドレスを、前記不揮発性メモリに記憶させずに、前記揮発性メモリに記憶させる、請求項1から4のいずれか一項に記載の通信装置。
【請求項6】
前記サービス提供サーバに記憶される各ユーザのための各認証情報は、アクセストークンを含み、
前記特定の認証情報は、前記特定のユーザのための特定のアクセストークンを含む、請求項1から5のいずれか一項に記載の通信装置。
【請求項7】
データアップロードサービスを提供可能なサービス提供サーバであって、ユーザ毎に、当該ユーザのための認証情報と、当該ユーザのための電子メールアドレスと、を対応付けて記憶可能な前記サービス提供サーバに、インターネットを介して通信可能に接続される通信装置のためのコンピュータプログラムであって、
前記通信装置に搭載されるコンピュータに、以下の各処理、即ち、
特定のユーザのための特定の認証情報を、前記通信装置のメモリに記憶させる記憶制御処理と、
アップロード対象の対象データを前記サービス提供サーバにアップロードするためのアップロード指示が、前記特定のユーザから与えられる場合に、前記メモリ内の前記特定の認証情報を用いて、前記サービス提供サーバから、前記特定の認証情報に対応付けて記憶されている特定の電子メールアドレスを取得する取得処理と、
前記特定の電子メールアドレスが送信先アドレスとして指定されている特定の電子メールであって、前記対象データを含む前記特定の電子メールを送信することによって、前記対象データを前記サービス提供サーバにアップロードするアップロード処理と、
を実行させるコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate