説明

ネットワークインタフェース装置、印刷制御方法、印刷制御プログラム、および画像形成装置

【課題】 認証サーバがダウンするなどの理由により印刷方法が切り替わることによって未出力となってしまう印刷データを出力させることが可能な仕組みを提供する。
【解決手段】 NICアプリケーション800の印刷ジョブ受付処理において、LDAPサーバ200へ接続可能(第1の印刷モード)であればジョブをマスストレージ500に格納し、接続不可能な場合(第2の印刷モード)、印刷データをマスストレージ500に格納することなく出力する。このとき、出力フラグが「false」ならば当該印刷データを削除し印刷は行わない。また、認証済みのユーザについてユーザ認証情報を認証キャッシュに記憶しておき、第2の印刷モードでのユーザ認証で、認証キャッシュに記憶されていれば当該ユーザについて印刷予約し、その後の第2の印刷モードの受付処理において、印刷予約があれば、当該ユーザについてマスストレージ500に格納されているジョブを出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷データを生成する情報処理装置と、ユーザの認証を行う認証サーバと通信可能に接続される画像形成装置に設けられるネットワークインタフェース装置、印刷制御方法、印刷制御プログラム、画像形成装置に関する。
【背景技術】
【0002】
従来から、ユーザが印刷装置からサーバ上に一時蓄積された印刷データに対して印刷要求を行うことで、印刷装置から印刷データの出力を可能にする所謂「プルプリント(蓄積印刷)」のプリントシステムが提案されている。
「プルプリント(蓄積印刷)」のプリントシステムの例として、特許文献1が挙げられる。特許文献1には、複合機に認証機能を備え、セキュリティを考慮した印刷制御システムが開示されている。
【0003】
特許文献1は以下の通りである。
特許文献1の図4に示されるように、まず、ユーザは、クライアントPC(Personal Computer)100にログインする((1)−1)。そしてクライアントPC100からプリンタへの印刷指示を行う((1)−2)。そして、クライアントPC100は、生成した印刷データをプリントサーバ200に送信して((2)−1)、プリントサーバ200の所定の格納場所に格納させる((2)−2)。この時点で印刷装置へは印刷データを送信しない。
次に、クライアントPC100は、プリントサーバ200に送信した印刷データの書誌情報データを生成し、該生成した書誌情報データを印刷管理サーバ400に送信して、印刷管理サーバ400の所定の格納場所に格納させる((3)−1)。印刷管理サーバ400は、クライアントPC100から書誌情報データファイルが格納されると、該書誌情報データファイルを解析し書誌情報を書誌情報DBに登録する((3)−2)。次に、複合機300は、カードリーダによりICカード410を検知すると、該ICカード410内の個人認証情報を読み取り、該読み取った個人認証情報を認証要求として印刷管理サーバ400に送信する((4)−1)。印刷管理サーバ400は、複合機300より個人認証情報を受信すると、該個人認証情報の認証処理を印刷管理サーバ400の外部記憶装置上に記憶されるICカード認証用テーブルに基づいて行い、認証結果を複合機300に返信する((4)−2)。
【0004】
次に、複合機300は、印刷管理サーバ400から、認証に成功した旨の認証結果(クライアントPC100のログインユーザID)を受信すると、印刷管理サーバ400に印刷データ一覧要求を送信する((5)−1)。
なお、印刷データ一覧要求には、クライアントPC100のログインユーザIDが含まれているものとする。印刷管理サーバ400は、複合機300から印刷データ一覧要求を受信すると、該印刷データ一覧要求に含まれるログインユーザIDで書誌情報DBを検索して、該ログインユーザIDに対応する印刷データ一覧を生成し、複合機300に返信する((5)−2)。複合機300は、印刷管理サーバ400から印刷データ一覧を受信すると、該印刷データ一覧を操作部308のUI上に表示する。そして、ユーザにより、印刷データが選択され、印刷指示がなされると、複合機300は、該選択された印刷データの印刷要求(出力指示)を印刷管理サーバ400に送信する(6)。
【0005】
印刷管理サーバ400は、複合機300から印刷データの印刷要求(出力指示)を受信すると、該出力指示がなされた印刷データの書誌情報を、クライアントPC100のログインユーザ名,印刷データのタイムスタンプをキーにして書誌情報DBから検索し、該検索した書誌情報から該当する印刷データを格納しているプリントサーバ200を特定し、該プリントサーバ200に該当する印刷データの印刷指示を送信する(7)。プリントサーバ200は、印刷管理サーバ400から印刷指示を受信すると、該印刷指示に基づいて印刷データを複合機300に送信して複合機300で印刷させる(8)。
【0006】
上記の方法によれば、印刷物が出力されるのは、ユーザが印刷装置からサーバ上に印刷要求を行ったときとなるので、印刷物が長時間放置されることを防ぐことができ、セキュアなプリントシステムを実現できる。
【特許文献1】特開2006−99714号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、認証サーバがダウンしているときなど、認証サーバと通信できない場合、認証ができないために印刷することができず、業務を滞らせてしまうという問題があった。
この問題を解決するためには、ユーザから送信された印刷データを一旦サーバに蓄積し、ユーザが印刷装置からサーバに印刷要求を行ったときに蓄積された印刷データを印刷する第1の印刷方法と、送信された印刷データを蓄積せずに、そのまま出力する第2の印刷方法を備え、通常は第1の印刷方法を用い、認証サーバが止まったときに第2の印刷方法に切り替える仕組みが考えられる。
これにより、認証サーバが使えない場合も印刷ができ、業務を滞らせないシステムが実現できる。
【0008】
しかし、このように印刷方法を切り替える技術の場合、第1の印刷方法から第2の印刷方法に切り替わった時、サーバに蓄積された印刷データを印刷することができないという問題がある。
例えば、第1の印刷方法のときに印刷データを100ジョブ投入していて、認証サーバが停止し、第2の印刷方法に切り替わった場合、ユーザは再び100ジョブの印刷データを投入しなければならず、非常に不便である。
また、第2の印刷方法から第1の印刷方法に切り替わったときに、サーバに蓄積されている不要な印刷データを削除することができないという問題もある。
【0009】
そこで、本発明の目的は、例えば認証サーバがダウンするなどの理由により印刷方法が切り替わることによって未出力となってしまう印刷データを出力させることが可能な仕組みを提供することである。
【課題を解決するための手段】
【0010】
前述した目的を達成するために第1の発明は、画像形成装置に接続され、印刷データを送信する情報処理装置と、ユーザの認証を行う認証サーバと通信するネットワークインタフェース装置であって、前記情報処理装置から、印刷データを受け付ける受付手段と、前記印刷データを記憶する記憶手段と、ユーザを識別するためのユーザ識別情報の受付に応じて、前記ユーザ識別情報の認証を行って前記記憶手段に記憶されている印刷データを印刷する第1の印刷モードか、前記記憶手段に記憶することなく前記受付手段で受け付けた印刷データを印刷する第2の印刷モードかを判定する印刷モード判定手段と、前記印刷モード判定手段で、前記第1の印刷モードであると判断した場合、前記記憶手段によって記憶されている印刷データから、前記ユーザ識別情報に応じた印刷データを取得する第1の取得手段と、前記印刷モード判定手段で、前記第2の印刷モードであると判断した場合、前記受付手段での印刷データの受付に応じて、当該印刷データのユーザと一致する前記記憶手段に記憶されている印刷データを取得する第2の取得手段と、前記第1の取得手段または第2の取得手段で取得した印刷データを前記画像形成装置で印字するために、前記画像形成装置に送信する送信手段と、を備えることを特徴とするネットワークインタフェース装置である。
【0011】
第1の発明に係るネットワークインタフェース装置によって、第2の印刷モードにおいて、受付手段により受け付けた当該ユーザの当該印刷データの出力とともに、当該ユーザと一致する記憶手段に記憶されている印刷データを印刷することが可能であり、認証サーバが何らかの理由で動作しない場合でも、記憶手段に記憶されている印刷データの印刷を行うことが可能となり、ユーザの業務をとめることがない可用性の高いセキュアプリントシステムを構築できる。
【0012】
また、一定間隔で、または、ユーザ識別情報の受付時に、前記認証サーバに通信可能か否かを判断する判断手段と、前記判断手段が、前記認証サーバに通信可能であると判断した場合、前記第1の印刷モードへ設定を変更し、前記判断手段が、前記認証サーバに通信可能でないと判断した場合、前記第2の印刷モードへ設定を変更する設定変更手段と、を更に備えることが望ましい。
これによって、一定間隔、あるいは、ユーザ認証時に認証サーバが通信可能か否かを判断するため、認証サーバの復帰に対して自動的に印刷モードの復帰、切り替えが可能になる。
【0013】
また、前記第2の印刷モード時における前記受付手段で受け付けた印刷データを削除するか否かを判定する削除判定手段と、を更に備え、前記削除判定手段で削除すると判定された場合、前記受付手段で受け付けた印刷データを削除する。また、前記削除判定手段で削除しないと判定された場合、前記第2の取得手段で取得した印刷データと、前記受付手段で受け付けた印刷データとを出力する。
これによって、認証サーバが何らかの理由で動作しないときに記憶手段に記憶されている印刷データの印刷を行う際、第2の取得手段で取得した印刷データのみを印刷するか、あるいは、第2の取得手段で取得した印刷データと、受付手段で受け付けた印刷データの両方を印刷するかを設定することが可能になる。
【0014】
また、前記第1の印刷モード時に、ユーザを識別するためのユーザ識別情報の受付に応じて、当該ユーザ識別情報を記憶する認証記憶手段を更に備えることが望ましい。また、前記第2の印刷モード時に、ユーザを識別するためのユーザ識別情報の受付において、前記認証記憶手段にユーザ識別情報が記憶されているか否かを判定する認証判定手段と、前記認証判定手段で記憶されていると判定される場合には、当該ユーザ識別情報に対応するユーザの印刷データを印刷可能にユーザ識別情報を設定する印刷予約手段を更に備えることが望ましい。また、前記送信手段は、前記第2の印刷モード時に、前記受付手段での印刷データの受付において、当該印刷データのユーザが前記印刷予約手段により設定されたユーザ識別情報に対応するユーザと一致した場合に、第2の取得手段で取得した印刷データを送信し、一致しない場合には前記受付手段で受付けた印刷データを出力することが望ましい。
【0015】
認証記憶手段を更に備えることにより、認証されたユーザ名およびユーザ識別情報を記憶しておくことが可能になり、ユーザ識別情報を元にユーザ名を求めることが可能になる。
また、印刷予約手段を更に備えることにより、ユーザ識別情報の受付において記憶手段に記憶されている印刷データの印刷を予約することが可能になる。
さらに、第2の印刷モード時における受付手段での印刷データのユーザと印刷予約手段により予約したユーザが一致すれば、記憶手段に記憶されている印刷データを印刷することが可能になる。
【0016】
また、前記受付手段で受け付けた印刷データは、前記第2の印刷モード時に削除するか否かの設定を前記情報処理装置に備えるプリンタドライバで設定された印刷データであることが望ましい。
これによって、ユーザは、受付手段で受け付けた印刷データを第2の印刷モード時に削除するか否かの設定を行うことができる。
【0017】
第2の発明は、画像形成装置に接続され、印刷データを送信する情報処理装置と、ユーザの認証を行う認証サーバと通信するネットワークインタフェース装置における印刷制御方法であって、前記情報処理装置から、印刷データを受け付ける受付工程と、前記印刷データを記憶する記憶工程と、ユーザを識別するためのユーザ識別情報の受付に応じて、前記ユーザ識別情報の認証を行って前記記憶手段に記憶されている印刷データを印刷する第1の印刷モードか、前記記憶手段に記憶することなく前記受付手段で受け付けた印刷データを印刷する第2の印刷モードかを判定する印刷モード判定工程と、前記印刷モード判定手段で、前記第1の印刷モードであると判断した場合、前記記憶手段によって記憶されている印刷データから、前記ユーザ識別情報に応じた印刷データを取得する第1の取得工程と、前記印刷モード判定手段で、前記第2の印刷モードであると判断した場合、前記受付手段での印刷データの受付に応じて、当該印刷データのユーザと一致する前記記憶手段に記憶されている印刷データを取得する第2の取得工程と、前記第1の取得手段または第2の取得手段で取得した印刷データを前記画像形成し装置で印字するために、前記画像形成装置に送信する送信工程と、を含むことを特徴とする印刷制御方法である。
【0018】
第3の発明は、ネットワークインタフェース装置において、第2の発明を実行させる印刷制御プログラムである。
【0019】
第4の発明は、印刷データを送信する情報処理装置と通信可能な画像形成装置であって、
前記情報処理装置から、印刷データを受け付ける受付手段と、前記印刷データを記憶する記憶手段と、ユーザを識別するためのユーザ識別情報の受付に応じて、前記ユーザ識別情報の認証を行って前記記憶手段に記憶されている印刷データを印刷する第1の印刷モードか、前記記憶手段に記憶することなく前記受付手段で受け付けた印刷データを印刷する第2の印刷モードかを判定する印刷モード判定手段と、前記印刷モード判定手段で、前記第1の印刷モードであると判断した場合、前記記憶手段によって記憶されている印刷データから、前記ユーザ識別情報に応じた印刷データを取得する第1の取得手段と、前記印刷モード判定手段で、前記第2の印刷モードであると判断した場合、前記受付手段での印刷データの受付に応じて、当該印刷データのユーザと一致する前記記憶手段に記憶されている印刷データを取得する第2の取得手段と、を備えることを特徴とする画像形成装置である。
【発明の効果】
【0020】
本発明によれば、例えば認証サーバがダウンするなどの理由により印刷方法が切り替わることによって未出力となってしまう印刷データを出力させることが可能な仕組みを提供することが可能になる。
【発明を実施するための最良の形態】
【0021】
以下、添付図面を参照しながら、本発明に係るセキュアプリントシステムの好適な実施形態について詳細に説明する。
図1は従来のセキュアプリントシステムの構成の一例を示す図である。
【0022】
図1に示すように、例えば、階毎に設置する1又は複数の印刷装置1000に接続されたNIC700、管理者に1台、ユーザ毎に1台ずつというように設置する1又は複数のクライアントPC300、拠点毎に設置する1又は複数のプリンタサーバ101、拠点毎に設置する1又は複数の認証サーバ102がLAN(Local Area Network)150を介して接続される。また、NIC700には、USBケーブル160を介してカードリーダ400が接続される。
【0023】
クライアント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に送信することができる。
【0024】
プリンタサーバ101は、クライアントPC300から印刷ジョブを受け取り、印刷ジョブを解析してジョブ情報を取得し、印刷ジョブを蓄積する。また、印刷装置1000から印刷要求を受け取り、印刷要求に含まれるユーザ名をもとにして、蓄積ジョブからユーザのジョブを検索し、見つかったユーザのジョブを印刷装置1000に対して印刷指示を行う。
【0025】
認証サーバ102は、印刷装置1000がユーザ認証を行うためのサーバである。カードID211に紐づくユーザ名、メールアドレス、利用権限等のデータを持っている。認証サーバ102は、印刷装置1000からの問い合わせに対して、ユーザの有無と、ユーザが存在する場合は、そのユーザ情報を返答する機能を有する。
【0026】
カードリーダ400は、USBケーブル160を介してNIC700に接続される。
カードリーダ400は、ICカード410(記憶媒体)(例えば、ソニー(登録商標)社のフェリカ(FeliCa)(登録商標))がかざされるとカード内部の情報(記憶媒体識別情報)を読み取り、USBケーブル160およびNIC700を介して印刷装置1000に通知する。なお、本実施の形態ではICカード410を用いて認証処理を行うように構成したが、指紋などを用いて認証を行うように構成することが可能である。その場合、カードリーダ400を指紋リーダに置き換え、指紋リーダで読み取られた指紋情報を認証サーバ102に送信することで認証を行う。
【0027】
次に、図2を参照しながら、本発明に係るセキュアプリントシステム1について説明する。
図2は、本発明に係るセキュアプリントシステム1の構成の一例を示す図である。
【0028】
図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ポート160を有する場合はUSBハブ600を介する必要はなく、NIC700にカードリーダ400及びマスストレージ500が直接接続される。
【0029】
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は、印刷データを生成する情報処理装置である。
【0030】
マスストレージ500は、HDD(Hard Disk Drive)やフラッシュメモリのような大容量のファイルシステムを持つハードウエアで、USBケーブル160を介してUSBハブ600に接続している。
マスストレージ500は、印刷装置1000からファイル書き込み、読み込み、削除等のファイルシステムの制御を行うことが可能である。
【0031】
次に、図3、図4、図5を参照しながら、クライアントPC300、LDAPサーバ200、印刷装置1000、NIC700について説明する。
図3は、LDAPサーバ200、クライアントPC300のハードウエア構成を示す図、図4は、印刷装置1000のハードウエア構成を示す図、図5は、NIC700のハードウエア構成を示す図である。
【0032】
図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が接続される。
【0033】
CPU2001は、システムバス2004に接続される各デバイスやコントローラを統括的に制御する。
ROM2003あるいは外部メモリ2011は、CPU2001の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する各種プログラム等を保持している。
RAM2002は、CPU2001の主メモリ、ワークエリア等として機能する。CPU2001は、処理の実行に際して必要なプログラム等をROM2003あるいは外部メモリ2011からRAM2002にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【0034】
入力コントローラ2005は、キーボード(KB)2009やマウス(図示しない)等のポインティングデバイス等からの入力を制御する。
ビデオコントローラ2006は、CRT(Cathode Ray Tube)2010等の表示器への表示を制御する。表示器はCRTに限らず、液晶ディスプレイ等の他の表示器でもよい。これらは、必要に応じて管理者が使用する。
【0035】
メモリコントローラ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)を用いた通信等が可能である。
【0036】
CPU2001は、例えばRAM2002内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT2010上に表示することが可能である。また、CPU2001は、CRT2010上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
LDAPサーバ200、クライアントPC300のハードウエア上で動作する各種プログラムは、外部メモリ2011に記録されており、必要に応じてRAM2002にロードされ、CPU2001により実行される。プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等は、外部メモリ2011に格納されている。
【0037】
次に、印刷装置1000のハードウエア構成について説明する。
図4に示すように、印刷装置1000は、入力部3000、CPU3001、操作部3002、印刷処理部3003、記憶部3004、出力部3005、用紙カセット3006等を有する。
【0038】
入力部3000は、本印刷装置とNIC700を接続するものであり、NIC700とのデータ通信を制御する。
CPU3001は、印刷装置1000全体の動作を制御する。
操作部3002は、印刷装置1000に直接ユーザによる操作のインタフェースを提供する。
印刷処理部3003は、入力部3000で受信したコマンドの解析、印刷データ(PDL)の解析等を行う。
記憶部3004は、印刷装置1000を動作させるためのROM(図示しない)、RAM(図示しない)、二次記憶装置(図示しない)等からなる。RAMは使用制限のないデータ記憶領域で、入力部3000の受信バッファ、あるいは、印刷処理部3003でのデータ展開等に使用する。
出力部3005は、入力部3000で受信した印刷データを、印刷処理部3003で印刷可能なイメージ情報に展開したものを紙に転写する。
用紙カセット3006は、出力部3005の処理に合わせて適切な用紙を供給する。
【0039】
NIC700は、ネットワークインタフェースカードであり、LAN150を介して他の機器から受信したデータをNIC700が窓口となって受け取り、NIC内部のプログラム(図示しない)や、印刷装置1000の入力部3000に渡す。
【0040】
次に、NIC700のハードウエア構成について説明する。
図5に示すように、NIC700は、CPU4001、RAM4002、通信I/Fコントローラ4003、USBI/Fコントローラ4004、内部メモリ4005、メモリコントローラ4006、ROM4007、機器I/Fコントローラ4008等を有する。
【0041】
CPU4001はNIC700の制御を行うもので、内部で接続されている装置を制御する。
RAM4002は、CPU4001の主メモリ、ワークエリア等として機能する。CPU4001は、処理の実行に際して必要なプログラム等をROM4007あるいは内部メモリ4005からRAM4002にロードして、ロードしたプログラムを実行する。
通信I/Fコントローラ4003は、LAN150のようなネットワークを介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPやUDP(User Datagram Protocol)などの通信プロトコルを用いた通信が可能である。
【0042】
USBI/Fコントローラ4004は、カードリーダ400、マスストレージ500及びUSBハブ600などのUSB機器とNIC700を接続、通信するもので、USBの通信制御処理を実行する。
内部メモリ4005は、NIC700を制御するOSが搭載されており、またOS上で動作するアプリケーションプログラム、その設定情報を記憶する。
メモリコントローラ4006は、各種のアプリケーション、各種データ等を記憶する内部メモリ4005へのアクセスを制御する。
ROM4007は、読み出し専用の半導体メモリであり、電源を切っても内容が消えないことからブートプログラムが格納される。
機器I/Fコントローラ4008は、NIC700と印刷装置1000を接続、通信する。
【0043】
次に、図6、図7を参照しながら、本発明の好適な実施形態に係るセキュアプリントシステム1の処理概要にについて説明する。
図6は、セキュアプリントシステム1の蓄積印刷時の処理概要を示す図、図7は、セキュアプリントシステム1の通常印刷時の処理概要を示す図である。
【0044】
図6に示す蓄積印刷時の処理は、印刷方法が蓄積の場合の処理である。すなわち、LDAPサーバ200が正常に動作しており、ICカード410がカードリーダ400にかざされることにより、マスストレージ500に蓄積された印刷データを印刷するものである。
一方、図7に示す通常印刷時の処理は、LDAPサーバ200が正常に動作していない場合の印刷方法であり、印刷データをマスストレージ500に蓄積せず、ICカード410をカードリーダ400にかざすことなく、クライアントPC300から投入した印刷データをそのまま印刷する通常の印刷方法である。
【0045】
本発明の実施の形態のセキュアプリントシステム1は、LDAPサーバ200が正常に動作しているときにジョブを投入し、当該ジョブの出力前にLDAPサーバ200がダウンし、印刷方法が「蓄積」から「通常」に変更された状態の下で、マスストレージ500に蓄積された当該ジョブの出力を可能にするものである。
【0046】
図6に示す蓄積印刷時には、まず、ユーザがクライアントPC300にログインし(ステップ1−1)、データの印刷指示を行う(ステップ1−2)。
プリンタドライバは、印刷装置1000に対して、データからジョブを生成して送信する(ステップ2−1)。ここで、ジョブをマスストレージ500に格納する(ステップ2−2)。
【0047】
印刷指示をしたユーザが、カードリーダ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)。
印刷装置1000は、マスストレージ500内からユーザ名(ユーザ識別情報)に一致するジョブを取得し(ステップ5−1)、該当するジョブを印刷装置1000に渡す(ステップ5−2)。
印刷装置1000は、受け取ったジョブを印字し、出力する(ステップ6−1)。
【0048】
図7に示す通常印刷時には、蓄積ジョブを印刷予約したいユーザが、カードリーダ400にICカード410をかざす(ステップ1−1)。カードリーダ400は、ICカード410からカードID211を読み取って、印刷装置1000に通知する(ステップ1−2)。印刷装置1000はカードをかざさしたユーザを印刷予約する。
ユーザがクライアントPC300にログインし(ステップ2−1)、データの印刷指示を行う(ステップ2−2)。
プリンタドライバは、印刷装置1000に対して、データからジョブを生成して送信する(ステップ3−1)。印刷装置1000は受け取ったジョブを解析してユーザ名を取得する(ステップ3−2)。
【0049】
ここで、ユーザが印刷予約されていない時は、ジョブはそのまま印刷装置1000から印字され、出力される(ステップ4−1A)。
一方、ユーザが印刷予約している時は、印刷装置1000は、マスストレージ500内からユーザ名に一致するジョブを取得し(ステップ4−1B)、該当するジョブを印刷装置1000に渡す(ステップ4−2B)。
印刷装置1000は、受け取ったジョブを印字し、出力する(ステップ5−1)。また、マスストレージ500に蓄積されたジョブだけでなく、ステップ3−1で受信したジョブもあわせて出力する(ステップ5−2)。なお、ステップ1−1で作成するジョブの設定によっては、このジョブを出力させないことも可能である。
【0050】
次に、図8、20、21、22、23、25、26、27、28、29、30、31、32、33、34を参照しながら、セキュアプリントシステム1の全体の処理の流れについて説明する。
図8は、本発明に係るセキュアプリントシステム1の構成を示すブロック図、図20は、設定情報802の一例を示す図、図21は、動作情報860の詳細を示す図、図22は、認証キャッシュ870の一例を示す図、図23は、印刷予約情報880の一例を示す図、図25は、ジョブ310の詳細を示す図、図26は、印刷情報管理ヘッダ311の詳細を示す図、図27は、ジョブ情報820の詳細を示す図、図28は、ジョブリスト805の詳細を示す図、図29は、実行リスト804の詳細を示す図、図30は、ファイルシステム501の詳細を示す図、図31は、ICカード410の詳細を示す図、図32は、ユーザ情報210の一例を示す図、図33は、LDAPディレクトリ201の詳細を示す図、図34は、出力設定画面の一例を示す図である。
【0051】
図8に示すように、セキュアプリントシステム1は、LDAPサーバ200とクライアントPC300、印刷装置1000に接続されたNIC700が、双方向通信可能なLAN150を介して接続している。NIC700には、USB通信可能なUSBケーブル160を介して、マスストレージ500、USBハブ600及びカードリーダ400が接続している。
【0052】
LDAPサーバ200は、LDAPディレクトリ201、LDAP機能部202、I/Fドライバ部190等を有する。LDAPサーバ200は、冗長構成をとることが可能で、複数台設置してもよい。
LDAPサーバ200は、システム内でのユーザ情報の検索という役割を有するため、ユーザ情報の格納及び検索機能を持つサーバであればLDAPサーバに限らない。
【0053】
LDAPディレクトリ201は、図33に示すデータを格納している。
LDAPディレクトリ201は、データ群をまとめる最上位の単位suffixの下に識別コードが1または複数配備されており、さらに、その識別コードの下に1または複数のユーザ情報210が格納される。
一般的に、識別コードはOU(Organization Unit)で構築される。また、Active Directory(登録商標)では、suffixがドメインという単位にあたる。
【0054】
ユーザ情報210は、図32に示すようにカードID211、ユーザ名212(ユーザ識別情報)、パスワード213、サブユーザ1 214、サブユーザ2 215、サブユーザ3 216、サブユーザ4 217、利用制限218等を有する。
カードID211は、図31に示すように、ユーザのICカード410のIDを登録するもので、LDAPディレクトリ201のsuffix以下に含まれるユーザ情報210群の中で一意となる値である。なお、本実施の形態では、ICカード410にはカードIDを記憶させておき、このカードIDを用いて認証処理を行うように構成するが、ICカード410には社員番号などのユーザIDを記憶させておき、このユーザIDを用いて認証処理を行うように構成することも可能である。この場合、ユーザ名212にユーザIDが記憶されており、ユーザ名212と、ICカード410から読みとったユーザIDとが一致すると認証がとれたと判断される。
ユーザ名212は、カードID211と一致するICカード410を保持しているユーザの名前である。
パスワード213は、ユーザの認証を行う際に、本人確認を行うために格納される。
サブユーザ1〜4 214〜217は、ユーザが使っているメインのユーザ名212とは別の名前で、ユーザが他のユーザの代理を行う場合に使用するユーザ名である。
利用制限218は、印刷装置1000を利用する上での制限情報が格納されている。
【0055】
LDAP機能部202は、LDAPプロトコルに従って通信の接続、認証、検索、変更、追加、削除、切断等を行う。
接続では、接続要求を発行したクライアントに対して、論理的な通信経路を確保する。
認証では、認証要求を発行したユーザ名を、LDAPディレクトリ201内から検索し、パスワードの照合を行って認証結果を返答する。
検索では、検索要求を受けた値を元に、LDAPディレクトリ201から該当するユーザを検索し、一致したユーザ情報210を返答する。
I/Fドライバ部190は、LAN150等のネットワークを介して外部機器と接続・通信を行うもので、TCP/IPやUDPなどの通信プロトコルに従って通信を制御する。
【0056】
クライアントPC300は、アプリケーション部301、プリンタドライバ部302、送信バッファ303、I/Fドライバ部190等を有する。
アプリケーション部301は、ユーザにグラフィックユーザインタフェースを提供し、ユーザの目的に適った画像データを生成する。
プリンタドライバ部302は、アプリケーション部301が生成した画像データを印刷装置1000で印刷可能なページ記述言語(PDL)データに変換する。さらに、PDLデータに対して、図26に示すようにジョブオーナ312、ジョブ名313、出力フラグ314等のジョブ情報を含んだ印刷情報管理ヘッダ311を付与し、図25に示すジョブ310を作成する。尚、ジョブオーナ312はジョブを作成したユーザ名を示すものであり、ジョブ名313はジョブを識別するための名称であり、出力フラグ314はそのジョブを出力させるかどうか、を判定するためのフラグ(「true」又は「false」)である。
【0057】
この出力フラグは、プリンタドライバのアドオンモジュールをインストールすることで設定可能であり、アドオンモジュールをインストールすると図34のプリンタドライバの印刷設定画面が追加される。この印刷設定画面でマスストレージ500に蓄積されているジョブを出力させるか否かの有無と、現在印刷対象となっているアプリケーションデータの印刷の有無を指示することが可能である。尚、図34の画面で3401にチェックを入れると、マスストレージ500に蓄積されているジョブを出力させることが可能となる。また3402にチェックを入れると、そのクライアントPC300から投入するジョブの印刷情報管理ヘッダ311に含まれる出力フラグ314が「true」となり、現在印刷対象となっているアプリケーションデータの印刷と、マスストレージ500に記憶されている印刷データの印刷の両方を実行することが可能となる。
図34の画面で3401にチェックを入れないと、マスストレージ500に蓄積されているジョブを出力させない。3401にチェックを入れない場合には、3402へのチェックの入力を不可として構成する。
【0058】
このような図34の画面を用いてマスストレージ500に蓄積されているジョブを出力させるか否かを決定させる場合、印刷情報管理ヘッダ311に蓄積ジョブ出力有無フラグ(不図示)を保持して、蓄積ジョブ出力有無フラグが「true」、つまり蓄積ジョブを出力する設定の場合、図10以降の処理を実行するように構成してもよい。この場合、蓄積ジョブ出力有無フラグは、図34の画面の3401のチェックに対応する。
【0059】
尚、以上の説明では蓄積ジョブの出力の有無を図34の画面の3401のチェックで制御できるように構成したが、後述する図11のステップS159で印刷予約情報が設定されれば蓄積ジョブは必ず出力するようにして、3401のチェック項目を備えない構成でも実現可能である。
また、3401でチェックがあった場合でも、後述する図11のステップS159で印刷予約情報が設定されなければ蓄積ジョブは出力されないものとする。
また、以上の説明では、出力フラグを、プリンタドライバのアドオンモジュールで実現する方法を説明したが、図9、図10のジョブ受付時のアプリケーション800側の処理によって、出力フラグを設定させるようにしてもよい。この場合、例えば、管理者が全てのジョブに対して同一の出力フラグを設定できる設定ファイルを、アプリケーション800に含めるように構成しても良い。
【0060】
送信バッファ303は、プリンタドライバ部302が作成したジョブ310を一時的に格納し、スプールを実現する。
【0061】
USBハブ600は、USB通信部195等を有する。USBハブ600は、USBデータを中継し、USBハブ600に接続された機器のUSBデータを他の各機器へ転送する。
USB通信部195は、USB仕様に従ってコントロール転送、インタラプト転送、バルク転送、アイソクロナス転送などのデータ通信を行う。データ転送することが必要条件であり、転送速度やUSBバージョンなどは特に問わない。
【0062】
マスストレージ500は、ファイルシステム501、ファイルシステム管理部502、USB通信部195等を有する。
図30に示すように、ファイルシステム501はジョブ310を内部記憶装置(図示しない)に格納する。また、ジョブ310の書き込み、読み込み、削除等を行う。
【0063】
カードリーダ400は、USB通信部195、カード読取部401等を有する。
カード読取部401は、ICカード410からカードID211を読み取るためのものである。ICカード410がカードリーダ400にかざされると、ICカード410からカードID211等の情報を読み取り、USB通信部195を介して接続された他機器に情報を伝達する。
【0064】
NIC700は、アプリケーション800、NIC OS900等を有する。
アプリケーション800は、NIC OS900上で動作するプログラムである。
NIC OS900は、NIC700を制御すると同時に、NIC700上のアプリケーション800の管理、印刷装置1000への各種指示なども行う。
【0065】
NIC700のアプリケーション800は、設定情報管理部801、設定情報802、LPR通信部803、実行リスト804、ジョブリスト805、LDAP通信部806、定期チェック部807、印刷情報管理プロトコル解析部808、リスト管理部809、ユーザ通知部810、カードリーダ管理部811、ファイル管理部812、印刷指示部813、ビープ指示部814、パネル表示指示部815等を有する。
【0066】
設定情報管理部801は、図20に示すアプリケーション800の実行に必要な設定情報802を管理するもので、設定情報802の書き込み、読み出しを行う。
クライアントPC300が、ブラウザを使ってアプリケーション800にアクセスしてアプリケーション800の設定情報を設定し、アプリケーション800がクライアントPC300からの指示を受け取ると、設定情報管理部801は、設定されたデータを設定情報802として保持する。
設定情報802は、suffix831、識別コード832、プライマリサーバ833、プライマリポート834、セカンダリサーバ835、セカンダリポート836、ユーザ837、パスワード838、印刷予約有効時間839等を有する。
【0067】
suffix831、識別コード832は、LDAPサーバ200に検索要求を発行する際、検索場所を指定する条件となる。
プライマリサーバ833、プライマリポート834、セカンダリサーバ835、セカンダリポート836は、LDAPサーバ200に接続するための情報である。LDAPサーバ200は冗長構成をとることができるため、プライマリ・セカンダリのように複数台の設定することが可能となっている。
ユーザ837、パスワード838は、LDAPサーバ200に認証要求を発行する際に必要な情報である。
印刷予約有効時間839は、図23に示す印刷予約情報880の有効期限を設定するための情報である。印刷予約情報880とは、ユーザ名212とタイムスタンプ871から構成され、印刷予約を行っているユーザを表すものである。これは印刷方法861が「通常」の場合でも、ユーザの蓄積ジョブを印刷させるための情報である。つまり、この印刷予約情報880に記憶されているユーザの蓄積ジョブが印刷を実行することができる。より詳細にはカードをかざすことによって、そのカードに対応するユーザの蓄積ジョブが印刷できる状態となる。
【0068】
LPR通信部803は、LPR印刷プロトコルを解析し、通信を行うもので、クライアントPC300からジョブ310を受け取る際のプロトコルを解析し、通信する。
ここでは、例示的にLPRと記したが、印刷プロトコルであれば特にLPRに限らない。
【0069】
実行リスト804は、図29で示されるもので、図28に示すジョブリスト805のサブセットである。印刷を実施するときは、実行リスト804に格納されたジョブ情報820をもとに印刷指示を行う。
ジョブリスト805は、図27に示すジョブ情報820で構成されている。ジョブ情報820は、ジョブ310を管理するために必要な情報を抽出した情報で、ユーザ名821、ファイル名822、ジョブ名823、タイムスタンプ824、出力フラグ825等を有する。ジョブリスト805は、ファイルシステム501に格納されているジョブ310の情報をすべて保持している。
【0070】
LDAP通信部806は、LDAPサーバ200とLDAPプロトコルに従って通信を行うもので、設定情報802のプライマリサーバ833及びプライマリポート834で指定されるLDAPサーバ200に接続する。
LDAP通信部806は、設定情報802のユーザ837及びパスワード838用いて認証を行う。また、LDAP通信部806は設定情報802のsuffix831、識別コード832を検索場所として、カードID211に紐づくユーザ情報210(図32)を検索する。プライマリにもセカンダリにもアクセスできなかった場合、図21で示される動作情報860の印刷方法861を「通常」に設定する。なお、動作情報860は設定情報802と同様にアプリケーション800上で管理される情報である。プライマリもしくはセカンダリにアクセスできた場合、図21で示される動作情報860の印刷方法861を「蓄積」に設定する。印刷方法861のデフォルトの設定は蓄積とする。
また、LDAP通信部806が検索を行った結果、ユーザ情報210が見つかった場合、図22で示される認証キャッシュ870に、ユーザ情報210のカードID211とユーザ名212を登録しておく(認証記憶)。これは、認証サーバ停止時でもユーザ名212からカードID211を解決できるようにするためである。なお、認証キャッシュ870は、設定情報18と同様にアプリケーション800上で管理される情報である。なお、ICカード410にユーザID(ユーザ名)が登録されている場合には、認証キャッシュ870にはユーザID(ユーザ名)のみを登録させておくことでも実現可能である。
【0071】
定期チェック部807は、LDAPサーバ200とNIC700が通信できる状態にあるかどうか、また印刷予約情報880の有効期限が切れていないか、を定期的に監視する。実際の接続処理等は、LDAP通信部806を通じて行われる。定期チェック部807は、動作情報860の印刷方法861が「蓄積」であれば、何もチェックは行わないが、動作情報860の印刷方法861が「通常」であれば、LDAPサーバ200とNIC700が通信できると判断した場合で、印刷方法861を「蓄積」に設定変更する。これにより、認証サーバダウン時の印刷切り替えの復帰を実現する。
また、印刷予約情報880のタイムスタンプと設定情報802の印刷予約有効時間839を比較して、有効期限のチェックを行い、有効期限が切れていれば印刷予約情報880の削除を行う。これは、印刷予約を行ったユーザが出力を忘れた場合でも、一定時間経過後に他のユーザが印刷予約をできるようにするためである。
【0072】
印刷情報管理プロトコル解析部808は、ジョブ310に含まれる印刷情報管理ヘッダ311を解析する。印刷情報管理ヘッダ311は、PDLデータの先頭に付加されるバイナリデータで、様々なジョブ情報が含まれる。
印刷情報管理ヘッダ311に含まれるジョブオーナ312とジョブ名313、出力フラグ314を取得し、ジョブ情報820を作成する際、印刷情報管理プロトコル解析部808で解析した値を利用する。また、印刷情報管理プロトコルを解析後、印刷方法861の状態を見て、「通常」であれば、ジョブ310を印刷するために印刷指示部813にジョブ310を渡す。一方、印刷方法861の設定が「蓄積」であれば、ジョブを保存するためにファイル管理部812にジョブ310を渡す。
【0073】
リスト管理部809は、実行リスト804及びジョブリスト805を管理する。ジョブ310がファイルシステム501に書き込まれると、ジョブ情報820をファイル管理部812から受け取り、ジョブリスト804に追加して管理する。また、ジョブリスト805の中でLDAP通信部806から渡されたユーザ名に一致したジョブ情報820を抽出し、実行リスト804を作成する。リスト管理部809は、印刷完了時にファイル管理部812から通知を受け、該当するジョブ情報820をジョブリスト805から削除する。
【0074】
ユーザ通知部810は、印刷装置1000を利用しているユーザに対して、エラーなどを通知する。ユーザ通知部810は、NIC OS900に対してビープ指示し、印刷装置1000からビープ音を鳴動させてユーザの聴覚に訴えたり、パネル表示指示を行って任意の文字を印刷装置1000のパネルに表示し、ユーザの視覚に訴えたりする機能を持つ。
【0075】
カードリーダ管理部811は、NIC700にUSB160を介して接続されたカードリーダ400を制御するためのものである。ICカード410がカードリーダ400にかざされると、カードリーダ管理部811はカードID211を取得する。
【0076】
ファイル管理部812は、ジョブ310をアプリケーション800内で管理する。ファイル管理部812は、ジョブ310を暗号化してファイルシステム501に格納したり、ジョブ310を復号化し、印刷指示部813にジョブ310を送ったり、あるいは、印刷指示部813へのジョブ投入が終わったタイミングで、該当するジョブ310をファイルシステム501から削除する。
【0077】
印刷指示部813は、ファイル管理部812から送られてきた復号化されたジョブ310をNIC OS900に対して、印刷情報管理プロトコルを用いて印刷指示する。なお、このとき印刷排他フラグ862を使って印刷処理の排他制御を行う。これは、印刷方法が「通常」のときに、印刷予約情報880に登録されたユーザが印刷をすると、蓄積されたジョブを出力するが、そのときに他のユーザがクライアントPC300から印刷を行ってそれぞれの印刷物が混ざってしまうのを防ぐためである。
また、印刷指示部813はジョブ情報820の出力フラグ825の状態を見て、そのジョブを出力するかどうかを決定する。
【0078】
ビープ指示部814は、ユーザ通知部810からのビープ指令を受け取って、NIC OS900に通知する。ビープ音に関しては、印刷情報管理プロトコル、JL、UDP等、様々な方法でビープ鳴動を実現できるが、どの機能がサポートされているかは印刷装置1000によって異なる。ビープ指示部814は、印刷装置1000の種別による違いを吸収して適切なビープ指示を行う。
パネル表示指示部815は、MIB(Management Information Base)を使って印刷装置1000のパネル(図示しない)に任意のメッセージを表示させる。一定時間表示させることができない機種の印刷装置1000の場合は、数秒表示後に表示のリセットを行う。
【0079】
次に、NIC OS900について詳細を説明する。
NIC OS900は、I/Fドライバ部190、USB通信部195、暗号/復号化部905、印刷情報管理プロトコル解析・通信部904、JL通信部903、UDP通信部902、MIB通信部901、通信制御部906を有する。
【0080】
暗号/復号化部905は、データの暗号化及び復号化を行うためのものである。形式は固定のものではなく、DES(Data Encryption Standard)やトリプルDES、AES(Advanced Encryption Standard)等のブロック暗号化、及びRC4などのストリーム暗号化などを行うことができる。
印刷情報管理プロトコル解析・通信部904は、印刷情報管理プロトコルに従ってデータ通信を行うためのものである。印刷情報管理プロトコルは、印刷装置1000の制御を行うための通信プロトコルであり、印刷指示やビープ音鳴動等などが行える。
JL通信部903は、JL通信を行うためのものである。JLはジョブ制御言語であり、印刷装置1000の情報取得指令や、PDLデータの受信指令、印刷装置1000に対してのビープ指令などを行うことができる。
【0081】
UDP通信部902は、UDP通信を行う。このUDP通信を使って、DNS(Domain Name System)クエリや、ビープ指令などを行うことができる。
MIB通信部901は、MIB通信を行うためのものである。MIBは、通信機器を管理するためのプロトコルで、印刷装置1000のパネル表示等を行う。
通信制御部906は、I/Fドライバ部190から受信したデータを、アプリケーション800に通知したり、印刷装置1000に渡したりする。通信制御部906は、LAN150を介してNIC700に送信されたデータをアプリケーション800に転送する。また、アプリケーション800から送信されてきたデータを印刷装置1000に転送する。
【0082】
次に、印刷装置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を有する。
【0083】
受信バッファ1001は、I/Fドライバ部190で受信した全データを一時的に確保し、処理遅延の緩衝材となる。
送信バッファ1002は、I/Fドライバ部190に送信する前の全データを一時的に確保し、処理遅延の緩衝材となる。
パネル表示部1008は、指定されたメッセージを印刷装置1000のパネルに表示する。
ビープ鳴動部1009は、印刷装置1000内蔵の鳴動装置(図示しない)を作動させ、音を鳴らす。
機器DB部1010は、JLにより設定された印刷装置1000の情報を格納し、PDLトランスレータ部1011に情報を提供する。ここでいう環境情報とは、例えば印刷枚数のことである。
【0084】
PDLトランスレータ部1011は、PDLデータの翻訳処理を行い、描画に適した描画オブジェクトである中間データに変換を行う。
描画バッファ1012は、PDLトランスレータ部1011によって生成された描画オブジェクトの中間データを、実際に印刷を行うまで一時的に格納しておく。
描画部1013は、描画バッファ1012に一時格納された描画オブジェクトを実際に描画してビットマップ画像であるイメージデータを生成する。
プリンタエンジン部1014は、描画部1013が生成したビットマップ画像を受け取り、既知の印刷技術により用紙等のメディアに印刷を行う。
【0085】
次に、図9、10、11、12、13、14、15、16、17、18、19、24を参照しながら、本発明に係るセキュアプリントシステム1の詳細な処理について説明する。
図9は、セキュアプリントシステム1の印刷ジョブ受付処理手順の一例を示すフローチャート、図10は、セキュアプリントシステム1の印刷ジョブ受付処理手順の一例を示すフローチャート、図11は、セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート、図12は、セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート、図13は、セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート、図14は、セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート、図15は、セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート、図16は、セキュアプリントシステム1のジョブ印刷処理手順の一例を示すフローチャート、図17は、セキュアプリントシステム1の定期チェック処理手順の一例を示すフローチャート、図18は、セキュアプリントシステム1の印刷処理手順の一例を示すフローチャート、図19は、セキュアプリントシステム1のユーザ通知処理手順の一例を示すフローチャート、図24は、印刷装置1000に表示するメッセージの一例を示す図である。
【0086】
以下では、NIC700が行う処理について、アプリケーション800の機能とNIC OS900との機能を区別して記載する。そのため、便宜上、処理の主体は、アプリケーション800とNIC OS900とする。但し、実際には、処理を行う主体は、NIC700である。ハードウエアであるNIC700は、ソフトウエアであるアプリケーション800またはNIC OS900と協働して、後述する処理を実行する。
【0087】
図9、10を参照しながら、セキュアプリントシステム1のジョブ受付の処理について説明する。
図9では、NIC700は、クライアントPC300から、印刷データを受付ける。また、NIC700は、受け付けた印刷データをマスストレージ500に記憶する。図10では、NIC700は、印刷データを印刷装置1000に送信する。また、印刷予約情報880に応じて、マスストレージ500に格納された印刷データを出力する。
【0088】
図9に示すように、セキュアプリントシステム1へのジョブ投入の処理では、クライアントPC300のアプリケーションが、プリンタドライバを介してジョブ310を生成する(ステップS001)。
クライアントPC300が、生成されたジョブ310をNIC OS900に対して送信すると(ステップS002)、NIC OS900はクライアントPC300から送信されたデータを受信し、アプリケーション800に転送する。(ステップS003)。
【0089】
アプリケーション800は、ジョブ310の印刷情報管理ヘッダ311を解析し、ジョブオーナ及びジョブ名及び出力フラグ314を取得し(ステップS004)、ジョブ情報820を作成する(ステップS005)。このとき、ジョブ310から取得したジョブオーナ312をユーザ名821として、取得したジョブ名313をジョブ名823として、取得した出力フラグ314を出力フラグ825としてジョブ情報820に格納する。また、アプリケーション内で一意となる文字列を生成してファイル名822とする。タイムスタンプ824は、ファイル書き込み後に記憶する。
ファイル名822にジョブ名823を使わないのは、ファイルシステム501内で不用意にファイルが上書きされてしまうのを防ぐためである。ジョブ名823は、ユーザが自由に設定できるものである。また、ファイルシステム501では同名のファイルは存在できない。よって、ユーザがすでにファイルシステム501にあるファイルを意識せずに、たまたま同名のファイルを印刷処理した場合、ファイルシステム501内で、すでにある同名のファイルを上書きすることになる。これを避けるために、アプリケーションで一意となる文字列を生成して、ファイル名822とするのである。
【0090】
アプリケーション800は、動作情報860の印刷方法861を見て分岐処理を行う(ステップS006)。なお、印刷方法861の初期値は「蓄積」となっている。
クライアントPC300は、印刷方法がマスストレージ500を使ったものか、LDAPサーバ200と通信できずにそのまま印刷装置1000から出力するのか、意識する必要はない。印刷出力する際に、LDAPサーバ200と通信できているのか否かを意識せずに、ジョブ310を送信することができるため、設定変更の手間が省け、よりユーザビリティの高いセキュアプリントシステムを実現している。
【0091】
印刷方法861が「蓄積」に設定されている場合、アプリケーション800は、ジョブ310を暗号化するため、ジョブ310のデータをNIC OS900に渡し、暗号化鍵や暗号化アルゴリズムなどを指定する(ステップS007)。
NIC OS900は、渡されたジョブデータを指定されたパラメータを用いて暗号化する(ステップS008)。
アプリケーション800は、NIC OS900が暗号化したジョブをファイルシステム501に書き込む(ステップS009)。
ファイルシステム501にジョブ310を書き込むことにより、従来のようにプリンタサーバ101にジョブ310を書き込む必要がなくなる。これにより、プリンタサーバ101を不要なものとし、よりセキュリティの高いセキュアプリントシステムを実現している。また、プリンタサーバ101が不要なため、サーバを設置するコストや、セキュアプリントシステム導入におけるサーバ設置の設定などの手間が省ける。さらに、万が一、マスストレージ500が印刷装置1000から取り外された場合も、ジョブ310は暗号化して書き込まれているため、ジョブ310内のPDLデータを読み取られる心配はなく、より高いセキュリティを実現している。
【0092】
NIC OS900が、ジョブ310を保存した処理をマスストレージ500に伝達すると(ステップS010)、マスストレージ500は暗号化されたジョブ310をファイルシステム501に書き込む(ステップS011)。
NIC OS900が、暗号化されたジョブ310のファイルシステム501への書き込み処理をアプリケーション800に伝達すると(ステップS012)、アプリケーション800はファイルシステム501にジョブ310を書き込み終了した時点のタイムスタンプを取得し、ジョブ情報820のタイムスタンプ824に格納する(ステップS013)。
アプリケーション800は、作成したジョブ情報820をジョブリスト805に格納する(ステップS014)。
ここでアプリケーション800がファイル書き込み終了時のタイムスタンプを保存するのは、クライアントPC300によって時刻は任意に設定されているので、クライアントPC300からのジョブ投入時間を参照すると、時刻の整合性を確保できないからである。
【0093】
図10に示すように、図9のステップS006で、動作情報860の印刷方法861が「通常」に設定されている場合、アプリケーション800は、動作情報860の印刷排他フラグ862を見て、分岐処理を行う(ステップS021)。なお印刷排他フラグ862の初期値は「false」である。
印刷排他フラグ862が「true」の場合、アプリケーション800はウェイト処理を行って(ステップS022)、しばらく待った後に再び印刷排他フラグ862の判定を行う(ステップS021)。
印刷排他フラグ862が「false」の場合、アプリケーション800は印刷排他フラグ862を「true」にする(ステップS023)。つまり、前に印刷処理している印刷データがない場合には印刷排他フラグ862が「false」なので、印刷排他フラグ862を「true」にする。
【0094】
ここで、前に印刷処理している印刷データがある場合には印刷排他フラグ862が「true」なので、一定時間たったのち、後述のステップS026で印刷排他フラグ862が「false」になったかをステップS021で判定する。この間、前の印刷処理がなされているので、クライアントPC300から取得した他のジョブが出力されないようになる。
この印刷排他フラグ862にかかわる一連の処理(ステップS021〜ステップS023)は、一人のユーザの印刷処理を行っている間に他のユーザの印刷処理をさせないようにするためである。これにより、印刷方法861が「通常」に設定されていて、クライアントPC300から投入した印刷ジョブが蓄積されずそのまま出力される場合に、各ユーザのジョブが混ざらないようにすることが可能となる。
【0095】
アプリケーション800は、印刷予約情報880を見て、分岐処理を行う(ステップS024)。
すなわち、アプリケーション800は、印刷予約情報880にユーザ名212とタイムスタンプ871が設定されていなければ、投入されたジョブをそのまま出力するために図18に示す印刷処理を行う(ステップS025)。また、印刷予約情報880にユーザ名212とタイムスタンプ871が設定されていた場合、ユーザ名212と前段のステップS011で取得したジョブ情報820のユーザ名821を比較する(ステップS024)。この結果、同一のユーザ名でなければ、投入されたジョブをそのまま出力するために図18に示す印刷処理を行う(ステップS025)。
印刷処理を行った後、他のユーザの印刷ジョブを受け付けることができるように、印刷排他フラグ862を「false」にする(ステップS026)。
【0096】
また、アプリケーション800は、印刷予約情報880にユーザ名212とタイムスタンプ871が設定されていた場合、ユーザ名212と前段S011で取得したジョブ情報820のユーザ名821を比較し(ステップS024)、同一のユーザ名の場合、実行リスト804を作成する(ステップS027)。具体的には、後述する処理と同様の処理を行う(図14のステップS126、ステップS127)。
【0097】
次に、アプリケーション800は、作成した実行リスト804をもとに、マスストレージ500から蓄積ジョブを取得し、蓄積ジョブの印刷を行う(ステップS028)。具体的には、後述する処理と同様の処理を行う(図15のステップS135〜ステップS139)。
ステップS027、S028では、印刷方法が「通常」の場合において、印刷予約情報880に設定されているユーザ名212のジョブをジョブリスト805から検索して実行リスト804を作成する。そして、後述する図16のステップS201において、実行リスト804のジョブを取得する(第2の取得手段)。
さらに、アプリケーション800は、印刷予約情報880を削除する(ステップS029)。印刷予約情報880は、通常印刷時に蓄積ジョブの印刷を行うための情報であり、ユーザの印刷予約の役割を果たす。また、最大1ユーザまでが印刷予約情報880に登録することが可能である。よって、蓄積ジョブ印刷後、他のユーザが蓄積ジョブ印刷の予約を行うことができるように、印刷予約情報880を削除する。
【0098】
アプリケーション800は、前段の図9のステップS011で取得したジョブ情報820の出力フラグ825を見て、分岐処理を行う(削除判定)(ステップS030)。
出力フラグ825が「false」の場合、アプリケーション800は、受け付けたジョブを削除して(ステップS031)、他のユーザの蓄積ジョブ印刷予約を受け付けられるように、カードリーダ400を制御してポーリングの開始を行う(ステップS032)。その後、他のユーザの印刷ジョブを受け付けることができるように、印刷排他フラグを「false」にする(ステップS026)。
出力フラグ825が「true」の場合、アプリケーション800は、受け付けたジョブ310の印刷処理(図18)を行い(ステップS033)、カードリーダ400を制御してポーリングの開始を行う(ステップS032)。その後、他のユーザの印刷ジョブを受け付けることができるように、印刷排他フラグを「false」にする(ステップS026)。
【0099】
上記処理(ステップS030〜ステップS033)は、蓄積されたジョブを出力した後に、蓄積ジョブだけでなくクライアントPC300から出力指示した印刷物も出力させるかどうか、を制御するために行う処理である。例えば、蓄積ジョブを印刷して、さらに新しいジョブも合わせて印刷したい場合は、出力フラグを「true」にすることで、蓄積ジョブと投入ジョブの両方のジョブを出力することができる。一方、単に蓄積ジョブを出力したいだけの場合は、出力フラグを「false」にすることで、クライアントPC300から投入したジョブを出力させることなく、蓄積ジョブのみを出力することができる。よって無駄な印刷物が出力されないようになる。なお、本実施の形態では、蓄積ジョブの後に投入ジョブを印刷するか否かを判定するように構成したが、投入ジョブを印刷するか否かを先に判定し、投入ジョブを印刷すると判定される場合には投入ジョブを先に印刷して、その後蓄積ジョブを印刷するように構成することも可能である。
【0100】
次に、図11、12、13、14、15を参照しながら、セキュアプリントシステム1のカード検知後の処理について説明する。
図11では、NIC700は、LDAPサーバ200との通信を確立する。このときNIC700は、LDAPサーバ200と通信できるか否かを判断する。LDAPサーバ200と通信できない場合、NIC700は、印刷方法861を「通常」に設定する。また、認証サーバと通信可能、かつ印刷方法861が「通常」の場合、NIC700は、印刷方法861を「蓄積」に設定する。
【0101】
図11に示すように、カードリーダ400は、ICカード410を検知して、内部に記録されているカードID211を読み取り(ステップS100)、NIC OS900は読み取った情報をアプリケーション800に伝達する(ステップS101)。
【0102】
アプリケーション800は、動作情報860の印刷方法861を確認する(印刷モード判定)(ステップS102)。
印刷方法861が「通常」に設定されている場合、アプリケーション800は認証キャッシュの確認を行う(認証判定)(ステップS108)。認証キャッシュにステップS100で読み取ったカードID211が存在した場合にはステップS159の処理に推移し、認証キャッシュにステップS100で読み取ったカードID211が存在しない場合にはステップS162の処理に推移する。
印刷方法861が「蓄積」に設定されている場合、アプリケーション800は設定情報802をもとに、LDAPサーバ200に接続を試みる(ステップS104)。より詳細には、アプリケーション800は、設定情報802を参照し、プライマリであるLDAPサーバ200aのプライマリポートに対して接続を行い、仮に接続できなかった場合は、セカンダリであるLDAPサーバ200bのセカンダリポートに対して接続を行う。
もしくはステップS102で、印刷方法861が「通常」に設定されていても、LDAPサーバ200に通信を行い通信が確立できる場合は、印刷方法861を「蓄積」に変更し、ステップS109の処理に遷移する。
【0103】
NIC OS900は、接続要求をもとにLDAPサーバ200に接続を試行し(ステップS105)、アプリケーション800は、接続試行が成功したか否かで分岐処理を行う(ステップS106)。
より詳細には、プライマリであるLDAPサーバ200a、およびセカンダリであるLDAPサーバ200bの両方に接続できなかった場合、接続失敗とみなす。
接続失敗の場合は、アプリケーション800は、印刷方法861を「通常」(第2の印刷モード)に変更し、(ステップS107)、認証キャッシュの確認を行う(ステップS108)。
LDAPサーバ200に接続できなかった場合、印刷方法861を「通常」に切り替えるため、次回の印刷からはマスストレージ500にジョブ310を保存せずに、印刷装置1000から直接印刷することになる。従って、LDAPサーバ200と通信できない状態のときも印刷物を出力することが可能となる。
【0104】
アプリケーション800は、認証キャッシュ870の確認を行う(ステップS108)。より詳細には、前段のステップS100で取得したカードID211が認証キャッシュ870に登録されている1または複数のカードID211のいずれかに一致するかどうかを確認する。
ステップS108の結果、認証キャッシュ870に一致するカードID211があった場合は、アプリケーション800は、印刷予約情報880を設定する(ステップS159)。より詳細には、印刷予約情報880のユーザ名212には、認証キャッシュ870で一致するカードID211に紐づいたユーザ名212を設定し、タイムスタンプ871には現在時刻を設定する。なおタイムスタンプ871は印刷予約情報880の期限切れをチェックするためのものである。
前述(ステップS024〜ステップS028)のように、ユーザがクライアントPC300からジョブを投入した時に、印刷予約情報880が登録されていなければ蓄積ジョブを印刷することができない。よって、カードをかざして印刷予約をしなければ蓄積ジョブを印刷することができないので、認証サーバが停止して通常印刷を行っている状況下でも、セキュリティの高い印刷ができる。
【0105】
次に、アプリケーション800は、図24に示すメッセージからメッセージ1である「APインサツヨヤク」を選択し、図19に示すユーザ通知処理を行い(ステップS160)、カードリーダ400を制御して、ポーリングを停止する(ステップS161)。ポーリングを停止することによって、カードリーダ400はカードを読み取らない状態となる。よって、複数ユーザが印刷予約情報880を登録することができない上に、印刷予約情報880の上書きもできない。このことにより、予約した複数ユーザが同時に通常印刷を行った時にそれぞれの蓄積ジョブが出力されてしまい、セキュリティが低下するのを防ぐことができる。また、印刷予約情報880が設定されている間に、他のユーザがカードをかざして印刷予約情報880を上書きすることを防ぐことができる。
尚、ポーリング停止後、一定時間クライアントPC300からカードに対応するユーザのジョブが送信されなければポーリングの停止を解除し、ポーリングを開始する。これについては後述の図17で説明する。
【0106】
つまり、印刷方法が「通常」の場合、図11において、ユーザがカードをかざすと、S159で、マスストレージ500に記憶されている、カードをかざしたユーザが印刷要求したジョブの印刷予約情報が作成される。その後、図9において一定時間内にユーザが自身のクライアントPC300から印刷を実行すると、図10において印刷予約情報に従って、マスストレージ500に記憶されているジョブを取得して印刷する(S028)。
【0107】
前段のステップS108の結果、認証キャッシュ870に一致するカードID211が存在しなかった場合は、アプリケーション800は、図24に示すメッセージからメッセージ2である「APユーザキャッシュナシ」を選択し、図19に示すユーザ通知処理を行う(ステップS162)。
【0108】
次に、図11のステップS106で、プライマリであるLDAPサーバ200a、あるいはセカンダリであるLDAPサーバ200bのいずれかに接続できた場合、アプリケーション800はLDAP認証を行う(図12のステップS109)。
設定情報802のユーザ837及びパスワード838をLDAPサーバ200に送信し、認証要求を発行する。なお、この認証処理に関しては、LDAPサーバ200が認証をしなければ検索をさせないという強固なセキュリティが施されている場合の処理である。他の実施形態として、検索を行うにあたって認証が必要ない設定(非認証の設定)がなされていた場合は、認証に伴うS109からS114までの処理を省略してもよい。
【0109】
NIC OS900は、アプリケーション800から伝達されたデータ(設定情報802)をLDAPサーバ200に送信する(ステップS110)。
LDAPサーバ200は、受信したデータ(設定情報802)のユーザ名でLDAPディレクトリ201を検索する。ユーザが見つかった場合、受信したデータと対応するユーザのユーザ情報210に含まれるパスワード213を照合し、認証結果を返答する(ステップS111)。
NIC OS900が、LDAPサーバ200から受信したデータをアプリケーション800に伝達すると(ステップS112)、アプリケーション800はLDAP認証結果を受け取る(ステップS113)。
【0110】
アプリケーション800は、前段のステップS113での認証結果の可否により分岐処理を行い(ステップS114)、認証に失敗した場合、図24に示すメッセージからメッセージ3の「APサーバエラー」を選択し、ユーザ通知処理を行う(ステップS115)。
認証に成功した場合、アプリケーション800は設定情報802をもとにカードID211の検索をLDAPサーバ200に対して行う(ステップS116)。
アプリケーション800は、設定情報802のsuffix831と識別コード832を用いて検索位置を指定する。
【0111】
NIC OS900は、アプリケーション800から伝達されたデータをLDAPサーバ200へ送信する(ステップS117)。
LDAPサーバ200は、アプリケーション800から送信されたデータをもとにLDAPディレクトリ201を検索し、検索結果を返信する(ステップS118)。
指定されたsuffix831及び識別コード832以下にあるデータの中から、指定されたカードID211を探し、見つかったユーザ情報210を送信する。suffix831や識別コード832は、LDAPディレクトリ201中のユーザの位置を特定するために指定する情報であり、一般的にLDAP検索の際にSearchBaseとして指定される値である。
【0112】
NIC OS900が、LDAPサーバ200から受信したデータをアプリケーション800に伝達すると(ステップS119)、アプリケーション800はLDAPサーバ200からの検索結果を取得する(ステップS120)。
【0113】
次に、図13に示すように、アプリケーション800は、LDAPサーバ200からの検索結果を見てユーザ情報210が取得できたか、即ち、ユーザが存在したか否かにより分岐処理を行う(ステップS121)。
ユーザ情報210が取得できない場合、アプリケーション800は図24に示すメッセージからメッセージ4の「APユーザミトウロク」を選択し、ユーザ通知処理を行う(ステップS122)。
【0114】
ユーザ情報が取得できた場合、アプリケーション800はユーザ情報210の利用制限をもとに、ユーザに利用権があるか否かで分岐処理を行う(ステップS123)。
利用制限には様々な設定方法が考えられるが、例えば、4桁の数字で利用権限を表現し、1桁目がプリンタの利用権限、2桁目がコピーの利用権限、3桁目がスキャンの利用権限、4桁目がファクスの利用権限とする。そして、その値が“0”は「使用不可能」、“1”は「モノクロのみ使用可能」、“2”は「カラーモノクロ双方利用可能」とする。そして、ユーザ情報210内の利用権限を参照し、プリンタの項目が“0”ならば「権限なし」、“1”あるいは“2”ならば「権限あり」、とみなすという方法が考えられる。
ステップS123において利用権限がない場合、アプリケーション800は図24に示すメッセージからメッセージ5の「APユーザエラー」を選択し、ユーザ通知処理を行う(ステップS124)。
【0115】
前段ステップS123の判定で「権限がある」と判定された場合、アプリケーション800は、認証キャッシュの更新を行う(ステップS125)。より詳細には、前段図12のステップS120で取得したユーザ情報210のカードID211およびユーザ名212を認証キャッシュとして登録する。すでに同じデータが登録されていた場合は、上書きを行う。
認証情報をキャッシュすることで、認証サーバが停止したときも、カードID211をもとにして、ユーザ名212を解決することができる。
【0116】
図14では、NIC700は、LDAPサーバ200と通信できる場合、マスストレージ500からユーザ情報210に応じた印刷データを取得する。
図14に示すように、利用権限がある場合、アプリケーション800は取得したユーザ情報210内のユーザ名をキーとして、ジョブリスト805の中からユーザ名が一致するジョブ情報820を抽出する(ステップS126)。
アプリケーション800は、抽出したジョブ情報820をリストにして実行リスト804を作成する(ステップS127)。ステップS127では、印刷方法が「蓄積」の場合において、当該ユーザのジョブをジョブリスト805から検索して実行リスト804を作成する。そして、後述する図16のステップS201において、実行リスト804のジョブを取得する(第1の取得手段)。
【0117】
アプリケーション800は、取得したユーザ情報210の中からサブユーザを取得する(ステップS128)。
直前にサブユーザ1を取得していれば、次のサブユーザ2を取得する。サブユーザに関連するS128からS131までの一連の処理は、一人のユーザで複数ユーザの印刷物を出力させるために行う処理である。例えば、従来はICカード一枚につき1ユーザまでしか登録できなかったため、秘書が上司の印刷物を出力したい場合はICカードを借りる必要があった。また、一人で2台のPCを使っているユーザは2枚のICカードを携帯する必要があった。この一連のサブユーザに関連する処理を行うことにより、上記問題を解決し、1枚のICカードで複数ユーザの印刷物を出力することが可能となる。
【0118】
アプリケーション800は、取得したサブユーザをチェックし(ステップS129)、サブユーザ4までのすべてのサブユーザを取得した場合、あるいは、サブユーザが取得できなかった場合、登録されていなかった場合はS132へ進む。
サブユーザが取得できた場合、アプリケーション800はサブユーザに一致するジョブ情報820をジョブリスト805の中から抽出し(ステップS130)、抽出したジョブ情報820を実行リスト804に加える(ステップS131)。
【0119】
すべてのサブユーザを取得すると、アプリケーション800は作成した実行リスト804をソートする(ステップS132)。
より詳細には、ジョブ情報820をタイムスタンプ824でソートし、続いてユーザ名821でソートし、ユーザ名821のまとまりで時系列に並び替える。このソートにより、複数ユーザの印刷物を出力したいときにユーザ毎にまとまった出力物が得られ、分別の手間が省ける。また、各ユーザの印刷物はタイムスタンプ順に並んでいるため、印刷実行したユーザの指示通りの順番になりユーザにわかりやすい出力順になる。また、ソートの仕方についてはこの方法に限られず、ユーザ名でソートし、続いてタイムスタンプでソートしてもよい。
【0120】
次に、図15に示すように、アプリケーション800は、実行リスト804内のジョブ情報820の数をチェックし(ステップS133)、0件の場合、図24に示すメッセージからメッセージ6の「APジョブナシ」を選択し、ユーザ通知処理を行う(ステップS134)。
【0121】
実行リスト804内のジョブ情報820の数が1件以上の場合、アプリケーション800は実行リスト804内のジョブ情報820の数で、ループ処理を行う(ステップS135)。すべてのジョブ情報820を参照すると、ループ処理を終了する。このループ処理とは、実行リストにある全てのジョブ情報820に関して、ステップS136からステップS138を行う処理である。ステップS135では、つまり、実行リストにある全てのジョブ情報820について、当該処理を終えたかを判定し、当該処理を終えた判定すると、ステップS139へ進む。
アプリケーション800は、ジョブ投入可否を判定する(ステップS136)。通常、印刷機器はRAMに制限があるため、一度に投入できる印刷ジョブを制限している。ジョブ投入可否を判定するのは、投入制限を越えているにも関わらずジョブを投入してしまい、印刷が失敗してしまうことを防ぐためである。
次に、アプリケーション800はウェイト処理を行う(ステップS137)。このウェイト処理は、ジョブが投入制限を越えて投入できない場合にループ(ステップS136からステップS137)を回り続け、CPUを占有してしまう現象を防ぐ。
アプリケーション800は、図16に示すジョブ印刷処理を行い(ステップS138)、実行リスト804内のジョブ情報820をすべてクリアする(ステップS139)。
【0122】
次に、図16を参照しながら、セキュアプリントシステム1のジョブ印刷処理について説明する。
図16では、NIC700は、印刷データを印刷装置1000に送信する。
【0123】
図16に示すように、アプリケーション800は、上位から渡されたジョブ情報820をもとに、ファイルシステム501内からジョブ310を取得する(ステップS201)。
アプリケーション800は、ジョブ情報820に格納されているファイル名822に一致するファイルシステム501内のファイルの取得をマスストレージ500に要求する。
NIC OS900が、アプリケーション800からの指令をマスストレージ500に伝達すると(ステップS202)、マスストレージ500はファイルシステム501から指定のファイルを読み込んで、アプリケーション800に返し(ステップS203)、NIC OS900がマスストレージ500からの指令をアプリケーション800に伝達する(ステップS204)。
【0124】
アプリケーション800は、取得したジョブ310の復号化をNIC OS900に要求し、同時に復号化キーや復号化アルゴリズム等を指定する(ステップS205)。
NIC OS900は、データの復号化処理を行い(ステップS206)、アプリケーション800は復号化されたジョブ310の印刷指示を行う(ステップS207)。
NIC OS900は、アプリケーション800からの指令を受け取り、図18に示す印刷処理を行う(ステップS208)。
【0125】
NIC OS900が、印刷装置1000の指令をアプリケーション800へ伝達すると(ステップS213)、アプリケーション800は該当するジョブ310をファイルシステム501からの削除をマスストレージ500に要求する(ステップS214)。
NIC OS900が、アプリケーション800の指令をマスストレージ500へ伝達すると(ステップS215)、マスストレージ500は指定されたジョブ310をファイルシステム501から削除する(ステップS216)。
NIC OS900は、マスストレージ500からの指令をアプリケーション800へ伝達する(ステップS217)。
【0126】
次に、図17を参照しながら、セキュアプリントシステム1の定期チェック処理について説明する。
図17では、NIC700は、一定間隔でLDAPサーバ200と通信可能かどうかを確認し、印刷方法861が「通常」に設定されている、かつLDAPサーバ200と通信可能、な場合、印刷方法861を「蓄積」に設定する。また印刷予約情報880の有効期限チェックを行い、有効期限が切れていれば、印刷予約情報880を削除する。
なお、これらの処理は、アプリケーション800の起動時に開始され、アプリケーション800が終了するまで繰り返される。
【0127】
図17に示すように、アプリケーション800は、印刷方法861の確認を行う(ステップS301)。
印刷方法861が「蓄積」の場合、アプリケーション800は、ウェイト処理を行い(ステップS306)、再び印刷方法861の確認を行う(ステップS301)。このウェイト処理は、印刷方法861が「蓄積」の場合にループ(ステップS301からステップS305)を回り続け、CPUを占有してしまう現象を防ぐ。
【0128】
印刷方法862が「通常」の場合、アプリケーション800は、アプリケーション800は設定情報802に設定されたプライマリであるLDAPサーバ200a及びセカンダリであるLDAPサーバ200bのポートへの接続をNIC OS900に要求し、NIC OS900は指定された2つのLDAPサーバ200に接続を行う。
アプリケーション800は、プライマリであるLDAPサーバ200aまたはセカンダリであるLDAPサーバ200bのいずれかに接続できたかどうか確認を行う(ステップS302)。
【0129】
接続できた場合、アプリケーション800は、印刷予約情報880の情報を削除し(ステップS303)、印刷方法861を「蓄積」(第1の印刷モード)に切り替える(ステップS305)。その後、ウェイト処理を行い(ステップS306)、再び印刷方法861の確認を行う(ステップS301)。
これにより、LDAPサーバ200が復帰したときに自動的に印刷方法861を「蓄積」に切り替えることができ、手動でアプリケーション800の設定をわざわざ変更する手間が省ける。
【0130】
接続できなかった場合、アプリケーション800は、印刷予約情報880の有効期限をチェックする(ステップS307)。より詳細には、印刷予約情報880のタイムスタンプ871に設定情報802の印刷予約情報有効時間839を加算したものが、現在時刻を過ぎているかどうかで判断する。
有効期限のチェックを行うことで、印刷予約を行ったユーザが印刷を忘れた場合でも、一定時間経過後に他のユーザが印刷予約できるようになる。
有効期限が切れていなければ、アプリケーション800は、ウェイト処理を行い(ステップS305)、再び印刷方法861の確認を行う(ステップS301)。
有効期限が切れていた場合、アプリケーション800は、印刷予約情報880を削除し(ステップS308)、カードリーダ400を制御して、ポーリングを開始する(ステップS309)。その後、ウェイト処理を行い(ステップS306)、再び印刷方法861の確認を行う(ステップS301)。
【0131】
次に、図18を参照しながら、セキュアプリントシステム1の印刷処理について説明する。
図18では、NIC700は、印刷装置1000に印刷データを転送し、印刷装置1000は印刷データを解析し、印刷物を出力する。
【0132】
図18に示すように、NIC OS900は上位から受け取ったジョブ310を印刷装置1000に転送し(ステップS401)、印刷装置1000は転送されたジョブ310を受け付け、受信バッファ1001に格納し、スプール処理を行う(ステップS402)。
印刷装置1000は、スプールされたジョブ310の印刷情報管理ヘッダ311を解析する(ステップS403)。解析したデータは、図示しない内部ログデータなどに利用される。
印刷装置1000は、ジョブ310内のPDLデータを解析し、描画オブジェクトの中間データを作成し、さらにその中間データをもとにビットマップイメージを作成する(ステップS404)。
印刷装置1000は、作成したビットマップイメージを既知の印刷技術により用紙等のメディアに印刷を行う(ステップS405)。
【0133】
次に、図19を参照しながら、セキュアプリントシステム1のユーザ通知処理について説明する。
図19に示すように、アプリケーション800は、上位から伝達されたメッセージ文字列を取得し(ステップS501)、ビープ音鳴動、及び指定のメッセージ表示をNIC OS900に要求する(ステップS502)。
NIC OS900は、印刷装置1000の種別を判定し、適切な方法を使ってビープ音鳴動を指示する(ステップS503)。例えば、機種によってUDP、印刷情報管理プロトコル、JLを使用したりするため、その情報をNIC OS900が吸収し、印刷装置1000の機種にあった方法でビープ音鳴動指示をする。パネル表示については、MIBを用いて表示指示を印刷装置1000に送る。
印刷装置1000は、指令を受け取り、ビープ音を鳴動させ(ステップS504)、パネルに指定されたメッセージを表示させる(ステップS505)。
【0134】
このように本発明の実施の形態によれば、例えば認証サーバがダウンするなどの理由により印刷方法が切り替わることによって未出力となってしまう印刷データを出力させることが可能な仕組みを提供することが可能になる。
【0135】
本発明に係るセキュアプリントシステム1では、認証サーバが何らかの理由で動作しない場合でも、印刷を行うことが可能であるため、ユーザの業務をとめることがない可用性の高いシステムを構築することが可能になる。
また、一定間隔、あるいは、ユーザ認証時に認証サーバが通信可能か否かを判断するため、認証サーバの復帰に対して自動的に印刷モードの復帰、切り替えが可能になるとともに、印刷モードの切り替えにより未出力となってしまう印刷データを出力させることが可能になる。
【0136】
また、認証サーバが停止して第2の印刷モードの印刷方法に切り替わった時に、出力フラグにより、蓄積された印刷データとともに、当該受付による印刷データを印刷するか否かをユーザが設定することが可能となる。
さらに、認証サーバが停止して第2の印刷モードの印刷方法に切り替わった時に、認証キャッシュ等により、セキュリティを確保しつつ蓄積された印刷データを出力することができるので、ユーザは、第1の印刷モードで蓄積した印刷データを再送信する必要がなくなる。
また、それによって、認証サーバが復帰して第2の印刷モードから第1の印刷モードに印刷方法が切り替わった時に、ユーザが不要な印刷データを削除する必要がなくなる。
【0137】
以上、添付図面を参照しながら本発明に係るセキュアプリントシステムおよびネットワークインタフェース装置等の好適な実施形態について説明したが、前述した実施の形態に限定されるものではない。当業者であれば、特許請求の範囲に記載された技術的思想の範疇内において各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【0138】
【図1】従来のセキュアプリントシステムの構成の一例を示す図
【図2】本発明に係るセキュアプリントシステム1の構成の一例を示す図
【図3】LDAPサーバ200、クライアントPC300のハードウエア構成を示す図
【図4】印刷装置1000のハードウエア構成を示す図
【図5】NIC700のハードウエア構成を示す図
【図6】セキュアプリントシステム1の実施例を示す図(第1の印刷モード)
【図7】セキュアプリントシステム1の実施例を示す図(第2の印刷モード)
【図8】本発明に係るセキュアプリントシステム1の構成を示すブロック図
【図9】セキュアプリントシステム1の印刷ジョブ受付処理手順の一例を示すフローチャート
【図10】セキュアプリントシステム1の印刷ジョブ受付処理手順の一例を示すフローチャート
【図11】セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート
【図12】セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート
【図13】セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート
【図14】セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート
【図15】セキュアプリントシステム1のカード検知処理手順の一例を示すフローチャート
【図16】セキュアプリントシステム1のジョブ印刷処理手順の一例を示すフローチャート
【図17】セキュアプリントシステム1の定期チェック処理手順の一例を示すフローチャート
【図18】セキュアプリントシステム1の印刷処理手順の一例を示すフローチャート
【図19】セキュアプリントシステム1のユーザ通知処理手順の一例を示すフローチャート
【図20】設定情報802の一例を示す図
【図21】動作情報860の一例を示す図
【図22】認証キャッシュ870の一例を示す図
【図23】印刷予約情報880の一例を示す図
【図24】印刷装置1000に表示するメッセージの一例を示す図
【図25】ジョブ310の詳細を示す図
【図26】印刷情報管理ヘッダ311の詳細を示す図
【図27】ジョブ情報820の詳細を示す図
【図28】ジョブリスト805の詳細を示す図
【図29】実行リスト804の詳細を示す図
【図30】ファイルシステム501の詳細を示す図
【図31】ICカード410の詳細を示す図
【図32】ユーザ情報210の一例を示す図
【図33】LDAPディレクトリ201の詳細を示す図
【図34】出力設定画面の一例を示す図
【符号の説明】
【0139】
1………セキュアプリントシステム
150………LAN
160………USBケーブル
200………LDAPサーバ
300………クライアントPC
400………カードリーダ
500………マスストレージ
600………USBハブ
700………NIC
800………アプリケーション
900………NIC OS
1000………印刷装置

【特許請求の範囲】
【請求項1】
画像形成装置に接続され、印刷データを送信する情報処理装置と、ユーザの認証を行う認証サーバと通信するネットワークインタフェース装置であって、
前記情報処理装置から、印刷データを受け付ける受付手段と、
前記印刷データを記憶する記憶手段と、
ユーザを識別するためのユーザ識別情報の受付に応じて、前記ユーザ識別情報の認証を行って前記記憶手段に記憶されている印刷データを印刷する第1の印刷モードか、前記記憶手段に記憶することなく前記受付手段で受け付けた印刷データを印刷する第2の印刷モードかを判定する印刷モード判定手段と、
前記印刷モード判定手段で、前記第1の印刷モードであると判断した場合、前記記憶手段によって記憶されている印刷データから、前記ユーザ識別情報に応じた印刷データを取得する第1の取得手段と、
前記印刷モード判定手段で、前記第2の印刷モードであると判断した場合、前記受付手段での印刷データの受付に応じて、当該印刷データのユーザと一致する前記記憶手段に記憶されている印刷データを取得する第2の取得手段と、
前記第1の取得手段または第2の取得手段で取得した印刷データを前記画像形成装置で印字するために、前記画像形成装置に送信する送信手段と、
を備えることを特徴とするネットワークインタフェース装置。
【請求項2】
一定間隔で、または、ユーザ識別情報の受付時に、前記認証サーバに通信可能か否かを判断する判断手段と、
前記判断手段が、前記認証サーバに通信可能であると判断した場合、前記第1の印刷モードへ設定を変更し、前記判断手段が、前記認証サーバに通信可能でないと判断した場合、前記第2の印刷モードへ設定を変更する設定変更手段と、
を更に備えることを特徴とする請求項1記載のネットワークインタフェース装置。
【請求項3】
前記第2の印刷モード時における前記受付手段で受け付けた印刷データを削除するか否かを判定する削除判定手段と、を更に備え、
前記削除判定手段で削除すると判定された場合、前記受付手段で受け付けた印刷データを削除することを特徴とする請求項1または請求項2に記載のネットワークインタフェース装置。
【請求項4】
前記削除判定手段で削除しないと判定された場合、前記第2の取得手段で取得した印刷データと、前記受付手段で受け付けた印刷データとを出力することを特徴とする請求項3に記載のネットワークインタフェース装置。
【請求項5】
前記第1の印刷モード時に、ユーザを識別するためのユーザ識別情報の受付に応じて、当該ユーザ識別情報を記憶する認証記憶手段を更に備えることを特徴とする請求項1乃至請求項4のいずれか1項に記載のネットワークインタフェース装置。
【請求項6】
前記第2の印刷モード時に、ユーザを識別するためのユーザ識別情報の受付において、前記認証記憶手段にユーザ識別情報が記憶されているか否かを判定する認証判定手段と、
前記認証判定手段で記憶されていると判定される場合には、当該ユーザ識別情報に対応するユーザの印刷データを印刷可能にユーザ識別情報を設定する印刷予約手段を更に備えることを特徴とする請求項5に記載のネットワークインタフェース装置。
【請求項7】
前記送信手段は、前記第2の印刷モード時に、前記受付手段での印刷データの受付において、当該印刷データのユーザが前記印刷予約手段により設定されたユーザ識別情報に対応するユーザと一致した場合に、第2の取得手段で取得した印刷データを送信し、一致しない場合には前記受付手段で受付けた印刷データを出力することを特徴とする請求項6に記載のネットワークインタフェース装置。
【請求項8】
前記受付手段で受け付けた印刷データは、前記第2の印刷モード時に削除するか否かの設定を前記情報処理装置に備えるプリンタドライバで設定された印刷データであることを特徴とする請求項1乃至請求項7のいずれか1項に記載のネットワークインタフェース装置。
【請求項9】
前記ユーザ識別情報は、記憶媒体に記憶されるユーザ名または、記憶媒体に記憶される記憶媒体識別情報を用いて、前記認証サーバで認証されることによって得られるユーザ名であることを特徴とする請求項1乃至8のいずれか1項に記載のネットワークインタフェース装置。
【請求項10】
画像形成装置に接続され、印刷データを送信する情報処理装置と、ユーザの認証を行う認証サーバと通信するネットワークインタフェース装置における印刷制御方法であって、
前記情報処理装置から、印刷データを受け付ける受付工程と、
前記印刷データを記憶する記憶工程と、
ユーザを識別するためのユーザ識別情報の受付に応じて、前記ユーザ識別情報の認証を行って前記記憶手段に記憶されている印刷データを印刷する第1の印刷モードか、前記記憶手段に記憶することなく前記受付手段で受け付けた印刷データを印刷する第2の印刷モードかを判定する印刷モード判定工程と、
前記印刷モード判定手段で、前記第1の印刷モードであると判断した場合、前記記憶手段によって記憶されている印刷データから、前記ユーザ識別情報に応じた印刷データを取得する第1の取得工程と、
前記印刷モード判定手段で、前記第2の印刷モードであると判断した場合、前記受付手段での印刷データの受付に応じて、当該印刷データのユーザと一致する前記記憶手段に記憶されている印刷データを取得する第2の取得工程と、
前記第1の取得手段または第2の取得手段で取得した印刷データを前記画像形成し装置で印字するために、前記画像形成装置に送信する送信工程と、
を含むことを特徴とする印刷制御方法。
【請求項11】
ネットワークインタフェース装置において、請求項10記載の方法を実行させる印刷制御プログラム。
【請求項12】
印刷データを送信する情報処理装置と通信可能な画像形成装置であって、
前記情報処理装置から、印刷データを受け付ける受付手段と、
前記印刷データを記憶する記憶手段と、
ユーザを識別するためのユーザ識別情報の受付に応じて、前記ユーザ識別情報の認証を行って前記記憶手段に記憶されている印刷データを印刷する第1の印刷モードか、前記記憶手段に記憶することなく前記受付手段で受け付けた印刷データを印刷する第2の印刷モードかを判定する印刷モード判定手段と、
前記印刷モード判定手段で、前記第1の印刷モードであると判断した場合、前記記憶手段によって記憶されている印刷データから、前記ユーザ識別情報に応じた印刷データを取得する第1の取得手段と、
前記印刷モード判定手段で、前記第2の印刷モードであると判断した場合、前記受付手段での印刷データの受付に応じて、当該印刷データのユーザと一致する前記記憶手段に記憶されている印刷データを取得する第2の取得手段と、
を備えることを特徴とする画像形成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate


【公開番号】特開2010−108347(P2010−108347A)
【公開日】平成22年5月13日(2010.5.13)
【国際特許分類】
【出願番号】特願2008−281181(P2008−281181)
【出願日】平成20年10月31日(2008.10.31)
【出願人】(390002761)キヤノンマーケティングジャパン株式会社 (656)
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】