(第1実施例)
(通信システムの構成)
図1に示されるように、通信システム2は、スキャナ10と、制御サーバ40と、保存サーバ60と、複数個の携帯端末70,90と、を備える。各デバイス10,40,60,70,90は、インターネットを介して、相互に通信可能である。また、スキャナ10及び各携帯端末70,90は、後述のNFC(Near Field Communicationの略)方式に従った無線通信を利用して、相互に通信可能である。
スキャナ10は、原稿のスキャンを実行して、スキャナ10の内部にスキャンデータを記憶したり、スキャナ10と同じLAN(Local Area Networkの略)に接続されているPC(Personal Computerの略)にスキャンデータを送信したりすることができる。特に、本実施例では、スキャナ10は、携帯端末70,90とNFC方式に従った無線通信を実行することによって、原稿のスキャンを実行して、制御サーバ40を介して保存サーバ60にスキャンデータをアップロードすることができる。このアップロードを実現するために、各デバイス10等は、以下の構成を備える。
(スキャナ10の構成)
スキャナ10は、図示省略のPC等の周辺機器である。スキャナ10は、操作部12と、表示部14と、NFCインターフェース16と、ネットワークインターフェース18と、スキャン実行部20と、制御部30と、を備える。以下では、インターフェースのことを「I/F」と記載する。
操作部12は、複数のキーを備える。ユーザは、操作部12を操作することによって、様々な指示をスキャナ10に入力することができる。表示部14は、様々な情報を表示するためのディスプレイである。スキャン実行部20は、CCD方式、CIS方式等のスキャン機構を備える。
NFCI/F16は、NFC方式の無線通信(以下では「NFC通信」と呼ぶ)を実行するためのI/Fである。NFC方式は、いわゆる近距離無線通信のための無線通信方式であり、例えば、ISO/IEC21481又は18092の国際標準規格に基づく無線通信方式である。ネットワークI/F18は、スキャナ10が設置されている環境に構築される図示省略のLANに接続するためのI/Fであり、有線通信のためのI/Fであってもよいし、無線通信のためのI/Fであってもよい。スキャナ10は、ネットワークI/F18及び図示省略のLANを介して、インターネットに接続される。
制御部30は、CPU32と、メモリ34と、を備える。CPU32は、メモリ34に格納されているプログラムに従って、様々な処理を実行する。
(制御サーバ40の構成)
制御サーバ40は、スキャナ10のベンダによってインターネット上に設置されるサーバである。制御サーバ40は、スキャン実行指示をスキャナ10に送信して、原稿のスキャンをスキャナ10に実行させる。そして、制御サーバ40は、スキャナ10からスキャンデータを受信して、当該スキャンデータを保存サーバ60に送信する。即ち、制御サーバ40は、スキャナ10を制御することによって、スキャナ10から保存サーバ60へのスキャンデータの送信を仲介する。制御サーバ40は、ネットワークI/F48と、制御部50と、を備える。
ネットワークI/F48は、インターネットに接続するためのI/Fである。制御部50は、CPU52と、メモリ54と、を備える。CPU52は、メモリ54に格納されているプログラムに従って、様々な処理を実行する。
(保存サーバ60の構成)
保存サーバ60は、スキャナ10のベンダとは異なる特定のサービス提供会社によってインターネット上に設置されるサーバである。保存サーバ60は、画像データ、文書データ等の様々なデータ(即ちファイル)を保存することができる。保存サーバ60は、例えば、「FTOPIA」、「Evernote(登録商標)」、「Google(登録商標) Docs」、「PICASA(登録商標)」、「FACEBOOK(登録商標)」等の公知のサーバであってもよい。
図示省略しているが、インターネット上には、上記の特定のサービス提供会社によって設置される保存サーバ60のみならず、他の様々なサービス提供会社によって提供される様々な保存サーバが存在する。即ち、複数個のサービス提供会社によって運営される複数個の保存サーバがインターネット上に存在する。
スキャナ10のベンダは、制御サーバ40と通信を実行するためのAPI(Application Program Interface)を公開している。そして、複数個のサービス提供会社のそれぞれは、上記のAPIを含むプログラムに従って各保存サーバ60等を動作させる。これにより、保存サーバ60等は、制御サーバ40と様々な通信(例えば後述の図3のスキャンデータ116Aの通信等)を実行することができる。
(携帯端末70,90の構成)
各携帯端末70,90は、携帯電話(例えばスマートフォン)、PDA(Personal Digital Assistanceの略)、ノートPC、タブレットPC、携帯型音楽再生装置、携帯型動画再生装置等の可搬型の端末装置である。携帯端末70は、操作部72と、表示部74と、NFCI/F76と、ネットワークI/F78と、制御部80と、を備える。なお、携帯端末90は、携帯端末70と同様の構成を備える。
操作部72は、複数のキーを備える。ユーザは、操作部72を操作することによって、様々な指示を携帯端末70に入力することができる。表示部74は、様々な情報を表示するためのディスプレイである。表示部74は、いわゆるタッチパネルとしても機能する。従って、ユーザは、表示部74をタッチすることによって、様々な指示を携帯端末70に入力することもできる。なお、以下の説明では、操作部72の操作によって携帯端末70に各指示が入力される例を記載するが、各指示の入力は、表示部74のタッチパネルの操作によって実現されてもよい。
NFCI/F76は、NFC通信を実行するためのI/Fである。ネットワークI/F78は、インターネットに接続するためのI/Fである。制御部80は、CPU82と、メモリ84と、を備える。CPU82は、メモリ84に格納されているプログラムに従って、様々な処理を実行する。
メモリ84は、さらに、スキャナ10から保存サーバ60へのスキャンデータのアップロードに関連する様々な処理をスキャナ10に実行させるためのアプリケーション(以下では「スキャナ用アプリケーション」と呼ぶ)を記憶している。例えば、携帯端末70は、スキャナ10のベンダによってインターネット上に設置されるサーバ(即ち制御サーバ40は異なるサーバ)から、スキャナ用アプリケーションをダウンロードする。携帯端末70のCPU82によって実行される以下の各処理は、スキャナ用アプリケーションに従って実現される。
(事前準備;図2)
続いて、図2を参照しながら、各デバイス10,40,60,70,90が実行する各処理の内容を説明する。まず、携帯端末70のユーザは、以下の事前準備を実行する。
携帯端末70のユーザは、まず、携帯端末70の操作部72を操作して、スキャナ用アプリケーションを起動させる。この場合、携帯端末70のCPU82は、スキャナ用アプリケーションの初期画面を表示部74に表示させる。初期画面では、「事前登録」を示す文字列を含む事前登録ボタンと、「アップロード」を示す文字列を含むアップロードボタンと、を含む。
携帯端末70のCPU82は、ユーザによって事前登録ボタンが選択されると、制御サーバ40にログインするためのアカウント情報(即ち、携帯端末70のユーザのためのアカウント情報)を制御サーバ40に登録するための処理を実行する。以下では、制御サーバ40にログインするためのアカウント情報のことを「仲介アカウント情報」と呼ぶ。
スキャナ用アプリケーションには、制御サーバ40のURL(Uniform Resource Locatorの略)が予め記述されている。図示省略しているが、携帯端末70のCPU82は、制御サーバ40のURLを利用して、ネットワークI/F78を介して、制御サーバ40にアクセスする。これにより、CPU82は、ネットワークI/F78を介して、制御サーバ40からアカウント登録画面を表わす画面情報を受信して、アカウント登録画面を表示部74に表示させる。ユーザは、アカウント登録画面を見ながら、操作部12を操作して、ユーザID、パスワード等の各種情報を携帯端末70に入力する。この場合、CPU82は、ネットワークI/F78を介して、上記の各種情報を含むアカウント要求100を制御サーバ40に送信する。
制御サーバ40のCPU52は、ネットワークI/F48を介して、携帯端末70からアカウント要求100を受信すると、アカウント要求100に含まれる上記の各種情報を含む仲介アカウント情報AC1aをメモリ54に登録する(即ちメモリ54に記憶させる)。なお、制御サーバ40において実行される通信では、ネットワークI/F48が常に利用されるので、以下の説明では、「ネットワークI/F48を介して」という用語を省略する。CPU52は、登録済みの仲介アカウント情報AC1aを携帯端末70に送信する。
携帯端末70のCPU82は、ネットワークI/F78を介して、制御サーバ40から仲介アカウント情報AC1aを受信すると、仲介アカウント情報AC1aとID「001」とを関連付けてメモリ84に記憶させる。ID「001」は、関連付けられる仲介アカウント情報が、携帯端末70自身の仲介アカウント情報であることを示すIDである。なお、後で詳しく述べるが、携帯端末70は、他の携帯端末(例えば携帯端末90)から、当該他の携帯端末の仲介アカウント情報(例えばAC2a)を取得する可能性があり(図4参照)、当該他の携帯端末の仲介アカウント情報には、ID「001」とは異なるID(例えばID「002」)が関連付けられる。
次いで、携帯端末70のCPU82は、ユーザの指示に従って、保存サーバ60にログインするためのアカウント情報(即ち、携帯端末70のユーザのためのアカウント情報)を保存サーバ60に登録するための処理を実行する。以下では、保存サーバ60にログインするためのアカウント情報のことを「ULアカウント情報」と呼ぶ。
スキャナ用アプリケーションには、複数個の保存サーバのそれぞれのサーバ名及びURLが予め記述されている。本実施例では、ユーザは、複数個の保存サーバの複数個のサーバ名の中から保存サーバ60のサーバ名を選択することによって、複数個の保存サーバの中から保存サーバ60を選択する。この場合、携帯端末70のCPU82は、制御サーバ40の場合と同様に、保存サーバ60のURLを利用して、ネットワークI/F78を介して、保存サーバ60からアカウント登録画面を表わす画面情報を受信する。ユーザは、ユーザID、パスワード等の各種情報を携帯端末70に入力する。この場合、CPU82は、ネットワークI/F78を介して、上記の各種情報を含むアカウント要求102を保存サーバ60に送信する。
保存サーバ60は、携帯端末70からアカウント要求102を受信すると、アカウント要求102に含まれる上記の各種情報を含むULアカウント情報AC1bを登録する。そして、保存サーバ60は、登録済みのULアカウント情報AC1bを携帯端末70に送信する。
携帯端末70のCPU82は、ネットワークI/F78を介して、保存サーバ60からULアカウント情報AC1bを受信すると、ULアカウント情報AC1bとID「001」とを関連付けてメモリ84に記憶させる。ID「001」は、仲介アカウント情報AC1aに関連付けられるIDと同じIDであり、関連付けられるULアカウント情報が、携帯端末70自身のULアカウント情報であることを示すIDである。なお、後で詳しく述べるが、携帯端末70は、他の携帯端末(例えば携帯端末90)から、当該他の携帯端末のULアカウント情報(例えばAC2b)を取得する可能性があり(図4参照)、当該他の携帯端末のULアカウント情報には、ID「001」とは異なるID(例えばID「002」)が関連付けられる。
携帯端末90のユーザも、携帯端末70と同様に、事前準備をすることができる。これにより、制御サーバ40のメモリ54には、さらに、携帯端末90からのアカウント要求104に応じた仲介アカウント情報AC2aが登録され、保存サーバ60には、さらに、携帯端末90からのアカウント要求106に応じたULアカウント情報AC2bが登録される。また、携帯端末90のメモリ(図示省略)は、仲介アカウント情報AC2aと、ULアカウント情報AC2bと、ID「001」と、を関連付けて記憶する。
(ケースA;図3)
続いて、スキャンデータをアップロードするための各処理を説明する。まず、図3を参照して、携帯端末70のユーザのみがスキャンデータのアップロードを望むケースAを説明する。次いで、図4を参照して、携帯端末70,90の各ユーザが同じスキャンデータのアップロードを望むケースBを説明する。
上述したように、携帯端末70でスキャナ用アプリケーションが起動される場合には、携帯端末70の表示部74に初期画面が表示される。初期画面は、「アップロード」を示す文字列を含むアップロードボタンと、を含む。ユーザは、スキャン対象の原稿をスキャナ10にセットした後に、アップロードボタンを選択する。アップロードボタンが選択された後に、さらに、スキャンデータのアップロード先の保存サーバ(本実施例では保存サーバ60)のサーバ名が、ユーザによって選択される。そして、ユーザは、携帯端末70をスキャナ10に近づける。携帯端末70とスキャナ10との間の距離、より正確に言うと、携帯端末70のNFCI/F76とスキャナ10のNFCI/F16との間の距離が、NFC通信を実行可能な距離(例えば10cm)以下になると、携帯端末70のNFCI/F76とスキャナ10のNFCI/F16との間に、NFC接続が確立される。
携帯端末70のCPU82は、上記のNFC接続を利用して(即ちNFCI/F76を介して)、携帯端末70の仲介アカウント情報AC1aをスキャナ10に送信(即ち供給)する。
スキャナ10のCPU32は、上記のNFC接続を利用して(即ちNFCI/F16を介して)、携帯端末70から仲介アカウント情報AC1aを受信(即ち取得)する。この場合、CPU32は、ネットワークI/F18を介して、仲介アカウント情報AC1aを含むログイン要求108Aを制御サーバ40に送信する。なお、制御サーバ40のURLは、スキャナ10のメモリ34に予め記憶されていてもよいし、携帯端末70から仲介アカウント情報AC1aと共に受信されていてもよい。CPU32は、制御サーバ40のURLを利用して、ログイン要求108Aを制御サーバ40に送信する。
制御サーバ40のCPU52は、スキャナ10からログイン要求108Aを受信すると、ログイン要求108Aに含まれる仲介アカウント情報AC1aがメモリ54に登録されているのか否かを判断する。CPU52は、仲介アカウント情報AC1aがメモリ54に登録されていないと判断する場合には、図示省略のログイン失敗通知をスキャナ10に送信する。一方において、CPU52は、仲介アカウント情報AC1aがメモリ54に登録されていると判断する場合には、ユニークな文字列であるアクセストークン(即ち認証情報)T1Aを生成する。そして、CPU52は、仲介アカウント情報AC1aに関連付けて、アクセストークンT1Aをメモリ54に記憶させる。次いで、CPU52は、アクセストークンT1Aを含むログイン成功通知110Aをスキャナ10に送信する。
スキャナ10のCPU32は、ネットワークI/F18を介して、制御サーバ40からログイン成功通知110Aを受信すると、ログイン成功通知110Aに含まれるアクセストークンT1Aをメモリ34に記憶させる。次いで、CPU32は、上記のNFC接続を利用して(即ちNFCI/F16を介して)、アクセストークンT1Aを携帯端末70に送信(即ち供給)する。
携帯端末70のCPU82は、上記のNFC接続を利用して(即ちNFCI/F76を介して)、スキャナ10からアクセストークンT1Aを受信(即ち取得)すると、アクセストークンT1Aをメモリ84に記憶させる。
また、スキャナ10のCPU32は、アクセストークンT1Aを携帯端末70に送信した後に、ネットワークI/F18を介して、アクセストークンT1Aを含む接続要求を制御サーバ40に送信する。上記の接続要求は、スキャナ10と制御サーバ40との間にXMPP(Extensible Messaging and Presence Protocolの略)接続を確立するための要求である。
制御サーバ40のCPU52は、スキャナ10から接続要求を受信すると、接続要求に含まれるアクセストークンT1Aがメモリ54に記憶されているのか否かを判断する。CPU52は、アクセストークンT1Aがメモリ54に記憶されていると判断する場合には、所定の応答をスキャナ10に送信する。これにより、スキャナ10と制御サーバ40との間にXMPP接続が確立される。この結果、制御サーバ40は、ルータ等によって通信が妨げられることなく、XMPP接続を利用して、後述のスキャン実行指示114Aをスキャナ10に適切に送信することができる(即ち、インターネット側からLAN側への通信を実行することができる)。
制御サーバ40のCPU52は、XMPP接続が確立される場合に、XMPP接続を識別するための接続IDを生成し、仲介アカウント情報AC1aに関連付けて、接続IDをメモリ54に記憶させる。この結果、メモリ54では、アクセストークンT1A、接続ID、及び、仲介アカウント情報AC1aが関連付けられている状態になる。
上述したように、本実施例では、携帯端末70のユーザは、携帯端末70をスキャナ10に近づければ、仲介アカウント情報AC1aに従った制御サーバ40へのログインをスキャナ10に実行させることができる。例えば、制御サーバ40へのログインをスキャナ10に実行させるために、スキャナ10の操作部12を操作して、仲介アカウント情報AC1aや他の情報をスキャナ10に入力しなければならない構成と比べると、ユーザの利便性が向上する。
次いで、携帯端末70のCPU82は、スキャナ10を介さずに、スキャン要求112A、アクセストークンT1A、ULアカウント情報AC1b、及び、ユーザによって選択されたサーバ名(以下では「4個の情報」と呼ぶ)を、制御サーバ40に送信する。より具体的に言うと、CPU82は、ネットワークI/F78を介して、上記の4個の情報を制御サーバ40に同時的に送信する。CPU82は、上記の4個の情報を制御サーバ40に同時的に送信することによって、当該4個の情報が関連付けられた状態で、当該4個の情報を制御サーバ40に送信することができる。スキャン要求112Aは、後述のスキャン実行指示114Aのスキャナ10への送信を制御サーバ40に実行させるための要求である。
制御サーバ40のCPU52は、携帯端末70から、スキャン要求112A、アクセストークンT1A、ULアカウント情報AC1b、及び、サーバ名を同時的に受信する。即ち、CPU52は、上記の4個の情報が関連付けられた状態で、携帯端末70から上記の4個の情報を受信することができる。
上述したように、制御サーバ40のメモリ54では、仲介アカウント情報AC1a及びアクセストークンT1Aが関連付けられている。そして、CPU52は、携帯端末70からアクセストークンT1A及びULアカウント情報AC1bを同時的に受信する場合に、アクセストークンT1Aに関連付けて、ULアカウント情報AC1b(さらにはサーバ名)をメモリ54に記憶させる。この結果、メモリ54では、アクセストークンT1A、接続ID、仲介アカウント情報AC1a、ULアカウント情報AC1b、及び、サーバ名が関連付けられている状態になる。即ち、CPU52は、携帯端末70からアクセストークンT1A及びULアカウント情報AC1bを同時的に受信する場合に、アクセストークンT1Aを介して、仲介アカウント情報AC1a及びULアカウント情報AC1bを関連付けることができる。
また、制御サーバ40のCPU52は、携帯端末70からアクセストークンT1A及びスキャン要求112Aを同時的に受信する場合に、メモリ54から、アクセストークンT1Aに関連付けられているXMPP接続の接続IDを取得する。そして、CPU52は、取得済みの接続IDに対応するXMPP接続、即ち、スキャナ10と制御サーバ40との間に確立されているXMPP接続を利用して、スキャン要求112Aに応じたスキャン実行指示114Aをスキャナ10に送信する。CPU52は、XMPP接続を利用するので、LAN側に存在するスキャナ10にスキャン実行指示114Aを適切に送信することができる。
スキャナ10のCPU32は、ネットワークI/F18を介して、制御サーバ40からスキャン実行指示114Aを受信すると、原稿のスキャンをスキャン実行部20に実行させるための指令を発行する。これにより、スキャン実行部20は、原稿のスキャンを実行して、画像データを生成する。CPU32は、スキャン実行部20から画像データを取得すると、当該画像データを利用して、予め決められているファイル形式(例えばPDF、JPEG等)を有するファイルを生成する。以下では、ここで生成されるファイルのことを「スキャンデータ」と呼ぶ。
次いで、スキャナ10のCPU32は、ネットワークI/F18を介して、アクセストークンT1A及びスキャンデータ116Aを制御サーバ40に同時的に送信する。これにより、CPU32は、アクセストークンT1A及びスキャンデータ116Aが関連付けられた状態で、アクセストークンT1A及びスキャンデータ116Aを制御サーバ40に送信することができる。なお、CPU32は、スキャナ10及び制御サーバ40の間に確立されているXMPP接続を利用せずに、アクセストークンT1A及びスキャンデータ116Aを制御サーバ40に送信する。
制御サーバ40のCPU52は、スキャナ10から、アクセストークンT1A及びスキャンデータ116Aを同時的に受信する。このために、CPU52は、アクセストークンT1Aに関連付けられている仲介アカウント情報AC1aに従ったログイン状態を有するスキャナ10から、スキャンデータ116Aを受信したことを知ることができる。即ち、CPU52は、仲介アカウント情報AC1a及びスキャンデータ116Aを関連付けることができる。CPU52は、仲介アカウント情報AC1に関連付けて、スキャンデータ116Aをメモリ54に記憶させる。この結果、メモリ54では、アクセストークンT1A、接続ID、仲介アカウント情報AC1a、ULアカウント情報AC1b、サーバ名、及び、スキャンデータ116Aが関連付けられている状態になる。
上述したように、本実施例では、スキャナ10は、XMPP接続を利用せずに、アクセストークンT1A及びスキャンデータ116Aを制御サーバ40に送信する。ただし、変形例では、スキャナ10は、XMPP接続を利用して、スキャンデータ116Aを制御サーバ40に送信してもよい。この場合、スキャナ10は、アクセストークンT1Aを制御サーバ40に送信しなくてもよい。上述したように、制御サーバ40のメモリ54では、XMPP接続の接続ID及び仲介アカウント情報AC1aが関連付けられている。従って、制御サーバ40は、XMPP接続を利用してスキャンデータ116Aを受信する場合に、当該XMPP接続の接続IDに関連付けられている仲介アカウント情報AC1aを特定することができ、この結果、仲介アカウント情報AC1aに従ったログイン状態を有するスキャナ10から、スキャンデータ116Aを受信したことを知ることができる。
次いで、制御サーバ40のCPU52は、メモリ54から、スキャンデータ116Aに関連付けられているULアカウント情報AC1b及びサーバ名を取得する。そして、CPU52は、取得済みのULアカウント情報AC1bを含むログイン要求118Aを、取得済みのサーバ名を有する保存サーバ60に送信する。なお、制御サーバ40のメモリ54は、保存サーバ60のURLを予め記憶している。CPU52は、保存サーバ60のURLを利用して、ログイン要求118Aを保存サーバ60に送信する。
保存サーバ60は、制御サーバ40からログイン要求118Aを受信すると、ログイン要求118Aに含まれるULアカウント情報AC1bが、保存サーバ60に登録されているのか否かを判断する。保存サーバ60は、ULアカウント情報AC1bが登録されていると判断する場合には、ログイン成功通知120Aを制御サーバ40に送信する。なお、図示省略しているが、保存サーバ60は、ULアカウント情報AC1bが登録されていないと判断する場合には、ログイン失敗通知を制御サーバ40に送信する。この場合、スキャンデータ116Aは、保存サーバ60にアップロードされない。例えば、ULアカウント情報AC1bの有効期限が切れている場合には、ULアカウント情報AC1bが保存サーバ60から消去され得るので、ULアカウント情報AC1bが登録されていないと判断され得る。
制御サーバ40のCPU52は、保存サーバ60からログイン成功通知120Aを受信すると、スキャンデータ116Aを保存サーバ60に送信する。特に、CPU52は、ULアカウント情報AC1bに従ったログイン状態を利用して、スキャンデータ116Aを保存サーバ60に送信する。なお、上記の「ULアカウント情報AC1bに従ったログイン状態を利用して」の態様としては、例えば、以下の第1及び第2の手法のどちらかを採用することができる。
第1の手法では、ULアカウント情報AC1bに従ったログインが成功する場合に、特定のトークンが保存サーバ60で生成され、当該特定のトークンが制御サーバ40に送信される。そして、保存サーバ60では、特定のトークン及びULアカウント情報AC1bが関連付けられる。この場合、制御サーバ40のCPU52は、特定のトークン及びスキャンデータ116Aを保存サーバ60に同時的に送信する。これにより、保存サーバ60は、特定のトークンを介して、ULアカウント情報AC1b及びスキャンデータ116Aを関連付けることができる。
第2の手法では、ULアカウント情報AC1bに従ったログインが成功する場合に、制御サーバ40と保存サーバ60との間に接続(例えばXMPP接続)が確立される。そして、保存サーバ60では、上記の接続を識別するための接続ID及びULアカウント情報AC1bが関連付けられる。この場合、制御サーバ40のCPU52は、上記の接続を利用して、スキャンデータ116Aを保存サーバ60に送信する。これにより、保存サーバ60は、上記の接続IDを介して、ULアカウント情報AC1b及びスキャンデータ116Aを関連付けることができる。
上述したように、保存サーバ60は、制御サーバ40からスキャンデータ116Aを受信すると、ULアカウント情報AC1b及びスキャンデータ116Aを関連付けることができる。このために、保存サーバ60は、ULアカウント情報AC1bに対応する場所にスキャンデータ116Aを保存(即ちアップロード)することができる。スキャンデータ116Aのアップロードが成功すると、保存サーバ60は、終了通知126Aを制御サーバ40に送信する。
制御サーバ40のCPU52は、保存サーバ60から終了通知126Aを受信すると、XMPP接続を切断するための信号をスキャナ10に送信する。これにより、スキャナ10と制御サーバ40との間のXMPP接続が切断される。次いで、CPU52は、ULアカウント情報AC1bに関連付けられている各情報、即ち、アクセストークンT1A、接続ID、ULアカウント情報AC1b、及び、スキャンデータ116Aを、メモリ54から消去する。
また、スキャナ10のCPU32は、XMPP接続が切断されると、アクセストークンT1Aをメモリ34から消去する。
また、制御サーバ40のCPU52は、スキャン要求112Aに対する応答として(即ち戻り値として)、終了通知128Aを携帯端末70に送信する。このように、制御サーバ40は、スキャン要求112Aに対する応答として終了通知128Aを送信するので、インターネット側から携帯端末70に終了通知128Aを適切に送信することができる。
携帯端末70のCPU82は、ネットワークI/F78を介して、制御サーバ40から終了通知128Aを受信すると、アクセストークンT1Aをメモリ84から消去する。
(ケースAの効果)
上述したように、本実施例によると、携帯端末70は、NFC通信を利用して、仲介アカウント情報AC1aをスキャナ10に供給する。スキャナ10は、NFC通信を利用して、携帯端末70から仲介アカウント情報AC1aを取得すると、仲介アカウント情報AC1aを含むログイン要求108Aを制御サーバ40に送信する。制御サーバ40は、スキャナ10からログイン要求108Aを受信すると、アクセストークンT1Aを含むログイン成功通知110Aをスキャナ10に送信する。スキャナ10は、上記のNFC通信を利用して、アクセストークンT1Aを携帯端末70に供給する。
携帯端末70は、スキャナ10からアクセストークンT1Aを取得すると、スキャナ10を介さずに、スキャン要求112A、アクセストークンT1A、及び、ULアカウント情報AC1bを制御サーバ40に同時的に送信する。これにより、制御サーバ40は、携帯端末70から、スキャナ10を介さずに、スキャン要求112A、アクセストークンT1A、及び、ULアカウント情報AC1bを同時的に受信する。このために、制御サーバ40は、アクセストークンT1Aを介して、仲介アカウント情報AC1a及びULアカウント情報AC1bを関連付けることができる。また、制御サーバ40は、スキャン要求112Aに応じて、スキャン実行指示114Aをスキャナ10に送信して、スキャナ10からスキャンデータ116Aを受信する。
上述したように、制御サーバ40は、2個のアカウント情報AC1a,AC1bを関連付けることができるので、仲介アカウント情報AC1aに従ったログイン状態を有するスキャナ10から受信したスキャンデータ116Aが、ULアカウント情報AC1bに対応する場所に保存されるように、ULアカウント情報AC1bに従って保存サーバ60にログインして、スキャンデータ116Aを保存サーバ60に送信することができる。これにより、制御サーバ40は、携帯端末70のULアカウント情報AC1bに対応する場所、即ち、携帯端末70のユーザのための場所に、スキャンデータ116Aを保存(即ちアップロード)させることができる。
また、図示省略しているが、携帯端末90が利用される場合も、携帯端末70が利用される場合と同様に、スキャンデータが保存サーバ60にアップロードされる。即ち、制御サーバ40は、携帯端末90のULアカウント情報AC2bに対応する場所、即ち、携帯端末90のユーザのための場所に、スキャンデータを保存(即ちアップロード)させることができる。本実施例によると、制御サーバ40は、複数個の携帯端末70,90の複数のユーザによって同じスキャナ10が利用される場合でも、各携帯端末70,90の各ULアカウント情報AC1b,AC2bに対応する各場所、即ち、各携帯端末70,90の各ユーザのための各場所に、スキャンデータを保存させることができる。
特に、本実施例によると、図3のケースAのように、携帯端末70を利用したスキャンデータ116Aのアップロードが終了すると、スキャナ10と制御サーバ40との間のXMPP接続、即ち、仲介アカウント情報AC1aに従ったXMPP接続が、自動的に切断される。仮に、携帯端末70を利用したスキャンデータ116Aのアップロードが終了しても、仲介アカウント情報AC1aに従ったXMPP接続が維持される構成を採用すると、携帯端末90のユーザは、携帯端末90を利用したスキャンデータのアップロードを実行させるために、仲介アカウント情報AC1aに従ったXMPP接続を切断させた後に、仲介アカウント情報AC2aに従ったXMPP接続を確立させなければならない。即ち、携帯端末90のユーザは、スキャナ10の電源をOFFしたり、スキャナ10の操作部12に所定の操作を実行したりして、XMPP接続を切断させなければならない。これに対し、本実施例によると、携帯端末70を利用したスキャンデータ116Aのアップロードが終了すると、仲介アカウント情報AC1aに従ったXMPP接続が自動的に切断されるので、携帯端末90のユーザは、当該XMPP接続を切断させるための操作を実行せずに済む。このために、ユーザの利便性が向上する。
(ケースB;図4)
続いて、図4を参照して、携帯端末70,90の各ユーザが同じスキャンデータのアップロードを望むケースBを説明する。即ち、ケースBでは、携帯端末70及び携帯端末90の二人のユーザが、当該二人のユーザによって保存サーバ60に登録された2個のULアカウント情報AC1b,AC2bに対応する2個の場所に、同じスキャンデータを保存することを望む状況(以下では「特定の状況」と呼ぶ)を想定している。ケースBでは、図3のケースAと同様の部分については説明を省略し、ケースAと異なる部分について詳しく説明する。
図5を参照して後で詳しく説明するが、上記の特定の状況では、当該二人のユーザは、携帯端末70及び携帯端末90のうちの一方をメインの端末として決定し、他方をサブの端末として決定する。本ケースBでは、携帯端末70がメインの端末として決定され、携帯端末90がサブの端末として決定される。そして、携帯端末90のユーザは、携帯端末90を携帯端末70に近づける。この場合、携帯端末70と携帯端末90との間の距離、より正確に言うと、携帯端末70のNFCI/F76と携帯端末90のNFCI/F(図示省略)との間の距離が、NFC通信を実行可能な距離(例えば10cm)以下になり、携帯端末70のNFCI/F76と携帯端末90のNFCI/Fとの間に、NFC接続が確立される。
サブの端末として動作する携帯端末90のCPU(図示省略)は、携帯端末90のメモリ(図示省略)から、ID「001」に関連付けられている携帯端末90の仲介アカウント情報AC2a及びULアカウント情報AC2bを取得する。そして、携帯端末90のCPUは、NFC接続を利用して、2個のアカウント情報AC2a,AC2bを携帯端末70に送信(即ち供給)する。
メインの端末として動作する携帯端末70のCPU82は、上記のNFC接続を利用して(即ちNFCI/F16を介して)、携帯端末90から2個のアカウント情報AC2a,AC2bを受信(即ち取得)する。この場合、CPU82は、携帯端末90の各アカウント情報AC2a,AC2bと、ID「001」とは異なるID(本ケースではID「002」)と、を関連付けて、メモリ84に記憶させる。
次いで、携帯端末70のユーザは、携帯端末70をスキャナ10に近づける。これにより、携帯端末70のNFCI/F76とスキャナ10のNFCI/F16との間に、NFC接続が確立される。CPU82は、上記のNFC接続を利用して、2個の仲介アカウント情報AC1a,AC2a及び2個のIDをスキャナ10に送信(即ち供給)する。より具体的に言うと、CPU82は、仲介アカウント情報AC1a及びID「001」が関連付けられており、かつ、仲介アカウント情報AC2a及びID「002」が関連付けられている状態(即ちメモリ84内での関連付けと同様の状態)で、各情報をスキャナ10に送信(即ち供給)する。
スキャナ10のCPU32は、上記のNFC接続を利用して、携帯端末70から2個の仲介アカウント情報AC1a,AC2a及び2個のIDを受信(即ち取得)する。この場合、CPU32は、ネットワークI/F18を介して、2個の仲介アカウント情報AC1a,AC2a及び2個のIDを含むログイン要求108Bを制御サーバ40に送信する。なお、ログイン要求108B内でも、各仲介アカウント情報AC1a,AC2aと、各IDと、が関連付けられている。
制御サーバ40のCPU52は、スキャナ10からログイン要求108Bを受信すると、ログイン要求108Bに含まれる2個の仲介アカウント情報AC1a,AC2aの双方が、メモリ54に登録されているのか否かを判断する。CPU52は、2個の仲介アカウント情報AC1a,AC2aの双方がメモリ54に登録されていると判断する場合には、アクセストークンT1Bを生成する。そして、CPU52は、仲介アカウント情報AC1aに関連付けてアクセストークンT1B及びID「001」をメモリ54に記憶させ、仲介アカウント情報AC2aに関連付けてアクセストークンT1B及びID「002」をメモリ54に記憶させる。次いで、CPU52は、アクセストークンT1Bを含むログイン成功通知110Aをスキャナ10に送信する。
スキャナ10のCPU32は、制御サーバ40からログイン成功通知110Bを受信すると、アクセストークンT1Bをメモリ34に記憶させて、アクセストークンT1Bを携帯端末70に送信(即ち供給)する。
携帯端末70のCPU82は、スキャナ10からアクセストークンT1Bを受信(即ち取得)すると、アクセストークンT1Bをメモリ84に記憶させる。
そして、スキャナ10と制御サーバ40との間にXMPP接続が確立される。上述したように、本ケースBでは、スキャナ10は、2個の仲介アカウント情報AC1a,AC2aに従って、制御サーバ40にログインしている状態になる。ただし、制御サーバ40では1個のアクセストークンT1Bのみが生成され、当該アクセストークンT1Bに従ったXMPP接続が確立される。
次いで、携帯端末70のCPU82は、スキャナ10を介さずに、スキャン要求112B、アクセストークンT1B、2個のULアカウント情報AC1b,AC2b、2個のID、及び、サーバ名を制御サーバ40に同時的に送信する。より具体的に言うと、CPU82は、ULアカウント情報AC1b及びID「001」が関連付けられており、かつ、ULアカウント情報AC2b及びID「002」が関連付けられている状態(即ちメモリ84内での関連付けと同様の状態)で、各情報を制御サーバ40に送信する。
制御サーバ40のCPU52は、携帯端末70からスキャン要求112B等を受信すると、以下の処理を実行する。上述したように、制御サーバ40のメモリ54では、仲介アカウント情報AC1a、アクセストークンT1B、及び、ID「001」が関連付けられている。そして、CPU52は、携帯端末70から、アクセストークンT1B、ULアカウント情報AC1b、及び、ID「001」を同時的に受信する場合に、アクセストークンT1B及びID「001」に関連付けて、ULアカウント情報AC1bをメモリ54に記憶させる。この結果、メモリ54では、アクセストークンT1B、ID「001」、接続ID、仲介アカウント情報AC1a、ULアカウント情報AC1b、及び、サーバ名が関連付けられている状態になる。即ち、CPU52は、アクセストークンT1B及びID「001」を介して、仲介アカウント情報AC1a及びULアカウント情報AC1bを関連付けることができる。
同様に、制御サーバ40のCPU52は、アクセストークンT1B及びID「002」を介して、仲介アカウント情報AC2a及びULアカウント情報AC2bを関連付けることができる。即ち、メモリ54では、アクセストークンT1B、ID「002」、接続ID、仲介アカウント情報AC2a、ULアカウント情報AC2b、及び、サーバ名が関連付けられている状態になる。即ち、制御サーバ40は、アクセストークンT1Bを介して、複数個の仲介アカウント情報AC1a,AC2aと、複数個のULアカウント情報AC1b,AC2bと、を関連付けることができる。
次いで、制御サーバ40のCPU52は、スキャン要求112Bに応じて、XMPP接続を利用して、スキャン実行指示114Bをスキャナ10に送信して、スキャナ10からアクセストークンT1B及びスキャンデータ116Bを受信する。これにより、CPU52は、アクセストークンT1Bに関連付けられている2個の仲介アカウント情報AC1a,AC2aに従ったログイン状態を有するスキャナ10から、スキャンデータ116Bを受信したことを知ることができる。次いで、CPU52は、2個の仲介アカウント情報AC1a,AC2aのそれぞれに関連付けて、スキャンデータ116Bをメモリ54に記憶させる。
続いて、制御サーバ40のCPU52は、スキャンデータ116Bが関連付けられている2個のULアカウント情報AC1b,AC2bのうちの一方のULアカウント情報AC1bと、当該ULアカウント情報AC1bに関連付けられているサーバ名と、を利用して、保存サーバ60にログインする(ログイン要求118B、ログイン成功通知120B参照)。そして、CPU52は、ULアカウント情報AC1bに従ったログイン状態を利用して、スキャンデータ116Bを保存サーバ60に送信する。これにより、保存サーバ60は、ULアカウント情報AC1bに対応する場所にスキャンデータ116Bを保存する。
また、制御サーバ40のCPU52は、他方のULアカウント情報AC2bを利用して、保存サーバ60にログインし(ログイン要求120、ログイン成功通知122参照)、ULアカウント情報AC2bに従ったログイン状態を利用して、スキャンデータ116Bを保存サーバ60に送信する。これにより、保存サーバ60は、ULアカウント情報AC2bに対応する場所にスキャンデータ116Bを保存する。以降の各処理(例えば終了通知の通信等)については、図3のケースAと同様であるので、図示及び説明を省略する。
(ケースBの効果)
上述したように、ケースBでは、携帯端末70は、携帯端末90から仲介アカウント情報AC2a及びULアカウント情報AC2bを取得する。そして、携帯端末70は、予め保持している仲介アカウント情報AC1aと、取得済みの仲介アカウント情報AC2aと、を含む2個の仲介アカウント情報AC1a,AC2aを、スキャナ10に供給する。この結果、スキャナ10は、2個の仲介アカウント情報AC1a,AC2aを含むログイン要求108Bを制御サーバ40に送信して、制御サーバ40からアクセストークンT1Bを含むログイン成功通知110Bを受信する。
また、携帯端末70は、予め保持しているULアカウント情報AC1bと、取得済みのULアカウント情報AC2bと、を含む2個のULアカウント情報AC1b,AC2bを、スキャン要求112B及びアクセストークンT1Bと共に、制御サーバ40に送信する。これにより、制御サーバ40は、アクセストークンT1Bを介して、2個の仲介アカウント情報AC1a,AC2aと、2個のULアカウント情報AC1b,AC2bと、を関連付けることができる。従って、制御サーバ40は、2個の仲介アカウント情報AC1a,AC2aに従ったログイン状態を有するスキャナ10から受信したスキャンデータ116Bが、2個のULアカウント情報AC1b,AC2bに対応する2個の場所に保存されるように、スキャンデータ116Bを保存サーバ60に送信することができる。この結果、制御サーバ40は、携帯端末70のULアカウント情報AC1bに対応する場所と、携帯端末90のULアカウント情報AC2bに対応する場所と、のそれぞれに、同じスキャンデータ116Bを保存(即ちアップロード)させることができる。即ち、制御サーバ40は、携帯端末70のユーザのための場所と、携帯端末90のユーザのための場所と、のそれぞれに、同じスキャンデータ116Bを保存させることができる。
(携帯端末70のCPU82が実行する処理;図5)
続いて、図5を参照して、携帯端末70のCPU82がスキャナ用アプリケーションに従って実行する処理の内容を説明する。上述したように、携帯端末70のスキャナ用アプリケーションが起動される場合には、携帯端末70の表示部74に初期画面が表示される。初期画面は、「アップロード」を示す文字列を含むアップロードボタンを含む。ユーザによってアップロードボタンが選択される場合に、CPU82は、図5のアップロード関連処理を実行する。なお、携帯端末90のCPU(図示省略)も、スキャナ用アプリケーションに従って、アップロード関連処理を実行することができる。
S10では、CPU82は、待機画面SC1を表示部74に表示させる。図6に示されるように、待機画面SC1は、大別して3個のメッセージを含む。第1のメッセージは、ユーザが携帯端末70をスキャナ10に近づければ、スキャナ10にスキャンを実行させることが可能であることを示すメッセージである。第2のメッセージは、ユーザが携帯端末70を他の携帯端末(例えば携帯端末90)に近づければ、他の携帯端末の仲介アカウント情報及びULアカウント情報を取得することが可能であることを示すメッセージである。第3のメッセージは、携帯端末70の仲介アカウント情報及びULアカウント情報を他の携帯端末(例えば携帯端末90)に供給することを示すメッセージである。
次いで、図5のS12では、CPU82は、ユーザがどの操作を実行したのかを決定する。携帯端末70のユーザは、スキャンデータのアップロードのために、原稿のスキャンをスキャナ10に実行させることを望む場合には、待機画面SC1内の第1のメッセージ(図6参照)に従って、携帯端末70をスキャナ10に近づける。この結果、スキャナ10と携帯端末70との間にNFC接続が確立される。当該NFC接続が確立される過程において、通信相手がスキャナであることを示すコードがスキャナ10から携帯端末70に送信される。従って、CPU82は、当該コードを受信すれば、NFC接続が確立された通信相手がスキャナ10であることを知ることができる。この場合、S12において、CPU82は、ユーザが携帯端末70をスキャナ10に近づけた結果として、スキャナ10と携帯端末70との間にNFC接続が確立されたと判断して、S14に進む。なお、理解の容易化のために、S14以降の処理を説明する前に、S40,S42,S50,S52の処理を説明する
上記の特定の状況(即ち図4のケースBの状況)では、携帯端末70及び携帯端末90の二人のユーザは、携帯端末70及び携帯端末90のうちのどちらがメインの端末として動作するのかを決定する(即ち、どちらがサブの端末として動作するのかを決定する)。上記の特定の状況において、携帯端末70がメインの端末として動作することが決定される場合(即ち、携帯端末90がサブの端末として動作することが決定される場合)には、携帯端末70のユーザは、待機画面SC1内の第2のメッセージ(図6参照)に従って、携帯端末70を携帯端末90に近づける。この結果、携帯端末70と携帯端末90との間にNFC接続が確立される。当該NFC接続が確立される過程において、通信相手が携帯端末であることを示すコードが携帯端末90から携帯端末70に送信される。従って、CPU82は、当該コードを受信すれば、NFC接続が確立された通信相手が携帯端末90であることを知ることができる。この場合、S12において、CPU82は、ユーザが携帯端末70を携帯端末90に近づけた結果として、携帯端末70と携帯端末90との間にNFC接続が確立されたと判断して、S40に進む。
S40では、CPU82は、NFCI/F76を介して、サブの端末として動作する携帯端末90(即ち、後述のS52の処理を実行する携帯端末90)から、携帯端末90の仲介アカウント情報AC2a及びULアカウント情報AC2bを受信(即ち取得)する(図4参照)。次いで、S42では、CPU82は、メモリ84に現在記憶されている最大のID(例えば「001」)に「1」を加算して、新たなID(例えば「002」)を生成する。そして、CPU82は、生成済みの新たなID(例えば「002」)と、仲介アカウント情報AC2aと、ULアカウント情報AC2bと、を関連付けて、メモリ84に記憶させる。
S42を終えると、アップロード関連処理が終了する。その後、携帯端末70のユーザは、待機画面SC1内の第1のメッセージ(図6参照)に従って、携帯端末70をスキャナ10に近づければ、各携帯端末70,90の各ULアカウント情報AC1b,AC2bに対応する各場所に、同じスキャンデータをアップロードさせることができる(図4及び後述のS14〜S30参照)。
一方において、上記の特定の状況において、携帯端末70がサブの端末として動作することが決定される場合(即ち、携帯端末90がメインの端末として動作することが決定される場合)には、携帯端末70のユーザは、待機画面SC1内の第3のメッセージ(図6参照)を含むボタンを選択する。この場合、S12において、CPU82は、ユーザによってボタンが選択されたと判断して、S50に進む。
S50では、CPU82は、動作指示画面SC5を表示部74に表示させる。図5に示されるように、動作指示画面SC5は、携帯端末70を他の携帯端末(即ち携帯端末90)に近づけることをユーザに促すためのメッセージを含む。従って、携帯端末70のユーザは、携帯端末70を携帯端末90に近づける。この結果、携帯端末70と携帯端末90との間にNFC接続が確立される。
次いで、図5のS52では、CPU82は、NFCI/F76を介して、メモリ84内でID「001」に関連付けられている2個のアカウント情報AC1a,AC1b、即ち、携帯端末70の仲介アカウント情報AC1a及びULアカウント情報AC1bを、携帯端末90に送信(即ち供給)する。これにより、CPU82は、メインの端末として動作する携帯端末90(即ちS40の処理を実行する携帯端末90)に、携帯端末70の各アカウント情報AC1a,AC1bを供給することができる。
S52を終えると、アップロード関連処理が終了する。その後、携帯端末90のユーザは、携帯端末90で表示される待機画面SC1内の第1のメッセージ(図6参照)に従って、携帯端末90をスキャナ10に近づければ、各携帯端末70,90の各ULアカウント情報AC1b,AC2bに対応する各場所に、同じスキャンデータをアップロードさせることができる。
上述したように、S14が実行される段階では、スキャナ10と携帯端末70との間にNFC接続が確立されている。CPU82は、NFCI/F76を介して、メモリ84内の1個以上の仲介アカウント情報をスキャナ10に送信する。上述したように、図2の事前準備が実行されると、ID「001」と仲介アカウント情報AC1aとがメモリ84に記憶される。また、S14が実行される前に、S42が実行済みである状況では、ID「001」とは異なる1個以上のID(例えばID「002」等)のそれぞれについて、当該1個のIDと仲介アカウント情報(例えば携帯端末90の仲介アカウント情報)とがメモリ84に記憶される。
1個の仲介アカウント情報AC1aのみがメモリ84に存在する場合には、S14において、CPU82は、仲介アカウント情報AC1aのみをスキャナ10に送信する(即ちID「001」を送信しない;図3のケースA参照))。一方において、2個以上の仲介アカウント情報がメモリ84に存在する場合には、S14において、CPU82は、各仲介アカウント情報及び各IDが関連付けられている状態で、各仲介アカウント情報及び各IDをスキャナ10に送信する(図4のケースB参照)。
次いで、S16では、CPU82は、NFCI/F76を介して、スキャナ10からアクセストークン(図3のT1A、図4のT1B参照)を受信する。続いて、S18では、CPU82は、アクセストークンをメモリ84に記憶させる。
次いで、S20では、CPU82は、開始指示画面SC2を表示部74に表示させる。図6に示されるように、開始指示画面SC2は、「スキャン開始」を示す文字列を含む開始ボタンを含む。ユーザは、操作部12を操作して、開始ボタンを操作する。なお、図示していないが、開始ボタンがユーザによって選択される前に、スキャンデータの保存先の保存サーバ60のサーバ名がユーザによって選択される。この場合、図5のS22に進む。
S22では、CPU82は、ネットワークI/F78を介して、複数個の情報を制御サーバ40に同時的に送信する。上記の複数個の情報は、スキャン要求(図3の112A、図4の112B参照)と、メモリ84内のアクセストークン(図3のT1A、図4のT1B参照)と、メモリ84内の1個以上のULアカウント情報と、ユーザによって選択されたサーバ名と、を含む。1個のULアカウント情報AC1bのみがメモリ84に存在する場合には、S22において、CPU82は、ULアカウント情報AC1bに関連付けて、ID「001」を制御サーバ40に送信しない(図3のケースA参照)。一方において、2個以上のULアカウント情報がメモリ84に存在する場合には、S22において、CPU82は、各ULアカウント情報及び各IDが関連付けられている状態で、各ULアカウント情報及び各IDを制御サーバ40に送信する(図4のケースB参照)。
次いで、S24では、CPU82は、ステータス画面SC3を表示部74に表示させる。図6に示されるように、ステータス画面SC3は、「スキャン中」を示すメッセージを含む。ユーザは、ステータス画面SC3を見ることによって、スキャナ10によってスキャンが実行されること、即ち、スキャンデータのアップロードが実行されることを知ることができる。
続いて、図5のS26では、CPU82は、ネットワークI/F78を介して、制御サーバ40から終了通知(図3の128A参照)を受信する。終了通知は、スキャンデータのアップロードが完了したことを示す通知である。次いで、S28では、CPU82は、結果画面SC4を表示部74に表示させる。図6に示されるように、結果画面SC4は、保存サーバ60内へのスキャンデータのアップロードが成功したことを示すメッセージを含む。ユーザは、結果画面SC4を見ることによって、スキャンデータのアップロードが成功したことを知ることができる。
ついて、図5のS30では、CPU82は、S18でメモリ84に記憶されたアクセストークンを消去する。S30を終えると、アップロード関連処理が終了する。
図5に示されるように、本実施例によると、携帯端末70は、メインの端末として動作するための処理(即ち、S40、S42、S14〜S30)と、サブの端末として動作するための処理(即ち、S50、S52)と、を選択的に実行することができる。
(対応関係)
仲介アカウント情報、ULアカウント情報が、それぞれ、「第1種のアカウント情報」、「第2種のアカウント情報」の一例である。特に、2個の仲介アカウント情報AC1a,AC2a、2個のULアカウント情報AC1b,AC2bが、それぞれ、「M個の第1種のアカウント情報」、「M個の第2種のアカウント情報」の一例である。
制御サーバ40については、スキャナ10からログイン要求108A,108Bを受信する処理、ログイン成功通知110A,110Bをスキャナ10に送信する処理、携帯端末70からULアカウント情報AC1b,AC2bを受信する処理、携帯端末70からスキャン要求112A,112Bを受信する処理、スキャン実行指示114A,114Bをスキャナ10に送信する処理、スキャナ10からスキャンデータ116A,116Bを受信する処理が、それぞれ、「第1の要求受信部」、「応答送信部」、「情報受信部」、「第2の要求受信部」、「指示送信部」、「スキャンデータ受信部」によって実行される処理の一例である。また、ログイン要求118A,118B,120を保存サーバ60に送信する処理、及び、スキャンデータ116A,116Bを保存サーバ60に送信する処理が、「スキャンデータ送信部」によって実行される処理の一例である。
また、スキャナ10については、携帯端末70から仲介アカウント情報AC1a,AC2aを取得する処理、ログイン要求108A,108Bを制御サーバ40に送信してログイン成功通知110A,110Bを受信する処理、アクセストークンT1A,T1Bを携帯端末70に供給する処理、制御サーバ40からスキャン実行指示114A,114Bを受信する処理、スキャンデータ116A,116Bを制御サーバ40に送信する処理が、それぞれ、「取得部」、「ログイン部」、「供給部」、「指示受信部」、「スキャン制御部」によって実行される処理の一例である。
また、携帯端末70については、図5のS14の処理、S16の処理、S40の処理が、それぞれ、「供給処理」、「特定情報取得処理」、「アカウント情報取得処理」の一例である。また、S22の処理が、「情報送信処理」及び「要求送信処理」の一例である。また、S14、S16、S22、及び、S40の処理が、「第1種の処理」の一例であり、S52の処理が、「第2種の処理」の一例である。
(第1実施例の変形例)
上述したように、第1実施例では、制御サーバ40は、携帯端末70から、スキャナ10を介さずに、スキャン要求112A、アクセストークンT1A、及び、ULアカウント情報AC1bを同時的に受信する(図3参照)。これに代えて、変形例では、制御サーバ40は、携帯端末70から、スキャナ10を介さずに、スキャン要求112Aを受信し、携帯端末70から、スキャナ10を介して、アクセストークンT1A及びULアカウント情報AC1bを受信してもよい。特に、制御サーバ40は、アクセストークンT1A及びULアカウント情報AC1bを、スキャン要求112Aよりも前に受信してもよいし後に受信してもよい。例えば、スキャナ10は、NFC通信を利用して、携帯端末70からULアカウント情報AC1bを取得して、アクセストークンT1A及びULアカウント情報AC1bを制御サーバ40に送信してもよい。これにより、制御サーバ40は、携帯端末70から、スキャナ10を介して、アクセストークンT1A及びULアカウント情報AC1bを受信することができる。
ただし、上記の変形例では、スキャナ10は、携帯端末70からULアカウント情報AC1bを取得して、アクセストークンT1A及びULアカウント情報AC1bを制御サーバ40に送信する処理を実行しなければならない。このために、スキャナ10の処理負荷が高くなる。これに対し、本実施例では、スキャナ10が上記の処理を実行せずに済むので、スキャナ10の処理負荷を低減させることができる。また、上記の変形例では、制御サーバ40は、スキャナ10からアクセストークンT1A及びULアカウント情報AC1bを受信するための1回の通信と、携帯端末70からスキャン要求112Aを受信するための1回の通信と、を含む2回の通信を実行しなければならない。これに対し、本実施例では、制御サーバ40は、1回の通信を利用して、上記の各情報を受信することができる。この結果、通信システム2内での通信回数を低減させることができる。
(第2実施例;図7)
続いて、図7を参照して、第2実施例について説明する。第1実施例では、図3に示されるように、携帯端末70から制御サーバ40にスキャン要求112Aが送信されるが、本実施例では、図7に示されるように、携帯端末70から保存サーバ60に処理要求211Cが送信され、この結果として、保存サーバ60から制御サーバ40にスキャン要求212が送信される。以下では、第1実施例とは異なる点を中心に、本実施例の各デバイス10,40,60,70によって実行される各処理について説明する。
携帯端末70からスキャナ10に仲介アカウント情報AC1aが送信されてから、スキャナ10と制御サーバ40との間にXMPP接続が確立されるまでの各処理は、図3のケースAと同様である。即ち、図7のログイン要求208、ログイン成功通知210、アクセストークンT2は、それぞれ、図3のログイン要求108A、ログイン成功通知110A、アクセストークンT1Aと同様である。ただし、本実施例では、スキャナ10は、仲介アカウント情報AC1aに対する応答を携帯端末70に送信するが、アクセストークンT2を携帯端末70に送信しない。
携帯端末70のCPU82は、スキャナ10から応答を受信すると、ULアカウント情報AC1bを含むログイン要求211Aを、ユーザによって選択されたサーバ名を有する保存サーバ60に送信して、保存サーバ60からログイン成功通知211Bを受信する。
次いで、携帯端末70のCPU82は、ULアカウント情報AC1bに従ったログイン状態を利用して、仲介アカウント情報AC1aを含む処理要求211Cを保存サーバ60に送信する。処理要求211Cは、制御サーバ40へのスキャン要求212の送信を保存サーバ60に実行させるための要求である。なお、処理要求211Cは、保存サーバ60へのログインとは無関係である仲介アカウント情報AC1aを含む。これは、保存サーバ60に、仲介アカウント情報AC1aを含むスキャン要求212の送信を実行させる必要があるからである。
保存サーバ60は、携帯端末70から処理要求211Cを受信すると、処理要求211Cに含まれる仲介アカウント情報AC1aを抽出する。上述したように、処理要求211Cは、ULアカウント情報AC1bに従ったログイン状態を利用して通信される。従って、保存サーバ60は、仲介アカウント情報AC1a及びULアカウント情報AC1bを関連付けることができる。次いで、保存サーバ60は、仲介アカウント情報AC1aを含むスキャン要求212を制御サーバ40に送信する。
制御サーバ40のCPU52は、保存サーバ60からスキャン要求212を受信すると、スキャン要求212から仲介アカウント情報AC1aを抽出する。これにより、CPU52は、スキャン要求212が仲介アカウント情報AC1aに関係する要求であることを特定することができる。制御サーバ40のメモリ54では、XMPP接続の接続ID、及び、仲介アカウント情報AC1aが関連付けられている。CPU52は、スキャン要求212が仲介アカウント情報AC1aに関係する要求であることを特定すると、次いで、メモリ54から、仲介アカウント情報AC1aに関連付けられている接続IDを取得する。そして、CPU52は、取得済みの接続IDによって識別されるXMPP接続、即ち、スキャナ10と制御サーバ40との間に確立されているXMPP接続を利用して、スキャン実行指示214をスキャナ10に送信する。
次いで、制御サーバ40のCPU52は、スキャナ10からアクセストークンT2及びスキャンデータ216を同時的に受信する。これにより、CPU52は、アクセストークンT2に関連付けられている仲介アカウント情報AC1aに従ったログイン状態を有するスキャナ10から、スキャンデータ216を受信したことを知ることができる。即ち、CPU52は、アクセストークンT2を介して、仲介アカウント情報AC1a及びスキャンデータ216を関連付けることができる。
続いて、制御サーバ40のCPU52は、仲介アカウント情報AC1aを含むスキャン要求212に対する応答として(即ち戻り値として)、仲介アカウント情報AC1aに関連付けられているスキャンデータ216を保存サーバ60に送信する。
保存サーバ60は、仲介アカウント情報AC1aを含むスキャン要求212に対する応答として、制御サーバ40からスキャンデータ216を受信する。これにより、保存サーバ60は、仲介アカウント情報AC1a及びスキャンデータ216を関連付けることができる。上述したように、保存サーバ60は、仲介アカウント情報AC1a及びULアカウント情報AC1bを関連付けることができる。従って、保存サーバ60は、ULアカウント情報AC1b及びスキャンデータ216を関連付けることができる。このために、保存サーバ60は、ULアカウント情報AC1bに対応する場所にスキャンデータ216を保存することができる。
次いで、保存サーバ60は、処理要求211Cに対する応答として、終了通知225を携帯端末70に送信する。また、保存サーバ60は、終了通知226を制御サーバ40に送信する。これにより、スキャナ10と制御サーバ40との間のXMPP接続が切断される。また、アクセストークンT2等の各情報が、スキャナ10のメモリ34及び制御サーバ40のメモリ54から消去される。
(第2実施例の効果)
本実施例によると、携帯端末70は、仲介アカウント情報AC1aをスキャナ10に供給する。この結果、スキャナ10は、仲介アカウント情報AC1aを含むログイン要求208を制御サーバ40に送信することによって、制御サーバ40にログインする。また、携帯端末70は、ULアカウント情報AC1bを含むログイン要求211Aを保存サーバ60に送信することによって、保存サーバ60にログインして、仲介アカウント情報AC1aを含む処理要求211Cを保存サーバ60に送信する。この結果、保存サーバ60は、仲介アカウント情報AC1a及びULアカウント情報AC1bを関連付けることができる。そして、保存サーバ60は、仲介アカウント情報AC1aを含むスキャン要求212を制御サーバ40に送信する。
制御サーバ40は、保存サーバ60から仲介アカウント情報AC1aを含むスキャン要求212を受信すれば、スキャン要求212が仲介アカウント情報AC1aに関係する要求であることを特定することができる。従って、制御サーバ40は、仲介アカウント情報AC1aに従ったログイン状態を有するスキャナ10にスキャン実行指示214を送信して、スキャナ10からスキャンデータ216を受信することができる。そして、制御サーバ40は、仲介アカウント情報AC1aを含むスキャン要求212に対する応答として、スキャンデータ216を保存サーバ60に送信する。これにより、制御サーバ40は、仲介アカウント情報AC1aに従ったログイン状態を有するスキャナ10から受信されたスキャンデータ216が、ULアカウント情報AC1bに対応する場所に保存されるように、スキャンデータ216を保存サーバ60に送信することができる。この結果、制御サーバ40は、携帯端末70のULアカウント情報AC1bに対応する場所、即ち、携帯端末70のユーザのための場所に、スキャンデータ216を保存させることができる。
携帯端末90が利用される場合も、携帯端末70が利用される場合と同様に、スキャンデータが保存サーバ60にアップロードされる。即ち、携帯端末90が利用される場合には、制御サーバ40は、携帯端末90のULアカウント情報AC2bに対応する場所、即ち、携帯端末90のユーザのための場所に、スキャンデータ216を保存させることができる。このように、本実施例でも、制御サーバ40は、各携帯端末70,90のための各ULアカウント情報AC1b,AC2bに対応する各場所、即ち、各携帯端末70,90の各ユーザのための各場所に、スキャンデータを保存させることができる。
(対応関係)
制御サーバ40については、スキャナ10からログイン要求208を受信する処理、保存サーバ60からスキャン要求212を受信する処理、スキャン実行指示214をスキャナ10に送信する処理、スキャナ10からスキャンデータ216を受信する処理、スキャンデータ216を保存サーバ60に送信する処理が、それぞれ、「第1の要求受信部」、「第2の要求受信部」、「指示送信部」、「スキャンデータ受信部」、「スキャンデータ送信部」によって実行される処理の一例である。
携帯端末70については、仲介アカウント情報AC1aをスキャナ10に供給する処理が、「供給処理」の一例である。ログイン要求211Aを保存サーバ60に送信する処理、及び、処理要求211Cを保存サーバ60に送信する処理が、「要求送信処理」の一例である。また、仲介アカウント情報AC1aが、「第1種のアカウント情報に関係する関係情報」の一例である。即ち、本実施例では、「第1種のアカウント情報」と「関係情報」とが同じ情報である。
(第3実施例;図8)
図8を参照して、第3実施例について説明する。第2実施例では、図7に示されるように、携帯端末70から保存サーバ60に仲介アカウント情報AC1aを含む処理要求211Cが送信されるが、本実施例では、図8に示されるように、携帯端末70から保存サーバ60にスキャントークンT3Bを含む処理要求311Cが送信される。以下では、第2実施例とは異なる点を中心に、本実施例の各デバイス10,40,60,70によって実行される各処理について説明する。
携帯端末70からスキャナ10に仲介アカウント情報AC1aが送信されてから、スキャナ10から制御サーバ40にログイン要求308が送信されるまでの各処理は、第2実施例と同様である。
制御サーバ40のCPU52は、スキャナ10からログイン要求308を受信する場合に、アクセストークンT3Aと、アクセストークンT3Aとは異なるスキャントークン(即ち認証情報)T3Bと、を生成する。アクセストークンT3Aは、第2実施例のアクセストークンT2と同様に、スキャナ10と制御サーバ40との間にXMPP接続を確立するために利用される。スキャントークンT3Bは、後述するように、携帯端末70から保存サーバ60にスキャントークンT3Bを含む処理要求311Cを送信するために利用される。
次いで、制御サーバ40のCPU52は、仲介アカウント情報AC1aに関連付けて、アクセストークンT3Aと、スキャントークンT3Bと、をメモリ54に記憶させる。そそして、CPU52は、アクセストークンT3Aと、スキャントークンT3Bと、を含むログイン成功通知310を、スキャナ10に送信する。
スキャナ10のCPU32は、制御サーバ40からログイン成功通知310を受信すると、ログイン成功通知310に含まれるアクセストークンT3Aをメモリ34に記憶させ、次いで、アクセストークンT3Aを利用して、スキャナ10と制御サーバ40との間にXMPP接続を確立させる。
スキャナ10のCPU32は、さらに、スキャナ10と携帯端末70との間のNFC接続を利用して、ログイン成功通知310に含まれるスキャントークンT3Bを携帯端末70に送信する。
携帯端末70のCPU82は、スキャナ10からスキャントークンT3Bを受信すると、スキャントークンT3Bをメモリ84に記憶させる。次いで、CPU82は、ULアカウント情報AC1bを含むログイン要求311Aを保存サーバ60に送信して、保存サーバ60からログイン成功通知311Bを受信する。次いで、携帯端末70のCPU82は、ULアカウント情報AC1bに従ったログイン状態を利用して、スキャントークンT3Bを含む処理要求311Cを保存サーバ60に送信する。
保存サーバ60は、携帯端末70から処理要求311Cを受信すると、処理要求311Cに含まれるスキャントークンT3Bを抽出する。上述したように、処理要求311Cは、ULアカウント情報AC1bに従ったログイン状態を利用して通信される。従って、保存サーバ60は、スキャントークンT3B及びULアカウント情報AC1bを関連付けることができる。次いで、保存サーバ60は、スキャントークンT3Bを含むスキャン要求312を制御サーバ40に送信する。
制御サーバ40のCPU52は、保存サーバ60からスキャン要求312を受信すると、スキャン要求312からスキャントークンT3Bを抽出する。上述したように、制御サーバ40のメモリ54では、スキャントークンT3B及び仲介アカウント情報AC1aが関連付けられている。従って、CPU52は、スキャントークンT3Bに基づいて、スキャン要求312が仲介アカウント情報AC1aに関係する要求であることを特定することができる。この結果、CPU52は、XMPP接続を利用して、スキャン実行指示314をスキャナ10に送信することができる。
次いで、制御サーバ40のCPU52は、スキャナ10からアクセストークンT3A及びスキャンデータ316を同時的に受信する。これにより、CPU52は、アクセストークンT3Aを介して、仲介アカウント情報AC1a及びスキャンデータ316を関連付けることができる。上述したように、CPU52は、スキャン要求312が仲介アカウント情報AC1aに関係する要求であることを特定することができる。従って、CPU52は、仲介アカウント情報AC1aに関係するスキャン要求312に対する応答として(即ち戻り値として)、仲介アカウント情報AC1aに関連付けられているスキャンデータ316を保存サーバ60に送信することができる。
保存サーバ60は、スキャントークンT3Bを含むスキャン要求312に対する応答として、制御サーバ40からスキャンデータ316を受信する。これにより、保存サーバ60は、スキャントークンT3B及びスキャンデータ316を関連付けることができる。上述したように、保存サーバ60は、スキャントークンT3B及びULアカウント情報AC1bを関連付けることができる。従って、保存サーバ60は、ULアカウント情報AC1b及びスキャンデータ316を関連付けることができる。このために、保存サーバ60は、ULアカウント情報AC1bに対応する場所にスキャンデータ316を保存することができる。
次いで、保存サーバ60は、終了通知325を携帯端末70に送信し、終了通知326を制御サーバ40に送信する。これにより、スキャナ10と制御サーバ40との間のXMPP接続が切断される。また、アクセストークンT3A等の各情報が、スキャナ10のメモリ34、制御サーバ40のメモリ54、及び、携帯端末70のメモリ84から消去される。
(第3実施例の効果)
本実施例によると、制御サーバ40において、仲介アカウント情報AC1a及びスキャントークンT3Bが関連付けられ、保存サーバ60において、ULアカウント情報AC1b及びスキャントークンT3Bが関連付けられる。従って、制御サーバ40又は保存サーバ60において、仲介アカウント情報AC1a及びULアカウント情報AC1bが直接的に関連付けられることはないが、制御サーバ40及び保存サーバ60を含むシステム内において、スキャントークンT3Bを介して、仲介アカウント情報AC1a及びULアカウント情報AC1bが関連付けられる。より具体的に言うと、仲介アカウント情報AC1a及びULアカウント情報AC1bの双方に関係するスキャン要求312(即ち、スキャントークンT3Bを含むスキャン要求312)が、保存サーバ60から制御サーバ40に送信される。このために、制御サーバ40は、携帯端末70のULアカウント情報AC1bに対応する場所、即ち、携帯端末70のユーザのための場所に、スキャンデータ216を保存させることができる。換言すると、制御サーバ40は、各携帯端末70,90のための各ULアカウント情報AC1b,AC2bに対応する各場所、即ち、各携帯端末70,90の各ユーザのための各場所に、スキャンデータを保存させることができる。
(対応関係)
制御サーバ40において、スキャントークンT3Bを生成する処理、スキャントークンT3Bを含むログイン成功通知310をスキャナ10に送信する処理が、それぞれ、「生成部」、「応答送信部」によって実行される処理の一例である。また、スキャントークンT3Bが、「第1種のアカウント情報に関係する関係情報」の一例である。即ち、本実施例では、「第1種のアカウント情報」と「関係情報」とが異なる情報である。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例が含まれる。
(変形例1)例えば、図3のケースAでは、制御サーバ40は、スキャナ10からスキャンデータ116Aを受信した後に、ULアカウント情報AC1bを利用して保存サーバ60にログインする。これに代えて、制御サーバ40は、スキャン実行指示114Aをスキャナ10に送信する前に、ULアカウント情報AC1bを利用して保存サーバ60へのログインを試行してもよい。そして、制御サーバ40は、保存サーバ60へのログインが成功する場合に、スキャン実行指示114Aをスキャナ10に送信してもよい。即ち、制御サーバ40は、上記の実施例のように、スキャン実行指示114Aをスキャナ10に送信した後に、保存サーバ60にログインしてもよいし、本変形例のように、スキャン実行指示114Aをスキャナ10に送信する前に、保存サーバ60にログインしてもよい。なお、本変形例では、制御サーバ40は、保存サーバ60へのログインが成功しない場合に、スキャン実行指示114Aをスキャナ10に送信しなくてもよい。この場合、スキャナ10は、保存サーバ60にログインすることができないことに起因して、アップロードすることができない場合に、スキャンデータを生成せずに済む。
(変形例2)図4のケースBにおいて、携帯端末70からスキャナ10に各IDが送信されなくてもよく、スキャナ10から制御サーバ40に送信されるログイン要求108Bに各IDが含まれていなくてもよい。また、携帯端末70から制御サーバ40に各ULアカウント情報AC1b,AC2bが送信される際に、各IDが送信されなくてもよい。この構成では、制御サーバ40は、1個の仲介アカウント情報と1個のULアカウント情報とを関連付けることはできないが、アクセストークンT1Bを介して、複数個の仲介アカウント情報AC1a,AC2aの集合と、複数個のULアカウント情報AC1b,AC2bの集合と、を関連付けることができる。この結果、制御サーバ40は、各ULアカウント情報AC1b,AC2bに対応する各場所に、同じスキャンデータを保存させることができる。
(変形例3)図4のケースBにおいて、制御サーバ40は、2個のログイン要求118B,120を保存サーバ60に送信することによって、保存サーバ60にログインする。これに代えて、制御サーバ40は、2個のULアカウント情報AC1b,AC2bを含む1個のログイン要求を保存サーバ60に送信することによって、保存サーバ60にログインしてもよい。即ち、制御サーバは、M個の第2種のアカウント情報を含む少なくとも1個の第2のログイン要求を保存サーバに送信することによって、保存サーバにログインすればよい。
(変形例4)上記の変形例3では、保存サーバ60は、2個のULアカウント情報AC1b,AC2bを含む1個のログイン要求を受信するので、2個のULアカウント情報AC1b,AC2bを関連付けることができる。従って、保存サーバ60は、2個のULアカウント情報AC1b,AC2bのうちの一方のULアカウント情報に従ったログイン情報を利用して、制御サーバ40からスキャンデータを受信すれば、2個のULアカウント情報AC1b,AC2bに対応する2個の場所のそれぞれに、当該スキャンデータを保存することができる。即ち、制御サーバ40は、図4のケースBのように、保存サーバ60へのスキャンデータの送信を2回実行せずに済み、保存サーバ60へのスキャンデータの送信を1回実行すれば足りる。即ち、制御サーバは、保存サーバへのスキャンデータの送信を少なくとも1回実行すればよい。
(変形例5)上記の各実施例では、例えば、図3のケースAに示されるように、スキャナ10は、NFC通信を利用して、携帯端末70から仲介アカウント情報AC1aを受信する。これに代えて、スキャナ10は、赤外線通信、Transfer Jet等のNFCとは異なる規格に従った近距離無線通信を利用して、携帯端末70から仲介アカウント情報AC1aを受信してもよい。また、スキャナ10は、例えば、スキャナ10が接続されているLANを介した通信を利用して、携帯端末70から仲介アカウント情報AC1aを受信してもよい。
(変形例6)「スキャナ」は、スキャン実行部を備えるあらゆるデバイス(例えば、スキャン機能及び印刷機能を含む多機能を実行可能な多機能機、FAX装置等)を含む。例えば、送信側のFAX装置(即ち「スキャナ」の一例)は、制御サーバ40を介してFAXデータ(即ち「スキャンデータ」の一例)を保存サーバ60にアップロードさせることによって、FAX送信を実行してもよい。これにより、受信側のFAX装置は、制御サーバ40からFAXデータを受信することによって、FAX受信を実行することができる。
(変形例7)上記の各実施例では、スキャナ10及び制御サーバ40のCPU32,52がメモリ34,54内のプログラム(即ちソフトウェア)を実行することによって、図2〜図4、図7、及び、図8の各処理が実現される。これに代えて、各処理のうちの少なくとも1つは、論理回路等のハードウェアによって実現されてもよい。