(57)【要約】【課題】  本発明は、複数のアドホック印刷装置に印刷可能な統合型プリンタドライバを提供する。【解決手段】  統合型プリンタドライバは、利用可能なアドホック印刷装置を発見し、それらアドホック印刷装置により現在サポートされている機能及びオプションを得る能力を有する。統合型プリンタドライバは、ユーザの選択した機能及びオプションセットに基づき特定のアドホック印刷装置を自動的に選択し、アドホック通信リンクが特定のアドホック印刷装置と確立される前に、ユーザが電子文書を印刷できるようにする。統合型プリンタドライバは、電子文書をレンダリングし、印刷ジョブを生成し、特定のアドホック印刷装置とのアドホック通信リンクが確立されるまで該印刷ジョブを保持する。アドホック通信リンクが確立された後に、統合型プリンタドライバは、特定のアドホック印刷装置が印刷ジョブを成功裏に処理できるか否かを決定し、処理できる場合、印刷ジョブをアドホック印刷装置へ送信させる。【選択図】  図１
2015046161.tif 000002
【特許請求の範囲】
【請求項１】
命令を格納する１又は複数の非一時的コンピュータ可読媒体であって、前記命令は、１又は複数のプロセッサにより処理されると、
アドホック無線通信リンクがモバイルクライアント装置と特定のアドホック印刷装置との間で確立される前に、前記モバイルクライアント装置において、
印刷ジョブを生成するステップと、
前記アドホック無線通信リンクが前記モバイルクライアント装置と前記特定のアドホック印刷装置との間で確立された後に、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合するか否かを決定するステップと、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合すると決定するのに応答して、
前記印刷ジョブを前記特定のアドホック印刷装置へ前記アドホック無線通信リンクを介して送信させるステップと、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合しないと決定するのに応答して、
前記モバイルクライアント装置において、前記印刷ジョブと前記特定のアドホック印刷装置との間の１又は複数の不適合を解決することにより、更新された印刷ジョブを生成するステップと、
前記モバイルクライアント装置において、前記更新された印刷ジョブを前記特定のアドホック印刷装置へ前記アドホック無線通信リンクを介して送信させるステップと、
を生じさせる、１又は複数の非一時的コンピュータ可読媒体。
【請求項２】
追加命令を更に格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記アドホック無線通信リンクのエラーが前記印刷ジョブを成功裏に処理することを妨げたことを検出するステップと、
前記モバイルクライアント装置において、前記アドホック無線通信リンクのエラーが前記印刷ジョブを成功裏に処理することを妨げたことを検出するのに応答して、前記特定のアドホック印刷装置と新しいアドホック無線通信リンクを確立させステップ、又は前記特定のアドホック印刷装置とは異なる別のアドホック印刷装置とアドホック無線通信リンクを確立させるステップ、のうちの１又は複数を生じさせるステップと、
を生じさせる、請求項１に記載の１又は複数の非一時的コンピュータ可読媒体。
【請求項３】
追加命令を更に格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記モバイルクライアント装置のユーザインタフェースにより、前記モバイルクライアント装置のユーザが新しいアドホック無線通信リンクを前記特定のアドホック印刷装置と確立する試みを要求し又はアドホック無線通信リンクを他のアドホック印刷装置と確立する試みを要求できる１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示するステップと、
を生じさせる、請求項２に記載の１又は複数の非一時的コンピュータ可読媒体。
【請求項４】
追加命令を更に格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、新しいアドホック無線通信リンクを前記特定のアドホック印刷装置と確立した後、且つ前記印刷ジョブを前記特定のアドホック印刷装置へ再送信させる前に、前記印刷ジョブの１又は複数の機能及びオプションが前記特定のアドホック印刷装置により現在サポートされているか否かを決定するステップと、
前記モバイルクライアント装置において、アドホック無線通信リンクを前記特定のアドホック印刷装置と異なる前記他のアドホック印刷装置と確立した後、且つ前記印刷ジョブを前記他のアドホック印刷装置へ送信させる前に、前記印刷ジョブの１又は複数の機能及びオプションが前記他のアドホック印刷装置により現在サポートされているか否を決定するステップと、
を生じさせる、請求項２に記載の１又は複数の非一時的コンピュータ可読媒体。
【請求項５】
追加命令を更に格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記印刷ジョブの１又は複数の機能及びオプションが前記特定のアドホック印刷装置により現在サポートされているか否を決定することにより、前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合するか否かを決定するステップと、
を生じさせる、請求項１に記載の１又は複数の非一時的コンピュータ可読媒体。
【請求項６】
追加命令を更に格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記特定のアドホック印刷装置により現在サポートされている機能及びオプションを示すデータを得るために、前記特定のアドホック印刷装置に問い合わせるステップと、
前記モバイルクライアント装置において、前記特定のアドホック印刷装置により現在サポートされている機能及びオプションを、前記印刷ジョブの１又は複数の機能及びオプションと比較するステップと、
を生じさせる、請求項５に記載の１又は複数の非一時的コンピュータ可読媒体。
【請求項７】
前記印刷ジョブと前記特定のアドホック印刷装置との間の１又は複数の不適合は、前記印刷ジョブを処理するために前記特定のアドホック印刷装置により現在サポートされていない１又は複数の機能及びオプションを指定する前記印刷ジョブに対応する１又は複数の印刷チケットにより引き起こされ、
前記１又は複数の非一時的コンピュータ可読媒体は、追加命令を更に格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置のユーザインタフェースにより、前記モバイルクライアント装置のユーザが前記印刷ジョブに対応する前記１又は複数の印刷チケットにより指定された１又は複数の機能及びオプションを変更できる１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示することにより、
前記印刷ジョブと前記特定のアドホック印刷装置との間の前記１又は複数の不適合を解決するステップ、を生じさせる、請求項１に記載の１又は複数の非一時的コンピュータ可読媒体。
【請求項８】
追加命令を更に格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置のユーザインタフェースにより、複数の機能及びオプションに対応する１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示するステップと、
前記モバイルクライアント装置の前記ユーザインタフェースにより、前記特定のアドホック印刷装置で前記印刷ジョブを処理するために１又は複数の特定の機能及びオプションのユーザ選択を受信するステップと、
前記モバイルクライアント装置において、前記特定のアドホック印刷装置が前記ユーザ選択により示された前記印刷ジョブを処理するための前記１又は複数の特定の機能及びオプションを現在サポートしているという決定に基づき、複数のアドホック印刷装置から前記特定のアドホック印刷装置を選択するステップと、
を生じさせる、請求項１に記載の１又は複数の非一時的コンピュータ可読媒体。
【請求項９】
１又は複数のプロセッサと、
命令を格納する１又は複数のメモリと、
を有し、前記命令は、前記１又は複数のプロセッサにより処理されると、
アドホック無線通信リンクがモバイルクライアント装置と特定のアドホック印刷装置との間で確立される前に、前記モバイルクライアント装置において、
印刷ジョブを生成するステップと、
前記アドホック無線通信リンクが前記モバイルクライアント装置と前記特定のアドホック印刷装置との間で確立された後に、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合するか否かを決定するステップと、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合すると決定するのに応答して、
前記印刷ジョブを前記特定のアドホック印刷装置へ前記アドホック無線通信リンクを介して送信させるステップと、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合しないと決定するのに応答して、
前記モバイルクライアント装置において、前記印刷ジョブと前記特定のアドホック印刷装置との間の１又は複数の不適合を解決することにより、更新された印刷ジョブを生成するステップと、
前記モバイルクライアント装置において、前記更新された印刷ジョブを前記特定のアドホック印刷装置へ前記アドホック無線通信リンクを介して送信させるステップと、
を生じさせる、装置。
【請求項１０】
前記１又は複数のメモリは追加命令を格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記アドホック無線通信リンクのエラーが前記印刷ジョブを成功裏に処理することを妨げたことを検出するステップと、
前記モバイルクライアント装置において、前記アドホック無線通信リンクのエラーが前記印刷ジョブを成功裏に処理することを妨げたことを検出するのに応答して、前記特定のアドホック印刷装置と新しいアドホック無線通信リンクを確立させステップ、又は前記特定のアドホック印刷装置とは異なる別のアドホック印刷装置とアドホック無線通信リンクを確立させるステップ、のうちの１又は複数を生じさせるステップと、
を生じさせる、請求項９に記載の装置。
【請求項１１】
前記１又は複数のメモリは追加命令を格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記モバイルクライアント装置のユーザインタフェースにより、前記モバイルクライアント装置のユーザが新しいアドホック無線通信リンクを前記特定のアドホック印刷装置と確立する試みを要求し又はアドホック無線通信リンクを他のアドホック無線通信装置と確立する試みを要求できる１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示するステップと、
を生じさせる、請求項１０に記載の装置。
【請求項１２】
前記１又は複数のメモリは追加命令を格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、新しいアドホック無線通信リンクを前記特定のアドホック印刷装置と確立した後、且つ前記印刷ジョブを前記特定のアドホック印刷装置へ再送信させる前に、前記印刷ジョブの１又は複数機能及びオプションが前記特定のアドホック印刷装置により現在サポートされているか否かを決定するステップと、
前記モバイルクライアント装置において、アドホック無線通信リンクを前記特定のアドホック印刷装置と異なる前記他のアドホック印刷装置と確立した後、且つ前記印刷ジョブを前記他のアドホック印刷装置へ送信させる前に、前記印刷ジョブの１又は複数の機能及びオプションが前記他のアドホック印刷装置により現在サポートされているか否を決定するステップと、
を生じさせる、請求項１０に記載の装置。
【請求項１３】
前記１又は複数のメモリは追加命令を格納し、前記追加命令は、前記９又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記印刷ジョブの１又は複数の機能及びオプションが前記特定のアドホック印刷装置により現在サポートされているか否を決定することにより、前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合するか否かを決定するステップと、
を生じさせる、請求項９に記載の装置。
【請求項１４】
前記１又は複数のメモリは追加命令を格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置において、前記特定のアドホック印刷装置により現在サポートされている機能及びオプションを示すデータを得るために、前記特定のアドホック印刷装置に問い合わせるステップと、
前記モバイルクライアント装置において、前記特定のアドホック印刷装置により現在サポートされている機能及びオプションを、前記印刷ジョブの１又は複数の機能及びオプションと比較するステップと、
を生じさせる、請求項１３に記載の装置。
【請求項１５】
前記印刷ジョブと前記特定のアドホック印刷装置との間の１又は複数の不適合は、前記印刷ジョブを処理するために前記特定のアドホック印刷装置により現在サポートされていない１又は複数の機能及びオプションを指定する前記印刷ジョブに対応する１又は複数の印刷チケットにより引き起こされ、
前記１又は複数のメモリは追加命令を格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置のユーザインタフェースにより、前記モバイルクライアント装置のユーザが前記印刷ジョブに対応する前記１又は複数の印刷チケットにより指定された１又は複数の機能及びオプションを変更できる１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示することにより、
前記印刷ジョブと前記特定のアドホック印刷装置との間の前記１又は複数の不適合を解決するステップ、を生じさせる、請求項９に記載の装置。
【請求項１６】
前記１又は複数のメモリは追加命令を格納し、前記追加命令は、前記１又は複数のプロセッサにより処理されると、
前記モバイルクライアント装置のユーザインタフェースにより、複数の機能及びオプションに対応する１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示するステップと、
前記モバイルクライアント装置の前記ユーザインタフェースにより、前記特定のアドホック印刷装置で前記印刷ジョブを処理するために１又は複数の特定の機能及びオプションのユーザ選択を受信するステップと、
前記モバイルクライアント装置において、前記特定のアドホック印刷装置が前記ユーザ選択により示された前記印刷ジョブを処理するための前記１又は複数の特定の機能及びオプションを現在サポートしているという決定に基づき、複数のアドホック印刷装置から前記特定のアドホック印刷装置を選択するステップと、
を生じさせる、請求項９に記載の装置。
【請求項１７】
アドホック無線通信リンクがモバイルクライアント装置と特定のアドホック印刷装置との間で確立される前に、前記モバイルクライアント装置において、
印刷ジョブを生成するステップと、
前記アドホック無線通信リンクが前記モバイルクライアント装置と前記特定のアドホック印刷装置との間で確立された後に、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合するか否かを決定するステップと、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合すると決定するのに応答して、
前記印刷ジョブを前記特定のアドホック印刷装置へ前記アドホック無線通信リンクを介して送信させるステップと、
前記モバイルクライアント装置において、前記印刷ジョブが前記特定のアドホック印刷装置に適合しないと決定するのに応答して、
前記モバイルクライアント装置において、前記印刷ジョブと前記特定のアドホック印刷装置との間の１又は複数の不適合を解決することにより、更新された印刷ジョブを生成するステップと、
前記モバイルクライアント装置において、前記更新された印刷ジョブを前記特定のアドホック印刷装置へ前記アドホック無線通信リンクを介して送信させるステップと、
を有する、コンピュータが実施する方法。
【請求項１８】
前記モバイルクライアント装置において、前記アドホック無線通信リンクのエラーが前記印刷ジョブを成功裏に処理することを妨げたことを検出するステップと、
前記モバイルクライアント装置において、前記アドホック無線通信リンクのエラーが前記印刷ジョブを成功裏に処理することを妨げたことを検出するのに応答して、前記特定のアドホック印刷装置と新しいアドホック無線通信リンクを確立させステップ、又は前記特定のアドホック印刷装置とは異なる別のアドホック印刷装置とアドホック無線通信リンクを確立させるステップ、のうちの１又は複数を生じさせるステップと、
を有する、請求項１７に記載のコンピュータが実施する方法。
【請求項１９】
前記印刷ジョブと前記特定のアドホック印刷装置との間の１又は複数の不適合は、前記印刷ジョブを処理するために前記特定のアドホック印刷装置により現在サポートされていない１又は複数の機能及びオプションを指定する前記印刷ジョブに対応する１又は複数の印刷チケットにより引き起こされ、
前記コンピュータが実施する方法は、
前記モバイルクライアント装置のユーザインタフェースにより、前記モバイルクライアント装置のユーザが前記印刷ジョブに対応する前記１又は複数の印刷チケットにより指定された１又は複数の機能及びオプションを変更できる１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示することにより、
前記印刷ジョブと前記特定のアドホック印刷装置との間の前記１又は複数の不適合を解決するステップ、を更に有する、請求項１７に記載のコンピュータが実施する方法。
【請求項２０】
前記モバイルクライアント装置のユーザインタフェースにより、複数の機能及びオプションに対応する１又は複数のグラフィカルユーザーインターフェースオブジェクトを表示するステップと、
前記モバイルクライアント装置の前記ユーザインタフェースにより、前記特定のアドホック印刷装置で前記印刷ジョブを処理するために１又は複数の特定の機能及びオプションのユーザ選択を受信するステップと、
前記モバイルクライアント装置において、前記特定のアドホック印刷装置が前記ユーザ選択により示された前記印刷ジョブを処理するための前記１又は複数の特定の機能及びオプションを現在サポートしているという決定に基づき、複数のアドホック印刷装置から前記特定のアドホック印刷装置を選択するステップと、
を更に有する、請求項１７に記載のコンピュータが実施する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドホック印刷装置での印刷に関し、より詳細には、複数のアドホック印刷装置に印刷可能な統合型プリンタドライバを提供するためのアプローチに関連する。
【背景技術】
【０００２】
この章に記載されるアプローチは、達成しようとされた可能性のあるアプローチであるが、必ずしも従前に考案され又は達成されたアプローチではない。したがって、特に示さない限り、この章に記載された如何なるアプローチも、それらが本章に含まれたという理由のみにより従来技術と見なされるべきではない。
【０００３】
デバイスドライバ又はソフトウェアドライバは、高レベルのコンピュータプログラムがハードウェア装置と相互作用することを可能にするコンピュータプログラムである。印刷の状況では、プリンタドライバは、アプリケーション（例えば、Microsoft  Word、Adobe  Acrobat、SmartDraw、等）が印刷装置の技術的詳細を知る必要を有しないで、該アプリケーションが該印刷装置で印刷することを可能にする。プリンタドライバは、アプリケーションからのアプリケーションデータを、特定の印刷装置に固有の形式に変換する。
【０００４】
現在のプリンタドライバは、プリンタ固有であり、ユーザが印刷したい各印刷装置のために各クライアント装置に個別のプリンタドライバを手動でインストールする必要がある。ユーザは、正確なプリンタのモデルを知り、その正確なモデルのプリンタドライバを製造者からダウンロードしなければならない。さらに、大部分のプリンタドライバは、動的機能サポートを有しないので、印刷装置に変更が行われた場合には更新されなければならない。幾つかのユニバーサルプリンタドライバは、限られた機能セットを定め、ＳＮＭＰ装置クエリを通じて幾つかの機能をオン又はオフにすることにより、限定的な動的機能サポートを提供することで出口を見出している。ユーザが彼らのコンピューティング装置（例えば、ラップトップ）を移動させ、コンピューティング装置が異なるネットワークに存在し、ユーザがその異なるネットワークにある印刷装置への印刷ができるようにしたいと望む場合、ユーザは、彼らのコンピューティング装置に更に多くのプリンタドライバを追加しなければならない。多数のプリンタドライバをインストールした結果として、ユーザはインストールしたプリンタドライバの各々から全ての必要なプリンタ情報を読み出さなければならない。したがって、単純な印刷ジョブを生成することが、直ぐに複雑なジョブになってしまい、結果として好ましくないユーザ経験をもたらす。さらに、現在のプリンタドライバアーキテクチャでは、各プリンタドライバは、それ自体のユーザインタフェース（ＵＩ）を表示する。ユーザが異なる印刷装置を選択する場合、オペレーティングシステムは、その印刷装置のために異なるＵＩで新しいプリンタドライバを開かなければならない。
【０００５】
幾つかの現在のプリンタドライバは、ドライバが複数のモデルをサポートするという意味で「ユニバーサル」ドライバと考えられる。しかしながら、１つのユニバーサルドライバは、所与の時間に１つの装置しかサポートできない。複数の印刷装置が１つのネットワークに存在するとき、ユニバーサルドライバの複数のインスタンスが、クライアント装置のオペレーティングシステムにインストールされなければならない。
【０００６】
現在のプリンタドライバアーキテクチャの結果として、ユーザが（穴開けのような）プリンタ機能を使用したいと望み、ユーザがどの印刷装置がそのプリンタ機能をサポートするのかを知らない場合、ユーザは、どの印刷装置がそのプリンタ機能が可能かを決定するために、各プリンタドライバのＵＩを開かなければならない。
【０００７】
幾つかの印刷装置は、本願明細書では「アドホック印刷装置」と呼ばれ、アドホック無線通信をサポートする。アドホック印刷装置は、多くの状況で非常に便利である。例えば、アドホック印刷装置は、ショッピングモールやコーヒーショップのような場所にインストールされ、ユーザが、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、等のようなモバイルコンピューティング装置から「出先で」印刷できるようにし得る。アドホック印刷装置へ印刷するために、ユーザは、通常、モバイルクライアント装置を特定のアドホック印刷装置の非常に近くに移動させ、ユーザのモバイルクライアント装置と特定のアドホック印刷装置との間のアドホック通信リンクを確立する。アドホック通信リンクが確立された後、ユーザは、特定のモデルのためのプリンタドライバをインストールし、次に、ユーザは、特定のアドホック印刷装置へ電子文書を送信及び印刷する。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
アドホック印刷装置により提供される利便性にもかからわず、それらを使用するのには幾つかの欠点が存在する。第一に、非アドホック印刷装置と共に上述した問題の全ては、アドホック印刷装置にも当てはまる。さらに、アドホック通信リンクは、印刷が完了するまで維持されなければならない。モバイルクライアント装置が、印刷ジョブが完了する前に、アドホック印刷装置の範囲外に移動させられた場合、その印刷ジョブはエラーと共に異常終了する。これが起きると、ユーザは、印刷ジョブ全体をアドホック印刷装置へ再提出するか、別のアドホック印刷装置を見付けなければならない。別の問題は、アドホック通信リンクが一時的であり、アドホック通信リンクが終了した後に、ユーザが別の電子文書を同じアドホック印刷装置へ印刷したい場合、ユーザは、先ずそのアドホック印刷装置への新しいアドホック通信リンクを確立しなければならない。
【課題を解決するための手段】
【０００９】
モバイルクライアント装置からアドホック印刷装置へ印刷するためのアプローチによると、アドホック無線通信リンクがモバイルクライアント装置と特定のアドホック印刷装置との間で確立される前に、モバイルクライアント装置において、印刷ジョブが生成される。アドホック無線通信リンクがモバイルクライアント装置と特定のアドホック印刷装置との間で確立された後に、モバイルクライアント装置において、印刷ジョブが特定のアドホック印刷装置に適合するか否かが決定される。モバイルクライアント装置において、印刷ジョブが特定のアドホック印刷装置に適合すると決定するのに応答して、印刷ジョブは、アドホック通信リンクを介して特定のアドホック印刷装置へ送信される。モバイルクライアント装置において、印刷ジョブが特定のアドホック印刷装置に適合しないと決定するのに応答して、モバイルクライアント装置において、印刷ジョブと特定のアドホック印刷装置との間の１又は複数の不適合を解決することにより、更新された印刷ジョブが生成される。更新された印刷ジョブは、アドホック通信リンクを介して特定のアドホック印刷装置へ送信される。
【図面の簡単な説明】
【００１０】
【図１】例示的なアドホック印刷装置機能及びオプション選択システムを示すブロック図である。
【図２】印刷ジョブを生成する例示的な処理を示すフロー図である。
【図３】統合型プリンタドライバ及びプリントサーバの例示的なコンポーネント、並びにアドホック印刷装置に対する該コンポーネントの相互作用を示すブロック図である。
【図４】複数のアドホック印刷装置からプリントサーバへの印刷装置情報のデータフローを示すブロック図である。
【図５Ａ】新しいアドホック印刷装置を追加する処理の概略を示すブロック図である。
【図５Ｂ】アドホック印刷装置をプリントサーバに追加する処理を示すブロック図である。
【図６】ユーザーインターフェースデータを生成する処理を示すシーケンス図である。
【図７】モバイルクライアント装置からアドホック印刷装置に印刷する処理の概略を示すブロック図である。
【図８】モバイルクライアント装置からアドホック印刷装置に印刷する処理を示すシーケンス図である。
【図９】モバイルクライアント装置から印刷装置に印刷する処理を示すフロー図である。
【図１０】プリントサーバに追加されている新しい印刷装置に問い合わせる処理を示すフロー図及びブロック図である。
【図１１】新しい印刷装置に問い合わせた後のＧＰＤＤ（generic  printer  description  data）のデータフローを示すブロック図である。
【図１２】統合型機能選択プリンタドライバ内のＧＰＤＤの複数のバージョンを示すブロック図である。
【図１３】サーバ、ドライバ及びユーザーインターフェースの各々のための例示的なＧＰＤＤを示すブロック図である。
【図１４】ユーザがフィルタを変更する処理を示すフロー図である。
【図１５】ユーザがプリンタドライバのユーザーインターフェース（ＵＩ）で機能／オプションを変更する処理を示すフロー図である。
【図１６】統合型ユーザーインターフェース（ＵＩ）から生成されるジョブチケットを示すブロック図である。
【図１７】プリンタ選択プレファレンス（preference）メニューを示すブロック図である。
【図１８】ユーザにジョブチケットに対する１又は複数の機能及びオプションを選択させる例示的なユーザーインターフェースを示すブロック図である。
【図１９】モバイルクライアント装置とアドホック印刷装置との間のアドホック通信リンクを確立する処理を示すフロー図である。
【図２０】本発明の一実施形態が実施され得るコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【００１１】
以下の説明では、説明を目的として、本発明の実施形態の完全な理解を提供するために、多くの詳細事項が説明される。しかしながら、本発明はこれらの詳細事項なしに実施できることが明らかである。他の例では、良く知られた構造及び装置が、本発明を不必要に不明瞭にしないために、ブロック図で示される。
＜Ｉ．  概略＞
＜ＩＩ．  アドホック印刷機能及びオプション選択システム＞
＜ＩＩＩ．  モバイルクライアント装置からアドホック印刷装置への印刷の概略＞
＜ＩＶ．  例示的なプリンタドライバコンポーネント＞
＜Ｖ．  印刷装置情報データフロー＞
＜ＶＩ．  新しいアドホック印刷装置の発見及び追加＞
＜ＶＩＩＩ．  ユーザーインターフェースデータの生成＞
＜ＶＩＩＩ．  モバイルクライアント装置からアドホック印刷装置への印刷＞
＜ＩＸ．  新しい印刷装置への問い合わせ＞
＜Ｘ．  ＧＰＤＤ（Generic  Printer  Description  Data）のデータフロー＞
＜ＸＩ．  ＧＰＤＤの複数のバージョン＞
＜ＸＩＩ．  例示的なＧＰＤＤ＞
＜ＸＩＩＩ．  選択フィルタのプレファレンスの変更＞
＜ＸＩＶ．  ＵＩ機能／オプションの変更＞
＜ＸＶ．  ジョブチケット生成＞
＜ＸＶＩ．  プリンタ選択プレファレンスメニュー＞
＜ＸＶＩＩ．  例示的なプリンタドライバユーザーインターフェース＞
＜ＸＶＩＩＩ．  アドホック通信リンクの確立＞
＜ＸＩＸ．  実装メカニズム＞
＜Ｉ．  概略＞
モバイルクライアント装置からアドホック印刷装置へ印刷するためのアプローチが提供される。統合型プリンタドライバは、複数のアドホック印刷装置に印刷するための単一の結合されたユーザーインターフェースを提供される。統合型プリンタドライバは、利用可能なアドホック印刷装置を発見し、それらアドホック印刷装置により現在サポートされている機能及びオプションを得る能力を有する。統合型プリンタドライバは、ユーザに電子文書を印刷するための機能及びオプションを指定させる、統一された機能指向型ユーザーインターフェースをアドホック印刷装置に提供する。統合型プリンタドライバは、ユーザの選択した機能及びオプションセットに基づき、特定のアドホック印刷装置を自動的に選択する。統合型プリンタドライバは、アドホック通信リンクが特定のアドホック印刷装置と確立される前に、ユーザーが電子文書を印刷できるようにする。統合型プリンタドライバは、電子文書をレンダリングし、印刷ジョブを生成し、特定のアドホック印刷装置とのアドホック通信リンクが確立されるまで該印刷ジョブを保持する。アドホック通信リンクが確立された後、統合型プリンタドライバは、特定のアドホック印刷装置が印刷ジョブの処理に成功する能力があるか否かを決定する。一実施形態によると、これは、例えば対応する印刷チケットを介して印刷ジョブのために指定された機能及びオプションがアドホック印刷装置により現在サポートされているか否かを決定することを含む。サポートされている場合、統合型プリンタドライバは、印刷ジョブをアドホック印刷装置へ送信させる。サポートされていない場合、統合型プリンタドライバは、例えば印刷ジョブのために指定された１又は複数の機能及びオプションを変更することにより、ユーザに対立を解決させるユーザーインターフェースを提供する。例えばアドホック通信リンク上の又はアドホック印刷装置におけるエラーのために、印刷ジョブがアドホック印刷装置により成功裏に処理できない場合、統合型プリンタドライバは、ユーザが同じアドホック印刷装置に印刷ジョブを再提出し、又は異なるアドホック印刷装置に印刷ジョブをリダイレクト、つまり提出できるようにする。このアプローチは、モバイルクライアント装置からアドホック印刷装置へ印刷する柔軟且つユーザフレンドリな経験を提供する。
【００１２】
＜ＩＩ．  アドホック印刷機能及びオプション選択システム＞
図１は、一実施形態による例示的なアドホック印刷装置機能及びオプション選択システム１００を示すブロック図である。システム１００は、アドホック印刷装置１０８、１１０、１１２、１１４（１０８−１１４）及びプリントサーバ１１６に１又は複数の通信リンク１１８を介して通信可能に結合されるモバイル装置クライアント１０２、１０４、１０６（１０２−１０６）を有する。通信リンク１１８は、本願明細書に記載の特定の実装及びアプローチに依存して変化し得る種々の通信リンクを有しても良く、特定の種類の通信リンクに限定されない。例示的な通信リンクは、限定ではなく、１又は複数の有線又は無線ネットワークを有する。図１に示した要素は、要素間の任意の数の直接通信リンクを介し通信しても良い。図１に示した例では、アドホック印刷装置１０８−１１４とのアドホック通信リンクが確立される。本願明細書に記載の、モバイルクライアント装置からアドホック印刷装置へ印刷するためのアプローチは、特定の実装及びアプローチに依存して変化し得る種々のアドホック通信リンクを用いても良く、特定の種類のアドホック通信リンクに限定されない。図１に示した例では、アドホック印刷装置１０８とアドホック有線接続が確立され、アドホック印刷装置１１０とＷｉＦｉ  Ｄｉｒｅｃｔ接続１２２が確立され、アドホック印刷装置１１２と近距離通信接続１２４が確立され、アドホック印刷装置１１４とＷｉＦｉ接続１２６が確立される。これらのアドホック通信リンクは例として提供され、本願明細書に記載のアプローチは、これらの例示的なアドホック通信リンクに限定されず、他の種類のアドホック通信リンクに適用可能である。
【００１３】
モバイルクライアント装置１０２−１０６は、本願明細書に記載の特定の実装及びアプローチに依存して変化し得る任意の種類のモバイルクライアント装置であっても良く、特定の種類のモバイル無線装置に限定されない。例示的なモバイル無線装置は、限定ではなく、パーソナルコンピュータ、ワークステーション、ラップトップコンピュータ、タブレットコンピューティング装置、パーソナルデジタルアシスタント、スマートフォン、及び他の電話装置を含む。モバイルクライアント装置１０２−１０６は、それぞれ、以下に更に詳述するようなアドホック印刷装置への印刷を提供するよう構成される統合型プリンタドライバ１２８、１３０、１３２を含む。本願明細書では実施形態は３つのモバイル印刷装置（１０２−１０６）の状況で記載されるが、本願明細書に記載のアプローチは、任意の数及び種類のモバイル印刷装置に適用可能である。
【００１４】
アドホック印刷装置１０８−１１４は、印刷機能を有する任意の種類の装置であっても良い。アドホック印刷装置１０８−１１４は、プリンタ自体に限定されず、他の機能を含む印刷装置を含んでも良い。アドホック印刷装置１０８−１１４の例は、限定ではなく、プリンタ、コピー機、及び複合機（multi-function  peripheral：ＭＦＰ）を含む。
【００１５】
プリントサーバ１１６は、アドホック印刷装置１０８−１１４から印刷装置能力データを得るネットワークサービスである。プリントサーバ１１６は、単なる説明目的で別個の要素として図１に示される。プリントサーバ１１６は、サーバのようなスタンドアロン型コンピューティング要素に、又はモバイルクライアント装置１０２−１０６に実装されても良い。プリントサーバ１１６の機能は、専用コンピュータに格納された又は１若しくは複数の非一時的媒体から汎用コンピュータのメモリに読み込まれて実行されるプログラムロジックを用いて実施されても良い。印刷装置能力データは、機能及びオプションを指定するデータ、つまりアドホック印刷装置１０８−１１４により現在サポートされている各機能のための許容値である。例示的な機能は、限定ではなく、用紙トレイ、両面印刷、ステープル、穴開け、等を有する。各機能は、１又は複数のオプション、つまり値を有する。幾つかの機能は、２つのオプションのみを有しても良い。例えば、両面印刷は、「既定である」又は「既定ではない」２つのオプションを有する。他の機能、例えば用紙サイズは、多くのオプション、例えば「Ａ４」、「ｌｅｇａｌ」、「８１／２ｘ１１」等を有しても良い。
【００１６】
実施形態は、アドホック印刷装置１０８−１１４から印刷装置能力データを得るプリントサーバ１１６の特定の技術に限定されない。例えば、プリントサーバ１１６は、ＳＮＭＰ又はＷＳＤ技術を用いて、アドホック印刷装置１０８−１１４から印刷装置能力データを得ても良い。ネットワーク上のＷＳＤ技術の近年の発展は、（例えば、ＳＮＭＰに対して）より高度な装置管理の機会を提供する。このような発展は、ネットワーク装置に、該ネットワーク装置とネットワークサーバのような別のネットワーク装置との間の接続を確立している間に、自身の完全な（例えば印刷）能力を報告させる。プリントサーバ１１６は、例えば装置発見技術により、アドホック印刷装置１０８−１１４を自身が自動的に発見しても良い。代替で、プリントサーバ１１６は、管理者により、１又は複数のアドホック印刷装置１０８−１１４を知らされても良い。検出すると、プリントサーバ１１６は、（ローカル又はリモートの）検出したアドホック印刷装置１０８−１１４に、印刷機能及びオプション並びにアドホック印刷装置１０８−１１４によりサポートされる他の能力を含むがこれらに限定されない、アドホック印刷装置１０８−１１４に関する情報について問い合わせる。
【００１７】
印刷装置能力データに基づき、プリントサーバ１１６は、統合型プリンタドライバ１２８−１３２を生成させ、モバイルクライアント装置１０２−１０６に提供させる。追加で又は代替で、プリントサーバ１１６は、プリントサーバ１１６がアドホック印刷装置１０８−１１４から装置能力データを受信したとき、印刷装置能力データを、統合型プリンタドライバ１２８−１３２を（既に）実行しているモバイルクライアント装置１０２−１０６へ送信させる。この状況では、統合型プリンタドライバ１２８−１３２は、新しい印刷装置能力データを含むよう更新される。
【００１８】
プリントサーバ１１６は、情報データベースを構築し、統合型プリンタドライバ１２８−１３２のために種々のデータ構造を生成する。このようなデータ構造は、統合型プリンタドライバ１２８−１３２が１又は複数のモバイルクライアント装置１０２−１０６のうちの１つのユーザに統合型ＵＩを表示するとき、統合型プリンタドライバ１２８−１３２のＵＩコンポーネントによりアクセスされても良い。
【００１９】
統合型プリンタドライバ１２８−１３２がモバイルクライアント装置１０２−１０６により受信されそれにインストールされた後、統合型プリンタドライバ１２８−１３２は、複数のアドホック印刷装置（例えば、アドホック印刷装置１０８−１１４）からの機能を含む統合型ＵＩを表示する。ＵＩ上の幾つかの機能は、ユーザが予め選択した機能セット、及びアドホック印刷装置が選択された機能セットをサポートできるか否かに基づき、自動的に有効又は無効にされる。ユーザの選択した機能セットに基づき、統合型プリンタドライバ１２８−１３２は、どのアドホック印刷装置１０８−１１４が印刷のために用いられるかを決定し、宛先印刷ジョブチケットに機能セットを保存する。統合型プリンタドライバ１２８−１３２のレンダリングコンポーネントは、印刷ジョブを印刷チケット内で指定されたアドホック印刷装置（例えば、アドホック印刷装置１０８−１１４）へ送信させる。
【００２０】
＜ＩＩＩ．  モバイルクライアント装置からアドホック印刷装置への印刷の概略＞
図２は、一実施形態による、印刷ジョブを生成する例示的な処理２００を示すフロー図である。ステップ２０２で、アドホック印刷装置とアドホック通信リンクが確立される。例えば、アドホック通信リンクは、モバイルクライアント装置１０２とアドホック印刷装置１０８−１１４のうちの任意のものとの間に確立されても良い。これは、例えば、範囲内で移動するユーザのモバイルクライアント装置１０２、及びモバイルクライアント装置１０２とアドホック印刷装置１０８−１１４とのペアリングを含み得る。ステップ２０４で、印刷装置能力データは、アドホック通信リンクが確立されたアドホック印刷装置１０８−１１４から得られる。これは、例えば、アドホック印刷装置１０８−１１４により現在サポートされている機能及びオプションを指定する印刷装置能力データを得るためにアドホック印刷装置１０８−１１４に問い合わせる、統合型プリンタドライバ１２８及び／又はプリントサーバ１１６を含んでも良い。プリントサーバ１１６及び／又はモバイルクライアント装置１０２−１０６により維持されるデータベースは、更に詳細に後述するように、更新される。
【００２１】
ステップ２０６で、ユーザは、モバイルクライアント装置１０２から電子文書の印刷を開始し、統合型プリンタドライバ１２８は印刷機能及びオプションのユーザーインターフェースを表示する。ステップ２０８で、ユーザは、電子文書を印刷するために用いられるべき印刷機能及びオプションを選択する。ステップ２１０で、統合型プリンタドライバ１２８は、電子文書を印刷するために特定のアドホック印刷装置を選択し、ユーザは選択されたアドホック印刷装置を確認する。ステップ２１２で、選択されたアドホック印刷装置が接続されるまで、つまり選択されたアドホック印刷装置とアドホック通信リンクが確立されるまで、印刷ジョブが保持され、つまりレンダリングされない。
【００２２】
選択されたアドホック印刷装置とアドホック通信リンクが確立されると、ステップ２１４で、選択された印刷装置によりサポートされている現在の機能及びオプションが得られ、印刷ジョブチケットが検証される。これは、例えば、統合型プリンタドライバ１２８及び／又はプリントサーバ１１６が、選択されたアドホック印刷装置により現在サポートされている機能及びオプションを指定する印刷装置能力を得るために、選択されたアドホック印刷装置に問い合わせること、及びこれらの機能及びオプションを印刷ジョブチケットにより指定された機能及びオプションと比較することを含んでも良い。
【００２３】
ステップ２１６で、印刷ジョブチケットにより指定された機能及びオプションと、選択されたアドホック印刷装置により現在サポートされている機能及びオプションとの間の１又は複数の対立又は矛盾が解決される。これは、例えば、統合型プリンタドライバ１２８が、ユーザーインターフェースに、対立又は矛盾を識別しユーザがその対立を解決するために印刷ジョブのために指定された１又は複数の機能及びオプションを変更できるようにするデータを表示することを含んでも良い。例えば、選択されたアドホック印刷装置の機能及びオプションが最初に得られたとき、選択されたアドホック印刷装置はカラー印刷をサポートしていると仮定する。さらに、ユーザがカラー印刷を用いて電子文書を印刷することを要求し、選択された印刷装置がもはやカラー印刷をサポートしないと変更されたと仮定する。ステップ２１４及び２１６は、例えば、ユーザが電子文書のために白黒印刷を選択することにより、又はユーザが別のアドホック印刷装置を選択することにより、この対立の検出及び解決を提供する。ステップ２１８で、印刷ジョブが生成され、例えばレンダリングされ、選択された印刷装置へ送信される。
【００２４】
＜ＩＶ．  例示的なプリンタドライバコンポーネント＞
図３は、統合型プリンタドライバ１２８及びプリントサーバ１１６の例示的なコンポーネント、並びにそれらコンポーネントのアドホック印刷装置３０２−３０６に対する相互作用を示すブロック図である。プリントサーバ１１６は、アドホック印刷装置３０２−３０６の各々について１つの装置情報データベース３１６−３２０を有する。したがって、装置情報データベース３１６はアドホック印刷装置３０２のアドホック印刷装置能力データを格納し、装置情報データベース３１８はアドホック印刷装置３０４のアドホック印刷装置能力データを格納し、装置情報データベース３２０はアドホック印刷装置３０６のアドホック印刷装置能力データを格納する。装置情報データベース３１６−３２０は、単に説明目的で図３に別個に図示され、装置情報データベース３１６−３２０内の情報は、特定の実装に依存して、１又は複数のコンピューティング装置にある単一の情報データベース内に格納されても良い。
【００２５】
プリントサーバ１１６は、図３に示したように、ＷｉＦｉ、ＮＦＣ又はＷｉＦｉ  Ｄｉｒｅｃｔ通信リンクのようなアドホック通信リンクを介してアドホック印刷装置３０２−３０６と通信する。プリントサーバ１１６は、アドホック印刷装置３０２−３０６から、アドホック印刷装置３０２−３０６により現在サポートされている機能及びオプションを示すアドホック印刷装置能力データを読み出す。アドホック印刷装置能力データは、特定の実装に依存して変化し得る種々の技術を用いて読み出されても良い。例示的な技術は、限定ではなく、Web  Services  Discovery及びＳＮＭＰクエリを含む。統合型プリンタドライバ１２８は、統合型ＵＩコンポーネント３０８、ドライバ更新コンポーネント３１０、レンダリングコンポーネント３１２ａ及びアドホック印刷装置マネジャ３１４を有する。統合型ＵＩコンポーネント３０８は、グラフィカルユーザーインターフェース（ＧＵＩ）を生成し、該ＧＵＩに、統合型プリンタドライバ１２８がインストールされるクライアント装置、例えばモバイルクライアント装置１０２−１０６のユーザーインターフェースを表示させる。ドライバ更新コンポーネント３１０は、アドホック印刷装置３０２−３０６のうちの１又は複数についてのアドホック印刷装置能力データをプリントサーバ１１６から得るよう構成される。レンダリングコンポーネント３１２は、機能選択（ユーザが選択したか、既定か、又はそれら両者の組合せか）を受信し、印刷すべきアドホック印刷装置及び電子文書を選択し、１又は複数の文書及び機能選択を指定する印刷ジョブを生成する。レンダリングコンポーネント３１２は、印刷ジョブをアドホック印刷装置マネジャ３１４に渡す。
【００２６】
アドホック印刷装置マネジャ３１４は、アドホック印刷装置能力データについて、アドホック印刷装置３０２−３０６に問い合わせるよう構成される。アドホック印刷装置マネジャ３１４は、印刷ジョブを適切なアドホック印刷装置へ送信させるよう構成される。アドホック印刷装置マネジャ３１４は、印刷ジョブを適切なアドホック印刷装置へ送信させるために、１又は複数の通信プロトコルを実装しても良い。例えば、統合型プリンタドライバ１２８は、第１の印刷ジョブをアドホック印刷装置３０２へウェブサービスデバイス（ＷＳＤ）ポートを介して送信させても良く、統合型プリンタドライバ１２８は、第２の印刷ジョブをアドホック印刷装置３０４へＴＣＰ／ＩＰポートを介して送信させても良い。
【００２７】
＜ｖ．  印刷装置情報データフロー＞
図４は、一実施形態による、複数のアドホック印刷装置４１０Ａ−Ｄからプリントサーバ４２０への印刷装置情報のデータフローを示すブロック図である。各アドホック印刷装置４１０Ａ−Ｄは、印刷情報（ｉｎｆｏ）セットをプリントサーバ４２０に提供する。例えば、印刷装置４１０Ａ−Ｄは、それぞれ参照符号４１２Ａ−Ｄにより識別されるプリンタ情報セット１−４を、プリントサーバ４２０に提供する。アドホック印刷装置４１０Ａ−Ｄは、ＵＳＢ（又はUniversal  Serial  Bus）、ＷＳＤ、無線ＴＣＰ、有線ＴＣＰ又はインターネットのような種々の通信方法を用いてプリントサーバ４２０と通信しても良い。図４は４個のアドホック印刷装置４１０Ａ−Ｄを示すが、実施形態は任意の数のアドホック印刷装置に適用可能である。
【００２８】
プリントサーバ４２０はプリンタ情報セット４１２Ａ−Ｄを受信し、一実施形態では１又は複数のフィルタ基準をプリンタ情報セット４１２Ａ−Ｄに適用する。１又は複数のフィルタ基準は、どのアドホック印刷装置が、プリントサーバ４２０に接続されるモバイルクライアント装置により使用されること（又は見えること）を許可されないかを識別するために用いられても良い。本実施形態では、プリントサーバ４２０は、１又は複数のフィルタ基準をアドホック印刷装置（例えば４１０Ａ）の１又は複数の属性と比較する。この比較は、プリンタ情報セット（例えば４１２Ａ）に反映される。例示的なフィルタ基準は、アドホック印刷装置が特定のセキュリティポリシ又は任意のセキュリティをサポートするか否か、アドホック印刷装置が特定のページ記述言語（page  description  language：ＰＤＬ）又は特定のファームウェアバージョンを有する任意の装置をサポートするか否か、を含む。追加又は代替で、１又は複数のフィルタ基準は、プリントサーバ４２０に接続されるモバイルクライアント装置により使用できるアドホック印刷装置のリスト（例えば、「ホワイトリスト」）、又はプリントサーバ４２０に接続されるモバイルクライアント装置により使用できないアドホック印刷装置のリスト（例えば、「ブラックリスト」）を有する。１又は複数のフィルタ基準は、会社の管理者又はローカルネットワークを所有する及び／又は管理する事業体により認可された管理者により設定されても良い。
【００２９】
アドホック印刷装置がフィルタ段階の後に「フィルタで除去」されない場合、プリントサーバ４２０は、そのアドホック印刷装置のプリンタ情報セットをアドホック印刷機能データベース４２２に格納する。そこに格納されたデータは、サーバＧＰＤＤ（server  generic  printer  description  data）と称される。サーバＧＰＤＤは、モバイルクライアント装置が企業ドメインネットワークに接続されるときにはサーバにあり、モバイルクライアント装置が企業ドメインネットワークから切断されるときにはモバイルクライアント装置にあり、そのモバイルクライアント装置の全てのユーザに利用可能な、（接続されるか接続されないかに関わらず）全てのアドホック印刷装置についての情報を定める。
【００３０】
一実施形態では、フィルタ段階の後に「フィルタで除去」されたアドホック印刷装置のプリンタ情報セットは、サーバＧＰＤＤとは別個に格納される。このような記憶装置は、サーバＧＰＤＤに格納する同じ記憶装置に、又は異なる記憶装置に存在しても良い。このようなアドホックプリンタ情報セットは、例えば１又は複数のフィルタ基準が後に例えばユーザ入力を通じて変更され又は更新される場合、維持されても良い。このようなシナリオでは、「排除された」プリンタ情報セットは、更新されたフィルタ基準に基づき再び評価されても良い。このような再評価は、１又は複数のフィルタ基準の変更に基づきトリガされても良い。次に、排除されたプリンタ情報セットのうちの１又は複数は、フィルタ段階を通過し、最後にサーバＧＰＤＤの一部として格納されても良い。
【００３１】
一実施形態では、サーバＧＰＤＤは、１又は複数の追加フィルタ基準に基づき更にフィルタリングされても良い。このような追加基準は、上述のフィルタ基準を定めた管理者と同じ又は異なっても良いドライバ管理者により設定されても良い。このような追加フィルタ基準の例は、前述の基準、及び、特定のユーザが使用を許可されるアドホック印刷装置の所定のリストのような複数の方法で決定され得る、特定のユーザが特定のアドホック印刷装置の使用を許可されているか否かを含む。この追加フィルタ基準により「排除され」ないアドホック印刷装置のアドホックプリンタ情報セットは、「ドライバＧＰＤＤ」と称される。ドライバＧＰＤＤ４２４は、（接続されているか否かに関わらず）特定のユーザに利用可能な全てのアドホック印刷装置に関する情報を定める。したがって、プリントサーバ４２０に通信可能に結合される（又はそれに登録される）各モバイルクライアント装置は、異なるドライバＧＰＤＤを受信しても良い。例えば、サーバＧＰＤＤは、アドホック印刷装置４１０Ａ−Ｃのみに関しアドホック印刷装置４１０Ｄには関係しない情報を有しても良い。以後、１又は複数のモバイルクライアント装置のドライバＧＰＤＤ４２４は、アドホック印刷装置４１０Ａ−Ｂのみに関する情報を有し、一方、別のモバイルクライアント装置のドライバＧＰＤＤ４２４は、アドホック印刷装置４１０Ａ及び４１０Ｃのみに関する情報を有しても良い。
【００３２】
特定のユーザのドライバＧＰＤＤ４２４は、（プリントサーバ４２０又は別のエンティティにより生成されるかに関わらず）該特定のユーザのモバイルクライアント装置にインストールされる統合型プリンタドライバの一部になる。
【００３３】
一実施形態では、ドライバＧＰＤＤ４２４は、関連するユーザにより定められる１又は複数のフィルタ基準により更にフィルタリングされる。例えば、関連するユーザは、彼らがカラーをサポートし、特定の入力ビンサイズを有する、あるビルの特定のフロアにあるアドホック印刷装置に関する情報を単に見たいと望むことを示し得る。ユーザにより定められたフィルタ基準を満たす印刷情報セットは、「ＵＩ  ＧＰＤＤ」４２６の部分になる。特定のユーザのＵＩ  ＧＰＤＤ４２６は、該特定のユーザに利用可能な全ての接続されたアドホック印刷装置に関する情報を定める。ＵＩ  ＧＰＤＤ４２６は、特定のユーザが、該特定のユーザにより開始される印刷ジョブの候補アドホック印刷装置になるためにアドホック印刷装置のセットが有しなければならない特徴又は属性に関する選択を行うときに、リアルタイムに更新されても良い。
【００３４】
＜ＶＩ．  新しいアドホック印刷装置の発見及び追加＞
アドホック印刷装置は、発見され、プリントサーバがアドホック印刷装置のアドレス（例えば、ＩＰ又はＭＡＣ）、アドホック印刷装置がサポートする通信プロトコル、アドホック印刷装置の物理位置（例えば、ビルの番号、フロアレベル）、及びアドホック印刷装置がサポートする機能及びオプションのセットのような該アドホック印刷装置に関する詳細を得るとプリントサーバに追加される。
【００３５】
図５Ａは、一実施形態による、新しいアドホック印刷装置を追加する処理の概略を示すブロック図である。統合型プリンタドライバ５０２は、新しいアドホック印刷装置５０６、５０８、５１０を発見し追加するプリントサーバ５０４を有する。留意すべきことに、本例では、プリントサーバ５０４は統合型プリンタドライバ５０２の一部として示され記載されるが、実施形態はこの状況に限定されず、プリントサーバ５０４は統合型プリンタドライバ５０２と別個に実装されても良い。図５に示すように、ステップ１で、ユーザは、ローカルＷＳＤ接続を介してアドホック印刷装置５０６−５１０をペアにする、つまりそれらとアドホック通信リンクを確立する。本例では、ＷｉＦｉ接続がアドホック印刷装置５０６と確立され、ＮＦＣ接続がアドホック印刷装置５０８と確立され、ＷｉＦｉ  Ｄｉｒｅｃｔ接続がアドホック印刷装置５１０と確立される。
【００３６】
ステップ２で、プリントサーバ５０４は、前述のアドホック印刷装置５０６−５１０を発見しそれらに問い合わせる。これは、図５に示すようにローカルＷＳＤ接続の使用を含んでも良い。ステップ３で、プリントサーバ５０４は、アドホック印刷装置データベースを構築し、発見したアドホック印刷装置５０６−５１０を追加し、統合型プリントサーバ５０２を更新する。ステップ４で、統合型プリンタドライバ５０２のＵＩコンポーネント５１２は、プロファイリングされたアドホック印刷装置５０６−５１０、つまり、プリントサーバ５０４により発見された及びプリントサーバ５０４がアドホック印刷装置５０６−５１０によりサポートされている現在の機能及びオプションを指定するアドホック印刷装置能力データを得たアドホック印刷装置５０６−５１０、により現在サポートされている装置機能を表示する。
【００３７】
図５Ｂは、一実施形態による、接続されたアドホック印刷装置をプリントサーバに追加する処理５５０を示すフロー図である。アドホック印刷装置とアドホック通信リンクが確立されているとする。ステップ５５２で、ユーザは、プリントサーバに、新しいアドホック印刷装置に関する情報を提供する。例示的な情報は、限定ではなく、ネットワークIPアドレス、アドホック印刷装置のインターネットＩＰアドレス又はＭＡＣアドレスを含む。アドホック印刷装置は、プリントサーバのローカルか（つまり、同じネットワークに存在する）又はリモート（つまり、同じネットワークに存在しない）であっても良い。代替で、プリントサーバは、新しいアドホック印刷装置を自動的に発見しても良い。このような自動発見は、複数の方法で達成できる。例えば、新しいアドホック印刷装置とアドホック通信リンクが確立されると、新しいアドホック印刷装置は、ＨＥＬＬＯマルチキャストメッセージをネットワークに存在する装置に送信することにより、Web  Services  Discovery規格を実施する。プリントサーバは、ＨＥＬＬＯメッセージを受信し、プリントサーバを識別するメッセージで応答する。プリントサーバと新しいアドホック印刷装置の両方がWeb  Services  Metadata  Exchange規格を実施する場合、プリントサーバは、アドホック印刷装置能力データのような新しいアドホック印刷装置に関する特定の情報をどのように要求するかに関する情報を検索するために、メタデータ要求メッセージを新しいアドホック印刷装置へ送信する。
【００３８】
ステップ５５４で、プリントサーバは、新しいアドホック印刷装置に、アドホック印刷装置の能力データ、アドホック印刷装置がサポートする任意のセキュリティプロトコル、等のような特定の情報について問い合わせる。
【００３９】
ステップ５５６で、プリントサーバは、アドホック印刷装置から読み出された情報のうちの少なくとも一部に、管理ポリシを適用する。管理ポリシは、アドホック印刷装置が特定のＰＤＬ（又はpage  description  language）をサポートしなければならないこと、アドホック印刷装置が指定された会社リストに現れること、アドホック印刷装置がセキュアな通信を用いること、を示す。
【００４０】
ステップ５５８で、プリントサーバは、管理ポリシに基づき、アドホック印刷装置がサーバＧＰＤＤに追加されるべきか否かを決定する。追加されるべきではない場合、処理５００はステップ５６０に進み、プリントサーバは、「追加」動作が拒否されたことを示すメッセージを表示させる。プリントサーバがアドホック印刷装置はサーバＧＰＤＤに追加されるべきであると決定した場合、処理５００はステップ５６２に進む。
【００４１】
ステップ５６２で、プリントサーバは、サーバＧＰＤＤデータベースを構築する。このステップは、新しいアドホック印刷装置に関する読み出された情報をサーバＧＰＤＤデータベースに追加するステップを有しても良い。
【００４２】
ステップ５６４で、プリントサーバは、新しいアドホック印刷装置がプリンタドライバのＵＩの中に現れるべきか否かを決定するために別のポリシを用いる。他のポリシは、ドライバ管理者により定められても良く、モバイルクライアント装置が特定のアドホック印刷装置を「見る」ことができるか否かを決定する。ステップ５６４の結果が否定的である場合、処理５００は、ステップ５５２の前に進み、処理のために新しいアドホック印刷装置に関する更なる入力が必要であることを示す。ステップ５６４の結果が肯定的である場合、処理５００はステップ５６６に進む。
【００４３】
ステップ５６８で、プリントサーバはドライバＧＰＤＤを再構築する。このステップは、新しいアドホック印刷装置に関する読み出された情報をドライバＧＰＤＤに追加するステップを有しても良い。
【００４４】
ステップ５７０で、プリントサーバは、プリンタドライバを実行するモバイルクライアント装置のオペレーティングシステムに読み出された情報を送信する。ステップ５７０で、オペレーティングシステムは、読み出された情報に基づきプリンタドライバを更新する。代替で、ユーザは、後の時間にドライバを更新することを決定しても良い。
【００４５】
＜ＶＩＩＩ．  ユーザーインターフェースデータの生成＞
図６は、一実施形態による、ユーザーインターフェースを生成する処理６００を示すシーケンス図である。アドホック印刷装置６４０は、管理者から、アドホック印刷装置情報を受信する。例示的な情報は、限定ではなく、アドホック印刷装置６１０を所有する会社の名称、ビル番号、フロア、セクション、部門名、維持グループ名等のようなアドホック印刷装置６１０の場所を含む。このような情報は、アドホック印刷装置６１０がインストールされる前に受信されても良い。このような情報は、ユーザの入力に依存し、装置の固有情報に依存しない。また、このような情報は、アドホック印刷装置６１０の装置制御パネルを通じて受信されても良い。
【００４６】
ステップ１で、プリントサーバ６２０は、アドホック印刷装置６１０の能力を含むアドホック印刷装置６１０に関する情報を要求するために、１又は複数のクエリをアドホック印刷装置６１０へ送信する。１又は複数のクエリを送信するために、WS  Discoveryクエリ、ＯＳネットワークＡＰＩ、ＳＮＭＰクエリ等を含むがこれらに限定されない１又は複数の技術が用いられても良い。
【００４７】
ステップ２で、アドホック印刷装置６１０は、プリントサーバ６２０に、プリントサーバ６２０が要求した情報を返す。
【００４８】
ステップ３で、プリントサーバ６２０は、１又は複数の会社又はドメイン管理ポリシを調べ、読み出された情報に基づきサーバＧＰＤＤを構築（又は再構築）する。
【００４９】
ステップ４で、プリントサーバ６２０は、ユーザポリシを調べ、アドホック印刷装置６１０の使用を認可されたユーザ毎に、読み出された情報に基づきドライバＧＰＤＤを構築（又は再構築）する。
【００５０】
ステップ５で、プリントサーバ６２０は、アドホック印刷装置の使用を認可された各プリンタドライバユーザを更新するために、読み出された情報をＯＳへ送信する。一方、ＯＳは、プリンタドライバの一部であるドライバ更新コンポーネント６３０に知らせる。ドライバ更新コンポーネント６３０は、ドライバのＵＩデータを更新する。プリンタドライバのドライバＵＩコンポーネントが既に印刷ジョブを処理している場合、ドライバ更新コンポーネント６３０は、新しいＵＩが既存の印刷ジョブに影響を与えないことを保証するために適切なソリューションを有しても良い。
【００５１】
ステップ６で、ドライバ更新コンポーネント６３０は、クライアント装置で実行中の１又は複数のアプリケーション６４０に、新しいＵＩが用いられるというメッセージをブロードキャストしても良い。幾つかの印刷アプリケーションでは、ステープルユニットが取り外されたときのように、１又は複数のアドホック印刷装置の特性が変更されたことをユーザに知らせることが重要である。ユーザは、ステープルユニットを必要とする印刷ジョブを送信することを回避するよう通知されるべきである。
【００５２】
＜ＶＩＩＩ．  モバイルクライアント装置からアドホック印刷装置への印刷＞
図７は、モバイルクライアント装置からアドホック印刷装置へ印刷するための処理の概略を示すブロック図７００である。図７で、統合型プリンタドライバ７０２は、モバイルクライアント装置（図示しない）に実装され、アドホック印刷装置７０４、７０６、７０８と相互作用する。統合型プリンタドライバ７０２は、ＵＩコンポーネント７１０、レンダリングコンポーネント７１２及びプリントサーバ７１４を有する。本例では、プリントサーバ７１４は、説明のために統合型プリンタドライバ７０２の一部として実装されるが、実施形態は本例に限定されず、プリントサーバ７１４は統合型プリンタドライバ７９２とは別個に実装されても良い。
【００５３】
ステップ１で、ユーザは、ＵＩコンポーネント７１０によりジョブチケットを有する印刷ジョブを開始する。これは、例えば、ユーザが、本例では「宛先アドホック印刷装置」と称され図７に示される特定のアドホック印刷装置にある特定の電子文書を印刷することを要求するステップと、ＵＩコンポーネント７１０を介して、該特定の電子文書を印刷するために用いるべき機能及びオプションを選択するステップと、を有しても良い。印刷ジョブ及び印刷ジョブチケットは、レンダリングコンポーネント７１２に供給される。
【００５４】
ステップ２で、レンダリングコンポーネント７１２は、ユーザにより指定された宛先アドホック印刷装置とアドホック通信リンクが確立されるまで、印刷ジョブを保持する。ステップ３で、ユーザは、宛先アドホック印刷装置とアドホック通信リンクを確立する。これは、例えば、ユーザが、モバイルクライアント装置を宛先アドホック印刷装置の近傍に移動させるステップと、宛先アドホック印刷装置とアドホック通信リンクを開始するステップ、例えばモバイルクライアント装置を宛先アドホック印刷装置と組にするステップと、を有しても良い。ステッ４で、ユーザのモバイルクライアント装置は、アドホック通信リンクがモバイルクライアント装置と宛先印刷装置との間で確立されていることを検出する。
【００５５】
ステップ５で、アドホック通信リンクがモバイルクライアント装置と宛先印刷装置との間で確立されるのに応答して、プリントサーバ７１４は、宛先アドホック印刷装置により現在サポートされている機能及びオプションを指定するアドホック印刷装置能力データを得るために、宛先アドホック印刷装置に問い合わせる。プリントサーバ７１４は、宛先アドホック印刷装置により現在サポートされている機能及びオプションを、印刷ジョブチケットの中で指定された機能及びオプションと比較し、対立が存在するか否か、つまり宛先アドホック印刷装置が印刷ジョブを処理するために必要な機能及びオプションを現在サポートしているか否かを決定する。本例は、プリントサーバ７１４は、印刷ジョブのために印刷ジョブチケットにアクセスしていると考えられる。対立が存在する場合、プリントサーバ７１４は、ＵＩコンポーネント７１０に、１又は複数のＧＵＩオブジェクトを表示させる。１又は複数のＧＵＩオブジェクトは、ユーザに、例えば印刷ジョブを印刷するために使用されるべき１又は複数の機能及びオプションを変更することにより、対立を解決できるようにする。
【００５６】
ステップ６で、対立がユーザにより解決された後、印刷ジョブは、レンダリングコンポーネント７１２により処理できる。
【００５７】
図８は、一実施形態による、モバイルクライアント装置からアドホック印刷装置へ印刷するための処理を示すシーケンス図８００である。このシーケンスでは、説明のため、プリントサーバは１又は複数の利用可能なアドホック印刷装置を発見し、これらのアドホック印刷装置から、これらのアドホック印刷装置によりサポートされる機能及びオプションを指定するアドホック印刷装置能力データを得たと考えられる。ステップ１で、ユーザは、プリンタドライバＵＩコンポーネントにより印刷ジョブを開始する。これは、例えば、ユーザが、本例では「宛先アドホック印刷装置」と称される特定のアドホック印刷装置にある特定の電子文書を印刷することを要求するステップと、プリンタドライバＵＩコンポーネントを介して、該特定の電子文書を印刷するために用いるべき機能及びオプションを選択するステップと、を有しても良い。プリンタドライバＵＩコンポーネントを介してユーザにより入力される情報は、アドホック印刷装置マネジャに提供される。
【００５８】
ステップ２で、アドホック印刷装置マネジャは、例えば、モバイルクライアント装置を宛先アドホック印刷装置とペアにすることにより、モバイルクライアント装置と宛先アドホック印刷装置との間のアドホック通信リンクを確立するよう、プリンタドライバＵＩコンポーネントを介してユーザを促す。
【００５９】
ステップ３で、ユーザは、例えば、モバイルクライアント装置を宛先アドホック印刷装置とペアにすることにより、モバイルクライアント装置と宛先アドホック印刷装置との間のアドホック通信リンクを確立する。アドホック通信リンクが確立された後、ステップ４で、プリントサーバは、宛先アドホック印刷装置によりサポートされる現在の機能及びオプションを指定するアドホック印刷装置能力データについて、宛先アドホック印刷装置に再び問い合わせる。これは、アドホック印刷装置能力データが宛先アドホック印刷装置から以前に取得されて以来、宛先アドホック印刷装置によりサポートされる機能及びオプションが変更されている場合があるため、実行される。
【００６０】
ステップ５で、プリントサーバは、印刷ジョブと宛先アドホック印刷装置との間に対立が存在するか否かを決定する。一実施形態によると、プリントサーバは、対立が存在するか否か、つまり宛先アドホック印刷装置が印刷ジョブを処理するために必要な機能及びオプションを現在サポートしているか否かを決定するために、宛先アドホック印刷装置により現在サポートされる機能及びオプションを、印刷ジョブチケットの中で指定された機能及びオプションと比較する。対立が存在する場合、プリントサーバは、プリンタドライバＵＩコンポーネントに、１又は複数のＧＵＩオブジェクトを表示させる。１又は複数のＧＵＩオブジェクトは、ユーザに、例えば印刷ジョブを印刷するために使用されるべき１又は複数の機能及びオプションを変更することにより、対立を解決できるようにする。ステップ６で、ユーザは、印刷ジョブチケットと宛先アドホック印刷装置により現在サポートされている機能及びオプションとの間の対立を解決する。そして、印刷ジョブの処理が継続する。ステップ７で、アドホック印刷装置マネジャは、レンダリングコンポーネントに、レンダリングコンポーネントによりレンダリングされるべき印刷データをレンダリングさせる。ステップ８で、アドホック印刷装置マネジャは、印刷ジョブをアドホック印刷装置へ送信させる。
【００６１】
図９は、一実施形態による、モバイルクライアント装置から印刷装置へ印刷するための処理を示すフロー図９００である。ステップ９０２で、ユーザは、例えばプリンタドライバにより提供されるグラフィカルユーザーインターフェースを介して、印刷ジョブを処理するための機能及びオプションを指定する。プリンタドライバは、ステップ９０４で、ユーザにより選択された全ての機能及びオプションを通じてループし、ステップ９０６で、選択された機能及びオプションを検証する。ステップ９０８で、印刷ジョブチケットは、例えばプリンタドライバにより生成される。
【００６２】
ステップ９１０で、１より多くの印刷装置が印刷ジョブチケットの中で指定された機能及びオプションを現在サポートしているか否かが決定される。これは、アドホック印刷装置及び非アドホック印刷装置を含んでも良い。印刷ジョブチケットの中で指定された機能及びオプションを現在サポートしている印刷装置が１つしか存在しない場合、ステップ９１２で、その印刷装置は宛先印刷装置として選択される。ステップ９１０で、印刷ジョブチケットの中で指定された機能及びオプションを現在サポートしている１より多くの印刷装置が存在すると決定された場合、ステップ９１４で、印刷ジョブチケットの中で指定された機能及びオプションを最も良くサポートする印刷装置が宛先印刷装置として選択される。
【００６３】
ステップ９１６で、宛先印刷装置がアドホック印刷装置か否かが決定される。アドホック印刷装置ではない場合、ステップ９１８で、印刷ジョブチケットはレンダリングコンポーネントへ送信される。ステップ９１６で宛先印刷装置はアドホック印刷装置であると決定された場合、ステップ９２０で、宛先アドホック印刷装置は接続されているか否か、つまりアドホック通信リンクがモバイルクライアント装置と宛先アドホック印刷装置との間で確立されるか否かが決定される。確立されない場合、ステップ９２２で、ユーザは、例えば、ユーザのモバイルクライアント装置をアドホック印刷装置とペアにすることにより、ユーザのモバイルクライアント装置とアドホック印刷装置との間のアドホック通信リンクを確立するよう促される。
【００６４】
アドホック通信リンクがユーザのモバイルクライアント装置とアドホック印刷装置との間で確立された場合、ステップ９２４で、宛先アドホック印刷装置により現在サポートされている機能及びオプションを指定するアドホック印刷装置能力データを得るために、宛先アドホック印刷装置が問い合わせられる。ステップ９２６で、アドホック印刷装置能力データにより指定された機能及びオプションが印刷ジョブチケットに適合するか否かが決定される。これは、宛先アドホック印刷装置が印刷ジョブを現在処理可能か否かを示す。可能な場合、制御はステップ９１８へ進み、印刷ジョブチケットはレンダリングコンポーネントへ送信される。可能ではない場合、制御はステップ９２８へ進み、ユーザは対立する印刷チケットの設定を解決する機会を与えられる。ステップ９３０で、レンダリングされる印刷ジョブは、宛先印刷装置へ送信される。
【００６５】
＜ＩＸ．  新しい印刷装置への問い合わせ＞
図１０は、一実施形態による、プリントサーバ１１６のようなプリントサーバに追加されている新しい印刷装置に問い合わせる処理１０００を示すフロー図及びブロック図を示す。
【００６６】
ステップ１００５で、新しい印刷装置はプリントサーバに追加される。新しい印刷装置はプリントサーバにより自動的に発見され、又はネットワーク管理者はプリントサーバに、新しい印刷装置について、新しい印刷装置のＩＰ又はＭＡＣアドレスのようなものを通知しても良い。
【００６７】
ステップ１０１０で、プリントサーバは、新しい印刷装置に、印刷装置について使用されるべき名称を問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置の名称は「Ricoh  MP  C３３００」である。
【００６８】
ステップ１０１５で、プリントサーバは、新しい印刷装置に、ビル番号及びフロア番号のような場所を問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置は「ビル１」の「フロア１」にある。
【００６９】
ステップ１０２０で、プリントサーバは、新しい印刷装置にドメイン名を問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置のドメイン名は「Companyxxx」である。
【００７０】
ステップ１０２５で、プリントサーバは、新しい印刷装置に、新しい印刷装置のプリントサーバとの接続の種類を問い合わせる。サーバＧＰＤＤ１００２内に示すように、接続種類は有線ネットワークである。
【００７１】
ステップ１０３０で、プリントサーバは、新しい印刷装置に有線又は無線の種類を問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置は有線接続される。
【００７２】
ステップ１０３５で、プリントサーバは、新しい印刷装置に、新しい印刷装置によりサポートされる印刷セキュリティの種類を問い合わせる。本例では、セキュリティ印刷種類は、サーバＧＰＤＤ１００２内に反映されない。
【００７３】
ステップ１０４０で、プリントサーバは、新しい印刷装置に、新しい印刷装置がレーザプリンタかインクジェットプリンタかのような、装置の種類を問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置はレーザプリンタである。
【００７４】
ステップ１０４５で、プリントサーバは、新しい印刷装置に、新しい印刷装置がカラー又は白黒のみをサポートするかを問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置はカラープリンタである。
【００７５】
ステップ１０５０で、プリントサーバは、新しい印刷装置にプリンタの速度を問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置は「低」である。速度についての他の可能な値は、「高」又は「中」であっても良く、或いは「毎分１００枚」のような速度を反映するメトリックであっても良い。
【００７６】
ステップ１０５５で、プリントサーバは、新しい印刷装置に入力ビンサイズを問い合わせる。これは本例ではサーバＧＰＤＤ１００２内に反映されない。
【００７７】
ステップ１０６０で、プリントサーバは、新しい印刷装置に１又は複数の機能を問い合わせる。サーバＧＰＤＤ１００２内に示すように、新しい印刷装置の１つの機能は、「両面」であり、表示名は「両面印刷」である。また、サーバＧＰＤＤ１００２内には、「両面」機能が３つのオプション、つまり「片面にのみ印刷する（OneSided）」、「シートの長い端に沿って反転し両面に印刷する（TwoSidedLongEdge）」、「シートの短い端に沿って反転し両面に印刷する（TwoSidedShortEdge）」を有する事実が示される。３つのオプションの各々は、「なし（None）」、「長辺綴じ（Flip  on  long  edge）」、「短辺綴じ（Flip  on  short  edge）」のような対応する表示名に関連付けられる。
【００７８】
ステップ１０６５で、プリントサーバは、ステップ１０１０−１０６０で読み出された情報を示すために、サーバＧＰＤＤ１００２を構築（又は再構築）する。
【００７９】
＜Ｘ．  ＧＰＤＤ（Generic  Printer  Description  Data）のデータフロー＞
図１１は、一実施形態による、新しい印刷装置に問い合わせた後に、ＧＰＤＤ（generic  printer  description  data）のデータフロー１１００を示すブロック図である。（上述のステップ７１０−７６０で読み出された情報のような）新しい印刷装置に関する情報を読み出した後、プリントサーバ（例えば、図１のプリントサーバ１１６）はチェック１１１０を実行する。チェック１１１０は、新しい印刷装置がサーバＧＰＤＤ１１２０に追加されることを管理ポリシが許可するか否かを決定するステップを有する。このチェックは、固有の機能及びオプションのような新しい印刷装置に関する全ての情報を受信する前に実行されても良い。例えば、新しい印刷装置がセキュアな印刷をサポートしないと決定した後に、プリントサーバは、新しい印刷装置に、サポートされる機能及びオプションに関する情報を問い合わせなくても良い。
【００８０】
チェック１１１０が否定的な結果だった場合、新しい印刷装置に関する情報は破棄される。チェック１１１０が肯定的な結果だった場合、新しい印刷装置に関する情報はサーバＧＰＤＤ１１２０に追加される。図１１に示すように、サーバＧＰＤＤ１１２０は、サーバＧＰＤＤを示す「サーバレベル」であるＧＰＤＤ値を示すＧＰＤＤタグを有する。
【００８１】
次に、プリントサーバは、チェック１１３０を実行する。チェック１１３０は、管理ポリシが、特定のユーザ又はプリントサーバに登録される特定のクライアント装置に対応する新しい印刷装置がドライバＧＰＤＤ１１４０に追加されることを許可するか否を決定するステップを有する。図１１に示すように、ドライバＧＰＤＤ１１４０は、ドライバＧＰＤＤを示す「ドライバレベル」であるＧＰＤＤ値を示すＧＰＤＤタグを有する。チェック１１３０が否定的な結果だった場合、新しい印刷装置に関する情報はドライバＧＰＤＤに追加されない。チェック１１３０が肯定的な結果だった場合、新しい印刷装置に関する情報はドライバＧＰＤＤ１１４０に追加される。図１１に示すように、ドライバＧＰＤＤ１１４０は、ドライバＧＰＤＤを示す「ドライバレベル」であるＧＰＤＤ値を示すＧＰＤＤタグを有する。
【００８２】
プリントサーバは、プリントサーバに登録されるユーザ毎に、又はプリントサーバに登録される及び任意で統合型プリンタドライバを有するクライアント装置毎に、チェック１１３０を実行しても良い。
【００８３】
チェック１１３０が肯定的な結果だった場合、プリントサーバは、新しい印刷装置に関する情報を、ドライバＧＰＤＤ１１４０に関連するクライアント装置へ送信する。そのクライアント装置で実行中のプリンタドライバは、チェック１１５０を実行する。チェック１１５０は、新しい印刷装置がクライアント装置の利用可能な印刷装置のリストに追加されるべきか否かを決定するステップを有する。チェック１１５０が否定的な結果だった場合、クライアント装置のＵＩ  ＧＰＤＤは、更新されない。チェック１１５０が肯定的な結果だった場合、プリンタドライバは、新しい印刷装置に関する情報を含むよう、ＵＩ  ＧＰＤＤ１１６０を更新する。図１１に示すように、ＵＩ  ＧＰＤＤ１１６０は、ＵＩ  ＧＰＤＤを示す「ＵＩレベル」であるＧＰＤＤ値を示すＧＰＤＤタグを有する。また、ＵＩ  ＧＰＤＤ１１６０は、本例では「user１」である名称値を示すユーザタグを有する。
【００８４】
＜ＸＩ．  ＧＰＤＤの複数のバージョン＞
図１２は、一実施形態による、統合型機能選択プリンタドライバ内のＧＰＤＤの複数のバージョンを示すブロック図である。図１２は、プリントサーバ１２１０及びサーバＧＰＤＤデータベース１２１２を示す。プリントサーバ１２１０は、データベース１２１２内のサーバＧＰＤＤに基づき、ドライバＧＰＤＤ及び統合型プリンタドライバを、登録されたユーザ１２２０Ａ−Ｃの各々について生成する。例えば、ドライバＧＰＤＤ１２２２Ａ及び統合型プリンタドライバ１２２４Ａはユーザ１２２０Ａのために生成され、ドライバＧＰＤＤ１２２２Ｂ及び統合型プリンタドライバ１２２４Ｂはユーザ１２２０Ｂのために生成され、以下同様である。各ドライバＧＰＤＤ１２２２Ａ−Ｃは、データベース１２１２に格納されたサーバＧＰＤＤの部分集合である。
【００８５】
対応するクライアント装置で受信されたドライバＧＰＤＤに基づき、プリンタドライバはＵＩ  ＧＰＤＤを生成する。例えば、プリンタドライバ１２２４Ａは、ドライバＧＰＤＤ１２２２Ａに基づきＵＩ  ＧＰＤＤ１２３０Ａを生成し、プリンタドライバ１２２４Ｂは、ドライバＧＰＤＤ１２２２Ｂに基づきＵＩ  ＧＰＤＤ１２３０Ｂを生成し、以下同様である。したがって、各ＵＩ  ＧＰＤＤは、該ＵＩ  ＧＰＤＤの対応するドライバＧＰＤＤの部分集合である。
【００８６】
プリンタドライバは、自身のＵＩ  ＧＰＤＤから、クライアント装置のディスプレイ上のユーザインタフェースを生成する。例えば、プリンタドライバ１２２４Ａは、ＵＩ  ＧＰＤＤ１２３０Ａに基づきＵＩ１２３２Ａを生成し、プリンタドライバ１２２４Ｂは、ＵＩ  ＧＰＤＤ１２３２Ｂに基づきＵＩ  ＧＰＤＤ１２３０Ｂを生成し、以下同様である。
【００８７】
＜ＸＩＩ．  例示的なＧＰＤＤ＞
図１３は、一実施形態による、サーバ、ドライバ及びユーザインタフェースの各々の例示的なＰＧＤＤを示すブロック図である。図１３は、例示的なサーバＧＰＤＤ１３１０、例示的なドライバＧＰＤＤ１３２０、例示的なＵＩ  ＧＰＤＤ１３３０を示す。ＧＰＤＤ１３１０−１３３０はＸＭＬフォーマットであるが、本発明の実施形態はＸＭＬフォーマットのＧＰＤＤに限定されない。代替のフォーマットが可能である。
【００８８】
本例では、ＧＰＤＤ１３１０−１３３０の各々は、印刷装置の属性（例えば、名称、場所、接続種類、装置種類、等）及び機能「両面」のオプションを含む装置能力のような、印刷装置の同じ情報を有する。また、ＧＰＤＤ１３１０−１３３０の各々は、ＧＰＤＤ値の異なる値を有する。具体的には、サーバＧＰＤＤ１３１０は、ＧＰＤＤ値の値として「サーバレベル」を示し、ドライバＧＰＤＤ１３２０は、ＧＰＤＤ値の値として「ドライバレベル」を示し、ＵＩ  ＧＰＤＤ１３３０はＧＰＤＤ値の値として「ＵＩレベル」を示す。
【００８９】
＜ＸＩＩＩ．  選択フィルタのプレファレンスの変更＞
図１４は、一実施形態による、ユーザがフフィルタプレファレンスを変更する処理１４００を示すフロー図である。処理１４００は、図３に示したドライバ更新モジュール３３４のようなプリンタドライバの１又は複数のコンポーネント又はモジュールにより実行されても良い。
【００９０】
ステップ１４１０で、ユーザは、ＵＩ選択プレファレンスを変更する。ＵＩ選択プレファレンスの例は、限定ではなく、場所（例えば、ビル番号又はフロア番号）、ＩＰアドレス（例えば、固有サブネット）、セキュリティ情報、及びカラー若しくは黒／白を含む。ユーザは、プリンタドライバにより生成されたＵＩを通じてＵＩ選択プレファレンスを変更しても良い。ステップ１４１０を実行した結果として、プリンタドライバは、全てのＵＩ  ＧＰＤＤを削除し、以下のプロセスを用いてそれを再構築しても良い。代替では、プリンタドライバは、ＵＩ  ＧＰＤＤから１つずつ、プリンタドライバがユーザの選択プレファレンスに基づきＵＩ  ＧＰＤＤ内に含まれるべきではないと決定した印刷装置に関する情報のみを削除しても良い。
【００９１】
ステップ１４２０で、プリンタドライバは、プリンタドライバがアクセスしたドライバＧＰＤＤに含まれる印刷装置を識別する。ドライバＧＰＤＤは、プリンタドライバを実行する同じクライアント装置に格納されても良い。
【００９２】
ステップ１４３０で、プリンタドライバは、ステップ１４２０で識別された印刷装置が、ユーザが特定の印刷ジョブのための機能及びオプションを選択するために用いるユーザインタフェース内に表示されるべきか否かを決定する。この決定は、選択プレファレンスの現在のセットを、識別された印刷装置の属性／特性と比較することにより、又は単に変更されたプレファレンスを該属性／特性と比較することにより、行われても良い。ステップ１４３０が否定的な結果だった場合、処理はステップ１４４０に進み、識別された印刷装置に関する情報はＵＩ  ＧＰＤＤに含まれない（つまり、ＵＩ  ＧＰＤＤから削除される）。ステップ１４３０の結果が肯定的である場合、処理１４００はステップ１４５０に進む。
【００９３】
ステップ１４５０で、プリンタドライバは、印刷装置の能力（つまり、機能及びオプション）をＵＩ  ＧＰＤＤに追加する。プリンタドライバは、最終的にこのＵＩ  ＧＰＤＤからユーザインタフェースを生成する。
【００９４】
ステップ１４６０で、プリンタドライバは、ドライバＧＰＤＤ内で示された各印刷装置に関する情報が分析されたか否かを決定する。分析されていない場合、処理１４００はステップ１４２０へ進む。その他の場合、処理１４００はステップ１４７０へ進む。
【００９５】
ステップ１４７０で、プリンタドライバは、更新されたＵＩ  ＧＰＤＤ内に示された全ての（又は多くの）機能及びオプションをクライアントに再表示させる。ＵＩ  ＧＰＤＤ内で識別された印刷装置の機能及びオプションのみが表示される。したがって、ステップ１４５０でＵＩ  ＧＰＤＤ内で識別されなかった印刷装置に関する情報は、プリンタドライバを実行するクライアント装置のユーザに表示されない。
【００９６】
ステップ１４８０で、このプリンタドライバを現在使用している１又は複数のアプリケーションは、例えばプリンタドライバにより知らされる。
【００９７】
＜ＸＩＶ．  ＵＩ機能／オプションの変更＞
統合型プリンタドライバのアプローチの下での機能及びオプションの選択は、他のプリンタドライバと比較して異なる。１つのユーザインタフェースで複数の装置をサポートするために、統合型プリンタドライバは、ユーザにより選択された各機能セットが少なくとも１つの印刷装置によりサポートされることを保証するべきである。機能についての制約は、任意の装置による装置サポートに従って適用される。言い換えると、ＵＩ  ＧＰＤＤ内で示されるどの印刷装置も特定の機能をサポートしない場合、その特定の機能は無効に見える。
【００９８】
図１５は、一実施形態による、ユーザがプリンタドライバのユーザインタフェース（ＵＩ）で機能／オプションを変更するための処理１５００を示すフロー図である。
【００９９】
ステップ１５１０で、ＵＩは、ユーザから、機能又はオプションの変更を示す入力を受信する。変更の例は、用紙サイズを８．５ｘ１１からＡ４に変更すること、又は入力ビンを変更すること、又はステープル止めを要求することを含む。
【０１００】
ステップ１５２０で、プリンタドライバは、ドライバＧＰＤＤ内で示される印刷装置を識別する。１より多い印刷装置がドライバＧＰＤＤ内で識別された場合、プリンタドライバは、各識別された印刷装置を「通ってループ」しても良い。言い換えると、ステップ１５２０−１５６０は、識別された印刷装置毎に実行される。
【０１０１】
ステップ１５３０で、プリンタドライバは、ステップ１５２０で識別された印刷装置がステップ１５１０で選択された機能／オプションをサポートするか否かを決定する。サポートしない場合、処理１５００はステップ１５４０へ進む。サポートしする場合、処理１５００はステップ１５５０へ進む。
【０１０２】
ステップ１５４０で、プリンタドライバは、ユーザにより以前選択された機能／オプションセットを印刷装置がサポートしない場合、ステップ１５２０で識別された印刷装置の全ての機能を無効にする。
【０１０３】
ステップ１５５０で、プリンタドライバは、ユーザにより以前選択された機能セットが印刷装置によりサポートされる場合、ＵＩ内でこの印刷装置の全ての機能を有効にする。
【０１０４】
ステップ１５６０で、プリンタドライバは、全ての印刷装置がドライバＧＰＤＤ内で識別されたか否かを決定する。全てが識別されていない場合、処理１５００は、ステップ１５２０へ進み、別の印刷装置を識別する。その他の場合、処理１５００はステップ１５７０へ進む。
【０１０５】
ステップ１５７０で、ＵＩ内で有効にされた／無効にされた機能毎に、プリンタドライバはＵＩ  ＧＰＤＤ内の機能を有効に又は無効にする。したがって、機能１がＵＩ内で有効にされた場合、プリンタドライバは、ＵＩ  ＧＰＤＤ内の機能１を有効にする。反対に、機能２がＵＩ内で無効にされた場合、プリンタドライバは、ＵＩ  ＧＰＤＤ内の機能２を無効にする。
【０１０６】
＜ＸＶ．  ジョブチケット生成＞
図１６は、一実施形態による、統合型ユーザインタフェース（ＵＩ）１６１０から生成されるジョブチケット１６２０を示すブロック図である。統合型ＵＩ１６１０は、ユーザに見える必要はない。むしろ、統合型ＵＩ１６１０は、ユーザが選択した異なる機能及びオプションの、及びどの印刷装置がこれらの機能及びオプションをサポートするかの概念的表現である。例えば、統合型ＵＩ１６１０は３つの機能、つまりカラーモード、ステープル、及び穴開けを示す。カラーモードのオプションは、「カラー」及び「グレースケール」であり、（ユーザにより肯定的に選択されたか又は既定の選択かに関わらず）「グレースケール」が選択されている。ステープルのオプションは、「オフ」、「左上」及び「右２」であり、「オフ」が選択されている。穴開けのオプションは、「左２」、「上２」及び「右３」であり、「左２」が選択されている。
【０１０７】
統合型ＵＩ１６１０は、「カラーモード」機能について、印刷装置１がオプション「カラー」及び「グレースケール」をサポートすること、及び印刷装置２が「グレースケール」オプションのみをサポートすることを更に示す。統合型ＵＩ１６１０は、印刷装置２が「ステープル」機能をサポートすることを示す。「穴開け」機能については、統合型ＵＩ１６１０は、印刷装置２が「左２」及び「上２」をサポートすること、及び印刷装置３がオプション「上２」及び「右３」をサポートすることを示す。
【０１０８】
統合型ＵＩ１６１０内に示されるように、印刷装置２のみが全ての選択された機能及びオプションをサポートする。選択された機能及びオプションに基づき、プリンタドライバはジョブチケット１６２０を生成する。本例では、ジョブチケット１６２０は、選択された機能毎にエレメント又はタグを有するＸＭＬファイルである。ここで、ルートエレメントは印刷装置を識別する。本例では「ジョブチケット」エレメント内の属性「装置」の値は「装置２」であり、印刷装置２を表す。したがって、結果として生じる印刷ジョブは、印刷装置２へ送られる。また、３つのエレメント、つまり「カラーモード」、「ステープル」及び「穴開け」がある。
【０１０９】
各エレメントの値は、対応する機能の選択されたオプションを示す。本例では、「カラーモード」エレメントの値は「グレースケール」であり、「ステープル」エレメントの値は「オフ」であり、「穴開け」エレメントの値は「左２」である。
【０１１０】
＜ＸＶＩ．  プリンタ選択プレファレンスメニュー＞
図１７は、一実施形態による、プリンタ選択プレファレンスメニュー１７００を示すブロック図である。プリンタドライバ（例えば、統合型プリンタドライバ１２８）は、メニュー１７００内に示された１又は複数のプレファレンスの選択に基づく表示を生成しても良い。メニュー１７００は、印刷装置の可能な属性又は特性を示す。メニュー１７００は、ユーザが、将来の印刷ジョブを処理するために候補印刷装置になるために、宛先印刷装置のセットが有しなければならない異なる属性を選択することを可能にする。
【０１１１】
本例では、メニュー１７００は、印刷装置の可能な場所、印刷装置の可能なドメイン、印刷装置が有線又は無線接続されているか、印刷装置がセキュアか否か、印刷装置がレーザ又はインクジェットプリンタか、印刷装置がカラー又は白黒のみをサポートするか、印刷装置が高速又は低速プリンタか、印刷装置が５００シート又は１００シートのみの入力ビンサイズをサポートするか、印刷装置の可能な接続種類、ユーザの定めたリストにあるべきオプションを示す。
【０１１２】
最初に、メニュー１７００は、各属性／プレファレンスについて「任意」のような既定の選択を含んでも良い。ユーザが選択し終わると、選択された機能／プレファレンスの最終的なセットは、どの印刷装置が印刷ジョブを処理するために使用できるかを決定するために用いられる。プリンタドライバは、メニュー１７００内に示されたプレファレンス選択を満たす印刷装置によりサポートされる機能及びオプションのセットを示すＵＩ  ＧＰＤＤを構築（又は再構築）するために、選択を用いても良い。プリンタドライバのＵＩコンポーネントは、ＵＩ  ＧＰＤＤに基づきユーザインタフェースを生成しても良い。
【０１１３】
＜ＸＶＩＩ．  例示的なプリンタドライバユーザーインターフェース＞
図１８は、一実施形態による、例示的なユーザインタフェース１８００を示すブロック図である。ユーザインタフェース１８００は、プリンタドライバのＵＩモジュールにより生成されても良い。ユーザインタフェース１８００に投入するために用いられるデータは、ＵＩ  ＧＰＤＤに由来しても良い。
【０１１４】
ユーザインタフェース１８００は、３つの部分又は領域、つまりプリンタ選択フィルタプレファレンス１８１０、プリンタ群リスト１８２０、プリンタ機能／オプションリスト１８３０を有する。
【０１１５】
プリンタ選択フィルタプレファレンス１８１０は、ユーザが印刷しようと意図しない幾つかのプリンタを除外するために用いられるプリンタプレファレンス（例えば、メニュー１１００に示されたもの）を定める。例えば、ユーザは、カラー／ＢＷをフィルタとして選択し、黒／白プリンタのみを可能な宛先装置として定めても良い。図示の例では、プリンタプレファレンスは、印刷装置がセキュアであってはならないこと、印刷装置がカラー印刷をサポートしなければならないこと、入力ビンサイズが５００シートより大きくなければならないこと、接続種類がネットワークであることである。
【０１１６】
プリンタ群リスト１８２０は、ユーザのプレファレンスがプリンタ選択フィルタプレファレンス１８１０内に定められた後に、可能な宛先装置印刷装置のセット内にある１又は複数の（又は全ての）印刷装置を列挙する。図示の例では、３つの印刷装置、つまり「Ricoh  Aficio  MP  ３５００  PCL６」、「Ricoh  Aficio  MP  C３５００  PCL６」及び「Aficio  SP  ８２００DN  PCL６」が、プリンタ群リスト１８２０内にある。
【０１１７】
プリンタ機能／オプションリスト１８３０は、ユーザにより（及び／又は既定により）選択された選択プレファレンスのセットに基づき決定される１又は複数の印刷装置のセットによりサポートされる複数の（又は全ての）機能及びオプションを列挙する。一実施形態では、ユーザがプリンタ機能／オプションリスト１８２０からの機能又はオプションを変更する度に、結果として生じる機能セットは、可能な印刷装置（例えば、ドライバＧＰＤＤ内に示されたもの）の能力に対してプリンタドライバにより検証される。印刷装置が結果として生じる機能セットをサポートしない場合、その印刷装置の機能の全部は、プリンタ機能／オプションリスト１８３０内で無効にされる。しかしながら、結果として生じる機能セットをサポートする印刷装置が存在する場合、その印刷装置の機能の全部は、プリンタ機能／オプションリスト１８３０内で有効にされる。
【０１１８】
本例では、プリンタ機能／オプションリスト１８３０は、３つの主な種類、つまり用紙／出力、グラフィック、及び文書オプションに分けられる。これらは、間紙、出力ビン、ステープル、穴開け、最大領域印刷、印刷濃度、及び印刷品質のようなプリンタ機能の大部分を含む。
【０１１９】
＜ＸＶＩＩＩ．  アドホック通信リンクの確立＞
図１９は、モバイルクライアント装置とアドホック印刷装置との間のアドホック通信リンクを確立する処理を示すフロー図１９００である。ステップ１９０２で、ユーザは、クライアント装置をアドホック印刷装置の範囲内に移動する。この範囲は、モバイルクライアント装置及びアドホック印刷装置によりサポートされるアドホック通信の特定の種類に依存して変化しても良い。
【０１２０】
ステップ１９０４で、モバイルクライアント装置は、アドホック印刷装置の存在を検出し、ユーザに視覚的指示を提供するためにモバイルクライアント装置に装置アイコンを表示する。ステップ１９０６で、ユーザは、装置アイコンを選択して、モバイルクライアント装置とアドホック印刷装置との間のペアリング処理を開始する。
【０１２１】
ステップ１９０８で、モバイルクライアント装置及びアドホック印刷装置は、アドホック通信リンクを確立するために用いられる共有情報を生成する。本例では、モバイルクライアント装置及びアドホック印刷装置は、共有ＰＩＮを生成する。ステップ１９１０で、ユーザは、モバイルクライアント装置又はアドホック印刷装置を介して共有情報について問い合わせられている。例えば、モバイルクライアント装置のユーザインタフェースに、ユーザにＰＩＮを入力することを要求するメッセージが表示されても良い。ステップ１９１２で、ユーザは、モバイルクライアント装置又はアドホック印刷装置にＰＩＮを提供する。本例では、ユーザは共有ＰＩＮについて問い合わせられる。ステップ１９１４で、モバイルクライアント装置又はアドホック印刷装置のいずれかで、正しいＰＩＮが受信されたか否かが決定される。受信されない場合、ステップ１９１６で、ユーザは、ＰＩＮを再入力することを促される。正しいＰＩＮが入力された場合、ステップ１９１８でペアリング処理は完了する。
【０１２２】
＜ＸＩＸ．  実装メカニズム＞
本願明細書に記載される機能領域によるネットワーク装置構成データの管理は、非常に使い易く、従来のアプローチよりもエラーを生じる可能性が低い。ユーザは、構成データの各機能領域が更新されネットワーク装置に導入されると、ＧＵＩ上で彼らの進捗を知らされる。このアプローチは、更新データのみをネットワーク装置に供給させることにより、帯域幅の消費も低減する。バルク管理機能は、既存の構成データの編集及び新しい構成データの生成を容易且つ効率良くする。
【０１２３】
一実施形態によると、本願明細書に記載した技術は、１又は複数の特定目的コンピュータ装置により実施される。特定目的コンピュータ装置は、この技術を実行するためにハードウェアに組み込まれても良く、この技術を実行するよう永続的にプログラムされた１又は複数の特定用途向け集積回路（ＡＳＩＣ）若しくはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなデジタル電子装置を有しても良く、この技術を実行するようプログラム命令に従ってファームウェア、メモリ、他の記憶若しくは組合せでプログラムされた１又は複数の汎用目的ハードウェアプロセッサを有しても良い。このような特定目的コンピュータ装置は、この技術を達成するために、カスタムハードワイヤードロジック、ＡＳＩＣ又はＦＰＧＡをカスタムプログラミングと組み合わせても良い。特定目的コンピュータ装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルド装置、ネットワーク装置、又はこの技術を実施するためのハードワイヤードロジック及び／又はプログラムロジックを組み込んだ任意の他の装置であっても良い。
【０１２４】
図２０は、実施形態が実装され得る例示的なコンピュータシステム２０００を示すブロック図である。コンピュータシステム２０００は、バス２００２又は情報を通信する他の通信機構、及びバス２００２に結合され情報を処理するプロセッサ２００４を有する。コンピュータシステム２０００は、また、ランダムアクセスメモリ（ＲＡＭ）又は他のダイナミック記憶素子のような、バス２００２に結合され情報及びプロセッサ２００４により実行されるべき命令を格納する主記憶２００６も有する。主記憶２００６は、プロセッサ２００４により実行されるべき情報の実行中に、一時変数又は他の中間的情報を格納するために用いられても良い。コンピュータシステム２０００は、バス２００２に結合され、静的情報及びプロセッサ２００４のための命令を格納する読み出し専用メモリ（ＲＯＭ）２００８又は他の静的記憶装置を更に有する。情報及び命令の格納のために、磁気ディスク又は光ディスクのような記憶装置２０１０が設けられバス２００２に結合される。
【０１２５】
コンピュータシステム２０００は、バス２００２を介して、陰極線管（ＣＲＴ）のような、コンピュータユーザに情報を表示するディスプレイ２０１２に結合されて良い。バス２００２は単一のバスとして図示されるが、バス２００２は１又は複数のバスを有しても良い。例えば、バス２００２は、プロセッサ２００４がコンピュータシステム２０００内の他の装置を制御する制御バス、プロセッサ２００４が実行のために命令のメモリ位置を指定するアドレスバス、又はコンピュータシステム２０００のコンポーネント菅でデータ又は信号を転送するための任意の他の種類のバスを有しても良いが、これらに限定されない。
【０１２６】
入力装置２０１４は、英数字及び他のキーを有し、バス２００２に結合され、プロセッサ２００４に情報及びコマンド選択を伝達する。別の種類のユーザ入力装置は、マウス、トラックボール又はカーソル方向キーのようなカーソル制御２０１６であり、プロセッサ２００４に方向情報及びコマンド選択を伝達し、ディスプレイ２０１２上のカーソルの移動を制御する。この入力装置は、通常、２軸、つまり第１の軸（例えばＸ）及び第２の軸（例えばＹ）における２度の自由度を有し、装置に平面内の位置を指定させる。
【０１２７】
コンピュータシステム２０００は、本願明細書に記載した技術を、カスタマイズハードワイヤードロジック、１又は複数のＡＳＩＣ若しくはＦＰＧＡ、コンピュータシステムと組み合わせて、コンピュータシステム２０００を特定用途向け機械にする若しくはプログラムするファームウェア及び／又はプログラムロジック若しくはコンピュータソフトウェアを用いて実装してもよい。一実施形態によると、これらの技術は、プロセッサ２００４が主記憶２００６に含まれる１又は複数の命令の１又は複数のシーケンスを実行するのに応答して、コンピュータシステム２０００により実行される。このような命令は、記憶装置２００６のような別のコンピュータ可読媒体から主記憶２０１０に読み込まれてもよい。主記憶２００６に含まれる命令シーケンスの実行は、プロセッサ２００４に本願明細書に記載した処理ステップを実行させる。代替の実施形態では、ハードワイヤード回路が、実施形態を実施するソフトウェア命令の代わりに又はそれと組み合わせて用いられてもよい。このように、実施形態は、ハードウェア回路とソフトウェアのいかなる特定の組合せにも限定されない。
【０１２８】
本願明細書で用いられる用語「コンピュータ可読媒体」は、コンピュータを特定の方法で動作させるデータを提供する際に関与する任意の媒体を表す。コンピュータシステム２０００を用いて実施される実施形態では、種々のコンピュータ可読媒体が、例えば命令をプロセッサ２００４に実行するために提供する際に、関与する。このような媒体は、不揮発性媒体及び揮発性媒体を含む多くの形態を取ることができ、これらに限定されない。不揮発性媒体は、例えば、記憶装置２０１０のような光又は磁気ディスクを含む。揮発性媒体は、主記憶２００６のような動的記憶を含む。コンピュータ可読媒体の共通形態は、例えば、フロッピディスク、フレキシブルディスク、ハードディスク、磁気テープ、又は任意の他の磁気媒体、ＣＤ−ＲＯＭ、任意の他の光学媒体、ＲＡＭ，ＰＲＯＭ及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、任意の他のメモリチップ若しくはメモリカートリッジ、又はコンピュータが読み取れる任意の他の媒体を含む。
【０１２９】
種々の形態のコンピュータ可読媒体は、実行のためにプロセッサ２００４に１又は複数の命令の１又は複数のシーケンスを伝達する際に、関与し得る。例えば、命令は、初めにリモートコンピュータの磁気ディスクで運ばれ得る。リモートコンピュータは、その命令を自身の動的記憶にロードし、及びモデムを用いて電話線を介して命令を送信できる。コンピュータシステム２０００にローカルなモデムは、電話線でデータを受信し、赤外線送信機を用いて、そのデータを赤外線信号に変換できる。赤外線検出器は、赤外線信号で伝達されたデータを受信し、適切な回路がそのデータをバス２００２に置くことができる。バス２００２は、データを主記憶２００６に伝達する。主記憶２００６から、プロセッサ２００４が命令を読み出し実行する主記憶２００６により受信された命令は、任意的に、プロセッサ２００４により実行される前又は後に、記憶装置２０１０に格納されても良い。
【０１３０】
コンピュータシステム２０００は、バス２００２に結合された通信インタフェース２０１８も含む。通信インタフェース２０１８は、ローカルネットワーク２０２２に接続されるネットワークリンク２０２０に結合される２方向データ通信を提供する。例えば、通信インタフェース２０１８は、対応する種類の電話線へのデータ通信接続を提供するＩＳＤＮ（Integrated  Services  Digital  Network）カード又はモデムであってもよい。別の例として、通信インタフェース２０１８は、互換性のあるＬＡＮへのデータ通信接続を提供するＬＡＮ（Local  Area  Network）カードであっても良い。無線リンクも実装されても良い。任意のこのような実装で、通信インタフェース２０１８は、種々の情報を表すデジタルデータストリームを伝達する電気、電磁気又は光信号を送信及び受信する。
【０１３１】
ネットワークリンク２０２０は、通常、１又は複数のネットワークを通じて他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク２０２０は、ローカルネットワーク２０２２を通じてホストコンピュータ２０２４への又はＩＳＰ（Internet  Service  Provider）２０２６により稼働されるデータ機器への接続を提供できる。ＩＳＰ２０２６は、また、現在一般的に「インターネット」２０２８と称される世界的規模のパケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク２０２２及びインターネット２０２８の両者は、デジタルデータストリームを伝達する電気、電磁気又は光信号を用いる。
【０１３２】
コンピュータシステム２０００は、ネットワーク、ネットワークリンク２０２０及び通信インタフェース２０１８を通じて、プログラムコードを含む、メッセージを送信し及びデータを受信できる。インターネットの例では、サーバ２０３０は、インターネット２０２８、ＩＳＰ２０２６、ローカルネットワーク２０２２及び通信インタフェース２０１８を通じてアプリケーションプログラムのために要求されたコードを送信し得る。受信されたコードは、プロセッサ２００４により受信されるとプロセッサ２００４により実行され、及び／又は後に実行するために記憶装置２０１０若しくは他の不揮発性記憶に格納され得る。
【０１３３】
上述の明細書では、本発明の実施形態は、実施形態毎に変化し得る多数の特定の詳細を参照し説明された。したがって本発明の、および本出願者により発明であるように意図したものの唯一の指標は、特許請求の範囲が由来する特定の形式の、いかなる今後の補正も含む本出願に由来する一組の特許請求の範囲である。したがって請求項内で明示的に記述されない限界、要素、特性、特徴、利点、または属性がこのような特許請求項の範囲を決して制限してはならない。したがって本明細書と添付図面は限定的ではなく例示的であると解釈すべきである。
【０１３４】
［関連出願の参照］
本願は、米国特許出願番号第１１／８３０１２９号（代理人管理番号４９９８６−０６２６）、２００７年７月３０日出願、米国特許第８５０８７５５号として２０１３年８月１３日発行、及び米国特許出願番号第１３／３３３４５４（代理人管理番号４９９８６−０７３６）、２０１１年１２月２１日出願に関連する。これら２つの特許文献の内容は、あらゆる目的のために参照することにより本願明細書に全内容が組み込まれる。
【符号の説明】
【０１３５】
１０２、１０４、１０６  モバイルクライアント装置
１１６  プリントサーバ
１２０  アドホック有線接続
１２２  ＷｉＦｉ  Ｄｉｒｅｃｔ接続
１２４  近距離通信接続
１２６  ＷｉＦｉ接続
１２８、１３０、１３２  統合型プリンタドライバ
３０２、３０４、３０６  アドホック印刷装置
３０８  統合型ＵＩコンポーネント
３１０  ドライバ更新コンポーネント
３１２  レンダリングコンポーネント
３１４  アドホック印刷装置マネジャ
３１６、３１８、３２０  装置情報データベース
４１０Ａ−Ｄ  アドホック印刷装置１−４
４１２Ａ−Ｄ  プリンタ情報セット１−４
４２０  プリントサーバ
４２２  サーバＧＰＤＤ
４２４  ドライバＧＰＤＤ
４２６  ＵＩ  ＧＰＤＤ
５０２  統合型プリンタドライバ
５０４  プリントサーバ
５１２  ＵＩコンポーネント
６１０  アドホック印刷装置
６２０  プリントサーバ
６３０  ドライバ更新モジュール
６４０  アプリケーション
７１０  ＵＩコンポーネント
７１２  レンダリングコンポーネント
７１４  プリントサーバ
１３１０  サーバＧＰＤＤ
１３２０  ドライバＧＰＤＤ
１３３０  ＵＩ  ＧＰＤＤ
１６１０  統合型ＵＩ
１７００  統合型プリンタ機能選択ドライバモジュール
１８００  統合型機能選択プリンタドライバのＵＩ
【図１】
2015046161.tif 000003
【図２】
2015046161.tif 000004
【図３】
2015046161.tif 000005
【図４】
2015046161.tif 000006
【図５Ａ】
2015046161.tif 000007
【図５Ｂ】
2015046161.tif 000008
【図６】
2015046161.tif 000009
【図７】
2015046161.tif 000010
【図８】
2015046161.tif 000011
【図９】
2015046161.tif 000012
【図１０】
2015046161.tif 000013
【図１１】
2015046161.tif 000014
【図１２】
2015046161.tif 000015
【図１３】
2015046161.tif 000016
【図１４】
2015046161.tif 000017
【図１５】
2015046161.tif 000018
【図１６】
2015046161.tif 000019
【図１７】
2015046161.tif 000020
【図１８】
2015046161.tif 000021
【図１９】
2015046161.tif 000022
【図２０】
2015046161.tif 000023