以下、添付図面を参照しながら、本発明に係るセキュアプリントシステムの好適な実施形態について詳細に説明する。
図1は、従来のセキュアプリントシステムの構成の一例を示す図である。
図1に示すように、例えば、階毎に設置する1又は複数の印刷装置1000、管理者に1台、ユーザ毎に1台ずつというように設置する1又は複数のクライアントPC300、拠点毎に設置する1又は複数のプリンタサーバ101、拠点毎に設置する1又は複数の認証サーバ102がLAN(Local Area Network)150を介して接続される。また、印刷装置1000には、USBケーブル160を介してカードリーダ400が接続される。
クライアントPC300は、印刷装置1000の設定を行うPCある。クライアントPC300は、LAN150を介して、例えば、HTTP(Hyper Text Transfer Protocol)、TCP/IP(Transmission Control Protocol/Internet Protocol)などによって、印刷装置1000と通信することができる機能を搭載したPCである。
また、クライアントPC300は、ユーザから印刷ジョブを投入するためのPCである。ユーザがクライアントPC300上で動くアプリケーションからプリンタドライバを介して印刷ジョブを生成すると、プリンタドライバがLPR(Line PRinter daemon protocol)等の印刷プロトコルを用いて、印刷ジョブを印刷装置1000やプリンタサーバ101に送信することができる。
プリンタサーバ101は、クライアントPC300から印刷ジョブを受け取り、印刷ジョブを解析してジョブ情報を取得し、印刷ジョブを蓄積する。また、印刷装置1000から印刷要求を受け取り、印刷要求に含まれるユーザ名をもとにして、蓄積ジョブからユーザのジョブを検索し、見つかったユーザのジョブを印刷装置1000に対して印刷指示を行う。
認証サーバ102は、印刷装置1000がユーザ認証を行うためのサーバである。カードID211に紐づくユーザ名、メールアドレス、利用権限等のデータを持っている。認証サーバ102は、印刷装置1000からの問い合わせに対して、ユーザの有無と、ユーザが存在する場合はそのユーザ情報を返答する機能を有する。
カードリーダ400は、USBケーブル160を介して印刷装置1000に接続される。
カードリーダ400は、ICカード410(例えば、ソニー(登録商標)社のフェリカ(FeliCa)(登録商標))がかざされるとカード内部の情報を読み取り、USBケーブル160を介して印刷装置1000に通知する。
なお、本実施形態ではICカードをカードリーダにかざすことによる認証を用いた構成としたが、指紋或いは手や指の静脈の情報(生体情報)を用いた認証を用いた構成であってもよい。この場合、カードリーダ400を指や手などの読取対象物を読み取るリーダ(非読取対象物)に置き換えることで実現可能である。
次に、図2を参照しながら、本発明に係るセキュアプリントシステム1について説明する。
図2は、本発明に係るセキュアプリントシステム1の構成の一例を示す図である。
図2に示すセキュアプリントシステム1は、LAN150を介してクライアントPC(情報処理装置)300、LDAP(Lightweight Directory Access Protocol)サーバ(認証サーバ)200、NIC(ネットワークインタフェース装置)700が接続される。印刷装置1000には、NIC(ネットワークインタフェース装置)700が挿入される。
NIC700は、USBケーブル160、USBハブ600を介してマスストレージ(記憶部)500、カードリーダ400を接続している。
マスストレージ500及びUSBハブ600がNIC700を介して印刷装置1000に外付けされているが、印刷装置1000に内蔵するようにしてもよい。また、NIC700が複数のUSBポートを有する場合はUSBハブ600を介する必要はなく、NIC700にカードリーダ400及びマスストレージ500が直接接続される。
LDAPサーバ200は、図1の認証サーバ102の役割を行うもので、LDAPプロトコルにて通信を行う機能を有する。LDAPサーバ200は、内部のディレクトリにユーザ情報を一元管理することができる。LDAPサーバ200は、1つのサーバで構成しても良い。また、LDAPサーバ200は、後述するように、プライマリおよびセカンダリの2つのサーバによって構成しても良い。また、LDAPサーバ200は、3つ以上のサーバによって構成しても良い。いずれの場合であっても、LDAPサーバ200がダウンするとは、LDAPサーバ200を構成する全てのサーバがダウンしたことを意味するものとする。
図2では、LDAPサーバ200を使用しているが、認証を行うことができるサーバであればLDAPサーバに限らない。
クライアントPC300は、印刷データを生成する情報処理装置である。
マスストレージ500は、HDD(Hard Disk Drive)やフラッシュメモリのような大容量のファイルシステムを持つハードウエアで、USBケーブル160を介してUSBハブ600に接続している。
マスストレージ500は、印刷装置1000からファイル書き込み、読み込み、削除等のファイルシステムの制御を行うことが可能である。
次に、図3、4、5を参照しながら、クライアントPC300、LDAPサーバ200、印刷装置1000、NIC700について説明する。
図3は、LDAPサーバ200、クライアントPC300のハードウエア構成を示す図、図4は、印刷装置1000のハードウエア構成を示す図、図5は、NIC700のハードウエア構成を示す図である。
図3に示すように、LDAPサーバ200、クライアントPC300は、システムバス2004を介してCPU(Central Processing Unit)2001、RAM(Random Access Memory)2002、ROM(Read Only Memory)2003、入力コントローラ2005、ビデオコントローラ2006、メモリコントローラ2007、通信I/Fコントローラ2008が接続される。
CPU2001は、システムバス2004に接続される各デバイスやコントローラを統括的に制御する。
ROM2003あるいは外部メモリ2011は、CPU2001の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する各種プログラム等を保持している。
RAM2002は、CPU2001の主メモリ、ワークエリア等として機能する。CPU2001は、処理の実行に際して必要なプログラム等をROM2003あるいは外部メモリ2011からRAM2002にロードし、ロードしたプログラムを実行することで各種動作を実現する。
入力コントローラ2005は、キーボード(KB)2009やマウス(図示しない)等のポインティングデバイス等からの入力を制御する。
ビデオコントローラ2006は、CRT(Cathode Ray Tube)2010等の表示器への表示を制御する。表示器はCRTに限らず、液晶ディスプレイ等の他の表示器でもよい。これらは、必要に応じて管理者が使用する。
メモリコントローラ2007は、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶するハードディスク(HD)や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card International Association)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ2011へのアクセスを制御する。
通信I/Fコントローラ2008は、LAN150のようなネットワークを介して外部機器と接続・通信し、ネットワーク上での通信制御処理を実行する。通信I/Fコントローラ2008は、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いた通信等が可能である。
CPU2001は、例えばRAM2002内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT2010上に表示することが可能である。また、CPU2001は、CRT2010上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
LDAPサーバ200、クライアントPC300のハードウエア上で動作する各種プログラムは、外部メモリ2011に記録されており、必要に応じてRAM2002にロードされ、CPU2001により実行される。プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等は、外部メモリ2011に格納されている。
次に、印刷装置1000のハードウエア構成について説明する。
図4に示すように、印刷装置1000は、入力部3000、CPU3001、操作部3002、印刷処理部3003、記憶部3004、出力部3005、用紙カセット3006等を有する。
入力部3000は、本印刷装置とNIC700を接続するものであり、NIC700とのデータ通信を制御する。
CPU3001は、印刷装置1000全体の動作を制御する。
操作部3002は、印刷装置1000に直接ユーザによる操作のインタフェースを提供する。
印刷処理部3003は、入力部3000で受信したコマンドの解析、印刷データ(PDL)の解析等を行う。
記憶部3004は、印刷装置1000を動作させるためのROM(図示しない)、RAM(図示しない)、二次記憶装置(図示しない)等からなる。RAMは使用制限のないデータ記憶領域で、入力部3000の受信バッファ、あるいは、印刷処理部3003でのデータ展開等に使用する。
出力部3005は、入力部3000で受信した印刷データを、印刷処理部3003で印刷可能なイメージ情報に展開したものを紙に転写する。
用紙カセット3006は、出力部3005の処理に合わせて適切な用紙を供給する。
NIC700は、ネットワークインタフェースカードであり、LAN150を介して他の機器から受信したデータをNIC700が窓口となって受け取り、NIC内部のプログラム(図示しない)や、印刷装置1000の入力部3000に渡す。
次に、NIC700のハードウエア構成について説明する。
図5に示すように、NIC700は、CPU4001、RAM4002、通信I/Fコントローラ4003、USBI/Fコントローラ4004、内部メモリ4005、メモリコントローラ4006、ROM4007、機器I/Fコントローラ4008等を有する。
CPU4001はNIC700の制御を行うもので、内部で接続されている装置を制御する。
RAM4002は、CPU4001の主メモリ、ワークエリア等として機能する。CPU4001は、処理の実行に際して必要なプログラム等をROM4007あるいは内部メモリ4005からRAM4002にロードして、ロードしたプログラムを実行する。
通信I/Fコントローラ4003は、LAN150のようなネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPやUDP(User Datagram Protocol)などの通信プロトコルを用いた通信が可能である。
USBI/Fコントローラ4004は、カードリーダ400、マスストレージ500及びUSBハブ600などのUSB機器とNIC700を接続、通信するもので、USBの通信制御処理を実行する。
内部メモリ4005は、NIC700を制御するOSが搭載されており、またOS上で動作するアプリケーションプログラム、その設定情報を記憶する。
メモリコントローラ4006は、各種のアプリケーション、各種データ等を記憶する内部メモリ4005へのアクセスを制御する。
ROM4007は、読み出し専用の半導体メモリであり、電源を切っても内容が消えないことからブートプログラムが格納される。
機器I/Fコントローラ4008は、NIC700と印刷装置1000を接続、通信する。
次に、図6、16、17、19、20、21、22、23、24、25、26、27、30を参照しながら、セキュアプリントシステム1の全体の処理の流れについて説明する。
図6は、本発明に係るセキュアプリントシステム1の構成を示すブロック図、図16は、設定情報802の一例を示す図、図17は、認証キャッシュ860の詳細を示す図、図19は、ジョブ310の詳細を示す図、図20は、印刷情報管理ヘッダ311の詳細を示す図、図21は、ジョブ情報820の詳細を示す図、図22は、ジョブリスト805の詳細を示す図、図23は、実行リスト804の詳細を示す図、図24は、ファイルシステム501の詳細を示す図、図25は、ICカード410の詳細を示す図、図26は、ユーザ情報210の一例を示す図、図27は、LDAPディレクトリ201の詳細を示す図、図30は、印刷モード850の詳細を示す図である。
セキュアプリントシステム1は、LDAPサーバ200とクライアントPC300、印刷装置1000に接続されたNIC700が、双方向通信可能なLAN150を介して接続している。NIC700には、USB通信可能なUSBケーブル160を介して、マスストレージ500、USBハブ600及びカードリーダ400が接続している。
LDAPサーバ200は、LDAPディレクトリ201、LDAP機能部202、I/Fドライバ部190等を有する。LDAPサーバ200、は冗長構成をとることが可能で、複数台設置してもよい。
LDAPサーバ200は、システム内でのユーザ情報の検索という役割を有するため、ユーザ情報の格納及び検索機能を持つサーバであればLDAPサーバに限らない。
LDAPディレクトリ201は、図27に示すデータを格納している。
LDAPディレクトリ201は、データ群をまとめる最上位の単位Suffixの下に識別コードが1または複数配備されており、さらに、その識別コードの下に1または複数のユーザ情報210が格納される。
一般的に、識別コードはOU(Organization Unit)で構築される。また、Active
Directory(登録商標)では、Suffixがドメインという単位にあたる。
ユーザ情報210は、図26に示すようにカードID211、ユーザ名212、パスワード213、サブユーザ1 214、サブユーザ2 215、サブユーザ3 216、サブユーザ4 217、利用制限218等を有する。
カードID211は、図25に示すように、ユーザのICカード410のIDを登録するもので、suffixの中で一意となる値である。
ユーザ名212は、カードID211と一致するICカード410を保持しているユーザの名前である。
パスワード213は、ユーザの認証を行う際に、本人確認を行うために格納される。
サブユーザ1〜4 214〜217は、ユーザが使っているメインのユーザ名212とは別の名前で、ユーザが他のユーザの代理を行う場合に使用するユーザ名である。
利用制限218は、印刷装置1000を利用する上での制限情報が格納されている。
LDAP機能部202は、LDAPプロトコルに従って通信の接続、認証、検索、変更、追加、削除、切断等を行う。
接続では、接続要求を発行したクライアントに対して、論理的な通信経路を確保する。
認証では、認証要求を発行したユーザ名を、LDAPディレクトリ201内から検索し、パスワードの照合を行って認証結果を返答する。
検索では、検索要求を受けた値を元に、LDAPディレクトリ201から該当するユーザを検索し、一致したユーザ情報210を返答する。
I/Fドライバ部190は、LAN150等のネットワークを介して外部機器と接続・通信を行うもので、TCP/IPやUDPなどの通信プロトコルに従って通信を制御する。
クライアントPC300は、アプリケーション部301、プリンタドライバ部302、送信バッファ303、I/Fドライバ部190等を有する。
アプリケーション部301は、ユーザにグラフィックユーザインタフェースを提供し、ユーザの目的に適った画像データを生成する。
プリンタドライバ部302は、アプリケーション部301が生成した画像データを印刷装置1000で印刷可能なページ記述言語(PDL)データに変換する。さらに、PDLデータに対して、図20に示すようにジョブオーナ312、ジョブ名313等のジョブ情報を含んだ印刷情報管理ヘッダ311を付与し、図19に示すジョブ310を作成する。
送信バッファ303は、プリンタドライバ部302が作成したジョブ310を一時的に格納し、スプールを実現する。
USBハブ600は、USB通信部195等を有する。USBハブ600は、USBデータを中継し、USBハブ600に接続された機器のUSBデータを他の各機器へ転送する。
USB通信部195は、USB仕様に従ってコントロール転送、インタラプト転送、バルク転送、アイソクロナス転送などのデータ通信を行う。データ転送することが必要条件であり、転送速度やUSBバージョンなどは特に問わない。
マスストレージ500は、ファイルシステム501、ファイルシステム管理部502、USB通信部195等を有する。
図24に示すように、ファイルシステム501はジョブ310を内部記憶装置(図示しない)に格納する。また、ジョブ310の書き込み、読み込み、削除を行う。
カードリーダ400は、USB通信部195、カード読取部401等を有する。
カード読取部401は、ICカード410からカードID211を読み取るためのものである。ICカード410がカードリーダ400にかざされると、ICカード410からカードID211等の情報を読み取り、USB通信部195を介して接続された他機器に情報を伝達する。
NIC700は、アプリケーション800、NIC OS900等を有する。
アプリケーション800は、NIC OS900上で動作するプログラムである。
NIC OS900は、NIC700を制御すると同時に、NIC700上のアプリケーション800の管理、印刷装置1000への各種指示なども行う。
NIC700のアプリケーション800は、設定情報管理部801、設定情報802、LPR通信部803、実行リスト804、ジョブリスト805、LDAP通信部806、LDAPサーバ監視部807、印刷情報管理プロトコル解析部808、リスト管理部809、ユーザ通知部810、カードリーダ管理部811、ファイル管理部812、印刷指示部813、ビープ指示部814、パネル表示指示部815等を有する。
設定情報管理部801は、図16に示すアプリケーション800の実行に必要な設定情報802を管理するもので、設定情報802の書き込み、読み出しを行う。
クライアントPC300が、ブラウザを使ってアプリケーション800にアクセスしてアプリケーション800の設定情報を設定し、アプリケーション800がクライアントPC300からの指示を受け取ると、設定情報管理部801は、設定されたデータを設定情報802として保持する。
設定情報802は、Suffix831、識別コード832、プライマリサーバ833、プライマリポート834、セカンダリサーバ835、セカンダリポート836、ユーザ837、パスワード838等を有する。
Suffix831、識別コード832は、LDAPサーバ200に検索要求を発行する際、検索場所を指定する条件となる。
プライマリサーバ833、プライマリポート834、セカンダリサーバ835、セカンダリポート836は、LDAPサーバ200に接続するための情報である。LDAPサーバ200は冗長構成をとることができるため、プライマリ・セカンダリのように複数台の設定することが可能となっている。
ユーザ837、パスワード838は、LDAPサーバ200に認証要求を発行する際に必要な情報である。
LPR通信部803は、LPR印刷プロトコルを解析し、通信を行うもので、クライアントPC300からジョブ310を受け取る際のプロトコルを解析し、通信する。
ここでは、例示的にLPRと記したが、印刷プロトコルであれば特にLPRに限らない。
実行リスト804は、図23で示されるもので、図22に示すジョブリスト805のサブセットである。印刷を実施するときは、実行リスト804に格納されたジョブ情報820をもとに印刷指示を行う。
ジョブリスト805は、図21に示すジョブ情報820で構成されている。ジョブ情報820は、ジョブ310を管理するために必要な情報を抽出した情報で、ユーザ名821、ファイル名822、ジョブ名823、タイムスタンプ824等を有する。ジョブリスト805は、ファイルシステム501に格納されているジョブ310の情報をすべて保持している。
LDAP通信部806は、LDAPサーバ200とLDAPプロトコルに従って通信を行うもので、設定情報802のプライマリサーバ及びプライマリポートで指定されるLDAPサーバ200に接続する。
LDAP通信部806は、設定情報802のユーザ837及びパスワード838用いて認証を行う。また、LDAP通信部806は設定情報802のSuffix831、識別コード832を検索場所として、カードID211に紐づくユーザ情報210(図26)を検索する。プライマリにもセカンダリにもアクセスできなかった場合、図30で示される印刷モード850を「蓄積しない」に設定する。なお、印刷モード850は設定情報802と同様にアプリケーション800がRAM4002に記憶し管理する情報である。プライマリもしくはセカンダリにアクセスできた場合、図30で示される印刷モード850を「蓄積する」に設定する。印刷モード850のデフォルトの設定は「蓄積する」とする。なお、図30で示される情報は、RAM4002以外に、マスストレージ500または内部メモリ4005で管理するように構成することも可能である。
また、LDAP通信部806が検索を行った結果、ユーザ情報210が見つかった場合、ユーザ情報210を取得し、図17で示される認証キャッシュ860に、受信したカードIDを主キーとなるカードID211としてユーザ情報210と対応付けて登録しておく。これは、認証サーバ停止時でもカードID211からユーザ名を特定し認証できるようにするためである。なお、認証キャッシュ860は、設定情報802と同様にアプリケーション800がRAM4002に記憶し管理する情報である。なお、図17で示される情報は、RAM4002以外に、マスストレージ500または内部メモリ4005で管理するように構成することも可能である。
LDAPサーバ監視部807は、LDAPサーバ200とNIC700が通信できる状態にあるかどうかを定期的に監視する。実際の接続処理等は、LDAP通信部806を通じて行われる。監視処理中に、LDAPサーバ200とNIC700が通信できると判断した場合で、かつ印刷モード850が「蓄積しない」に設定されていた場合、印刷モード850を「蓄積する」に設定変更する。これにより、サーバダウン時の印刷切り替えの復帰を実現する。
印刷情報管理プロトコル解析部808は、ジョブ310に含まれる印刷情報管理ヘッダ311を解析する。印刷情報管理ヘッダ311は、PDLデータの先頭に付加されるバイナリデータで、様々なジョブ情報が含まれる。
印刷情報管理ヘッダ311に含まれるジョブオーナ312とジョブ名313を取得し、ジョブ情報820を作成する際、印刷情報管理プロトコル解析部808で解析した値を利用する。
リスト管理部809は、実行リスト804及びジョブリスト805を管理する。ジョブ310がファイルシステム501に書き込まれると、ジョブ情報820をファイル管理部812から受け取り、ジョブリスト805に追加して管理する。また、ジョブリスト805の中でLDAP通信部806から渡されたユーザ名に一致したジョブ情報820を抽出し、実行リスト804を作成する。リスト管理部809は、印刷完了時にファイル管理部812から通知を受け、該当するジョブ情報820をジョブリスト805から削除する。
ユーザ通知部810は、印刷装置1000を利用しているユーザに対して、エラーなどを通知する。ユーザ通知部810は、NIC OS900に対してビープ指示し、印刷装置1000からビープ音を鳴動させてユーザの聴覚に訴えたり、パネル表示指示を行って任意の文字を印刷装置1000のパネルに表示し、ユーザの視覚に訴えたりする機能を持つ。
カードリーダ管理部811は、NIC700にUSBケーブル160を介して接続されたカードリーダ400を制御するためのものである。ICカード410がカードリーダ400にかざされると、カードリーダ管理部811はカードID211を取得する。
ファイル管理部812は、ジョブ310をアプリケーション800内で管理する。ファイル管理部812は、ジョブ310を暗号化してファイルシステム501に格納したり、ジョブ310を復号化し、印刷指示部813にジョブ310を送ったり、あるいは、印刷指示部813へのジョブ投入が終わったタイミングで、該当するジョブ310をファイルシステム501から削除する。
印刷指示部813は、ファイル管理部812から送られてきた復号化されたジョブ310をNIC OS900に対して、印刷情報管理プロトコルを用いて印刷指示する。
ビープ指示部814は、ユーザ通知部810からのビープ指令を受け取って、NIC OS900に通知する。ビープ音に関しては、印刷情報管理プロトコル、JL、UDP等を使用したり、様々な方法でビープ鳴動を実現できるが、どの機能がサポートされているかは印刷装置1000によって異なる。ビープ指示部814は、印刷装置1000の種別による違いを吸収して適切なビープ指示を行う。
パネル表示指示部815は、MIB(Management Information Base)を使って印刷装置1000のパネル(図示しない)に任意のメッセージを表示させる。一定時間表示させることができない機種の印刷装置1000の場合は、数秒表示後に表示のリセットを行う。
次に、NIC OS900について詳細を説明する。
NIC OS900は、I/Fドライバ部190、USB通信部195、暗号/復号化部905、印刷情報管理プロトコル解析・通信部904、JL通信部903、UDP通信部902、MIB通信部901、通信制御部906を有する。
暗号/復号化部905は、データの暗号化及び復号化を行うためのものである。形式は固定のものではなく、DES(Data Encryption Standard)やトリプルDES,AES(Advanced Encryption Standard)等のブロック暗号化、及びRC4などのストリーム暗号化などを行うことができる。
印刷情報管理プロトコル解析・通信部904は、印刷情報管理プロトコルに従ってデータ通信を行うためのものである。印刷情報管理プロトコルは、印刷装置1000の制御を行うための通信プロトコルであり、印刷指示やビープ音鳴動等などが行える。
JL通信部903は、JL通信を行うためのものである。JLはジョブ制御言語であり、印刷装置1000の情報取得指令や、PDLデータの受信指令、印刷装置1000へのビープ指令などを行うことができる。
UDP通信部902は、UDP通信を行う。このUDP通信を使って、DNS(Domain Name System)クエリや、ビープ指令などを行うことができる。
MIB通信部901は、MIB通信を行うためのものである。MIBは、通信機器を管理するためのプロトコルで、印刷装置1000のパネル表示等を行う。
通信制御部906は、I/Fドライバ部190から受信したデータを、アプリケーション800に通知したり、印刷装置1000に渡したりする。
次に、印刷装置1000について説明する。
印刷装置1000は、I/Fドライバ部190、受信バッファ1001、送信バッファ1002、MIB通信部901、UDP通信部902、JL通信部903、印刷情報管理プロトコル解析・通信部904、LPR通信部803、パネル表示部1008、ビープ鳴動部1009、PDLトランスレータ部1011、機器DB部1010、描画バッファ1012、描画部1013、プリンタエンジン部1014を有する。
受信バッファ1001は、I/Fドライバ部190で受信した全データを一時的に確保し、処理遅延の緩衝材となる。
送信バッファ1002は、I/Fドライバ部190に送信する前の全データを一時的に確保し、処理遅延の緩衝材となる。
パネル表示部1008は、指定されたメッセージを印刷装置1000のパネルに表示する。
ビープ鳴動部1009は、印刷装置1000内蔵の鳴動装置(図示しない)を作動させ、音を鳴らす。
機器DB部1010は、JLにより設定された印刷装置1000の情報を格納し、PDLトランスレータ部1011に情報を提供する。ここでいう環境情報とは、例えば印刷枚数のことである。
PDLトランスレータ部1011は、PDLデータの翻訳処理を行い、描画に適した描画オブジェクトである中間データに変換を行う。
描画バッファ1012は、PDLトランスレータ部1011によって生成された描画オブジェクトの中間データを、実際に印刷を行うまで一時的に格納しておく。
描画部1013は、描画バッファ1012に一時格納された描画オブジェクトを実際に描画してビットマップ画像であるイメージデータを生成する。
プリンタエンジン部1014は、描画部1013が生成したビットマップ画像を受け取り、既知の印刷技術により用紙等のメディアに印刷を行う。
次に、図7、8、9、10、11、12、13、14、15、18、28を参照しながら、本発明に係るセキュアプリントシステム1の詳細な処理について説明する。
図7は、セキュアプリントシステム1の印刷ジョブ投入処理手順の一例を示すフローチャート、図8は、セキュアプリントシステム1の印刷ジョブ出力処理手順の一例を示すフローチャート、図9は、セキュアプリントシステム1の印刷ジョブ出力処理手順の一例を示すフローチャート、図10は、セキュアプリントシステム1の印刷ジョブ出力処理手順の一例を示すフローチャート、図11は、セキュアプリントシステム1の印刷ジョブ出力処理手順の一例を示すフローチャート、図12は、セキュアプリントシステム1の印刷ジョブ出力処理手順の一例を示すフローチャート、図13は、セキュアプリントシステム1の出力処理の詳細手順の一例を示すフローチャート、図14は、セキュアプリントシステム1のLDAPサーバ監視処理手順の一例を示すフローチャート、図15は、セキュアプリントシステム1のユーザ通知処理手順の一例を示すフローチャート、図18は、印刷装置1000に表示するメッセージの一例を示す図、図28は、セキュアプリントシステム1の標準印刷処理の詳細手順の一例を示すフローチャートである。
以下では、NIC700が行う処理について、アプリケーション800の機能とNIC OS900との機能を区別して記載する。そのため、便宜上、処理の主体は、アプリケーション800とNIC OS900とする。但し、実際には、処理を行う主体は、NIC700である。ハードウエアであるNIC700は、ソフトウエアであるアプリケーション800またはNIC OS900と協働して、後述する処理を実行する。
図7では、NIC700は、クライアントPC300から、印刷データを受付ける。また、NIC700は、受け付けた印刷データをマスストレージ500に記憶する。また、NIC700は、印刷データを印刷装置1000に送信する。
図7に示すように、セキュアプリントシステム1へのジョブ投入の処理では、クライアントPC300のアプリケーションが、プリンタドライバを介してジョブ310を生成する(ステップS001)。
クライアントPC300が、生成されたジョブ310をNIC OS900に対して送信すると(ステップS002)、NIC OS900はクライアントPC300から送信されたデータを受信し、アプリケーション800に受信データを逐次転送する(ステップS003)。
なお、本実施形態ではクライアントPC300からNIC700がジョブ310を受信する構成としたが、クライアントPC300からプリントサーバ(不図示)へジョブ310を送信して、プリントサーバ経由でNIC700がジョブ310を受信する構成とすることも可能である。
アプリケーション800は、NIC OS900から受信した(受け付けた)ジョブ310の印刷情報管理ヘッダ311を解析し、ジョブオーナ及びジョブ名を取得し(ステップS004)、アプリケーション800はジョブ情報820を作成する(ステップS005)。
具体的には、取得したジョブオーナ312をユーザ名821(ユーザ識別情報)として、取得したジョブ名313をジョブ名823として格納する。また、アプリケーション内で一意となる文字列を生成してファイル名822とする。タイムスタンプ824は、ファイル書き込み後に記憶する。
アプリケーション800は、印刷モード850の設定を取得し、取得した設定に応じて分岐処理を行う(ステップS006)。
本実施形態では、クライアントPC300から印刷する際には、ユーザがマスストレージ500を使った印刷方法か、LDAPサーバ200と通信できずにそのまま印刷装置1000から出力する印刷方法かを意識する必要はない。言い換えると、印刷出力する際に、LDAPサーバ200と通信できているのか否かに応じて印刷モードを自動で変更することができるため、LDAPサーバ200と通信できる時にはマスストレージ500からジョブ310を取得して印刷させ、LDAPサーバ200と通信できないときにはマスストレージには蓄積させずに印刷することができ、セキュリティの高いプリントシステムとユーザビリティの高いプリントシステムを両立したプリントシステムを実現することができる。
また、後述する認証キャッシュを確認することにより、マスストレージ500にジョブを蓄積させ、ユーザ認証がされた場合にジョブ310を取得して印刷させることができるため、さらにセキュリティを高めたプリントシステムを実現することができる。
ステップS006で印刷モードが、印刷データを蓄積するモードか否かを判定した結果、印刷モード850が「蓄積しない」に設定されている場合、アプリケーション800は、認証キャッシュ860の状態によって分岐処理を行う(ステップS007)。つまり、「蓄積しない」モードの場合には、LDAPサーバ 200と通信できなかった場合であるため、認証キャッシュを確認する処理へ移行する。
ステップS007では、認証キャッシュ860に格納されているユーザ情報210にジョブ310を投入したユーザと同じユーザ名212(ユーザ識別情報)があるか(一致するユーザ名があるか)を判定する(第1のユーザ識別情報判定)。なお、ジョブ310を投入したユーザは、ステップS005で作成したジョブ情報820のユーザ名821に対応するユーザである。
LDAPサーバ200と接続できない場合、投入されたジョブ310を蓄積せずにそのまま出力することで、業務を止めないシステムを実現している。しかし、投入されたジョブ310を蓄積せずにそのまま出力することは、業務は止めないものの、セキュリティの低下を招くことになる。そこで、本実施形態では、ジョブ投入時に認証キャッシュ860を確認しユーザ情報210があればそのジョブ310を蓄積することで、セキュリティの低下を防ぎ、かつ業務も止めないシステムを実現している。
詳細は後述するが、認証キャッシュ860にジョブ310を投入したユーザのユーザ名が含まれていれば、LDAPサーバ200と通信できない場合も認証を行うことが可能であり、ジョブ投入時にそのジョブを蓄積する。また、認証キャッシュ860に格納されているユーザ情報210に、ジョブ310を投入したユーザのユーザ名が含まれていない場合は、蓄積せずにそのジョブ310をそのまま出力する。
認証キャッシュ860に、ユーザ名が見つからなかった場合、アプリケーション800は、図29で示す標準印刷処理をNIC OS900に依頼する。この標準印刷処理とは、クライアントPC300から投入したジョブ310をマスストレージ500に蓄積することなく、そのまま出力する印刷方法である。
ステップS006で印刷モードが、印刷データを蓄積するモードか否かを判定した結果、印刷モード850が「蓄積する」に設定されている場合、もしくは、印刷モード850が「蓄積しない」に設定されているが、認証キャッシュ860にユーザ名が見つかった場合、アプリケーション800は、ジョブ310を暗号化するため、ジョブ310のデータをNIC OS900に渡し、暗号化鍵や暗号化アルゴリズムなどを指定する(ステップS012)。
NIC OS900は、渡されたジョブデータを指定されたパラメータを用いて暗号化する(ステップS013)。
アプリケーション800は、ステップS014でNIC OS900が暗号化したジョブをファイルシステム501に書き込むために、NIC OS900に書き込み(記憶)指示をする(印刷データ記憶指示)。
ファイルシステム501にジョブ310を書き込むことにより、従来のようにプリンタサーバ101にジョブ310を書き込む必要がなくなる。これにより、プリンタサーバ101を不要なものとし、よりセキュリティの高いセキュアプリントシステムを実現している。また、プリンタサーバ101が不要なため、サーバを設置するコストや、セキュアプリントシステム導入におけるサーバ設置の設定などの手間が省ける。さらに、万が一、マスストレージ500が印刷装置1000から取り外された場合も、ジョブ310は暗号化して書き込まれているため、ジョブ310内のPDLデータを読み取られる心配はなく、より高いセキュリティを実現している。
NIC OS900が、ジョブ310の書込み指示を受けると、ジョブ310を取得してマスストレージ500に伝達する(ステップS015)。マスストレージ500は暗号化されたジョブ310をファイルシステム501に書き込む(ステップS016)。
NIC OS900が、暗号化されたジョブ310のファイルシステム501への書き込み処理をアプリケーション800に伝達すると(ステップS017)、アプリケーション800はファイルシステム501にジョブ310を書き込み終了した時点のタイムスタンプを取得し、ジョブ情報820のタイムスタンプ824に格納する(ステップS018)。
アプリケーション800は、作成したジョブ情報820をジョブリスト805に格納する(ステップS019)。
次に、図8、9、10、11、12を参照しながら、セキュアプリントシステム1のジョブ出力の処理について説明する。
図8では、NIC700は、ユーザ情報210を含む認証要求をLDAPサーバ200に送信する。また、NIC700は、LDAPサーバ200と通信できるか否かを判断する。また、LDAPサーバ200と通信できない場合、NIC700は、印刷データをマスストレージ500に記憶する設定を解除する。また、認証サーバと通信可能、かつ印刷データをマスストレージ500に記憶する設定が解除されている場合、NIC700は、その設定を再設定する。
図8に示すように、カードリーダ400は、ICカード410を検知して、内部に記録されているカードID211を読み取り(ステップS100)、NIC OS900は読み取った情報をアプリケーション800に伝達する(ステップS101)。
アプリケーション800は、カードID211(読取対象物識別情報)をNIC OS900から受信する(読取対象物識別情報受付)と印刷モード850を確認する(ステップS102)。
印刷モード850を確認し、印刷モード850が「蓄積する」に設定されている場合、アプリケーション800は設定情報802をもとに、LDAPサーバ200に接続を試みる(ステップS103)。また、印刷モード850が「蓄積しない」に設定されている場合、ステップS107へ処理を移す。
ステップS106で後述するが、印刷モード850が「蓄積しない」とはLDAPサーバ200と通信できない状態を示し、LDAPサーバ200と通信できない場合に認証キャッシュ(ユーザ情報記憶)を確認する。
LDAPサーバ200に接続は、アプリケーション800は、設定情報802を参照し、プライマリであるLDAPサーバ200aのプライマリポートに対して接続を行い、仮に接続できなかった場合は、セカンダリであるLDAPサーバ200bのセカンダリポートに対して接続を行う。
なお、ステップS102で、印刷モード850が「蓄積しない」に設定されていても、LDAPサーバ200に通信を行い通信が確立できる場合は、印刷モード850を「蓄積する」に変更し(モード設定)、ステップS109の処理に遷移するように構成する。
NIC OS900は、接続要求をもとにLDAPサーバ200に接続を試行し(ステップS104)、アプリケーション800は、接続試行が成功したか否かで分岐処理を行う(ステップS105)。言い換えるとLDAPサーバ200への通信が可能か否かを判断する(通信判断)。
より詳細には、プライマリであるLDAPサーバ200a、およびセカンダリであるLDAPサーバ200bの両方に接続できなかった場合、接続失敗とみなす。
そして、アプリケーション800は、ステップS106で印刷モード850を「蓄積しない」に変更し(モード設定)、認証キャッシュの確認を行う(ステップS107)。
LDAPサーバ200に接続できなかった場合、印刷モード850を「蓄積しない」に変更するため、次回の印刷からはマスストレージ500にジョブ310を保存せずに、印刷装置1000から直接印刷することになる。従って、LDAPサーバ200と通信できない状態のときも印刷物を出力することが可能となる。
アプリケーション800は、認証キャッシュ860の確認を行う(ステップS107)。より詳細には、前段のステップS100で取得したカードID211が認証キャッシュ860に登録されている1または複数のカードID211のいずれかに一致するかどうかを確認する(第2のユーザ識別情報判定)。
ステップS107の結果、認証キャッシュ860に一致するカードID211があった場合は、アプリケーション800は、カードID211に紐付けられたユーザ情報210を取得する(ステップS108−1)。
一方、ステップS107の結果、認証キャッシュ860に一致するカードID211が見つからなかった場合は、アプリケーション800は、図18に示すメッセージからメッセージ2の「APサーバエラー」を選択し、ユーザ通知処理を行う(ステップS108−2)。
認証キャッシュ860の確認を行うことで、LDAPサーバ200に接続できない場合でも認証を行うことが可能となり、業務を止めないシステムを実現している。また、認証キャッシュ860にカードIDに対応するユーザ情報210が見つからない場合は、エラーメッセージを通知している(ステップS108−2)が、実際はこの状況でユーザがICカード410をかざすことはない。前述のように(ステップS007)、ジョブ投入時に認証キャッシュ860の有無を確認しており、認証キャッシュ860にユーザが存在しない場合は、投入されたジョブ310を蓄積せずにそのまま出力するからである。よって、万一、認証キャッシュ860にユーザが存在しなかった場合でも、業務を止めることのないシステムを実現している。
次に、図9に示すように、プライマリであるLDAPサーバ200a、あるいはセカンダリであるLDAPサーバ200bのいずれかに接続できた場合、アプリケーション800はLDAP認証を行う(ステップS109)。
設定情報802のユーザ837及びパスワード838をLDAPサーバ200に送信し、認証要求を発行する。なお、この認証処理に関しては、LDAPサーバ200が認証をしなければ検索をさせないという強固なセキュリティが施されている場合の処理である。他の実施形態として、検索を行うにあたって認証が必要ない設定(非認証の設定)がなされていた場合は、認証に伴うS109からS114までの処理を省略してもよい。
NIC OS900は、アプリケーション800から伝達されたデータをLDAPサーバ200に送信する(ステップS110)。
LDAPサーバ200は、LDAPサーバ200が送信したデータのユーザ名でLDAPディレクトリ201を検索する。ユーザが見つかった場合、送信されたデータと対応するユーザのユーザ情報210に含まれるパスワード213を照合し、認証結果を返答する(ステップS111)。
NIC OS900が、LDAPサーバ200から受信したデータをアプリケーション800に伝達すると(ステップS112)、アプリケーション800はLDAP認証結果を受け取る(ステップS113)。
アプリケーション800は、前段S113での認証結果の可否により分岐処理を行い(ステップS114)、認証に失敗した場合、図18に示すメッセージからメッセージ2の「APサーバエラー」を選択し、ユーザ通知処理を行う(ステップS115)。
認証に成功した場合、アプリケーション800は設定情報802をもとにカードID211の検索(読取対象物識別情報を含む認証要求)をLDAPサーバ200に対して送信する。(ステップS116)。
アプリケーション800は、設定情報802のSuffix831と識別コード832を用いて検索位置を指定する。
NIC OS900は、アプリケーション800から伝達されたデータをLDAPサーバ200へ送信する(ステップS117)。
LDAPサーバ200は、アプリケーション800から送信されたデータをもとにLDAPディレクトリ201を検索し、検索結果を返信する(ステップS118)。
指定されたSuffix831及び識別コード832以下にあるデータの中から、指定されたカードID211を探し、見つかったユーザ情報210を送信する。Suffix831や識別コード832は、LDAPディレクトリ201中のユーザの位置を特定するために指定する情報であり、一般的にLDAP検索の際にSearchBaseとして指定される値である。
NIC OS900が、LDAPサーバ200から受信したデータをアプリケーション800に伝達すると(ステップS119)、アプリケーション800はLDAPサーバ200からの検索結果を取得する(ステップS120)。
次に、図10に示すように、アプリケーション800は、LDAPサーバ200からの検索結果を見てユーザ情報210が取得できたか、即ち、ユーザが存在したか否かにより分岐処理を行う(ステップS121)。
ユーザ情報210が取得できない場合、アプリケーション800は図18に示すメッセージからメッセージ3の「APユーザミトウロク」を選択し、ユーザ通知処理を行う(ステップS122)。
ユーザ情報が取得できた場合、アプリケーション800はユーザ情報210の利用制限をもとに、ユーザに利用権があるか否かで分岐処理を行う(ステップS123)。
利用制限には様々な設定方法が考えられるが、例えば、4桁の数字で利用権限を表現し、1桁目がプリンタの利用権限、2桁目がコピーの利用権限、3桁目がスキャンの利用権限、4桁目がファクスの利用権限とする。そして、その値が“0”は「使用不可能」、“1”は「モノクロのみ使用可能」、“2”は「カラーモノクロ双方利用可能」とする。そして、ユーザ情報210内の利用権限を参照し、プリンタの項目が“0”ならば「権限なし」、“1”あるいは“2”ならば「権限あり」、とみなすという方法が考えられる。
利用権限がない場合、アプリケーション800は図18に示すメッセージからメッセージ4の「APユーザエラー」を選択し、ユーザ通知処理を行う(ステップS124)。
また、ステップS123の結果、権限がある、と判断できた場合、アプリケーション800はユーザ情報210をキャッシュする(ステップS124−1)。
具体的には、ステップS100で取得したカードID211を、認証キャッシュ860の主キーとなるカードID211とする。またそのカードID211に紐づくユーザ情報210として、ステップS111で取得したユーザ情報210を認証キャッシュ860に設定する。言い換えると、読取対象物識別情報とユーザ識別情報を含むユーザ情報を対応付けて記憶する。
また、すでに認証キャッシュ860に同じカードID211が登録されていた場合、この設定を上書きする。これはLDAPサーバ200上のデータが更新された場合、認証キャッシュ860のデータが古いまま残るのを避けるためである。
また、取得したユーザ情報210がステップS108−1のように認証キャッシュ860から取得したユーザ情報210であった場合は、認証キャッシュ860の上書きは行わない。これは同一のデータであることは明白なので、余計な処理をしてパフォーマンス低下を招くことを避けるためである。
図11では、NIC700は、LDAPサーバ200と通信できる場合、マスストレージ500からユーザ情報210に応じた印刷データを取得する。
図11に示すように、利用権限がある場合、アプリケーション800は取得したユーザ情報210内のユーザ名をキーとして、ジョブリスト805の中からユーザ名が一致するジョブ情報820を抽出する(ステップS125)。
アプリケーション800は、抽出したジョブ情報820をリストにして実行リスト804を作成する(ステップS126)。
アプリケーション800は、取得したユーザ情報210の中からサブユーザを取得する(ステップS127)。
直前にサブユーザ1を取得していれば、次のサブユーザ2を取得する。サブユーザに関連するS127からS130までの一連の処理は、一人のユーザで複数ユーザの印刷物を出力させるために行う処理である。例えば、従来はICカード一枚につき1ユーザまでしか登録できなかったため、秘書が上司の印刷物を出力したい場合はICカードを借りる必要があった。また、一人で2台のPCを使っているユーザは2枚のICカードを携帯する必要があった。この一連のサブユーザに関連する処理を行うことにより、上記問題を解決し、1枚のICカードで複数ユーザの印刷物を出力することが可能となる。
アプリケーション800は、取得したサブユーザをチェックし(ステップS128)、サブユーザ4までのすべてのサブユーザを取得した場合、あるいは、サブユーザが取得できなかった場合、登録されていなかった場合はS131へ進む。
サブユーザが取得できた場合、アプリケーション800はサブユーザに一致するジョブ情報820をジョブリスト805の中から抽出し(ステップS129)、抽出したジョブ情報820を実行リスト804に加える(ステップS130)。
すべてのサブユーザを取得すると、アプリケーション800は作成した実行リスト804をソートする(ステップS131)。
ジョブ情報820をタイムスタンプ824でソートし、続いてユーザ名821でソートし、ユーザ名821のまとまりで時系列に並び替えられる。このソートにより、複数ユーザの印刷物を出力したいときにユーザ毎にまとまった出力物が得られ、分別の手間が省ける。また、各ユーザの印刷物はタイムアウト順に並んでいるため、印刷実行したユーザの指示通りの順番になりユーザにわかりやすい出力順になる。また、ソートの仕方についてはこの方法に限られず、ユーザ名でソートし、続いてタイムスタンプでソートしてもよい。
次に、図12に示すように、アプリケーション800は、実行リスト804内のジョブ情報820の数をチェックし(ステップS132)、0件の場合、図18に示すメッセージからメッセージ5の「APジョブナシ」を選択し、ユーザ通知処理を行う(ステップS133)。
実行リスト804内のジョブ情報820の数が1件以上の場合、アプリケーション800は実行リスト804内のジョブ情報820の数で、ループ処理を行う(ステップS134)。すべてのジョブ情報820を参照すると、ループ処理を終了する。このループ処理とは、実行リストにある全てのジョブ情報820に関して、ステップS135からステップS137を行う処理である。ステップS134では、つまり、実行リストにある全てのジョブ情報820について、当該処理を終えたかを判定し、当該処理を終えた判定すると、ステップS138へ進む。
アプリケーション800は、ジョブ投入可否を判定する(ステップS135)。通常、印刷機器はRAMに制限があるため、一度に投入できる印刷ジョブを制限している。ジョブ投入可否を判定するのは、投入制限を越えているにも関わらずジョブを投入してしまい、印刷が失敗してしまうことを防ぐためである。
次に、アプリケーション800はウエイト処理を行う(ステップS136)。このウエイト処理は、ジョブが投入制限を越えて投入できない場合にループ(ステップS135からステップS137)を回り続け、CPUを占有してしまう現象を防ぐ。
アプリケーション800は、図13に示す出力詳細処理を行い(ステップS137)、実行リスト804内のジョブ情報820をすべてクリアする(ステップS138)。
次に、図13を参照しながら、セキュアプリントシステム1のジョブ出力処理について説明する。
図13では、NIC700は、印刷データを印刷装置1000に送信する。
図13に示すように、アプリケーション800は、上位から渡されたジョブ情報820をもとに、ファイルシステム501内からジョブ310を取得する取得指示する(ステップS201)。アプリケーション800は、ジョブ情報820に格納されているファイル名822に一致するファイルシステム501内のファイルの取得をマスストレージ500に要求する。
NIC OS900が、アプリケーション800からの指令をマスストレージ500に伝達すると(ステップS202)、マスストレージ500はファイルシステム501から指定のファイルを読み込んで、アプリケーション800に返し(ステップS203)、NIC OS900がマスストレージ500からの指令をアプリケーション800に伝達する(ステップS204)。
アプリケーション800は、ジョブ310を取得する(第2の印刷データ受付)。取得したジョブ310の復号化をNIC OS900に要求し、同時に復号化キーや復号化アルゴリズム等を指定する(ステップS205)。
NIC OS900は、データの復号化処理を行い(ステップS206)、アプリケーション800は復号化されたジョブ310の印刷指示し出力を行う(ステップS207)。
NIC OS900は、アプリケーション800から出力されたジョブ310と印刷指示を受け取り、印刷装置1000に印刷情報管理プロトコル通信を用いてジョブ310の印刷指示を送る(ステップS208)。
印刷装置1000は、ジョブ310を受け取って受信バッファに格納し、スプール処理を行う(ステップS209)。受信バッファへの格納が終了すると、印刷装置1000は印刷終了を待たずに制御をNIC OS900へ戻す。
印刷装置1000は、スプールされたジョブ310のデータの印刷情報管理ヘッダ311を解析する(ステップS210)。解析したデータは、図示しない内部ログデータなどに利用される。
印刷装置1000は、ジョブ310内のPDLデータを解析して描画オブジェクトの中間データを作成して、中間データをもとにビットマップイメージを作成し(ステップS211)、作成したビットマップイメージを既知の印刷技術により用紙等のメディアに印刷を行う(ステップS212)。
NIC OS900が、印刷装置1000の指令をアプリケーション800へ伝達すると(ステップS213)、アプリケーション800は該当するジョブ310をファイルシステム501からの削除をマスストレージ500に要求する(ステップS214)。
NIC OS900が、アプリケーション800の指令をマスストレージ500へ伝達すると(ステップS215)、マスストレージ500は指定されたジョブ310をファイルシステム501から削除する(ステップS216)。
NIC OS900は、マスストレージ500からの指令をアプリケーション800へ伝達する(ステップS217)。
次に、図14を参照しながら、セキュアプリントシステム1のLDAPサーバ監視処理について説明する。
図14では、NIC700は、一定間隔でLDAPサーバ200と通信可能かどうかを確認する。また、NIC700は、LDAPサーバ200と通信可能、かつ印刷データをマスストレージ500に記憶する設定が解除されている場合、その設定を再設定する。
図14に示すように、アプリケーション800が、LDAPサーバ監視処理をスレッドとしてNIC OS900に登録し、処理を開始すると(ステップS301)、NIC OS900はアプリケーション800が終了したかどうかをチェックする(ステップS302)。
アプリケーション800が終了していない場合、アプリケーション800は設定情報802に設定されたプライマリであるLDAPサーバ200a及びセカンダリであるLDAPサーバ200bのポートへの接続をNIC OS900に要求し(ステップS303)、NIC OS900は指定された2つのLDAPサーバ200に接続を行う(ステップS304)。
アプリケーション800は、プライマリであるLDAPサーバ200aまたはセカンダリであるLDAPサーバ200bのいずれかに接続できたかどうか確認を行い(ステップS305)、接続できた場合、印刷モード850を確認する(ステップS306)。
印刷モード850が「蓄積しない」に設定されていた場合、アプリケーション800は印刷モード850を「蓄積する」にモード設定する(ステップS307)。
アプリケーション800は、ウエイト処理を行い、ループによりCPUを占有してしまう可能性を回避する(ステップS308)。
次に、図15を参照しながら、セキュアプリントシステム1のユーザ通知処理について説明する。
図15に示すように、アプリケーション800は、上位から伝達されたメッセージ文字列を取得し(ステップS501)、ビープ音鳴動、及び指定のメッセージ表示をNIC OS900に要求する(ステップS502)。
NIC OS900は、印刷装置1000の種別を判定し、適切な方法を使ってビープ音鳴動を指示する(ステップS503)。例えば、機種によってUDP、印刷情報管理プロトコル、JLを使用したりするため、その情報をNIC OS900が吸収し、印刷装置1000の機種にあった方法でビープ音鳴動指示をする。パネル表示については、MIBを用いて表示指示を印刷装置1000に送る。
印刷装置1000は、指令を受け取り、ビープ音を鳴動させ(ステップS504)、パネルに指定されたメッセージを表示させる(ステップS505)。
次に、図29を参照しながら、セキュアプリントシステム1の標準印刷処理について説明する。
図29では、NIC700は、印刷装置1000に印刷データを転送し、印刷装置1000は印刷データを解析し、印刷物を出力する。
図29に示すように、NIC OS900は上位から受け取ったジョブ310を印刷装置1000に転送(出力)し(ステップS401)、印刷装置1000は転送されたジョブ310を受け付け、受信バッファ1001に格納し、スプール処理を行う(ステップS402)。
印刷装置1000は、スプールされたジョブ310の印刷情報管理ヘッダ311を解析する(ステップS403)。解析したデータは、図示しない内部ログデータなどに利用される。
印刷装置1000は、ジョブ310内のPDLデータを解析し、描画オブジェクトの中間データを作成し、さらにその中間データをもとにビットマップイメージを作成する(ステップS404)。
印刷装置1000は、作成したビットマップイメージをプリンタエンジン部1014を介して用紙等のメディアに印刷を行う(ステップS405)。
次に、図28を参照しながら、本発明に係るセキュアプリントシステム1の全体の処理概要について説明する。
図28は、セキュアプリントシステム1の全体の処理概要を示す図である。
ユーザがクライアントPC300にログインし(ステップ1−1)、データの印刷指示を行う(ステップ1−2)。
プリンタドライバは、印刷装置1000に対して、データからジョブを生成して送信する(ステップ2−1)。ここで、印刷モード850がジョブを蓄積しない設定になっていて、認証キャッシュ860にジョブを投入したユーザが存在しない場合は、ジョブはそのまま印刷装置1000から出力される(ステップ2−2A)。一方、印刷モード850がジョブを蓄積する設定になっている場合は、マスストレージ500に格納する(ステップ2−2B)。
印刷指示をしたユーザが、カードリーダ400にICカード410をかざす(ステップ3−1)。カードリーダ400は、ICカード410からカードID211を読み取って、印刷装置1000に通知する(ステップ3−2)。
印刷装置1000は、受け取ったカードID211に一致するユーザ名をLDAPサーバ200に問い合わせる(ステップ4−1)。LDAPサーバ200は、LDAPディレクトリ201内を検索し、検索したユーザ名を印刷装置1000に送信する(ステップ4−2)。同時にカードID211とユーザ名を含むユーザ情報210を認証キャッシュ860に記憶する。
このとき、印刷装置1000がLDAPサーバ200と通信可能でない場合は、認証キャッシュ860のユーザ情報210からユーザ名を取得する。
印刷装置1000は、マスストレージ500内からユーザ名に一致するジョブを取得し(ステップ5−1)、該当するジョブを印刷装置1000に渡す(ステップ5−2)。
印刷装置1000は、受け取ったジョブを出力する(ステップ6−1)。
このように本発明の実施の形態によれば、例えば認証サーバがダウンするなどの理由により認証できない場合にも、印刷業務を滞らせないための仕組みを提供することができる。
本発明に係るセキュアプリントシステム1では、認証サーバが何らかの理由で動作しない場合でも、印刷を行うことが可能であるため、ユーザの業務をとめることがない可用性の高いシステムとなる。
また、本発明に係るセキュアプリントシステム1では、プリンタサーバを使わないため、プリンタサーバに印刷データが蓄積されセキュリティホールになるという問題が解消され、より機密性の高いシステムとなる。また、プリンタサーバを使わないため、セキュアな印刷を行う際の環境構築コストを削減でき、より安価なシステムとなる。
さらに、本発明に係るセキュアプリントシステム1では、プリンタサーバを使わないことにより、セキュアな印刷を行う蓄積印刷の場合も、あるいは、認証サーバが停止したときの蓄積印刷をしない場合でも、クライアントは違いを意識せずにまったく同じ操作で印刷ジョブを投入できるため、ユーザの利便性がより高いシステムとなる。
また、本発明に係るセキュアプリントシステム1では、プリンタサーバを用いず、プリンタドライバの設定変更も不要なことから、導入設置が容易に行え、より手間のかからないシステムとなる。
以上、添付図面を参照しながら本発明に係るセキュアプリントシステムおよびネットワークインタフェース装置等の好適な実施形態について説明したが、前述した実施の形態に限定されない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。