サリュテーション技術委員会、アーキテクチャの変更を検討

サリュテーション・コンソーシアムの技術委員会は、バージョン2.1のリリースに備えてサリュテーション・アーキテクチャの変更を検討しています。検討されている変更は二点あり、それぞれDocStoreとPrint Functional Unitの機能拡張に関連しています。

DocStoreの機能拡張

Salutation Architecture Specificationのパート2では、DocStore Functional Unitは次のように定義されています。「スキャン、印刷、ファックスの操作時に処理するドキュメント・データ用の一時スプーリング・ストレージ。DocStoreは一時スプーリング・ストレージへ簡単にアクセスする方法をクライアントに提供し、その目的のために最小限の機能を定義する。DOC Storage Functional Unitはドキュメントのコンテナをフォルダとして構成する。フォルダは複数あってもよい。DOC Storage Functional Unitはファックス機、複写機、プリンタなどに実装される。」

このような設計のコンテナ構造をよく調べると、他のスプーリング・ストアにも応用できることがわかります。たとえば、サリュテーション対応機器のデバイス・ドライバを格納するのにDocStore Functional Unitを使用できます。機器が備えているFunctional Unitを利用しようとするクライアントは、Salutation Service Sessionを使ってこのデバイス・ドライバにアクセスできます。たとえば、Client Functional Unitはサリュテーション・ディスカバリ・プロトコルを使ってPrint Functional Unitを見つけることができます。Print Functional Unitを利用しようとするClient Functional Unitは、該当の機器のデバイス・ドライバにアクセスできないときには、代わりにPrint Functional Unitのデバイス・ドライバを格納しているDocStore Functional Unitにアクセスできます。Salutation Personalityを使用することにより、Client Functional Unitはデバイス・ドライバを取り出して、ローカル・マシンにインストールし、Print Functional Unitによる印刷を実行できます。

新しいFunctional Unitはドキュメント以外のデータも取り込むように設計されるべきだという意見もあります。しかし、このためには、Functional Unitのサポートを増やす必要があり、機器に実装すべきサリュテーションが肥大化します。

Win32 Raw Data用印刷機能の拡張

Windowsでは、デバイス・コンテキストをパラメータとして受け入れる単一の描画関数を作成できます。この描画関数はグラフィック描画命令(Graphic Drawing Instruction:GDI)の形式でグラフィックス・コマンドを生成し、選択したデバイス・コンテキストに応じて画面またはプリンタに描画します。プリンタのデバイス・コンテキストはディスプレイのデバイス・コンテキストとまったく同じやり方で使用されます。つまり、グラフィックス関数はプリンタに対してもディスプレイに対しても同じように動作します。これにより、32ビットのWindows OSにおけるアプリケーション/デバイスの独立性が実現します。

Win32の印刷では、アプリケーションがプリンタのデバイス・コンテキスト上で行ったグラフィック操作は、ジャーナル・レコードとして記録されます。ジャーナル・レコードを収集するプロセスは、必要に応じて再生するためにグラフィック操作を記録するメタファイルのプロセスに似ています。

1ページが完了すると、ジャーナル・レコードはプリント・プロセッサを通過します。プリント・プロセッサはドライバであり、選択したプリンタのデバイス・ドライバがサポートしているより低いレベルのデバイス・ドライバ・インターフェース(DDI)コールにジャーナル・レコードを変換します。

次に、選択したプリンタのグラフィックエンジンによって、プリント・プロセッサの命令が、プリンタに必要な生のバイナリ・データに変換されます。この生のデータがWin32 Raw Print Data Streamです。

続いて、スプーラーによって、このWin32 Raw Print Data Streamが、デバイス・コンテキストを通じて選択されたプリンタに送られます。この送信はポート・モニタ(port monitor)というDLLを呼び出すことによって行われます。一般に、Windows環境では、プリンタはシリアル(COM)ポートまたはパラレル(LPT)に接続されています。シリアルポートとパラレルポートはほとんどのデスクトップ・コンピュータやノートパソコンに標準で装備されています。ポート・モニタはWin32 Raw Print Data Streamを入れるプリンタ・スプールと、プリンタが接続されているポートとを物理的につなぐ役割をはたします。

プリンタに割り当てられる「ポート」の1つは「ファイル」です。

このポートに出力すると、ディスク内にファイルが作成されます。このファイルには、グラフィックスエンジンが生成したWin32 Raw Print Dataが入り、あとで使用できるようになります。

サリュテーション・コンソーシアムの技術委員会は、Win32 Raw Print Data用のエミュレーション・モードの仕様を検討しています。これにより、この種のデータ・ストリームをサポートしているサービスを発見できるようになります。サービスを発見したサリュテーション・クライアントは、Win32 Raw Print Dataを生成し、サリュテーション・プロトコルを通じてそのデータをサリュテーション・サーバーに送り、印刷できます。