IPP 待機サービスは IPP ネットワークプロトコルサービスを提供して、リスナーを実行しているシステム上の印刷サービスと対話する手段を印刷クライアントシステムに提供します。このリスナーは、標準的な操作および属性の幅広いセットを含むサーバー側の IPP プロトコルサポートを実装しています。このリスナーは、Oracle Solaris では Apache モジュールとして、および IPP 操作とワイヤサポートが含まれた一連の共用ライブラリとして実装されています。IPP ソフトウェアスタックは、システムに Oracle Solaris OS をインストールしたときにインストールされます。IPP 待機サービスは、実行を印刷サービスに依存する SMF サービスです。その結果、最初の印刷待ち行列が追加されると、印刷サーバー上で IPP が自動的に有効化されます。IPP は、最後の印刷待ち行列が削除されると無効になります。
IPP に対するサーバー側のサポートは、IPP モジュール mod_ipp で始まります。Oracle Solaris OS には Apache ソフトウェアが付属しているため、待機サービスは Apache Web サーバーを使用しています。Apache モジュールは、DSO (Dynamic Shared Object) インタフェースを使用して Web サーバーの下にプラグインします。DSO インタフェースを使用することにより、このモジュールには IPP 待機サービスのための構成サポート、および Web サーバーがリスナーに HTTP 接続を渡すためのエントリポイントが含まれています。このモジュール化されたアプローチによって、Apache で提供される暗号化や認証機構の IPP サポートでの再利用が可能になります。
IPP 待機サービスの構成ファイル /etc/apache/httpd-standalone-ipp.conf は、通常の Apache 1.3 構成ファイルと似ています。構成ファイルは、使用する任意の Apache 1.3 設定指令を取り込みます。
デフォルト設定には次に示す機能が含まれています。
ポート 631 での待機。
Apache モジュールの最小セットのロード。
サポートされているすべての IPP 操作を、認証を必要とすることなく、/printers/path (ipp://server/printers/) で有効にする。
/printers/ で実行可能なデフォルト操作は、セキュリティーリスクが低い操作セットに限定されています。ただし、/admin/path (ipp://server/admin/) では、基本認証を必要とすることなく、すべての操作を有効にすることができます。
選択できる mod_ipp Apache 設定オプションを次の表に示します。
表 A–2 mod_ipp Apache モジュール設定オプション:
値 |
備考欄 |
---|---|
ipp-conformance |
プロトコルチェックのレベルを選択します。デフォルトは automatic であり、これによってクライアントとの対話が最大になります。 |
ipp-operation |
1 つ以上の IPP 操作に対して IPP 操作サポートを選択的に有効または無効にすることができます。 |
ipp-default-user |
ローカル印刷サービスに接続するときに使用するユーザー名を選択します。デフォルトは lp 印刷ユーザーであり、これによってさらに多くの機能プロキシが可能になります。 |
ip-default-service |
要求を送信する先のデフォルトの印刷サービスを選択します。デフォルトは lpsched デーモンであり、現在は lpsched に対するテストのみが行われています。 |
次の表は、Apache Web サーバー設定に対する適合性確認タイプを示しています。使用する構文は次のとおりです。
ipp-conformance value |
値 |
意味 |
自動 |
要求された操作がプロトコルリスナーでサポートされていることだけを確認します。(デフォルト) |
1.0 |
要求が IPP/1.0 に準拠していることを確認します。 |
1.1 |
要求が IPP/1.1 に準拠していることを確認します。 |
apache 設定ファイルのコメント付きの例を次に示します。
if mod_ipp is loaded User lp run as "lp" URI: ipp://{host]/printers/{queue} SetHandler application/ipp use mod_ipp for this location ipp-conformance strict enable strict protocol checking (default) ipp-operation all enable enable all supported operations
IPP オブジェクトは操作をサポートしています。操作は、要求と応答で構成されています。印刷クライアントが IPP オブジェクトと通信する場合、クライアントはそのオブジェクトの URI に操作要求を発行します。操作要求と応答には、その操作を識別するパラメータが含まれています。また、操作には、その操作の実行時の特性に影響を与える属性も含まれています。これらの操作固有の属性は、操作属性として定義されます。印刷要求には、操作属性、オブジェクト属性、および特定の操作を実行するために必要な文書データが含まれています。各要求には、オブジェクトからの応答が必要です。各応答は、操作の成功または失敗を、応答パラメータとしての対応する状態コードとともに示しています。応答には、操作属性、オブジェクト属性、および操作要求中に生成された状態メッセージが含まれています。
次の表は、Apache Web サーバー設定の IPP 操作キーワードを示しています。
表 A–4 IPP 操作キーワード
値 |
意味 |
All |
このキーワードは、操作の代わりに使用されます。このキーワードは、mod_ipp でサポートされるすべての操作が選択されていることを示すことを目的にしています。 |
Required |
このキーワードは、操作の代わりに使用されます。このキーワードは、次の操作を含む、RFC-2911 で定義された必要なすべての操作が選択されていることを示すことを目的にしています。 print-job、cancel-job、get-job-attributes、get-jobs、および get-printer-attributes。 |
Print-job |
クライアントが 1 つの文書だけを含む印刷ジョブを送信しようとしています。文書データは、要求とともに送信されます。 |
Print-uri |
サポートされていません。 |
Validate-job |
クライアントが、印刷ジョブを送信する前に、スケジューラで印刷ジョブを処理できることを検証しようとしています。 |
Create-job |
クライアントが複数の文書を含む印刷ジョブを送信しようとしています。文書は、send-document および send-uri 操作とともに送信されます。 |
Send-document |
クライアントが、print-job 操作で作成された印刷ジョブに文書を追加しようとしています。文書データは、要求とともに送信されます。 |
Send-uri |
サポートされていません。 |
Cancel-job |
クライアントが印刷ジョブを取り消そうとしています。 |
Get-job-attributes |
クライアントが印刷ジョブに関する情報を収集しようとしています。 |
Get-jobs |
クライアントが特定の印刷待ち行列内の印刷ジョブのリストを収集しようとしています。 |
Get-printer-attributes |
クライアントが特定の印刷待ち行列に関する情報を収集しようとしています。 |
Hold-job |
クライアントが特定の印刷ジョブを保持しようとしています。 |
Release-job |
クライアントが特定の印刷ジョブを解放しようとしています。 |
Restart-job |
クライアントが特定の印刷を再開しようとしています。 |
Pause-printer |
クライアントが特定の印刷待ち行列を一時停止 (無効に) しようとしています。この操作によって、待ち行列内の印刷要求の処理が停止されます。この操作を行なっても、待ち行列でのジョブの受け付けは停止されません。 |
Resume-printer |
クライアントが特定の印刷待ち行列内のジョブの処理を再開 (有効に) しようとしています。 |
Purge-jobs |
クライアントが特定の印刷待ち行列からすべてのジョブを削除しようとしています。 |
Set-printer-attributes |
プリンタの属性を作成または変更します。 |
Set-job-attributes |
既存の印刷ジョブの属性を変更します。 |
Enable-printer |
印刷ジョブのキューイングを再開、または受け付けます。 |
Disable-printer |
印刷ジョブのキューイングを無効にする、または拒否します。 |
cups-get-default |
印刷サービスのデフォルトの出力先を取得します。 |
cups-get-printers |
印刷サービスから使用可能なすべてのプリンタを列挙します。 |
cups-get-classes |
印刷サービスから使用可能なすべてのクラスを列挙します。 |
cups-accept-jobs |
CUPS 固有の Enable-printer と同等の操作。 |
cups-reject-jobs |
CUPS 固有の Disable-printer と同等の操作。 |
cups-move-jobs |
同じ印刷サービス内の待ち行列間でジョブを移動します。 |