以下、図面を参照して本開示の実施形態について説明する。なお、以下に説明される実施形態は本開示の一例にすぎず、本開示の要旨を変更しない範囲で、各実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本開示の要旨を変更しない範囲で、適宜変更することができる。
[通信システム100の構成]
図1において、通信システム100は、管理サーバ15、外部仲介装置12、内部仲介装置13、複数台のプリンタ14、複数台の携帯端末装置16、及び端末装置11を備える。
通信システム100において、管理サーバ15は、所謂モバイルデバイス管理システム(以下、MDMシステムと称する)により、各携帯端末装置16を直接管理する。管理サーバ15は、MDMシステムにより、外部仲介装置12及び内部仲介装置13を通じて各プリンタ14を管理する。詳細には、端末装置11のオペレータは、端末装置11が記憶するブラウザ64を参照しながら、管理サーバ15により管理されている携帯端末装置16及びプリンタ14を互いに関連付ける。管理サーバ15は、プリンタ14にエラーが発生した場合に、その旨を、予め設定されている携帯端末装置16に通知する。
管理サーバ15は、インターネット17に接続されるサーバ装置である。管理サーバ15は、例えば、MDMプロバイダにより管理される。MDMプロバイダは、MDMシステムにより、携帯端末装置16(即ち、モバイルデバイス)を管理するサービスを提供する会社である。
外部仲介装置12は、ファイアウォール19を介してインターネット17に接続されるサーバ装置である。外部仲介装置12は、MDMカスタマにより管理される。MDMカスタマは、MDMプロバイダによるサービスの提供を受ける会社である。
管理サーバ15及び外部仲介装置12は、インターネット17及びファイアウォール19を通じて相互に通信可能である。具体的には、管理サーバ15及び外部仲介装置12は、予め割り当てられているグローバルIPアドレスを用い、インターネットプロトコルに従って、要求(具体的にはHTTPリクエスト)及び応答(具体的には、HTTPレスポンス)を相互に通信する。
内部仲介装置13は、ファイアウォール110を介してインターネット17に接続されるサーバ装置又はパーソナルコンピュータである。内部仲介装置13は、例えば、MDMカスタマの支店や営業所(以下、単に、支店と称する)毎に設置される。
内部仲介装置13及び外部仲介装置12は、インターネット17及びファイアウォール19、110等を通じて相互に通信可能である。具体的には、内部仲介装置13及び外部仲介装置12は、予め割り当てられているグローバルIPアドレスを用い、インターネットプロトコルに従って、要求(具体的にはHTTPリクエスト)及び応答(具体的には、HTTPレスポンス)を相互に通信する。
なお、ファイアウォール19、110は、例えば、予め定められているファイアウォールポリシーに基づきパケットフィルタリングを行う。これにより、内部仲介装置13及び外部仲介装置12への不正アクセスが防止される。
内部仲介装置13は、支店毎に構築されるローカルエリアネットワーク(以下、LANと称する)18にも接続される。LAN18には、複数のプリンタ14が接続される。各支店に属する者は、プリンタ14を利用可能である。各プリンタ14は、LAN18に接続される。なお、プリンタ14の台数は、少なくとも1台でよい。
LAN18は、イントラネットであり、有線LAN、無線LAN又はWANである。LAN18は、有線LAN、無線LAN及びWANの少なくとも2つの組み合わせでもよい。内部仲介装置13及び各プリンタ14とは、TCP/IP等の通信プロトコルに従って相互に通信可能である。具体的には、内部仲介装置13及びプリンタ14は、プライベートIPアドレスやMACアドレスを用いて、要求及び応答を相互に通信する。
より詳細には、LAN18は、ルータやブリッジ等のゲートウェイ装置(図示せず)を有している。ゲートウェイ装置は、予め割り当てられているグローバルIPアドレスを有する。内部仲介装置13は、ゲートウェイ装置及びファイアウォール110を通じてインターネット17に接続される。なお、ファイアウォール110は、ゲートウェイ装置に組み込まれていてもよい。
上記ネットワーク構成により、プリンタ14は管理サーバ15と直接通信する構成を備えていない。上記ネットワーク構成により、各プリンタ14は管理サーバ15と直接通信することができない。通信システム100は、管理サーバ15がプリンタ14を管理するために、外部仲介装置12及び内部仲介装置13を備えている。更に、管理サーバ15、外部仲介装置12、及び内部仲介装置13には、第1プログラム54、第2プログラム24、及びエージェントソフト34がそれぞれインストールされている。
[管理サーバ15の構成]
図1に示されるように、管理サーバ15は、CPU51と、メモリ52と、通信I/F(インタフェースの略称)55と、ユーザI/F56と、ディスプレイ511と、通信バス57とを備える。CPU51、メモリ52、通信I/F55、ユーザI/F56、及びディスプレイ511は、通信バス57と接続されている。
管理サーバ15は、情報処理装置の第一例である。CPU51は、コンピュータの第一例である。CPU51及びメモリ52は、コントローラ、第1コントローラの第一例である。通信I/F55は、第1通信インタフェースの一例である。
メモリ52は、ROM、RAM、EEPROM、HDD、USBメモリ等の記憶媒体、及びCPU51が備えるバッファ等である。メモリ52は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット17上のサーバ(図示せず)などからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体である。しかし、この種の電気信号は、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。この点については、後述の外部仲介装置12のメモリ22、内部仲介装置13のメモリ32、及びプリンタ14のメモリ42(図2参照)についても同様である。
メモリ52は、プログラム記憶領域58及びデータ記憶領域59を有している。プログラム記憶領域58は、OS53や第1プログラム54等のプログラムを記憶している。
OS53は、管理サーバ15の基本プログラムである。OS53は、例えば、MacOS(登録商標)、Windows(登録商標)、Linux(登録商標)、Android(登録商標)OS等のオペレーティングシステムである。
第1プログラム54は、OS53と協働して、通信I/F55を通じた管理サーバ15及び外部仲介装置12の間の通信を制御するプログラムである。第1プログラム54は、プログラムの一部又は第一例である。
第1プログラム54は、単一のプログラムであってもよいし、複数のプログラムモジュールの集合体であってもよい。この点については、第2プログラム24、エージェントソフト34、及び、制御プログラム44にも同様に当てはまる。
データ記憶領域59は、第1プログラム54の実行に必要なデータを記憶する。また、データ記憶領域59は、図3に示されるデータベース510を記憶する。
図3において、データベース510は、複数のレコード512Aを有する。各レコード512Aは、複数の項目を記録可能な複数のフィールド512Bを有する。複数の項目は、項目「デバイスID」、「GID」、「宛先情報」、「送信タイミング」、「エラー種別」、「今回のステータス情報」、及び「前回のステータス情報」である。また、複数のフィールド512Bは、デバイスIDフィールド、GIDフィールド、宛先情報フィールド、送信タイミングフィールド、エラー種別フィールド、今回のステータス情報フィールド、及び前回のステータス情報フィールドを含む。
各デバイスIDフィールドには、プリンタ14又は携帯端末装置16を識別する識別情報(デバイスIDとも称する)が記録される。デバイスIDは、例えば、プリンタ14のMACアドレス、IPアドレス又はシリアル番号、又は携帯端末装置16のMACアドレス、IPアドレス、電話番号、又はシリアル番号などである。各レコード512Aは、デバイスIDによって区別される。すなわち、1台のプリンタ14又は携帯端末装置16に対して1つのレコード512Aが生成される。以下、各レコード512Aに対応するプリンタ14を、対象のプリンタ14と称する場合がある。
各GIDフィールドには、対象のプリンタ14が通信可能な内部仲介装置13を示す識別情報が記録される。以下、この識別情報をGIDと称する場合がある。なお、GIDは、数字や文字、その他、内部仲介装置13を識別可能なものであれば、どのようなものがGIDとして用いられてもよい。この点についてはデバイスIDも同様である。なお、携帯端末装置16に対応するGIDフィールドに、GIDが記録される必要は特にない。
各宛先情報フィールドには、対象のプリンタ14と関連付けされた携帯端末装置16が有するメッセージの宛先情報が記録される。その宛先情報は、携帯端末装置16を識別可能な情報である。宛先情報は、電子メールアドレス又は電話番号等が用いられる。
送信タイミングフィールドには、メッセージの送信タイミングを示すタイミング情報が記録される。タイミング情報は、第1タイミング情報、又は第2タイミング情報である。第1タイミング情報は、対象となるプリンタ14でエラーが発生した直後であることを示す。第2タイミング情報は、対象となるプリンタ14でエラーが発生中であることを示す。
エラー種別フィールドには、エラー種別を示す種別情報が記録される。種別情報は、紙詰まり及び/又は用紙無しを示す。紙詰まりは、対象のプリンタ14においてシートが詰まっていることである。用紙無しは、対象のプリンタ14において画像記録に使用される用紙が無いことである。
なお、携帯端末装置16に対応する宛先情報フィールド、送信タイミングフィールド及びエラー種別フィールドには情報が記録される必要は特にない。
今回のステータス情報フィールド及び前回のステータスフィールドには、対象のプリンタ14の状態を示すステータス情報が記録される。ステータス情報は、例えば、「オンライン」、「オフライン」、「紙詰まり」及び「用紙無し」のいずれかを示す。「オンライン」は、対象のプリンタ14がLAN18に接続されていることを示す。「オフライン」は、対象のプリンタ14がLAN18に接続されていないことを示す。
より具体的には、今回のステータス情報フィールドには、図9のS55で取得されたステータス情報が記録される。前回のステータス情報フィールドには、前回のS55で取得されたステータス情報が記録される。
なお、携帯端末装置16に対応する前回のステータス情報フィールドに情報が記録される必要は特にない。
図1において、通信I/F55は、インターネット17及びファイアウォール19を通じて、各種情報又は各種データを外部仲介装置12と通信する。通信I/F55は、公衆回線111、及びインターネット17を通じて、各種情報又は各種データを携帯端末装置16と通信する。通信I/F55は、有線LAN I/Fや無線LAN I/Fである。
ユーザI/F56は、キーボードやマウスである。ユーザI/F56は、オペレータによる入力を受け付ける。ディスプレイ511は、CPU51から受信した各種画面データに基づく画像を表示する。
[外部仲介装置12の構成]
図1に示されるように、外部仲介装置12は、通信バス27により相互に通信可能なCPU21、メモリ22、通信I/F25、ユーザI/F26、及びディスプレイ211を備える。
外部仲介装置12は、情報処理装置の第二例である。CPU21は、コンピュータ及びコントローラの第二例である。CPU21及びメモリ22は、コントローラの第二例であり、第4コントローラの一例である。通信I/Fは、第4通信インタフェースの一例である。
メモリ22は、メモリ52と同様の記憶媒体、及びCPU21が備えるバッファである。メモリ22は、プログラム記憶領域28及びデータ記憶領域29を有している。プログラム記憶領域28は、OS23や第2プログラム24等のプログラムを記憶している。
OS23は、外部仲介装置12の基本プログラムである。第2プログラム24は、OS23と協働して、外部仲介装置12と、管理サーバ15又は内部仲介装置13の間の通信を制御するプログラムである。第2プログラム24は、プログラムの一部又はプログラムの第二例である。
データ記憶領域29は、プログラム記憶領域28内のプログラムの実行に必要なデータを記憶する。また、データ記憶領域29は、図4(A)に示されるデータベース210を記憶する。
図4(A)において、データベース210は、複数のレコードを有する。各レコードは、複数の項目を記録可能な複数のフィールドを有する。複数の項目は、項目「デバイスID」、「GID」、及び「ステータス情報」である。また、複数のフィールドは、デバイスIDフィールド、GIDフィールド、及びステータス情報フィールドを含む。
デバイスIDフィールド、及びGIDフィールドには、データベース510のデバイスIDフィールド、及びGIDフィールドと同様の情報が記録される。
ステータス情報フィールドには、データベース510の今回のステータス情報フィールドと同様の情報が記録される。
図1において、通信I/F25は、通信インタフェースであり、ファイアウォール19及びインターネット17を通じて、管理サーバ15又は内部仲介装置13と各種情報又は各種データを通信する。
ユーザI/F26は、外部仲介装置12のオペレータによる入力を受け付ける。ディスプレイ211は、CPU51から受信する各種画面データに基づく画像を表示する。
[内部仲介装置13の構成]
図1に示されるように、内部仲介装置13は、通信バス37により相互に通信可能なCPU31、メモリ32、通信I/F35、ユーザI/F36、及びディスプレイ311を備える。
内部仲介装置13は、情報処理装置の第三例である。CPU31は、コンピュータの第三例である。CPU31及びメモリ32は、コントローラの第三例であり、第4コントローラの一例である。通信I/Fは、第4通信インタフェースの一例である。
メモリ32は、メモリ52と同様の記憶媒体、及びCPU31が備えるバッファ等である。メモリ32は、プログラム記憶領域38及びデータ記憶領域39を有している。プログラム記憶領域38は、OS33及びエージェントソフト34等のプログラムを記憶している。
OS33は、オペレーティングシステムであり、内部仲介装置13の基本プログラムである。エージェントソフト34は、OS33と協働して、通信I/F35を通じた内部仲介装置13及び外部仲介装置12の間の通信を制御するプログラムである。エージェントソフト34は更に、内部仲介装置13、及び、内部仲介装置13が属するLAN18に接続される各プリンタ14の間の通信を制御するプログラムである。エージェントソフト34は、プログラムの一部又はプログラムの第三例である。
データ記憶領域39は、プログラム記憶領域38内のプログラムの実行に必要なデータを記憶する。また、データ記憶領域39は、図4(B)に示されるデータベース310を記憶する。
図4(B)において、データベース310は、内部仲介装置13とLAN18を通じて通信可能な各プリンタ14についての複数のレコードを有する。データベース310は、各レコードが項目「GID」のフィールドを含まなくともよい。
図1において、通信I/F35は、通信インタフェースであり、ファイアウォール110及びインターネット17を通じて外部仲介装置12と各種情報又は各種データを通信する。通信I/Fは更に、LAN18に接続されている各プリンタ14と、各種情報又は各種データを通信する。
ユーザI/F36は、キーボードやマウスであり、内部仲介装置13のオペレータによる入力を受け付ける。ディスプレイ311は、CPU31により生成される各種画面データに基づく画像を表示する。
[プリンタ14の構成]
図2(A)に示されるように、各プリンタ14は、通信バス48により相互に通信可能に接続されたCPU41、メモリ42、通信I/F45、電源回路46、及び画像記録エンジン47を備える。各プリンタ14は、携帯可能なモバイルプリンタであってもよいし、据置型のプリンタであってもよい。
プリンタ14は、デバイスの一例である。CPU41及びメモリ42は、第2コントローラの一例である。通信I/F45は、第2通信インタフェースの一例である。
メモリ42は、プログラム記憶領域49及びデータ記憶領域410を有している。プログラム記憶領域49は、OS43や制御プログラム44等のプログラムを記憶している。データ記憶領域410は、プログラムの実行に必要なデータを記憶する。また、データ記憶領域410は、メモリ42を備えるプリンタ14が有するデバイスIDを記憶する。
OS43は、プリンタ14の基本プログラムである。制御プログラム44は、OS43と協働して、画像記録エンジン47に画像記録を実行させる。制御プログラム44は更に、通信I/F45を通じた内部仲介装置13との通信を制御するプログラムでもある。制御プログラム44は、単一のプログラム、又は複数のプログラムモジュールの集合体である。
通信I/F45は、LAN18を通じて内部仲介装置13と、各種情報又は各種データを通信する。通信I/F45は、LAN18を通じて携帯端末装置16と各種情報又は各種データを通信可能であってもよい。
電源回路46には、プリンタ14に備えられたバッテリ(不図示)が出力する電圧を、画像記録エンジン47の動作に適した電圧(例えば24V)に変換して画像記録エンジン47に供給する。
画像記録エンジン47は、CPU41の制御下で、電源回路46が供給した電圧で動作して画像記録を実行する。具体的に、画像記録エンジン47は、インクジェット記録技術、熱転写技術、又は電子写真技術等により、シートに画像を記録する。
[端末装置11の構成]
図2(B)に示されるように、端末装置11は、通信バス68により相互に通信可能なCPU61、メモリ62、通信I/F65、ユーザI/F66、及びディスプレイ67を備える。
メモリ62は、メモリ52と同様の記憶媒体、及びCPU61が備えるバッファである。メモリ62は、プログラム記憶領域69及びデータ記憶領域610を有している。プログラム記憶領域69は、OS63及びブラウザ64等のプログラムを記憶している。
OS63は、オペレーティングシステムであり、端末装置11の基本プログラムである。ブラウザ64は、OS63と協働して、通信I/F65を通じた管理サーバ15との通信を制御するプログラムである。ブラウザ64は更に、インターネット17上の管理サーバ15にHTML形式の画面データの送信を要求し、管理サーバ15から画面データを受信する。ブラウザ64は、受信した画面データに基づく画像をディスプレイ67に表示させる(図11、図12を参照)。画面データは、各種オブジェクトを含む場合がある。「オブジェクト」とは、オペレータがユーザI/F66を操作することによって選択可能な画像である。
図2(B)において、通信I/F65は、通信インタフェースであり、インターネット17を通じて管理サーバ15と、各種情報又は各種データを通信する。
ユーザI/F66は、キーボードやマウスであり、端末装置11のオペレータによる入力操作を受け付ける。ディスプレイ67は、CPU61により生成される各種画面データに基づく画像を表示する。
[携帯端末装置16の構成]
図2(C)に示されるように、携帯端末装置16は、スマートフォンやタブレットなどであり、通信バス710により相互に通信可能なCPU71、メモリ72、通信I/F76、及びユーザI/F77を備える。
CPU71及びメモリ72は、第3コントローラの一例である。通信I/F76は、第3通信インタフェースの一例である。
メモリ72は、メモリ52と同様の記憶媒体、及びCPU71が備えるバッファである。メモリ72は、プログラム記憶領域711及びデータ記憶領域712を有している。プログラム記憶領域711は、OS73、MDMプログラム74及びSMSアプリ75等のプログラムを記憶している。データ記憶領域712は、プログラムの実行に必要なデータを記憶する。また、データ記憶領域712は、メモリ72を備える携帯端末装置16が有するデバイスIDを記憶する。
OS73は、携帯端末装置16の基本プログラムである。OS73は、例えば、Android(登録商標) OS、iOS(登録商標)、Windows Phone(登録商標) Operating System等であってもよい。
MDMプログラム74は、OS63と協働して、通信I/F76を通じた管理サーバ15との通信を制御するプログラムである。SMSアプリ75は、OS63と協働して、通信I/F76を通じたメッセージデータ(具体的には、ショートメッセージ)の送受信を制御するアプリケーションプログラムである。
図2(C)において、通信I/F76は、公衆回線111、及びインターネット17を通じて、各種情報又は各種データを管理サーバ15と通信する。なお、携帯端末装置16は、LAN18及びインターネット17を通じて、各種情報又は各種データを管理サーバ15と通信する通信I/Fを備えていてもよい。
ユーザI/F77は、タッチパネル等を備え、携帯端末装置16の利用者による入力操作を受け付けるとともに、CPU71により生成される各種画面データに基づく画像を表示する。
[文言の定義]
本明細書では、基本的に、プログラムに記述された命令に従ったCPUの処理を説明する。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」、「設定」等の処理は、CPUの処理を表している。CPUによる処理は、OSなどのコントローラを介したハードウェア制御も含む。なお、「取得」は要求を必須とはしない概念で用いる。すなわち、CPUが要求することなくデータを受信するという処理も、「CPUがデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。「命令」「応答」「要求」等の処理は、「命令」「応答」「要求」等を示す情報を通信することにより行われる。また、「命令」「応答」「要求」等の文言を、「命令」「応答」「要求」等を示す情報そのものという意味で記載してもよい。
また、プログラムに記述された命令に従ったCPUの処理を、省略した文言で記載することがある。例えば、「CPU51が行う」「第1プログラム54が行う」「管理サーバ15が行う」のように記載することがある。CPU21、31等についても同様である。また、通信I/F、ユーザI/Fを通じてプログラムが情報の入出力を行うことを、省略した文言で記載することがある。例えば、「CPU51が受信する」、「プログラム54が送信する」、「管理サーバ15が取得する」のように記載することがある。
また、CPUによる、情報Aは事柄Bであることを示しているか否かを判断する処理を、「情報Aから、事柄Bであるか否かを判断する」のように概念的に記載することがある。CPUによる、情報Aが事柄Bであることを示しているか、事柄Cであるかを示しているかを判断する処理を、「情報Aから、事柄Bであるか事柄Cであるかを判断する」のように概念的に記載することがある。
また、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
また、「データ」及び「情報」は、形式(例えば、テキスト形式、バイナリ形式、フラグ形式等)がコンピュータ毎に変更されたとしても、同一の意味内容と認識される限り、同一のデータ及び情報として取り扱われる。例えば、「2つ」であることを示す情報が、あるコンピュータではASCIIコードで”0x32”というテキスト形式の情報として保持され、別のコンピュータでは二進数表記で”10”というバイナリ形式の情報として保持されてもよい。
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
また、本明細書中の「に応じて」は、当該文字列の前に記載された条件が満たされた場合に、当該文字列の後に記載された処理が実行されることを示す。なお、処理が実行されるタイミングは、条件が満たされた後であればよく、当該条件が満たされた直後である必要は必ずしもない。
[通信システム100における通信]
以下、図5から図10を参照して、第1プログラム54、第2プログラム24、エージェントソフト34、制御プログラム44、ブラウザ64、MDMプログラム74、及びSMSアプリ75に基づく処理について説明する。
[初期設定処理]
図5を参照して、管理サーバ15(MDMシステム)において携帯端末装置16の管理を開始するための初期設定処理について説明する。初期設定処理が完了することで、管理サーバ15は携帯端末装置16の管理を開始することが可能となる。なお、初期設定処理は公知技術であるため、以下の説明では、初期設定処理の要部を簡潔に説明する。
携帯端末装置16の利用者は、MDMカスタマの各支店等に属する者であって、プリンタ14の利用者でもある。携帯端末装置16において、MDMプログラム74は、初回起動時に、公衆回線111及びインターネット17を通じて管理サーバ15に要求RQ11を送信する(S11)。要求RQ11は、初期設定画面の画面データのURLを含み、当該画面データを携帯端末装置16に送信するよう管理サーバ15に指示するコマンドである。
管理サーバ15において、第1プログラム54は、要求RQ11で指定された画面データを、要求RQ11に対する応答RS11として携帯端末装置16に送信する(S12)。
携帯端末装置16において、MDMプログラム74は、応答RS11を受信したことに応じて、画面データに基づく初期設定画面をユーザI/F77に表示する(S13)。利用者は、ユーザI/F77に表示された初期設定画面を参照して、ユーザI/F77を操作して予め定められている情報を入力する。情報は、携帯端末装置16のデバイスIDである。MDMプログラム74は、ユーザI/F77の操作を受け付けたことに応じて、デバイスID、宛先情報等を含む要求RQ12を生成し、生成した要求RQ12を管理サーバ15に送信する(S15)。要求RQ12は、携帯端末装置16を管理サーバ15に管理することを要求するコマンドである。
管理サーバ15において、第1プログラム54は、要求RQ12を受信したことに応じて、DB更新処理を実行する(S16)。S16で、第1プログラム54は、受信した要求RQ12内のデバイスID用にレコード512A(図3参照)をデータベース510に作成する。第1プログラム54は、作成したレコード512Aにおいて、デバイスIDフィールドに、要求RQ12内のデバイスIDを記録する。
次に、第1プログラム54は、開始通知処理を実行する(S17)。S17で、第1プログラム54は、要求RQ12に含まれていたデバイスIDを登録が完了し、携帯端末装置16の管理を開始したことを示す応答RS12を生成する。第1プログラム54は、応答RS12を、携帯端末装置16に送信する(S18)。
[デバイス登録処理]
図6を参照して、プリンタ14のデバイスIDをデータベース510、210に登録する処理(以下、デバイス登録処理と称する)について説明する。デバイス登録処理が完了することで、管理サーバ15はプリンタ14の管理を開始することが可能となる。
まず、内部仲介装置13において、エージェントソフト34は、LAN18に接続されている全てのプリンタ14に要求RQ21を送信する(S21)。要求RQ21は、プリンタ14にデバイスIDの返信を指示するコマンドである。
エージェントソフト34は、例えば、自身の初回起動時に初期設定が実行されたことに応じて、内部仲介装置13の担当者が入力した登録指示に従ってS21を実行する。登録指示は、管理対象のプリンタ14を通信システム100に登録するための指示である。エージェントソフト34は、他にも、第1プログラム54又は第2プログラム24から送信された登録指示を受信したことに応じて、S21を実行してもよい。なお、登録指示は、すでに稼働している通信システム100にデバイスIDを追加して登録することを示す指示であってもよい。「担当者」とは、例えば、各支店等においてプリンタ14の管理を行う者であって、端末装置11を操作するオペレータとは相違する者である。なお、外部仲介装置12は、各種情報及び各種データを、内部仲介装置13から受信した各要求に対する応答に含めて内部仲介装置13に送信する。
LAN18に接続された各プリンタ14は、要求RQ21を受信する(S21)。各プリンタ14において、制御プログラム44は、プリンタ14が有するデバイスIDをデータ記憶領域410から取得し、このデバイスIDを含む応答RS21を生成する(S22)。制御プログラム44は、生成した応答RS21を内部仲介装置13に送信する(S23)。
エージェントソフト34は、各プリンタ14の応答RS21を受信したことに応じて、DB更新処理を実行する(S24)。S24で、エージェントソフト34は、各応答RS21に含まれるデバイスID毎にレコードをデータベース310(図4(B)参照)に作成する。エージェントソフト34は、作成したレコードにおいて、デバイスIDに、応答RS21に含まれるデバイスIDを記録する(図4(B)参照)。
次に、エージェントソフト34は、送信指示が入力されたか否かを判断する(S25)。具体的には、エージェントソフト34は、各応答RS21を受信したことに応じて、各応答RS21内のデバイスIDをディスプレイ311に表示させる。担当者は、ディスプレイ311の画面を参照して、管理対象のプリンタ14のデバイスIDを認識する。担当者は、管理対象のプリンタ14のデバイスIDをユーザI/F36を用いて選択した後、送信指示を内部仲介装置13に入力する。一方、担当者は、表示中の全デバイスIDが管理対象のプリンタ14でないと判断した場合、ユーザI/F35を操作して終了指示を内部仲介装置13に入力する。
エージェントソフト34は、送信指示が入力されていないと判断すると(S25:No)、デバイス登録処理を終了する。一方、エージェントソフト34は、送信指示が入力されたと判断すると(S25:Yes)、選択されたデバイスIDと、メモリ32内のGIDとを含む要求RQ22を外部仲介装置12に送信する(S26)。
なお、複数のデバイスIDが選択された場合、選択されたデバイスID及びGIDを1組含む要求RQ22が、選択されたデバイスIDの台数分繰り返し送信されてもよい。他にも、選択された全デバイスIDと、GIDとを含む1つの要求RQ22が外部仲介装置12に送信されてもよい。この点に関しては、他の要求についても同様に当てはまる。
外部仲介装置12において、第2プログラム24は、要求RQ22を受信したことに応じて、DB更新処理を実行する(S27)。S27では、第2プログラム24は、受信した要求RQ22内のデバイスID及びGIDがデータベース210に既に登録されているか否かを判断する。第2プログラム24は、未登録と判断すると、未登録のデバイスID毎にレコードをデータベース210に作成する。第2プログラム24は、作成したレコードにおいて、デバイスID及びGIDのフィールドに、要求RQ22内のデバイスID及びGIDをそれぞれ記録する(図4(A)参照)。
なお、図6には示されていないが、第2プログラム24は、要求RQ22を受信したことを示す応答を内部仲介装置13に送信する。これに限らず、第2プログラム24は、データベース210に登録したデバイスIDを含む応答を、要求RQ22に対する応答として内部仲介装置13に送信してもよい。エージェントソフト34は、この応答に含まれるデバイスIDをディスプレイ311に表示させる。これにより、担当者は、外部仲介装置12のデータベース210にデバイスIDが登録されたことを確認できる。
また、S27で追加されたレコードにおいて、ステータス情報のフィールドには、プリンタ14の管理が始まっていないことを示す「待機状態」(図示せず)が登録される。レコードに「待機状態」(図示せず)が登録されている場合、レコードに対応するプリンタ14は管理サーバ15のデータベース510には未登録であり、通信システム100の管理対象外である。なお、プリンタ14が管理対象となると、対応するレコードの「ステータス情報」が「待機状態」から「管理状態」(図示せず)に変更される。
また、第2プログラム24は、S27で、要求RQ22内のデバイスID等が登録済みであると判断すると、その旨を示す応答を内部仲介装置13に送信する。
次に、第2プログラム24は、要求RQ23を生成し、生成した要求RQ23を管理サーバ15に送信する(S29)。要求RQ23は、データベース210に追加された各デバイスID、及びGIDとを含む。要求RQ23は、管理サーバ15にデータベース510の更新を指示するコマンドである。
管理サーバ15において、第1プログラム54は、要求RQ23を受信したことに応じて、DB更新処理を実行する(S210)。S210において、第1プログラム54は、受信した要求RQ23内のデバイスID毎にレコード512Aをデータベース510(図3参照)に作成する。第1プログラム54は、作成した各レコード512Aにおいて、デバイスIDフィールド及びGIDフィールドに、要求RQ23内のデバイスID及びGIDをそれぞれ登録する(図3参照)。S210は、識別情報取得処理の一例である。
次に、第1プログラム54は、開始通知処理を実行する(S211)。S211で、第1プログラム54は、要求RQ23内のデバイスIDの登録が完了し、プリンタ14の管理を開始したことを示す応答RS23を生成する。第1プログラム54は、応答RS23をインターネット17を通じて外部仲介装置12に送信する(S212)。
外部仲介装置12において、第2プログラム24は、応答RS23を受信したことに応答して、管理開始処理を実行する(S213)。具体的には、S213で、第2プログラム24は、図4(A)のデータベース210において、ステータス情報のフィールドを「待機状態」から「管理中」(図示せず)に変更する。
次に、第2プログラム24は、内部仲介装置13が定期的に送信する要求に対して、データベース210においてステータス情報のフィールドが「管理中」(図示せず)であるデバイスIDと、デバイスIDに対応するGUIを含む応答RS22を生成し、内部仲介装置13に送信する(S214)。
[ステータス登録処理]
図7を参照して、データベース510、210にプリンタ14のステータス情報を登録する処理(以下、ステータス登録処理と称する)について説明する。
図7(A)において、内部仲介装置13のエージェントソフト34は、定期的なステータス取得タイミングを待機する(S31:No)。ステータス取得タイミングは、例えば、60分毎である。しかし、これに限らず、ステータス取得タイミングは、12時間毎や24時間毎等でもよい。ステータス取得タイミングは、プリンタ14のバッテリにおける電力消費等を考慮して適切に定められる。
エージェントソフト34は、ステータス取得タイミングになったと判断すると(S31:Yes)、LAN18に接続されているプリンタ14に要求RQ32を送信する(S32)。なお、要求RQ32は、プリンタ14にステータス情報の返信を指示するコマンドである。なお、要求RQ32は、1つのデバイスIDを含んでいてもよい。この場合、デバイスIDで特定されるプリンタ14のみが要求RQ32に応答する。また、この場合、エージェントソフト34は、デバイスIDを変更しつつ要求RQ32を繰り返し送信する。また、要求RQ32はブロードキャストコマンドであってもよい。この場合、LAN18に接続されている全てのプリンタ14が要求RQ32に応答する。
各プリンタ14において、制御プログラム44は、要求RQ32を受信したことに応じて、応答生成処理を実行する(S33)。S33では、制御プログラム44は、ステータス情報として「オンライン」、「紙詰まり」及び「用紙無し」のうち、少なくともいずれか1つを含む応答RS32を生成する。なお、各プリンタ14は、シートがプリンタ14内で詰まっていること及びシートがプリンタ14内に無いことを検出するセンサを備える。制御プログラム44は、これらセンサの出力信号に基づき、「紙詰まり」又は「用紙無し」を含む応答RS32を生成する。制御プログラム44は、ステータス情報が「紙詰まり」や「用紙無し」で無い場合には、応答RS32に「オンライン」のステータス情報を含める。なお、要求RQ32にデバイスIDが含まれる場合、応答RS32は、プリンタ14のデバイスIDを必ずしも含む必要はない。
制御プログラム44は、応答RS32を内部仲介装置13にLAN18を通じて送信する(S34)。S34は、第1送信処理の一例である。なお、制御プログラム44は、プリンタ14の主電源がオフである場合、プリンタ14がLAN18に接続されていない場合には、要求RQ32に対する応答RS32を送信できない。
内部仲介装置13において、エージェントソフト34は、要求RQ32の送信から所定時間が経過後にDB更新処理を実行する(S35)。エージェントソフト34は、所定時間が経過するまでの間にプリンタ14から受信した各応答RS32から、ステータス情報を取得する。エージェントソフト34は、取得したステータス情報を、データベース310において、応答RS32の送信元であるプリンタ14に対応するフィールドであり且つステータス情報のフィールドに登録する。一方、エージェントソフト34は、データベース310において、応答RS32を送信しなかったプリンタ14に対応するフィールドであり且つステータス情報のフィールドには「オフライン」のステータス情報を登録する。
次に、エージェントソフト34は、外部仲介装置12への要求の送信タイミングになったか否かを判断する(S36)。エージェントソフト34は、送信タイミングになっていないと判断すると(S36:No)、処理をS31に戻す。一方、エージェントソフト34は、送信タイミングになったと判断すると(S36:Yes)、要求生成処理を実行する(S37)。S37で、エージェントソフト34は、データベース310(図4(B)参照)の各レコードからデバイスID及びステータス情報の組みを取得する。S37では更に、エージェントソフト34は、自身のGIDと、デバイスID及びステータス情報の組みを含む要求RQ33を生成する。要求RQ33は、要求RQ33に含まれるステータス情報をデータベース210に登録することを要求するコマンドである。
次に、エージェントソフト34は、S37で生成した要求RQ33を外部仲介装置12に送信する(S38)。
外部仲介装置12において、第2プログラム24は、要求RQ33を受信したことに応じて、ステータス取得処理及びDB更新処理を実行する(S39)。第2プログラム24は、ステータス取得処理で、受信した要求RQ33のそれぞれから、GIDと、デバイスID及びステータス情報の組みを取得する。第2プログラム24は、DB更新処理において、データベース210から、取得したGID及びデバイスIDと一致するレコードを特定する。第2プログラム24は、特定したレコードにおけるフィールドであり且つステータス情報のフィールドにステータス情報を登録する。S39は、第2取得処理の一例である。
次に、第2プログラム24は、ステータス情報をデータベース210に登録したことを示す応答RS33を生成し、内部仲介装置13に送信する(S310)。
ステータス登録処理により、外部仲介装置12のデータベース210と、管理サーバ15のデータベース510とには、各内部仲介装置13と通信可能な各プリンタ14のステータス情報が登録される。
[端末装置11による宛先設定]
図8を参照して、端末装置11により実行される宛先設定について説明する。
図8において、端末装置11は、オペレータにより操作される。オペレータは、MDMカスタマの各支店で使用される各プリンタ14を管理する。オペレータは、CPU61がブラウザ64を実行中にディスプレイ67の表示画像を参照しつつ、ユーザI/F66を操作して、管理サーバ15に予め割り当てられているURLを指定する。
ブラウザ64は、指定されたURLを受け付ける(S41)。URLは、各プリンタ14の管理画面を示す画面データ(HTMLデータ)を特定する情報である。その後、ブラウザ64は、要求RQ41を生成する。要求RQ41は、指定されたURLを含み、URLで特定される画面データの送信を指示するコマンドである。次に、ブラウザ64は、要求RQ41を管理サーバ15に送信する(S42)。
管理サーバ15において、第1プログラム54は、要求RQ41で指定された画面データを、要求RQ41に対する応答RS41として端末装置11に送信する(S43)。S43は、画面データ送信処理の一例である。
端末装置11において、ブラウザ64は、応答RS41を受信したことに応じて、画面データに基づく初期画面67Aを、図11(A)に示すようにディスプレイ67に表示する(S44)。図11(A)において、初期画面67Aは、プリンタ14又は携帯端末装置16毎のレコード81を含む。各レコード81は、複数の項目毎のフィールド82を含む。複数のフィールド82は、デバイスIDフィールド、宛先情報フィールド及びステータス情報フィールド等を含む。デバイスIDフィールドには、プリンタ14又は携帯端末装置16のデバイスIDが記録される。管理サーバ15は、プリンタ14のエラー発生時に、設定された携帯端末装置16にメッセージを送信する。宛先情報フィールドには、メッセージの送信先となる携帯端末装置16のデバイスIDが記録可能である。ステータス情報フィールドには、プリンタ14又は携帯端末装置16のステータス情報が記録される。
なお、オペレータが理解し易いように、初期画面67Aは、デバイスIDに対応づけられたデバイスの型番及びデバイス名のフィールド82を含むことも可能である。デバイスの型番はプリンタ14の型番を示し、デバイス名は、プリンタ14に任意に割り当てられた名前である。初期画面67Aは、更に、各デバイスIDに関連づけられた指定用オブジェクト83を含む。指定用オブジェクト83は、初期画面67Aにおいて、各レコード81に示されたデバイスID、デバイスの型番、及びデバイス名等を囲むエリアに配置されている。なお、各指定用オブジェクト83は、図11(A)において破線で1つのレコード81を囲む形で示されている。
図11(A)において、初期画面67Aは、更に、複数のフィルタリング条件を含む。画面は、フィルタリング条件を指定可能な指定用オブジェクトを更に含む。指定用オブジェクトは、各フィルタリング条件の横に並べられたチェックボックスである。指定用オブジェクトをオペレータが操作したことに応じて、ブラウザ64は、対応するフィルタリング条件に合致するレコードを表示する。
指定用オブジェクト83の1つをオペレータが操作したことをブラウザ64が受け付ける。このとき、オペレータは、プリンタ14の指定用オブジェクト83を操作する。ブラウザ64は、プリンタ14に対する各種設定画面67B(図11(B)参照)をディスプレイ67に表示するとともに、プリンタ14のデバイスIDを取得する。図11(B)において、各種設定画面67Bは、指定用オブジェクト83に対応するデバイスIDを有するプリンタ14に関する情報84と、宛先情報設定に関するオブジェクト85とを含む。オブジェクト85をオペレータが操作したことに応じて、ブラウザ64は、宛先情報設定画面67C(図12参照)を表示する。
図12において、宛先情報設定画面67Cは、宛先用オブジェクト91と、送信用オブジェクト92A、92Bと、エラー用オブジェクト93A、93Bと、を含む。オペレータによるユーザI/F66による宛先用オブジェクト91の指定をブラウザ64が受け付けると、宛先用オブジェクト91は、文字入力を受け付けることが可能になる。宛先用オブジェクト91には、オペレータの操作に応じた文字及び記号が設定される。ブラウザ64は、オペレータの操作に応じた文字又は記号の列を取得する。ここで、文字及び記号の列は、携帯端末装置16が有する宛先情報(電話番号や電子メールアドレス等)である。より詳細には,携帯端末装置16は、オペレータにより操作された指定用オブジェクト83に対応するプリンタ14の利用者により携帯されている。また、携帯端末装置16は、支店から利用者に配布されたものでもよい。
なお、宛先情報設定画面67Cにおいて、宛先用オブジェクト91の周囲には、受け付け可能な宛先情報の制約条件等が示されている。
ブラウザ64は、ユーザI/F66による送信用オブジェクト92Aの指定をブラウザ64が受け付けた場合に、第1タイミング情報(即ち、「エラー発生直後のみ」を示す情報)を取得する。ブラウザ64は、ユーザI/F66による送信用オブジェクト92Bの指定をブラウザ64が受け付けた場合に、第2タイミング情報(即ち、「エラー発生中」を示す情報)を取得する。なお、ブラウザ64は、送信用オブジェクト92A、92Bのいずれか一方の指定を受け付けた場合には、送信用オブジェクト92A、92Bのいずれか他方の指定を受け付けない。
ブラウザ64は、ユーザI/F66によるエラー用オブジェクト93Aの指定を受け付けた場合、エラー種別情報の一つ(即ち、「紙詰まり」を示す情報)を取得する。ブラウザ64は、ユーザI/F66によるエラー用オブジェクト93Bの指定を受け付けた場合、エラー種別情報の他の一つ(即ち、「用紙無し」を示す情報)を取得する。なお、ブラウザ64は、エラー用オブジェクト93A、93Bのいずれか一方、又は両方の指定を受け付けることが可能である。
図8において、端末装置11のブラウザ64は、上記のようにして、デバイスID、宛先情報、第1タイミング情報及び第2タイミング情報のいずれか一方、及びエラー種別情報を、メッセージの送信条件として取得する(S45)。次に、ブラウザ64は、要求RQ42を生成し、生成した要求RQ42を管理サーバ15に送信する(S46)。要求RQ42は、プリンタ14のデバイスID、宛先情報、送信タイミング情報、及びエラー種別情報を含み、データベース510の更新を管理サーバ15に要求するコマンドである。
管理サーバ15において、第1プログラム54は、要求RQ42を受信したことに応じて、DB更新処理を実行する(S47)。S47では、第1プログラム54は、要求RQ42から、メッセージの送信条件を取得する。第1プログラム54は更に、データベース510(図3参照)において、取得したデバイスIDと一致するレコード512Aを特定する。第1プログラム54は、特定したレコード512Aにおける宛先情報フィールド、送信タイミングフィールド並びにエラー種別フィールドに、取得した宛先情報、第1タイミング情報及び第2タイミング情報のいずれか一方、並びにエラー種別をそれぞれ記録する。この処理により、第1プログラム54は、携帯端末装置16の宛先情報をプリンタ14のデバイスIDに関連付けて、携帯端末装置16及びプリンタ14をグループ化する。即ち、S47は、宛先記憶処理、及びグループ化処理の一例である。
次に、第1プログラム54は、データベース510の更新が完了したことを示す応答RS42を生成し端末装置11に送信する(S48)。
[メッセージ送信処理]
図9を参照して、携帯端末装置16へのメッセージ送信処理について説明する。
図9において、管理サーバ15の第1プログラム54は、定期的なステータス取得タイミングを待機する(S51:No)。ステータス取得タイミングは、例えば、30分毎である。しかし、これに限らず、ステータス取得タイミングは、1時間毎や2時間毎等でもよい。ステータス取得タイミングは、管理サーバ15及び外部仲介装置12が通常バッテリ駆動でないことから、S31のステータス取得タイミングよりも短い時間間隔でよい。
第1プログラム54は、ステータス取得タイミングになったと判断すると(S51:Yes)、外部仲介装置12に要求RQ51を送信する(S52)。要求RQ51は、外部仲介装置12にステータス情報の返信を指示するコマンドである。S52は、要求送信処理の一例である。
外部仲介装置12において、第2プログラム24は、要求RQ51を受信したことに応じて、応答生成処理を実行する(S53)。具体的に、第2プログラム24は、データベース210の各レコードから、GID、デバイスID及びステータス情報の組みを取得する。次に、第2プログラム24は、応答RS51を生成する。応答RS51は、1組のGID、デバイスID及びステータス情報だけ含んでいてもよいし、全組みのGID、デバイスID及びステータス情報を含んでもよい。応答RS51に1組だけを含める場合には、第2プログラム24は、GID、デバイスID及びステータス情報の組数分の応答RS51を生成する。なお、この点に関しては、他の応答についても同様に当てはまる。
第2プログラム24は、S53で生成した応答RS51を管理サーバ15に送信する(S54)。S54は、第2送信処理の一例である。
管理サーバ15において、第1プログラム54は、応答RS51を受信したことに応じて、ステータス取得処理及びDB更新処理を実行する(S55)。第1プログラム54は、ステータス取得処理で、受信した応答RS51のそれぞれから、GIDと、デバイスID及びステータス情報の組みを取得する。第1プログラム54は、DB更新処理において、データベース510から、取得したGID及びデバイスIDと一致するレコード512A(図3参照)を特定する。なお、S55は、第1取得処理の一例である。
第1プログラム54は、特定したレコード512Aにおける今回のステータス情報フィールドに既に記録されているステータス情報を、前回のステータス情報フィールドに記録する。なお、前回のステータス情報フィールドに記録されたステータス情報は、前回のステータス取得処理で取得されたステータス情報(以下、前回のステータス情報と称する場合がある)である。
第1プログラム54は更に、特定したレコード512Aにおける今回のステータス情報フィールドに、今回のステータス取得処理で取得されたステータス情報(以下、今回のステータス情報と称する場合がある)を記録する。
DB更新処理により、外部仲介装置12のデータベース210と、管理サーバ15のデータベース510とには、各内部仲介装置13と通信可能な各プリンタ14のステータス情報が記録されることになる。
次に、第1プログラム54は、今回のステータス情報の送信元のプリンタ14にエラーが発生しているか否かを判断する(S56)。具体的には、第1プログラム54は、今回のステータス情報が第1ステータス情報であるか否かを判断する。第1ステータス情報は、「紙詰まり」及び「用紙無し」のいずれか一方を示すステータス情報である。それに対し、「オンライン」及び「オフライン」のいずれか一方を示すステータス情報は第2ステータス情報である。
第1プログラム54は、今回のステータス情報が第1ステータス情報でないと判断した場合、送信元のプリンタ14にエラーが発生していないとして、図9の処理を終了する。一方、第1プログラム54は、今回のステータス情報が第1ステータス情報であると判断した場合、送信元プリンタ14にエラーが発生しているとして、処理をS57に進める。
S57では、第1プログラム54は、送信判断処理を実行する。即ち、第1プログラム54は、送信元のプリンタ14にメッセージを送信するか否かを判断する。以下、図10の参照して、S57の詳細な処理手順を説明する。
図10において、第1プログラム54は、データベース510(図3参照)において、特定したレコード512Aにおける送信タイミングフィールドに、「エラー発生中」を示す第2タイミング情報が記録されているか否かを判断する(S61)。第1プログラム54は、第2タイミング情報が記録されていないと判断した場合、処理をS65に進める。第1プログラム54は、第2タイミング情報が記録されていると判断した場合、処理をS62に進める。
S62で、第1プログラム54は、同じレコード512Aにおける今回のステータス情報フィールドに、「紙詰まり」及び「用紙無し」のいずれか一方を示す第1ステータス情報が記録されているか否かを判断する。第1プログラム54は、第1ステータス情報が記録されていると判断した場合、フラグ情報をオンに設定する(S63)。一方、第1プログラム54は、第1ステータス情報が記録されていないと判断した場合、フラグ情報をオフに設定する(S64)。フラグ情報は、送信判断処理の結果を示す情報である。具体的には、オンのフラグ情報は、メッセージを送信することを示し、オフのフラグ情報は、メッセージを送信しないことを示す。S64が実行される場合、エラーが発生していないオンライン又は、オフラインである第2ステータス情報が今回のステータス情報フィールドに記録されているため、メッセージを送信しないオフのフラグ情報が設定される。
S65で、第1プログラム54は、S61と同じレコード512Aにおける今回のステータス情報フィールドに、第1ステータス情報が記録されているか否かを判断する。第1プログラム54は、第1ステータス情報が記録されていないと判断した場合、処理をS68に進め、フラグ情報をオフに設定する(S68)。S68が実行される場合、エラーが発生していないオンライン又は、オフラインである第2ステータス情報が今回のステータス情報フィールドに記録されているため、メッセージを送信しないオフのフラグ情報が設定される。一方、第1プログラム54は、第1ステータス情報が記録されていると判断した場合、処理をS66に進める。
S66で、第1プログラム54は、同じレコード512Aにおける前回のステータス情報フィールドに、第2ステータス情報が記録されているか否かを判断する。第1プログラム54は、第2ステータス情報が記録されていると判断した場合、フラグ情報をオンに設定する(S67)。一方、第1プログラム54は、第2ステータス情報が記録されていないと判断した場合、S68を実行する。
ここで、図10の処理の具体例を説明する。この具体例は、宛先情報設定画面67C(図12参照)を通じて、送信用オブジェクト92B(即ち、「エラー発生中」)が設定され、且つエラー用オブジェクト93A、93Bの少なくとも一方(即ち、「紙詰まり」及び「用紙無し」の少なくとも一方)が設定された場合である。このように設定された場合に、第1プログラム54は、S55(図9を参照)で第1ステータス情報(即ち、「紙詰まり」又は「用紙無し」を示すステータス情報)を取得した場合に、S61でYES(「エラー発生中」を示す第2タイミング情報が設定されている場合)で、S62でYESであるため、S63でフラグ情報をオンに設定する。この処理が繰り返される場合は、プリンタ14が図7のS33で第1ステータス情報を繰り返し送信している場合であり、図10の処理によりフラグ情報がオンに設定され、後述のS510で管理サーバ15から携帯端末装置16へとメッセージデータが繰り返し送信されることになる。換言すると、プリンタ14でエラー発生中にメッセージデータが複数回繰り返し送信される。
次に、図10の処理の別の具体例を説明する。別の具体例は、宛先情報設定画面67C(図12参照)を通じて、送信用オブジェクト92A(即ち、「エラー発生直後のみ」)が設定され、且つエラー用オブジェクト93A、93Bの少なくとも一方が設定される場合である。また、プリンタ14は、「紙詰まり」又は「用紙無し」の検出直後に図7のS33(即ち、今回のS33)を実行した場合に、第1ステータス情報を送信する。一方、その検出直前に実行したS33(即ち、前回のS33)では、プリンタ14は、「オンライン」を示す第2ステータス情報(オンライン)を送信する。このように設定された場合に、第1プログラム54は、S61でNoと(「エラー発生中」を示す第2タイミング情報が設定されていない。つまり、「エラー発生直後」を示す第2タイミング情報が設定されていると)判断した後、S65でYes(即ち、今回は第1ステータス情報(「紙詰まり」又は「用紙無し」を示すステータス情報)を取得し記録した)と判断し、且つS66でYes(即ち、前回は第2ステータス情報(オンライン)を取得し記録した)と判断したことに応じて、S67でフラグ情報をオンに設定する。即ち、プリンタ14でエラー発生した直後だけにメッセージデータが管理サーバ15から携帯端末装置16へと送信される。
以上の送信判断処理が終了すると、第1プログラム54は、処理を図9のS58に戻して、フラグ情報がオンか否かを判断する(S58)。第1プログラム54は、フラグ情報がオンでないと判断した場合、図9の処理を終了する。第1プログラム54は、フラグ情報がオンであると判断した場合、宛先取得処理を実行する(S59)。S59で、第1プログラム54は、S61と同じレコード512Aにおける宛先情報フィールドから宛先情報を取得する。
次に、第1プログラム54は、メッセージ送信処理を実行する(S510)。S510で、第1プログラム54は、S59で取得した宛先情報を有するメッセージデータをインターネット17及び公衆回線111を通じて携帯端末装置16に送信する。メッセージデータは、宛先情報が電話番号の場合にはショートメッセージ(テキストメッセージとも称する)である。宛先情報が電子メールアドレスの場合、メッセージデータは、電子メールである。
携帯端末装置16において、SMSアプリ75は、OS73と協働し、メッセージデータを通信I/F76を通じて受信したことに応じて、メッセージデータの内容をディスプレイ78に表示させる(S511)。
[通信システム100の効果]
第1プログラム54は、図9のS55で、プリンタ14のステータス情報を取得する。第1プログラム54は、S56で、取得したステータス情報に基づいて、プリンタ14にエラーが発生していると判断したことに応じて、プリンタ14に関連づけされた携帯端末装置16の宛先情報を取得する(S59)。第1プログラム54は、S510で、取得した宛先情報を有するメッセージデータを携帯端末装置16に送信する。携帯端末装置16のディスプレイ78には、メッセージデータの内容が表示される(S511)。このように、通信システム100によれば、携帯端末装置16を通じてプリンタ14にエラーが発生していることを通知することができる。その結果、プリンタ14の利用者は、プリンタ14にエラーが発生したことを迅速に把握し、エラーに対処することが可能となる。
また、第1プログラム54は、図6のS210でプリンタ14のデバイスIDを取得する。第1プログラム54は、図8のS44で、プリンタ14に対応する宛先情報を指定可能な宛先用オブジェクト91を含む画面データを送信する。また、第1プログラム54は、S47で、宛先用オブジェクト91に指定された宛先情報を、端末装置11から取得し、取得した宛先情報を識別情報に関連付けてメモリ52のデータベース510に記憶する。これにより、第1プログラム54は、プリンタ14と携帯端末装置16とを関連付けることができる。
また、第1プログラム54は、外部仲介装置12から定期的な時間間隔でプリンタ14のステータス情報を取得した後、図9の処理で、少なくともエラー発生直後にメッセージデータを送信している。その結果、携帯端末装置16の利用者は、プリンタ14のエラーに迅速に対処可能となる。
また、第1プログラム54は、図9のS57(即ち、送信判断処理)によりメッセージデータの送信タイミングを制御できる。また、図10の処理により、第1プログラム54は、プリンタ14においてエラー発生中にメッセージデータを送信することで、携帯端末装置16の利用者にプリンタ14におけるエラー発生を確実に通知することができる。また、図10の処理により、第1プログラム54は、プリンタ14においてエラー発生直後に限りメッセージデータを送信することで、携帯端末装置16へのメッセージデータの送信回数を制御することができる。
[変形例]
実施形態の送信判断処理(図9のS57)は、図10の処理に限らず、図13(A)、(B)及び(C)のいずれかとすることができる。
図13(A)において、第1プログラム54は、データベース510(図3参照)において、図9のS55で特定したレコード512Aにおける今回のステータス情報フィールドに、第1ステータス情報が記録されているか否かを判断する(S71)。第1プログラム54は、第1ステータス情報が記録されていると判断した場合、フラグ情報をオンに設定する(S72)。一方、第1プログラム54は、S71で第1ステータス情報が記録されていないと判断した場合、フラグ情報をオフに設定する(S73)。図13(A)の処理によれば、プリンタ14が図7のS33で第1ステータス情報(即ち、「紙詰まり」又は「用紙無し」を示すステータス情報」)を送信する度に、第1プログラム54は、S510で管理サーバ15から携帯端末装置16へとメッセージデータを送信する。これにより、プリンタ14にエラーが発生していることを携帯端末装置16の利用者に確実に通知することが可能となる。
図13(B)において、第1プログラム54は、S55で特定したレコード512Aにおける今回のステータス情報フィールドに、第1ステータス情報が記録されているか否かを判断する(S74)。第1プログラム54は、第1ステータス情報が記録されていないと判断した場合、フラグ情報をオフに設定する(S77)。一方、第1プログラム54は、S74で第1ステータス情報が記録されていないと判断した場合、同じレコード512Aにおける前回のステータス情報フィールドに、第2ステータス情報が記録されているか否かを判断する(S75)。第1プログラム54は、第2ステータス情報が記録されていると判断した場合、フラグ情報をオンに設定する(S76)。一方、第1プログラム54は、第2ステータス情報が記録されていないと判断した場合、S77を実行する。図13(B)の処理によれば、第1プログラム54は、プリンタ14でエラー発生した直後だけにメッセージデータを管理サーバ15から携帯端末装置16へと送信する。これにより、プリンタ14にエラーが発生していることを携帯端末装置16の利用者に何度も通知することを抑制できる。
図13(C)において、第1プログラム54は、S55で特定したレコード512Aにおける今回のステータス情報フィールドに、第1ステータス情報が記録されているか否かを判断する(S78)。第1プログラム54は、第1ステータス情報が記録されていないと判断した場合、フラグ情報をオフに設定する(S712)。一方、第1プログラム54は、S78で第1ステータス情報が記録されていないと判断した場合、CPU51に内蔵のタイマ(図示せず)による計時を開始させる(S79)。
次に、第1プログラム54は、タイマによる経過時間が所定時間に到達することを待機し(S710:No)、経過時間が所定時間に到達した場合に、フラグ情報をオンに設定する(S711)。図13(C)の処理によれば、第1プログラム54は、プリンタ14におけるエラーの発生から所定時間が経過した後にメッセージデータを送信できる。
ところで、携帯端末装置16の利用者は、プリンタ14にエラーが発生したことを自分で直ぐに気付く場合がある。このような場合に、携帯端末装置16にメッセージデータが表示されると、利用者は煩わしく感じるおそれがある。図13(C)の処理によれば、第1プログラム54は、プリンタ14から第1ステータス情報(即ち、「紙詰まり」又は「用紙無し」を示すステータス情報」)を取得した後、所定時間経過後に、S510で管理サーバ15から携帯端末装置16へとメッセージデータを送信する。これにより、利用者が煩わしく感じることを防止できる。
[その他の変形例]
実施形態では、図9のS510で第1プログラム54がメッセージデータを送信していた。しかし、これに限らず、第1プログラム54は、S59の次に、OSと協働して、メールソフト(図示せず)を起動して、S59で取得した宛先情報を有するメッセージデータを送信するようメールソフトに指示する送信指示処理を実行してもよい。この場合、メールソフトは、第1プログラム54からの指示に応じて、メッセージデータを携帯端末装置16に送信することになる。
実施形態では、第1プログラム54、及び第2プログラム24は、互いに異なるサーバ装置において実行されていた。しかし、これに限らず、第1プログラム54及び第2プログラム24は、管理サーバ15及び外部仲介装置12のいずれか一方で実行されてもよい。
実施形態では、第2プログラム24及びエージェントソフト34は、外部仲介装置12又は内部仲介装置13によりそれぞれ実行されていた。しかし、これに限らず、第2プログラム24及びエージェントソフト34は、外部仲介装置12及び内部仲介装置13のいずれか一方で実行されてもよい。
実施形態では、図8のS41、S44、S45は、端末装置11により実行されていた。しかし、これに限らず、管理サーバ15、外部仲介装置12、内部仲介装置13、携帯端末装置16にインストールされたブラウザがS41、S44、S45を実行してもよい。
実施形態では、デバイスとしてプリンタ14を例示した。しかし、これに限らず、通信システム100は、デバイスの他の例としてスキャナを備えていてもよい。
実施形態では、図6に示されるように、第1プログラム54は、外部仲介装置12からの要求RQ23を受信したことに応じて、S210及びS211を実行していた。しかし、これに限らず、第1プログラム54は、データベース210においてS27で更新された情報の送信を指示するコマンドである要求を外部仲介装置12に送信してもよい。この場合、第1プログラム54は、この要求に対する応答を外部仲介装置12から受信したことに応じて、S210を実行してもよい。