Solaris のシステム管理 (印刷)

IPP 待機サービスの概要

IPP 待機サービス (「リスナー」とも呼ばれる) は、印刷クライアントシステムにリスナーを実行しているシステム上の印刷サービスと対話するための手段を与える IPP ネットワークプロトコルサービスを提供します。このリスナーは、標準的な操作および属性のセットを含むサーバー側の IPP サポートを実装しています。リスナーは、Oracle Solaris 上に Apache モジュールとして、および IPP 操作とワイヤ通信をサポートする一連の共用ライブラリとして実装されます。IPP ソフトウェアスタックは、システムに Oracle Solaris OS をインストールしたときにインストールされます。IPP 待機サービスは、実行を印刷サービスに依存する SMF サービスです。その結果、最初の印刷待ち行列が追加されると、印刷サーバー上で IPP が自動的に有効化されます。また、最後の印刷待ち行列が削除されると、IPP は無効化されます。

フロントエンドでは、IPP サーバーのサポートは HTTP バージョン 1.1 の階層の上に置かれています。サーバーは、HTTP POST 要求を通して IPP 操作を受信します。サーバーは次に、要求された操作を実行し、HTTP を介してクライアントに応答を返します。これらの操作には、印刷ジョブの送信および取り消しや、プリンタ、印刷ジョブ、またはプリンタの待ち行列に入れられているすべての印刷ジョブの属性のクエリーなどが含まれますが、これらには限定されません。バックエンドでは、IPP リスナーは印刷スプーラと通信することによって操作を実行します。Oracle Solaris OS では、このスプーラは現在、lpsched デーモンです。

IPP 待機サービスの動作

IPP 待機サービスの実装 (サーバー側のサポート) は、Apache Web サーバーの下に組み込まれています。Web サーバーは、HTTP POST 要求によって IPP 操作を受信します。この HTTP POST 要求は、受信されたあと、Apache IPP モジュール (mod_ipp.so) に渡されます。Apache Web サービスはまた、設定に基づいて、認証サービスを提供したり、印刷クライアントと印刷サーバーの間の暗号化のために使用したりすることもできます。待機サービスは、待機専用の Apache インスタンスとして実行されます。

このプロセスは次のとおりです。

  1. クライアントからサーバーに対して IPP 要求が発行されます。

  2. Apache Web サーバーが接続を受け付けます。

  3. Apache Web サーバーは次に、その接続を mod_ipp に渡します。

  4. mod_ipp は、その接続と設定データを libipp-listener に渡します。

  5. libipp-listener は、lipipp-core を使用して要求を読み取ります。

  6. libipp-listener は、その要求を lipipp-listener にある操作ハンドラに振り分けます。

  7. 操作ハンドラは、その要求を PAPI 呼び出しに変換してから呼び出しを実行します。

  8. この PAPI 呼び出しは、psm-lpsched を使用して印刷サービス固有の要求に変換されます。

  9. 印刷サービスが要求に応答します。

  10. psm-lpsched コマンドは、その応答を PAPI 結果に変換します。

  11. libpapi 操作により、libipp-listener 操作ハンドラに戻ります。

  12. libipp-listener 操作ハンドラは、結果をディスパッチャーに渡します。

  13. libipp-listener ディスパッチャーは、libipp-core ライブラリを使用して結果をクライアントに書き込みます。

  14. このディスパッチャーは戻り値として、mod_ipp のエントリポイントを戻します。