以下、この発明に係わる印刷システムおよび印刷制御方法の実施例を添付図面を参照して詳細に説明する。
図1は、この発明に係わる印刷システムの概略を示すシステム構成図である。
図1において、この印刷システムは、複数のクライアント装置10−1、…10−mと、プリントサーバ20と、複数の印刷装置30−1、…30−nと、この複数の印刷装置30−1、…30−nに対応して設けられた認証装置40−1、…40−nとをそれぞれネットワーク50に接続して構成される。
ここで、クライアント装置10−1、…10−mは、この印刷システムを用いた所望の文書の印刷指示を行うもので、この印刷指示に際してその権限を有するユーザであるかのユーザ認証を行う複数の認証装置11−1、…11−mがそれぞれローカルに接続される。
認証装置40−1、…40−nは、印刷装置30−1、…30−nに対応してそれぞれネットワーク50に接続されており、対応する印刷装置30−1、…30−nからの上記印刷指示に係わる文書の印刷に際して、該印刷の権限を有するユーザであるかのユーザ認証を行う。
認証装置11−1、…11−mおよび認証装置40−1、…40−nにおけるユーザ認証は、ユーザが携帯するユーザ識別情報(ユーザID)等が記憶されたカード状記憶媒体(以下、セキュリティカードという)を用いたユーザ認証、ユーザの指紋等の生体的特徴情報を読み取るユーザ認証等を採用できるが、この実施例では、セキュリティカードを用いてユーザ認証を行う場合を例に挙げて説明する。
ここで、セキュリティカードは、IC(集積回路)を搭載したICカード、磁気ストライプを記憶手段とする磁気カード等から構成でき、このセキュリティカードには、ユーザIDに加えて、ユーザの所属する部門情報、権限の範囲等のユーザ認証に必要な各種情報および印刷指示に基づき形成される印刷ジョブの暗号化に用いる秘密キーおよび符号化に用いる公開キー等が予め記憶されている。
クライアント装置10−1、…10−mは、自ら作成編集した文書若しくは図示しない文書管理システムから取得した文書の印刷データの印刷指示を印刷装置30−1、…30−nの中の特定の印刷装置、例えば、印刷装置30−1を指定して行う。
この文書のクライアント装置10−1、…10−mからの印刷指示に際して、ユーザがこの文書の印刷データの印刷指示を行う権限を有するか否かのユーザ認証をこのクライアント装置10−1、…10−mにローカルに接続される認証装置11−1、…11−mを用いて行う。
認証装置11−1、…11−mは、ユーザが携帯するセキュリティカードからユーザ認証に必要な情報を読み取るカードリーダを具備して構成され、ユーザ認証に際しては、セキュリティカードからユーザ認証に必要な情報(以下、認証データという)を読み取り、この認証データを対応するクライアント装置10−1、…10−mに入力する。
クライアント装置10−1、…10−mは、この認証データに基づき必要なユーザ認証を行う。このユーザ認証は、プリントサーバ20に対する問合せにより行われる。
すなわち、クライアント装置10−1、…10−mは、セキュリティカードから読み取った認証データの全部若しくは一部をネットワーク50を介してプリントサーバ20に送信し、プリントサーバ20に対してこのユーザがこの文書の印刷指示を行う権限を有するか否かの問合せを行う。
プリントサーバ20では、自己のデータベース若しくは別設けられたユーザ管理システムへの問合せに基づき、当該ユーザが当該文書の印刷指示を行う権限を有するか否かのユーザ認証処理を行い、その応答をクライアント装置10−1、…10−mに返す。
クライアント装置10−1、…10−mでは、当該ユーザが当該文書の印刷指示を行う権限を有していないと判断されると当該印刷指示に基づく印刷ジョブは投入されず、破棄される。
これに対して、当該ユーザが当該文書の印刷指示を行う権限を有していると判断されると、クライアント装置10−1、…10−mでは当該印刷指示に基づく印刷ジョブを生成し、この印刷ジョブを、上記セキュリティカードから読み取った秘密キーを用いて暗号化し、この暗号化した印刷ジョブを印刷装置30−1を指定してネットワーク50を経由してプリントサーバ20へ送信する。
ここで、クライアント装置10−1、…10−mは、それぞれ印刷装置30−1、…30−nに対応する複数のプリンタドライバ(全印刷装置ドライバ)110を有しており、印刷装置30−1、…30−nにそれぞれ対応する複数の印刷ジョブを生成し、この複数の印刷ジョブを上記セキュリティカードから読み取った秘密キーを用いて暗号化し、この暗号化した複数の印刷ジョブをネットワーク50を経由してプリントサーバ20へ順次送信する。
プリントサーバ20には、印刷ジョブ蓄積管理部203が設けられており、クライアント装置10−1、…10−mから送信された暗号化された複数の印刷ジョブを、例えば、印刷指示をしたユーザのユーザIDに対応して印刷ジョブ蓄積管理部203に蓄積して管理する。この時点で、プリントサーバ20に蓄積されたこれら複数の印刷ジョブに係わる印刷は開始されない。
さて、クライアント装置10−1、…10−mで印刷指示を行ったユーザ若しくはこの印刷指示に基づく印刷物を取得する権限を有するユーザがこの印刷指示に基づく印刷物を取得する場合は、印刷出力を行う指定された印刷装置30−1の近くに行き、この印刷装置30−1に対応する認証装置40−1でユーザ認証を行う。
このユーザ認証は、認証装置11−1、…11−mによるユーザ認証と同様にセキュリティカードを用いて行う。
例えば、ユーザが、印刷装置30−1に対応する認証装置40−1に該ユーザが携帯するセキュリティカードを挿入すると、認証装置40−1により、このセキュリティカードからユーザ認証に必要な認証データが読み取られる。
この読み取られた認証データは、ネットワーク50を経由してプリントサーバ20に送られ、プリントサーバ20では、当該ユーザが当該印刷指示に基づく印刷物を取得する権限を有するか否かの認証を行う。
このユーザ認証も、プリントサーバ20のデータベース若しくは別設けられたユーザ管理システムへの問合せに基づき行う。
このユーザ認証によりこのユーザが当該印刷装置30−1で当該印刷指示に基づく印刷物を取得する権限を有していないと判断すると、この印刷指示に基づく印刷が禁止される。
また、このユーザ認証によりこのユーザが当該印刷装置30−1で当該印刷指示に基づく印刷物を取得する権限を有していると判断されると、プリントサーバ20は、認証装置40−1、…40−nから送られた認証データに含まれるユーザIDに基づき蓄積管理されている暗号化された複数の印刷ジョブから該当印刷装置30−1に対応する印刷ジョブを検索して、該当印刷ジョブを取り出し、該印刷ジョブを認証データに含まれる公開キーを用いて復号化する。
また、プリントサーバ20は、印刷装置30−1、…30−nと認証装置40−1、…40−nとの対応関係を記憶する対応関係テーブルを記憶しており、認証データを受け取った認証装置40−1に対応する印刷装置30−1を上記対応関係テーブルを参照して特定し、この特定した印刷装置30−1に対して復号化した印刷ジョブを送信する。
これにより、印刷装置30−1ではこの復号化された印刷ジョブに基づき印刷を開始する。
なお、この実施例では、指定された印刷装置30−1が、他の印刷ジョブ実行中、故障中、または電源オフ等の原因で即時に印刷出力不能な状態にある場合は、指定された印刷装置30−1以外の他の印刷装置30−2、…30−nでも同様にこの印刷ジョブに係る印刷出力を行うことができるように構成されている。
例えば、印刷装置30−1が、他の印刷ジョブ実行中、故障中、または電源オフ等の原因で即時に印刷出力不能な状態にあると、ユーザは当該印刷装置30−1以外の他の印刷装置、例えば、印刷装置30−2に対応する認証装置40−2に該ユーザが携帯するセキュリティカードを挿入する。
これにより、認証装置40−2により、セキュリティカードからユーザ認証に必要な認証データが読み取られ、この読み取られた認証データは、ネットワーク50を経由してプリントサーバ20に送られ、プリントサーバ20では、当該ユーザが当該印刷指示に基づく印刷物を取得する権限を有するか否かの認証を行う。
そして、このユーザ認証によりこのユーザが当該印刷指示に基づく印刷物を取得する権限を有していると判断されると、プリントサーバ20は、認証装置40−2送られた認証データに含まれるユーザIDに基づき蓄積管理されている暗号化された複数の印刷ジョブから該当印刷装置30−2に対応する印刷ジョブを検索して、該当印刷ジョブを取り出し、該印刷ジョブを認証データに含まれる公開キーを用いて復号化し、上記対応関係テーブルを参照して印刷装置30−2を特定し、この特定した印刷装置30−2に対して復号化した印刷ジョブを送信する。
これにより、印刷装置30−2ではこの復号化された印刷データに基づき印刷を開始する。
このような構成によると、例えば、クライアント装置10−1で、印刷装置30−1を指定する印刷指示を行った場合で、印刷装置30−1が、他の印刷ジョブ実行中、故障中、または電源オフ等の原因で即時に印刷出力不能な状態にある場合でも、他の印刷装置30−2、…30−nに対応する認証装置40−2、…40−nでユーザ認証を行うことで同様に印刷を行うことができる。
また、この場合、認証装置40−1、…40−nによる認証に基づき印刷が行われるので、この印刷物が第三者によって持ち去られたり、または、その内容が見られてしまうというセキュリティ上の不都合は生じず、また、印刷装置30−1、…30−n内に認証判定の構成を設けないので、既に導入されているネットワーク環境を変更することなく、また、認証装置11−1、…11−mおよび認証装置40−1、…40−nとして各種認証デバイスを採用することが可能になる。
図2は、図1に示したプリントサーバ20の詳細構成の一例を示すブロック図である。
図2において、このプリントサーバ20は、ネットワーク50とのインタフェースを構成するネットワークインタフェース部201、印刷ジョブ受付部202、印刷ジョブ蓄積管理部203、認証データ受信部204、認証処理部205、認証結果送信部206、印刷ジョブ選択部207、印刷ジョブ復号化部208、対応関係記憶部209、印刷装置特定部210、印刷ジョブ送信部211を具備して構成される。
ここで、印刷ジョブ受付部202は、ネットワークインタフェース部201を介してクライアント装置10−1、…10−mからの印刷指示に係わる暗号化された印刷ジョブを受け付ける。
印刷ジョブ蓄積管理部203は、印刷ジョブ受付部202で受け付けた暗号化された印刷ジョブをユーザIDに対応して蓄積管理する。
認証データ受信部204は、クライアント装置10−1、…10−mからの問合せに係わる認証データおよび認証装置40−1、…40−nからの認証データを受信する。
認証処理部205は、認証データ受信部204で受信した認証データに基づきクライアント装置10−1、…10−mからの問合せに係わる認証データおよび認証装置40−1、…40−nからの認証データに基づきユーザ認証を行うとともに、認証装置40−1、…40−nからの認証データから印刷指示に係わる印刷ジョブを復号化するための公開キーを抽出する。
ここで、認証処理部205におけるクライアント装置10−1、…10−mからの問合せに係わる認証データに基づくユーザ認証は、クライアント装置10−1、…10−mからこの印刷システムを用いて印刷指示を行うユーザが正当な権限を有するか否かの認証を行うものであり、また、認証装置40−1、…40−nからの認証データに基づくユーザ認証は、上記印刷指示に係わる印刷物を取得するユーザが正当な権限を有するか否かの認証を行うものである。
このユーザ認証は、プリントサーバ20内の図示しないデータベース若しくはこの印刷システムと連携する図示しないユーザ管理システムのデータベースを参照して行うことができる。
認証結果送信部206は、認証処理部205が、クライアント装置10−1、…10−mからの問合せに係わる認証データに基づきユーザ認証を行った場合は、その認証結果をネットワークインタフェース部201を経由してクライアント装置10−1、…10−mに返送し、認証装置40−1、…40−nからの認証データに基づきユーザ認証を行った場合は、その認証結果をネットワークインタフェース部201を経由して認証装置40−1、…40−nに返送する。
印刷ジョブ選択部207は、認証処理部205が、認証装置40−1、…40−nからの認証データに基づきユーザ認証を行い、印刷物を取得する正当なユーザであると認証した場合に、当該ユーザのユーザIDに基づき印刷ジョブ蓄積管理部203に蓄積管理されている印刷ジョブの中から印刷を許可する印刷ジョブを選択する。
印刷ジョブ復号化部208は、印刷ジョブ選択部207で選択した印刷ジョブを認証処理部205で抽出した公開キーに基づき復号化する。
対応関係記憶部209は、印刷装置30−1、…30−nと認証装置40−1、…40−nとの対応関係を記憶する対応関係テーブルを記憶しており、印刷装置特定部210は、認証処理部205で認証処理した認証データが認証装置40−1、…40−nがどの認証装置40−1、…40−nから送られたかにより対応関係記憶部210に記憶されている対応関係テーブルを参照して印刷ジョブを送信する印刷装置を印刷装置30−1、…30−nの中から特定する。
印刷ジョブ送信部211は、印刷ジョブ復号化部208で復号化された印刷ジョブを印刷装置特定部210で特定された印刷装置に対してネットワークインタフェース部201を介して送信する。
図3は、図1に示したクライアント装置10−1、…10−m(クライアント装置10と総称する)の詳細構成の一例を示すブロック図である。
図3において、クライアント装置10は、この印刷システムを用いた印刷指示を行うもので、パーソナルコンピュータ等から構成され、認証装置11−1、…11−m(認証装置11として総称する)がローカルに接続される。
このクライアント装置10は、印刷指示受付部101、印刷ジョブ生成部102、認証データ受信部103、認証処理部104、認証データ送信部105、認証結果受信部106、印刷ジョブ暗号化部107、印刷ジョブ送信部108、ネットワークインタフェース部109、全印刷装置ドライバ110を具備して構成される。
ここで、印刷指示受付部101は、図示しないキーボード、マウス等の入力選択操作に基づきこの印刷システムを用いた所定の印刷装置30−1、…30−nを指定する印刷データの印刷指示を受け付ける。
認証データ受信部103は、認証装置11からこの印刷指示に係わる認証データを受信する。
認証処理部104は、この認証データ受信部103で受信した認証データに基づきこの印刷指示を行うユーザが正当な権限を有するユーザか否かのユーザ認証を行う。
この認証処理部104によるユーザ認証は、プリントサーバ20に対する問合せにより行われる。
すなわち、認証処理部104におけるユーザ認証に際しては、認証装置11からの認証データの一部若しくは全部を認証データ送信部105、ネットワークインタフェース部109経由で、プリントサーバ20に送信することにより、この認証データにかかわるユーザがこの印刷システムを用いて印刷指示を行う権限を有するユーザであるかの問合せを行う。
そして、この問合せの結果をネットワークインタフェース部109を介して認証結果受信部106で受信し、認証処理部104は、この認証結果受信部106の受信情報に基づきこの認証データにかかわるユーザがこの印刷システムを用いて印刷指示を行う権限を有するユーザであるかを判別する。
印刷ジョブ生成部102は、認証処理部104におけるユーザ認証により、この認証データにかかわるユーザがこの印刷システムを用いて印刷指示を行う権限を有する正当なユーザであると判断されると、印刷指示受付部101で受け付けた印刷指示に係る印刷データに基づきこの印刷システムを用いて印刷指示を行う印刷ジョブを生成する。
この印刷ジョブ生成部102における印刷ジョブの生成は、全印刷装置ドライバ110を用いて行われる。
すなわち、全印刷装置ドライバ110は、印刷装置30−1、…30−nにそれぞれ対応する複数のプリンタドライバ110−1、…110−nを有しており、印刷ジョブ生成部102では、例えば、印刷指示受付部102で受け付けた印刷指示が印刷装置30−1を指定する場合でも、印刷データに基づくプリンタドライバ110−1を用いた印刷装置30−2に対応する印刷ジョブの生成だけでなく、プリンタドライバ110−2、…110−nを用いて他の印刷装置30−2、…30−nにも対応する複数の印刷ジョブも生成する。
印刷ジョブ暗号化部107は、印刷ジョブ生成部102で生成された各印刷装置30−1、…30−nに対応する複数の印刷ジョブを認証データに含まれる印刷ジョブ暗号化の秘密キーを用いてそれぞれ暗号化する。
印刷ジョブ送信部108は、印刷ジョブ暗号化部107で暗号化された複数の印刷ジョブをネットワークインタフェース部109、ネットワーク50を経由してプリントサーバ20に送信する。
なお、印刷装置30−1、…30−nの中で共用可能なプリンタドライバがある場合は、全印刷装置ドライバ110にはこの共用可能なプリンタドライバを設けてこれを共用することで全印刷装置ドライバ110に設けるプリンタドライバの数を減らすことができる。
また、印刷指示受付部101で受け付けた印刷指示で指定された印刷装置と代替可能な印刷装置が限られた印刷装置である場合は、印刷ジョブ生成部102で全ての印刷装置には対応しないが、この代替可能な印刷装置を含む複数の印刷ジョブを生成するように構成してもよい。
図4は、上記構成において図2に示したプリントサーバ20の印刷ジョブ蓄積管理部203に蓄積される印刷ジョブの一例を示した図である。
この実施例においては、クライアント装置10の印刷指示受付部101で受け付けた印刷指示に対応してクライアント装置10の印刷ジョブ生成部102で、複数のプリンタドライバ110−1、…110−nを用いて印刷装置30−1、…30−nに対応する複数の印刷ジョブを生成して順次プリントサーバ20に送り、プリントサーバ20の印刷ジョブ蓄積管理部203に蓄積する。
すなわち、クライアント装置10では、印刷指示受付部101で受け付けた印刷指示に係る印刷ジョブ1、…印刷ジョブMに対応して印刷ジョブ生成部102で印刷装置30−1、…30−nに対応する複数の印刷ジョブjob1_Drv1、…job1_DrvN,…jobM_Drv1、…jobM_DrvNをそれぞれ生成して順次プリントサーバ20に送り、プリントサーバ20の印刷ジョブ蓄積管理部203に蓄積する。
したがって、プリントサーバ20の印刷ジョブ蓄積管理部203には、図4に示すように、印刷ジョブ1、…印刷ジョブMに対応して、印刷ジョブjob1_Drv1、…job1_DrvN,…jobM_Drv1、…jobM_DrvNがそれぞれ蓄積され、例えば、印刷ジョブ1の印刷を印刷装置30−1で行う場合は、印刷ジョブjob1_Drv1が印刷ジョブ選択部207で選択選択されて印刷装置30−1に送られ、印刷ジョブ1の印刷を印刷装置30−2で行う場合は、印刷ジョブjob1_Drv2が印刷ジョブ選択部207で選択選択されて印刷装置30−2に送られる。
図5は、図3に示したクライアント装置10の処理を示すフローチャートである。
図5において、クライアント装置10は、まず、印刷指示受付部101で印刷指示を受け付けたかを調べ(ステップ401)、印刷指示を受け付けていない場合は(ステップ401でNO)、ステップ401に戻り、印刷指示の受付を待つが、印刷指示を受け付けたと判断されると(ステップ401でYES)、次に、この印刷指示に係わる認証データを認証データ受信部103で受信したかを調べる(ステップ402)。
ここで、認証データを受信していないと(ステップ402でNO)、ステップ402に戻り、認証データの受信を待つ。
認証データを受信すると(ステップ402でYES)、この受信した認証データに基づき認証処理部104で、この認証データに係わるユーザがこの印刷システムを用いて印刷指示を行う権限を有するかのユーザ認証を行う(ステップ403)。
このユーザ認証により、この印刷システムを用いて印刷指示を行う権限を有するかのユーザであると認証されると(ステップ404でYES)、印刷指示受付部101で受け付けた印刷指示に係わる印刷データに基づき全印刷装置に対応する複数の印刷ジョブを全印刷装置ドライバ110を用いて印刷ジョブ生成部102で生成する。
この生成した複数の印刷ジョブを印刷ジョブ暗号化部107で認証データに含まれる秘密キーを用いてそれぞれ暗号化し(ステップ406)、この暗号化した複数の印刷ジョブを印刷ジョブ送信部108により、ネットワークインタフェース部109を介して順次プリントサーバ20に送信し(ステップ407)、このクライアント装置10における処理を終了する。
なお、ステップ404で、認証データに係わるユーザがこの印刷システムを用いて印刷指示を行う権限を有していないと判断されると(ステップ404でNO)、この印刷システムを用いた印刷指示を行うことはできないので、印刷指示の禁止メッセージをクライアント装置10の表示器等に印刷指示の権限を有していない旨のメッセージを表示し(ステップ408)、印刷指示受付部101で受け付けた印刷指示を破棄する等の印刷禁止処理を行って(ステップ409)、このクライアント装置10における処理を終了する。
図6は、図2に示したプリントサーバ20の処理を示すフローチャートである。
図6において、プリントサーバ20は、まず、印刷ジョブ受付部202で、クライアント装置10からの暗号化された印刷ジョブを受け付けたかを調べる(ステップ501)。ここで、クライアント装置10からの暗号化された印刷ジョブを受け付けていないと(ステップ501でNO)、ステップ503に進む。
印刷ジョブ受付部202でクライアント装置10からの暗号化された印刷ジョブを受け付けると(ステップ501でYES)、この暗号化された印刷ジョブを印刷ジョブ蓄積管理部203に順次蓄積して、この印刷ジョブを印刷指示に係わるユーザIDに対応して管理する(ステップ502)。
ステップ503では、クライアント装置10からの問合せに基づく認証データ若しくは認証装置40からの認証データを認証データ受信部204で受信したかを調べる。ここで、認証データを受信していない場合は(ステップ503でNO)、ステップ501に戻る。
また、ステップ503で、認証データを受信したと判断されると(ステップ503でYES)、認証処理部205によるユーザ認証を行う(ステップ504)。
次に、このユーザ認証がクライアント装置10からの問合せに基づく認証か、すなわち、クライアント装置10からの認証依頼かを調べる(ステップ505)。ここで、このユーザ認証がクライアント装置10からの認証依頼である場合は(ステップ505でYES)、認証結果を認証結果送信部206、ネットワークインタフェース201を経由してクライアント装置10に送信して(ステップ506)、このプリントサーバ20の処理を終了する。
また、ステップ505で、ユーザ認証がクライアント装置10からの認証依頼でない場合は(ステップ505でNO)、認証装置40からの認証データに基づくユーザ認証であるので、この認証データにかかわるユーザが当該印刷指示に基づく印刷物を取得する権限を有するか否かの判断を行う(ステップ507)。
ここで、印刷物を取得する権限を有していると判断されると(ステップ507でYES)、印刷ジョブ選択部207により、認証装置40から送られた認証データに含まれるユーザIDに基づき、印刷ジョブ蓄積管理部203に蓄積管理されている暗号化された印刷ジョブの中から、該当印刷ジョブを選択し(ステップ508)、この選択した印刷ジョブを印刷ジョブ復号化部208で認証データに含まれる公開キーを用いて復号化する(ステップ508)。
また、対応関係記憶部209に記憶されている対応関係テーブルを参照してこの認証データを送信した認証装置40に対応する印刷装置30を特定する(ステップ510)。
そして、復号化された印刷ジョブをステップ510で特定した印刷装置30に印刷ジョブ送信部211、ネットワークインタフェース部201を介して送信し(ステップ511)、このプリントサーバ20の処理を終了する。
なお、ステップ507で、認証データにかかわるユーザが当該印刷指示に基づく印刷物を取得する権限を有していないと判断されると(ステップ507でNO)、この印刷指示に基づく印刷はできないので、所定の印刷禁止処理を行って(ステップ512)、このプリントサーバ20の処理を終了する。
なお、上記実施例においては、プリントサーバ20に蓄積管理される暗号化された印刷ジョブを認証装置40からの認証データに含まれる公開キーを用いてプリントサーバ20内で復号化して印刷データを印刷装置30に送信するように構成したが、上記印刷ジョブの復号化を認証装置40内で行うように構成してもよく、また、印刷装置30内で行うように構成してもよい。
図7は、図1に示した認証装置40−1、…40−n(認証装置40と総称する)の処理を示すフローチャートである。
図7において、認証装置40は、まず、セキュリティカードの挿入により認証データを受け付けたかを調べる(ステップ601)。ここで、認証データを受け付けた場合は(ステップ601でYES)、この認証データに基づき、プリントサーバ20に対して認証依頼を行う(ステップ602)。
この認証依頼に対応してプリントサーバ20から認証結果を受信すると(ステップ603でYES)、この認証結果に基づき印刷要求の権限があるかを調べる(ステップ604)。
ここで、印刷要求の権限がないと判断されると(ステップ604でNO)、印刷禁止処理を行って(ステップ605)この認証装置40の処理を終了する。
なお、ステップ604で、印刷要求の権限があると判断された場合は(ステップ604でYES)、プリントサーバ20から該当印刷ジョブが対応する印刷装置30に送られ、これにより該当印刷ジョブの印刷が開始される。
なお上記実施例においては、クライアント装置10の印刷指示受付部102で受け付けた印刷指示に係る印刷データに対応して印刷ジョブ生成部102で、全印刷装置ドライバ110を用いて印刷装置30−1、…30−nに対応する複数の印刷ジョブを生成して、プリントサーバ20の印刷ジョブ蓄積管理部203に蓄積するように構成したので、このシステムに接続される印刷装置の種類が多くなると、これに伴って印刷ジョブの種類が多くなり、プリントサーバ20に大容量の印刷ジョブ蓄積管理部203が必要になり、これはこのシステムの使用頻度が多くなると顕著になる。
そこで、印刷指示に係る印刷データをクライアント装置10側で蓄積管理し、プリントサーバ20では印刷指示にかかわる印刷ジョブの識別情報を蓄積管理し、クライアント装置10側における印刷ジョブの生成は、認証装置40−1、…40−nにおけるユーザ認証後に行うように構成してもよい。
図8は、印刷指示に係る印刷データをクライアント装置側で蓄積管理するようにしたこの発明の他の実施例の概略を示すシステム構成図である。
図8において、この印刷システムも、図1に示した印刷システムと同様に、複数のクライアント装置10−1、…10−mと、プリントサーバ20と、複数の印刷装置30−1、…30−nと、この複数の印刷装置30−1、…30−nに対応して設けられた認証装置40−1、…40−nとをそれぞれネットワーク50に接続して構成される。
ただし、この実施例においては、クライアント装置10−1、…10−mに、全印刷装置ドライバ110に加えて、印刷データ蓄積部111が設けられ、プリントサーバ20には、印刷ジョブ識別情報管理部214が設けられる。
上記構成において、クライアント装置10−1、…10−mは、自ら作成編集した文書若しくは図示しない文書管理システムから取得した文書の印刷データの印刷指示を印刷装置30−1、…30−nの中の特定の印刷装置、例えば、印刷装置30−1を指定して行う。
この文書のクライアント装置10−1、…10−mからの印刷指示に際して、ユーザがこの文書の印刷データの印刷指示を行う権限を有するか否かのユーザ認証をこのクライアント装置10−1、…10−mにローカルに接続される認証装置11−1、…11−mを用いて行う。
認証装置11−1、…11−mは、ユーザが携帯するセキュリティカードからユーザ認証に必要な情報を読み取るカードリーダを具備して構成され、ユーザ認証に際しては、セキュリティカードからユーザ認証に必要な情報(以下、認証データという)を読み取り、この認証データを対応するクライアント装置10−1、…10−mに入力する。
クライアント装置10−1、…10−mは、この認証データに基づき必要なユーザ認証を行う。このユーザ認証は、プリントサーバ20に対する問合せにより行われる。
すなわち、クライアント装置10−1、…10−mは、セキュリティカードから読み取った認証データの全部若しくは一部をネットワーク50を介してプリントサーバ20に送信し、プリントサーバ20に対してこのユーザがこの文書の印刷指示を行う権限を有するか否かの問合せを行う。
プリントサーバ20では、自己のデータベース若しくは別に設けられたユーザ管理システムへの問合せに基づき、当該ユーザが当該文書の印刷指示を行う権限を有するか否かのユーザ認証処理を行い、その応答をクライアント装置10−1、…10−mに返す。
クライアント装置10−1、…10−mでは、当該ユーザが当該文書の印刷指示を行う権限を有していないと判断されると当該印刷指示に基づく印刷ジョブは投入されず、破棄される。
これに対して、当該ユーザが当該文書の印刷指示を行う権限を有していると判断されると、クライアント装置10−1、…10−mでは、当該印刷指示に基づく印刷データを印刷データ蓄積部111に蓄積するとともに、当該印刷指示にかかわる印刷ジョブの識別情報をプリントサーバ20に送信する。
そして、プリントサーバ20では、クライアント装置10−1、…10−mから送信された印刷指示にかかわる印刷ジョブの識別情報(以下、印刷ジョブ識別情報という)を蓄積管理する。
すなわち、この時点においては、クライアント装置10−1、…10−mにおいて印刷ジョブの生成は行われず、プリントサーバ20に送られるのは印刷ジョブ識別情報だけであるので、これによりプリントサーバ20には大容量のメモリは必要としない。
プリントサーバ20には、印刷ジョブ識別情報蓄積管理部214が設けられており、クライアント装置10−1、…10−mから送信された印刷ジョブ識別情報を、例えば、印刷指示をしたユーザのユーザIDに対応して印刷ジョブ識別情報蓄積管理部214に蓄積して管理する。
さて、クライアント装置10−1、…10−mで印刷指示を行ったユーザ若しくはこの印刷指示に基づく印刷物を取得する権限を有するユーザがこの印刷指示に基づく印刷物を取得する場合は、印刷出力を行う指定された印刷装置30−1の近くに行き、この印刷装置30−1に対応する認証装置40−1でユーザ認証を行う。
このユーザ認証は、認証装置11−1、…11−mによるユーザ認証と同様にセキュリティカードを用いて行う。
例えば、ユーザが、印刷装置30−1に対応する認証装置40−1に該ユーザが携帯するセキュリティカードを挿入すると、認証装置40−1により、このセキュリティカードからユーザ認証に必要な認証データが読み取られる。
この読み取られた認証データは、ネットワーク50を経由してプリントサーバ20に送られ、プリントサーバ20では、当該ユーザが当該印刷指示に基づく印刷物を取得する権限を有するか否かの認証を行う。
このユーザ認証も、プリントサーバ20のデータベース若しくは別設けられたユーザ管理システムへの問合せに基づき行う。
このユーザ認証によりこのユーザが当該印刷装置30−1で当該印刷指示に基づく印刷物を取得する権限を有していないと判断すると、この印刷指示に基づく印刷が禁止される。
また、このユーザ認証によりこのユーザが当該印刷装置30−1で当該印刷指示に基づく印刷物を取得する権限を有していると判断されると、プリントサーバ20は、ユーザ認証を行った認証装置40−1に対応する印刷装置30−1を印刷指示を行ったクライアント装置10−1、…10−mに通知する。
これにより、クライアント装置10−1、…10−mでは、全印刷装置ドライバ110の中の、通知された印刷装置に対応するプリンタドライバを用いて印刷ジョブを生成し、この印刷ジョブを、上記セキュリティカードから読み取った秘密キーを用いて暗号化し、この暗号化した印刷ジョブをネットワーク50を経由して印刷装置30−1へ送信する。
これにより、印刷装置30−1ではこの印刷ジョブを認証データに含まれる公開キーにより復号化してこの印刷ジョブの印刷を開始する。
なお、この実施例でも、指定された印刷装置30−1以外の他の印刷装置30−2、…30−nでも同様にこの印刷ジョブに係る印刷出力を行うことができるように構成されている。
例えば、印刷装置30−1が、他の印刷ジョブ実行中、故障中、または電源オフ等の原因で即時に印刷出力不能な状態にあると、ユーザは当該印刷装置30−1以外の他の印刷装置、例えば、印刷装置30−2に対応する認証装置40−2に該ユーザが携帯するセキュリティカードを挿入することにより、上記と同様の手順で印刷装置30−2に復号化された印刷ジョブが印刷装置30−2に送信され、これに印刷装置30−2で当該印刷ジョブの印刷が行われる。
このような構成によると、例えば、クライアント装置10−1で、印刷装置30−1を指定する印刷指示を行った場合で、印刷装置30−1が、他の印刷ジョブ実行中、故障中、または電源オフ等の原因で即時に印刷出力不能な状態にある場合でも、他の印刷装置30−2、…30−nに対応する認証装置40−2、…40−nでユーザ認証を行うことで同様に印刷を行うことができる。
また、この場合、認証装置40−1、…40−nによる認証に基づき印刷が行われるので、この印刷物が第三者によって持ち去られたり、または、その内容が見られてしまうというセキュリティ上の不都合は生じず、また、印刷装置30−1、…30−n内に認証判定の構成を設けないので、既に導入されているネットワーク環境を変更することなく、また、認証装置11−1、…11−mおよび認証装置40−1、…40−nとして各種認証デバイスを採用することが可能になる。
なお、この実施例においては、認証装置40−1、…40−nでユーザ認証が行われた後にクライアント装置10−1、…10−mにおける印刷ジョブの開始が行われるので、印刷の即時性に関しては若干問題があるが、プリントサーバ20に大容量のメモリを必要としないという大きな利点がある。
図9は、図8に示したプリントサーバ20の詳細構成の一例を示すブロック図である。
図9において、このプリントサーバ20は、ネットワーク50とのインタフェースを構成するネットワークインタフェース部201、認証データ受信204、認証処理部205、認証結果送信部206、対応関係記憶部209、印刷装置特定部210、印刷ジョブ識別情報蓄積管理部212、印刷ジョブ識別情報選択部213、識別情報および印刷装置通知部214、印刷ジョブ識別情報受付部215を具備して構成される。
ここで、印刷ジョブ識別情報受付部215は、ネットワークインタフェース部201を介してクライアント装置10−1、…10−mからの印刷指示に係わる印刷ジョブ識別情報を受け付ける。
印刷ジョブ識別情報蓄積管理部212は、印刷ジョブ識別情報受付部215で受け付けた印刷ジョブ識別情報をユーザIDに対応して蓄積管理する。
認証データ受信部204は、クライアント装置10−1、…10−mからの問合せに係わる認証データおよび認証装置40−1、…40−nからの認証データを受信する。
認証処理部205は、認証データ受信部204で受信した認証データに基づきクライアント装置10−1、…10−mからの問合せに係わる認証データおよび認証装置40−1、…40−nからの認証データに基づきユーザ認証を行う。
ここで、認証処理部205におけるクライアント装置10−1、…10−mからの問合せに係わる認証データに基づくユーザ認証は、クライアント装置10−1、…10−mからこの印刷システムを用いて印刷指示を行うユーザが正当な権限を有するか否かの認証を行うものであり、また、認証装置40−1、…40−nからの認証データに基づくユーザ認証は、上記印刷指示に係わる印刷物を取得するユーザが正当な権限を有するか否かの認証を行うものである。
このユーザ認証は、プリントサーバ20内の図示しないデータベース若しくはこの印刷システムと連携する図示しないユーザ管理システムのデータベースを参照して行うことができる。
認証結果送信部206は、認証処理部205が、クライアント装置10−1、…10−mからの問合せに係わる認証データに基づきユーザ認証を行った場合は、その認証結果をネットワークインタフェース部201を経由してクライアント装置10−1、…10−mに返送し、認証装置40−1、…40−nからの認証データに基づきユーザ認証を行った場合は、その認証結果をネットワークインタフェース部201を経由して認証装置40−1、…40−nに返送する。
印刷ジョブ識別情報選択部213は、認証処理部205が、認証装置40−1、…40−nからの認証データに基づきユーザ認証を行い、印刷物を取得する正当なユーザであると認証した場合に、当該ユーザのユーザIDに基づき印刷ジョブ識別情報蓄積管理部212に蓄積管理されている印刷ジョブ識別情報の中から印刷を許可する印刷ジョブに対応する印刷ジョブ識別情報を選択する。
対応関係記憶部209は、印刷装置30−1、…30−nと認証装置40−1、…40−nとの対応関係を記憶する対応関係テーブルを記憶しており、印刷装置特定部210は、認証処理205で認証処理した認証データが認証装置40−1、…40−nがどの認証装置40−1、…40−nから送られたかにより対応関係記憶部210に記憶されている対応関係テーブルを参照して印刷を行う印刷装置を印刷装置30−1、…30−nの中から特定する。
識別情報および印刷装置通知部214は、印刷ジョブ識別情報選択部213で選択された印刷ジョブ識別情報と印刷ジョブを印刷装置特定部211で特定された印刷装置をネットワークインタフェース部201を介して印刷指示を行ったクライアント装置10−1、…10−mに送信する。
図10は、図8に示したクライアント装置10−1、…10−m(クライアント装置10と総称する)の詳細構成の一例を示すブロック図である。
図10において、クライアント装置10は、この印刷システムを用いた印刷指示を行うもので、パーソナルコンピュータ等から構成され、認証装置11−1、…11−m(認証装置11として総称する)がローカルに接続される。
このクライアント装置10は、印刷指示受付部101、印刷ジョブ生成部102、認証データ受信部103、認証処理部104、認証データ送信部105、認証結果受信部106、印刷ジョブ暗号化部107、印刷ジョブ送信部108、ネットワークインタフェース部109、全印刷装置ドライバ110、印刷データ蓄積部111、識別情報送信部112、識別情報および印刷装置受付部113を具備して構成される。
ここで、印刷指示受付部101は、図示しないキーボード、マウス等の入力選択操作に基づきこの印刷システムを用いた所定の印刷装置30−1、…30−nを指定する印刷データの印刷指示を受け付ける。
認証データ受信部103は、認証装置11からこの印刷指示に係わる認証データを受信する。
認証処理部104は、この認証データ受信部103で受信した認証データに基づきこの印刷指示を行うユーザが正当な権限を有するユーザか否かのユーザ認証を行う。
この認証処理部104によるユーザ認証は、プリントサーバ20に対する問合せにより行われる。
すなわち、認証処理部104におけるユーザ認証に際しては、認証装置11からの認証データの一部若しくは全部を認証データ送信部105、ネットワークインタフェース部109経由で、プリントサーバ20に送信することにより、この認証データにかかわるユーザがこの印刷システムを用いて印刷指示を行う権限を有するユーザであるかの問合せを行う。
そして、この問合せの結果をネットワークインタフェース部109を介して認証結果受信部106で受信し、認証処理部104は、この認証結果受信部106の受信情報に基づきこの認証データにかかわるユーザがこの印刷システムを用いて印刷指示を行う権限を有するユーザであるかを判別する。
印刷データ蓄積部111は、認証処理部104におけるユーザ認証により、この認証データにかかわるユーザがこの印刷システムを用いて印刷指示を行う権限を有する正当なユーザであると判断されると、印刷指示受付部102で受け付けた印刷指示に係る印刷データを蓄積する。
識別情報送信部112は、認証処理部104におけるユーザ認証により、この認証データにかかわるユーザがこの印刷システムを用いて印刷指示を行う権限を有する正当なユーザであると判断されると、印刷指示受付部102で受け付けた印刷指示に係る印刷データに対応する印刷ジョブ識別情報を、ネットワークインタフェース部109、ネットワーク50を経由してプリントサーバ20に送信する。
識別情報および印刷装置受付部113は、プリントサーバ20の識別情報および印刷装置通知部214から通知された印刷ジョブ識別情報および印刷を行う印刷装置を受け付ける。
識別情報および印刷装置受付部113で受け付けた印刷ジョブ識別情報は、印刷データ蓄積部111に通知され、印刷データ蓄積部111ではこの印刷ジョブ識別情報に対応する印刷データを読み出して印刷ジョブ生成部102に送る。
また、識別情報および印刷装置受付部113で受け付けた印刷装置は、印刷ジョブ生成部102に通知される。
印刷ジョブ生成部102は、印刷データ蓄積部111から送られた印刷データに基づきこの印刷システムを用いて印刷を行う印刷ジョブを生成する。
この印刷ジョブ生成部102における印刷ジョブの生成は、全印刷装置ドライバ110の中の対応するプリンタドライバ110−1、…110−nを用いて行われる。
すなわち、全印刷装置ドライバ110は、印刷装置30−1、…30−nにそれぞれ対応する複数のプリンタドライバ110−1、…110−nプリンタドライバ110−1、…110−nを有しており、印刷ジョブ生成部102では、識別情報および印刷装置受付部113から通知された印刷装置が、例えば、印刷装置30−1であると、印刷データ蓄積部111から送られた印刷データに基づき印刷装置30−1に対応するプリンタドライバ110−1を用いて印刷ジョブを生成する。
印刷ジョブ暗号化部107は、印刷ジョブ生成部102で生成された印刷装置30−1に対応する印刷ジョブを認証データに含まれる印刷ジョブ暗号化の秘密キーを用いて暗号化する。
印刷ジョブ送信部108は、印刷ジョブ暗号化部107で暗号化された複数の印刷ジョブをネットワークインタフェース部109、ネットワーク50を経由して印刷を行う該当印刷装置30−1に送信する。
なお、印刷装置30−1、…30−nの中で共用可能なプリンタドライバがある場合は、全印刷装置ドライバ110にはこの共用可能なプリンタドライバを設けてこれを共用することで全印刷装置ドライバ110に設けるプリンタドライバの数を減らすことができる。
図11は、図10に示したクライアント装置10の処理を示すフローチャートである。
図11において、クライアント装置10は、まず、印刷指示受付部101で印刷指示を受け付けたかを調べ(ステップ701)、印刷指示を受け付けていない場合は(ステップ701でNO)、ステップ701に戻り、印刷指示の受付を待つが、印刷指示を受け付けたと判断されると(ステップ701でYES)、次に、この印刷指示に係わる認証データを認証データ受信部103で受信したかを調べる(ステップ702)。
ここで、認証データを受信していないと(ステップ702でNO)、ステップ702に戻り、認証データの受信を待つ。
認証データを受信すると(ステップ702でYES)、この受信した認証データに基づき認証処理部104で、この認証データに係わるユーザがこの印刷システムを用いて印刷指示を行う権限を有するかのユーザ認証を行う(ステップ703)。
このユーザ認証により、この印刷システムを用いて印刷指示を行う権限を有するかのユーザであると認証されると(ステップ704でYES)、印刷指示受付部101で受け付けた印刷指示に係わる印刷データを印刷データ蓄積部111に蓄積するとともに、当該印刷データに対応する印刷ジョブ識別情報を識別情報送信部112からプリントサーバ20に送信する(ステップ705)。
次に、識別情報および印刷装置受付部113で、印刷する印刷データに対応する印刷ジョブ識別情報および印刷を行う印刷装置を受け付けたかを調べ(ステップ706)、受け付けていないと(ステップ706でNO)、ステップ706に戻り、印刷ジョブ識別情報および印刷装置の受け付けを待つ。
ステップ706で、印刷ジョブ識別情報および印刷装置を受け付けると(ステップ706でYES)、印刷データ蓄積部111に蓄積された印刷データの中からこの印刷ジョブ識別情報に対応する印刷データを読み出して印刷ジョブ生成部102に送り、印刷ジョブ生成部102は、印刷データ蓄積部111から送られた印刷データに基づき全印刷装置ドライバ110の中の当該印刷装置に対応するプリンタドライバを用いて印刷ジョブを生成する(ステップ707)。
そして、この生成した印刷ジョブを認証データに含まれる印刷ジョブ暗号化の秘密キーを用いて暗号化して(ステップ708)、ネットワークインタフェース部109、ネットワーク50を経由して該当印刷装置に送信し(ステップ709)、このクライアント装置10における処理を終了する。
なお、ステップ704で、認証データに係わるユーザがこの印刷システムを用いて印刷指示を行う権限を有していないと判断されると(ステップ710でNO)、この印刷システムを用いた印刷指示を行うことはできないので、印刷指示の禁止メッセージをクライアント装置10の表示器等に印刷指示の権限を有していない旨のメッセージを表示し(ステップ710)、印刷指示受付部101で受け付けた印刷指示を破棄する等の印刷禁止処理を行って(ステップ711)、このクライアント装置10における処理を終了する。
図12は、図8に示したプリントサーバ20の処理を示すフローチャートである。
図12において、プリントサーバ20は、まず、印刷ジョブ識別情報受付部215で、クライアント装置10からの印刷ジョブ識別情報を受け付けたかを調べる(ステップ801)。ここで、クライアント装置10からの印刷ジョブ識別情報を受け付けていないと(ステップ801でNO)、ステップ803に進む。
印刷ジョブ識別情報受付部215でクライアント装置10からの印刷ジョブ識別情報を受け付けると(ステップ801でYES)、この印刷ジョブ識別情報を印刷ジョブ識別情報蓄積管理部212に蓄積して、この印刷ジョブ識別情報を印刷指示に係わるユーザIDに対応して管理する(ステップ802)。
ステップ803では、クライアント装置10からの問合せに基づく認証データ若しくは認証装置40からの認証データを認証データ受信部204で受信したかを調べる。ここで、認証データを受信していない場合は(ステップ803でNO)、ステップ801に戻る。
また、ステップ803で、認証データを受信したと判断されると(ステップ803でYES)、認証処理部205によるユーザ認証を行う(ステップ804)。
次に、このユーザ認証がクライアント装置10からの問合せに基づく認証か、すなわち、クライアント装置10からの認証依頼かを調べる(ステップ805)。ここで、このユーザ認証がクライアント装置10からの認証依頼である場合は(ステップ805でYES)、認証結果を認証結果送信部206、ネットワークインタフェース201を経由してクライアント装置10に送信して(ステップ806)、このプリントサーバ20の処理を終了する。
また、ステップ805で、ユーザ認証がクライアント装置10からの認証依頼でない場合は(ステップ805でNO)、認証装置40からの認証データに基づくユーザ認証であるので、この認証データにかかわるユーザが当該印刷指示に基づく印刷物を取得する権限を有するか否かの判断を行う(ステップ807)。
ここで、印刷物を取得する権限を有していると判断されると(ステップ807でYES)、印刷ジョブ識別情報選択部213により、認証装置40から送られた認証データに含まれるユーザIDに基づき、印刷ジョブ識別情報蓄積管理部212に蓄積管理されている印刷ジョブ識別情報の中から、該当印刷ジョブ識別情報を選択する(ステップ808)。
また、対応関係記憶部209に記憶されている対応関係テーブルを参照してこの認証データを送信した認証装置40に対応する印刷装置30を特定する(ステップ809)。
そして、選択された印刷ジョブ識別情報およびステップ809で特定した印刷装置を識別情報および印刷装置通知部214、ネットワークインタフェース部201を介してクライアント装置10に通知し(ステップ810)、このプリントサーバ20の処理を終了する。
また、ステップ807で、認証データにかかわるユーザが当該印刷指示に基づく印刷物を取得する権限を有していないと判断されると(ステップ807でNO)、この印刷指示に基づく印刷はできないので、所定の印刷禁止処理を行って(ステップ812)、このプリントサーバ20の処理を終了する。
なお、この実施例における認証装置40−1、…40−nの処理は、図7に示したフローチャートと同様である。
なお、上記実施例においては、認証データに含まれる秘密キーを用いて印刷指示に係わる印刷ジョブを暗号化してクライアント装置10−1、…10−mからプリントサーバ20若しくは印刷装置に送り、この暗号化された印刷ジョブを認証データに含まれる公開キーにより復号化するように構成したが、認証データの一部を印刷ジョブの暗号化、符号化のキーとして用いるように構成してもよい。
また、上記実施例においては、印刷指示に係わる印刷ジョブを暗号化してクライアント装置10−1、…10−mからプリントサーバ20若しくは印刷装置に送り、この暗号化された印刷ジョブをプリントサーバ20若しくは印刷装置で復号化して印刷するように構成したが、ネットワーク50が情報漏洩の虞のない環境化にある場合には、上記印刷ジョブの暗号化、復号化は必ずしも必要ではない。