(57)【要約】 【課題】  ユーザが、プリンタのそれぞれについてクライアントまたはサーバを設定する必要なしに、その場に応じたプリンタを用いることを可能にする分散型印刷システムを提供すること。【解決手段】  本発明の分散型周辺デバイス制御方法は、周辺デバイスにリクエストするステップと、デバイス識別情報を情報デバイスと通信するサーバに送信するステップと、デバイスドライバをデバイス識別情報に応じて選択するステップと、デバイス依存データを生成するステップとを包含し、仮想ポートを選択されたデバイスドライバと関連付けるステップと、デバイス依存データを仮想ポートに送信し、その後、周辺デバイスが指定したタスクを行うことを可能にするように、情報デバイスを介して周辺デバイスに伝送する、ステップとによって特徴付けられる。【選択図】  図３
2004326776.tif 000002
【特許請求の範囲】
【請求項１】
情報デバイスと該情報デバイスと通信する周辺デバイスとの間のインタラクションを制御する分散型周辺デバイス制御方法であって、
指定したタスクを行うように該周辺デバイスにリクエストするステップと、
該周辺デバイスを識別するデバイス識別情報を、該情報デバイスと通信するサーバに送信するステップであって、該サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、ステップと、
該周辺デバイスに対応するデバイスドライバを、該デバイス識別情報に応じて選択するステップと、
該情報デバイスの代わりに、該サーバに、該選択されたデバイスドライバを用いて該タスクの実行に関する周辺デバイス依存処理動作を行わせて、デバイス依存データを生成するステップと
を包含し、
該サーバにおけ仮想ポートを、該サーバと該情報デバイスとの間の通信リンクの一部を形成するように確立し、該仮想ポートを該選択されたデバイスドライバと関連付けるステップと、
該デバイス依存データを、該仮想ポートに送信し、その後、該周辺デバイスが該指定したタスクを行うことを可能にするように、該情報デバイスを介して該周辺デバイスに伝送する、ステップとによって特徴付けられる、分散型周辺デバイス制御方法。
【請求項２】
前記仮想ポートは、前記サーバのオペレーティングシステムにとって、前記周辺デバイスが取り付けられた物理ポートに対するインターフェースであるように見えるように確立され、前記選択されたデバイスドライバと関連付けられるが、前記仮想ポートに送信された任意のデータは、該周辺デバイスに直接送信されるのではなく、前記通信リンクを介して該情報デバイスに転送される、請求項１に記載の方法。
【請求項３】
前記サーバが複数のアプリケーションへのアクセスを有し、行われるべき前記指定したタスクに応じてアプリケーションを選択するステップをさらに包含し、前記デバイス依存処理動作は、該選択されたアプリケーションの制御の下で、前記選択されたデバイスドライバとのインタラクションにおいて行われる、請求項１または２に記載の方法。
【請求項４】
前記サーバは、デバイス独立処理動作を行う複数のアプリケーションへのアクセスを有し、アプリケーションを選択するステップと、前記情報デバイスの代わりに、該サーバに、該選択されたアプリケーションを用いて周辺デバイス独立動作を行わせるステップとを包含する、請求項１、２または３に記載の方法。
【請求項５】
前記アプリケーションは、行われるべき前記指定したタスクに応じて選択される、請求項４に記載の方法。
【請求項６】
前記デバイス依存データを、前記サーバにおいてバッファリングして、該データが前記情報デバイスに送信される速度を制御するステップをさらに包含する、請求項１〜５のいずれかに記載の方法。
【請求項７】
前記デバイス依存データの前記サーバにおけるバッファリングを、前記周辺デバイスから受信した、該周辺デバイスの状態を示す制御信号に応じて制御する、請求項６に記載の方法。
【請求項８】
前記デバイス依存データの前記サーバにおけるバッファリングを、前記情報デバイスにおいて該デバイス依存データをバッファリングするために用いられるメモリの充満度に応じて制御する、請求項６または７に記載の方法。
【請求項９】
前記デバイス依存データを、前記情報デバイスにおいてバッファリングして、該データが前記周辺デバイスに送信される速度を制御するステップをさらに包含する、請求項１〜８のいずれかに記載の方法。
【請求項１０】
前記情報デバイスは、前記指定したタスクを行うために必要とされる全ての前記デバイス依存データを前記サーバから受信する前に、デバイス依存データを前記周辺デバイスに送信し始める、請求項１〜９のいずれかに記載の方法。
【請求項１１】
前記デバイス依存データをサーバにおいて圧縮するステップと、前記デバイス依存データを前記情報デバイスにおいて解凍するステップとをさらに包含する、請求項１〜１０のいずれかに記載の方法。
【請求項１２】
前記デバイス依存データを、前記周辺デバイスに送信する前に、前記情報デバイスにおいて処理するステップをさらに包含する、請求項１〜１１のいずれかに記載の方法。
【請求項１３】
前記周辺デバイスは、出力デバイスを含む、請求項１〜１２のいずれかに記載の方法。
【請求項１４】
前記出力デバイスはプリンタであり、前記指定したタスクは、選択されたドキュメントを印刷する印刷動作を行うことであり、前記デバイス依存データは、プリンタコマンドである、請求項１３に記載の方法。
【請求項１５】
前記選択されたドキュメントを前記情報デバイスから前記サーバに送信するステップをさらに包含する、請求項１４に記載の方法。
【請求項１６】
前記選択されたドキュメントをドキュメントサーバから取り出すステップをさらに包含する、請求項１４に記載の方法。
【請求項１７】
前記ドキュメントサーバは、前記サーバにとってアクセス可能な別個のデバイスに位置する、請求項１６に記載の方法。
【請求項１８】
前記サーバが複数のアプリケーションへのアクセスを有し、行われるべき前記指定したタスクに応じてアプリケーションを選択するステップをさらに包含し、前記デバイス依存処理動作は、該選択されたアプリケーションの制御の下で、前記選択されたデバイスドライバとのインタラクションにおいて行われ、
前記アプリケーションは、前記ドキュメントのタイプを調べることによって選択される、請求項１４〜１７のいずれかに記載の方法。
【請求項１９】
前記アプリケーションは、前記ドキュメントのファイル名拡張子を調べることによって選択される、請求項１８に記載の方法。
【請求項２０】
前記周辺デバイスは、入力デバイスを含む、請求項１〜１９のいずれかに記載の方法。
【請求項２１】
前記入力デバイスはスキャナであり、前記指定したタスクは、ドキュメントをスキャンするためのスキャン動作を行うことであり、前記デバイス依存データは、指定したタスクを行うように該スキャナを制御するスキャナコマンドである、請求項２０に記載の方法。
【請求項２２】
情報デバイスと該情報デバイスと通信する周辺デバイスとの間のインタラクションを制御する分散型周辺デバイス制御方法であって、
指定したタスクを行うように該周辺デバイスにリクエストして、デバイス依存データを生成するステップと、
該周辺デバイスを識別するデバイス識別情報を、該情報デバイスと通信するサーバに送信するステップであって、該サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、ステップと、
該周辺デバイスに対応するデバイスドライバを、該デバイス識別情報に応じて選択するステップと
を包含し、
該サーバにおける仮想ポートを、該サーバと該情報デバイスとの間の通信リンクの一部を形成するように確立し、該仮想ポートを該選択されたデバイスドライバと関連付けるステップと、
該デバイス依存データを、該周辺デバイスから、該情報デバイスを介して該サーバに送信し、該仮想ポートにおいて受信するステップと、
該情報デバイスの代わりに、該サーバに、該選択されたデバイスドライバを用いて該仮想ポートにおいて受信された該デバイス依存データについて、周辺デバイス依存処理動作を行わせるステップとによって特徴付けられる、分散型周辺デバイス制御方法。
【請求項２３】
前記仮想ポートは、該仮想ポートにおいて受信した任意のデータが前記周辺デバイスから発生したように見えるように、前記サーバのオペレーティングシステムにとって、該周辺デバイスが取り付けられた物理ポートに対するインターフェースであるように見えるように確立され、前記選択されたデバイスドライバと関連付けられる、請求項２２に記載の方法。
【請求項２４】
前記サーバが複数のアプリケーションへのアクセスを有し、前記周辺デバイスにおいて行われた前記指定したタスクに応じてアプリケーションを選択するステップをさらに包含し、前記デバイス依存処理動作は、該選択されたアプリケーションの制御の下で、前記選択されたデバイスドライバとのインタラクションにおいて行われる、請求項２２または２３に記載の方法。
【請求項２５】
前記サーバは、デバイス独立処理動作を行う複数のアプリケーションへのアクセスを有し、アプリケーションを選択するステップと、前記情報デバイスの代わりに、該サーバに、該選択されたアプリケーションを用いて周辺デバイス独立動作を行わせるステップとを包含する、請求項２２、２３または２４に記載の方法。
【請求項２６】
前記サーバにおいて行われた前記デバイス依存処理動作は、前記選択されたアプリケーションによって用いられるデバイス独立データを生成するために、該デバイス依存データを処理する動作である、請求項２４または２５に記載の方法。
【請求項２７】
前記周辺デバイスは、前記デバイス依存データを生成するための入力デバイスを含む、請求項２２〜２６のいずれかに記載の方法。
【請求項２８】
前記入力デバイスはスキャナであり、前記指定したタスクは、ドキュメントをスキャンするためのスキャン動作を行うことである、請求項２７に記載の方法。
【請求項２９】
前記通信リンクは第１の通信リンクであり、前記情報デバイスは第２の通信リンクを介して前記周辺デバイスと通信し、該第２の通信リンクの一部を形成するように仮想ポートを前記情報デバイスにおいて作成するステップをさらに包含する、請求項１〜２８のいずれかに記載の方法。
【請求項３０】
前記通信リンクは第１の通信リンクであり、前記情報デバイスは第２の通信リンクを介して前記周辺デバイスと通信し、該第１の通信リンクの一部を形成するように仮想ポートを前記情報デバイスにおいて作成するステップをさらに包含する、請求項１〜２９のいずれかに記載の方法。
【請求項３１】
前記デバイス識別情報を前記周辺デバイスからプラグアンドプレイ仕様によって取得するステップをさらに包含する、請求項１〜３０のいずれかに記載の方法。
【請求項３２】
前記複数の周辺デバイスドライバのうちの少なくとも１つは、前記サーバに位置する、請求項１〜３１のいずれかに記載の方法。
【請求項３３】
前記複数の周辺デバイスドライバのうちの少なくとも１つは、前記サーバにとってアクセス可能な別個のデバイスドライバに位置する、請求項１〜３２のいずれかに記載の方法。
【請求項３４】
前記ステップは、前記情報デバイスによって制御される、請求項１〜３３のいずれかに記載の方法。
【請求項３５】
単数または複数の前記仮想ポートは、前記情報デバイスの制御の下で確立される、請求項１〜３４のいずれかに記載の方法。
【請求項３６】
前記情報デバイスは、リソースが限られた情報デバイスである、請求項１〜３５のいずれかに記載の方法。
【請求項３７】
前記情報デバイスにおいて周辺デバイス独立処理動作を行うステップをさらに包含する、請求項１〜３６のいずれかに記載の方法。
【請求項３８】
前記サーバは複数の周辺デバイスドライバへのアクセスを有する、請求項１〜３７のいずれかに記載の方法。
【請求項３９】
分散型周辺デバイス制御システムであって、該システムは、該システムの情報デバイスと該情報デバイスと通信する該システムの周辺デバイスとの間のインタラクションを制御し、
指定したタスクを行うように該周辺デバイスにリクエストする手段と、
該周辺デバイスを識別するデバイス識別情報を、該情報デバイスと通信するサーバに送信する手段であって、該サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、手段と、
該周辺デバイスに対応するデバイスドライバを、該デバイス識別情報に応じて選択する手段と、
該情報デバイスの代わりに、該サーバに、該選択されたデバイスドライバを用いてタスクの実行に関する周辺デバイス依存処理動作を行わせて、デバイス依存データを生成する手段と  
を備え、
該サーバにおける仮想ポートを、該サーバと該情報デバイスとの間の通信リンクの一部を形成するように確立し、該選択されたデバイスドライバを該仮想ポートと関連付ける手段と、
該デバイス依存データを、該仮想ポートに送信し、その後、該周辺デバイスが該指定したタスクを行うことを可能にするように、該情報デバイスを介して該周辺デバイスに伝送する、手段とによって特徴付けられる、分散型周辺デバイス制御システム。
【請求項４０】
分散型周辺デバイス制御システムであって、該システムは、該システムの情報デバイスと該情報デバイスと通信する該システムの周辺デバイスとの間のインタラクションを制御し、
指定したタスクを行うように該周辺デバイスにリクエストして、デバイス依存データを生成する手段と、
該周辺デバイスを識別するデバイス識別情報を、該情報デバイスと通信するサーバに送信する手段であって、該サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、手段と、
該周辺デバイスに対応するデバイスドライバを、該デバイス識別情報に応じて選択する手段と
を備え、
該サーバにおける仮想ポートを、該サーバと該情報デバイスとの間の通信リンクの一部を形成するように確立し、該選択されたデバイスドライバを該仮想ポートと関連付ける手段と、
該デバイス依存データを、該周辺デバイスから、該情報デバイスを介して該サーバに送信し、該仮想ポートにおいて受信する手段と、
該情報デバイスの代わりに、該サーバに、該選択されたデバイスドライバを用いて該仮想ポートにおいて受信された該デバイス依存データについて、周辺デバイス依存処理動作を行わせる手段とによって特徴付けられる、分散型周辺デバイス制御システム。
【請求項４１】
請求項１〜３８のいずれかに記載の方法を行うように、情報処理デバイスまたは分散型周辺デバイス制御システムを制御するオペレーティングプログラム。
【請求項４２】
キャリアー媒体に担持される、請求項４１に記載のオペレーティングプログラム。
【請求項４３】
前記キャリアー媒体は伝送媒体である、請求項４２に記載のオペレーティングプログラム。
【請求項４４】
前記キャリアー媒体は格納媒体である、請求項４２に記載のオペレーティングプログラム。
【請求項４５】
請求項１〜３８のいずれかに記載の方法における使用に適合された情報処理デバイス。
【請求項４６】
請求項１〜３８のいずれかに記載の方法における使用に適合されたサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散型周辺デバイス制御システムおよび方法に関する。
【背景技術】
【０００２】
ドキュメントを印刷する機能を有するデバイスは、通常、以下の情報およびソフトウェアへのアクセスを必要とする。このような情報およびソフトウェアとして、（ａ）ドキュメントデータ、（ｂ）ドキュメントを表現するために必要となるフォント等の他のデータと共に、ドキュメントをロードおよび処理することができるアプリケーションソフトウェア、（ｃ）表示可能な形式で出力を生成するためにアプリケーションソフトウェアによって用いられる、オペレーティングシステムのグラフィカルおよび印刷ソフトウェア、（ｄ）所与のタイプ（メーカーおよび型）のプリンタに適した出力を生成するために印刷システムが用いるソフトウェアモジュールであるデバイスドライバがある。ここでそれぞれのタイプのプリンタは、異なるデバイスドライバを必要とし得る。
【０００３】
これらのプログラムおよびデータは、通常、多量のコンピュータメモリおよびディスクスペースを消費し、ドキュメントの印刷の準備は、かなりの量の処理を必要とし得る。
【０００４】
代表的なモバイル情報デバイス、例えば、ＰＤＡ（携帯情報端末）または携帯電話は、リソースおよび処理速度の点において、デスクトップマシンと比較するとかなり制限されており、従って、多くのドキュメントタイプの完全な印刷機能をローカルでサポートすることができない。さらに、ＩｒＤＡ、ブルートゥース（Ｂｌｕｅｔｏｏｔｈ）、およびワイヤレスＬＡＮなどのワイヤレス接続技術の利用可能性が増大するにつれて、モバイルデバイスのユーザはより広い範囲のプリンタからその場に応じたプリンタにアクセスするようになる可能性がある。
【０００５】
ハンドヘルドＰＤＡは、通常、一般的な「大多数の人々に受け入れられている」プリンタドライバを利用し、ドキュメントビューアアプリケーションおよびシステムソフトウェアを制限することによって、ドキュメント処理性能および印刷性能を縮小している。より小型のデバイス（携帯電話など）は、通常、印刷能力もドキュメント処理能力も全く有していない。
【０００６】
図１は、パーソナルコンピュータ（ＰＣ）２からローカル接続されたプリンタ１２までの代表的な印刷のための構成を示す。図１に示す装置を利用する代表的な印刷処理についての以下の説明は、Ｍｉｃｒｏｓｏｆｔ（Ｒ）Ｗｉｎｄｏｗｓ（Ｒ）オペレーティングシステムに基づいている。
【０００７】
アプリケーションプログラム４は、オペレーティングシステムに対して、グラフカルデバイスインターフェース（ＧＤＩ）コマンドとして公知のグラフィカルコマンドを発する。完全なページを表現するために十分なＧＤＩコマンドをオペレーティングシステム６が受信するとき、そのデータは、デバイスドライバインターフェース（ＤＤＩ）コマンドに変換され、デバイスドライバ８に送信される。デバイスドライバ８は、これらのＤＤＩコマンドをローデバイスコマンド（プリンタコマンド）に変換する。そのローデバイスコマンド（プリンタコマンド）は、オペレーティングシステム６に戻され、オペレーティングシステム６は、そのデータを、印刷のために、プリンタポート１０を介してプリンタ１２へ送信する。
【０００８】
この構成では、印刷のために必要とされるソフトウェアは、全てＰＣ２に配置される。印刷を開始する前に、このシステムでは、ＰＣ２に取り付けられた特定のプリンタ１２のためのデバイスドライバ８をインストールし、プリンタ１２が接続されたプリンタポート１０を設定することによってセットアップする必要がある。
【０００９】
図２は、ネットワーク上のＰＣ２から、ネットワーク上のサーバ１４に接続されたプリンタ１２までの印刷のための構成を示す。この構成により、ＰＣ２が、ネットワーク上のサーバに接続された複数のプリンタのいずれか１つから印刷することが可能になる。「Ｐｏｉｎｔ−ａｎｄ−ｐｒｉｎｔ  ｉｎ  ａ  ｄｉｓｔｒｉｂｕｔｅｄ  ｅｎｖｉｒｏｎｍｅｎｔ」という名称の特許文献１は、この構成を用いたシステムについて記載している。
【００１０】
図２の構成は、図１を参照して記載された構成と２つの主な点で異なる。第１の点は、デバイスドライバ８は、最初はサーバ１４に格納され、クライアント（すなわち、ＰＣ２）が要求するときにのみ、サーバ１４のオペレーティングシステム１６によってネットワークを介して伝送されることである。第２の点は、デバイスドライバ８によって出力されたローデバイスコマンド（プリンタコマンド）は、ネットワークを介してサーバ１４に伝送され、サーバ１４は、プリンタ１２に接続されたプリンタポート１０を介してコマンドを送信することである。
【００１１】
「Ｐｒｏｖｉｄｉｎｇ  ｌｏｃａｌ  ｐｒｉｎｔｉｎｇ  ｏｎ  ａ  ｔｈｉｎ  ｃｌｉｅｎｔ」という名称の特許文献２は、ローカル接続されたプリンタから印刷するが、処理の大部分をサーバに配置されたリソースを利用して行うシステムについて記載する。クライアント上で実行するアプリケーションソフトウェアは、グラフィカルコマンドをクライアントオペレーティングシステムに発する。そのコマンドは、ロー印刷データを生成するためにローカルデバイスドライバを呼び出すことなく、デバイス独立印刷ファイルに変換される。その後、そのデバイス独立データは、ネットワークを介してサーバに送信され、サーバは、サーバ上に配置されるデバイスドライバを用いて、そのデバイス独立データをデバイス依存データに変換する。そのデバイス依存データは、その後、サーバからプリンタまでクライアントを介して伝送される。クライアント上で印刷データをローカルスプールすることは、サーバからクライアントまでのデバイス依存データの流れを制御することによって、回避される。プリンタは、アプリケーションを実行しているクライアント以外のクライアントに接続され得る。その場に応じてプリンタを設定する方法は、特許文献２には記載されていない。サーバ（またはネットワーク上の他のサーバ）が、所与のプリンタ用のドライバで設定されていることが想定されている。
【００１２】
「Ｐｒｉｎｔｅｒ  ｄｒｉｖｅｒ  ｓｙｓｔｅｍ  ｆｏｒ  ｒｅｍｏｔｅ  ｐｒｉｎｔｉｎｇ」という名称の特許文献３は、印刷ジョブがサーバ上で処理されるシステムについて記載する。このシステムでは、サーバ上にインストールされた「ユニバーサル」プリンタドライバを利用して、ユニバーサル印刷ファイルを生成する。このファイルは、プリンタに直接送信され得る標準的なタイプのファイルである。
【００１３】
特許文献４、特許文献５、特許文献６、特許文献７、および特許文献８は、それぞれ、情報デバイスとその情報デバイスと通信する周辺デバイスとの間のインタラクションを制御する分散型周辺デバイス制御方法について開示していると考えられる。この方法は、特定のタスクを実行するように周辺デバイスにリクエストするステップと、周辺デバイスを識別するデバイス識別情報を情報デバイスと通信するサーバに送信するステップであって、このサーバは、少なくとも１つの周辺デバイスドライバへのアクセスを有する、ステップと、デバイス識別情報に応じて周辺デバイスに対応するデバイスドライバを選択するステップと、情報デバイスの代わりに、このサーバに、選択されたデバイスドライバを用いてタスクの実行に関する周辺デバイス依存処理動作を行わせて、デバイス依存データを生成するステップとを含む。
【００１４】
特許文献９は、モバイルコンピュータデバイス、スキャナまたはマルチファンクションプリンタならびにサーバを含むシステムについて開示する。スキャナは、紙のドキュメントをスキャンし、サーバに送信される電子ドキュメントにする。サーバは、デバイス独立処理を必要としない。サーバは、モバイルコンピュータデバイスが電子ドキュメントを取り込む前の一時的な記憶装置として機能する。モバイルコンピュータデバイスは、スキャナとサーバとの間のゲートウェイとして機能していない。
【特許文献１】米国特許第５，６９９，４９５号明細書
【特許文献２】米国特許第６，２０１，６１１号明細書
【特許文献３】米国特許出願公開第２００２／００１８２３４号明細書
【特許文献４】欧州特許出願公開第１２９１７８６号明細書
【特許文献５】英国特許出願公開第２３６５５９９号明細書
【特許文献６】国際公開第０１／０４２８９４号パンフレット
【特許文献７】国際公開第０２／０４１１０７号パンフレット
【特許文献８】特開２００３−１１４７７３号
【特許文献９】米国特許出願公開第２００２／０１９６４７８号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１５】
したがって、ユーザが、プリンタのそれぞれについてクライアントまたはサーバを設定する必要なしに、その場に応じてプリンタを用いることが要望されている。
【課題を解決するための手段】
【００１６】
本発明の第１の局面によると、情報デバイスと情報デバイスと通信する周辺デバイスとの間のインタラクションを制御する分散型周辺デバイス制御方法であって、指定したタスクを行うように周辺デバイスにリクエストするステップと、周辺デバイスを識別するデバイス識別情報を、情報デバイスと通信するサーバに送信するステップであって、サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、ステップと、周辺デバイスに対応するデバイスドライバを、デバイス識別情報に応じて選択するステップと、情報デバイスの代わりに、サーバに、選択されたデバイスドライバを用いてタスクの実行に関する周辺デバイス依存処理動作を行わせて、デバイス依存データを生成するステップとを包含し、サーバにおける仮想ポートを、サーバと情報デバイスとの間の通信リンクの一部を形成するように確立し、仮想ポートを選択されたデバイスドライバと関連付けるステップと、デバイス依存データを、仮想ポートに送信し、その後、周辺デバイスが指定したタスクを行うことを可能にするように、情報デバイスを介して周辺デバイスに伝送する、ステップとによって特徴付けられる、分散型周辺デバイス制御方法が提供される。
【００１７】
仮想ポートは、サーバのオペレーティングシステムにとって、周辺デバイスが取り付けられた物理ポートに対するインターフェースであるように見えるように確立され、選択されたデバイスドライバと関連付けられてもよいが、仮想ポートに送信された任意のデータは、周辺デバイスに直接送信されるのではなく、通信リンクを介して情報デバイスに転送される。
【００１８】
サーバが複数のアプリケーションへのアクセスを有してもよく、上記方法は、行われるべき指定したタスクに応じてアプリケーションを選択するステップをさらに包含してもよく、デバイス依存処理動作は、選択されたアプリケーションの制御の下で、選択されたデバイスドライバとのインタラクションにおいて行われてもよい。アプリケーションは、デバイス独立処理動作を行う必要はない。
【００１９】
サーバは、デバイス独立処理動作を行う複数のアプリケーションへのアクセスを有してもよく、上記方法は、アプリケーションを選択するステップと、情報デバイスの代わりに、サーバに、選択されたアプリケーションを用いてデバイス独立処理動作を行わせるステップとを包含してもよい。アプリケーションは、行われるべき指定したタスクに応じて選択されてもよい。
【００２０】
上記方法は、デバイス依存データを、サーバにおいてバッファリングして、データが情報デバイスに送信される速度を制御するステップをさらに包含してもよい。デバイス依存データのサーバにおけるバッファリングを、周辺デバイスから受信した、周辺デバイスの状態を示す制御信号に応じて制御してもよい。デバイス依存データのサーバにおけるバッファリングを、情報デバイスにおいてデバイス依存データをバッファリングするために用いられるメモリの充満度に応じて制御してもよい。
【００２１】
上記方法は、デバイス依存データを、情報デバイスにおいてバッファリングして、データが周辺デバイスに送信される速度を制御するステップをさらに包含してもよい。
【００２２】
情報デバイスは、指定したタスクを行うために必要とされる全てのデバイス依存データをサーバから受信する前に、デバイス依存データを周辺デバイスに送信し始めることが好ましい。
【００２３】
上記方法は、デバイス依存データをサーバにおいて圧縮するステップと、デバイス依存データを情報デバイスにおいて解凍するステップとをさらに包含してもよい。
【００２４】
上記方法は、デバイス依存データを、周辺デバイスに送信する前に、情報デバイスにおいて処理するステップをさらに包含してもよい。従って、周辺デバイスに送信されたデバイス依存データは、情報デバイスにおいて受信されるデバイス依存データと同一でなくてもよい。
【００２５】
周辺デバイスは、出力デバイスを含んでもよい。
【００２６】
周辺デバイスはプリンタであってもよく、この場合、指定したタスクは、選択されたドキュメントを印刷する印刷動作を行うことであってもよく、デバイス依存データは、プリンタコマンドであってもよい。上記方法は、選択されたドキュメントを情報デバイスからサーバに送信するステップをさらに包含してもよいし、選択されたドキュメントをドキュメントサーバから取り出すステップをさらに包含してもよい。ドキュメントサーバは、サーバにとってアクセス可能な別個のデバイスに位置してもよい。アプリケーションは、ドキュメントのタイプを調べることによって、例えば、ドキュメントのファイル名拡張子を調べることによって選択されてもよい。
【００２７】
周辺デバイスは、入力デバイスを含んでもよい。この場合、上記方法は、デバイス依存データを生成するために周辺デバイスにおいて指定したタスクを行うステップと、その後サーバに伝送するためにデバイス依存データを情報デバイスに送信するステップとをさらに包含してもよい。サーバにおいて行われたデバイス依存処理動作は、選択されたアプリケーションによって用いられるデバイス独立データを生成するために、デバイス依存データを処理する動作であってもよい。アプリケーションは、周辺デバイスにおいて行われるべき指定したタスクに応じて選択されてもよい。デバイス依存データが情報デバイスに送信される速度は、情報デバイスから受信した、情報デバイスの状態を示す制御信号に応じて制御されてもよい。デバイス依存データが情報デバイスに送信される速度は、情報デバイスにおいてデバイス依存データをバッファリングするために用いられるメモリの充満度に応じて制御されてもよい。上記方法は、デバイス依存データを、情報デバイスにおいてバッファリングして、データがサーバに送信される速度を制御するステップをさらに包含してもよい。上記方法は、デバイス依存データを情報デバイスにおいて圧縮するステップと、デバイス依存データをサーバにおいて解凍するステップとをさらに包含してもよい。上記方法は、デバイス依存データを、サーバに送信する前に、情報デバイスにおいて処理するステップをさらに包含してもよい。
【００２８】
入力デバイスはスキャナであってもよく、指定したタスクは、ドキュメントをスキャンするためのスキャン動作を行うことであってもよく、デバイス依存データは、指定したタスクを行うようにスキャナを制御するスキャナコマンドであってもよい。
【００２９】
本発明の第２の局面によると、情報デバイスと情報デバイスと通信する周辺デバイスとの間のインタラクションを制御する分散型周辺デバイス制御方法であって、指定したタスクを行うように周辺デバイスにリクエストして、デバイス依存データを生成するステップと、周辺デバイスを識別するデバイス識別情報を、情報デバイスと通信するサーバに送信するステップであって、サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、ステップと、周辺デバイスに対応するデバイスドライバを、デバイス識別情報に応じて選択するステップとを包含し、サーバにおける仮想ポートを、サーバと情報デバイスとの間の通信リンクの一部を形成するように確立し、仮想ポートを選択されたデバイスドライバと関連付けるステップと、デバイス依存データを、周辺デバイスから、情報デバイスを介してサーバに送信し、仮想ポートにおいて受信するステップと、情報デバイスの代わりに、サーバに、選択されたデバイスドライバを用いて仮想ポートにおいて受信されたデバイス依存データについて、周辺デバイス依存処理動作を行わせるステップとによって特徴付けられる、分散型周辺デバイス制御方法が提供される。
【００３０】
仮想ポートは、仮想ポートにおいて受信した任意のデータが周辺デバイスから発生したように見えるように、サーバのオペレーティングシステムにとって、周辺デバイスが取り付けられた物理ポートに対するインターフェースであるように見えるように確立され、選択されたデバイスドライバと関連付けられてもよい。
【００３１】
前記サーバが複数のアプリケーションへのアクセスを有してもよく、上記方法は周辺デバイスにおいて行われた指定したタスクに応じてアプリケーションを選択するステップをさらに包含してもよく、デバイス依存処理動作は、選択されたアプリケーションの制御の下で、選択されたデバイスドライバとのインタラクションにおいて行われてもよい。アプリケーションは、デバイス独立処理動作を行う必要はない。
【００３２】
サーバは、デバイス独立処理動作を行う複数のアプリケーションへのアクセスを有してもよく、上記方法は、アプリケーションを選択するステップと、情報デバイスの代わりに、サーバに、選択されたアプリケーションを用いてデバイス独立処理動作を行わせるステップとを包含してもよい。
【００３３】
サーバにおいて行われたデバイス依存処理動作は、選択されたアプリケーションによって用いられるデバイス独立データを生成するために、デバイス依存データを処理する動作であってもよい。
【００３４】
周辺デバイスは、デバイス依存データを生成するための入力デバイスを含んでもよい。
【００３５】
入力デバイスはスキャナであり、指定したタスクは、ドキュメントをスキャンするためのスキャン動作を行うことであってもよい。
【００３６】
第１および第２の局面において、通信リンクは第１の通信リンクであってもよく、情報デバイスは第２の通信リンクを介して周辺デバイスと通信してもよく、上記方法は、第２の通信リンクの一部を形成するように仮想ポートを情報デバイスにおいて作成するステップをさらに包含してもよい。
【００３７】
通信リンクは第１の通信リンクであってもよく、情報デバイスは第２の通信リンクを介して周辺デバイスと通信してもよく、上記方法は、第１の通信リンクの一部を形成するように仮想ポートを情報デバイスにおいて作成するステップをさらに包含してもよい。
【００３８】
上記方法は、デバイス識別情報を周辺デバイスからプラグアンドプレイ仕様によって取得するステップをさらに包含してもよい。複数の周辺デバイスドライバのうちの少なくとも１つは、サーバに位置してもよい。複数の周辺デバイスドライバのうちの少なくとも１つは、サーバによってアクセス可能な別個のデバイスドライバに位置してもよい。ステップは、情報デバイスによって制御されてもよい。単数または複数の仮想ポートは、情報デバイスの制御の下で確立されてもよい。上記方法は、情報デバイスにおいて周辺デバイス独立処理動作を行うステップをさらに包含してもよい。
【００３９】
サーバは複数の周辺デバイスドライバへのアクセスを有してもよい。
【００４０】
第１および第２の通信リンクは、ワイヤレスリンク、例えば、Ｂｌｕｅｔｏｏｔｈ、ＩｒＤＡ、またはＷｉＦｉリンクであってもよい。これらは、ＩＥＥＥ８０２．１１規格に準拠し得る。
【００４１】
あるいは、第１および第２の通信リンクは、物理リンク、例えば、ＵＳＢまたはシリアルケーブルリンクであってもよい。
【００４２】
第１および第２の通信リンクは、電気通信リンク、例えば、モバイル電気通信および／またはインターネットリンクであってもよい。
【００４３】
情報デバイスは、リソースが限られた情報デバイスであってよく、また、携帯情報デバイス、例えば、携帯情報端末または携帯電話であってもよい。
【００４４】
本発明の第３の局面によると、分散型周辺デバイス制御システムであって、システムは、システムの情報デバイスと情報デバイスと通信するシステムの周辺デバイスとの間のインタラクションを制御し、指定したタスクを行うように周辺デバイスにリクエストする手段と、周辺デバイスを識別するデバイス識別情報を、情報デバイスと通信するサーバに送信する手段であって、サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、手段と、周辺デバイスに対応するデバイスドライバを、デバイス識別情報に応じて選択する手段と、情報デバイスの代わりに、サーバに、選択されたデバイスドライバを用いてタスクの実行に関する周辺デバイス依存処理動作を行わせて、デバイス依存データを生成する手段とを備え、サーバにおける仮想ポートを、サーバと情報デバイスとの間の通信リンクの一部を形成するように確立し、選択されたデバイスドライバを仮想ポートと関連付ける手段と、デバイス依存データを、仮想ポートに送信し、その後、周辺デバイスが指定したタスクを行うことを可能にするように、情報デバイスを介して周辺デバイスに伝送する、手段とによって特徴付けられる、分散型周辺デバイス制御システムが提供される。
【００４５】
本発明の第４の局面によると、分散型周辺デバイス制御システムであって、システムは、システムの情報デバイスと情報デバイスと通信するシステムの周辺デバイスとの間のインタラクションを制御し、指定したタスクを行うように周辺デバイスにリクエストして、デバイス依存データを生成する手段と、周辺デバイスを識別するデバイス識別情報を、情報デバイスと通信するサーバに送信する手段であって、サーバは少なくとも１つの周辺デバイスドライバへのアクセスを有する、手段と、周辺デバイスに対応するデバイスドライバを、デバイス識別情報に応じて選択する手段とを備え、サーバにおける仮想ポートを、サーバと情報デバイスとの間の通信リンクの一部を形成するように確立し、選択されたデバイスドライバを仮想ポートと関連付ける手段と、デバイス依存データを、周辺デバイスから、情報デバイスを介してサーバに送信し、仮想ポートにおいて受信する手段と、情報デバイスの代わりに、サーバに、選択されたデバイスドライバを用いて仮想ポートにおいて受信されたデバイス依存データについて、周辺デバイス依存処理動作を行わせる手段とによって特徴付けられる、分散型周辺デバイス制御システムが提供される。
【００４６】
本発明の第５の局面によると、本発明の第１および第２の局面による方法を行うように、情報処理デバイスまたは分散型周辺デバイス制御システムを制御するオペレーティングプログラムが提供される。オペレーティングプログラムは、キャリアー媒体、例えば、伝送媒体または格納媒体に担持されてもよい。
【００４７】
本発明の第６の局面によると、本発明の第１および第２の局面による方法における使用に適合された情報処理装置が提供される。
【００４８】
本発明の第７の局面によると、本発明の第１および第２の局面による方法における使用に適合されたサーバが提供される。
【発明の効果】
【００４９】
本発明によれば、ユーザが、プリンタのそれぞれについてクライアントまたはサーバを設定する必要なしに、その場に応じたプリンタを用いることを可能にする分散型印刷システムを提供することができる。
【発明を実施するための最良の形態】
【００５０】
例示のために添付の図面を参考にしながら、説明される。
【００５１】
図３は、本発明の一実施形態による分散型印刷システムのブロック図である。分散型印刷システムは、ＰＤＡ２０と、プリンタ２８と、サーバ３０とを含む。ＰＤＡ２０は、プリンタ２８およびサーバ３０と通信する。ＰＤＡ２０は、印刷サービスクライアント２２と、プリンタコントローラ２４と、ポートエミュレータ２６とを含む。印刷サービスクライアント２２は、ポートエミュレータ２６およびプリンタコントローラ２４と通信し、ポートエミュレータ２６およびプリンタコントローラ２４は、互いに直接通信する。サーバ３０は、ドキュメントサーバ３２、ドライバデータベース３４、仮想プリンタポート３８、プリンタドライバ４０およびアプリケーションプログラム４２と通信するドキュメント印刷サービス３６を含む。仮想プリンタポート３８、プリンタドライバ４０およびアプリケーションプログラム４２は、サーバ３０のオペレーティングシステム４４と通信する。
【００５２】
次に、図３に示す分散型印刷システムの動作を、図４のフローチャートを参照しながら説明する。
【００５３】
ＰＤＡ２０上のクライアントソフトウェア２２は、通信ポートを介してプリンタ２８との接続を確立する（ステップＳ１）。この実施形態において、通信ポートは、ポートエミュレータ２６によって提供される。ポートエミュレータ２６は、ＢｌｕｅｔｏｏｔｈまたはＩｒＤＡのようなワイヤレスリンクを介してデータを送受信する。クライアントＰＤＡ２０は、その後、ネットワークを介してサーバ３０のドキュメント印刷サービス３６への接続を確立する（ステップＳ２）。
【００５４】
クライアントソフトウェア２２は、プリンタ２８のタイプ（例えば、メーカーおよび型）についての情報を取得する（ステップＳ３）。例えば、プラグアンドプレイ外部ＣＯＭデバイス仕様は、シリアル通信ポートによって接続された周辺デバイスの自動設定を行うメカニズムを示す。パラレルポートおよび他のタイプの接続のための同様の仕様がある。パーソナルコンピュータと共に用いられるように設計されたプリンタの大部分は、プラグアンドプレイ仕様に準拠し、周辺デバイスのタイプの自動識別を可能にする。
【００５５】
その後、ＰＤＡ２０は、プリンタ２８のプリンタタイプについての情報をサーバ３０に送信する（ステップＳ４）。サーバ３０は、プリンタタイプ情報を用いて、ドライバデータベース３４において必要とされるプリンタドライバを検索する。（ステップＳ５）。ドライバデータベース３４は、プリンタ２８に適合するデバイスドライバを提供すると想定される。ＰＤＡ２０は、リクエストされたドキュメントのための印刷リクエストをサーバ３０に送信する（ステップＳ６）。
【００５６】
その後、サーバ３０は、仮想プリンタポート３８を作成する。仮想通信ポートは、オペレーティングシステム４４にとって、物理的通信ポートへのインターフェースとして見えるソフトウェアコンポーネントである。ポートに書き込まれるか、またはポートから読み出される任意のデータは、物理ポートに取り付けられたデバイスではなく、他の何らかのプロセスに送信されるか、またはそのようなプロセスから受信される。この場合、仮想プリンタポート３８に書き込まれたデータは、ネットワークを介してＰＤＡ２０へと送信され、ＰＤＡ２０からポートエミュレータ２６を介してプリンタ２８に送信される。
【００５７】
オペレーティングシステムについての文脈において、「プリンタ」は、概して、図３のプリンタドライバ４０のようなデバイスドライバと、図３の仮想プリンタポート３８のような通信ポートとの間の関連で見られる。印刷システムを設定する正確なプロセスは、サーバのオペレーティングシステムに依存する。Ｗｉｎｄｏｗｓ（Ｒ）オペレーティングシステムの場合、プリンタは、ポートおよびデバイスドライバを、印刷プロセッサおよびポートモニタとともに指定することによって設定される。このようにして、システムは、以前に選択されたデバイスドライバおよび仮想プリンタポートを用いて行われるように設定され得る。
【００５８】
セットアップを完了するために、クライアントＰＤＡ２０は、プリンタコントローラ２４を作成し、プリンタコントローラ２４は、仮想プリンタポート３８とポートエミュレータ２６との間のデータの流れを制御する。
【００５９】
サーバ３０は、リクエストされたドキュメントをドキュメントサーバ３２およびそのドキュメントに関連するアプリケーションから取り出す（ステップＳ７）。システムは、ドキュメントを正確なアプリケーションと関連付けることが可能であると想定される。例えば、Ｗｉｎｄｏｗｓ（Ｒ）オペレーティングシステムにおいて、その関連付けは、ファイル名拡張子の使用によって決定される。あるいは、ユーザは、クライアントインターフェースを用いて、アプリケーションを明示的に指定してもよい。
【００６０】
ドキュメント印刷サービス３６によって以前に作成されたプリンタからドキュメントを印刷するようにアプリケーション４２を実行し、命令する。このことを行うことができる態様は、オペレーティングシステムおよびアプリケーションに依存する。代表的には、アプリケーション４２を実行し、ドキュメントは、アプリケーション、ドキュメントのファイルパス、およびプリンタ名をコマンドラインにおけるパラメータとして指定することによって印刷される。Ｗｉｎｄｏｗｓ（Ｒ）オペレーティングシステムの下で、シェルプリントコマンドは、しばしば、ドキュメントタイプと関連付けられる。このような場合、プリンタをシステムのデフォルトのプリンタとして設定し、その後、そのドキュメントのためのシェル印刷コマンドを実行するだけで十分である。
【００６１】
ドキュメントを印刷するとき、アプリケーションは、グラフィカルデバイスインターフェース（ＧＤＩ）コマンドを、オペレーティングシステムのグラフィックスＡＰＩ（アプリケーションプログラムインターフェース）に対して発する。オペレーティングシステム４４は、グラフィックスＡＰＩに対する呼をデバイスドライバインターフェース（ＤＤＩ）呼に変換する。ＤＤＩ呼は、印刷システムによって、デバイス（プリンタ）ドライバ４０に送信されて、デバイス特有のロー印刷コマンドが生成される（ステップＳ８）。
【００６２】
印刷システムは、デバイス特有プリンタコマンドを仮想プリンタポート３８に書き込み、その後、仮想プリンタポート３８は、ネットワークを介してデータをＰＤＡ２０上のプリンタコントローラ２４に送信する（ステップＳ９）。プリンタコントローラ２０は、サーバ３０から受信したプリントデータを、ポートエミュレータ２６を介してプリンタ２８に伝送する（ステップＳ１０）。
【００６３】
まとめると、本実施形態による分散型印刷システムの動作は、（ａ）所与のプリンタにとって適切なデバイスドライバを自動的に識別し、ロードするプロセスと、（ｂ）サーバの印刷システムからの出力を、モバイルデバイスを介してプリンタに伝送するプロセスと、（ｃ）サーバ上のソフトウェアアプリケーションを使用して、印刷するドキュメントを処理するプロセスと、（ｄ）アプリケーションからの出力をさらに処理してプリンタ特有データを生成し、プロセス（ｂ）によってデータをプリンタに伝送させるように、（ａ）によって得られたデバイスドライバを用いて、サーバ印刷システムを自動設定するプロセスと、（ｅ）モバイルデバイスからの上記のプロセスを制御するプロセスとを含む。
【００６４】
仮想プリンタポート３８がデータを受信する速度は、プリンタ２８にデータを送信できる速度より速い可能性が高い。クライアントＰＤＡ２０上でのバッファリングに必要なメモリ量を最小限にするため、プリンタコントローラ２４は、印刷データがサーバ側３０にバッファリングされるように仮想プリンタポート３８を遠隔制御し得る。
【００６５】
この実施形態において示されているドライバデータベース３４はサーバ３０に位置しているように示されているが、ドライバデータベース３４を、大規模で定期的に更新されるデータベースを提供するプリンタドライバの集中型ウェブサービスに配置することも可能である。集中型ウェブサービスにおけるこのようなドライバデータベース３４は、ドキュメント印刷サービス３６によってアクセスされ、かつダウンロードされ得、システムが多用な種類のプリンタをサポートすることを可能にする。ダウンロードされると、頻繁に用いられるドライバは、サーバ３０によってローカルにキャッシュされてもよい。
【００６６】
本発明を具現化する分散型印刷システムは、ユーザが、プリンタのそれぞれについてクライアントまたはサーバを設定する必要なしに、その場に応じたプリンタを用いることを可能にする。システムは、サーバオペレーティングシステムに利用可能なドライバがある、任意のプリンタに対して機能し得る。赤外線ポート、Ｂｌｕｅｔｏｏｔｈ接続、またはワイヤレスＬＡＮ接続は、ＰＤＡからのワイヤレス接続を可能にし得る。
【００６７】
サポートするために必要なアプリケーション、フォント、プリンタドライバ、およびオペレーティングシステムコンポーネント（グラフィックスおよび印刷サブシステム）は、ＰＤＡではなく、サーバに位置する。このことによって、ＰＤＡの負担を最小化するだけでなく、ドキュメントを標準フォーマットに変換するという妥協が避けられる。
【００６８】
分散型印刷システムは、プリンタを識別し、ドライバデータベースを用いて適切なデバイスドライバをロードする。これによって、「ユニバーサル」プリンタドライバを用いるという妥協が避けられる。上述したように、用いられ得る全てのプリンタドライバでのサーバへの負荷を避けるため、ドライバデータベースは、別個のシステム、例えば、ウェブサービスに存在してもよく、複数のサーバの間で共有され、例えば、分散されてもよい。
【００６９】
サーバ３０からＰＤＡ２０に送信されたデータは、既にプリンタコマンドで表現されている。これは、以下のような技術的な利点を有する。ＰＤＡ２０上でプリントデータの処理は行われず、プリンタ２８に送信されるデータのみがＰＤＡ２０を通過する。これによって、ＰＤＡ２０により行われる必要がある処理が低減する。データは、サーバ３０からＰＤＡ２０へと、ストリーミングされ、これにより、ＰＤＡ２０上の記憶装置が節約され、全てのデータを受信する前に印刷を開始することによって時間が節約される。一方、予め表現された印刷データは、ソースドキュメントほど圧縮されていないかもしれない。しかし、印刷データをサーバ３０で圧縮し、クライアントＰＤＡ２０上で解凍することができる。
【００７０】
このシステムは、プリンタ２８との双方向通信をサポートし得る。例えば、プリンタ２８が紙切れの場合、プリンタコントローラ２４は、それについての通知を受信し得る。この問題に応答して、クライアントは、ユーザに通知し、仮想プリンタポート３８からの印刷データの伝送をプリンタ２８の準備ができるまで一時停止するようにサーバ３０に命令し得る。
【００７１】
サーバのオペレーティングシステムを調節する必要はない。本発明を具現化した分散型印刷システムは、標準的なオペレーティングシステムの機能およびコンポーネントを利用することができる。プリンタ２８はネットワークまたはインターネットに接続される必要もない。
【００７２】
本発明を具現化した分散型印刷システムは、ドキュメントデータ、アプリケーションソフトウェア、完全なグラフィカル印刷システム、フォントおよびプリンタドライバがモバイルデバイスにインストールされていなくても、リソースが限られたモバイル情報デバイスのユーザが、ドキュメントを近くのプリンタで印刷することを可能にする。このようにして、リソースが限られた情報デバイスの負荷が低減される。
【００７３】
このシステムは、遠隔サーバ上に位置するソフトウェアおよびデータを用いて、ドキュメントの印刷に必要な格納および処理の大部分が行われる。サーバ上で実行されるアプリケーションおよびシステムソフトウェアを用いて、デスクトップＰＣと同程度のドキュメント表現機能をシステムに提供する。モバイルデバイスの役割は、ユーザインターフェースを提供し、サーバと周辺デバイスとの間でデータを伝送し、そのプロセスを制御することに限られる。
【００７４】
このシステムでは、モバイル情報デバイス（上記の実施形態においてはＰＤＡであるが、十分な機能を有するモバイル情報デバイスであれば任意のものでもよい）が近くのプリンタと通信することが必要になる。ＰＤＡとプリンタとの間の通信は、ワイヤレスリンク（例えば、上記の実施形態に関連して記載されたＩｒＤＡまたはＢｌｕｅｔｏｏｔｈ）を介して、エミュレートされたシリアルポート接続によって行われてもよい。あるいは、接続は、実在のパラレルまたはシリアルプリンタケーブル、ＵＳＢ、またはＬＡＮ、あるいは、他の任意の適切なリンクであってもよい。
【００７５】
ＰＤＡはまた、ネットワークを介する遠隔サーバへの接続を必要とする。この接続は、ＬＡＮ、ＷＡＮ、インターネット、または電話網、あるいは、任意の他の適切な通信リンク、例えば、モバイル電気通信リンクを介する接続であってもよい。
【００７６】
このサーバは、印刷のために選択されたドキュメントへのアクセスを必要とする。本発明の実施形態は、印刷のためにドキュメントをブラウズし、選択する方法にかかわるものではなく、ドキュメントが印刷のために既に選択されており、何らかの形でサーバにアクセス可能であると想定されている。上記の実施形態において、ドキュメントデータは、ＰＤＡ２０からサーバ３０に送信され、サーバ３０上に格納される。あるいは、ドキュメントは、他のマシン上のドキュメントサーバから取得されるか、またはＵＲＬ（またはドキュメントを位置付けするために用いられる任意の他のタイプのドキュメントリファレンス）を用いてアクセスされて、サーバにダウンロードされてもよい。従って、ドキュメントサーバは、ウェブサーバであってもよいし（ここでドキュメントが、ウェブページであってもよく、あるいはウェブページからリンクされたファイルであってもよい）、ピアトゥーピアファイル共有サーバであってもよいし、リクエストに応じてドキュメントを提供することができる任意の他のタイプのサーバであってもよい。
【００７７】
上記の実施形態において、このシステムは、ＰＤＡで実行されるクライアントソフトウェアと共にサーバ上で実行されるソフトウェアサービス（印刷サービスと呼ばれる）によって、インプリメントされる。
【００７８】
上記の実施形態についての文脈においては、「リソースが限られた」という用語は、従来の印刷処理タスクに対して処理速度および／またはリソース、例えば、メモリ／格納リソースが不十分であり、従って、印刷処理タスクの実行に時間がかかりすぎるか、デバイス上で利用可能メモリよりも多くのメモリが必要となる可能性があることを意味する。本発明の実施形態は、このようなリソースが限られたデバイスにとって、デバイスの負荷が低減されるので、特に有用である。しかし、本発明を具現化したシステムは、このようなリソースが限られた情報デバイスでなくても、他の何らかの理由により、処理をデバイスから離れて行うことが必要であるか、または好ましい場合にも有用であることが理解される。例えば、本発明の実施形態は、デバイスにおいて適切なドライバが利用できないために情報デバイスが周辺デバイスを直接制御できない場合、または、（恐らくはセキュリティ上の理由から）ドライバのダウンロードおよびインストールが望ましくない場合に用いられ得る。
【００７９】
上記の記載は、周辺デバイスがプリンタである場合の実施形態についての記載であったが、説明した方法は、他のハードウェアを用いる場合も同様に適用可能である。ハードウェアの要件は、（ａ）デバイスが、シリアル、パラレル、ＵＳＢ、ＶＧＡおよびワイヤレス接続（ＢｌｕｅｔｏｏｔｈまたはＩｒＤＡなど）を含む標準Ｉ／Ｏポート接続を介して接続可能であることと、（ｂ）サーバオペレーティングシステムに対するデバイスドライバがこのようなデバイスに入力および／または出力できるアプリケーションとともに利用可能であることとである。これには、周辺デバイスがプリンタ以外のグラフィックまたはテキスト出力デバイスである実施形態が含まれる。
【００８０】
さらなる実施形態は、周辺デバイスがスキャナ、カメラ、または他のグラフィカル入力デバイスである実施形態を含む。入力デバイスの場合において、デバイスからの出力は、処理および／または格納のために、周辺デバイスからサーバ上のドライバおよびアプリケーションに対して伝送される。
【００８１】
図５は、本発明の第２の実施形態による分散型スキャンシステムを示すブロック図である。分散型スキャンシステムは、ＰＤＡ２０’と、スキャナ２８’と、サーバ３０’とを含む。ＰＤＡ２０’は、スキャナ２８’およびサーバ３０’と通信する。ＰＤＡ２０’は、スキャンサービスクライアント２２’と、スキャナコントローラ２４’と、ポートエミュレータ２６’とを含む。スキャンサービスクライアント２２’は、ポートエミュレータ２６’およびスキャナコントローラ２４’と通信し、ポートエミュレータ２６’およびスキャナコントローラ２４’は、互いに直接通信する。サーバ３０’は、ドキュメント格納部３２’と、ドライバデータベース３４’と、仮想スキャナポート３８’ と、スキャナドライバ４０’およびアプリケーションプログラム４２’と通信するドキュメントスキャンサービス３６’とを含む。仮想スキャナポート３８’、スキャナドライバ４０’およびアプリケーションプログラム４２’は、サーバ３０’のオペレーティングシステム４４’と通信する。図５に示す分散型スキャンシステムの動作は、図３および図４を参照しながら説明した分散型印刷システムの動作に非常に類似しており、当業者であれば、（周辺デバイスが出力デバイスである）分散型印刷システムについての教示内容をどのように調節すれば（周辺デバイスが入力デバイスである）分散型スキャンシステムを実現できるか容易に理解する。図３および図５において、類似または対応する部材は、同じ参照符号が付けられるが、プライム符号によって区別される。例えば、図３のプリンタには参照符号２８が付けられ、図５のスキャナには参照符号２８’が付けられる。
【００８２】
上記の実施形態において、全てのデータ処理はサーバ上で行われるが、さらなる処理がモバイルデバイス上で行われるように適用されてもよい。これには、アプリケーションが、分散型アプリケーションである実施形態が含まれる。このアプリケーションは、ＰＤＡ上で実行されるユーザインターフェースおよびデータ処理の大部分を行うサーバプログラムからなる。可能なクライアント側処理のさらなる例には、オリジナルのドキュメントからデータのより小さいセットを作成する（例えば、印刷のためにワードプロセッサドキュメントから１枚のページを選択する）ステップと、データベースまたはＸＭＬドキュメントからのデータを表示可能なフォーマット、例えばＨＴＭＬにするステップと、グラフィカルフォーマットでデータを出力するアプリケーションプログラム（例えば、製図プログラム）と、ドキュメントがクライアントデバイス上で実行されるプログラムによって生成されるあらゆる場合とが含まれるが、これらに限定されない。
【００８３】
サーバ３０／３０’は複数のデバイスドライバを有するドライバデータベース３４／３４’へのアクセスを有すると上述したが、サーバ３０／３０’は、複数の周辺デバイス２８／２８’と共に用いられることに適した、１つの一般的なデバイスドライバへのアクセスを有していてもよいことが理解される。
【００８４】
モバイルデバイスと周辺デバイスとの間のインタラクションを制御するために、モバイルデバイスおよび分散型周辺デバイス制御システムの他の部材によって行われる動作は、ハードウェアにおいて、または、モバイルデバイスおよび分散型周辺デバイス制御システムの他の部材上で実行されるオペレーティングプログラムとしてインプリメントされ得る。オペレーティングプログラムは、コンピュータ読み出し可能媒体に格納されてもよいし、例えば、インターネットのウェブサイトから提供されるダウンロード可能なデータ信号のような信号として具現化されてもよい。添付の特許請求の範囲は、オペレーティングプログラム自体、あるいは、キャリアー上の記録もしくは信号としてのオペレーティングプログラム、または他の形態のオペレーティングプログラムを含むと解釈される。
【図面の簡単な説明】
【００８５】
【図１】図１は、パーソナルコンピュータからローカル接続されたプリンタまでの代表的な印刷のための構成を示す図である。
【図２】図２は、ネットワーク上のパーソナルコンピュータから、ネットワーク上のサーバに接続されたプリンタまでの印刷のための構成を示す図である。
【図３】図３は、本発明の第１の実施形態による分散型印刷システムを示すブロック図である。
【図４】図４は、図３に示す分散型印刷システムの動作を説明するために用いられるフローチャートである。
【図５】図５は、本発明の第２の実施形態による分散型印刷システムを示すブロック図である。
【符号の説明】
【００８６】
２０  ＰＤＡ
２２  印刷サービスクライアント
２４  プリンタコントローラ
２６  ポートエミュレータ
２８  プリンタ
３０  サーバ
３２  ドキュメントサーバ
３４  ドライバデータベース
３６  ドキュメント印刷サービス
３８  仮想プリンタポート
４０  プリンタドライバ
４２  プリケーションプログラム
４４  オペレーティングシステム
【図１】
2004326776.tif 000003
【図２】
2004326776.tif 000004
【図３】
2004326776.tif 000005
【図４】
2004326776.tif 000006
【図５】
2004326776.tif 000007