(57)【要約】【課題】  ユーザインタフェース要素を表示するための非同期チャネルを提供する。【解決手段】  システムは、プリンタ上でデータを印刷する際に使用することに向けられる。クライアントが、印刷能力を有するアプリケーションプログラムとインタフェースをとる。クライアントと通信するプリントサーバが、クライアントによってプリントサーバに通信されたデータの印刷を制御する。ユーザインタフェースマネージャが、プリントサーバとクライアントの間の非同期双方向通信チャネルで、プリントサーバと通信する。ユーザインタフェースマネージャは、プリントサーバから送信されたユーザインタフェースメッセージに応答して、柔軟性のあるカスタムの形で情報をユーザに表示する。【選択図】  図１
2005285115.tif 000002
【特許請求の範囲】
【請求項１】
クライアント／サーバコンピューティングで用いられるシステムであって、
ａ）アプリケーションプログラムとインタフェースをとるクライアントと、
ｂ）サーバを介して利用可能なサービスを求めて前記クライアントによって該サーバに通信された前記アプリケーションプログラムからの要求に応答する、前記クライアントと通信する該サーバと、
ｃ）前記サーバと前記クライアントの間の非同期通信チャネルを介して前記サーバと通信し、前記サーバから送信されたユーザインタフェースメッセージに応答して情報をユーザに表示するユーザインタフェースマネージャと
を含むことを特徴とするシステム。
【請求項２】
前記サーバは、前記非同期通信チャネルを介して前記ユーザに表示するための情報を有する言語中立のメッセージを伝送し、前記ユーザインタフェースマネージャは、前記メッセージのためのインタプリタを含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記ユーザインタフェースマネージャは、前記言語中立のメッセージをディスプレイ上の言語固有のメッセージに変換するためのカスタムメッセージインタプリタを含むことを特徴とする請求項２に記載のシステム。
【請求項４】
リソースファイルをさらに含み、前記ユーザインタフェースマネージャカスタムメッセージインタプリタは、前記言語固有のメッセージの表示中に前記リソースファイルの中のリソースにアクセスすることを特徴とする請求項３に記載のシステム。
【請求項５】
前記アプリケーションプログラムは、印刷能力を含み、前記サーバは、１つまたは複数のクライアントコンピュータからの印刷要求に応じるためにプリントサーバコンピュータ上で実行されることを特徴とする請求項１に記載のシステム。
【請求項６】
プリンタで使用するためのシステムであって、
ａ）印刷能力を有するアプリケーションプログラムとインタフェースをとるクライアントと、
ｂ）前記クライアントによって前記プリントサーバに通信されたデータの印刷を制御する、前記クライアントと通信するプリントサーバと、
ｃ）前記プリントサーバとの非同期通信チャネルを介して前記プリントサーバと通信し、前記プリントサーバから送信されたユーザインタフェースメッセージに応答してユーザに情報を表示するユーザインタフェースマネージャと
を含むことを特徴とするシステム。
【請求項７】
ユーザディスプレイをさらに含み、前記クライアントユーザインタフェースマネージャに送信される前記メッセージは、前記ユーザインタフェースマネージャによって解釈され、前記ユーザディスプレイ向けの別の表現に変換される言語中立のメッセージであることを特徴とする請求項６に記載のシステム。
【請求項８】
前記クライアントユーザインタフェースマネージャは、前記サーバからのグローバル一意識別子を前記ディスプレイ上のユーザが理解できるメッセージに変換することを特徴とする請求項７に記載のシステム。
【請求項９】
前記プリントサーバに伝送するために前記アプリケーションプログラムからデータを受信し、前記アプリケーションプログラムから印刷要求を受信すると、前記ユーザインタフェースマネージャにメッセージを通信する、クライアントコンピュータ上に存在する印刷スプーラを含むことを特徴とする請求項６に記載のシステム。
【請求項１０】
前記ユーザインタフェースマネージャは、前記クライアント印刷スプーラからの前記印刷要求に関連するデータを前記サーバに転送するために、前記プリントサーバに対する非同期通知チャネルをセットアップすることを特徴とする請求項９に記載のシステム。
【請求項１１】
前記プリントサーバは、前記プリントサーバによって扱われる印刷ジョブのステータスに基づき、前記非同期通知チャネルを介して言語中立のメッセージを送信することを特徴とする請求項１０に記載のシステム。
【請求項１２】
前記プリントサーバは、前記ユーザインタフェースマネージャからのセットアップメッセージに応答して前記ユーザインタフェースマネージャにメッセージを伝送することを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記ユーザインタフェースマネージャは、前記メッセージを解釈し、前記メッセージの内容に基づき、前記メッセージの受信に応答する実行可能コンポーネントを読み込むことを特徴とする請求項６に記載のシステム。
【請求項１４】
前記実行可能コンポーネントは、ディスプレイモニタにメッセージを表示するのに前記実行可能コンポーネントによって使用されるリソースにアクセスすることを特徴とする請求項１３に記載のシステム。
【請求項１５】
１つまたは複数のクライアントを送信元とするデータをプリンタで印刷する方法であって、
ａ）プリントサーバと通信するクライアントと通信する印刷スプーラインタフェースをアプリケーションに提供するステップであって、前記印刷スプーラインタフェースは、前記アプリケーションが、前記アプリケーションによって開始されるプロシージャコールを介して、前記プリントサーバ上でサービスルーチンを呼び出すことができるようにするステップと、
ｂ）前記プリントサーバと通信する１つまたは複数のプリンタのステータスに関連する、前記プリントサーバからの言語中立のメッセージに、前記メッセージを解釈し、前記１つまたは複数のプリンタの前記ステータスに関連する、前記メッセージについてユーザが理解することができる表示を提示することによって応答するステップと
を含むことを特徴とする方法。
【請求項１６】
前記クライアントユーザインタフェースコンポーネントは、グローバル一意識別子をユーザが理解できるメッセージに変換することを特徴とする請求項１５に記載の方法。
【請求項１７】
前記印刷スプーラは、クライアントコンピュータ上に存在し、前記印刷スプーラは、前記サーバに伝送するために前記アプリケーションプログラムからデータを受信し、前記印刷スプーラは、前記アプリケーションプログラムから印刷要求を受信すると、前記ユーザインタフェースマネージャにメッセージを通信することを特徴とする請求項１５に記載の方法。
【請求項１８】
前記ユーザインタフェースコンポーネントは、前記スプーラから前記サーバへの前記印刷要求に関連する非同期通信チャネルを前記プリントサーバに対してセットアップすることを特徴とする請求項１５に記載の方法。
【請求項１９】
前記プリントサーバは、前記プリントサーバによって制御される印刷ジョブのステータスに基づき、前記非同期通知チャネルを介して言語中立のメッセージを送信することを特徴とする請求項１５に記載の方法。
【請求項２０】
前記ユーザインタフェースマネージャは、前記プリントサーバから前記言語中立のメッセージを受信すると、実行可能コンポーネントにアクセスし、前記実行可能コンポーネントは、メッセージを表示するのに前記実行可能コンポーネントによって使用されるリソースにアクセスすることを特徴とする請求項１９に記載の方法。
【請求項２１】
サーバステータスに基づいてクライアントコンピュータにおいて１つまたは複数のメッセージを表示する方法であって、
ａ）サーバと通信するクライアントコンピュータと通信するインタフェースをアプリケーションに提供するステップであって、前記インタフェースは、前記アプリケーションが、前記アプリケーションによって開始される非同期リモートプロシージャコールを介して、前記プリントサーバ上でサービスルーチンを呼び出すことができるようにするステップと、
ｂ）前記サーバのステータスに関連する、前記サーバからの言語中立のメッセージに、前記言語中立のメッセージの受信に応答して、前記言語中立のメッセージを解釈し、前記サーバの前記ステータスに関連する、前記ユーザが理解することができる表示を提示することによって応答するステップとを含むことを特徴とする方法。
【請求項２２】
前記クライアントコンピュータ上で実行されるクライアントユーザインタフェースマネージャは、グローバル一意識別子をユーザが理解できるメッセージに変換することを特徴とする請求項２１に記載の方法。
【請求項２３】
前記クライアントは、前記クライアントコンピュータ上に存在する印刷スプーラを含み、前記印刷スプーラは、前記サーバに伝送するために前記アプリケーションからデータを受信し、前記印刷スプーラは、前記アプリケーションプログラムから印刷要求を受信すると、インタフェースマネージャが、前記サーバによって前記クライアントコンピュータに伝送されるステータス情報を監視するようにさせるメッセージを該インタフェースマネージャに通信することを特徴とする請求項２１に記載の方法。
【請求項２４】
前記ユーザインタフェースコンポーネントは、前記印刷スプーラから前記サーバへの前記印刷要求に関連する非同期通知チャネルを前記プリントサーバに対してセットアップすることを特徴とする請求項２３に記載の方法。
【請求項２５】
クライアント／サーバコンピューティングにおいて使用するためのコンピュータ可読媒体であって、
ａ）サーバと通信するクライアントと通信するインタフェースをアプリケーションに提供するステップであって、
前記インタフェースは、前記アプリケーションが、前記アプリケーションによって開始される非同期リモートプロシージャコールを介して、前記サーバ上でサービスルーチンを呼び出すことができるようにするための命令と、
ｂ）前記サーバのステータスに関連する、前記サーバからの言語中立のメッセージに、前記言語中立のメッセージの受信に応答して、前記サーバの前記ステータスに関連する、ユーザが理解できる表示を提示するための命令とを含むことを特徴とする媒体。
【請求項２６】
前記クライアント上で実行されるクライアントユーザインタフェースマネージャは、前記サーバと双方向通信チャネルを確立することを特徴とする請求項２５に記載のコンピュータ可読媒体。
【請求項２７】
前記サーバは、前記サーバのステータスに基づいてグローバル一意識別子を送信し、前記クライアントは、前記グローバル一意識別子をユーザが理解できるメッセージに変換することを特徴とする請求項２５に記載のコンピュータ可読媒体。
【請求項２８】
前記クライアントは、クライアントコンピュータ上に存在する印刷スプーラを含み、前記印刷スプーラは、前記サーバに伝送するために前記アプリケーションからデータを受信し、前記印刷スプーラは、前記アプリケーションプログラムから印刷要求を受信すると、プリンタのステータスに関連する、前記サーバによって伝送されるステータス情報を監視するようにメッセージを前記ユーザインタフェースマネージャに通信することを特徴とする請求項２５に記載のコンピュータ可読媒体。
【請求項２９】
前記ユーザインタフェースコンポーネントは、前記印刷スプーラから前記サーバへの前記印刷要求とは独立に、前記プリントサーバに対する非同期通知チャネルをセットアップすることを特徴とする請求項２８に記載のコンピュータ可読媒体。
【請求項３０】
前記ユーザインタフェースマネージャは、前記プリントサーバから前記言語中立のメッセージを受信すると、実行可能コンポーネントにアクセスし、前記実行可能コンポーネントは、メッセージを表示するのに前記実行可能コンポーネントによって使用されるリソースにアクセスすることを特徴とする請求項２５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期通信チャネルを使用するクライアント／サーバで使用するためのユーザインタフェース要素を表示するためのスキームに関する。
【背景技術】
【０００２】
大規模な企業組織においては、ネットワークを使用してコンピュータ間で情報を通信するのが通例である。コンピュータに加えて、複写機、ファックス装置、プリンタ、スキャナ、およびその他の周辺装置が、ネットワークに直接に接続される、あるいはネットワークを介して通信するワークステーションまたはサーバに結合される。
【０００３】
単一のプリントサーバが、プリントサーバに直接に接続された、またはネットワークを介して接続された多くのプリンタへデータを伝送することにより、より多くのユーザにサービスを提供し、それらのユーザのためにドキュメントの印刷を制御することが通例である。プリントサーバを使用するか、またはスタンドアロンのコンピュータ／プリンタの組み合わせを使用するかに関わらず、プリンタ動作を制御する従来技術の作業は、スプーラからデータを取り込み、そのデータをプリンタが認識するフォーマットに変換する実行可能なソフトウェアであるプリントドライバによって実行される。
【０００４】
【非特許文献１】Solomon et al., "Inside Microsoft Windows（登録商標）2000", Microsoft Press, copyright 2000（第１３章）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術は、ネットワークに結合されたデバイス群のステータスおよび／または動作（ｆｕｎｃｔｉｏｎｉｎｇ）に関するユーザメッセージがユーザに提示される仕方が限られている。例えば、ワークステーションのユーザが１つの言語、例えば、日本語に精通している一方で、サーバは、英語バージョンのオペレーティングシステムを実行していることがしばしばである。プリントサーバを送信元とする印刷ジョブメッセージが、英語で伝えられ、ワークステーションユーザに役立たない可能性がある。
【課題を解決するための手段】
【０００６】
典型的なシステムは、クライアントを含む。クライアントは、そのクライアント上で実行されるアプリケーションプログラムとインタフェースをとる。クライアントと通信するサーバが、クライアントからの要求時に機能を実行する。やはりクライアント上で実行されるユーザインタフェースマネージャが、サーバとの非同期通信チャネルをセットアップする。１つの典型的な実施形態では、このチャネルは、双方向の非同期通信チャネルである。ユーザインタフェースマネージャは、サーバから送信されたユーザインタフェースメッセージに応答して、柔軟性のあるカスタムの形（custom manner）で情報をユーザに表示する。
【０００７】
典型的なシステムは、プリンタ上でデータを印刷する際に使用される。クライアントは、印刷能力を有するアプリケーションプログラムとインタフェースをとる。クライアントと通信するプリントサーバが、クライアントによってプリントサーバに通信されたデータの印刷を制御する。ユーザインタフェースマネージャが、プリントサーバとクライアントの間の非同期通信チャネルでプリントサーバと通信する。ユーザインタフェースマネージャは、プリントサーバから送信されたユーザインタフェースメッセージに応答して、柔軟性のあるカスタムの形で情報をユーザに表示する。
【０００８】
典型的なシステムは、ユーザディスプレイを含む。サーバによってクライアントユーザインタフェースマネージャに送信されるメッセージは、ユーザインタフェースマネージャによって解釈され、ユーザディスプレイ上でユーザに提示するために別の表現に変換される言語中立のメッセージである。印刷環境で、すなわち、クライアントの印刷スプーラおよびサーバのプリントサーバが印刷を実行する環境で使用される場合、言語中立のメッセージは、クライアントにおいてユーザインタフェースマネージャにより、プリンタに関連するメッセージまたは表示に変換される。
【０００９】
一実施形態では、システムは、クライアントコンピュータ上に存在する印刷スプーラを含み、印刷スプーラは、第２のサーバコンピュータ上に存在するプリントサーバに伝送するために、アプリケーションプログラムからデータを受信する。また、印刷スプーラは、アプリケーションプログラムから印刷要求を受信すると、ユーザインタフェースマネージャにもメッセージを通信する。スプーラからのこのメッセージの受信により、ユーザインタフェースマネージャは、スプーラからの印刷要求に関連するデータをサーバに転送するために、プリントサーバとの非同期通知チャネルをセットアップする。プリントサーバが、プリントサーバによって管理される印刷ジョブのステータスを伝える言語中立のメッセージを送信するのは、この通知チャネルを介してである。
【００１０】
本発明の以上、およびその他の目的、利点、および特徴を、添付の図面に関連して説明するシステムの以下の典型的な実施形態においてより完全に説明する。
【発明を実施するための最良の形態】
【００１１】
図２は、ネットワーク通信を介してサーバコンピュータ１２と通信する複数のワークステーション１１を有するネットワーク１０を示す。サーバは、印刷要求に応じるために、ネットワークを介していくつかのプリンタ１３と通信する。サーバコンピュータ１２は、パラレルインタフェースによってプリンタ１３ａに結合されたインタフェースも含む。ネットワークを介する通信は、ワークステーション１１およびサーバコンピュータ１２にインストールされた慣用のイーサネット（登録商標）スイッチおよびイーサネット（登録商標）カードを使用する有線と、周知の無線通信標準を実施する無線ルータを使用する無線の両方である。このため、例えば、ラップトップコンピュータ１４は、ネットワークハードウェアに物理的に接続されることなしに、サーバコンピュータ１２と通信することができる。ワークステーション群（またはラップトップ）は、いくつかのワークステーションの１つで実行されるアプリケーションプログラムの１つからの要求で印刷を行うように、サーバコンピュータ１２上に実装された印刷スプーラと通信および指示することができる。例えば、ワードプロセッシングアプリケーションが、ワークステーションオペレーティングシステムによってそのアプリケーションに公開されたＷｉｎ３２アプリケーションプログラムインタフェースを介して、自らの要求を通信する。Ｗｉｎ３２が、Ｗｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステムに関する現行で好ましいアプリケーションインタフェースであるが、要求をサーバコンピュータ１２に送信する他の手段も、本発明によって企図されている。
【００１２】
本発明の典型的な実施形態は、プロセス間通信のクライアント／サーバモデルを使用する。より詳細には、１つの典型的な実施形態では、ワークステーション１１上のクライアントプロセスが、ネットワーク１０を介して１つまたは複数のプリントサーバ１２と通信して、従来技術の印刷システムよりも着実なやり方で印刷を行う。図４は、ジョブを印刷スプーラにおいてキューに入れるリモートプロシージャコール（本明細書では、ＲＰＣ）ベースのプロセスを実施する、サーバとクライアントの対話の概略図である。図４では、クライアント１５が、ネットワーク（図２のネットワークのような）を介してサーバ１６と対話するものとする。一実施例では、クライアントは、ワークステーション上で実行されるソフトウェアであり、サーバソフトウェアは、サーバコンピュータ１２上で実行されるソフトウェアである。
【００１３】
ＲＰＣプロセス間通信の利用により、ワークステーション１１の１つなどのローカルマシン上で実行されているアプリケーションが、図２のサーバコンピュータ１２などのリモートマシン上のプロセスを呼び出すことができるようになる。呼び出し側のワードプロセッシングプログラムは、印刷プロセスが、サーバ上のコード実行を呼び出すことに関心を払わない。ローカルアプリケーションには、プロセスは、完全にローカルマシン上で実行されているように見える。
【００１４】
図１は、例えば、ネットワーク１０上のワークステーション１１またはサーバコンピュータ１２の構成を表すことが可能な、典型的なデータ処理システムを示す。システムは、１つまたは複数の処理装置２１、システムメモリ２２、ならびにシステムメモリから処理装置２１までを含む様々なシステムコンポーネントを結合するシステムバス２３を含む慣用のコンピュータ２０の形態で、汎用コンピューティングデバイスを含む。システムバス２３は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含め、いくつかのタイプのバス構造のいずれであることも可能である。
【００１５】
システムメモリは、読み取り専用メモリ（ＲＯＭ）２４およびランダムアクセスメモリ（ＲＡＭ）２５を含む、始動中などに、コンピュータ２０内部の要素間で情報を転送するのを助けるルーチンを含む基本入出力システム２６（ＢＩＯＳ）が、ＲＯＭ２４の中に格納される。
【００１６】
コンピュータ２０は、図示していないハードディスクの読み取りまたは書き込みを行うためのハードディスクドライブ２７、リムーバブルな磁気ディスク２９に対して読み取りまたは書き込みを行うための磁気ディスクドライブ、およびＣＤ−ＲＯＭまたは他の光媒体などのリムーバブルな光ディスク３１に対して読み取りまたは書き込みを行うための光ディスクドライブ３０をさらに含む。ハードディスクドライブ２７、磁気ディスクドライブ２８、および光ディスクドライブ３０は、それぞれ、ハードディスクドライブインタフェース３２、磁気ディスクドライブインタフェース３３、および光ドライブインタフェース３４でシステムバス２３に接続される。ドライブ群、および関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性ストレージをコンピュータ２０に提供する。本明細書で説明する典型的な環境は、ハードディスク、リムーバブルな磁気ディスク２９、およびリムーバブルな光ディスク３１を使用するが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）などの、データを格納することができ、コンピュータがアクセスすることができる他のタイプのコンピュータ可読媒体も典型的な動作環境において使用できることが、当業者には認識されよう。
【００１７】
オペレーティングシステム３５、１つまたは複数のアプリケーションプログラム３６、その他のプログラムモジュール群３７、およびプログラムデータ３８を含め、いくつかのプログラムモジュール群が、ハードディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４、またはＲＡＭ２５に格納されることが可能である。ユーザは、キーボード４０やポインティングデバイス４２などの入力デバイス群を介して、コマンドおよび情報をコンピュータ２０に入力することができる。その他の入力デバイス群（図示せず）には、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システムバスに結合されたシリアルポートインタフェース４６を介して処理装置２１に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインタフェース群で接続してもよい。モニタ４７、または他のタイプのディスプレイデバイスも、ビデオアダプタ４８などのインタフェースを介してシステムバス２３に接続される。モニタに加え、パーソナルコンピュータ（ＰＣ）は、通常、スピーカやプリンタなどの他の周辺出力デバイス群（図示しない）も含む。
【００１８】
図１に示したコンピュータ２０は、通常、リモートコンピュータ４９のような、１つまたは複数のコンピュータに対する論理接続を使用するネットワーク化された環境で動作する。リモートコンピュータ４９は、別のＰＣ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードであることが可能であり、通常、コンピュータ２０に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶装置５０だけを図１に例示している。図１に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）５１およびワイドエリアネットワーク（ＷＡＮ）５２が含まれる。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的である。
【００１９】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ２０は、ネットワークインタフェースまたはネットワークアダプタ５３を介してローカルネットワーク５１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ２０は、通常、インターネットなどのＷＡＮ５２を介して通信を確立するためのモデム５４、または他の手段を含む。内部にあることも、外部にあることも可能なモデム５４は、シリアルポートインタフェース４６を介してシステムバス２３に接続される。ネットワーク化された環境では、コンピュータ２０に関連して示したプログラムモジュール群、またはプログラムモジュール群の諸部分は、リモートメモリ記憶装置の中に格納することができる。図示したネットワーク接続は、典型的であり、コンピュータ間で通信リンクを確立する他の手段も使用できることが認められよう。
【００２０】
Ｗｉｎｄｏｗｓ（登録商標）２０００ブランド（およびより新しいバージョン）のオペレーティングシステム環境では、ＲＰＣアプリケーションを書くのに、オペレーティングシステムプログラマは、いずれのプロシージャがローカルで実行され、いずれのプロシージャがリモートで実行されるかを決める。アプリケーションは、実行されると、ローカルプロシージャ群とともに、ローカルマシン上に存在しないプロシージャ群も呼び出す。ローカルマシン上に存在しないプロシージャ群の呼び出しを扱うため、アプリケーションは、各リモートプロシージャにつき１つずつスタブ（ｓｔｕｂ）プロシージャを含むローカルのスタティックリンクライブラリ（ｓｔａｔｉｃ−ｌｉｎｋ  ｌｉｂｒａｒｙ）またはＤＬＬに、リンクされる。スタブプロシージャは、リモートプロシージャと同一の名前を有し、リモートプロシージャと同一のインタフェースを使用するが、要求された動作を実行する代わりに、スタブは、転送されたパラメータを取り込み、ネットワークを介した伝送のためにそれらのパラメータをマーシャリングする（ｍａｒｓｈａｌ）。パラメータをマーシャリングするプロセスとは、リファレンスを解決することや、ポインタが参照するデータ構造のコピーを選択することなど、ネットワークリンクに合った特定の形でパラメータを並べ、パッケージ化することを意味する。ＲＰＣ通信のこのプロセスを、ＲＰＣプロセスを描いた図４に示す。
【００２１】
図３、図５Ａ、および図５Ｂは、本発明の典型的な実施形態を実施するための装置および流れ図を示す。より具体的には、以上の図は、ネットワーク１０を介してプリントサーバ１２に対してワークステーション群１１によって行われた印刷要求と、（図２のネットワークのような）ネットワークハードウェアを共有する、双方向の非同期通信チャネルの初期設定および利用に関する詳細を提示する。
【００２２】
図３は、（図２のプリンタ１３の１つのような）プリンタ上でデータを印刷するためのコンポーネント群を有するクライアント１１０を示し、印刷能力を有するワードプロセッシングプログラム１１２などのアプリケーションプログラムとインタフェースをとる印刷スプーラ１１２を含む。周知のとおり、ワードプロセッシングプログラム１１２用のユーザインタフェースは、プリントサーバコンピュータ１２に対して行われる印刷要求を介して利用可能なプリンタ群を含む、利用可能なプリンタ群の上で印刷要求を行うためのメニューを含む。プリントサーバコンピュータ１２上で実行されるサーバコンポーネント１２０（図４）は、印刷スプーラ１２２を使用する。印刷スプーラ１２２は、クライアント１１０によって前記プリントサーバコンピュータに通信されたデータの印刷を制御する、クライアント上の印刷スプーラ１１４と通信する。
【００２３】
また、クライアントは、非同期通信チャネル１３２を介してプリントサーバコンピュータ１２と通信するユーザインタフェースマネージャ１３０を含む。プリントサーバコンピュータ１２が、クライアントによって言語固有のメッセージに変換される言語中立のメッセージをクライアントに送信することができるのは、非同期通信チャネル１３２を介してである。ユーザインタフェースマネージャコンポーネント１３０は、情報をユーザに表示することにより、プリントサーバコンピュータから送信されたユーザインタフェースメッセージに応答する。
【００２４】
以上を１つのクライアント／サーバのシナリオの文脈に置くため、ワークステーション上で実行されるワードプロセッシングプログラムからの印刷要求に応じるワークステーション１１を考慮されたい。ユーザが、印刷コマンドをアクティブにし、ネットワーク１０を介してユーザのワークステーションに結合されたプリンタ１３において、用紙上で両面印刷出力を生じさせることを所望する。ワークステーションのユーザによって選択されたプリンタは片面印刷を行うことしかできないが、選択されたプリンタの限界を認識し、ユーザによって選択された特定のプリンタを使用してどのように両面印刷を実現するかについてユーザに知らせるのは、サーバコンピュータ１２の役割である。より詳細には、用紙の第２の面に１つおきのページを印刷するために、印刷ジョブプロセス中の適切な時点でプリンタ出力トレイから用紙を取り出し、裏返し、プリンタ入力トレイの中に戻さなければならない。この役割を達するのをさらに困難にすることとして、サーバのユーザインタフェースによって伝えられるメッセージの言語が、クライアントの言語とは異なる可能性があり、サーバからのメッセージをクライアントに表示するための適切な機構が存在しなければならない。
【００２５】
図５Ａおよび５Ｂの流れ図を参照すると、典型的な実施形態を実施するようにクライアント／サーバ通信を開始するプロセスは、ワークステーション１１が起動され、オペレーティングシステムのシェル１４０が開始された、または読み込まれた時点（１５０）で開始することが分かる。遅延の後（１５２）、オペレーティングシステムのシェルは、ユーザインタフェースマネージャ１３０を読み込み（１５４）、マネージャ１３０は、ワードプロセッシングプログラム１１２などのアプリケーションプログラムによって印刷要求が行われたという印刷スプーラ（やはり、オペレーティングシステムシェルの起動時に読み込まれる）からの通知を待つ。
【００２６】
オペレーティングシステムが起動され、ワードプロセッシングプログラムなどのアプリケーションプログラムが実行されるようになった後、ワードプロセッシングプログラムは、クライアントコンピュータ上に存在する印刷スプーラ１１４に通信される印刷要求を開始する（１６０）。印刷スプーラは、プリントサーバに伝送するためにアプリケーションプログラムからデータを受信する。一実施形態では、このデータは、クライアントとサーバの間のリモートプロシージャコール（ＲＰＣ）を介して伝送される。印刷スプーラのリモートプロシージャランタイムコンポーネントは、トランスポートプロトコルと合わせる（ｍａｔｅ）、またはインタフェースをとる汎用トランスポートプロバイダインタフェースを含む。プロバイダインタフェースは、印刷スプーラのＲＰＣ機構とトランスポートの間のシンレイヤ（ｔｈｉｎ  ｌａｙｅｒ）として作用し、ＲＰＣ動作をトランスポートによって提供される諸機能にマップする役割をする。印刷スプーラ１１４は、アプリケーションプログラムから印刷要求１６０を受信すると、ユーザインタフェースマネージャ１３０にもメッセージを通信する（１６４）。
【００２７】
印刷スプーラからのこのメッセージに応答して、ユーザインタフェースマネージャ１３０は、クライアント印刷スプーラからサーバ印刷スプーラへの印刷要求とは独立のプロセス間通信のため、プリントサーバへの非同期通知チャネル１３２をセットアップする（１７０）。現行で好ましい非同期通信チャネルは、ＴＣＰ／ＩＰトランスポートプロトコルを使用し、例えば、プリントサーバ１２であることが可能なサーバに対する非同期リモートプロシージャコールによって実施される。非同期ＲＰＣ通信に関するさらなる詳細は、Ｍｉｃｒｏｓｏｆｔ  Ｐｒｅｓｓによって刊行され、ソロモン他が著作権（２０００年）を有する「Ｉｎｓｉｄｅ  Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）２０００」という題名のテキスト（非特許文献１参照）の第１３章で見られる。このチャネルは、アプリケーションプログラム印刷要求の進行状況に関わる２つの印刷スプーラ間のＲＰＣ通信とは別個であり、異なる。一実施例として、この別個の異なるチャネルは、印刷要求の完了を円滑にするのに使用される。より具体的には、この別個の異なる通信チャネルを使用して、両面印刷を実現するのに、プリンタの出力トレイの中の用紙が取り出され、裏返された後、入力トレイに挿入されるべきであることを、ワークステーションにおけるユーザに指示することができる。このため、典型的な実施形態では、この双方向の非同期チャネルは、印刷スプーラの印刷要求のステータスに関して、クライアントインタフェースコンポーネント１３０に通知するのに使用される。クライアントインタフェースコンポーネント１３０の通常の応答は、ワークステーション１１におけるモニタ４７上で１つまたは複数のメッセージを表示することである。
【００２８】
非同期双方向通信チャネルが確立されると、ユーザインタフェースコンポーネントは、プリントサーバコンピュータ１２上で実行される印刷スプーラ１２２からユーザインタフェースコンポーネントに向けられた要求をリッスンする（ｌｉｓｔｅｎ  ｆｏｒ）。それらのメッセージは、印刷スプーラを介して通信するプリントサーバドライバによって作成された言語中立のメッセージである。典型的な実施形態では、メッセージは、以下に実施例を説明するＸＭＬドキュメントとして作成される。
【００２９】
図５Ｄは、プリントサーバコンピュータの印刷スプーラ１２２によって実行される諸機能の概略流れ図である。印刷スプーラ１２２は、プリンタ１３からステータスメッセージを受信し、非同期通知メッセージをクライアントに返送し（１７４）、クライアントとの単方向通信または双方向通信にプリンタを登録することにより、印刷要求を特定のプリンタに関連付け（１７６）、ユーザインタフェースコンポーネント１３０宛でないメッセージをクライアントに返送する（１７８）。
【００３０】
印刷スプーラ１２２は、既存のチャネル上で活動がない（ｉｎａｃｔｉｖｉｔｙ）ことにより、既存の非同期チャネルを閉じることができる。これは、サーバコンピュータの再起動に応答して行われるか（１８０）、あるいは、指定された時間（一実施形態では、３０秒）通信が行われておらず、現在、保留中の対話（ｃｏｎｖｅｒｓａｔｉｏｎ）が存在しないと判定される（１８２）と、行われる。つまり、サーバは、ユーザが要求したジョブが存在するかどうかを３０秒毎に確認し、クライアントからの保留中のジョブが存在しない場合、対応する通信チャネルをシャットダウンする。
【００３１】
ユーザインタフェースコンポーネント１３０は、印刷スプーラのコンピュータからのステータスメッセージに応答する際に柔軟性を有する。メッセージは、メッセージを解釈するのに使用される既定の実行可能ＵＩコンポーネント（ＤＬＬ）、またはカスタム実行可能コンポーネント（やはりＤＬＬ）を読み込むようにユーザインタフェースコンポーネントに指示する命令を含む。以上のコンポーネントのそれぞれが、図３の符号１７２で示される。メッセージは、プリントサーバにおいて言語中立であるが、ワークステーション１１におけるモニタ４７上で特定言語のユーザ可読メッセージ１７５を作成するのにユーザインタフェースマネージャ１３０が必要とする情報を含む。実行可能コンポーネント１７２は、ワークステーションのモニタ４７上でメッセージ１７５として表示するためのグラフィカルユーザインタフェースコンポーネント群を含むリソースファイル１７３にアクセスする。リソースファイル１７３は、テキスト文字列（「両面印刷のために出力から用紙を取り出し、入力トレイに再挿入してください」と述べるＡＳＣＩＩテキストなどの）、ダイアログボックス、バルーン（ｂａｌｏｏｎ）ポップアップ、またはユーザインタフェース設計分野の当業者によく知られた他の任意のリソースを含む。ユーザインタフェースコンポーネント１３０によってアクセスされる実行可能コンポーネントが、既定のコンポーネントである場合、その既定のコンポーネントが、既定のリソースファイルにアクセスする。典型的な実施形態の長所の１つが、既定以外のコンポーネントおよびリソースを作成する能力である。
【００３２】
リソースファイルも、ＸＭＬメッセージもともに、単なるメッセージ文字列、またはメッセージ文字列ＩＤを超えるものを含むことが可能である。ＸＭＬは、単純なメッセージから、極めて複雑なダイアログ、ウィザード、ピクチャなど、プリンタベンダが設計することができる任意のユーザインタフェースを読み込むようにリソースファイルに指示する、リソースファイルによって解釈されるＩＤも含むことが可能である。ＸＭＬは、相当な量のバイナリデータも含むことが可能であり、このデータもやはり、文字どおり、プリンタベンダが所望するあらゆるものから成ることが可能である。
【００３３】
（非同期チャネルインタフェース群）
図６は、Ｗｉｎｄｏｗｓ（登録商標）ブランドのオペレーティングシステムの．ＮＥＴ（登録商標）フレームワーク上に構築されたインタフェースのスキーマを示す。図６は、プリントサーバ１２からの非同期通知のためにユーザインタフェースマネージャ１３０に公開される関数を実施するオブジェクト群を示す。
【００３４】
ユーザインタフェースマネージャ１３０は、ユーザがアプリケーション１１２を使用して印刷を始める初回に、公開されているクラス「ＰｒｉｎｔｉｎｇＡｓｙｎｃＵＩＭａｎａｇｅｒ」のインスタンス化によって作成される。通知は、オペレーティングシステムシェルに送られ、オペレーティングシステムが、ＰｒｉｎｔｉｎｇＡｓｙｎｃＵＩＭａｎａｇｅｒクラスのインスタンスが作成されているかどうかを確認する。作成されていない場合、そのインスタンスが作成され、現在のオペレーティングシステムのセッションがシャットダウンされるまで、アクティブに保たれる。ジョブが開始すると、ＩＡｓｙｎｃＣｈａｎｎｅｌＣａｌｌｂａｃｋインタフェースが登録され、非同期チャネルをリッスンし始める。このリッスンは、チャネル名を指定する文字列をパラメータとして受け入れる関数ＲｅｇｉｓｔｅｒＡｓｙｎｃＮｏｔｉｆｉｃａｔｉｏｎを実行することによって開始される。この名前は、サーバ名と、サーバと通信するプリンタのプリンタ名の組み合わせから派生させられる。（この登録は、そのプリンタが既に登録済みではないことを前提とする。）ユーザインタフェースマネージャ１３０は、アクティブのままであり、ユーザがコンピュータからログオフするとアンロード（ｕｎｌｏａｄ）される。
【００３５】
単方向非同期チャネルと双方向非同期チャネルはともに、特定のプリンタ上でユーザジョブの数が０になると、削除のマークが付けられる。非同期チャネルを削除するのに３０秒タイマが使用される。（削除のマークが付けられてから実際の削除までの平均時間は、およそ４５秒である。）非同期チャネルの削除中、典型的な実施形態は、ＵｎＲｅｇｉｓｔｅｒＡｓｙｎｃＮｏｔｉｆｉｃａｔｉｏｎ関数を呼び出す。
【００３６】
チャネル上にメッセージが出現すると、ＰｒｉｎｔｉｎｇＡｓｙｎｃＵＩＣｈａｎｎｅｌオブジェクトのインスタンスが作成される。この関数は、印刷スプーラ１１４によって提供されるＩＡｓｙｎｃＮｏｔｉｆｙＣｈａｎｎｅｌインタフェースのためのラッパー（ｗｒａｐｐｅｒ）を提供する。印刷スプーラ１１４は、バイナリデータを直接に集めるが、非同期ＵＩマネージャ１３０は、以下の典型的なＸＭＬドキュメントのようなドキュメント内に含まれるＸＭＬデータを扱う。未加工のデータからＸＭＬへの変換が必要とされ、ＰｒｉｎｔｉｎｇＡｓｙｎｃＵＩＣｈａｎｎｅｌがその解釈を行う。このオブジェクトは、双方向チャネルのケースでは、ＸＭＬ応答メッセージでプリントサーバに応答することも行い、チャネルが閉じることをサーバ１２に知らせるクローズ（ｃｌｏｓｅ）関数を有する。
【００３７】
ＵＩマネージャは、コンポーネントおよびリソースを読み込み、読み込まれたコンポーネントのコンポーネントリスト１７２をチャネル−ＵＩコンポーネントマッピングテーブル２２０の中に保持する。ＵＩコンポーネント１７２がシャットダウンされると、そのＰｒｉｔｉｎｇＡｓｙｎｃＵＩＣｈａｎｎｅｌオブジェクトは、ＵＩマネージャが、チャネル−ＵＩコンポーネントマッピングテーブル２２０の中のエントリをクリーンアップすることができるようにする。ＩＡｓｙｎｃＮｏｔｉｆｙＣｈａｎｎｅｌインタフェースを介して通知が来ると、ＵＩマネージャ１３０は、ＩＡｓｙｎｃＮｏｔｉｆｙＣｈａｎｎｅｌをラップ（ｗｒａｐ）する、テーブル２２０の中に格納された何らかのＰｒｉｎｔｉｎｇＡｓｙｎｃＵＩＣｈａｎｎｅｌオブジェクトが存在するかどうかを判定する。
【００３８】
チャネル１３２を介して受信されたＸＭＬメッセージは、メッセージを解釈するためにいずれのコンポーネント１７２が読み込まれなければならないかを判定するのにＵＩマネージャ１３０が必要とする情報を有する。以下のインタフェース１は、メッセージが既定でないコンポーネントによって表示されるのを可能にするために、プリンタ製造業者が作成しなければならない公開のインタフェース定義である。
【００３９】
インタフェース１
【００４０】
【表１】
2005285115.tif 000003
【００４１】
リソーストランスレータ（ｔｒａｎｓｌａｔｏｒ）関数は、サーバから送信された文字列のリソース識別子に基づいて文字列を戻す関数であり、サーバからの言語中立のメッセージが、特定のアプリケーションまたは地理的地域に固有のコンポーネントによって変換され、表示されることを可能にすることに留意されたい。
【００４２】
メッセージを解釈し、適切なメッセージをユーザに表示するカスタムＤＬＬが読み込まれるようにする、マネージャ１３０によって受け取られるＸＭＬメッセージの例が、以下の実施例で見られる。
【００４３】
実施例
【００４４】
【表２】
2005285115.tif 000004
【００４５】
以上の実施例では、ＤＬＬ、およびＤＬＬによってアクセスされるリソースは、カスタムであり、ＭｙＵＩ１  ＤＬＬ指定子（ｄｅｓｉｇｎａｔｏｒ）およびＭｙＵＩ．ＭａｉｎＣｏｍｐｏｎｅｎｔリソース識別子を参照することによってアクセスされる。リソース内で、カスタムＵＩリファレンスは、カスタム表示要素を指す。カスタムＤＬＬまたはリソース識別子が全く参照されていない場合、リソースマネージャは、既定のＤＬＬおよびリソースファイルを使用する。
【００４６】
本発明をある程度、詳細に説明してきたが、本発明は、係属中の特許請求の範囲の趣旨または範囲に含まれる、開示した設計におけるすべての改変形態および変更形態を含むことを意図するものと理解されたい。
【図面の簡単な説明】
【００４７】
【図１】本発明の典型的な実施形態を実施するのに使用するコンピュータシステムを示す概略図である。
【図２】少なくとも１つのコンピュータが本発明に従って構築された印刷スプーラを実装するためのソフトウェアを含む、一緒にネットワーク化された複数のコンピュータを示す概略図である。
【図３】本発明の典型的な実施形態を実施するためのクライアントコンピュータ上で実行されるコンポーネント群の概略ブロック図である。
【図４】クライアントがサーバに印刷サービスを要求することができるようにするリモートプロシージャコール機構を示す概略図である。
【図５Ａ】クライアント／サーバ通信のための非同期チャネルを実施するための典型的なプロセスを示す流れ図である。
【図５Ｂ】クライアント／サーバ通信のための非同期チャネルを実施するための典型的なプロセスを示す流れ図である。
【図５Ｃ】クライアント／サーバ通信のための非同期チャネルを実施するための典型的なプロセスを示す流れ図である。
【図５Ｄ】クライアント／サーバ通信のための非同期チャネルを実施するための典型的なプロセスを示す流れ図である。
【図６】本発明の典型的な実施形態によるユーザインタフェースのコンポーネントを提供するのに使用するインタフェース定義を示す図である。
【符号の説明】
【００４８】
１１０  クライアント
１１２  ＷＰアプリケーション
１１４  印刷スプーラ
１２０  サーバ
１２２  印刷スプーラ
１３０  非同期ＵＩマネージャ
１４０  ＯＳシェル
１７３  リソース
１７５  メッセージ
【図１】
2005285115.tif 000005
【図２】
2005285115.tif 000006
【図３】
2005285115.tif 000007
【図４】
2005285115.tif 000008
【図５Ａ】
2005285115.tif 000009
【図５Ｂ】
2005285115.tif 000010
【図５Ｃ】
2005285115.tif 000011
【図５Ｄ】
2005285115.tif 000012
【図６】
2005285115.tif 000013
【外国語明細書】
2005285115000001.pdf