(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】プログラム、情報処理装置、情報処理装置の制御方法
(51)【国際特許分類】
G06F 3/12 20060101AFI20240729BHJP
H04N 1/00 20060101ALI20240729BHJP
G06F 40/263 20200101ALI20240729BHJP
H04L 51/04 20220101ALI20240729BHJP
H04L 67/00 20220101ALI20240729BHJP
【FI】
G06F3/12 353
G06F3/12 303
G06F3/12 372
H04N1/00 127Z
G06F40/263
H04L51/04
H04L67/00
(21)【出願番号】P 2020082153
(22)【出願日】2020-05-07
【審査請求日】2023-04-12
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002767
【氏名又は名称】弁理士法人ひのき国際特許事務所
(72)【発明者】
【氏名】相馬 隆博
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2020-052580(JP,A)
【文献】特開2019-198987(JP,A)
【文献】特開2019-144698(JP,A)
【文献】特開2016-066157(JP,A)
【文献】特開2013-140584(JP,A)
【文献】国際公開第2016/129008(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/12
H04N 1/00
G06F 40/263
H04L 51/04
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
メッセージアプリサービスと連携し
、印刷サービスを介してデータの印刷が可能なプリントボットサービスとしてコンピュータを機能させるためのプログラムであって、
前記メッセージアプリサービス
によって提供されるチャットルームに投稿された、印刷の実行を指示する第1のメッセージを受け
付ける受
付工程と、
受け付けられた前記
第1のメッセージの言語を判別する判別
工程と、
前記印刷サービスで実行される印刷の印刷設定を問い合わせるメッセージであって、前記第1のメッセージが前記チャットルームに投稿されたことによって投稿されるメッセージであって、前記第1のメッセージとは異なる第2のメッセージを前記チャットルームに投稿させる投稿工程と、
を有し、
前記投稿工程は、前記第1のメッセージが投稿される前に前記チャットルームに投稿されたメッセージの言語を判別された前記言語に変更させず、判別された前記言語の前記第2のメッセージを投稿させる
ことを特徴とするコンピュータを機能させるためのプログラム。
【請求項2】
前記判別
工程は
、言語に特有の文字を用いて前記
第1のメッセージの言語を判別することを特徴とする請求項1に記載のプログラム。
【請求項3】
前記
投稿工程は、前記判別
工程で言語を
判別できなかった場合、複数の言語の候補からいずれかの言語を選択することをユーザに促すメッセージを
投稿させ、
投稿させた前記メッセージに基づきユーザにより選択された言語
の前記
第2のメッセージを前記チャットルームに投稿させることを特徴とする請求項1又は2に記載のプログラム。
【請求項4】
前記
投稿工程は、前記判別
工程で言語を
判別できなかった場合、前記
第1のメッセージを
投稿するクライアントコンピュータで動作するオペレーティングシステムにお
いて設定
されている言語の第2のメッセージを投稿させることを特徴とする請求項1又は2に記載のプログラム。
【請求項5】
前記判別
工程は、前記判別
工程で言語を
判別できなかった場合、前記
第1のメッセージを
投稿するクライアントコンピュータで動作する前記メッセージアプリサービスのクライアントアプリケーションにお
いて設定
されている言語の第2のメッセージを投稿させることを特徴とする請求項1又は2に記載のプログラム。
【請求項6】
前記第2のメッセージは、印刷設定の表示と共に前記チャットルームに表示されることを特徴とする請求項1~5のいずれか1項に記載のプログラム。
【請求項7】
設定工程を有し、
前記設定
工程は、
前記第1のメッセージを
投稿したユーザに対
して投稿する
メッセージであって、前記
投稿工程により
投稿させる
前記第2のメッセージで使用する言語が
当該ユーザに対して設定されていない場合に、
当該ユーザに対して、当該ユーザにより選択された言語の設定を行うことを特徴とする請求項
3に記載のプログラム。
【請求項8】
請求項1~
7のいずれか1項に記載のプログラムがインストールされたことを特徴とする情報処理装置。
【請求項9】
メッセージアプリサービス
によって提供されるチャットルームに投稿された、印刷の実行を指示する第1のメッセージを受け
付ける受
付工程と、
受け付けられた前記第1のメッセージの言語を判別する判別工程と、
印刷サービスで実行される印刷の印刷設定を問い合わせるメッセージであって、前記第1のメッセージが前記チャットルームに投稿されたことによって投稿されるメッセージであって、前記第1のメッセージとは異なる第2のメッセージを
前記チャットルームに投稿させる
投稿工程と、
を有し、
前記
投稿工程
は、前記第1のメッセージが投稿される前に前記チャットルームに投稿されたメッセージの言語を判別
された前記言語に
変更させず、
判別された前記言語の前記第2のメッセージを投稿させることを特徴とする情報処理方法。
【請求項10】
メッセージアプリサービスと連携し、印刷サービスを介してデータの印刷が可能なプリントボットサービスとしてコンピュータを機能させるためのプログラムであって、
前記メッセージアプリサービスによって提供されるチャットルームに投稿された、印刷の実行を指示する第1のメッセージを受け付ける受付工程と、
受け付けられた前記第1のメッセージの言語を判別する判別工程と、
前記印刷サービスで実行される印刷の実行を問い合わせるメッセージであって、前記第1のメッセージが前記チャットルームに投稿されたことによって投稿されるメッセージであって、前記第1のメッセージとは異なる第2のメッセージを前記チャットルームに投稿させる投稿工程と、
を有し、
前記投稿工程は、前記第1のメッセージが投稿される前に前記チャットルームに投稿されたメッセージの言語を判別された前記言語に変更させず、判別された前記言語の前記第2のメッセージを投稿させる
ことを特徴とするコンピュータを機能させるためのプログラム。
【請求項11】
前記第2のメッセージは、印刷実行ボタンと共に前記チャットルームに表示されることを特徴とする請求項10項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージアプリサービスを用いたクラウドプリント可能にするプログラム、情報処理装置、情報処理装置の制御方法に関する。
【背景技術】
【0002】
クラウドサービスの普及により、ユーザはクライアントコンピュータに保存されたデータでなくても、クラウドサービス上にデータを保存することで、どのクライアントコンピュータからでもデータを参照、編集することができるようになっている。
【0003】
クラウドサービスを用いた様々なサービスやアプリケーションがあり、チャットアプリケーションではユーザ同士が会話をするだけでなく、文書ファイルや画像データの共有を行うこともできる。なお、チャットアプリケーションが動作するクラウドサービスを「メッセージアプリサービス」と呼ぶ。それらのアプリケーションの中には、他のクラウドサービスやアプリケーションと連携することができ、ユーザによる入力に対して自動で応答をするサービス(以後「ボットサービス」)も存在する。ボットサービスは自動応答のサービスを提供する情報処理装置上で動作するアプリケーションである。ボットサービスは、例えば、ユーザがメッセージアプリサービスに対して入力した言葉が所定の単語を含むときに、当該入力に対して自動で応答を行う。
【0004】
メッセージアプリサービスは通常、ユーザ間の会話に用いられるものであり、印刷機能を備えていない。
特許文献1に記載の装置では、ユーザがメッセージアプリサービスに、会話の相手として印刷設定機能を有するボットサービスを登録しておく。メッセージアプリサービスに画像データが登録されると、ボットサービスが登録された画像データを印刷するかユーザに問い合わせる。そして、ユーザがメッセージアプリサービスを用いて印刷指示をすると、ボットサービスに登録されたプリンタを使って、メッセージアプリサービスに登録された画像データの印刷を実行する。このようにすることで、印刷機能を持たないメッセージアプリサービスであっても、ボットサービス(以下「プリントボットサービス」)を用いて当該メッセージアプリサービスに登録されたデータを印刷することができる。
【0005】
ところで、メッセージアプリサービスにおいては、不特定多数のユーザ同士で会話が行われる場合がある。このような環境においては、母国語が異なるユーザ同士で会話する場面が生じることが予測される。
特許文献2には、印刷ジョブに応じて、プリンタの操作部で用いる言語設定をユーザの理解可能な国別言語に変換するプリンタ及び、言語設定方法が提案されている。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2019-144698号公報
【文献】特開2006-321190号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかし、従来、メッセージアプリサービスと連携しているプリントボットサービスは、母国語が異なるユーザ同士がメッセージアプリサービスでやり取りしている場合でも、初期設定されている言語で応答していた。例えば、メッセージアプリサービスでは日本語でやり取りしていても、印刷指示や印刷設定は母国語で行いたいといった課題があった。
【0008】
本発明は、上記の課題を解決するためになされたものである。本発明の目的は、メッセージアプリサービスを用いたクラウドプリント環境において、ユーザ毎に適切な国別言語設定ができ、ユーザ毎に適切な国別言語でボットサービスと対話して印刷を行うことが可能になる仕組みを提供することである。
【課題を解決するための手段】
【0009】
本発明のプログラムは、メッセージアプリサービスと連携し、印刷サービスを介してデータの印刷が可能なプリントボットサービスとしてコンピュータを機能させるためのプログラムであって、前記メッセージアプリサービスによって提供されるチャットルームに投稿された、印刷の実行を指示する第1のメッセージを受け付ける受付工程と、受け付けられた前記第1のメッセージの言語を判別する判別工程と、前記印刷サービスで実行される印刷の印刷設定を問い合わせるメッセージであって、前記第1のメッセージが前記チャットルームに投稿されたことによって投稿されるメッセージであって、前記第1のメッセージとは異なる第2のメッセージを前記チャットルームに投稿させる投稿工程と、を有し、前記投稿工程は、前記第1のメッセージが投稿される前に前記チャットルームに投稿されたメッセージの言語を判別された前記言語に変更させず、判別された前記言語の前記第2のメッセージを投稿させることを特徴とする。
【発明の効果】
【0010】
本発明によれば、メッセージアプリサービスを用いたクラウドプリント環境において、ユーザ毎に適切な国別言語設定を行うことができ、ユーザ毎に適切な国別言語でボットサービスと対話して印刷を行うことが可能になる。これにより、メッセージアプリサービスを用いたクラウドプリント環境における使い勝手を向上することができる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態を示すシステムの概略構成の一例を示す図。
【
図2】クライアントコンピュータのハードウェア構成図。
【
図4】クラウドプリントサービスのソフトウェアモジュール構成図。
【
図5】プリントボットサービスのソフトウェアモジュールの構成図。
【
図6】メッセージアプリサービスのソフトウェアモジュール構成図。
【
図7】クラウドプリントサービスにプリンタを登録するための処理の一例を示すシーケンス図。
【
図8A】印刷システムを用いた印刷を行うための処理の一例を示すシーケンス図。
【
図8B】印刷システムを用いた印刷を行うための処理の一例を示すシーケンス図。
【
図9A】メッセージアプリケーションがクライアントコンピュータに表示する画面の一例を示す図。
【
図9B】メッセージアプリケーションがクライアントコンピュータに表示する画面の一例を示す図。
【
図10】メッセージアプリケーションがクライアントコンピュータに表示する画面の一例を示す図。
【
図11】プリントボットサービスのデータベースが管理するアカウント情報テーブルの一例を示す図。
【
図12】プリントボットサービスのデータベースが管理する印刷キーワードテーブルの一例を示す図。
【
図13】プリントボットサービスのデータベースが管理するUI表示文字列テーブルの一例を示す図。
【
図14】プリントボットサービスのデータベースが管理する言語特有文字テーブルの一例を示す図。
【
図15A】プリントボットサービスが実行する処理の一例を示すフローチャート。
【
図15B】プリントボットサービスが実行する処理の一例を示すフローチャート。
【発明を実施するための形態】
【0012】
図1は、本発明の一実施形態を示すシステムの概略構成の一例を示す図である。
このシステムでは、クライアントコンピュータ100、プリンタ200、クラウドプリントサービス400、プリントボットサービス500、及び、メッセージアプリサービス600が、ネットワーク300を介して通信可能に接続されている。
【0013】
クライアントコンピュータ100は、パーソナルコンピュータ(PC)、スマートフォン、タブレット端末など、ユーザが実際に操作をするクライアントコンピュータである。
【0014】
プリンタ200は、クライアントコンピュータ100やクラウドプリントサービス400からページ記述言語(以下「PDL」と表記)形式の印刷データを受信し、印刷する。本実施形態において、プリンタ200は、印刷機能のみを備えるシングルファンクションプリンタ(SFP)でも、印刷機能、スキャン機能及び複写機能を備えるマルチファンクションプリンタ(MFP)であってもよい。
【0015】
クラウドプリントサービス400は、1又は複数の情報処理装置で構成され、印刷に用いられる文書データや画像データの管理を行う。また、クラウドプリントサービス400は、印刷時の印刷設定を行い、PDLデータを生成するサーバシステムであり、ネットワークを介して印刷サービスを提供する。
【0016】
メッセージアプリサービス600は、クライアントコンピュータ100を操作するユーザが不図示の他のクライアントコンピュータ宛てのメッセージを送信したり、受信したりする機能を提供する1又は複数の情報処理装置で構成されるサーバシステムである。本実施形態において、ユーザはメッセージアプリサービス600を用いて、文書データや画像データの送受信を行う。そして、メッセージアプリサービス600が、プリントボットサービス500に対して、印刷する文書データや画像データを送信する。
【0017】
プリントボットサービス500は、1又は複数台の情報処理装置で構成されるサーバシステムである。プリントボットサービス500は、メッセージアプリサービス600から文書データや画像データを含む印刷データを受け取り、クラウドプリントサービス400に印刷データを提供するサーバシステムである。メッセージアプリサービス600とプリントボットサービス500が連携することで、メッセージアプリサービスが印刷機能を有していなくても、メッセージアプリサービス600に対して登録された文書データや画像データの印刷を行うことができる。
【0018】
ネットワーク300は、インターネットであっても、イントラネットであっても、これらが組み合わさったものでもよい。
本実施形態では、クラウドプリントサービス400、プリントボットサービス500、メッセージアプリサービス600はそれぞれ、1又は複数のサーバ装置からなるクラウドサービス上に展開されるサーバシステムとして説明する。しかし、クラウドプリントサービス400、プリントボットサービス500、メッセージアプリサービス600のいずれか又は全てが、オンプレミスのシステムであってもよい。
【0019】
図2は、クライアントコンピュータ100のハードウェア構成の一例を示すブロック図である。
CPU101は、ROM1021、RAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。主記憶装置102は、ROM1021、RAM1022を含む。ROM1021は、CPU101が実行するプログラムやデータを記憶する。RAM1022は、CPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105は、アプリケーション(以下「アプリ」と表記)1051、オペレーティングシステム(以下「OS」)1052、その他データ等を記憶する。
【0020】
入力I/F103は、外部機器からの入力を受け付けるインターフェースであり、キーボード108やマウス・タッチパネルなどに代表されるポインティングデバイス109などの入力機器が接続される。キーボード108やマウス・タッチパネルなどの入力機器は、入力I/F103を通じて、ユーザがコンピュータに対して各種指示を出力するためのデバイスである。
出力I/F104は、データを外部に出力するためのインターフェースであり、モニター110などの出力機器に対してデータを出力する。
【0021】
クライアントコンピュータ100は、通信I/F106を通じて接続されるネットワーク300を介して、プリンタ200やメッセージアプリサービス600、クラウドプリントサービス400に接続されている。
システムバス107は、共通データシステムバスであり、クライアントコンピュータ100を構成するハードウェアモジュール間でそれぞれのデータのやりとりに使われる。
【0022】
図3は、プリンタ200の構成の一例を示すブロック図である。
CPU211を含む制御部201は、プリンタ200全体の動作を制御する。
CPU211は、ROM212又はストレージ214に記憶された制御プログラムを読み出して、印刷制御や読取制御などの各種制御を行う。ROM212は、CPU211で実行可能な制御プログラムやデータを格納する。RAM213は、CPU211の主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。ストレージ214は、印刷データ、画像データ、各種プログラム、及び各種設定情報を記憶する。
【0023】
本実施形態ではストレージ214としてHDD(Hard Disk Drive)等の補助記憶装置を想定しているが、HDDの代わりに又は併用してSSD(Solid State Drive)等の不揮発性メモリを用いるようにしてもよい。このように、CPU211、ROM212、RAM213等のハードウェアは、いわゆるコンピュータを構成している。
【0024】
処理部215は、ネットワークを介して受信した印刷データを展開し印刷画像を生成するRIP(Raster Image Processor)の機能を備えている。また、処理部215は画像処理部能力を有し、画像の解像度変換や補正処理を行うこともできる。なお、本実施形態では、処理部215がハードウェア回路(ASIC又はFPGAなど)で実現されることを想定しているが、これに限定されるものではない。例えば、プリンタ200が画像処理用途向けのプロセッサを備え、当該画像処理用途向けのプロセッサが画像処理プログラムを実行することにより画像処理や、印刷データの展開処理を実現してもよい。さらには、画像処理を行うためのプログラムをCPU211が実行し、画像処理や印刷データの展開処理を行うように構成することもできる。また、これらのいずれかの組み合わせにより画像処理を行うようにしてもよい。
【0025】
操作部インターフェース(I/F)216は、操作部202と制御部201を接続するインターフェースである。操作部202には、タッチパネル機能を有する液晶表示部や各種ハードキーなどが備えられ、情報を表示する表示部やユーザの指示を受け付ける受付部として機能する。
【0026】
プリンタインターフェース(I/F)218は、印刷部203と制御部201を接続するインターフェースである。処理部215によって印刷データを解析して生成された印刷画像は、プリンタI/F218を介して制御部201から印刷部203に転送される。印刷部203は、制御部201を介して制御コマンド及び印刷画像を受信し、当該画像に基づいて給紙カセット(不図示)から給送されたシートに画像を印刷する。
【0027】
また、制御部201は、通信部I/F217を介してネットワーク300に接続される。通信部I/F217は、ネットワーク300上の通信装置に画像や情報を送信したり、ネットワーク300上の通信装置から印刷データや情報を受信したりする。
【0028】
本実施形態では、プリンタ200は印刷機能のみを有するSFPとしたが、プリンタ200が読取部を有しており、コピー機能やスキャン機能を有するMFPとしてもよい。この場合、読取部が原稿を読み取ることで生成された画像データはストレージ214に記憶される。
【0029】
図4は、クラウドプリントサービス400の機能モジュールを説明するブロック図である。クラウドプリントサービス400は、
図2に示したクライアントコンピュータと同様の構成を有する1又は複数台の情報処理装置で構成されるサーバシステムである。この図に示す機能モジュールは、クラウドプリントサービス400を構成する1又は複数台の情報処理装置のCPUが補助記憶装置等に記憶されるプログラムを実行することにより実現される。
【0030】
なお、実施形態におけるクラウドプリントサービスとは、外部から受信した印刷指示に基づき、クラウドプリントサービス400に登録済みのプリンタに対し、ネットワーク300経由で印刷データを送信し、印刷を実行させるサービスである。
【0031】
クラウドプリントサービス400は、ファイルストレージ410、処理部420、通信部430、認可サーバ440、データベース450、及びプリントサービス460を有する。
【0032】
ファイルストレージ410では、通信部430を介して、プリンタに送信される印刷ジョブを格納する。
認可サーバ440は、クラウドプリントサービス400にアクセスするユーザに対する認証処理を実行するための認証モジュールを有している。また、認可サーバ440は、データベース450に格納されているアカウント情報にアクセスするために必要な認証情報を管理している。
【0033】
データベース450にはユーザのアカウント情報を保持し、ユーザに紐付いているプリンタキューや印刷設定、言語設定、プリンタの機器情報等が格納されている。
プリントサービス460には、印刷設定の反映やレンダリングに関するプリントサービスモジュールが含まれている。
処理部420は、認可サーバ440やプリントサービス460内になる各モジュールを制御し、それぞれのモジュールの処理を制御している。
【0034】
図5は、プリントボットサービス500の機能モジュールを説明するためのブロック図である。プリントボットサービス500は、
図2に示したクライアントコンピュータと同様の構成を有する1又は複数台の情報処理装置で構成されるサーバシステムである。この図に示す機能モジュールは、プリントボットサービス500を構成する1又は複数台の情報処理装置のCPUが補助記憶装置等に記憶されるプログラムを実行することにより実現される。
【0035】
プリントボットサービス500は、メッセージアプリサービス600から指示を受け、当該指示の結果をメッセージアプリサービス600に返し、クライアントコンピュータ100に表示させる。
【0036】
プリントボットサービス500は、印刷ジョブストレージ510、処理部530、通信部520、データベース550、及びプリントサービス540を有する。
【0037】
印刷ジョブストレージ510は、メッセージアプリサービス600を介して入力された印刷対象となる画像データや文書データを格納するための記憶モジュールである。
通信部520は、ネットワーク300を介して他の装置やサービスと通信を行うための通信モジュールである。
処理部530は、クライアントコンピュータから送られてきたデータの処理やクラウドプリントサービスへジョブを送信するためのモジュールである。
【0038】
プリントサービス540は、印刷設定の変更を保持し、印刷ジョブと印刷設定の関連付けを行うプリントに関するモジュール群である。プリントサービス540で変更された印刷設定は
図4のプリントサービス460で実際にジョブに反映される。
データベース550は、ジョブ管理と認証情報の保持に必要なユーザデータや、自動処理判別、自動設定変更に用いるテーブル情報が格納されている。
プリントボットサービス500は、以上の機能群を含んだ構成になっている。
【0039】
図6は、メッセージアプリサービス600の機能モジュールを説明するためのブロック図である。メッセージアプリサービス600は、
図2に示したクライアントコンピュータと同様の構成を有する1又は複数台の情報処理装置で構成されるサーバシステムである。この図に示す機能モジュールは、メッセージアプリサービス600を構成する1又は複数台の情報処理装置のCPUが補助記憶装置等に記憶されるプログラムを実行することにより実現される。
【0040】
メッセージアプリサービス600は、ファイルストレージ610、メッセージサービス620、処理部630、通信部640を有する。
ユーザがクライアントコンピュータ100のウェブブラウザを介して、メッセージアプリサービス600を操作することで、メッセージやデータがメッセージアプリサービス600に登録される。本実施形態では、メッセージアプリサービス600のクライアントアプリケーションは、ウェブブラウザ上で動作するアプリケーションであるとして説明する。しかし、メッセージアプリサービス600のクライアントアプリケーションが、クライアントコンピュータ100にインストールされたアプリケーションであるとしてもよい。
【0041】
ファイルストレージ610は、ユーザによってクライアントアプリケーションから入力された文書データや画像データを記憶するモジュールである。クラウドプリントサービス400で印刷される文書データ、画像データは、クライアントコンピュータから送信され、ファイルストレージ610にて記憶される。
【0042】
メッセージサービス620は、通信部640、ネットワーク300を介してプリントボットサービス500の通信部520にデータを送信したり、受信したデータをファイルストレージ610へ保存したりする。また、メッセージサービス620は、プリントボットサービス500からのリクエストに基づいて、クライアントコンピュータ100のウェブブラウザ上にメッセージを表示させる。また、ユーザからの印刷指示に基づき、メッセージサービス620は、ファイルストレージ610に保存されたデータをプリントボットサービス500へ送信する。メッセージサービス620には、プリントボットサービス500用のアカウントが登録されている。プリントボットサービス500用のアカウントが登録されているメッセージサービス620は、予め登録されたイベント(例えばチャットルームへのメッセージ投稿や画像データの登録)が発生した場合、該イベントをプリントボットサービス500に通知する。なお、
図1では示していないが、メッセージアプリサービス600が複数のクライアントコンピュータ間でメッセージのやり取りを行う場合に、メッセージの中継などの処理を行うとしてもよい。
【0043】
ここで本実施形態において、クラウドプリントサービス400にプリンタ200を登録する方法について、
図7を用いて説明する。
図7は、クラウドプリントサービス400にプリンタ200を登録する処理の一例を示すシーケンス図である。なお、
図7で示すシーケンスは、
プリンタをクラウドプリントサービスに登録する方法の一例であって、他の方法を用いてクラウドプリントサービス400にプリンタを登録するとしてもよい。また、このシーケンス図に示すプリンタ200の処理は、プリンタ200のCPU211がROM212等に格納されたプログラムを実行することにより実現される。また、クラウドプリントサービス400の処理は、クラウドプリントサービス400を構成する1又は複数台のコンピュータの少なくともいずれかに記憶されたプログラムを該1又は複数台のコンピュータのCPUが実行することで実現される。
【0044】
初めにユーザは、プリンタ200の操作部202からプリンタ200にログインしクラウドプリントサービス400へのアクセスを指示する(S1100)。これはユーザによる操作であり、この操作をプリンタ200が受け付ける。クラウドプリントサービス400へのアクセスは、例えば、プリンタ200の操作部202に表示される所定アイコンをユーザが選択することで行われる。プリンタ200はウェブブラウザ機能を有しており、ユーザが所定のアイコンを選択すると、この操作を受け付け、予め設定されているクラウドプリントサービス400のURLにアクセスする。プリンタ200は、ユーザからクラウドプリントサービス400にログインするための認証に必要な情報を入力するための画面をプリンタ200の操作部202に表示する。ユーザは、操作部202からクラウドプリントサービス400にログインするために必要なユーザ名とパスワードを入力する。
【0045】
プリンタ200は、ユーザからクラウドプリントサービス400への認証要求を受け付け、上記S1101で入力されたユーザ名とパスワードを使ってクラウドプリントサービス400へ認証要求を送信する(S1101)。
クラウドプリントサービス400は、プリンタから送信されたユーザ名とパスワードを受け取り、認可サーバ440にてユーザ認証を行う。認証が成功すると、クラウドプリントサービス400は、プリンタ200に対して接続成功応答を通知する(S1102)。
【0046】
プリンタ200は、クラウドプリントサービス400から接続成功応答を受け取ると、プリンタ200をクラウドプリントサービス400に登録するために登録要求とプリンタの情報をクラウドプリントサービス400に送信する(S1103)。本実施形態では、プリンタの情報としてプリンタのUUIDやSSID、プリンタ名などデバイスを個別で識別可能であるデバイスの情報を送信する。
【0047】
クラウドプリントサービス400は、プリンタ200から登録要求およびデバイスの情報を受け取ると、ログインユーザを識別するための識別情報と受け取ったデバイスの情報を紐づけてデータベース450に登録する(S1104)。さらに、クラウドプリントサービス400は、プリンタ200に対して登録完了通知を送信する(S1105)。
プリンタ200は、クラウドプリントサービス400から登録完了通知を受け取り、操作部202に登録完了通知を表示する(S1106)。この表示により、ユーザはプリンタ200がクラウドプリントサービス400に登録されたことを確認できる。
【0048】
以上の処理により、クラウドプリントサービス400のデータベース450に、ユーザを識別する識別情報と当該ユーザが使用することのできるプリンタのデバイス情報を対応付けたテーブルが生成される。
図7に示した処理をそれぞれのプリンタで行うことで、一つの識別情報(一人のユーザ)に複数のデバイス情報を対応づけることができる。
【0049】
次に、クラウドプリントサービス400に登録されたプリンタを使って、印刷を行う手順について
図8A、
図8Bを用いて説明し、メッセージアプリサービス600とユーザがやり取りを行う画面について
図9A、
図9B、
図10を用いて説明する。
図8A、
図8Bは、クラウドプリントサービス400に登録されたプリンタを使って印刷を行う処理の一例を示すシーケンス図である。なお、このシーケンス図に示すクライアントコンピュータ100の処理はクライアントコンピュータ100のCPU101が補助記憶装置105等に格納されたプログラムを実行することにより実現される。また、メッセージアプリサービス600の処理は、メッセージアプリサービス600を構成する1又は複数台のコンピュータの少なくともいずれかに記憶されたプログラムを該1又は複数台のコンピュータのCPUが実行することで実現される。また、プリントボットサービス500の処理は、プリントボットサービス500を構成する1又は複数台のコンピュータの少なくともいずれかに記憶されたプログラムを該1又は複数台のコンピュータのCPUが実行することで実現される。また、クラウドプリントサービス400の処理は、クラウドプリントサービス400を構成する1又は複数台のコンピュータの少なくともいずれかに記憶されたプログラムを該1又は複数台のコンピュータのCPUが実行することで実現される。なお、以下、
図8A、
図8Bをまとめて
図8と記載する。
【0050】
図8のシーケンスでは、少なくとも、予めメッセージアプリサービス600にプリントボットサービス500用のアカウントを登録し、メッセージアプリサービス600にユーザとプリントボットサービス500が参加しているチャットルームを生成しておく。メッセージアプリサービス600には、プリントボットサービス500にアクセスするためのアドレスが予め登録されているものとする。プリントボットサービス500にはメッセージアプリサービス600、クラウドプリントサービス400にアクセスするためのアドレスが予め登録されているものとする。
【0051】
ユーザがクライアントコンピュータ100からメッセージアプリサービス600のプリントボットサービス500が参加しているチャットルームに、文字を入力する操作を行う。この操作に応じ、クライアントコンピュータ100は、メッセージアプリサービス600のプリントボットサービス500が参加しているチャットルームに、ユーザにより入力された文字を送信する(S800)。文字がメッセージアプリサービス600に送信されると、
図9A、
図9Bの901、902、
図10の1000のように入力された文字が、クライアントコンピュータ100のモニター110に表示されたチャットルームに表示される。
図9A、
図9B、
図10は、メッセージアプリサービス600がクライアントコンピュータ100に表示する画面の一例を示す図である。なお、以下、
図9A、
図9Bをまとめて
図9と記載する。
【0052】
上記プリントボットサービス500が参加しているチャットルームに文字列が入力されると、メッセージアプリサービス600は、入力された文字列と、入力者の情報をプリントボットサービス500に送信する(S801)。詳細にはS801で、プリントボットサービス500用のアカウントが登録されたメッセージアプリサービス600のメッセージサービス620は、チャットルーム上にデータが入力されたことを検知して、プリントボットサービス500にイベントを通知する。以下、この「プリントボットサービス500用のアカウントが登録されたメッセージアプリサービス600のメッセージサービス620」の動作を、単に「メッセージアプリサービス600」を主体として説明する。
【0053】
プリントボットサービス500は、文字列の入力を行ったユーザに関連付けされるアカウント情報(後述する
図11に示すアカウント情報テーブル1201に保存される)内に言語設定1204に言語が設定されているかを確認する(S802)。
図11は、プリントボットサービス500のデータベース550が管理するアカウント情報テーブル1201の一例を示す図である。
アカウント情報テーブル1201は、ユーザごとのアカウント情報として、アプリID1202、ユーザID1203、言語設定1204、アクセストークン1205、印刷設定1206、プリンタキュー1207を紐づけて保持している。
【0054】
また、プリントボットサービス500は、
図12に示す印刷キーワードテーブル1301を用いて、メッセージアプリサービス600から受信した文字列に印刷キーワードが含まれているかを確認する(S803)。
図12は、プリントボットサービス500のデータベース550が管理する印刷キーワードテーブル1301の一例を示す図である。
印刷キーワードテーブル1301は、言語情報1302と、印刷関連キーワード情報1303とを紐づけて保持している。
言語情報1302は、主言語レベルで保持してもよいし、中華人民共和国の中国語(簡体字)1304、台湾の中国語(繁体字)1305の分類のように方言などの副言語レベルで保持してもよい。
【0055】
以降の説明は、上記S800で入力された文字列内に、印刷関連キーワード情報1303で保持するいずれかのキーワードと一致する文字列が含まれていることを前提として行う。なお、S803の処理で、メッセージアプリサービス600から受信した文字列中に印刷関連キーワードが含まれていないことが確認された場合、プリントボットサービス500は動作しない。
【0056】
上記S800で文字列の入力を行ったユーザに関連付けされるアカウント情報テーブル1201内の言語設定1204に言語が設定されていない場合、プリントボットサービス500は、S804~S809の処理を行う。S804~S809において、プリントボットサービス500は、該当ユーザの言語を判別し、アカウント情報テーブル1201に言語設定1204を保存する。詳細は後述するが、プリントボットサービス500からユーザに提示する文字列は、提示対象ユーザの言語設定1204を用いて、
図13に示すUI表示文字列テーブル1401から検索した文字列となる。
【0057】
図13は、プリントボットサービス500のデータベース550が管理するUI表示文字列テーブル1401の一例を示す図である。
例えばユーザの言語設定1204が日本語(ja)の場合、プリントボットサービス500がユーザに提示する画面は
図9Aのようになり、言語設定1204が英語(en)の場合は
図9Bのようになる。
【0058】
以下、
図8の説明に戻る。
上記S803の処理において確認された印刷キーワードと同一の印刷キーワードが複数の言語情報1302に紐付けされている場合、ユーザの入力言語を一意に特定できない。その場合、プリントボットサービス500は、
図14に示す言語特有文字テーブル1501を用いて、メッセージアプリサービス600から受信した文字列内に、言語特有の文字が含まれているか確認する(S804)。
【0059】
図14は、プリントボットサービス500のデータベース550が管理する言語特有文字テーブル1501の一例を示す図である。
言語特有文字テーブル1501は、言語情報1502と言語特有文字1503を紐づけて保持している。言語特有文字1503は、他の言語に含まれることのない文字を保持しており、特定の文字を直接保持してもよいし、日本語における平仮名、片仮名のような文字を正規表現で保持していてもよい。
【0060】
上記S804の処理で、言語特有文字が含まれておらず、言語を特定できなかった場合、プリントボットサービス500は、
図10の1001のように、ユーザに言語候補を提示して言語の選択を促す(S805~S808)。詳細には、S805において、プリントボットサービス500は、デフォルトの言語により言語候補を提示して言語の選択を求める表示の要求を、メッセージアプリサービス600に送信する。この表示の要求は、例えばJSON形式やXML形式で記載されたメッセージである。
図10の1001の例では、使用する言語の選択を促す選択肢とOKボタンがJSON形式で記載されたメッセージに対応する。
【0061】
上記言語の選択を求める表示の要求に応じて、メッセージアプリサービス600は、言語候補を提示して言語の選択を求める表示を、上述のチャットルームに表示する(S806)。これにより、
図10の1001のような言語候補を提示して言語の選択を求める表示が、クライアントコンピュータ100のモニター110に表示されたチャットルーム上に表示される。
【0062】
そして、ユーザが言語候補の選択を行うと、クライアントコンピュータ100は、選択された言語候補と入力者の情報をメッセージアプリサービス600に送信する(S807)。この通知に応じて、メッセージアプリサービス600は、選択された言語候補と入力者の情報を、プリントボットサービス500に通知する(S808)。この通知に応じて、プリントボットサービス500は、選択された言語候補を、入力者に関連付けされるアカウント情報テーブル1201の言語設定1204に保存する(S809)。以後、プリントボットサービス500は、対話対象のユーザと、該ユーザに関連付けされるアカウント情報テーブル1201の言語設定1204に保存されている言語で、メッセージアプリサービス600を介した対話を行う。すなわち、上記S809の処理により、プリントボットサービス500は、対話対象のユーザと対話する際に用いる言語を設定する。これにより、そのユーザとの対話に用いる言語がデフォルト言語等から、そのユーザの言語に切り替えられる。
【0063】
この後、プリントボットサービス500は、印刷可能データを特定できる情報の検索を行う。印刷可能データとは、プリントボットサービス500で予め定義しておいた形式のファイルのことを指す。例えば、データの拡張子が”.pdf”、“.jpg”、“.png”、“.bmp”などの画像データであるファイル、又は、表計算や文書を表した拡張子のファイルが印刷可能データに含まれる。
【0064】
プリントボットサービス500は、チャットルーム内の履歴を確認し、印刷可能データを特定できる情報の検索を行う(S810)。S810における履歴には、上記S801においてメッセージアプリサービス600からプリントボットサービス500に送信された情報をデータベース550に保持しておいたデータが含まれる。また、プリントボットサービス500からメッセージアプリサービス600のファイルストレージ610に対して問い合わせを行うことで取得できるデータも、上記S810の履歴に含まれる。また、印刷可能データを特定できる情報は、印刷可能データそのものである必要はなく、印刷可能データが配置されているURLやローカルパスでもよい。
【0065】
S810において、履歴内に印刷可能データを特定できる情報が見つからなかった場合、プリントボットサービス500は、
図10の1005のようにユーザに直接印刷ファイルの指定を求める(S811~S814)。
【0066】
詳細には、S811において、プリントボットサービス500は、印刷可能データを特定できる情報の指定を求める表示の要求を、メッセージアプリサービス600に送信する。これに応じて、メッセージアプリサービス600は、印刷可能データを特定できる情報の指定を求める表示を、上述のチャットルームに表示する(S812)。これにより、
図10の1005のような印刷可能データを特定できる情報の指定を求める表示が、クライアントコンピュータ100のモニター110に表示されたチャットルーム上に表示される。
【0067】
そして、ユーザが、この表示から印刷可能データを特定できる情報の入力を行うと、クライアントコンピュータ100は、入力された印刷可能データを特定できる情報と入力者の情報を、メッセージアプリサービス600に通知する(S813)。この通知に応じて、メッセージアプリサービス600は、印刷可能データを特定できる情報と入力者の情報を、プリントボットサービス500に通知する(S814)。
【0068】
印刷可能データを特定できる情報を取得できた場合、プリントボットサービス500は、印刷可能データを特定できる情報を、印刷ジョブストレージ510もしくはデータベース550に一時保存する(S815)。
【0069】
次に、プリントボットサービス500は、メッセージアプリサービス600に“印刷”ボタンの表示要求を送信する(S816)。
メッセージアプリサービス600は、この要求に従って、“印刷”ボタンを上述のチャットルームに表示する(S817)。これにより、印刷ボタンが、クライアントコンピュータ100のモニター110に表示されたチャットルーム上に表示される。
【0070】
図9の904や
図10の1010は“印刷”ボタンの一例である。ユーザが“印刷”ボタンを選択すると、クライアントコンピュータ100は、“印刷”ボタンが選択されたことを示す情報と入力者の情報をメッセージアプリサービス600に送信する(S818)。これに応じて、メッセージアプリサービス600は、“印刷”ボタン903が選択されたことを示す通知をプリントボットサービス500に送信する(S819)。
【0071】
プリントボットサービス500は、上記S819の通知を受信後、上記S815で保存した印刷可能データを特定できる情報を用いて、メッセージアプリサービス600に印刷可能データを要求する(S820)。これに応じて、メッセージアプリサービス600は、印刷可能データをファイルストレージ610等から取得し、プリントボットサービス500に送信する(S821)。プリントボットサービス500は、メッセージアプリサービス600から受信した印刷可能データを、印刷ジョブストレージ510に一時保存する(S822)。上記S820~S821では、印刷可能データをメッセージアプリサービス600のファイルストレージ610から取得しているが、印刷可能データはプリントボットサービス500内部または、ネットワーク上から取得してもよい。
【0072】
上記S822でデータの保存が完了すると、プリントボットサービス500は、クラウドプリントサービス400へアクセスするためのアクセストークンを有しているか否かを判定する。この際、プリントボットサービス500は、データベース550内の、“印刷”ボタンを選択したユーザに関連付けされるアカウント情報テーブル1201のアクセストークン1205を確認して判定する。
【0073】
データベース550のアカウント情報テーブル1201のアクセストークン1205に以前使用したアクセストークンが保存されている場合、以下のS823~S830の処理を省略することができる。一方、アクセストークン1205にアクセストークン等、プリントボットサービス500がクラウドプリントサービス400にアクセスするための権限が保存されていない場合、クラウドプリントサービスは、以下のS823~S830処理を実行する。
【0074】
プリントボットサービス500は、メッセージアプリサービス600に登録された文書データや画像データを印刷する際の、当該データの送信先となるクラウドプリントサービス400に対して、認証要求を送信する(S823)。この要求に応じて、クラウドプリントサービス400の認可サーバ440は、ユーザ認証を行うための認証画面を表示するURL(権限認証依頼のためのURL)をプリントボットサービス500に通知する(S824)。
【0075】
プリントボットサービス500は、クラウドプリントサービス400から権限認証依頼のためのURLを受け取ると、メッセージアプリサービス600に対して、当該URLを通知する(S825)。この通知に応じて、メッセージアプリサービス600は、クライアントコンピュータ100に、該URLを通知する(S826)。クライアントコンピュータ100は、通知されたURLにアクセスし、クラウドプリントサービス400にログインするための認証情報を入力する認証情報入力画面を、チャットルーム上に表示させる(S827)。
図9の905は、認証情報入力画面の一例である。認証情報入力画面905は、クライアントコンピュータ100上のウェブサーバが表示させる画面である。なお、認証情報入力画面に入力する内容は、クラウドプリントサービス400への認証が行える情報であればこの限りではない。
【0076】
ユーザがチャットルーム上の認証情報入力画面に対して自身が使用しているクラウドプリントサービスに認証情報を入力すると、クライアントコンピュータ100は、入力された認証情報をクラウドプリントサービス400に送信する(S828)。クライアントコンピュータ100から送信された認証情報を受信すると、クラウドプリントサービス400の認可サーバ440は、該受信した認証情報に基づき認証を行う。
【0077】
なお、ここでは認証のみを行うとしたが、認証が成功した後、ユーザにプリントボットサービス500がクラウドプリントサービス400にアクセスすることを許可するか否か問い合わせる画面をクライアントコンピュータ100に表示させるとしてもよい。この場合、クラウドプリントサービス400は、ユーザによりプリントボットサービス500がクラウドプリントサービス400にアクセスすることが許可されたことに従って後述するS829へと処理を進める。
【0078】
クラウドプリントサービス400は認証が成功したことに基づき、アクセストークンを発行し、発行したアクセストークンをプリントボットサービス500に付与する(S829)。プリントボットサービス500は、クラウドプリントサービス400から送信されたアクセストークンを受信すると、該アクセストークンを上記ユーザに関連付けされるアカウント情報テーブル1201のアクセストークン1205に保存する(S830)。
【0079】
さらに、プリントボットサービス500は、上記取得したアクセストークンを用いてクラウドプリントサービス400のデータベース450に記憶されるプリンタキューの情報の取得要求を送信する(S831)。この要求に応じて、クラウドプリントサービス400は、データベース450に記憶される該要求に含まれるアクセストークンに紐づくプリンタキューの情報をプリントボットサービス500に送信する(S832)。この情報を受信するとこで、プリントボットサービス500は、プリンタキューの名称、当該ユーザの印刷設定を取得する。ここでの印刷設定とは、複数の設定項目が設定された状態のプリセットの名称である。なお、プリントボットサービス500がプリセットに関する情報ではなく、ユーザに紐づくデフォルトの印刷設定値を取得するとしてもよい。
プリントボットサービス500は、取得したプリンタキューの情報を、対応するユーザに関連付けされるアカウント情報テーブル1201のプリンタキュー1207に記憶する(S833)。また、プリントボットサービス500は、印刷設定値を、対応するユーザに関連付けされるアカウント情報テーブル1201の印刷設定1206に記憶する。
【0080】
ここで
図11を用いて、プリントボットサービス500のデータベース550が保持するアカウント情報テーブル1201について説明する。
データベース550には、
図11に示すアカウント情報テーブル1201が記憶されている。アプリID1202は、メッセージアプリサービス600を識別するための識別情報である。ユーザID1203は、メッセージアプリサービス600を使用しているユーザを識別するための識別情報である。アプリID1202とユーザID1203を参照することで、誰がどのアプリケーションからプリントボットサービス500にアクセスしているかを判断することができる。
【0081】
アクセストークン1205は、プリントボットサービス500がクラウドプリントサービス400にアクセスするためのトークンである。印刷設定1206は、メッセージアプリサービス600に表示させるプリセットの情報である。
図11に示す例では、アカウント情報テーブル1201の印刷設定1206には“デフォルト設定”と“2in1+両面”という2つのプリセットが設定されている。“デフォルト設定”は、モノクロの両面印刷で印刷部数が1部であることを示している。“2in1+両面”は、カラーの両面印刷で、印刷部数が1部であることを示している。プリンタキュー1207は、クラウドプリントサービス400に登録された1又は複数のプリンタキューの名称である。
【0082】
なお、本実施形態では、ユーザの識別情報とプリンタのデバイス情報を対応づけてアカウント情報テーブル1201に登録するとした。しかし、複数のユーザが所属するグループを識別するグループ識別情報とプリンタのデバイス情報を対応づけるとしてもよい。この場合、テーブルに記憶されたグループ識別情報により識別されるグループに所属するユーザは、当該グループ識別情報と対応づけて記憶されるデバイス情報のプリンタを使って印刷を行うことができる。
【0083】
以下、
図8のシーケンス図の説明に戻る。
プリントボットサービス500は、アカウント情報テーブル1201に記憶されたユーザの識別情報に関連付けられたプリンタキューの表示要求を、メッセージアプリサービス600に送信する(S834)。この要求に応じて、メッセージアプリサービス600は、プリンタキューの名称と印刷設定をチャットルーム上に表示する(S835)。これにより、プリンタキューの名称と印刷設定が、クライアントコンピュータ100のモニター110に表示されたチャットルーム上に表示される。なお、クラウドプリントサービス400に登録されているプリンタがない場合はその旨を、チャットルーム上に示す通知をする。
【0084】
図9の906は印刷に使用するプリンタの選択する画面の一例である。
ユーザがコントロール907を選択すると、プリントボットサービス500に記憶されているプリンタキューの名称がリストで表示される。ユーザは一覧で表示されたプリンタ名から、画像データの印刷に使用するプリンタキューの名称を選択することができる。
また、
図9の908は印刷設定を表示する画面の一例である。
領域908に表示されている“デフォルト設定”、“2in1+両面”はプリセットの名称であり、ユーザがクラウドプリントサービス400にプリセットを登録したときに設定する名称である。なお、本実施形態では、領域908に印刷設定のプリセットの一覧が表示されるとしたが、領域908でユーザが任意の印刷設定を行うことができるとしてもよい。例えば、印刷部数の設定や、カラー/モノクロ印刷の設定、用紙サイズ設定、印刷方向の設定、面付等の印刷時のレイアウト設定などを領域908で行えるとしてもよい。
なお、この時点では、“印刷実行”ボタン909は表示されていない。
【0085】
ユーザが使用するプリンタキューを変更した場合、クライアントコンピュータ100は、選択されたプリンタキューの情報と入力者の情報をメッセージアプリサービス600に送信する(S836)。これに応じて、メッセージアプリサービス600は、選択されたプリンタキューの情報と入力者の情報を、プリントボットサービス500に通知する(S837)。
【0086】
この通知に応じて、プリントボットサービス500は、選択されたプリンタキューに対応するプリンタが印刷可能であるか等の問い合わせを、クラウドプリントサービス400に送信する(S838)。これに応じて、クラウドプリントサービス400は、問い合わせされたプリンタキューに対応するプリンタ200に、状態を問い合わせる(S839)。この問い合わせに応じて、プリンタ200は、自身の状態をクラウドプリントサービス400に返却する(S840)。クラウドプリントサービス400は、受信したプリンタ200の状態を、プリントボットサービス500に返却する(S841)。これにより、プリントボットサービス500は、選択されたプリンタキューのプリンタのステータスを取得する。プリントボットサービス500は、取得したステータス情報をメッセージアプリサービス600に通知しメッセージアプリサービスにプリンタのステータスを表示させるとしてもよい。
【0087】
プリントボットサービス500は、プリンタステータスの取得が完了すると、メッセージアプリサービス600にアプリケーション上に“印刷実行”ボタンの表示要求を、メッセージアプリサービス600に送信する(S842)。なお、上記S834では印刷設定の表示要求は行わず、このタイミングと印刷設定と“印刷実行”ボタンの表示要求を送信するようにしてもよい。上記要求に応じて、メッセージアプリサービス600は、
図9の909のような“印刷実行”ボタンをチャットルーム上に表示する(S843)。これにより、“印刷実行”ボタン909が、クライアントコンピュータ100のモニター110に表示されたチャットルーム上に表示される。
【0088】
ここで、ユーザがクライアントコンピュータ100を操作して、印刷設定の変更操作を行うとする(S844)。この操作に応じて、クライアントコンピュータ100は、変更された印刷設定の情報と入力者の情報をメッセージアプリサービス600に送信する(S844)。これに応じて、メッセージアプリサービス600は、変更された印刷設定の情報と入力者の情報を、プリントボットサービス500に通知する(S845)。なお、
図9の領域908は、デフォルト設定を選択した状態で表示され、デフォルト設定がプリントボットサービス500に通知される。その後、ユーザが印刷設定を変更した場合、変更後の印刷設定がプリントボットサービス500に通知される。
プリントボットサービス500は、変更された印刷設定を、プリントサービス540に記憶する(S846)。上記S844~S846の処理は、ユーザが印刷設定を変更する度に行われる。
【0089】
ユーザがクライアントコンピュータ100を操作し、“印刷実行”ボタンを選択すると、“印刷実行”ボタン909が選択されたことを示す情報と入力者の情報をメッセージアプリサービス600に送信する(S848)。これに応じて、メッセージアプリサービス600は、“印刷実行”ボタン909が選択されたことを示す通知を、プリントボットサービス500に送信する(S849)。この際、メッセージアプリサービス600は、印刷指示として、例えば“印刷実行”のテキストをプリントボットサービス500に送信してもよい。プリントボットサービス500は、受信したテキストを解析し、印刷実行が含まれていることに基づき、以下に示すS850に記載の処理を実行する。
【0090】
プリントボットサービス500は、受信した印刷実行指示に基づき、プリンタキューを指定し、上記S822で一時保存した印刷可能データと、上記S833、S846で記憶した印刷設定とを、クラウドプリントサービス400に送信する(S850)。すなわち、プリントボットサービス500は、印刷設定と印刷ジョブを、クラウドプリントサービス400に送信する。
【0091】
印刷設定と印刷ジョブを受信したクラウドプリントサービス400は、指定されたプリンタキューに対応するプリンタ200に対して、印刷設定を反映した印刷ジョブを送信する(S851)。プリンタ200は印刷が成功すると、クラウドプリントサービス400に対して印刷が成功した旨の通知を送信する。プリントボットサービス500は、クラウドプリントサービス400にポーリングを行い、印刷が成功したことを検知すると、メッセージアプリサービス600に印刷完了の表示要求を行う。
図9の910は印刷が完了したことを示す通知に対応する。
【0092】
以上のように、メッセージアプリサービス600とプリントボットサービス500を連携させることで、メッセージアプリサービス600が印刷機能を有していなくても、登録された文書データや画像データの印刷を行うことができる。また、プリントボットサービス500がクラウドプリントサービス400への認証要求を行うことで、クラウドプリントサービス400に登録されたプリンタ200を指定した印刷を行うことができる。このようにすることで、ユーザがプリントボットサービス500にプリンタを1台ずつ登録せずとも、印刷を行うことができるようになる。
【0093】
なお、
図8に示した例では、ユーザがメッセージアプリサービス600に登録したデータを当該ユーザが印刷する場合を例に説明した。しかし、他のユーザや他のクライアントコンピュータがメッセージアプリサービス600に登録したデータを印刷するとしてもよい。他のユーザや他のクライアントコンピュータが登録したデータを印刷できるようにすることで、クライアントコンピュータが印刷するデータを記憶していていなくても当該データの印刷を行うことができる。
【0094】
次に、
図15A、
図15Bを用いて本実施形態におけるプリントボットサービス500が実行する処理を示す。
図15A、
図15Bは、本実施形態のプリントボットサービス500が実行する処理の一例を示すフローチャートである。この処理は、プリントボットサービス500を構成する1又は複数台のコンピュータのいずれかに記憶されたプログラムを1又は複数台のコンピュータのCPUが実行することで以下の処理が実現される。また、この処理は、ユーザがメッセージアプリサービス600でプリントボットサービス500が参加しているチャットルームの画面を開いたときに開始される。なお、以下
図15A、
図15Bをまとめて
図15と記載する。
【0095】
先ず、プリントボットサービス500の処理部530は、メッセージアプリサービス600からチャットルームの画面が開かれた通知を受け付け、起動処理を実行する(S701)。
【0096】
処理部530は、プリントボットサービス500を、ユーザが印刷したいデータとしてメッセージアプリサービス600に登録されたデータを受け取り可能な状態に設定する(S702)。処理部530は、メッセージアプリサービス600のステータスを管理しており、メッセージアプリサービス600のステータスをデータの登録待ち状態に変更する。
【0097】
その後、処理部530は、メッセージアプリサービス600からユーザによる入力データが登録されたことを示す通知を受信したか否かを判定する(S703)。メッセージアプリサービス600からユーザによる入力データが登録されたことを示す通知を受信していない場合(S703でNoの場合)、処理部530はS703の処理を繰り返し行う。一方、メッセージアプリサービス600からユーザによる入力データが登録されたことを示す通知を受信している場合(S703でYesの場合)、処理部530はS704に処理を進める。
【0098】
S704において、処理部530は、メッセージアプリサービス600から、ユーザによりメッセージアプリサービス600に登録されたデータとデータの入力者名を取得する。さらに、処理部530は、データ入力者の言語設定情報をデータベース550のアカウント情報テーブル1201を用いて取得する。
【0099】
また、処理部530は、ユーザにより登録された文字列内にデータベース550の印刷キーワードテーブル1301と一致する文字列が存在するか確認する(S705)。ユーザにより登録された文字列内に一致する文字列が存在しない場合(S706でNoの場合)、処理部530は、上記S703のデータ待ち受け処理に戻る。
【0100】
一方、ユーザにより登録された文字列内に、印刷キーワードテーブル1301に一致する文字列が含まれていた場合(S706でYesの場合)、処理部530は、S707に処理を進める。
S707において、処理部530は、データ入力者の言語設定がデータベース550のアカウント情報テーブル1201に含まれているか判定する。データ入力者の言語設定がデータベース550のアカウント情報テーブル1201に含まれている場合(S707でYesの場合)、処理部530は、S712に処理を進める。
【0101】
一方、データ入力者の言語設定がデータベース550のアカウント情報テーブル1201に含まれていない場合(S707でNoの場合)、処理部530は、該当ユーザの言語設定保存処理を行う(S708~S711)。なお、アカウント情報テーブル1201内に既に言語設定が含まれている場合においても、メッセージアプリサービスからユーザに言語設定開始確認画面を提示し、言語設定開始が選択された場合、言語設定保存処理(S708~S711)を行ってもよい。
【0102】
言語設定保存処理(S708~S711)について説明する。
まず、処理部530は、ユーザにより登録された文字列からデータ入力者の言語を解析する(S708)。解析方法の例を示す。まず、ユーザにより登録された文字列の中で、印刷キーワードテーブル1301の印刷関連キーワード情報1303と一致する文字列があるか確認する。一致する文字列がある場合、該文字列に紐づけられた言語設定を確認する。そして、言語設定が一意に定まるかを確認する。もし、言語設定が一意に定まる場合、その言語設定をデータ入力者の言語とする。一方、同一の印刷キーワードが複数の言語設定に紐づけられており、言語設定が一意に定まらない場合、ユーザにより登録された文字列内に、言語特有文字テーブル1501に一致する文字が存在するか確認する。なお、言語特有文字テーブル1501は、特定言語でのみ使用される文字と言語設定を紐づけて管理しているテーブルである。ユーザにより登録された文字列内に、言語特有文字テーブル1501に一致する文字列が存在する場合、該一致する文字列に対応する言語をデータ入力者の言語とする。一方、ユーザにより登録された文字列内に、言語特有文字テーブル1501に一致する文字が存在しない場合、データ入力者の言語を特定できなかったと判断する。
【0103】
データ入力者の言語設定が判別できた場合(S709でYesの場合)、処理部530は、S711に処理を進める。
一方、データ入力者の言語設定が判別できなかった場合(S709でNoの場合)、処理部530は、S710に処理を進める。
S710において、処理部530は、
図10の1001のような言語選択肢を含むメッセージをメッセージアプリサービス600に投稿し、データ入力者に対して直接言語設定の入力を求める。そして、処理部530は、メッセージアプリサービス600から、データ入力者による言語設定の選択の結果を受け取ると、S711に処理を進める。
【0104】
S711において、処理部530は、データ入力者の言語設定を、該データ入力者に対応付けされるアカウント情報テーブル1201の言語設定1204に保存する。これにより、データ入力者とメッセージの交換を行う際の言語を切り替える。その後、処理部530は、S712に処理を進める。
【0105】
S712において、処理部530は、ユーザにより登録された文字列内に、印刷可能なデータを特定できる情報が含まれているかを確認する。上述したように、印刷可能データとは、プリントボットサービス500で予め定義しておいた形式のファイルのことを指す。例えば、データの拡張子が”.pdf”、“.jpg”、“.png”、“.bmp”などの画像データであるファイル、又は、表計算や文書を表した拡張子のファイルが印刷可能データに含まれる。
【0106】
印刷可能なデータが含まれていなかった場合(S713でNoの場合)、処理部530は、S714に処理を進める。
S714において、処理部530は、S1005のようなメッセージを、メッセージアプリサービス600に送信して、データ入力者に対して印刷可能なデータを特定する情報の入力を求める。そして、処理部530は、メッセージアプリサービス600から、データ入力者が入力した印刷可能なデータを特定する情報を受け取ると、S715に処理を進める。
一方、印刷可能なデータが含まれていた場合(S713でYesの場合)、処理部530は、S715に処理を進める。
【0107】
S715において、処理部530は、印刷可能なデータを特定できる情報をデータベース550又は印刷ジョブストレージ510に一時保存する。
処理部530は、メッセージアプリサービス600に対して、“印刷”ボタンの表示を指示する(S716)。
【0108】
次に、処理部530は、メッセージアプリサービス600から、ユーザが“印刷”ボタンを選択したことを示す通知を受信したか否かを判定する(S717)。ユーザが“印刷”ボタンを選択したことを示す通知を受信した場合(S717でYesの場合)、処理部530は、S718以降の処理を実行する。
【0109】
一方、ユーザが“印刷”ボタンを選択したことを示す通知を受信していない場合(S717でNoの場合)、処理部530は、プリントボットサービス500は、S717の“印刷“ボタン押下待ち受け処理で待機する。なお、“印刷”ボタンの表示を指示してから所定の時間が経過する、もしくは、“印刷”ボタンが選択されずに、ユーザによる次のデータの登録が行われた場合、処理部530は、S703に処理を戻すとしてもよい。また、S703に処理を戻す際に、処理部530は、S716においてユーザに表示した“印刷”押下ボタンを非表示にしてもよい。このようにすることで、ユーザがメッセージアプリサービス600に登録したデータの印刷を行わない場合も、次に登録されたデータに対する処理を行うことができる。
【0110】
S718において、処理部530は、アカウント情報テーブル1201を参照する。そして、処理部530は、接続されているメッセージアプリサービス600の識別情報(アプリID)及び、“印刷”ボタンを選択したユーザに対応するアクセストークンが登録されているか否かを判定する(S718)。処理部530は、アカウント情報テーブル1201に登録されたデータに基づき、例えば、“印刷”ボタンが選択されたことを示す通知からどのアプリIDのどのユーザから印刷が指示されたかを特定する。アプリIDおよびユーザ名に対応するアクセストークンが登録されている場合(S718でYesの場合)、処理部530は、S722に処理を進める。
【0111】
一方、メッセージアプリサービス600の識別情報に対応するアクセストークンが登録されていない場合(S718でNoの場合)、処理部530は、S719に処理を進める。
S719において、処理部530は、クライアントコンピュータ100に認証情報入力画面を表示させる。詳細には、処理部530は、クラウドプリントサービス400にユーザ権限の認証依頼を送信する。該認証依頼に応じて、クラウドプリントサービス400は、認証画面の表示に必要なURLをプリントボットサービス500に返す。処理部530は、該URLをメッセージアプリサービス600に送信する。該URLは、メッセージアプリサービス600を経由してクライアントコンピュータ100に送信される。これにより、
図9の領域905のような認証情報入力画面が表示される。
【0112】
処理部530は、クラウドプリントサービス400からのアクセストークンの取得に必要な情報を取得したか否かを判定する(S720)。ユーザ認証に成功すると、クラウドプリントサービス400はメッセージアプリサービス600を経由してアクセストークンの取得に必要な情報をプリントボットサービス500に送信する。処理部530は、プリントボットサービス500がアクセストークンの取得に必要な情報を取得するまで待機する。そして、プリントボットサービス500がアクセストークンの取得に必要な情報を取得した場合(S720でYesの場合)、処理部530は、S721に処理を進める。なお、プリントボットサービス500がアクセストークンの取得に必要な情報を取得することなく所定の時間が経過した場合、S703に処理を戻すようにしてもよい。
【0113】
S721において、処理部530は、上記アクセストークンの取得に必要な情報を使って、クラウドプリントサービス400からアクセストークンを取得する(S721)。さらに、処理部530は、該取得したアクセストークンを、上記ユーザ認証したユーザに関連付けされる、データベース550が管理するアカウント情報テーブル1201のアクセストークン1205として登録し、S722に処理を進める。
【0114】
S722において、処理部530は、データ入力者に関連付けされる、アカウント情報テーブル1201に登録されているアクセストークンを用いてクラウドプリントサービス400にアクセスし、プリンタキューの情報と印刷設定を取得する。
次に、処理部530は、上記S722で取得したプリンタキューの情報と印刷設定をデータベース550のアカウント情報テーブル1201に記憶させる(S723)。
【0115】
さらに、処理部530は、アカウント情報テーブル1201にメッセージアプリサービス600を使用しているユーザに対応付けられたプリンタキューが存在するか否かを判定する(S724)。メッセージアプリサービス600を利用するユーザに対応付けられたプリンタキューがアカウント情報テーブル1201に登録されていない場合(S724でNoの場合)、処理部530は、S725に処理を進める。S725において、処理部530は、メッセージアプリサービス600にプリンタが登録されていないことを示すメッセージの表示を要求し、S703に処理を戻す。
【0116】
一方、メッセージアプリサービス600を利用するユーザに対応付けられたプリンタキューがアカウント情報テーブルに記憶されている場合(S724でYesの場合)、処理部530は、S726以降の処理を実行する。
S726において、処理部530は、メッセージアプリサービス600に、上記認証されたユーザの識別情報に関連付けされてアカウント情報テーブル1201に記憶されたプリンタキュー1207に対応するプリンタ名の表示を要求する。これにより
図9に示す906が表示される。
【0117】
次に、処理部530は、メッセージアプリサービス600に、上記認証されたユーザに紐づけてアカウント情報テーブル1201に記憶された印刷設定1206の表示を要求する(S727)。本実施形態では、予め印刷設定の組としてクラウドプリントサービス400に登録されているプリセットの名称情報を取得し、メッセージアプリサービス600に表示させる。
【0118】
次に、処理部530は、プリンタキューのステータス取得が完了したことに従って、“印刷実行”ボタン909の表示を、メッセージアプリサービス600に要求する。なお、本実施形態では、プリンタキューのステータスを取得してから“印刷実行”ボタン909を表示させるとしたが、プリンタキューのステータスの取得を行わずに“印刷実行”ボタン909を表示させるとしてもよい。
【0119】
次に、処理部530は、印刷設定が変更されたか否かを判定する(S729)。ユーザが領域908において印刷設定を変更した場合、メッセージアプリサービス600はプリントボットサービス500にイベントを通知する。プリントボットサービス500の処理部530は、印刷設定を変更するイベントの通知に基づき、印刷設定が変更されたと判定する。印刷設定が変更された場合(S729でYesの場合)、処理部530は、S730に処理を進める。
S730において、処理部530は、変更された印刷設定をプリントサービス540に記憶し、S731に処理を進める。
【0120】
一方、印刷設定が変更されていない場合(S729でNoの場合)、処理部530は、
S731に処理を進める。
【0121】
S731において、処理部530は、プリンタキューが変更されたか否かを判定する。ユーザがプリンタキューを変更すると、当該変更がイベントとしてプリントボットサービス500に通知される。プリントボットサービス500の処理部530は、当該イベントの受信に従って、プリンタキューが変更されたと判定する。プリンタキューが変更された場合(S731でYesの場合)、処理部530は、S729に処理を戻し、クラウドプリントサービス400に変更後のプリンタキューに対応するプリンタのステータスを取得する。
【0122】
一方、プリンタキューが変更されていない場合(S731でNoの場合)、処理部530は、S732に処理を進める。
S732において、処理部530は、印刷実行指示がなされたか否かを判定する。ユーザが領域908の“印刷実行”ボタン909を選択すると、メッセージアプリサービス600は当該イベントを検知して、プリントボットサービス500に通知する。処理部530は、メッセージアプリサービス600からユーザが“印刷実行”ボタンを選択したことを示すイベントを受信すると印刷実行が指示されたと判定する。印刷実行指示がなされていない場合(S732でNoの場合)、処理部530は、S734に処理を戻す。
【0123】
一方、印刷実行指示がなされた場合(S732でYesの場合)、処理部530は、S733に処理を進める。
S733において、処理部530は、印刷ジョブストレージ510に記憶されている印刷データとプリントサービス540に記憶されている印刷設定を、クラウドプリントサービス400に送信する。詳細には、プリントサービス540が印刷ジョブストレージ510から印刷ジョブを取得し、印刷設定との紐づけを行う。処理部530は、プリントサービス540が紐づけた印刷ジョブと印刷設定を、クラウドプリントサービス400に送信する。これにより、印刷ジョブがクラウドプリントサービス400に送信され、メッセージアプリサービス600に登録された文書データや画像データの印刷を行うことが可能となる。
【0124】
印刷するデータと印刷設定をクラウドプリントサービス400に送信した後、処理部530は、クラウドプリントサービス400に対して印刷が完了したか否かを問い合わせる(S734)。詳細には、処理部530は、定期ポーリングでクラウドプリントサービス400に印刷が完了したかの問い合わせを送信する。処理部530は、クラウドプリントサービス400から受信した通知に基づき印刷が完了したか否かを判定する。なお、クラウドプリントサービス400が、印刷が完了したことを処理部530に通知するとし、処理部530が当該通知に基づき印刷完了を判定するとしてもよい。
【0125】
処理部530は、印刷が完了するまで待機し、印刷完了した場合(S734でYesの場合)、S735に処理を進める。
S735において、処理部530は、印刷完了の表示要求を、メッセージアプリサービス600に送信する。これにより、ユーザはメッセージアプリサービス600を介して、印刷が完了したことを知ることができる。
【0126】
以上により、プリントボットサービス500が既にプリンタの情報が登録された他のサービス(例えばクラウドプリントサービス400)にアクセスすることで、他のサービスに登録されたプリンタを用いた印刷を行うことが可能となる。
【0127】
なお、プリントボットサービス500の機能、及び、クラウドプリントサービス400の機能を、プリンタ200に設けるようにしてもよい。
また、クライアントコンピュータ100で動作するメッセージアプリサービス600用のクライアントアプリケーションが、クライアントコンピュータ100の言語設定を取得し、該取得した言語設定をメッセージアプリサービス600に通知してもよい。この場合、メッセージアプリサービス600がクライアントコンピュータ100の言語設定をプリントボットサービス500に通知する。さらに、プリントボットサービス500は、例えば入力言語の判別が行えない場合、クライアントコンピュータ100の言語設定を、対応するユーザに関連付けされるアカウント情報テーブル1201(
図11)内の言語設定1204に登録するようにしてもよい。
【0128】
さらに、クライアントコンピュータ100で動作するメッセージアプリサービス600用のクライアントアプリケーションが、自身のユーザインタフェース(UI)に設定されている言語設定をメッセージアプリサービス600に通知してもよい。この場合、メッセージアプリサービス600がクライアントコンピュータ100の言語設定をプリントボットサービス500に通知する。さらに、プリントボットサービス500は、例えば入力言語の判別が行えない場合、クライアントアプリケーションのUIに設定されている言語設定を、対応するユーザに関連付けされるアカウント情報テーブル1201内の言語設定1204に登録してもよい。
【0129】
以上、本実施形態によれば、メッセージアプリサービスを用いたクラウドプリント環境において、ユーザ毎に適切な国別言語設定を行うことができる。この結果、ユーザ毎に適切な国別言語でボットサービスと対話して印刷を行うことが可能になる。これにより、メッセージアプリサービスを用いたクラウドプリント環境における使い勝手を向上することができる。例えば、印刷設定画面や操作指示をユーザに適した言語で表示でき、ユーザ自身の言語で印刷指示等が可能となり、ユーザの使い勝手を向上することができる。
また、ユーザによりメッセージアプリサービスに入力された文字列で言語判別を行うことにより、ユーザが入力した文字列から直接言語を判別可能なため、判別精度が高い言語判別を行うことができる。
【0130】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
【0131】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0132】
100 クライアントコンピュータ
200 プリンタ
300 ネットワーク
400 クラウドプリントサービス
500 プリントボットサービス
600 メッセージアプリサービス