(57)【特許請求の範囲】
【請求項１】
プリンタドライバにより生成された印刷ジョブのデータを画像形成装置に対して出力するポートモニタプログラムであって、
前記プリンタドライバが生成しスプーラによりスプールされた印刷ジョブのデータを読込む読込ステップと、
前記読込まれた印刷ジョブのデータが、印刷機能の利用の制限を行う印刷制限機能に係る認証処理を行うべきか否かを判断する判断ステップと、
前記判断ステップにより認証処理を行うべきと判断した場合に、ネットワークを介した外部のサーバに認証要求を行い印刷機能の利用を制限する機能制限情報を取得する取得ステップと、
前記取得ステップにより前記サーバから取得された機能制限情報に基づいて、印刷ジョブの実行に係る警告処理を行う機能制限判断ステップと、を有し、
前記判断ステップは、前記印刷ジョブのデータを生成したプリンタドライバが印刷装置の利用を制限する印刷制限機能に対応しているか否かを判断することを特徴とするポートモニタプログラム。
【請求項２】
プリンタドライバにより生成された印刷ジョブのデータを画像形成装置に対して出力するポートモニタプログラムであって、
前記プリンタドライバが生成しスプーラによりスプールされた印刷ジョブのデータを読込む読込ステップと、
前記読込まれた印刷ジョブのデータが、印刷機能の利用の制限を行う印刷制限機能に係る認証処理を行うべきか否かを判断する判断ステップと、
前記判断ステップにより認証処理を行うべきと判断した場合に、ネットワークを介した外部のサーバに認証要求を行い印刷機能の利用を制限する機能制限情報を取得する取得ステップと、
前記取得ステップにより前記サーバから取得された機能制限情報に基づいて、印刷ジョブの実行に係る警告処理を行う機能制限判断ステップと、
前記読込ステップにより読込まれた印刷ジョブのデータに、前記プリンタドライバが前記印刷制限機能に対応することを示す情報が含まれるか否かを解析する解析ステップと、を有し、
前記判断ステップは前記解析ステップによる解析に基づき判断を行うことを特徴とするポートモニタプログラム。
【請求項３】
前記読込ステップにより読込まれた印刷ジョブのデータに、前記プリンタドライバが前記印刷制限機能に対応することを示す情報が含まれるか否かを解析する解析ステップを有し、前記判断ステップは前記解析ステップによる解析に基づき判断を行うことを特徴とする請求項１に記載のポートモニタプログラム。
【請求項４】
前記印刷制限機能に対応することを示す情報は、前記印刷ジョブのデータに含まれるヘッダであり、該ヘッダは機能制限情報に対応するヘッダであることを特徴とする請求項２又は３に記載のポートモニタプログラム。
【請求項５】
前記機能制限判断ステップは、前記取得した機能制限情報に基づき、印刷ジョブの設定に実行を許可されていない機能が有るか否かを判断し、前記印刷ジョブの設定に実行を許可されていない機能が有ると判断された場合に警告処理を行うことを特徴とする請求項１乃至４の何れかに記載のポートモニタプログラム。
【請求項６】
前記印刷制限機能を有効または無効に設定する設定ステップを有することを特徴とする請求項１乃至５の何れかに記載のポートモニタプログラム。
【請求項７】
前記機能制限判断ステップは、前記印刷ジョブの印刷設定が前記取得された機能制限情報に記述される制限を満たす場合に、前記印刷ジョブのデータを前記画像形成装置に出力し、
前記印刷ジョブの設定に実行を許可されていない機能が有ると判断された場合の警告処理には、前記印刷ジョブのデータ出力の停止が含まれることを特徴とする請求項５に記載のポートモニタプログラム。
【請求項８】
プリンタドライバにより生成された印刷ジョブのデータを画像形成装置に対して出力する情報処理装置におけるポートモニタプログラムによるデータ処理方法であって、
前記プリンタドライバが生成しスプーラによりスプールされた印刷ジョブのデータを読込む読込ステップと、
前記読込まれた印刷ジョブのデータが、印刷機能の利用の制限を行う印刷制限機能に係る認証処理を行うべきか否かを判断する判断ステップと、
前記判断ステップにより認証処理を行うべきと判断した場合に、ネットワークを介した外部のサーバに認証要求を行い印刷機能の利用を制限する機能制限情報を取得する取得ステップと、
前記取得ステップにより前記サーバから取得された機能制限情報に基づいて、印刷ジョブの実行に係る警告処理を行う機能制限判断ステップと、を有し、
前記判断ステップは、前記印刷ジョブのデータを生成したプリンタドライバが印刷装置の利用を制限する印刷制限機能に対応しているか否かを判断することを特徴とするデータ処理方法。
【請求項９】
プリンタドライバにより生成された印刷ジョブのデータを画像形成装置に対して出力する情報処理装置におけるポートモニタプログラムによるデータ処理方法であって、
前記プリンタドライバが生成しスプーラによりスプールされた印刷ジョブのデータを読込む読込ステップと、
前記読込まれた印刷ジョブのデータが、印刷機能の利用の制限を行う印刷制限機能に係る認証処理を行うべきか否かを判断する判断ステップと、
前記判断ステップにより認証処理を行うべきと判断した場合に、ネットワークを介した外部のサーバに認証要求を行い印刷機能の利用を制限する機能制限情報を取得する取得ステップと、
前記取得ステップにより前記サーバから取得された機能制限情報に基づいて、印刷ジョブの実行に係る警告処理を行う機能制限判断ステップと、
前記読込ステップにより読込まれた印刷ジョブのデータに、前記プリンタドライバが前記印刷制限機能に対応することを示す情報が含まれるか否かを解析する解析ステップと、を有し、
前記判断ステップは前記解析ステップによる解析に基づき判断を行うことを特徴とするデータ処理方法。
【請求項１０】
前記読込ステップにより読込まれた印刷ジョブのデータに、前記プリンタドライバが前記印刷制限機能に対応することを示す情報が含まれるか否かを解析する解析ステップを有し、前記判断ステップは前記解析ステップによる解析に基づき判断を行うことを特徴とする請求項８に記載のデータ処理方法。
【請求項１１】
前記印刷制限機能に対応することを示す情報は、前記印刷ジョブのデータに含まれるヘッダであり、該ヘッダは機能制限情報に対応するヘッダであることを特徴とする請求項９又は１０に記載のデータ処理方法。
【請求項１２】
前記機能制限判断ステップは、前記取得した機能制限情報に基づき、印刷ジョブの設定に実行を許可されていない機能が有るか否かを判断し、前記印刷ジョブの設定に実行を許可されていない機能が有ると判断された場合に警告処理を行うことを特徴とする請求項８乃至１１の何れかに記載のデータ処理方法。
【請求項１３】
前記印刷制限機能を有効または無効に設定する設定ステップを有することを特徴とする請求項８乃至１２の何れかに記載のデータ処理方法。
【請求項１４】
前記機能制限判断ステップは、前記印刷ジョブの印刷設定が前記取得された機能制限情報に記述される制限を満たす場合に、前記印刷ジョブのデータを前記画像形成装置に出力し、
前記印刷ジョブの設定に実行を許可されていない機能が有ると判断された場合の警告処理には、前記印刷ジョブのデータ出力の停止が含まれることを特徴とする請求項１２に記載のデータ処理方法。
【請求項１５】
プリンタドライバにより生成された印刷ジョブのデータを画像形成装置に対して出力するポートモニタを備える情報処理装置であって、
前記プリンタドライバが生成しスプーラによりスプールされた印刷ジョブのデータを読込む読込手段と、
前記読込まれた印刷ジョブのデータが、印刷機能の利用の制限を行う印刷制限機能に係る認証処理を行うべきか否かを判断する判断手段と、
前記判断手段により認証処理を行うべきと判断した場合に、ネットワークを介した外部のサーバに認証要求を行い印刷機能の利用を制限する機能制限情報を取得する取得手段と、
前記取得手段により前記サーバから取得された機能制限情報に基づいて、印刷ジョブの実行に係る警告処理を行う機能制限判断手段と、を有し、
前記判断手段は、前記印刷ジョブのデータを生成したプリンタドライバが印刷装置の利用を制限する印刷制限機能に対応しているか否かを判断することを特徴とする情報処理装置。
【請求項１６】
プリンタドライバにより生成された印刷ジョブのデータを画像形成装置に対して出力するポートモニタを備える情報処理装置であって、
前記プリンタドライバが生成しスプーラによりスプールされた印刷ジョブのデータを読込む読込手段と、
前記読込まれた印刷ジョブのデータが、印刷機能の利用の制限を行う印刷制限機能に係る認証処理を行うべきか否かを判断する判断手段と、
前記判断手段により認証処理を行うべきと判断した場合に、ネットワークを介した外部のサーバに認証要求を行い印刷機能の利用を制限する機能制限情報を取得する取得手段と、
前記取得手段により前記サーバから取得された機能制限情報に基づいて、印刷ジョブの実行に係る警告処理を行う機能制限判断手段と、
前記読込手段により読込まれた印刷ジョブのデータに、前記プリンタドライバが前記印刷制限機能に対応することを示す情報が含まれるか否かを解析する解析手段と、を有し、
前記判断手段は前記解析手段による解析に基づき判断を行うことを特徴とする情報処理装置。
【請求項１７】
請求項８乃至１４の何れかに記載のデータ処理方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成される印刷ジョブを画像形成装置に対して送信するポートモニタプログラムのデータ処理に関するものである。
【背景技術】
【０００２】
近年、複合機やレーザビームプリンタといったオフィス環境をターゲットとした機器のプリンタ機能は多機能化が進行している。カラー印刷機能や両面印刷機能といった基本的機能はより一般化、高品質化していくと同時に、様々な付加価値的な印刷機能が備えられるようになった。
【０００３】
例えば、用紙の一面に複数のページを印刷するＮｉｎ１（エヌインワン）と呼ばれる機能や複数枚の印刷済み用紙を針で束ねるステイプル機能などが挙げられる。これらの機能が複合機やレーザビームプリンタで使用可能になることにより、ユーザはより印刷物に対してより多彩な表現を行うことが可能となった。
【０００４】
複合機やレーザビームプリンタが多機能になる一方で、それらの導入環境においては、コストや環境面の観点から印刷物の管理に対する要求が出てきた。これは古くからの課題として、印刷枚数が増加するにつれて消費される紙やトナーのコストも上昇するため、ユーザ毎の印刷可能枚数を制限したいという要求などが代表的なものである。
【０００５】
これらの課題に関して、既にいくつかの解決方法が提案されている。
【０００６】
例えば下記特許文献１では、各ユーザをＩＤで管理し、ＩＤごとに利用可能な機能、資源、時間を制限する方法が提案されている。
【０００７】
そして、特許文献１に記載された方法の一般的な実現形態においては、ネットワーク内にプリンタ及び機能管理装置やユーザ管理サーバといった機能管理システムが存在している。そして、印刷クライアントとなるホストコンピュータの使用者が印刷を指示した場合、印刷クライアントにインストールされているプリンタドライバが機能管理システムに印刷クライアントのユーザを送信する。そして、ユーザに関連付けられている利用可能な機能情報を得て、その機能を満たす印刷設定が行われているかを判断する。そして、機能を満たす印刷設定が行われていると判断した場合のみ印刷が可能になるといった構成であった。
【特許文献１】特開平１１−１３４１３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記のような課題に対する回避策として、印刷クライアントは印刷ジョブの発行者（印刷クライアントの使用者）情報をプリンタに送信し、プリンタが機能管理システムに対して利用可能な機能情報を問い合わせる。そして、その結果に応じて印刷の有無を判断するといった手法も存在するが、その場合、印刷ジョブがプリンタに送信されるまで印刷の有無の結果が分からないため、利便性が低下するといった問題があった。
【０００９】
また、特許文献１の一般的な実現方法においては、プリンタドライバ自身が機能管理システムに対して利用可能な機能情報を問い合わせたり、問い合わせ結果に応じた処理を行っている。このため、当該機能を有していないプリンタドライバを使用した場合には機能管理を行うことができないといった問題があった。
【００１０】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、画像形成装置に対する印刷制限機能に対応していないプリンタドライバを使用した場合でも、印刷ジョブに対して印刷機能制限を行うことができる仕組みを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成する本発明のポートモニタプログラムは以下に示す構成を備える。
【００１２】
プリンタドライバにより生成された印刷ジョブのデータを画像形成装置に対して出力するポートモニタプログラムであって、前記プリンタドライバが生成しスプーラによりスプールされた印刷ジョブのデータを読込む読込ステップと、前記読込まれた印刷ジョブのデータが、印刷機能の利用の制限を行う印刷制限機能に係る認証処理を行うべきか否かを判断する判断ステップと、前記判断ステップにより認証処理を行うべきと判断した場合に、ネットワークを介した外部のサーバに認証要求を行い印刷機能の利用を制限する機能制限情報を取得する取得ステップと、前記取得ステップにより前記サーバから取得された機能制限情報に基づいて、印刷ジョブの実行に係る警告処理を行う機能制限判断ステップと、を有し、前記判断ステップは、前記印刷ジョブのデータを生成したプリンタドライバが印刷装置の利用を制限する印刷制限機能に対応しているか否かを判断することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、画像形成装置に対する印刷制限機能に対応していないプリンタドライバを使用した場合でも、各ユーザの印刷ジョブに対して印刷機能制限を行うことができる。
【発明を実施するための最良の形態】
【００１４】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１５】
＜システム構成の説明＞
〔第１実施形態〕
以下、図面を参照し、ポートモニタによる印刷機能制限を実現するための本発明の第１実施形態について説明する。ここで、印刷機能制限とは、特定のユーザに対して、各種印刷属性の個々について利用許可又は不許可にすることをいう。
【００１６】
また、各種印刷属性とは、例えば、カラー／モノクロ印刷、印刷部数、両面／片面印刷、ステイプル等のフィニッシング設定、コピー、ファックスといった印刷装置に係る個々の設定／機能を指す。
【００１７】
また、ある機能に対して設定された利用許可／不許可の設定を、そのある機能に対する印刷権限、また、その情報のことを印刷権限情報と呼ぶことも有る。
【００１８】
まず、本実施の形態において想定している制御装置が動作する全体の構成について図１を用いて説明する。
【００１９】
図１は、第１実施形態を示す情報処理装置を含む印刷システムの一例を示すネットワーク構成図である。
【００２０】
図１において、ユーザ環境のネットワーク１０６はＥｔｈｅｒｎｅｔ（登録商標）であり、次に説明する複数のネットワークインタフェースを有するノードが接続されている。
【００２１】
ＰＣ１０１は、一般的なパーソナルコンピュータであり、ハードウエアを構成する主な装置としてＣＰＵ、ＲＯＭ、ＲＡＭを備える。ここで、ＣＰＵはCentral Processing Unitであり、ＲＡＭはRandom Access Memoryであり、ＲＯＭはRead Only Memolyである。
【００２２】
また、ＰＣ１０１は、外部記憶装置として、ＨＤＤ（Hard Disk Drive）、ＣＤ−ＲＯＭドライブ、Compact Disc Read Only Memoryを備える。また、通信制御ユニットとして、ＮＩＣ（Network Interface Card）を備える。
【００２３】
また、データ通信インタフェースとして、ＵＳＢホストインタフェース（Universal Serial Bus）を備える。また、これらの装置や後述の周辺装置を制御するためのバスを有している。
【００２４】
また、パーソナルコンピュータ本体に接続される周辺機器としては、マウス、ＣＲＴディスプレイ、キーボード等が存在する。
【００２５】
ＰＣ１０１に導入されているソフトウエアの主な機能としては、ＧＵＩ（Graphical User Interface）が備わったＯＳ（Operating Software）、ワードプロセッサや表計算ソフトといったオフィスソフトウェアを備える。
【００２６】
また、プリンタドライバにより生成され、スプーラによりスプールされた印刷データをプリンタやＭＦＰ（Multi Function Peripheral:多機能周辺機器）にネットワークを経由して送信するためのポートモニタが備わっている。
【００２７】
なお、ポートモニタとは、本実施形態における、ポートモニタとは、データの送受信機能、及び、印刷制限に係る機能を備えた、高機能通信モジュールのことを指す。以下では、ポートモニタという言葉を用いて説明を行っていく。
【００２８】
また、ＰＣ１０１のＯＳには、プリンタドライバや後述のネットワークドメインにログインするためのログインクライアント、ＯＳやＯＳ上で動作するアプリケーションの設定情報が登録される。また、アプリケーションから登録された情報を読み出すことが可能なレジストリといった機能もあるものとする。１０２は複合機（ＭＦＰ）である。また、１０９も同様に複合機（ＭＦＰ）である。
【００２９】
但し、複合機１０２と異なる点は、印刷ジョブデータに含まれる画像を抽出し画像処理等を行う専用の画像処理コントローラ１０８が接続されていることである。この場合、ＰＣ１０１は画像処理コントローラ１０８用のプリンタドライバ（例えばポストスクリプトプリンタドライバ）による生成した印刷ジョブデータを画像処理コントローラに投入することとなる。
【００３０】
ここでＰＳプリンタドライバが印刷制限に対応していない場合には、結局、印刷機能制限に係る処理が施されていない印刷ジョブデータが出力されることとなる。
【００３１】
従って、ＭＦＰ１０９に印刷権限が考慮されない印刷ジョブを印刷出力させてしまうことになり問題が発生する。下記の本実施形態では、特にこのようなケースで有用である。詳細は後述にて順次詳しく説明することとする。
【００３２】
ＳＡ１０３はセキュリティエイジェント（Security Agent）であり、通信経路上、ポートモニタと後述のディレクトリ対応データベースとの間に位置し、特定のユーザについての印刷権限情報の問い合わせ及び応答の仲介を行う。
【００３３】
１０４はディレクトリサーバ（ＤＳ）であり、Ｅｔｈｅｒｎｅｔ（登録商標）等のネットワーク１０６及びネットワーク１０６に接続するノードを使用するユーザ名とユーザグループ（ドメイン）を階層構造によって管理するためのサーバとして機能する。
【００３４】
本実施形態においては、ＰＣ１０１及びその他のノードを使用するユーザ名及びユーザグループ（ドメイン）は予めＤＳ１０４に登録されているものとする。また、ＤＳ１０４とは具体的には、Microsoft社のActive Directory（登録商標）などが適用できる。
【００３５】
ＤＤＢ１０５はディレクトリデータベースで、ＤＳ１０４のディレクトリ構造に対して独自の情報を追加可能とする。
【００３６】
ＤＳ１０４によって管理されるディレクトリ上のユーザに、独自の属性情報を関連させることが可能であり、属性情報の追加、削除、編集等を可能とする。ＤＤＢ管理ユーティリティ１０７は、ＤＤＢ１０５のデータベースのデータを追加、削除、編集するための管理ユーティリティである。
【００３７】
ネットワーク１０６は上述の機器が接続しているＬＡＮ（Local Area Network）であり、Ehternet（登録商標）であるものとする。
【００３８】
上述のＰＣ１０１からＤＤＢ管理ユーティリティ１０７までの機器は、それぞれがEhternetインタフェースを有しており、ネットワーク１０６を介しての通信が可能であるものとする。
【００３９】
なお、ここでの各装置の構成は一般的且つ一例を示したものであり、上述の構成に限定されるものではない。例えば、パーソナルコンピュータは本実施例においてはＰＣ１０１のみであるが、複数台が存在していてもよい。また、図１においては、ＳＡ１０３、ＤＳ１０４、ＤＤＢ１０５を別々の装置で説明したが、無論、この形態に限定される訳ではない。
【００４０】
例えば、ＤＳ１０４とＤＤＢ１０５を１つのコンピュータで構成するようにしても良い。また、ＳＡ１０３、ＤＳ１０４、ＤＤＢ１０５を１つのコンピュータで構成するようにしても良い。また、ＳＡ１０３、ＤＳ１０４、ＤＤＢ１０５をＰＣ１０１中に含めるようにしても良い。
【００４１】
次に、ＭＦＰ１０２の詳細なハードウエア構成について説明する。
【００４２】
図２は、図１に示したＭＦＰ１０２のハードウエア構成を説明するブロック図である。なお、図１と同一のものには同じ符号を付してある。
【００４３】
図２に示すＭＦＰ１０２において、２０１はＣＰＵで、例えばデバイス全体の動作制御を司る。２０２はＲＯＭで、ＣＰＵ２０１での動作制御のための各種プログラムやデータ等が格納される。２０３はＲＡＭで、ＣＰＵ２０１の主メモリや作業用エリア等として機能する。２０４はエンジンで、印刷処理を行う。
【００４４】
２０５はエンジンコントローラで、エンジン２０４の駆動を制御する。２０６はパネルで、ユーザから各種操作指示を受け付けたり種々の情報を表示する。２０７はパネルコントローラで、パネル２０６での入出力をコントロールしたりパネル２０６を管理する。
【００４５】
２０８はハードディスクドライブで、各種プログラムやデータを記憶する。２０９はディスクコントローラで、ハードディスクドライブ２０８とのアクセスを制御する。
【００４６】
２１１はネットワークインタフェースカード（ＮＩＣ）で、不揮発性ＲＡＭ２１０と、ネットワーク１０１を介して他のノードとネットワーク通信を行う。２１３はスキャナコントローラで、スキャナ２１４の駆動を制御する。これらの各構成部は、システムバス２１２を介して互いに通信可能なように接続されている。
【００４７】
２１５はジョブ抑制回路で、機能制限情報を解釈しジョブ実行を抑制する。これにより、デバイス側でセキュリティヘッダに対応することができる。
【００４８】
本実施形態では、ジョブ抑制回路２１５は、ハードウエアで構成する場合を示すが、ソフトウエアで構成し、ＲＯＭ２０２、ハードディスク等からジョブ抑制モジュールをＣＰＵ２０１がＲＡＭ２０３にロードして実行する構成であってもよい。なお、ジョブ抑制機能を備えないＭＦＰ１０２においては、ジョブ抑制回路２１５を備えていない。つまり、ＭＦＰ１０２がセキュリティヘッダの解釈に対応していない場合には、ジョブ抑制回路２１５を備えることはない。
【００４９】
ハードディスクドライブ２０８には前述のように各機能を司る複数のソフトウエアやデータが保存されている。そして、ハードディスクドライブ２０８は、随時読み出しが行われるが、そのソフトウエアの代表的なものとして、オペレーティングシステムとなるＯＳ部と、複合機全体の動作を制御するための複合機制御ソフトウエアが存在する。
【００５０】
ここで、複合機制御ソフトウエアとは、ネットワーク１０６上のノードからＰＤＬデータ（Page Description Languageデータ）を受信する。そして、ＲＩＰ処理（Raster Image Prosessor処理）することによってビットマップデータに展開し印刷可能なデータを生成するプリントサーバとしての機能を有している。
【００５１】
ＰＣ１０１はＤＳ１０４が構築しているディレクトリに属している。そのためＰＣ１０１のユーザは、ＰＣ１０１を使用する場合にはログイン作業が必要になる。ＰＣ１０１のユーザはＰＣ１０１のログイン画面を呼び出し、ユーザ名とユーザ名に対応するパスワード、及びユーザグループ（ドメイン）を入力する。
【００５２】
このようにして入力された情報は、ＰＣ１０１からユーザ情報として、ＤＳ１０４に通知され、入力された情報が正しい場合にはログイン許可応答がＤＳ１０４からＰＣ１０１に対して送信される。なお、ユーザ情報として、必ずしもユーザ及びグループユーザの情報が必要なわけではない。
【００５３】
例えば、ユーザ名のみ等、利用者を特定できる情報であれば適用可能であることは云うまでもない。また、ユーザとは必ずしも個人を指すものではなく、例えば、特定のグループ、部門等を指すものであっても良い。
【００５４】
図３において、列６０１はＤＳ１０４によって管理されるディレクトリのユーザである。ユーザは行６０６によって表されている。本例では、「Ｙａｍａｄａ」、「Ｉｋｅｄａ」、「Ｙａｍａｇｕｃｈｉ」、「Ｎｏｇｕｃｈｉ」の４ユーザが登録されているものとする。
【００５５】
ＤＤＢ１０５は、列６０１のそれぞれのユーザに対して、後述の列６０２から列６０５までの付加情報を関連付けている。
【００５６】
列６０２はＰｒｉｎｔ属性であり、ユーザにポートモニタ経由の印刷権限の有無を表している。ここでは、４ユーザ全てに印刷権限が与えられているものとする。
【００５７】
列６０３はカラー印刷権限の有無を表している。ここでは、ユーザ名が「Ｙａｍａｇｕｃｈｉ」のみにカラーでの印刷権限が与えられていない。
【００５８】
列６０４は片面印刷権限の有無を表している。ここではユーザ名が「Ｙａｍａｄａ」及び「Ｉｋｅｄａ」にのみ片面印刷の権限が与えられている。
【００５９】
列６０５は片面に印刷可能な最低のページ数を表している。ユーザ名が「Ｙａｍａｄａ」及び「Ｉｋｅｄａ」は片面に１ページの印刷が許可されている。
【００６０】
ユーザ名が「Ｙａｍａｇｕｃｈｉ」は片面あたり４ページから印刷することが可能となる。ユーザ名が「Ｎｏｇｕｃｈｉ」は片面に２ページから印刷することが可能となっている。
【００６１】
ＤＤＢ管理ユーティリティ１０７は、ＤＤＢ１０５を編集するためのユーティリティソフトウェアである。ＤＤＢ管理ユーティリティ１０７は、Ｗｅｂサーバとしての機能を備え、ＤＤＢ１０５の編集を行うＷｅｂページを提供する。
【００６２】
ＤＤＢ１０５を編集するユーザは、自身のホストコンピュータからＷｅｂブラウザソフトウェアを起動し、ＤＤＢ管理ユーティリティ１０７にアクセスするための所定のＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｅｃｅ  Ｌｏｃａｔｏｒ）を入力する。
【００６３】
これにより、ＤＤＢ管理ユーティリティ１０７が提供するＤＤＢ１０５を編集するためのＷｅｂページが表示される。Ｗｅｂページには認証機能が設けられているものとし、特定のユーザのみがＤＤＢ１０５を編集することが可能となっている。
【００６４】
ここで、ＤＤＢ１０５の編集とは、具体的には図３に示したような各ユーザに与えられた機能単位の権限の変更である。
【００６５】
また、各々の機能の権限を集合化したものをロールといい、ＤＤＢ１０５上においては、各ユーザにはロールが対応付けられる。ロールには各機能のそれぞれを個別に設定するカスタムロールと、予めアクセス権限が定義されているベースロールの２種類が用意されているものとする。
【００６６】
ＤＳ１０４とＤＤＢ１０５、及びＤＤＢ管理ユーティリティ１０７のそれぞれの機器間で行なわれるＤＤＢ１０５を管理するためのプロトコルは、ＤＤＢ１０５にアクセスすることが可能なＬＤＡＰが用いられているものとする。ここで、ＬＤＡＰとは、Ｌｉｇｈｔｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌである。
【００６７】
次に、図４を用いて、本発明のポートモニタの動作フローについて説明していく。図４は、本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【００６８】
なお、Ｓ３０１〜Ｓ３１１は各ステップを示す。また、後述する図５に示すポートモニタ４０５は、印刷データをＭＦＰ１０２やプリンタに送信する機能を有するソフトウエアでＰＣ１０１にインストールされているものであるとする。
【００６９】
一般的にコンピュータ上でプリンタポートの新規登録を行う場合、コンピュータのＯＳが標準で備えているポートを使用する場合と、任意のポートモニタソフトウェアをインストールして専用ポートを作成する場合とがある。
【００７０】
本実施形態においては、ＰＣ１０１で作成されるポートは、後者であるものとする。また、作成されるポートはＭＦＰ１０２へ出力を行うポートであるものとする。
【００７１】
ポートモニタは、ＯＳの起動時にメモリ上にロードされ実行される。ＯＳが起動してアイドル状態になってからもメモリに常駐し、バックグラウンドで動作が行なわれている。
【００７２】
まず、Ｓ３０１で、ＰＣ１０１上のポートモニタは、プリンタドライバが生成しスプーラ４０４によりスプールされた印刷ジョブデータの待ち受け状態であることを表している。ポートモニタは起動後、印刷ジョブデータを待ち受ける状態に入る。
【００７３】
ここで印刷ジョブデータとは装置に解釈させて印刷出力を行わせる為のデータを指す。ベクトル形式の描画データ、ＸＭＬフォーマットの描画データ、ビットマップ描画データ、印刷ジョブ言語、ジョブ名やジョブＩＤやユーザ名等の付属情報等、様々な種類のデータを含む。
【００７４】
また、この印刷ジョブデータのことを単に印刷ジョブと読んだり、印刷の為のデータという意味で印刷データと呼ぶこともあるが、基本的には印刷ジョブデータと同様の意味を成すものとする。
【００７５】
ここで、ポートモニタとその他のソフトウエアとの動作シーケンスについて、図５を用いて説明する。
【００７６】
図５は、図１に示したＰＣ１０１のソフトウエアのモジュール構成を説明するブロック図である。
【００７７】
図５において、ＯＳ４０１は、ＰＣ１０１上で動作している。アプリケーションソフトウエア（Ａｐｓ）４０２は、ユーザが任意でインストール及び起動を行うソフトウエアである。Ａｐｓ４０２は、例えば文書編集ソフトウエアや表計算ソフトウエアなどが存在する。
【００７８】
ユーザがＡｐｓ４０２で編集を行っているデータの印刷を行う場合は、プリンタドライバ４０３がＡｐｓ４０２からある単位のデータを受け取り、順次ある単位毎にＰＤＬイメージを生成し、ＰＣ１０１内のスプーラ４０４に渡す。
【００７９】
ポートモニタ４０５は、スプーラ４０４から順次、ＰＤＬイメージ化されたプリントジョブを受信する。次に、図６を用いて、ポートモニタ４０５を構成するソフトウェアブロックについて説明する。
【００８０】
図６は、図５に示したポートモニタ４０５のソフトウェアモジュール構成を説明するブロック図である。
【００８１】
図６において、ＭＰＭ−ＢＡＳＥ５０１は、ポートモニタ４０５の基本部分であり、スプーラ４０４からデータを引き取り、ユーザによって定義されたポートの種類によってプラグインモジュールを呼び出したりする。なお、スプーラ４０４からデータを引き取るということは、データを受信するといったり、データを読込むことを指す。
【００８２】
また、ＭＰＭ−ＢＡＳＥ５０１は、機器との通信状態やデータサイズ等をユーザに通知するために後述のＭＰＭモニタモジュールを呼び出すといった処理を行う。
【００８３】
ＦＣプラグイン５０２は、図１に示したＳＡ１０３にユーザ権限を問い合わせたり、印刷ジョブの印刷属性がユーザの権限を満たしていることを確認したりといった、印刷権限に関わる処理を行うプラグインモジュールである。
【００８４】
ＬＰＲｐ５０３はＬＰＲプロトコル（Ｌｉｎｅ  Ｐｒｉｎｔｅｒ  Ｄａｅｍｏｎ  プロトコル）で印刷データを機器に送信するためのプラグインモジュールであり、スプーラ４０４から受信したデータをＬＰＲプロトコルで機器に送信する処理を行う。
【００８５】
IPPp５０４は、ＩＰＰプロトコル（Internet Printing Protocolプロトコル）で印刷データを機器に送信するためのプラグインモジュールであり、スプーラ４０４から受信したデータをＩＰＰプロトコルで機器に送信する処理を行う。
【００８６】
ＦＣｐ５０５は印刷機能制限モード時の印刷ジョブのデータ変更を行うためのプラグインモジュールである。
【００８７】
ＭＰＭモニタ５０６は、ポートモニタ４０５のＧＵＩをユーザに提供するためのモジュールで、ジョブ状態やデバイスの状態を表示する。
【００８８】
ＭＰＭ−Ｂａｓｅ５０１からＭＰＭモニタ５０６までをポートモニタ４０５のプログラムモジュール群として、本実施形態においては、これらのモジュール群については、一括してポートモニタ４０５として説明する。
【００８９】
まず、Ｓ３０１において、ポートモニタ４０５がスプーラ４０４から印刷ジョブを受信したら、次に、Ｓ３０２において、ポートモニタ４０５はポートモニタ４０５の動作モードが印刷機能制限モード（ＦＣモード）であるか否かの設定確認を行う。
【００９０】
ポートモニタ４０５のユーザはポートモニタ４０５のＭＰＭモニタ５０６を介して設定画面を開き、任意のポートに対して印刷機能制限モードを有効又は無効にする設定が可能である。
【００９１】
図７は、図５に示したポートモニタ４０５で作成された任意のポートの設定画面の一例を示す図である。本画面例は、ＭＰＭモニタ５０６が提供するポートの追加に対する設定画面の一例である。
【００９２】
なお、本実施形態においては、ＭＦＰ１０２に送信するポートが予めＰＣ１０１に設定されているものとし、そのポートに対して印刷ジョブを受信したものとして説明する。
【００９３】
図７において、ユーザがチェックボックス７０１のチェックを有効にすると、ポートモニタ４０５は設定状態にある任意のポートに印刷ジョブを送信する際には、印刷制限機能（図４のフローチャートの処理）を有効に設定する。これにより、画像形成装置が実行可能な各機能に対して設定されたユーザ別の機能制限情報を問い合わせる機能を有効または無効に設定することができる。
【００９４】
そして、問い合わせる機能を有効に設定した場合、ＭＦＰが実行可能な各機能に対して設定されたユーザ別の機能制限情報を問い合わせる先の装置を特定する情報を指定可能な状態となる。
【００９５】
次に、Ｓ３０２で、チェックボックス７０１が無効であるとポートモニタ４０５が判断した場合は、ポートモニタ４０５はスプーラ４０４から受信した印刷ジョブをそのまま指定されたポートに対して送信する（Ｓ３０９）。
【００９６】
なお、ポートモニタ４０５による印刷制限機能の有効又は無効の切り替え機能は、ポートモニタ４０５を使用する環境によっては、印刷機能制限の管理がなされていない場合も考慮して備わっている。
【００９７】
図７において、入力フォーム７０２は、ＳＡ１０３のＩＰアドレス又はＤＮＳホスト名（Ｄｏｍａｉｎ  Ｎａｍｅ  Ｓｅｒｖｉｃｅホスト名）を指定するためのフォームである。
【００９８】
ポートモニタ４０５は印刷機能制限が有効になっている場合には、入力フォーム７０２に入力されたＳＡのＩＰアドレス又はＤＮＳホスト名に対してＰＣ１０１のユーザの権限を問い合わせる。ここで、は印刷機能制限が有効とは、チェックボックス７０１のチェックを有効の状態を意味する。
【００９９】
一方、Ｓ３０２で、ポートモニタ４０５が印刷機能制限モード（ＦＣモード）で動作していると判断した場合、ポートモニタ４０５は、Ｓ３０３で、読込まれた印刷ジョブのデータが印刷制限機能に係る認証処理を行うべきか否かを判断する。
【０１００】
例えば、印刷ジョブのデータを解析して、印刷制限問い合わせを行うか否かを確認する処理を行う。ここでは、印刷ジョブデータのヘッダを解析することによりＦＣ対応ドライバかどうかを確認する。
【０１０１】
なお、印刷機能制限は、プリンタドライバ４０３によって行なわれている場合もある。そのような場合、すなわち、Ｓ３０３の判断がＹＥＳとなり、ポートモニタ４０５は権限問い合わせを行う必要はなく、スプーラ４０４で受信した印刷ジョブをそのまま指定されたポートに対して送信して（Ｓ３０９）。そして、ステップＳ３０１へ戻る。
【０１０２】
一方、ステップＳ３０３で、プリンタドライバ４０３によって印刷機能制限がかけられていないジョブをスプーラ４０４から受け取ったと判断した場合には、ステップＳ３０４へ進む。そして、ステップＳ３０４で、ポートモニタ４０５は印刷機能制限を行うためＳＡ１０３に対してＰＣ１０１のユーザの権限を問い合せる。
【０１０３】
ここで、ポートモニタ４０５がプリンタドライバ４０３によって印刷ジョブデータに印刷機能制限がかけられているか否かを確認する方法として、印刷ジョブに含まれるセキュリティヘッダの有無によって判断する場合を説明する。つまり、プリンタドライバ４０３が印刷機能制限に対応しているドライバであるかどうかを判断することとなる。
【０１０４】
なお、以下ではセキュリティヘッダという文言を用いて説明を行うが、このセキュリティヘッダはとは、ポートモニタ４０５によりスプーラ４０４から読込んだ印刷ジョブのデータが、印刷機能制限に係る認証処理を行うべきかを示す情報を指す。
【０１０５】
ここで、認証処理を行うべきかを示す情報とは、例えば、印刷ジョブのデータを生成したプリンタドライバが印刷制限機能に対応し、図９のような印刷権限に関する情報を取得し印刷ジョブに付加できるものかを示す情報に相当する。以下では、ポートモニタ４０５が認証を行うべきことを示す情報の一例としてセキュリティヘッダを例に説明を行っていく。
【０１０６】
無論、セキュリティヘッダでなくとも、例えば、データのある位置に設定されるフラグや、特定の電子署名等により、ポートモニタ４０５が認証を行うべきことを示す情報を構成するようにしても良い。
【０１０７】
ここで、セキュリティヘッダとは、プリンタドライバが印刷データ生成時に付加するヘッダであり、印刷ジョブの改ざんを検知するための情報等も含まれている。改ざんを検知するための情報として、例えば、印刷ジョブデータ生成時のハッシュ値を挙げることが出来る。
【０１０８】
印刷機能制限が有効な環境下では、ポートモニタ４０５やプリンタドライバ４０３によってユーザの印刷権限に応じた印刷ジョブの実行制御が行われる。一方、印刷データがネットワークを通過中に書き換えられ、権限を無視した印刷属性に変更される可能性がある。
【０１０９】
そのようなことを防止する目的で、プリンタドライバ４０３と印刷ジョブを受信する側の機器にはデータ改ざん検知機能を有している。そして、機器は受信したデータについて途中で印刷データが変更されたことを検知した場合には印刷を行わないといった機能が備わっている。
【０１１０】
本実施形態においても、ＭＦＰ１０２にはそのような改ざん検知機能が備わっているものとする。
【０１１１】
そして、改ざん検知を行うために、プリンタドライバ４０３が印刷ジョブデータに付加する特定の情報がセキュリティヘッダである。
【０１１２】
ＭＦＰ１０２は、印刷ジョブを受信すると、セキュリティヘッダを解析し、また印刷ジョブ本体部分のデータを解析することで、受信したデータの改ざんの有無を調査する。
【０１１３】
つまり、ポートモニタ４０５は、スプーラ４０４から受信した印刷データとセキュリティヘッダ固有のデータとをデータマッチングして、受信した印刷データにセキュリティヘッダが添付されているか否かを判断する。
【０１１４】
図８は、図５に示したプリンタドライバが印刷ジョブデータに付加する特定の情報がセキュリティヘッダが持つ固定データの一例を示す図である。
【０１１５】
図８において、列８０１はデータの先頭から数えた番地をバイト単位で示しており、列８０２は対応する値「０ｘ０１」を示している。
【０１１６】
図５に示したポートモニタ４０５は、受信データの先頭データからバイト単位で図８に示す各々の値と比較する。そして、ポートモニタ４０５がデータサイズ及び各々のバイト単位での値の全てで同値である場合、受信したデータにはセキュリティヘッダが添付されているものと判断する。
【０１１７】
ここで、ポートモニタ４０５は、セキュリティヘッダが存在すれば、スプーラ４０４から受け取った印刷ジョブデータが、プリンタドライバ４０３により印刷機能制限が有効にされているものであると判断できる。
【０１１８】
このことから、ポートモニタ４０５は権限問い合わせを行う必要はなく、スプーラ４０４から受信した印刷ジョブデータをそのまま指定されたポートに対して出力する（Ｓ３０９）。そして、ステップＳ３０１へ戻る。
【０１１９】
一方、Ｓ３０３で、ポートモニタ４０５がスプーラ４０４から受け取った印刷ジョブデータにセキュリティヘッダが添付されていないと判断した場合には、Ｓ３０４へ処理を移す。スプーラ４０４から読込まれた印刷ジョブのデータが印刷制限機能に係る認証処理を必要とするデータと判断された場合に、Ｓ３０４で、ポートモニタ４０５はＳＡ１０３に対してＰＣ１０１のユーザの印刷権限を問い合わせる。
【０１２０】
具体的には、ポートモニタ４０５は、ＰＣ１０１のＯＳに対して、現在ＰＣ１０１にログインしているユーザのユーザ情報（ユーザ名及びユーザグループ名（ドメイン名））を問い合わせる。問い合わせは、例えば、ＯＳが提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）又はレジストリを用いる。
【０１２１】
この際、ポートモニタ４０５は入力フォーム７０２に入力されたＩＰアドレス又はＤＮＳホスト名に対してユーザ権限の問い合わせ要求パケットを送出する。問い合わせに使用するプロトコルは汎用的又は標準的なものではなく独自に定義されたフォーマットとなる。
【０１２２】
ただし、印刷権限問い合わせ要求パケットに含まれている情報には、ＰＣ１０１にログインしているユーザＩＤ（ユーザ、ユーザグループ（ドメイン）等）、及びユーザ名に関連する印刷権限の問い合わせを意味するＩＤ、が少なくとも含まれているものとする。
【０１２３】
このようにして、印刷権限の問い合わせを受信したＳＡ１０３はＤＤＢ１０５に対して所定のプロトコルを用いてＰＣ１０１から指定されたユーザ情報に対応する印刷権限を問い合わせる。
【０１２４】
そして、ＳＡ１０３は、ユーザ情報と図３のユーザ登録情報から特定された印刷権限より、後述の図９で説明する印刷権限情報を作成し、ＰＣ１０１にネットワークを介して応答する。印刷権限情報を取得する。
【０１２５】
なお、印刷権限情報のことを印刷装置における各種機能を制限（許可又は不許可）するということで機能制限情報と呼ぶこともある。また、ＤＤＢ１０５の機能をＳＡと同じコンピュータに含めるようにしても良い。そうすることにより、ＳＡ１０３は、よりレスポンス良く印刷権限情報をＰＣ１０１に応答することができる。
【０１２６】
そして、Ｓ３０５において、ポートモニタ４０５が送出した印刷権限問い合わせ要求に対してＳＡ１０３が正しい応答を返したか否かを判断する。ここで、ＳＡ１０３が正しい応答を返したと判断した場合は、ポートモニタ４０５は応答値をＰＣ１０１のＲＡＭに格納して、Ｓ３０７に移行する。
【０１２７】
ここで、ＳＡ１０３からの応答が正常なものであった場合には、その応答値には、図３に示した列６０２から列６０５で示される属性に関する権限を示す情報が含まれるものとする。
【０１２８】
図９は、図５に示したポートモニタ４０５がＳＡ１０３から取得する印刷権限問い合わせ応答、つまり印刷権限情報の一例を示す図である。この図９に示されるデータは先に説明した図３のユーザ登録情報に基づき作成されたものである。ここでは、この図９のデータは、図８に示されたセキュリティヘッダのデータボディ部に含まれるものとする。無論、図８のセキュリティヘッダとは別のヘッダのボディ部に含めるようにしても良い。
【０１２９】
図９において、印刷権限情報は上述のように独自のプロトコルを用いている。そしてプロトコル中に含まれるデータの構造は、図９に示されるようにＸＭＬ（eXtensible Markup Language）形式である。
【０１３０】
そのデータに含まれる要素としては、部位１１０１で示されるユーザプロファイル部が存在する。
【０１３１】
部位１１０１には、ＰＣ１０１のユーザ名及びユーザ名に対応付けられたロール名が含まれている。部位１１０２には、アクセス権限（印刷権限）が記載されている。図３に示した列６０２から列６０５で示されるアクセス権限を表すスキーマと、対応する許可動作が記載される。
【０１３２】
また、Ｓ３０５で、ＳＡ１０３からの応答値が不正、または応答がなかったとポートモニタ４０５が判断した場合には、Ｓ３０６で、ポートモニタ４０５は印刷権限の取得に失敗したことをユーザに通知して、ステップＳ３１１へ進む。
【０１３３】
なお、Ｓ３０６において、ポートモニタ４０５は印刷権限の取得に失敗したため印刷を中断する旨のメッセージを記載したダイアログボックスを表示し、ＰＣ１０１のユーザに対して状況の通知を行う。
【０１３４】
そして、Ｓ３１１に移行し、印刷ジョブデータを削除して、Ｓ３０１へ戻る。一方、Ｓ３０５で、正常な応答であるとポートモニタ４０５が判断した場合は、Ｓ３０７で、ポートモニタ４０５は印刷ジョブに含まれている印刷属性情報をリードして、ＳＡ１０３の問い合わせ結果との比較処理を含むジョブ解析を行う。
【０１３５】
ここで、印刷ジョブデータには、印刷属性情報部と印刷データ部に分離することができる。印刷属性情報部には、先に述べたように、印刷を行ったユーザ名やコンピュータ名といった環境情報や、印刷部数や両面印刷の有無や出力フィニッシャビンの指定といったプリンタドライバで指定した情報が含まれている。
【０１３６】
図１０は、図５に示したポートモニタ４０５が解析する印刷ジョブデータに含まれる印刷属性部の一例を示す図である。
【０１３７】
図１０において、印刷属性部は、属性と、対応する値が対になる形で指定される。
【０１３８】
次に、Ｓ３０８で、ポートモニタ４０５は、ＳＡ１０３から取得した印刷要求しているユーザの印刷権限とその印刷ジョブデータ中に含まれる印刷属性の値とを比較して、設定された印刷属性がそのユーザの印刷権限を満たしているか否かの比較処理を行う。
【０１３９】
例として、図３に示した列６０５に示される、一面あたりのページ数を挙げる。ポートモニタ４０５は図９に示したの部位１１０２の以下の記述をリードして解読する。ここでは、スキーマは一面あたりの印刷ページ数を意味し、対応する許可動作は２（ページ）であることを意味している。
【０１４０】
＜ｓａｍｌ：ＡｔｔｒｉｂｕｔｅＶａｌｕｅ  Ｎａｍｅ＝“Ｎｉｎ１”＞２＜／ｓａｍｌ：ＡｔｔｒｉｂｕｔｅＶａｌｕｅ＞
つまりユーザに与えられた一面あたりのページ数の最小値が２ページである。次に、ポートモニタ４０５は印刷属性部の一面あたりのページ数を指定する以下の記述を解析する。
【０１４１】
＠ＰＪＬ  ＣＯＭＭＥＮＴ  ＣＡＮＰＪＬ  ＳＥＴ  ＮＵＰＨＩＮＴ＝１
上記コマンドの場合、ユーザは一面あたりの印刷ページ数を１ページにしていしている。
【０１４２】
しかしながら、ＳＡ１０３から受信したそのユーザの印刷権限では２ページであるため、そのユーザは一面あたりに１ページのみ印刷する権限を有していないとポートモニタ４０５は判断することができる。
【０１４３】
このように、プリンタドライバ４０３に印刷権限に対応していない場合でも、ポートモニタ４０５の印刷権限機能に基づいて、印刷要求しているユーザの印刷権限と受信した印刷ジョブの印刷属性を検証する。これにより、そのユーザの印刷権限を越えた印刷設定の印刷ジョブを検出することができる。
【０１４４】
そして、Ｓ３０８において、ポートモニタ４０５は、このような判断処理を、ＳＡ１０３から受信した印刷権限のスキーマ全てについて行う。
【０１４５】
その中において、印刷ジョブデータ中で指定された属性が１つでも権限を有していなかったとポートモニタ４０５が判断した場合には、ポートモニタ４０５は、スプーラ４０４から受信した印刷ジョブの送信を行わずに、Ｓ３１０に移行する。
【０１４６】
そして、Ｓ３１０で、警告処理を行う。具体的には、印刷ジョブは無効であり送信を中断する旨の通知をユーザに対して図１１に示すダイアログボックスで行う。そして、ステップＳ３１１へ進む。
【０１４７】
一方、Ｓ３０８で、印刷ジョブで指定された全ての属性が権限を満たしていたと判断した場合には、Ｓ３１２へ移行する。
【０１４８】
そして、Ｓ３１１では、ユーザが指定した印刷属性がユーザの印刷権限を満たしていない。このため、ポートモニタ４０５は、ＭＰＭモニタ５０６を介して、ＰＣ１０１上の表示装置に、例えば図１１に例示されるダイアログボックスを表示し、印刷を中断した旨をユーザに通知する。
【０１４９】
ここで、印刷権限と印刷ジョブデータに設定された権限の不一致を検出して、ＳＡ１０３へ送信して記憶装置に蓄積させる。管理者の権限で、その記憶装置に蓄積された権限異常のユーザとその設定を追跡調査できるように構成してもよい。
【０１５０】
図１１は、図１に示したＰＣ１０１の表示装置に表示されるダイアログボックスの一例を示す図である。なお、ダイアログボックスは、ポートモニタ４０５のＭＰＭモニタ５０６を介して表示が行われる。
【０１５１】
図１１において、例示されるダイアログボックスに表示されたメッセージ中のユーザＸＸＸとは、現在ＰＣ１０１にログインしているユーザのユーザ名（ログイン名）がＸＸＸであることを示している。
【０１５２】
次に、Ｓ３１１において、ポートモニタ４０５は印刷ジョブの削除を行う。また、削除した旨を表示部を介してユーザに通知するようにすれば、ユーザは効率よく、印刷のやり直しを行うことができる。
【０１５３】
具体的には、ポートモニタ４０５は、Ｓ３０８において印刷権限を有していないユーザによって生成された印刷ジョブと判断された印刷ジョブをスプーラ４０４上及びポートモニタ４０５が管理するメモリ空間から削除して、Ｓ３０１へ戻る。
【０１５４】
一方、Ｓ３０８において、印刷ジョブで指定された全ての属性が権限を満たしていたとポートモニタ４０５が判断した場合には、ポートモニタ４０５が行う処理はＳ３１２へと移行して、セキュリティジョブ変換処理を行う。
【０１５５】
本実施形態において、セキュリティジョブ変換処理とは、Ｓ３０１においてポートモニタ４０５が受信した印刷ジョブに対して、以下の処理を行う。つまり、ＭＦＰ１０２が改ざん検知を行うことを可能にするためにポートモニタ４０５が印刷ジョブに対して所定のデータ変換及びデータ添付を行うことを意味している。
【０１５６】
例えばポートモニタ４０５は印刷ジョブデータに対して、セキュリティジョブに変換するための符号化処理を行う。これにより、印刷ジョブがセキュリティジョブ化され、ＭＦＰ１０２が印刷ジョブデータを受信した際に改ざん検知を行うことが可能となる。
【０１５７】
そして、ポートモニタ４０５は、次にＳ３０９へと移行し、印刷ジョブをＭＦＰ１０２に送信する処理を行い、Ｓ３０１へ戻る。
【０１５８】
例えばポートモニタ４０５は予め定義された送信方式や送信先に従って印刷ジョブを送信する。
【０１５９】
ここで、送信方式とは、例えばＬＰＲやＩＰＰといったプロトコルであったり、各々のプロトコルの詳細な設定情報、例えば印刷キューや印刷ポート、再送信回数やパケットデータサイズといった情報を指す。
【０１６０】
また、ここで、送信先とは、各々のプロトコルで定義された宛て先情報を指しており、例えばＬＰＲであればＩＰアドレスやＤＮＳホスト名であり、またＩＰＰであれば送信先のＵＲＬ情報を指す。
【０１６１】
本実施形態によれば、機能制限の機能を有していないプリンタドライバを使用した場合でも、ポートモニタによって機能制限管理を行うことが可能となる。
【０１６２】
これにより、例えばサードパーティによって作成されたプリンタドライバや旧型のプリンタドライバが印刷制限機能を有していない場合でも、ポートモニタの機能により機能制限管理が可能となる。
【０１６３】
また、本実施形態によれば、印刷クライアントは印刷ジョブの発行者（印刷クライアントの使用者）情報をプリンタに送信することがなく、ポートモニタ４０５がプリンタドライバが機能制限に対応しているかを判断することができる。
【０１６４】
これにより、プリンタに機能情報を問い合わせるシステムに比べて、利便性が向上するシステムを構築できる。また、Ｓ３０２、Ｓ３０３の処理により、不要な場合までＳＡ１０３に問合せを行わないので、重複した問合せを防止することができる。例えば、プリンタドライバがバージョンアップで印刷制限機能に対応し、且つ、同じポートモニタが用いられる状況にも柔軟に対応することができる。
【０１６５】
〔第２実施形態〕
第２実施形態では、図４に示したＳ３０３において、ポートモニタ４０５が印刷ジョブのデータを解析する手法について、印刷機能制限を行うことが可能なプリンタドライバであるか否かといった判断基準を採用する。
【０１６６】
つまり、ＰＣ１０１には、プリンタドライバＡとプリンタドライバＢの２種類のプリンタドライバがインストールされている。
【０１６７】
ここで、プリンタドライバＡ及びプリンタドライバＢに対応付けられるポートはポートモニタ４０５によって作成された同一のポートであり、ＭＦＰ１０２に対しての送信ポートである。
【０１６８】
また、ポートモニタ４０５によって提供されるポートへの詳細設定に関しても同じであるとする。
【０１６９】
例えば、ＭＦＰ１０２への送信プロトコルがＬＰＲであったとすると、その詳細設定情報は以下のようになる。
【０１７０】
（１）使用プロトコル→ＬＰＲ
（２）ＩＰアドレス→「１７２．２４．１．１０（ＭＦＰ１０２のＩＰアドレス）」
（３）ＬＰＲキュー→ｌｐ
（４）管理機能の使用→使用する
（５）管理サーバのＩＰアドレス→「１７２．２４．１．２０（ＳＡ１０３のＩＰアドレス）」
これらの（１）〜（５）設定がなされたポートモニタ４０５によって作成されるポートをプリンタドライバＡ及びプリンタドライバＢが共有しているものとする。ここで、プリンタドライバＡは印刷機能制限の機能を有しているものとし、プリンタドライバＢは印刷機能制限を有していないものとする。
【０１７１】
このように、同じＭＦＰあるいはプリンタに対して複数のプリンタドライバを使用するケースでは、例えばＭＦＰ１０２に複数のプリントサーバが備わっている場合に起こり得るシステム形態である。
【０１７２】
近年のＭＦＰには、標準でプリントサーバ機能を有している製品がある。またそのような製品には、標準のプリントサーバに対して、より機能やパフォーマンスを強化したプリントサーバがオプションとして用意される傾向にある。
【０１７３】
そのような場合、標準プリントサーバとオプションプリントサーバとではプリンタドライバが異なるため、一台の機種に複数のプリンタドライバを使用するケースが発生しうる。
【０１７４】
また、プリントサーバが一台であっても、複数のＰＤＬ言語の処理機能を有しているケースも存在する。
【０１７５】
通常プリンタドライバは単一のＰＤＬ言語のみをサポートしているため、プリントサーバで複数のＰＤＬ言語をサポートしている場合には、それぞれのＰＤＬ言語に対応するプリンタドライバが必要となる。
【０１７６】
本実施形態においても、ＭＦＰ１０２は、２種類のＰＤＬ言語の処理機能を有しており、それらに対応するプリンタドライバがプリンタドライバＡ及びプリンタドライバＢであるものとする。特に、プリンタドライバＢＰＤＬ言語として、ポストスクリプトで記述されるドライバを想定する。
【０１７７】
プリンタドライバＡによって生成された印刷ジョブの先頭データは、図１０によって示されるものであり、プリンタドライバＢによって生成された印刷ジョブの先頭データは、図１２によって示されるものである。
【０１７８】
図１２は、本実施形態を示す情報処理装置のプリンタドライバにより生成される印刷ジョブの先頭データの一例を示す図である。
【０１７９】
ただし、図１０及び図１２によって示されるデータは同一のアプリケーションやデータによって生成されたものではない。
【０１８０】
ここで、ポートモニタ４０５がプリンタドライバＡ及びプリンタドライバＢからの印刷ジョブをそれぞれ受信する場合、Ｓ３０３における判断処理の結果が異なる。
【０１８１】
図１３は、本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。本処理は、図４に示したＳ３０３の他の判断処理の詳細手順に対応する。
【０１８２】
なお、Ｓ１３０１〜Ｓ１３０２は各ステップを示す。また、後述する図５に示すポートモニタ４０５は、印刷データをＭＦＰ１０２やプリンタに送信する機能を有するソフトウエアでＰＣ１０１にインストールされているものであるとする。
【０１８３】
まず、Ｓ１３０１で、ポートモニタ４０５はセキュリティヘッダの有無の確認を行う。第１実施形態で示されるように、セキュリティヘッダが存在すると判断した場合には、当該印刷ジョブは印刷管理機能を有するプリンタドライバによって生成された印刷ジョブであるものと判断される。そのため、Ｓ３０９への処理へと移行する。
【０１８４】
一方、Ｓ１３０１で、セキュリティヘッダが存在しなかったとポートモニタ４０５が判断した場合、Ｓ１３０２へ進む。そして、Ｓ１３０２で、ポートモニタ４０５はＰＤＬデータの種別によって印刷管理機能を有するプリンタドライバによって生成された印刷データであるか否かを判断する。
【０１８５】
具体的には、ポートモニタ４０５は印刷ジョブの所定のデータを参照し、予め定義された値の有無によって判断する。
【０１８６】
本実施形態においては、ポストスクリプト言語（登録商標）によるＰＤＬデータを生成するプリンタドライバＢは印刷管理機能を有していない。また、他のデータストリームによるＰＤＬデータを生成するプリンタドライバＡについては印刷管理機能を有するものとし、ポートモニタ４０５の判断ロジックもそのようにプログラムされているものとする。
【０１８７】
ポートモニタ４０５は印刷データ中に、図１１２に示す先頭に以下のデータ「％！ＰＳ−Ａｄｏｂｅ−３．０」が存在している場合、当該印刷データをＰＳ言語によるものと判断する。なお、「Ａｄｏｂｅ」とはアドビシステムズ社のことを指す。
【０１８８】
そのためプリンタドライバＡによって生成された印刷ジョブに関しては、ＰＳ言語によって記述されていないため、印刷管理機能を有するプリンタドライバによって生成された印刷ジョブであるものと判断される。そのため、Ｓ３０９への処理へと移行する。
【０１８９】
一方、プリンタドライバＢによって生成された印刷データには、上記のＰＳデータを表すデータが含まれているためポートモニタ４０５はＳＡ１０３への問い合わせを行うため、Ｓ３０４への処理へと移行する。
【０１９０】
一方、ＰＳデータであることを示すデータが含まれていなかった場合にはポートモニタ４０５は印刷データに手を加えることなくＭＦＰ１０２に送信することを行うため、Ｓ３０９へと移行する。
【０１９１】
これにより、複数のプリンタドライバが同一のポートを使用している場合にも、ポートモニタ４０５は印刷管理を行うか否かを判断することが可能となる。
【０１９２】
上記実施形態によれば、例えば印刷機能制限に対応していない旧タイプのプリンタドライバや他社製プリンタドライバ及びプリントサーバを使用する環境においても印刷機能制限を行うことが可能となる。
【０１９３】
また、ポートモニタ４０５による印刷管理を行うか否かの判断の基準は本実施形態で示されたＰＳ言語による印刷ジョブの解析ロジックに限定されるものではない。例えば、他のデータストリームをトリガにしても可能である。
【０１９４】
また、印刷管理を行うデータをユーザに選択させるような仕組みになっていたとしても本発明による解決が可能となる。
【０１９５】
〔第３実施形態〕
上記各実施形態では、全ての印刷ジョブに対して、印刷制限機能に対応しているプリンタドライバを判断して印刷ジョブの送信を制限する場合について説明した。
【０１９６】
これに加えて、特定のアプリケーションデータに基づく印刷ジョブに対して上記印刷制限機能の判断を実行するように構成して、ユーザとアプリケーションとの組み合わせにおいて、印刷制限機能を実行させるように制御してもよい。なお、アプリケーションデータのファイル識別子を参照することで、アプリケーションの種別を判定する。
【０１９７】
〔第４実施形態〕
前記第１の実施形態では、図４に示すＳ３１０で警告処理及び印刷ジョブデータの送信を中断し、Ｓ３１１で、ジョブを削除する場合について説明した。しかし、ポートモニタ４０５に別の形態の警告処理を行わせても良い。
【０１９８】
例えば、Ｓ３１０で、「印刷を中止しますか」という問合せを行い、ユーザが中止することを指示した場合のみＳ３１１で印刷ジョブデータを削除し、中止しない旨の指示をした場合、印刷ジョブデータを画像形成装置に出力するようにしても良い。
【０１９９】
但し、この場合には、画像形成装置で権限を越える機能については丸め込み処理が行われる。例えば、カラー印刷を禁止されている旨が印刷制限情報（図９）に記述される場合には、強制的にカラーモノクロ印刷が行われる。
【０２００】
更に、ステップ３１０での通知時に、他のダイアログをポートモニタ４０５が表示、Ｓ３０８の判断を満足するように、印刷ジョブの機能設定を自動補正するステップを組み入れて、ユーザの利便性を向上させてもよい。
【０２０１】
これにより、印刷機能制限を超えた印刷ジョブを画像形成装置に印刷させようとして印刷失敗自体を未然に防ぐと共に緊急の印刷に対応することができる。また、印刷機能制限を満たす印刷ジョブを効率よく画像形成装置に送信することができるため、ユーザの要求と印刷機能制限との双方を満足させた印刷処理を行える。
【０２０２】
〔第５実施形態〕
以下、図１４に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０２０３】
図１４は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０２０４】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２０５】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２０６】
本実施形態における図４、図１３に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２０７】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２０８】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２０９】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０２１０】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０２１１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０２１２】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０２１３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０２１４】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２１５】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２１６】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０２１７】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０２１８】
【図１】第１実施形態を示す情報処理装置を含む印刷システムの一例を示すネットワーク構成図である。
【図２】図１に示したＭＦＰのハードディスクウエア構成を説明するブロック図である。
【図３】図１に示したＤＤＢの登録情報の一例を示す図である。
【図４】本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図５】図１に示したＰＣのソフトウエアのモジュール構成を説明するブロック図である。
【図６】図５に示したポートモニタのソフトウェアモジュール構成を説明するブロック図である。
【図７】図５に示したポートモニタで作成された任意のポートの設定画面の一例を示す図である。
【図８】図５に示したプリンタドライバが印刷データに付加する特定の情報がセキュリティヘッダが持つ固定データの一例を示す図である。
【図９】図５に示したポートモニタが取得する印刷権限問い合わせ応答、つまり印刷権限情報の一例を示す図である。
【図１０】図５に示したポートモニタが解析する印刷ジョブに含まれる印刷属性部の一例を示す図である。
【図１１】図１に示したＰＣの表示装置に表示されるダイアログボックスの一例を示す図である。
【図１２】本実施形態を示す情報処理装置のプリンタドライバにより生成される印刷ジョブの先頭データの一例を示す図である。
【図１３】本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１４】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０２１９】
４０１  オペレーティングシステム
４０２  アプリケーションソフトウエア
４０３  プリンタドライバ
４０４  スプーラ
４０５  ポートモニタ
【図１】
0004810318.tif 000002
【図２】
0004810318.tif 000003
【図３】
0004810318.tif 000004
【図４】
0004810318.tif 000005
【図５】
0004810318.tif 000006
【図６】
0004810318.tif 000007
【図７】
0004810318.tif 000008
【図８】
0004810318.tif 000009
【図９】
0004810318.tif 000010
【図１０】
0004810318.tif 000011
【図１１】
0004810318.tif 000012
【図１２】
0004810318.tif 000013
【図１３】
0004810318.tif 000014
【図１４】
0004810318.tif 000015