(57)【特許請求の範囲】
【請求項１】
コンピュータ読取可能媒体上に具体化される無線印刷インターフェース・キットであって、
アプリケーションのための無線印刷動作に関連したいくつかの無線印刷タスクを実行するいくつかの隠されたオブジェクトと、
前記アプリケーションおよび前記隠されたオブジェクトの間のインターフェースを提供する少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトと、
いくつかの適応無線印刷タスクをプラットホーム汎用形式で規定する少なくとも１つの適応オブジェクト・テンプレートであって、該適応オブジェクト・テンプレートから、前記アプリケーションが実行される予め定められたプラットホームに固有の適応オブジェクトが生成される、適応オブジェクト・テンプレートと、
を備える無線印刷インターフェース・キット。
【請求項２】
前記少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトは、予め定められたプリンタに関連するいくつかのメソッドをカプセル化するプリンタ・オブジェクトをさらに備える、
請求項１に記載の無線印刷インターフェース・キット。
【請求項３】
前記適応無線印刷タスクは、前記プラットホームのオペレーティング・システムとインターフェースをとるよう構成されることができる、
請求項１に記載の無線印刷インターフェース・キット。
【請求項４】
アプリケーションによる無線印刷を容易にするよう無線印刷インターフェース・キットを構成する方法であって、
前記アプリケーションのための無線印刷動作に関連したいくつかの無線印刷タスクを実行するいくつかの隠されたオブジェクトをコンピュータ・システムに設けるステップと、
前記アプリケーションおよび前記隠されたオブジェクトの間のインターフェースを提供する少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトと対話するように該アプリケーションを変更するステップと、
いくつかの適応無線印刷タスクをプラットホーム汎用形式で規定する１つの適応オブジェクト・テンプレートを設けるステップと、
前記適応オブジェクト・テンプレートから、前記アプリケーションが実行される予め定められたプラットホームに固有のオブジェクトを生成するステップと、
を含む方法。
【請求項５】
適応オブジェクト・テンプレートから、アプリケーションが実行される予め定められたプラットホームに固有のオブジェクトを生成する前記ステップは、前記予め定められたプラットホーム上での実施のために前記適応無線印刷タスクを適応させることを含む、
請求項４に記載の方法。
【請求項６】
アプリケーションおよび隠されたオブジェクトの間のインターフェースを提供する少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトと対話するようにアプリケーションを変更する前記ステップは、予め定められたプリンタの抽象化を具現化するプリンタ・オブジェクトと対話するように前記アプリケーションを変更することを含む、
請求項４に記載の方法。
【請求項７】
予め定められたプラットホーム上での実施のために適応無線印刷タスクを適応させる前記ステップは、該予め定められたプラットホームのオペレーティング・システムとインターフェースをとるよう前記適応無線印刷タスクを適応させることを含む、
請求項５に記載の方法。
【請求項８】
プロセッサおよびメモリを持つプロセッサ回路を有するプラットホームと、
前記メモリに記憶され、前記プロセッサによって実行されることができる無線印刷論理と、を備える無線印刷を容易にするシステムであって、該無線印刷論理は、
印刷動作を実行できるアプリケーションと、
前記アプリケーションのための無線印刷動作に関連したいくつかの無線印刷タスクをカプセル化するいくつかの隠されたオブジェクトと、
前記アプリケーションおよび前記隠されたオブジェクトの間のインターフェースを提供する少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトと、
いくつかの適応無線印刷タスクをプラットホーム汎用形式で規定する適応オブジェクト・テンプレートから、前記プラットホーム上での動作に適応するよう生成された該いくつかの適応無線印刷タスクをカプセル化する、少なくとも１つのプラットホーム固有のオブジェクトと、
を含む、システム。
【請求項９】
前記少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトは、さらに、予め定められたプリンタの抽象化を具現化するプリンタ・オブジェクトを含む、
請求項８に記載のシステム。
【請求項１０】
前記適応無線印刷タスクは、前記プラットホームのオペレーティング・システムとインターフェースをとるよう適応されるいくつかのメソッドによって実行される、
請求項８に記載のシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、一般に印刷分野に関し、より具体的には、無線印刷インターフェースキットおよびその方法に関する。
【０００２】
【従来の技術】
既存の印刷フレームワークは、通常、高水準ページ記述言語を、宛先プリンタによる印刷に適したラスタ・イメージに変換するプリンタ・ドライバ・アーキテクチャを使用する。このようなプリンタ・ドライバ・アーキテクチャは、単一のページ記述言語およびプリンタ制御言語に精通していることを必要とすることが多い。
【０００３】
【発明が解決しようとする課題】
残念ながら、そのようなプリンタ・ドライバ・アーキテクチャはまた、資源を比較的多く必要とするにもかかわらず、印刷能力の欠如に苦しむ多くの資源制約的なプラットホームで利用されている。例えば、マイクロソフト・ウインドウズ環境において、グラフィック・デバイス・インターフェース(ＧＤＩ)コマンドは、プリンタに印刷出力を送り出すため、ＰＣＬ３のようなプリンタ制御言語または他の言語にしばしば変換される。そのため、レンダリング・プラットホームにおいて資源集約的なレンダリングが生じる。資源の限られたプラットホームは、そのようなレンダリング・タスクを実行することができないことがある。
【０００４】
また、この印刷手法は他の欠点を持つ。例えばユーザは、プリンタ・ドライバ・アーキテクチャに従って印刷するため、プラットホームおよびプリンタに固有のプリンタ・ドライバを使用しなければならない。これは、印刷するプリンタが利用可能であるにもかかわらず、必要とするプリンタ・ドライバが利用可能でない場合、問題となる。別の欠点は、ドライバが多くのコンピュータ処理能力およびメモリ資源を消費する点である。
【０００５】
【課題を解決するための手段】
上記課題を解決するため、本発明は、コンピュータ読取可能媒体上で具現化される無線印刷インターフェース・キットを提供する。無線印刷インターフェース・キットは、アプリケーションのための無線印刷動作に関連するいくつかの無線印刷タスクを実行するいくつかの隠されたオブジェクトを含む。該キットは、さらに、アプリケーションおよび隠されたオブジェクトの間のインターフェースを提供する少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトを含む。該キットはまた、アプリケーションが実行されるあらかじめ定められたプラットホームについて構成可能ないくつかの適応無線印刷タスクを規定する少なくとも１つの適応オブジェクト・テンプレートを含む。
【０００６】
他の実施形態においては、アプリケーションで無線印刷を容易にするよう無線印刷インターフェース・キットを構成する方法が提供される。該方法は、アプリケーションのための無線印刷動作に関連するいくつかの無線印刷タスクを実行するいくつかの隠されたオブジェクトをコンピュータシステムに設けるステップと、アプリケーションおよび隠されたオブジェクトの間のインターフェースを提供する少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトと対話するようアプリケーションを変更するステップと、いくつかの適応無線印刷タスクをプラットホーム汎用形式で規定する適応オブジェクト・テンプレートを設けるステップと、適応オブジェクト・テンプレートからプラットホーム固有のオブジェクトを生成するステップとを含む。
【０００７】
さらに他の実施形態においては、本発明は、無線印刷を容易にするためのシステムを提供する。該システムは、プロセッサおよびメモリを含むプロセッサ回路を有するプラットホームを備える。該システムはまた、メモリに記憶され、プロセッサによって実行可能な無線印刷論理を含む。該無線印刷論理は、印刷動作を実行できるアプリケーションと、アプリケーションのための無線印刷動作に関連するいくつかの無線印刷タスクをカプセル化するいくつかの隠されたオブジェクトを含む。該無線印刷論理はまた、アプリケーションおよび隠されたオブジェクトの間のインターフェースを提供する少なくとも１つのアプリケーション・プログラミング・インターフェース（ＡＰＩ）・オブジェクトと、プラットホーム上での動作のために適応されるいくつかの適応無線印刷タスクをカプセル化する少なくとも１つのプラットホーム固有のオブジェクトとを含む。
【０００８】
本発明の他の特徴および利点は、以下の詳細な説明および図面を参照することで、当業者には明らかになろう。この明細書に含まれるそのようなさらなる特徴および利点は、本発明の範囲内に含まれるよう意図される。
【０００９】
【発明の実施の形態】
図１を参照すると、本発明の１つの側面に従う無線印刷構成１００が示されている。無線印刷構成１００は、プラットホーム１０３およびプリンタ１０６を含む。プラットホーム１０３は、例えばコンピュータ・システム、個人用携帯型情報端末（ＰＤＡ）、または同様の機能を持つ他の装置である。この点に関し、プラットホーム１０３は、プロセッサ１１３およびメモリ１１６を含み、これらは共に、ローカル・インターフェース１１９に接続されている。ローカル・インターフェース１１９は、例えば、一般には当業者に周知のように、制御／アドレス・バスを伴うデータ・バスである。
【００１０】
プラットホーム１０３はまた、ローカル・インターフェース１１９に接続され、プリンタ１０６との無線通信を容易にする無線インターフェース１２３を含む。無線インターフェース１２３は、プリンタ１０６との間の無線信号の送受信を行う。この点に関し、無線インターフェース１２３は、プロセッサ１１３がプリンタ１０６等で印刷機能を実行することができるように、ローカル・インターフェース１１９をプリンタ１０６に連結させる。メモリ１１６にはいくつかのコンポーネントが記憶され、これらはプロセッサ１１３によって実行されることができる。これらのコンポーネントには、例えば、オペレーティング・システム１２６、印刷機能１３３を備えたアプリケーション１２９、および無線印刷インターフェース１３６が含まれる。
【００１１】
次に、本発明の理解に供するため、無線印刷構成１００を使用する印刷機能の実現について概略的な説明を行う。種々の機能を実行する際、アプリケーション１２９がユーザによってプラットホーム１０３上で実行される。この場合、アプリケーション１２９は、例えばワードプロセッサ、表計算ソフト、または印刷機能１３３を含む他のアプリケーション１２９であることができる。ユーザが、アプリケーション１２９の印刷機能１３３を操作することによって印刷動作を起動すると仮定すると、アプリケーション１２９によって作成された印刷用ドキュメントの印刷を最終的に実行するため、プリンタ１０６との通信を行うのに無線印刷インターフェース１３６が使用される。
【００１２】
この点に関し、無線印刷インターフェース１３６は、プリンタ１０６と通信のやりとりをする際に無線印刷プロトコルを実行する。そのようなプロトコルは、例えば、Bakerma, Alanその他著の"Basic Printing Profile, Interoperability Specification, Bluetooth Special Interest Group, Printing Working Group, Revision 0.9, May 25, 2001"に記載されており、このようなプロトコルおよび標準を、ここで参照により取り入れる。以下の説明の目的のため、このプロトコルを”ブルートゥース(Bluetooth)プロトコル”と呼称する。
【００１３】
さらに、プラットホーム１０３がコンピュータ・システムである場合、例えば種々の周辺装置を該コンピュータ・システムと共に使用することができる。そのような周辺装置は、例えばキーボード、キーパッド、タッチパッド、タッチスクリーン、マイクロフォン、スキャナ、マウス、ジョイスティック、１つまたは複数の押しボタン等を含む。周辺装置はまた、ディスプレイ装置、インジケータ・ライト、スピーカおよびプリンタ等を含むことができる。特定のディスプレイ装置として、例えばＣＲＴ、液晶ディスプレイ・スクリーン、プラズマベースのフラット・パネル・ディスプレイ、または他の種類のディスプレイ装置を挙げることができる。
【００１４】
メモリ１１６は、揮発性メモリ、不揮発性メモリ、およびデータ記憶コンポーネントを含むことができる。揮発性コンポーネントは、電力損失の際にデータ値を保持しないものである。不揮発性コンポーネントは、電力損失の際にデータ値を保持するものである。こうして、メモリ１１６は、例えばランダム・アクセス・メモリ(ＲＡＭ)、読み取り専用メモリ(ＲＯＭ)、ハードディスク・ドライブ、関連するフロッピーディスク・ドライブを介してアクセスされるフロッピーディスク、コンパクトディスク・ドライブを介してアクセスされるコンパクトディスク、適切なテープ・ドライブを介してアクセスされる磁気テープ、および／または他のメモリ・コンポーネント、またはこれらメモリ・コンポーネントの２つまたはそれ以上の組み合わせ、を含むことができる。さらに、ＲＡＭは、例えばスタティック・ランダム・アクセス・メモリ(ＳＲＡＭ)、ダイナミック・ランダム・アクセス・メモリ(ＤＲＡＭ)、またはマグネティック・ランダム・アクセス・メモリ(ＭＲＡＭ)等を含むことができる。ＲＯＭは、例えばプログラマブル読み取り専用メモリ(ＰＲＯＭ)、消去可能プログラマブル読み取り専用メモリ(ＥＰＲＯＭ)、電気的に消去可能なプログラマブル読み取り専用メモリ(ＥＥＰＲＯＭ)、または他の同様のメモリ・デバイスを含むことができる。
【００１５】
また、プロセッサ１１３は、マルチプロセッサを表すこともあり、メモリ１１６は、並列に動作する複数メモリを表すこともある。そのような場合、ローカル・インターフェース１１９は、任意の２つのマルチプロセッサの間、任意のプロセッサと複数メモリのうちの任意のメモリとの間、または、任意の２つのメモリの間、の通信を容易にする適切なネットワークであることができる。プロセッサ１１３は、本質的に、電気的または光学的なものである。
【００１６】
オペレーティング・システム１２６は、プラットホーム１０３におけるハードウェア資源の割り当ておよび使用を制御するよう実行される。具体的には、オペレーティング・システム１２６は、メモリ１１６、処理時間、周辺装置およびその他の機能の割り当ておよび使用を制御する。このようにして、オペレーティング・システム１２６は、一般に当業者に既知のように、アプリケーションが依存する基盤としての役目を果たす。
【００１７】
図２を参照すると、この発明の１つの側面に従う、無線印刷インターフェース１３６の機能ブロック図が示されている。図２に示されているように、それぞれのブロックは、プログラミング・コードとして実現される基本的な機能のモジュール、オブジェクト、または他のグループ化またはカプセル化したものを表す。しかしながら、同じ基本的な機能が、特許請求の範囲によって定義される本発明から乖離することなく、図２に示されるものとは異なる１つまたは複数のモジュール、オブジェクト、または他のグループ化またはカプセル化したものに存在することもできる。無線印刷インターフェース１３６は、当業者に認識できるような、Ｃ＋＋または同等のオブジェクト指向言語で書かれることができる。
【００１８】
無線印刷インターフェース１３６は、プリンタ・ドライバを入手して導入する必要性が取り除かれるので、伝統的な印刷処理と比較して、プラットホーム１０３(図１)における処理資源の使用の減少をもたらすという明確な利点を持つ(ただし利点はこの点に限定されるものではない)。これは、あらかじめ定められたプラットホーム１０３に容易に適応され、無線印刷機能のための簡単なアプリケーション開発を容易にする簡単なオブジェクト指向フレームワークによって達成される。
【００１９】
無線印刷インターフェース１３６は、以下に説明するように、異なるアプリケーション１２９による動作および多数のプラットホーム１０３上での動作について適応されたキットという形態で具体化されることができる。
【００２０】
無線印刷インターフェース１３６は、いくつかの基本印刷プロファイル(Basic Printing Profileの頭文字をとって以下ＢＰＰと略称される)オブジェクト１４３を含む。これらＢＰＰオブジェクト１４３は、ブルートゥース・プロトコル（これは、上記において参照により取り込まれた）において記述される無線印刷動作を実施するために実行されるメソッドをカプセル化する。無線印刷インターフェース１３６はまた、いくつかのアプリケーション・プログラミング・インターフェース(ＡＰＩ)オブジェクト１４６を含む。ＡＰＩオブジェクト１４６は、アプリケーション１２９とＢＰＰオブジェクト１４３との間のインターフェースとして動作する。より詳細にいうと、ＢＰＰオブジェクト１４３は、無線印刷動作中に多くの異なる機能を実施する。無線印刷動作を達成するため、アプリケーション１２９は、ＢＰＰオブジェクト１４３と通信しなければならない。
【００２１】
しかしながら、そのような通信は、平均的なプログラマーにとって実施が困難であるかもしれない。なぜなら、そのような平均的プログラマになじみのないブルートゥース・プロトコルに規定されている種々のタスクをＢＰＰオブジェクト１４３が実行するからである。ＡＰＩオブジェクト１４６は、アプリケーション１２９とＢＰＰオブジェクト１４３との間の比較的単純で直観的なインターフェースを提供するという利点を持つ。プログラマーは、種々のＡＰＩオブジェクト１４６に対する適切な呼び出しを行うようにアプリケーション１２９を変更するだけでよい。従って、プログラマーは、ＢＰＰオブジェクト１４３と直接インターフェースをとるようアプリケーション１２９を適応させるためＢＰオブジェクトの動作について深い理解を得るための時間を消費する必要がない。
【００２２】
無線印刷インターフェース１３６は、キットとして具現化される場合、アプリケーション１２９がＢＰＰオブジェクト１４３と通信するためのインターフェースを提供するＡＰＩオブジェクト１４６を含む。ＢＰＰオブジェクト１４３も、該ＡＰＩオブジェクト１４６と共に含まれる。ＡＰＩオブジェクト１４６は、該ＡＰＩオブジェクトとインターフェースをとるようにアプリケーション１２９を適応させることを比較的容易なタスクにする直観的インターフェースとして動作するよう構成される。具体的には、キットは、種々のタスクを実行するためアプリケーション１２９によって呼び出されるＡＰＩオブジェクト１４６内のメソッドをリストする。アプリケーション１２９の適応を一層容易にするため、これらのメソッドは、該メソッドの発見が期待される特定のＡＰＩオブジェクト１４６内にカプセル化される。
【００２３】
ＡＰＩオブジェクト１４６は、実行される実際の印刷項目または印刷動作の抽象化のレベルを提供する。例えば、ＡＰＩオブジェクトは、プリンタ・ディレクトリ１４６ａ、プリンタ１４６ｂ、印刷ジョブ１４６ｃ、ドキュメント１４６ｄ、装置識別子１４６ｅ、プリンタ属性応答オブジェクト１４６ｆ、およびジョブ属性応答１４６ｇを含む。このような抽象化は、ＡＰＩオブジェクト１４６とインターフェースをとるためのアプリケーション１２９の適応を容易にする。具体的には、ＡＰＩ１４６内にカプセル化された種々のメソッドが、現実の概念およびオブジェクトからの抽象化のレベルを提供するとすれば、そこにカプセル化された種々のメソッドを容易に見つけて操作することができる。
【００２４】
無線印刷インターフェース１３６はまた、いくつかの適応オブジェクト１４９を含む。適応オブジェクト１４９は、無線印刷インターフェース・キットの形態の場合、いくつかの適応無線印刷タスクを規定する適応オブジェクト・テンプレートとして具現化される。これらの適応無線印刷タスクは、無線印刷インターフェース１３６が実施されるべきあらかじめ定められたプラットホーム１０３(図１)について構成可能である。こうして、適応オブジェクト・テンプレートは、プラットホーム固有ではないプラットホーム汎用形式で、適応無線印刷タスクをリストする。これによって、あらかじめ定められたプラットホーム１０３についての適応オブジェクト１４９に、適応オブジェクト・テンプレートを容易に適応させることができる。
【００２５】
対応する適応オブジェクト・テンプレートから作成されることのできる適応オブジェクト１４９は、プラットホーム１０３(図１)のオペレーティング・システム１２６とインターフェースをとるオペレーティング・システム・オブジェクト１４９ａを含む。適応オブジェクト１４９はまた、リンク管理オブジェクト1１４９ｂ、サービス発見プロトコル(ＳＤＰ)オブジェクト１４９ｃ、オブジェクト交換プロトコル(ＯＢＳ)オブジェクト１４９ｄを含む。これらの適応オブジェクト１４９は、より低位の無線通信スタック１５３とインターフェースをとって、プリンタ１０６との無線通信リンクを達成する。下位無線通信スタック１５３の機能は、例えばブルートゥース・プロトコルに記述されている種々のタスクを実施する。ブルートゥース・プロトコルは、ここで参照により取り入れらており、本明細書では下位無線通信スタック１５３の動作について詳細には記述しない。
【００２６】
無線印刷インターフェース１３６は、キットとして具現化される場合、いくつかの適応無線印刷タスクをプラットホーム汎用形式で規定する適応オブジェクト・テンプレートを提供する。特定のアプリケーション１２９で、あらかじめ定められたプラットホーム１０３(図１)上で無線印刷インターフェース・キットを適応させる際、ユーザは、対応する適応オブジェクト・テンプレートから適応オブジェクト１４９を生成する。例えば、ＢＰＰオブジェクト１４３が、プラットホーム１０３のオペレーティング・システム１２６と効果的に通信することができるように、オペレーティングシステム・オブジェクト１４９ａが、対応する適応オブジェクト・テンプレートから適応される。これにより、オペレーティング・システム１２６によって達成されるメモリ割り当ておよび他のタスクに対する備えがなされ、無線印刷インターフェース１３６の動作を容易にする。
【００２７】
リンク管理オブジェクト１４９ｂ、サービス発見プロトコル・オブジェクト１４９ｃ、およびオブジェクト交換プロトコル・オブジェクト１４９ｄは、プラットホーム１０３上で実行されるあらかじめ定義された無線印刷構成に関連する種々の無線印刷タスクを実行するメソッドを含む。具体的には、下位無線通信スタック１５３は、特定のプラットホーム１０３に依存して異なることがある。適応オブジェクト１４９は、このようにプラットホーム１０３上で実現される特定の無線印刷プロトコル構成に関連する種々のタスクを実行する。
【００２８】
ＢＰＰオブジェクト１４３は、ここでは、隠されたオブジェクトとして特徴づけられる。なぜならば、それらオブジェクトのいずれもアプリケーション１２９と直接通信しないし、特定のプラットホーム１０３について無線印刷インターフェース・キットを適応させるためにＢＰＰオブジェクト１４３内にカプセル化されているメソッドが変更されることはないからである。無線印刷インターフェース１３６を具現化するキットに含まれるＢＰＰオブジェクト１４３は、プログラマーが、アプリケーション１２９の操作に基づいてドキュメントの無線印刷機能に対応することを容易にする。具体的に述べれば、プログラマーがなすべきことのすべては、ＡＰＩオブジェクト１４６とインターフェースをとるようにアプリケーション１２９を変更し、適応オブジェクト・テンプレートを適応させて対応する適応オブジェクト１４９を生成することである。プログラマーは、これらの隠された特性により、ＢＰＰオブジェクト１４３のいずれにもアクセスし変更する必要がない。このように、本発明は、適応させるのが比較的簡単なキットを提供することによって、あらかじめ定められたプラットホーム１０３上のあらかじめ定められたアプリケーション１２９のための無線印刷に対応するのに必要とされる時間および努力の投資を減少させる。以下の図において、無線印刷インターフェース１３６の特定のオブジェクトを説明する。これらのオブジェクトは例示のための種々のパラメータを含むが、他のパラメータを用いてもよい。
【００２９】
図３Ａを参照すると、プリンタ・ディレクトリ・オブジェクト１４６ａが示されている。プリンタ・ディレクトリ・オブジェクト１４６ａは、無線印刷動作が実行される可能性のあるプリンタ１０６(図１)のリストを取得するため、アプリケーション１２９(図１)によって呼び出されるメソッドをカプセル化する。例えば、ブルートゥース・プロトコルの環境においては、プリンタのリストは、当業者には明らかなように、発見可能な範囲にあって発見可能なように構成されたブルートゥース装置を発見するのに使用されるブルートゥース照会プロセスを使用して、プリンタのリストが作成される。ブルートゥース照会プロセスが完了すると、プリンタ１０６ではない種々の装置がその範囲内で識別される可能性がある。識別された装置は、印刷装置１０６だけを識別するようフィルタリングされ、次にそれらの印刷装置１０６がプリンタ・ディレクトリ・オブジェクト１４６ａに保持される。
【００３０】
プリンタ・ディレクトリ・オブジェクト１４６ａにおける基本メソッドは、プリンタ・ディレクトリ・オブジェクト１４６ａを初期化する起動メソッド（initiation method）を含む。起動メソッドは、種々のＢＰＰオブジェクト１４３(図２)を操作することによって、ブルートゥース照会手続きが実行されるようにする。パラメータ"GetNames"が「真」に等しいようセットされると、当業者には理解されるように、各対応する装置は、その"フレンドリ名（friendly name）"を要求される。"GetFirstDevice"メソッドは、プリンタ・ディレクトリ・オブジェクト１４６ａにカプセル化されたプリンタ・ディレクトリに関連付けられたポインタであって、そこにリストされている最初の装置に対するポインタを返す。同様に、"GetNextDevice"メソッドは、同じプリンタ・ディレクトリにおける次の装置に関する情報に対するポインタを返す。"GetNumDevices"メソッドは、プリンタ・ディレクトリにリストされている装置の数を求めるのに使用される。最後に、"FindDevice"は、指定されたブルートゥース装置アドレスを持つ装置に関する情報に対するポインタを返すメソッドである。
【００３１】
図３Ｂを参照すると、本発明の１つの側面に従う、ブルートゥース装置識別子(ＩＤ)オブジェクト１４６ｅが示されている。ブルートゥース装置識別子オブジェクト１４６ｅは、例えばプリンタ１０６(図１)のような特定のブルートゥース装置に関する情報を得るためアプリケーション１２９によって使用される。この点に関し、ブルートゥース装置ＩＤオブジェクト１４６ｅは、それぞれの装置の６バイトのブルートゥース装置アドレスにアクセスするのに使用される"GetAddress"メソッドを含む。"GetName"メソッドは、プラットホーム１０３(図１)と通信中のそれぞれの装置のフレンドリ名にアクセスするよう実行される。ブルートゥース装置ＩＤオブジェクト１４６ｅにおける種々のメソッドは、プラットホーム１０３の範囲内にあるそのようなプリンタ１０６を任意の所与の時間に確立する際、プリンタ・ディレクトリ・オブジェクト１４６ａによって呼び出されるという点に注意されたい。
【００３２】
図３Ｃを参照すると、本発明の１つの側面に従う、プリンタ・オブジェクト１４６ｂが示されている。プリンタ・オブジェクト１４６ｂは、プリンタ１０６(図１)と接続して対話するためアプリケーション１２９によって使用される。プリンタ・オブジェクト１４６ｂにおけるメソッドには、プリンタ１０６との接続のためアプリケーション１２９によって使用される“Connect（接続）”メソッドが含まれる。プリンタ１０６に接続するため、プリンタ１０６のブルートゥース装置アドレスがアプリケーション１２９によって提供される。ブルートゥース装置アドレスは、プリンタ・ディレクトリ・オブジェクト１４６から取得されることができる。取得が成功すると、当業者には理解されるように、ブルートゥース・プロトコルを検査する際、通信チャネルが、プリンタ１０６の基本印刷プロファイル・サービスに対して開かれる。
【００３３】
プリンタ・オブジェクト１４６ｂにおける“Disconnect（切断）”メソッドが、プリンタ１０６との接続を閉じるためアプリケーション１２９(図２)によって呼び出される。“Print（印刷）”メソッドは、プリンタ・オブジェクト１４６ｂが現在の開かれた接続を維持しているプリンタ１０６上のドキュメントを印刷するためアプリケーション１２９によって呼び出される。ドキュメント・オブジェクト１４６ｄ(図２)は、印刷されるべきドキュメントまたはドキュメントへの参照（リファレンス）をも含む。プリンタ・オブジェクト１４６ｂはまた、第２の“Print（印刷）”メソッドを含む。第２のPrintメソッドは、プリンタ・オブジェクト１４６ｂが現在接続を維持しているプリンタ１０６上に構成される印刷ジョブの一部としてドキュメントを印刷するためアプリケーション１２９によって呼び出される。印刷されるべきドキュメントは、該ドキュメントに関連付けられたジョブ構成の設定と共に、印刷ジョブ・オブジェクト内に集められる。このメソッドは、ブルートゥース・プロトコルにおいて規定される基本印刷プロファイル"JobBasedPrinting"を使用する。最後に、"Cancel（キャンセル）"メソッドが、活動状態にある印刷ジョブをキャンセルするためアプリケーション１２９によって呼び出される。
【００３４】
図３Ｄを参照すると、本発明の他の側面に従う、印刷ジョブ・オブジェクト１４６ｃが示されている。印刷ジョブ・オブジェクト１４６ｃは、印刷ジョブを表すためアプリケーション１２９(図１)によって呼び出される。印刷ジョブ・オブジェクトは、印刷ジョブを構成する。また、アプリケーション１２９は、印刷ジョブ・オブジェクト１４６ｃ内の種々のメソッドを呼び出して、例えば印刷待機、印刷実行、印刷完了などの印刷ジョブの状態を見つけ出すことができる。印刷ジョブ・オブジェクト１４６ｃは、ドキュメントを印刷ジョブ・オブジェクト１４６ｃ自体に追加するためアプリケーション１２９によって呼び出される"set document"メソッドを含む。これは、最終的には、印刷ジョブがプリンタ・オブジェクト１４６ｂ(図３Ｃ)を介してプリンタ１０６(図１)に提示される時に印刷されるドキュメントである。印刷ジョブ・オブジェクト１４６ｃはまた、プリンタ１０６に提示される印刷ジョブの印刷ジョブ属性を取得するためアプリケーション１２９によって呼び出される"GetAttributes"メソッドを含む。このメソッドは、ブルートゥース・プロトコルの基本印刷プロファイルによって定義される"GetJobAttributes"コマンドを使用する。
【００３５】
当業者には明らかなように、特定のジョブ属性がブルートゥース・プロトコルによって定義されている。これらのジョブ属性は、ジョブ属性応答オブジェクト１４６ｇ(図２)を通してアプリケーション１２９によって最終的にアクセスされる。印刷ジョブ・オブジェクト１４６ｃにおける残りのメソッドは、ブルートゥース・プロトコルにおいて定義されている種々のジョブ属性に値をセットまたは割り当てることによって印刷ジョブを構成するため、アプリケーション１２９によって呼び出される。これらの属性は、印刷ジョブ・オブジェクト１４５ｃが最初に作成される時にデフォルト値に初期化される。
【００３６】
図３Ｅを参照すると、ジョブ属性応答オブジェクト１４６ｆが示されている。ジョブ属性応答オブジェクト１４６ｆは、プリンタ１０６(図１)に提示される特定の印刷ジョブに関する情報を取得するため、アプリケーション１２９(図１)によって呼び出される。この点に関し、ジョブ属性応答オブジェクト１４６ｆは、最終的には、現在の印刷ジョブの状態に関連するプリンタ１０６との適切な通信の実行を生じさせる。ジョブ属性応答オブジェクト１４６ｆに関連するメソッドは、印刷ジョブ・オブジェクト１４６ｃにおける"GetJobAttributes"要求に対する応答において返されたジョブ属性にアクセスするため、アプリケーション１２９によって呼び出される。属性の各々はブルートゥース・プロトコルに記述されている。ジョブ属性情報は、最終的に、プリンタ１０６から受け取られ、印刷ジョブ・オブジェクト１４６ｃ(図３Ｄ)の"GetAttributes"メソッドを使用してジョブ属性応答オブジェクト１４６ｆに保存される。
【００３７】
図３Ｆを参照すると、プリンタ属性応答オブジェクト１４６ｇが示されている。プリンタ属性応答オブジェクト１４６ｇは、プリンタ１０６(図１)およびその能力（機能）に関する情報を取得するためアプリケーション１２９(図１)によって呼び出される。図示されているように、プリンタ・オブジェクト１４６ｂ(図３Ｃ)から呼び出される"GetPrinterAttributes"要求に対する応答で得られるプリンタ属性にアクセスするため、プリンタ属性応答オブジェクト１４６ｇに関連するメソッドが呼び出される。プリンタ１０６から得られる属性のそれぞれは、ブルートゥース・プロトコルに記述されている。
【００３８】
次に、図３Ｇを参照すると、本発明の１つの側面に従う、ドキュメント・オブジェクト１４６ｄが示されている。ドキュメント・オブジェクト１４６ｄは、それぞれのドキュメントのコンテンツに対するアクセスを無線印刷インターフェース１３６(図２)に提供するため、アプリケーション１２９(図１)によって使用される。そうすることで、実際のドキュメントが選択され、ドキュメント・オブジェクト１４６ｄに連結される。例えば、ドキュメント・オブジェクト１４６ｄは、ユーザに表示されるダイアログ・ボックスを生成してユーザが印刷のためのドキュメント・ファイルを選択することを可能にすることによって、このタスクを達成することができる。
【００３９】
ドキュメント・オブジェクト１４６ｄはまた、印刷されるドキュメントのバイト長を求めるため呼び出される"GetLength"メソッドを含む。また、ドキュメント内の現在保持されている位置から開始して指定されたバイト数をドキュメントからバッファに読み取るために呼び出される"Read"メソッドがドキュメント・オブジェクト１４６ｄに提供される。"initialize"メソッドは、最初に、ドキュメントの初めの部分でこの保持されている位置を特定する。"GetName"メソッドは、ドキュメント自体の名前を取得するためアプリケーションによって呼び出される。ドキュメント名は、例えば、ファイルベースのシステム等においてドキュメント・コンテンツを含むファイルの名前である。ドキュメント・オブジェクト１４６ｄはまた、対象とされる特定のドキュメントのコンテンツのマイム(mime)タイプを取得するのに使用される"GetName"メソッドを含む。マイム・タイプの例には、当業者に一般に既知のように、XHTML-Print"コンテンツのための"Application/VNE.PWG-XHTML-Print+XML:1.0"、プレーンテキスト・ドキュメントのための"Text/Plain"、ＪＰＥＧドキュメントのための"Image/Joint Photographic Experts Group(JPEG)"が含まれる。
【００４０】
図４Ａを参照すると、本発明の１つの側面に従う、リンク管理適応オブジェクト１４９ｂが示されている。リンク管理適応オブジェクト１４９ｂは、ブルートゥース・プロトコルで規定されているブルートゥース・スタックのリンク管理サービスにアクセスするのに使用される。リンク管理適応オブジェクト１４９ｂは、ブルートゥース照会プロセスを起動するため呼び出される"Inquire"メソッドを含む。ブルートゥース照会は、照会している装置の範囲に、どのブルートゥース装置があるかを発見するのに使用され、ブルートゥース装置は該発見に応答するよう構成される。応答する各装置について、起動側によって供給されるコールバック・メソッドが呼び出され、該装置に関する情報へのポインタが渡される。
【００４１】
リンク管理適応オブジェクト１４９ｂはまた、６バイトのブルートゥース装置アドレスによって指定された装置のフレンドリ名を取得するため提供される"GetName"メソッドを含む。リンク管理適応オブジェクト１４９ｂのメソッドは、キット形態で実施される時、どのメソッドが特定のプラットホーム１０３（図１）について適応されるべきかをユーザに示すよう、プラットホーム汎用形式で表される。特定のプラットホーム１０３上で動作するようにキットを適応させる際に、メソッドは、プラットホーム汎用形式から、プラットホーム１０３に固有な、またはプラットホーム１０３上で実施される言語に変換される。
【００４２】
図４Ｂを参照すると、本発明の１つの側面に従う、サービス発見プロトコル(ＳＤＰ)適応オブジェクト１４９ｃが示されている。ＳＤＰ適応オブジェクト１４９ｃは、プリンタ１０６(図１)のような遠隔装置に照会を行って所望のレコードまたは情報を取得するため呼び出される"QueryRemoteDevice"メソッドを含む。そのような情報は、例えばブルートゥース・プロトコルで定義されているプリンタ１０６自体およびその能力（機能）に関する詳細を含むことができる。
【００４３】
図４Ｃを参照すると、本発明の１つの側面に従うオブジェクト交換(ＯＢＥＸ)適応オブジェクト１４９ｄが示されている。ＯＢＥＸ適応オブジェクト１４９ｄは、例えばブルートゥース・プロトコルによって規定されているプリンタ１０６(図１)に関する基本印刷プロファイル・サービスへの接続を生成するのに使用される"Connect"メソッドを含む。そのような接続を生成する際、ジョブ・チャネルおよび状態チャネルもまた接続されることができる。しかしながら、状態チャネルは、既存のジョブ・チャネル接続が存在する時にのみ接続される。ＯＢＥＸ適応オブジェクト１４９ｄはまた、プラットホーム１０３(図１)とプリンタ１０６との間のジョブまたは状態チャネル接続を閉じるのに使用される"Disconnect"メソッドを含む。ＯＢＥＸ適応オブジェクト１４９ｄはまた、例えばブルートゥース・プロトコルにおいて規定されているように、指定されたチャネル経由で"OBEX Put"コマンドを実行するのに使用される"Put"メソッドを含む。該チャネルは、"Connect"メソッドを使って予め開かれていなければならない。"Get"メソッドが、指定されたチャネルを介して"OBEX get"コマンドを実行するのに使用される。"Put"メソッドと同様に、該チャネルは、"Connect"メソッドを使って予め開かれていなければならない。更に、ＯＢＥＸ適応オブジェクト１４９ｄは、指定されたチャネル経由で"OBEX abort"コマンドを実行するのに使用される"Abort"メソッドを含む。この場合も、チャネルは"Connect"メソッドを使って予め開かれていなければならない。"OBEX abort"コマンドは、予めは発行された"OBEX get"または"OBEX put"要求を、プリンタ１０６からの応答を待つことなく、キャンセルするのに使用される。
【００４４】
図４Ｄを参照すると、本発明の１つの側面に従う、オペレーティング・システム(ＯＳ)適応オブジェクト１４９ａが示されている。ＯＳ適応オブジェクト１４９ａは、ソフトウェア品質の監視のため使用される"Assert"および"Trace"メソッドを含む。具体的には、これらのメソッドは、当業者に明らかなように、実行の流れを追跡して、なんらかの期待された状態が満たされていない場合に警報を出すのに使用される。ＯＳ適応オブジェクト１４９ａはまた、当業者に明らかなように、メモリ１１６(図１)の空きブロックに動的に割り当てるのに使用される"AllocMem"メソッドおよび"FreeMem"メソッドを含む。
【００４５】
ＯＳ適応オブジェクト１４９ａはまた、"MemCopy"メソッド、"MemSet"メソッド、"MemCMP"メソッド、および"MemCMPEX"メソッドを含む。これらのメソッドは、メモリの種々のブロックに適宜に作用する。特に、これらのメソッドは、当業者に明らかなように、１つのブロックから他のブロックへ値をコピーするため、メモリ１１６内に値をセットするため、または、２つのメモリ・ブロックのコンテンツを比較するために使用される。"U32toA"メソッドおよび"AtoU32"メソッドは、当業者に明らかなように、３２バイト数と米国標準符号II(ＡＳＣＩＩ)ストリングとの間の変換を行うのに使用される。ＯＳ適応オブジェクト１４９ａにおける残りのメソッドは、Ｕｎｉｃｏｄｅ（ユニコード）・ストリングとＡＳＣＩＩストリングとの間の変換を行うのに使用される。これらのメソッドは、また、当業者に明らかなように、ストリングの長さを求めて、ストリング内のサブストリングの位置を規定するのに使用される。
【００４６】
本発明の無線印刷インターフェース１３６(図２)および対応する無線印刷インターフェース・キットは、上述のように汎用ハードウェアによって実行されるソフトウェアまたはコードの形態で具現化されているが、代替的に、専用ハードウェア、またはソフトウェア／汎用ハードウェアと専用ハードウェアとの組み合わせの形態で具現化することもできる。無線印刷インターフェース１３６（図２）および対応する無線印刷インターフェース・キットが専用ハードウェアで具現化される場合、それらは、いくつかの技術のうちの１つまたはこれらの技術の任意の組み合わせを用いる回路または状態機械として表現または実現されることができる。それらの技術には、１つ以上のデータ信号の適用時に種々の論理機能を実現するための論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向けＩＣ、プログラマブル・ゲート・アレイ(ＰＧＡ)、フィールド・プログラマブル・ゲート・アレイ(ＦＰＧＡ)、または他のコンポーネント等々が含まれるが、これらに限定されるものではない。そのような技術は、当業者に既知であり、従ってここで詳細に説明しない。
【００４７】
図２のブロック図および図３Ａ〜図４Ｄのオブジェクトは、無線印刷インターフェース１３６(図２)および対応する無線印刷インターフェース・キットの実施形態のアーキテクチャ、機能、および動作を示す。各ブロックは、ソフトウェアで具現化される場合、指定された論理機能を実現するプログラム命令を含むモジュール、セグメントまたはコード部分を表すことができる。プログラム命令は、コンピュータ・システムまたは他のシステムにおけるプロセッサのような適切な実行システムによって認識可能な数値命令を含むプログラミング言語または機械コードで書かれた人間が可読できる命令を含むソース・コードの形態で具体化されることができる。機械コードは、ソース・コードなどから変換されることができる。各ブロックは、ハードウェアで具現化される場合、指定された論理機能を実現する回路または相互接続されたいくつかの回路を表すことができる。
【００４８】
図２のブロック図および図３Ａ〜図４Ｄのオブジェクトは、特定の実行順序を示しているが、実行順序は図示されているものと異なることがありうる点は理解されるであろう。例えば、２つまたはそれ以上のメソッドの実行順序は、図示されている順序と異なるものであってもよい。また、図３Ａ〜図４Ｄにおいて連続して実行するように示されている２つまたはそれ以上のメソッドは、同時に、または部分的に同時に実行することもできる。更に、ユーティリティ、アカウンティング、性能測定の強化等のため、またはトラブルシューティング支援プログラムを提供する等のため、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージを、前述の論理の流れに追加することができる。そのような変形形態のすべてが本発明に包含されることは理解されよう。上述の種々の論理機能を実行するためソフトウェアやハードウェアが当業者によって作成されることができる範囲内で、図２のブロック図および図３Ａ〜図４Ｄのオブジェクトは当業者にとって比較的自明であり理解されるものであろう。
【００４９】
また、無線印刷インターフェース１３６(図２)および対応する無線印刷インターフェース・キットがソフトウェアまたはコードを含む場合、両者は、コンピュータ・システムまたは他のシステムのプロセッサのような命令実行システムによる使用またはそのような命令実行システムと共に使用するため、どのようなコンピュータ読取可能媒体でも具現化することができる。この意味で、無線印刷インターフェース１３６および対応する無線印刷インターフェース・キットは、例えば、コンピュータ読取可能媒体からフェッチされ命令実行システムによって実行されることができる命令および宣言を含むステートメントを含むことができる。本発明の文脈において、「コンピュータ読取可能媒体」は、命令実行システムによる使用または命令実行システムと共に使用するため、無線印刷インターフェース１３６(図２)および対応する無線印刷インターフェース・キットを包含、保存または維持することができるどのような媒体でもよい。コンピュータ読取可能媒体は、例えば電子、磁気、光学、電磁気、赤外線または半導体媒体のような多数の物理媒体のうちの任意の媒体を含むことができる。コンピュータ読取可能媒体のより具体的な例には、磁気テープ、磁気フロッピーディスク、磁気ハードディスクまたはコンパクト・ディスクが含まれるが、これらに限定されない。また、コンピュータ読取可能媒体は、例えばランダム・アクセス・メモリ(ＲＡＭ)、スタティック・ランダム・アクセス・メモリ(ＳＲＡＭ)およびダイナミック・ランダム・アクセス・メモリ(ＤＲＡＭ)、またはマグネティック・ランダム・アクセス・メモリ(ＭＲＡＭ)を含むこともできる。更に、コンピュータ読取媒体は、読み取り専用メモリ(ＲＯＭ)、プログラマブル読み取り専用メモリ(ＰＲＯＭ)、消去可能なプログラマブル読み取り専用メモリ(ＥＰＲＯＭ)、電気的に消去可能なプログラマブル読み取り専用メモリ(ＥＥＰＲＯＭ)、または他の種類のメモリ素子でも可能であることができる。
【００５０】
本発明が特定の好ましい実施形態に関連して提示および記述されてはいるが、本明細書の教示および理解に基づいて、当業者が、均等の形態および変形形態を実施することができる点は明らかである。本発明はそのような均等の形態および変形形態を含む。
【図面の簡単な説明】
【図１】本発明の１つの側面に従う無線印刷構成のブロック図。
【図２】図１の無線印刷構成におけるプラットホーム装置上で使用される無線印刷インターフェースのブロック図。
【図３Ａ】図２の無線印刷インターフェースにおいてアプリケーション・プログラミング・インターフェース(ＡＰＩ)として動作するいくつかのオブジェクトの一部を示すブロック図。
【図３Ｂ】図２の無線印刷インターフェースにおいてアプリケーション・プログラミング・インターフェース(ＡＰＩ)として動作するいくつかのオブジェクトの一部を示すブロック図。
【図３Ｃ】図２の無線印刷インターフェースにおいてアプリケーション・プログラミング・インターフェース(ＡＰＩ)として動作するいくつかのオブジェクトの一部を示すブロック図。
【図３Ｄ】図２の無線印刷インターフェースにおいてアプリケーション・プログラミング・インターフェース(ＡＰＩ)として動作するいくつかのオブジェクトの一部を示すブロック図。
【図３Ｅ】図２の無線印刷インターフェースにおいてアプリケーション・プログラミング・インターフェース(ＡＰＩ)として動作するいくつかのオブジェクトの一部を示すブロック図。
【図３Ｆ】図２の無線印刷インターフェースにおいてアプリケーション・プログラミング・インターフェース(ＡＰＩ)として動作するいくつかのオブジェクトの一部を示すブロック図。
【図３Ｇ】図２の無線印刷インターフェースにおいてアプリケーション・プログラミング・インターフェース(ＡＰＩ)として動作するいくつかのオブジェクトの一部を示すブロック図。
【図４Ａ】あらかじめ定められたプラットホームの動作について、図２の無線印刷インターフェースを適応させるよう構成可能ないくつかのオブジェクトの一部を示すブロック図である。
【図４Ｂ】あらかじめ定められたプラットホームの動作について、図２の無線印刷インターフェースを適応させるよう構成可能ないくつかのオブジェクトの一部を示すブロック図である。
【図４Ｃ】あらかじめ定められたプラットホームの動作について、図２の無線印刷インターフェースを適応させるよう構成可能ないくつかのオブジェクトの一部を示すブロック図である。
【図４Ｄ】あらかじめ定められたプラットホームの動作について、図２の無線印刷インターフェースを適応させるよう構成可能ないくつかのオブジェクトの一部を示すブロック図である。
【符号の説明】
１００    無線印刷構成
１０３    プラットホーム
１０６    プリンタ
１１３    プロセッサ
１１６    メモリ
１１９    ローカル・インターフェース
１２３    無線インターフェース
１２６    オペレーティング・システム
１２９    アプリケーション
１３３    印刷機能
１３６    無線印刷インターフェース
１４３    印刷プロファイル・オブジェクト
１４６    ＡＰＩオブジェクト
１４９    適応オブジェクト
【図１】
0003647827.tif 000002
【図２】
0003647827.tif 000003
【図３Ａ】
0003647827.tif 000004
【図３Ｂ】
0003647827.tif 000005
【図３Ｃ】
0003647827.tif 000006
【図３Ｄ】
0003647827.tif 000007
【図３Ｅ】
0003647827.tif 000008
【図３Ｆ】
0003647827.tif 000009
【図３Ｇ】
0003647827.tif 000010
【図４Ａ】
0003647827.tif 000011
【図４Ｂ】
0003647827.tif 000012
【図４Ｃ】
0003647827.tif 000013
【図４Ｄ】
0003647827.tif 000014