以下に図面を参照して、本発明にかかる印刷制御プログラム、印刷制御方法、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態)
図1は、実施の形態にかかる印刷制御方法の一実施例を示す説明図である。図1において、情報処理装置101は、印刷指示の出力を制御するコンピュータである。情報処理装置101は、例えば、ノートPC(パーソナル・コンピュータ)、PC、タブレット端末、スマートフォンなどである。
プリンタ102は、文書や画像などのデータを用紙や透過シートなどに印刷するコンピュータである。プリンタ102は、例えば、インクジェットプリンタ、レーザプリンタ、熱転写プリンタなどである。また、プリンタ102は、複写機、スキャナなどの機能を有する複合機であってもよい。
ここで、企業内ネットワークの拠点間接続にVPN接続を使用することで、自社ネットワーク内部の通信のように遠隔地の拠点との通信を安全に行うことができる。このため、例えば、社外に持ち出したノートPCやタブレット端末などを用いて、外出先から社内のプリンタにアクセスして文書や画像などの印刷を行うことができる。
一方で、VPN接続により外出先から社内のプリンタにアクセス可能な環境下では、ユーザが意図しないプリンタでの印刷を招くおそれがある。例えば、社外に持ち出したノートPCを用いて外出先のプリンタで印刷を行う際に、ユーザが出力先のプリンタを確認しないで印刷指示を出してしまうことがある。この場合、あらかじめ出力先に設定されているプリンタへの印刷指示が出力される。
例えば、出力先として社内のプリンタが設定されていれば、社内のプリンタへの印刷指示が出力される。このとき、ノートPCと社内のプリンタとが非接続であれば、社内のプリンタから印刷物が出力されることはない。ところが、VPN接続により社内のプリンタにアクセス可能になっている場合には、ユーザが意図していない社内のプリンタから印刷物が出力されることになり、セキュリティリスクを増加させてしまう。
そこで、本実施の形態では、ユーザが意図しないプリンタへの印刷指示が出力されるのを防ぐ印刷制御方法について説明する。以下、情報処理装置101の処理例について説明する。
ここでは、ある企業の拠点Xで勤務するユーザが、拠点Yを訪れた際に、拠点Xから持ち出した情報処理装置101を用いて、拠点Yのプリンタで印刷を行う場合を想定する。また、VPN接続により、拠点Xと拠点Yとの間で拠点間通信が可能になっている場合を想定する。
(1)情報処理装置101は、印刷指示を受け付けたことに応じて、印刷指示の出力先のプリンタまでの経路上の中継機のアドレスを取得する。ここで、印刷指示は、文書や画像などのデータの印刷を指示するものである。印刷指示には、出力先のプリンタを特定する情報、例えば、出力先のプリンタのIP(Internet Protocol)アドレスが含まれる。
印刷指示の出力先のプリンタは、文書や画像などのデータの印刷を行わせるプリンタであり、例えば、印刷指示に含まれるIPアドレスから特定される。また、出力先のプリンタまでの経路は、情報処理装置101から出力先のプリンタに辿り着くまでのネットワーク経路である。
中継機(例えば、中継機103〜105)は、データを中継するコンピュータであり、IPアドレスやMAC(Media Access Control)アドレスなどのアドレスを有する。中継器は、例えば、ルータ、スイッチ、ハブなどである。
具体的には、例えば、情報処理装置101は、印刷指示に含まれるIPアドレスから特定される出力先のプリンタに対して経路確認コマンド(例えば、tracertコマンド)を実行する。これにより、情報処理装置101から出力先のプリンタまでの経路上の中継機のアドレス(例えば、IPアドレス)を取得して、情報処理装置101から出力先のプリンタまでの経路を特定することができる。
図1の例では、ユーザが拠点Yで印刷を行う際に、拠点Yのプリンタに出力先を変更すべきところ、出力先のプリンタを確認しないで印刷指示を行った場合を想定する。また、情報処理装置101には、拠点Xに設置されているプリンタ102が出力先としてあらかじめ設定されている場合を想定する。
この場合、情報処理装置101は、拠点Xに設置されているプリンタ102のアドレス「add1」を含む印刷指示を受け付ける。そして、情報処理装置101は、自装置から出力先のプリンタ102までの経路上の中継機のアドレスを取得する。
ここで、情報処理装置101から出力先のプリンタ102までの経路は、例えば、プリンタ102のアドレスと、当該経路上の中継機のうちの最前段(初段)の中継機のアドレスがあれば特定することができる。最前段の中継機は、情報処理装置101から出力先に対して出力されるデータを最初に中継する中継機である。
このため、情報処理装置101は、例えば、自装置から出力先のプリンタ102までの経路上の中継機のうちの最前段の中継機のアドレスを取得することにしてもよい。図1の例では、情報処理装置101からプリンタ102までの経路上の中継機103〜105のうち、最前段の中継機103のアドレス「add2」が取得された場合を想定する。
ただし、情報処理装置101は、自装置から出力先のプリンタ102までの経路上の中継機103〜105の全てのアドレスを取得することにしてもよい。
(2)情報処理装置101は、記憶部110を参照して、出力先のプリンタのアドレスと、取得した中継機のアドレスとの組合せが記憶されているか否かを判断する。ここで、記憶部110は、印刷が実行されたプリンタのアドレスと対応付けて、当該印刷時のプリンタまでの経路上の中継機のアドレスを記憶する記憶装置である。
すなわち、記憶部110には、印刷履歴のあるプリンタへの経路を特定する情報が記憶されている。記憶部110には、プリンタまでの経路上の中継機のアドレスとして、当該経路上の最前段の中継機のアドレスのみ記憶されていてもよく、また、当該経路上の全ての中継機のアドレスが記憶されていてもよい。
図1の例では、記憶部110には、印刷が実行されたプリンタ102のアドレス「add1」と対応付けて、当該印刷時の情報処理装置101からプリンタ102までの経路上の最前段の中継機104のアドレス「add3」が記憶されている場合を想定する。この場合、情報処理装置101は、出力先のプリンタ102のアドレスadd1と、取得した中継機103のアドレスadd2との組合せが記憶されていないと判断する。
(3)情報処理装置101は、出力先のプリンタのアドレスと中継機のアドレスとの組合せが記憶されている場合、出力先のプリンタへ印刷指示を出力する。一方、出力先のプリンタのアドレスと中継機のアドレスとの組合せが記憶されていない場合には、情報処理装置101は、出力先のプリンタへの印刷指示の出力を停止して所定のアラームを出力する。
ここで、所定のアラームは、例えば、印刷履歴のない経路を経由するプリンタ(例えば、プリンタ102)への印刷指示を受け付けたことを警告するものである。所定のアラームの出力形式としては、例えば、ディスプレイ(例えば、後述の図3に示すディスプレイ306)への表示、不図示のスピーカからの音声出力などがある。
図1の例では、出力先のプリンタ102のアドレス「add1」と中継機103のアドレス「add2」との組合せが記憶されていない。このため、情報処理装置101は、例えば、出力先のプリンタ102への印刷指示の出力を停止して、所定のアラームを出力する。
また、所定のアラームには、例えば、出力先のプリンタ102への印刷指示の出力を許可するか否かの問い合わせが含まれていてもよい。この場合、情報処理装置101は、印刷指示の出力を許可する旨の応答を受け付けたことに応じて、出力先のプリンタ102へ印刷指示を出力する。一方、印刷指示の出力を許可しない旨の応答を受け付けた場合には、出力先のプリンタ102へ印刷指示を出力しない。
このように、情報処理装置101によれば、印刷履歴のない経路を経由する出力先のプリンタへの印刷指示の出力を抑止して、ユーザが意図しないプリンタへの印刷指示が出力されるのを防ぐことができる。このため、ユーザが意図しないプリンタから印刷物が出力される事態を回避してセキュリティリスクの増加を防ぐことができる。また、印刷履歴のない経路を経由する出力先のプリンタへの印刷指示については、ユーザに警告した上で、出力先のプリンタへ出力するか否かを選択させることができる。
(システム200のシステム構成例)
つぎに、実施の形態にかかるシステム200のシステム構成例について説明する。システム200は、例えば、全国に複数の拠点(例えば、事務所、事業所、研究所など)を持つ企業のコンピュータシステムに適用される。
図2は、システム200のシステム構成例を示す説明図である。図2において、システム200は、情報処理装置101と、プリンタP1〜Pn(n:2以上の自然数)と、ルータR1〜Rm(m:2以上の自然数)と、を含む。システム200において、情報処理装置101およびプリンタP1〜Pnは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、ルータR1〜Rmや不図示のスイッチ、ハブなどにより構築される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
以下の説明では、プリンタP1〜Pnのうちの任意のプリンタを「プリンタPi」と表記する場合がある(i=1,2,…,n)。また、ルータR1〜Rmのうちの任意のルータを「ルータRj」と表記する場合がある(j=1,2,…,m)。
情報処理装置101は、印刷許可テーブル220および印刷指示履歴テーブル230を有し、印刷指示の出力を制御する。印刷許可テーブル220および印刷指示履歴テーブル230の記憶内容については、図4および図5を用いて後述する。
プリンタPiは、文書や画像などのデータを用紙や透過シートなどに印刷するコンピュータである。プリンタP1〜Pnは、例えば、複数の拠点に分散して設置されている。プリンタPiは、例えば、図1に示したプリンタ102に対応する。ルータRjは、ルーティング機能を有するコンピュータである。ルータRjは、例えば、図1に示した中継機103〜105のいずれかの中継機に対応する。
システム200において、情報処理装置101は、拠点間のVPN接続により、別の拠点に設置されたプリンタPiにアクセス可能である。なお、図2の例では、情報処理装置101を1つのみ表記したが、複数の情報処理装置101がシステム200に含まれていてもよい。
(情報処理装置101のハードウェア構成例)
図3は、情報処理装置101のハードウェア構成例を示すブロック図である。図3において、情報処理装置101は、CPU(Central Processing Unit)301と、メモリ302と、ディスクドライブ303と、ディスク304と、I/F(Interface)305と、ディスプレイ306と、入力装置307と、を有する。また、各構成部はバス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置101の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ディスクドライブ303は、CPU301の制御に従ってディスク304に対するデータのリード/ライトを制御する。ディスク304は、ディスクドライブ303の制御で書き込まれたデータを記憶する。ディスク304としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
I/F305は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他の装置(例えば、図2に示したプリンタP1〜Pn)に接続される。そして、I/F305は、ネットワーク210と自装置内部とのインターフェースを司り、他の装置からのデータの入出力を制御する。
ディスプレイ306は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ306は、例えば、液晶ディスプレイ、CRT(Cathode Ray Tube)などを採用することができる。
入力装置307は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置307は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。なお、図2に示したプリンタP1〜PnやルータR1〜Rmは、例えば、CPU、メモリ、I/Fなどを少なくとも含むハードウェア構成により実現される。
(印刷許可テーブル220の記憶内容)
つぎに、情報処理装置101が有する印刷許可テーブル220の記憶内容について説明する。印刷許可テーブル220は、例えば、図3に示したメモリ302、ディスク304などの記憶装置に記憶される。
図4は、印刷許可テーブル220の記憶内容の一例を示す説明図である。図4において、印刷許可テーブル220は、プリンタ名、プリンタIPアドレス、ルータIPアドレスおよびルータMACアドレスのフィールドを有する。各フィールドに情報を設定することで、印刷許可情報(例えば、印刷許可情報400−1〜400−4)がレコードとして記憶される。
ここで、プリンタ名は、印刷が実行されたプリンタPiの名称である。プリンタIPアドレスは、印刷が実行されたプリンタPiのIPアドレスである。ただし、本実施の形態で用いる各コンピュータのIPアドレスは、仮想的なIPアドレスである。
ルータIPアドレスは、印刷が実行されたプリンタPiまでの経路上のルータのうちの最前段(初段)のルータRjのIPアドレスである。ルータMACアドレスは、印刷が実行されたプリンタPiまでの経路上のルータのうちの最前段のルータRjのMACアドレスである。ただし、本実施の形態で用いる各コンピュータのMACアドレスは、仮想的なIPアドレスである。
印刷許可情報(例えば、印刷許可情報400−1〜400−4)は、印刷履歴のあるプリンタPiまでの経路を特定可能な情報である。なお、印刷許可情報には、印刷が実行されたプリンタPiまでの経路上の全てのルータのIPアドレスおよびMACアドレスが設定されることにしてもよい。
(印刷指示履歴テーブル230の記憶内容)
つぎに、情報処理装置101が有する印刷指示履歴テーブル230の記憶内容について説明する。印刷指示履歴テーブル230は、例えば、図3に示したメモリ302、ディスク304などの記憶装置に記憶される。
図5は、印刷指示履歴テーブル230の記憶内容の一例を示す説明図である。図5において、印刷指示履歴テーブル230は、プリンタIPアドレス、ルータIPアドレスおよびルータMACアドレスのフィールドを有する。各フィールドに情報を設定することで、印刷指示履歴情報(例えば、印刷指示履歴情報500−1,500−2)がレコードとして記憶される。
ここで、プリンタIPアドレスは、印刷が実行されたプリンタPiのIPアドレスである。ルータIPアドレスは、印刷が実行されたプリンタPiまでの経路上のルータのうちの最前段のルータRjのIPアドレスである。ルータMACアドレスは、印刷が実行されたプリンタPiまでの経路上のルータのうちの最前段のルータRjのMACアドレスである。
なお、印刷指示履歴テーブル230は、OS(Operating System)起動時のみ有効な一時ファイルであり、例えば、再起動時やシャットダウン時に記憶内容がクリアされる。
(情報処理装置101の機能的構成例)
図6は、情報処理装置101の機能的構成例を示すブロック図である。図6において、情報処理装置101は、受付部601と、取得部602と、判断部603と、出力部604と、登録部605と、監視部606と、を含む構成である。受付部601〜監視部606は制御部となる機能であり、具体的には、例えば、図3に示したメモリ302、ディスク304などの記憶装置に記憶されたプログラムをCPU301に実行させることにより、または、I/F305により、その機能を実現する。各機能部の処理結果は、例えば、メモリ302、ディスク304などの記憶装置に記憶される。
受付部601は、印刷指示を受け付ける。具体的には、例えば、受付部601は、図3に示した入力装置307を用いたユーザの操作入力により、プリンタPiに対する印刷指示を受け付ける。印刷指示には、例えば、出力先のプリンタPiのプリンタ名、IPアドレスなどが含まれる。なお、印刷指示の入力は、例えば、後述の図11に示す印刷画面1110において行われる。
取得部602は、印刷指示を受け付けたことに応じて、印刷指示の出力先のプリンタPiまでの経路上のルータRjのアドレスを取得する。ルータRjのアドレスは、例えば、IPアドレスおよびMACアドレスである。アドレスの取得対象となるルータRjは、情報処理装置101から出力先のプリンタPiに辿り着くまでに経由する少なくともいずれかのルータである。
以下の説明では、アドレスの取得対象となるルータRjとして、情報処理装置101から出力先のプリンタPiまでの経路上のルータのうちの最前段(初段)のルータRjを例に挙げて説明する。また、最前段(初段)のルータRjを「初段ルータRj」と表記する場合がある。
具体的には、例えば、取得部602は、印刷指示に含まれるIPアドレスを指定して経路確認コマンドを実行することで、自装置から出力先のプリンタPiまでの経路上の初段ルータRjのIPアドレスを取得する。つぎに、取得部602は、取得した初段ルータRjのIPアドレスを指定してアドレス確認コマンド(例えば、arpコマンド)を実行することで、初段ルータRjのMACアドレスを取得する。
ここで、図7および図8を用いて、初段ルータRjのIPアドレスおよびMACアドレスの取得例について説明する。ここでは、印刷指示に含まれる出力先のプリンタPiのIPアドレスとして、IPアドレス「192.168.3.33」を例に挙げて説明する。
図7は、IPアドレスの取得例を示す説明図である。図7において、経路確認コマンド710は、印刷指示に含まれるIPアドレス「192.168.3.33」のプリンタまでの経路上の初段ルータRjのIPアドレスを取得するコマンドである。
経路確認コマンド710の「−h」は、最大ホップ数を指定するものである。ここでは、初段ルータRjのIPアドレスを取得するため、最大ホップ数が「1」となっている。なお、プリンタPiまでの経路上の全てのルータのIPアドレスを取得する場合は、最大ホップ数の指定は不要である。
また、応答メッセージ720は、経路確認コマンド710に対する応答を示す。応答メッセージ720には、経路確認コマンド710を3回実行した場合の応答例が示されている。「2ms 1ms 1ms」は、1回目から3回目までの応答時間を示す。「rooter.name」は、初段ルータのホスト名を示す。「192.230.216.25」は、初段ルータのIPアドレスを示す。
このように、取得部602は、経路確認コマンド710を実行することにより、印刷指示に含まれるIPアドレス「192.168.3.33」のプリンタまでの経路上の初段ルータのIPアドレス「192.230.216.25」を取得することができる。
図8は、MACアドレスの取得例を示す説明図である。図8において、アドレス確認コマンド810は、経路確認コマンド710(図7参照)を実行して得られたIPアドレス「192.230.216.25」の初段ルータのMACアドレスを確認するためのコマンドである。
また、応答メッセージ820は、アドレス確認コマンド810に対する応答を示す。応答メッセージ820には、初段ルータのIPアドレス(図8中、インターネットアドレス)「192.230.216.25」と、MACアドレス(図8中、物理アドレス)「33−22−11−aa−bb−cc」とが含まれる。
このように、取得部602は、アドレス確認コマンド810を実行することにより、IPアドレス「192.230.216.25」の初段ルータのMACアドレス「33−22−11−aa−bb−cc」を取得することができる。
図6の説明に戻り、判断部603は、出力先のプリンタPiのアドレスと、取得した初段ルータRjのアドレスとの組合せに基づいて、出力先のプリンタPiへの印刷指示の出力を停止するか否かを判断する。具体的には、例えば、判断部603は、印刷許可テーブル220(例えば、図4参照)を参照して、出力先のプリンタPiのIPアドレスと初段ルータRjのMACアドレスとのアドレスペアに合致するレコードがあるか否かを判断する。
ここで、アドレスペアに合致するレコードがある場合、判断部603は、出力先のプリンタPiへの印刷指示の出力を停止しないと判断する。一方、アドレスペアに合致するレコードがない場合には、判断部603は、出力先のプリンタPiへの印刷指示の出力を停止すると判断する。
図7および図8を例に挙げると、出力先のプリンタPiのIPアドレスと初段ルータRjのMACアドレスとのアドレスペアは、「192.168.3.33」と「33−22−11−aa−bb−cc」である。この場合、判断部603は、印刷許可テーブル220を参照して、プリンタIPアドレスに「192.168.3.33」が設定され、かつ、ルータMACアドレスに「33−22−11−aa−bb−cc」が設定されたレコードがあるか否かを判断する。図4の例では、アドレスペアに合致するレコードがないため、判断部603は、出力先のプリンタPiへの印刷指示の出力を停止すると判断する。
なお、ここでは、出力先のプリンタPiのIPアドレスと初段ルータRjのMACアドレスとのアドレスペアに合致するレコードがあるか否かを判断することにしたが、これに限らない。例えば、判断部603は、印刷許可テーブル220を参照して、出力先のプリンタPiのIPアドレスと初段ルータRjのIPアドレスとのアドレスペアに合致するレコードがあるか否かを判断することにしてもよい。
ただし、IPアドレスは設定時間が経過すると開放されるため、あるコンピュータに割り当てられていたIPアドレスと同一のIPアドレスが別のコンピュータに割り当てられることがある。すなわち、異なるルータに同一のIPアドレスが割り当てられる可能性があるため、MACアドレスを用いるほうが望ましい。
出力部604は、印刷指示の出力を停止しないと判断された場合に、出力先のプリンタPiへ印刷指示を出力する。これにより、印刷履歴のある経路(ネットワーク経路)を経由する出力先のプリンタPiへの印刷指示のみ自動で出力することができる。換言すれば、印刷履歴のない経路を経由する出力先のプリンタPiへの印刷指示の出力を抑止することができる。
また、出力部604は、印刷指示の出力を停止すると判断された場合には、所定のアラームを出力する。所定のアラームは、印刷履歴のない経路を経由するプリンタPiへの印刷指示を受け付けたことを警告するものである。出力部604の出力形式としては、例えば、ディスプレイ306への表示、不図示のスピーカからの音声出力などがある。
具体的には、例えば、出力部604は、後述の図12に示すような印刷確認ダイアログ1210をディスプレイ306に表示することにしてもよい。印刷確認ダイアログ1210は、印刷履歴のない経路を経由するプリンタPiへの印刷指示の出力を許可するか否かを問い合わせる画面である。
そして、出力部604は、印刷指示の出力を許可する旨の印刷許可応答を受け付けたことに応じて、出力先のプリンタPiへ印刷指示を出力する。一方、印刷指示の出力を許可しない旨の印刷禁止応答を受け付けた場合には、出力先のプリンタPiへ印刷指示を出力しない。これにより、印刷履歴のない経路を経由するプリンタPiへの印刷指示については、ユーザに警告した上で、プリンタPiへ出力するか否かを選択させることができる。
登録部605は、印刷許可応答に応じて印刷指示が出力された場合、出力先のプリンタPiのIPアドレスと対応付けて、初段ルータRjのIPアドレスおよびMACアドレスを印刷許可テーブル220に登録する。なお、印刷許可テーブル220の更新例については、図9を用いて後述する。
これにより、印刷指示が出力されたプリンタPiまでの経路を、印刷履歴のある経路として特定可能な情報を印刷許可テーブル220に新規登録することができる。この結果、以降において、今回印刷指示が出力された経路と同一経路を経由する印刷指示については、ユーザに問い合わせることなく出力先のプリンタPiへ出力して印刷を実行することができる。
なお、印刷許可応答が、今回のみ印刷指示の出力を許可する旨の応答である場合には、登録部605は、印刷許可テーブル220への登録を行わないことにしてもよい。
図9は、印刷許可テーブル220の更新例を示す説明図である。ここでは、IPアドレス「192.230.216.25」およびMACアドレス「33−22−11−aa−bb−cc」の初段ルータを経由して、IPアドレス「192.168.3.33」のプリンタへ印刷指示が出力された場合を想定する。
この場合、登録部605は、出力先のプリンタのプリンタ名「printer001」およびIPアドレス「192.168.3.33」を、印刷許可テーブル220内のプリンタ名フィールドおよびプリンタIPアドレスフィールドにそれぞれ設定する。なお、プリンタ名は、例えば、印刷指示に含まれる。
また、登録部605は、初段ルータのIPアドレス「192.230.216.25」およびMACアドレス「33−22−11−aa−bb−cc」を、印刷許可テーブル220内のルータIPアドレスフィールドおよびルータMACアドレスフィールドにそれぞれ設定する。
これにより、印刷許可テーブル220に印刷許可情報400−5が新規登録される。この結果、以降において、今回印刷指示が出力された経路と同一経路を経由するIPアドレス「192.168.3.33」のプリンタへの印刷指示については、ユーザに問い合わせることなく出力して印刷を実行することができる。
図6の説明に戻り、登録部605は、印刷許可応答に応じて印刷指示が出力された場合、出力先のプリンタPiのIPアドレスを、印刷指示履歴テーブル230(例えば、図5参照)に登録することにしてもよい。この際、登録部605は、出力先のプリンタPiのIPアドレスと対応付けて、初段ルータRjのIPアドレスおよびMACアドレスを印刷指示履歴テーブル230に登録することにしてもよい。
これにより、印刷指示が出力されたプリンタPiのIPアドレスを、印刷指示履歴テーブル230に新規登録することができる。なお、上述したように、印刷指示履歴テーブル230は、OS起動時のみ有効な一時ファイルであり、再起動時やシャットダウン時に記憶内容がクリアされる。
監視部606は、自装置のネットワーク210への接続状態を監視する。具体的には、例えば、監視部606は、自装置に挿されたLANケーブルが抜かれたことを検出した場合に、ネットワーク210との接続が切断されて、ネットワーク210への接続状態が変更されたと判断する。
また、例えば、監視部606は、印刷指示履歴テーブル230に登録された初段ルータRjのIPアドレス(ルータIPアドレス)を指定して接続確認コマンド(例えば、ping)を実行することで、初段ルータRjとの接続状態を検出する。そして、監視部606は、初段ルータRjとの接続が切断されたことが検出された場合に、ネットワーク210への接続状態が変更されたと判断することにしてもよい。
登録部605は、ネットワーク210への接続状態が変更されたと判断された場合、印刷指示履歴テーブル230の記憶内容をクリアする。また、登録部605は、例えば、自装置の再起動またはシャットダウン時に、印刷指示履歴テーブル230の記憶内容をクリアすることにしてもよい。
これにより、ネットワーク210への接続状態が変更されたり、情報処理装置101が再起動またはシャットダウンされたりするまでは、印刷指示が出力されたプリンタPiのIPアドレスを印刷指示履歴テーブル230に保持することができる。
また、判断部603は、印刷指示を受け付けたことに応じて、当該印刷指示に含まれる出力先のプリンタPiのIPアドレスが、印刷指示履歴テーブル230に登録されているか否かを判断することにしてもよい。ここで、印刷指示履歴テーブル230にIPアドレスが登録されているプリンタPiは、印刷履歴のあるプリンタである。また、ネットワーク210への接続状態が変更されたり、情報処理装置101の再起動やシャットダウンが行われていないため、前回の印刷時からプリンタまでの経路が変更されていないといえる。
このため、出力部604は、印刷指示履歴テーブル230に登録されていると判断された場合には、出力先のプリンタPiへ印刷指示を出力することにしてもよい。これにより、一度印刷が実行されたプリンタPiへの印刷指示については、OSが起動中、あるいは、ネットワーク210への接続状態が変更されるまでの間は、ユーザに問い合わせることなく出力して印刷を実行することができる。したがって、同じプリンタを使って連続して印刷を行う場合などに、2回目以降の印刷処理にかかる負荷や時間を軽減させることができる。
図10は、印刷指示履歴テーブル230の更新例を示す説明図である。ここでは、まず、(10−1)に示すように、印刷指示履歴テーブル230に、印刷指示履歴情報500−1,500−2が記憶されている場合を想定する。
つぎに、ユーザが別の場所に移動するために、情報処理装置101に挿されたLANケーブルを抜いた場合を想定する。この場合、(10−2)に示すように、情報処理装置101のネットワーク210への接続状態が変更されるため、印刷指示履歴テーブル230の記憶内容がクリアされる。
そして、ユーザが別の場所に移動した後、IPアドレス「192.230.216.25」およびMACアドレス「33−22−11−aa−bb−cc」の初段ルータを経由して、IPアドレス「192.168.3.33」のプリンタへ印刷指示が出力された場合を想定する。
この場合、(10−3)に示すように、印刷指示履歴テーブル230に印刷指示履歴情報500−3が新規登録される。これにより、IPアドレス「192.168.3.33」のプリンタへの印刷指示については、OSが起動中、あるいは、ネットワーク210への接続状態が変更されるまでの間は、ユーザに問い合わせることなく出力して印刷を実行することができる。
なお、上述した説明では、判断部603は、印刷許可テーブル220を参照して、出力先のプリンタPiのIPアドレスと初段ルータRjのMACアドレスとのアドレスペアに合致するレコードがあるか否かを判断することにしたが、これに限らない。
例えば、判断部603は、印刷許可テーブル220を参照して、出力先のプリンタPiのIPアドレスと、出力先のプリンタPiまでの経路上の全てのルータのMACとの組合せに合致するレコードがあるか否かを判断することにしてもよい。そして、判断部603は、当該組合せに合致するレコードがある場合、出力先のプリンタPiへの印刷指示の出力を停止しないと判断してもよい。一方、当該組合せに合致するレコードがない場合には、判断部603は、出力先のプリンタPiへの印刷指示の出力を停止すると判断することにしてもよい。
ただし、この場合、取得部602は、印刷指示を受け付けたことに応じて、出力先のプリンタPiまでの経路上の全てのルータのIPアドレスおよびMACアドレスを取得する。さらに、印刷許可テーブル220内の印刷許可情報には、印刷が実行されたプリンタPiまでの経路上の全てのルータのIPアドレスおよびMACアドレスが設定される。
(印刷時の画面遷移例)
つぎに、情報処理装置101のディスプレイ306に表示される印刷時の画面遷移例について説明する。
図11および図12は、印刷時の画面遷移例を示す説明図である。図11において、文書画面1100には、文書1101が表示されている。文書1101は、新たな製品についての企画書である。ここでは、大阪の事務所に勤務しているユーザが、東京の事務所を訪れて、企画会議のために文書1101を印刷する場合を想定する。
文書画面1100において、例えば、入力装置307(図3参照)を用いたユーザの操作入力により、ショートカットキーを使ったり、不図示のツールバーをクリックしたりして印刷操作を行うと、印刷画面1110がポップアップ表示される。印刷画面1110では、例えば、出力先のプリンタPiを選択したり、文書1101中の印刷範囲を設定したり、印刷部数を設定したりすることができる。
より具体的には、例えば、印刷画面1110において、ボタン1111をクリックすると、出力先のプリンタPiを選択することができる。ここでは、出力先のプリンタPiとして、大阪の事務所に設置されているプリンタ名「printer001」のプリンタがデフォルトで設定されている。
また、印刷画面1110において、ボタン1112をクリックすると、出力先のプリンタPiへの印刷指示を入力することができる。また、印刷画面1110において、ボタン1113をクリックすると、印刷画面1110の表示を終了することができる。
ここでは、プリンタ名「printer001」のプリンタが選択された状態で、ボタン1112がクリックされた場合を想定する。この場合、プリンタ名「printer001」のプリンタのIPアドレス「192.168.3.33」を含む印刷指示が入力される。
この場合、情報処理装置101は、例えば、印刷指示に含まれる出力先のプリンタのIPアドレス「192.168.3.33」が、印刷指示履歴テーブル230に登録されているか否かを判断する。ここでは、出力先のプリンタのIPアドレス「192.168.3.33」が登録されていない場合を想定する。
この場合、情報処理装置101は、例えば、自装置から出力先のプリンタまでの経路上の初段ルータのIPアドレスおよびMACアドレスを取得する。ここでは、初段ルータのIPアドレス「192.230.216.25」およびMACアドレス「33−22−11−aa−bb−cc」が取得された場合を想定する。
この場合、情報処理装置101は、例えば、印刷許可テーブル220を参照して、出力先のプリンタのIPアドレス「192.168.3.33」と初段ルータのMACアドレス「33−22−11−aa−bb−cc」とのアドレスペアに合致するレコードがあるか否かを判断する。ここでは、アドレスペアに合致するレコードがない場合を想定する。
この場合、情報処理装置101は、図12に示すように、文書画面1100上に印刷確認ダイアログ1210をポップアップ表示する。印刷確認ダイアログ1210は、印刷履歴のない経路を経由するプリンタPiへの印刷指示の出力を許可するか否かを問い合わせる画面である。
印刷確認ダイアログ1210において、ボタン1211をクリックすると、今回のみ印刷指示の出力を許可する旨の印刷許可応答を入力することができる。また、印刷確認ダイアログ1210において、ボタン1212をクリックすると、印刷指示の出力を許可する旨の印刷許可応答を入力することができる。また、印刷確認ダイアログ1210において、ボタン1213をクリックすると、印刷指示の出力を許可しない旨の印刷禁止応答を入力することができる。
印刷確認ダイアログ1210によれば、ユーザは、プリンタ名「printer001」およびIPアドレス「192.168.3.33」のプリンタに対する印刷指示を、印刷履歴のないネットワーク環境を使って出力する状態となっていることがわかる。なお、印刷履歴のないネットワーク環境を特定する情報として、初段ルータのホスト名「rooter xx」、IPアドレス「192.230.216.25」およびMACアドレス「33−22−11−aa−bb−cc」が表示されている。
このため、ユーザは、例えば、東京の事務所のプリンタに出力先を変更し忘れていることに気付くことができ、一旦印刷をキャンセルして印刷操作をやり直すことができる。これにより、ユーザが意図しない大阪の事務所のプリンタへ印刷指示が出力される事態を回避することができ、セキュリティリスクの増加を防ぐことができる。
(情報処理装置101の印刷制御処理手順)
つぎに、情報処理装置101の印刷制御処理手順について説明する。
図13および図14は、情報処理装置101の印刷制御処理手順の一例を示すフローチャートである。図13のフローチャートにおいて、まず、情報処理装置101は、印刷指示を受け付けたか否かを判断する(ステップS1301)。
ここで、情報処理装置101は、印刷指示を受け付けるのを待つ(ステップS1301:No)。そして、情報処理装置101は、印刷指示を受け付けた場合(ステップS1301:Yes)、受け付けた印刷指示から出力先のプリンタPiのIPアドレスを取得する(ステップS1302)。
つぎに、情報処理装置101は、印刷指示履歴テーブル230を参照して、取得した出力先のプリンタPiのIPアドレスが登録されているか否かを判断する(ステップS1303)。なお、印刷指示履歴テーブル230は初期状態では空である。
ここで、IPアドレスが登録されている場合(ステップS1303:Yes)、情報処理装置101は、ステップS1307に移行する。一方、IPアドレスが登録されていない場合(ステップS1303:No)、情報処理装置101は、出力先のプリンタPiのIPアドレスを指定して経路確認コマンドを実行することで、初段ルータRjのIPアドレスを取得する(ステップS1304)。
なお、初段ルータRjは、情報処理装置101から出力先のプリンタPiまでの経路上のルータのうちの最前段(初段)のルータRjである。
つぎに、情報処理装置101は、取得した初段ルータRjのIPアドレスを指定してアドレス確認コマンドを実行することで、初段ルータRjのMACアドレスを取得する(ステップS1305)。そして、情報処理装置101は、印刷許可テーブル220を参照して、出力先のプリンタPiのIPアドレスと初段ルータRjのMACアドレスとのアドレスペアに合致するレコードがあるか否かを判断する(ステップS1306)。
ここで、アドレスペアに合致するレコードがある場合(ステップS1306:Yes)、情報処理装置101は、出力先のプリンタPiへ印刷指示を出力して(ステップS1307)、本フローチャートによる一連の処理を終了する。一方、アドレスペアに合致するレコードがない場合(ステップS1306:No)、情報処理装置101は、図14に示すステップS1401に移行する。
図14のフローチャートにおいて、まず、情報処理装置101は、印刷確認ダイアログの画面情報を生成して、印刷確認ダイアログをディスプレイ306に表示する(ステップS1401)。印刷確認ダイアログは、印刷履歴のない経路を経由するプリンタPiへの印刷指示の出力を許可するか否かを問い合わせる画面(例えば、印刷確認ダイアログ1210)である。
つぎに、情報処理装置101は、印刷指示の出力を許可する旨の印刷許可応答を受け付けたか否かを判断する(ステップS1402)。ここで、印刷許可応答を受け付けた場合(ステップS1402:Yes)、情報処理装置101は、受け付けた印刷許可応答が、今回のみ印刷指示の出力を許可する旨の応答であるか否かを判断する(ステップS1403)。
ここで、今回のみ印刷指示の出力を許可する旨の応答である場合(ステップS1403:Yes)、情報処理装置101は、ステップS1406に移行する。
一方、今回のみ印刷指示の出力を許可する旨の応答ではない場合(ステップS1403:No)、情報処理装置101は、印刷許可テーブル220に新規レコードを登録する(ステップS1404)。具体的には、例えば、情報処理装置101は、出力先のプリンタPiのIPアドレスと対応付けて、初段ルータRjのIPアドレスおよびMACアドレスを印刷許可テーブル220に登録する。
つぎに、情報処理装置101は、印刷指示履歴テーブル230に新規レコードを登録する(ステップS1405)。具体的には、例えば、情報処理装置101は、出力先のプリンタPiのIPアドレスと対応付けて、初段ルータRjのIPアドレスおよびMACアドレスを印刷指示履歴テーブル230に登録する。
そして、情報処理装置101は、出力先のプリンタPiへ印刷指示を出力して(ステップS1406)、本フローチャートによる一連の処理を終了する。
一方、ステップS1402において、印刷許可応答を受け付けていない場合には(ステップS1402:No)、情報処理装置101は、印刷指示の出力を許可しない旨の印刷禁止応答を受け付けたか否かを判断する(ステップS1407)。ここで、印刷禁止応答を受け付けていない場合(ステップS1407:No)、情報処理装置101は、ステップS1402に戻る。
一方、印刷禁止応答を受け付けた場合には(ステップS1407:Yes)、情報処理装置101は、印刷をキャンセルして(ステップS1408)、本フローチャートによる一連の処理を終了する。
これにより、印刷履歴のない経路を経由するプリンタPiへの印刷指示を受け付けた場合には、プリンタPiへの印刷指示の出力を一旦停止してユーザに警告した上で、プリンタPiへの印刷指示の出力を許可するか否かを選択させることができる。
(情報処理装置101のネットワーク監視処理手順)
つぎに、情報処理装置101のネットワーク監視処理手順について説明する。
図15は、情報処理装置101のネットワーク監視処理手順の一例を示すフローチャートである。図15のフローチャートにおいて、まず、情報処理装置101は、自装置のネットワーク210への接続状態を監視する(ステップS1501)。そして、情報処理装置101は、ネットワーク210への接続状態が変更されたか否か判断する(ステップS1502)。
ここで、ネットワーク210への接続状態が変更されていない場合(ステップS1502:No)、情報処理装置101は、ステップS1501に戻る。一方、ネットワーク210への接続状態が変更された場合(ステップS1502:Yes)、情報処理装置101は、印刷指示履歴テーブル230の記憶内容をクリアして(ステップS1503)、本フローチャートによる一連の処理を終了する。
これにより、情報処理装置101に挿されたLANケーブルが抜かれるなどしてネットワーク210への接続状態が変更された場合には、印刷指示履歴テーブル230の記憶内容をクリアすることができる。
以上説明したように、実施の形態にかかる情報処理装置101によれば、印刷指示を受け付けたことに応じて、自装置から出力先のプリンタPiまでの経路上の初段ルータRjのIPアドレスおよびMACアドレスを取得することができる。また、情報処理装置101によれば、印刷許可テーブル220を参照して、出力先のプリンタPiのIPアドレスと初段ルータRjのMACアドレスとのアドレスペアに合致するレコードがあるか否かを判断することができる。
そして、情報処理装置101によれば、アドレスペアに合致するレコードがある場合、出力先のプリンタPiへ印刷指示を出力することができる。一方、アドレスペアに合致するレコードがない場合には、出力先のプリンタPiへの印刷指示の出力を停止して、プリンタPiへの印刷指示の出力を許可するか否かを問い合わせることができる。また、情報処理装置101によれば、印刷指示の出力を許可する旨の印刷許可応答を受け付けたことに応じて、出力先のプリンタPiへ印刷指示を出力することができる。
これにより、印刷履歴のある経路(ネットワーク経路)を経由する出力先のプリンタPiへの印刷指示のみ自動で出力することができる。換言すれば、印刷履歴のない経路を経由する出力先のプリンタPiへの印刷指示の出力を抑止することができる。また、印刷履歴のない経路を経由するプリンタPiへの印刷指示については、ユーザに警告した上で、プリンタPiへ出力するか否かを選択させることができる。
また、情報処理装置101によれば、印刷許可応答に応じて印刷指示を出力した場合、出力先のプリンタPiのIPアドレスと対応付けて、初段ルータRjのIPアドレスおよびMACアドレスを印刷許可テーブル220に登録することができる。これにより、以降においては、今回印刷指示が出力された経路と同一経路を経由する印刷指示については、ユーザに問い合わせることなく出力先のプリンタPiへ出力して印刷を実行することができる。
また、情報処理装置101によれば、印刷許可応答に応じて印刷指示が出力された場合、出力先のプリンタPiのIPアドレスを、印刷指示履歴テーブル230に登録することができる。また、情報処理装置101によれば、自装置の再起動やシャットダウン時、あるいは、ネットワーク210への接続状態が変更されたことに応じて、印刷指示履歴テーブル230の記憶内容をクリアすることができる。
これにより、ネットワーク210への接続状態が変更されたり、情報処理装置101が再起動またはシャットダウンされたりするまでは、印刷指示が出力されたプリンタPiのIPアドレスを印刷指示履歴テーブル230に保持することができる。
また、情報処理装置101によれば、印刷指示を受け付けたことに応じて、当該印刷指示に含まれる出力先のプリンタPiのIPアドレスが、印刷指示履歴テーブル230に登録されているか否かを判断することができる。そして、情報処理装置101によれば、印刷指示履歴テーブル230にIPアドレスが登録されている場合には、出力先のプリンタPiへ印刷指示を出力することができる。
これにより、一度印刷が実行されたプリンタPiへの印刷指示については、OSが起動中、あるいは、ネットワーク210への接続状態が変更されるまでの間は、ユーザに問い合わせることなく出力して印刷を実行することができる。したがって、同じプリンタを使って連続して印刷を行う場合などに、2回目以降の印刷処理にかかる負荷や時間を軽減させることができる。
これらのことから、情報処理装置101によれば、印刷履歴のない経路を経由する出力先のプリンタPiへの印刷指示の出力を抑止することにより、ユーザが意図しないプリンタPiから印刷物が出力される事態を回避してセキュリティリスクの増加を防ぐことができる。
なお、本実施の形態で説明した印刷制御方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本印刷制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本印刷制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータに、
印刷指示を受け付けたことに応じて、前記印刷指示の出力先のプリンタまでの経路上の中継機のアドレスを取得し、
印刷が実行されたプリンタのアドレスと対応付けて、当該印刷時の前記プリンタまでの経路上の中継機のアドレスを記憶する記憶部を参照して、前記出力先のプリンタのアドレスと、取得した前記中継機のアドレスとの組合せが記憶されているか否かを判断し、
前記組合せが記憶されている場合、前記出力先のプリンタへ前記印刷指示を出力し、
前記組合せが記憶されていない場合には、前記出力先のプリンタへの前記印刷指示の出力を停止して所定のアラームを出力する、
処理を実行させることを特徴とする印刷制御プログラム。
(付記2)前記中継機は、前記出力先のプリンタまでの経路上の中継機のうちの最前段の中継機である、ことを特徴とする付記1に記載の印刷制御プログラム。
(付記3)前記所定のアラームは、印刷履歴のない経路を経由する前記出力先のプリンタへの印刷指示を受け付けたことを警告するものである、ことを特徴とする付記1または2に記載の印刷制御プログラム。
(付記4)前記所定のアラームは、前記出力先のプリンタへの前記印刷指示の出力を許可するか否かの問い合わせを含み、
前記コンピュータに、
前記印刷指示の出力を許可する旨の応答を受け付けたことに応じて、前記出力先のプリンタへ前記印刷指示を出力する、処理を実行させることを特徴とする付記1〜3のいずれか一つに記載の印刷制御プログラム。
(付記5)前記コンピュータに、
前記印刷指示の出力を許可する旨の応答に応じて前記印刷指示を出力した場合、前記出力先のプリンタのアドレスと対応付けて、取得した前記中継機のアドレスを前記記憶部に記憶する、処理を実行させることを特徴とする付記4に記載の印刷制御プログラム。
(付記6)前記コンピュータに、
前記印刷指示を出力した場合、ネットワークへの接続状態が変更されたことに応じて記憶内容がクリアされる第2の記憶部に、前記出力先のプリンタのアドレスを記憶し、
新たな印刷指示を受け付けたことに応じて、前記新たな印刷指示の出力先のプリンタのアドレスが前記第2の記憶部に記憶されているか否かを判断し、
前記第2の記憶部に記憶されている場合には、前記新たな印刷指示の出力先のプリンタへ当該印刷指示を出力する、
処理を実行させることを特徴とする付記1〜5のいずれか一つに記載の印刷制御プログラム。
(付記7)前記コンピュータに、
前記第2の記憶部に記憶されていない場合には、前記新たな印刷指示の出力先のプリンタまでの経路上の中継機のアドレスを取得し、
前記記憶部を参照して、前記新たな印刷指示の出力先のプリンタのアドレスと、取得した前記中継機のアドレスとの組合せが記憶されているか否かを判断し、
前記組合せが記憶されている場合、前記新たな印刷指示の出力先のプリンタへ前記印刷指示を出力し、
前記組合せが記憶されていない場合には、前記新たな印刷指示の出力先のプリンタへの前記新たな印刷指示の出力を停止して所定のアラームを出力する、
処理を実行させることを特徴とする付記6に記載の印刷制御プログラム。
(付記8)コンピュータが、
印刷指示を受け付けたことに応じて、前記印刷指示の出力先のプリンタまでの経路上の中継機のアドレスを取得し、
印刷が実行されたプリンタのアドレスと対応付けて、当該印刷時の前記プリンタまでの経路上の中継機のアドレスを記憶する記憶部を参照して、前記出力先のプリンタのアドレスと、取得した前記中継機のアドレスとの組合せが記憶されているか否かを判断し、
前記組合せが記憶されている場合、前記出力先のプリンタへ前記印刷指示を出力し、
前記組合せが記憶されていない場合には、前記出力先のプリンタへの前記印刷指示の出力を停止して所定のアラームを出力する、
処理を実行することを特徴とする印刷制御方法。
(付記9)印刷指示を受け付けたことに応じて、前記印刷指示の出力先のプリンタまでの経路上の中継機のアドレスを取得し、
印刷が実行されたプリンタのアドレスと対応付けて、当該印刷時の前記プリンタまでの経路上の中継機のアドレスを記憶する記憶部を参照して、前記出力先のプリンタのアドレスと、取得した前記中継機のアドレスとの組合せが記憶されているか否かを判断し、
前記組合せが記憶されている場合、前記出力先のプリンタへ前記印刷指示を出力し、
前記組合せが記憶されていない場合には、前記出力先のプリンタへの前記印刷指示の出力を停止して所定のアラームを出力する、
制御部を有することを特徴とする情報処理装置。