(57)【要約】  コラボレーション要求はジョブが処理されるべきときにホストまたは周辺機器へ送信される。ジョブは１個以上のタスクを含む。ホストは、実行されるべきタスクまたはジョブのタイプと、ホスト及び周辺機器の能力とを解析することにより、ホストの役目を果たすためより適した装置を決定する。周辺機器がホストの役目を果たすためにより適しているならば、ホストと周辺機器は役割を交換し、タスクまたはジョブの制御は周辺機器へ移される。ホストと周辺機器は、タスクまたはジョブが完了すると、それらのデフォルトロールに戻る。
2008500656.tif 000002
【特許請求の範囲】
【請求項１】
デフォルトホスト型デュアルロールデバイスとデフォルト周辺機器型デュアルロールデバイスとを用いて１個以上のタスクを処理する方法であって、
コラボレーション要求を受信するステップと、
前記デフォルトホスト型デュアルロールデバイスまたは前記デフォルト周辺機器デュアルロールデバイスのどちらが、前記１個以上のタスクのうちの少なくとも１個のためのホストとしての役目を果たすかを決定するステップと、
前記デフォルト周辺機器型デュアルロールデバイスがホストとしての役目を果たすように、必要に応じて、ホストの役目と周辺機器の役目を交換するステップと、
を備える方法。
【請求項２】
前記デフォルト周辺機器型デュアルロールデバイスがホストとしての役目を果たしているときに、前記１個以上のタスクのうちの少なくとも１個の制御を前記デフォルト周辺機器型デュアルロールデバイスに移すステップをさらに備える、請求項１に記載の方法。
【請求項３】
前記１個以上のタスクのうちの前記少なくとも１個を処理するステップをさらに備える、請求項２に記載の方法。
【請求項４】
前記デフォルト周辺機器型デュアルロールデバイスがホストとしての役目を果たしているときに、結果を前記デフォルトホスト型デュアルロールデバイスへ返すステップをさらに備える、請求項３に記載の方法。
【請求項５】
前記デフォルト周辺機器型デュアルロールデバイスがホストとしての役目を果たし、前記１個以上のタスクの内の少なくとも１個が処理された後に、周辺機器型デュアルロールデバイスの役目を前記デフォルト周辺機器型デュアルロールデバイスへ戻し、ホストの役目を前記デフォルトホスト型デュアルロールデバイスへ戻すステップをさらに備える、請求項４に記載の方法。
【請求項６】
コラボレーション要求を受信するステップが、前記デフォルトホスト型デュアルロールデバイスでコラボレーション要求を受信するステップを含む、請求項１に記載の方法。
【請求項７】
コラボレーション要求を受信するステップが、前記デフォルト周辺機器型デュアルロールデバイスでコラボレーション要求を受信するステップを含む、請求項１に記載の方法。
【請求項８】
前記コラボレーション要求を前記デフォルトホスト型デュアルロールデバイスへ送信するステップをさらに備える、請求項７に記載の方法。
【請求項９】
前記デフォルトホスト型デュアルロールデバイスまたは前記デフォルト周辺機器デュアルロールデバイスのどちらが、前記１個以上のタスクのうちの少なくとも１個のためのホストとしての役目を果たすかを決定するステップが、前記デフォルトホスト型デュアルロールデバイスまたは前記デフォルト周辺機器デュアルロールデバイスのどちらが、前記１個以上のタスクのうちの少なくとも１個のためのホストとしての役目を果たすかを決定するために、前記デフォルトホスト型デュアルロールデバイスの１つ以上の能力を解析するステップと、前記デフォルト周辺機器型デュアルロールデバイスの１つ以上の能力を解析するステップと、前記１個以上のタスクのうちの少なくとも１個を解析するステップとを含む、請求項１に記載の方法。
【請求項１０】
前記デフォルトホスト型デュアルロールデバイスまたは前記デフォルト周辺機器デュアルロールデバイスのどちらが、前記１個以上のタスクのうちの少なくとも１個のためのホストとしての役目を果たすかを決定するステップが、前記デフォルトホスト型デュアルロールデバイスまたは前記デフォルト周辺機器デュアルロールデバイスのどちらが前記１個以上のタスクのうちの少なくとも１個のためのホストとしての役目を果たすかを自動的に決定するステップを含む、請求項１に記載の方法。
【請求項１１】
サポートされるアプリケーションサービスのリストを含むホストサービスを有するホストサービスコンテナと、
周辺機器サービスを有する周辺機器サービスコンテナと、
を備えるデュアルロールデバイス。
【請求項１２】
汎用サービスコンテナをさらに備える、請求項１１に記載のデュアルロールデバイス。
【請求項１３】
前記ホストサービスがサポートされる周辺機器装置のリストとサポートされるクラスドライバのリストとをさらに有する、請求項１１に記載のデュアルロールデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
デュアルロールデバイス（ＤＲＤ）はホストまたは周辺機器の役目を果たし得る装置である。
【背景技術】
【０００２】
図１は従来技術によるシステムの概略説明図である。システム１００はＤＲＤ１０２とＤＲＤ１０４とを含む。ＤＲＤ１０２はコネクタ１０６を含み、ＤＲＤはコネクタ１０８を含む。システム１００がユニバーサルシリアルバス２．０仕様に対するオンザゴー（Ｏｎ−Ｔｈｅ−Ｇｏ）補足に準拠するとき、コネクタ１０６、１０８はミニＡＢプラグである。
【０００３】
ＤＲＤ１０２、１０４は、プラグがコネクタ１０６、１０８にそれぞれ挿入されるとき、デフォルトロールを担う。ミニＡプラグがコネクタ１０６に挿入されるとき、ＤＲＤ１０２はデフォルトでホストモードになる。ミニＢプラグがコネクタ１０８に挿入されるとき、ＤＲＤ１０４はデフォルトで周辺機器モードになる。
【０００４】
システム１００は、通常はホストである一方の装置が、周辺機器より能力が高いと仮定される点で、典型的に非対称である。しかし、この仮定は常に正しいとは限らない。たとえば、デフォルトではホストであるＭＰ３プレーヤーは、オーディオファイルを、デフォルトでは周辺機器である携帯情報端末（ＰＤＡ）と交換する。ＰＤＡの方が大きいディスプレイ、大きいキーボード、及び、より広範囲に亘るグラフィカルユーザインターフェイスを有するので、一部のユーザはＰＤＡの方がホストであることを好むであろう。しかし、ホストは、ホストまたは周辺機器のいずれの装置がホストの役目を果たすためにより適しているかを決定できない。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明によれば、２台のデュアルロールデバイスでジョブを処理する方法及びシステムが提供される。コラボレーション要求は、ジョブが処理されるべきときに、ホストまたは周辺機器へ送信される。ジョブは１個以上のタスクを含む。ホストは、実行されるべきタスクまたはジョブのタイプと、ホスト及び周辺機器の能力とを解析することにより、どちらの装置がホストの役目を果たすためにより適しているかを決定する。周辺機器がホストの役目を果たすためにより適しているならば、ホストと周辺機器は役割を交換し、タスクまたはジョブの制御が周辺機器へ移される。ホスト及び周辺機器は、タスクまたはジョブが完了すると、それらのデフォルトロールへ戻る。
【０００６】
以下の説明は、当業者が本発明の実施形態を作り使用することを可能にするため示され、特許出願及びその要件に即して提供される。開示された実施形態への種々の変更は当業者が容易に理解できることであり、本書における一般的な原理は他の実施例に適用される。したがって、本発明は、明らかにされた実施形態に限定されることが意図されず、特許請求の範囲、並びに、本書に記載された原理及び特徴と矛盾しない最も広い範囲であることが認められるべきである。
【０００７】
図を参照して、特に、図２Ａ−２Ｂを参照すると、本発明による一実施形態のホスト型デュアルロールデバイスによってジョブを処理する方法のフローチャートが示されている。最初に、ブロック２００に示されるように、コラボレーション要求がホストへ送信される。コラボレーション要求は、たとえば、別個の割り込みパイプを使用して送信される。
【０００８】
ホストは、次に、ブロック２０２に示されるように、周辺機器からサービス記述子を取得する。サービス記述子は、周辺機器の能力を指定するサービスリストを含む。ホストはさらにジョブ要求を周辺機器へ送信する（ブロック２０４）。ジョブ要求は実行されるべきジョブのタイプを指定する。ジョブは１個以上のタスクを含み、各タスクは、そのタスクを制御するため最も適した装置（ホストまたは周辺機器）へ割り当てられる。本発明による一実施形態では、サービス記述子及びジョブ要求は、ＵＳＢコントロールパイプを使用して送信される。
【０００９】
次に、ブロック２０６で、ホストがホストネゴシエーションプロセス（ＨＮＰ）を実行すべきかどうかに関する決定がなされる。本発明による一実施形態では、ＨＮＰは、ユニバーサルシリアルバス２．０仕様のオンザゴー補足に指定されたプロセスの後に続く。ＨＮＰが実行されないとき、プロセスは、ホストがジョブまたはタスクの処理とジョブ結果の発生とを制御するブロック２０８へ移る。
【００１０】
ＨＮＰが実行されるならば、ホストは、どちらの装置がホストの役目を果たすかを決定するため、実行されるべきジョブまたはタスクのタイプと、ホスト及び周辺機器の能力とを解析する（ブロック２１０）。このブロックの一部として、ホストは、ホストの役目と周辺機器の役目が交換されるべきであるかどうかを決定する（ブロック２１２）。既に説明したように、ホストの役目と周辺機器の役目は、ジョブ全体、または、そのジョブに含まれる１個以上のタスクのため交換されることがある。
【００１１】
ホストの役目と周辺機器の役目が交換されないならば、ホストはジョブまたは１個以上のタスクの処理を制御する（ブロック２０８）。役目が交換されるならば、ジョブまたはタスクの制御は周辺機器へ移され、周辺機器はホストの役目を担う（ブロック２１４）。ホストとしての役目を果たす周辺機器は、次に、ジョブまたはジョブ内の１個以上のタスクの処理を制御し、結果をデフォルトホストへ返す。
【００１２】
次に、ブロック２１６で、処理されるべきさらなるジョブまたはタスクが存在するかどうかに関する決定がなされる。もしさらなるジョブまたはタスクが存在するならば、方法はブロック２０２へ戻り、すべてのジョブまたはすべてのタスクが完了するまで繰り返す。ホスト及び周辺機器はこの間に繰り返し役目を交換する。すべてのジョブが処理されたとき、ブロック２１８で、ホストとしての役目を果たしている装置がデフォルトホストであるかどうかに関する決定がなされる。もし装置がデフォルトホストでないならば、ホストの役目と周辺機器の役目はブロック２２０でデフォルトロールに戻され、方法は終了する。
【００１３】
図３Ａ−３Ｂは、本発明による一実施形態における周辺機器型デュアルロールデバイスによりジョブを処理する方法のフローチャートである。最初に、ブロック３００に示されるように、コラボレーション要求が周辺機器へ送信され、周辺機器はその要求をホストへ送信する。本発明による一実施形態では、周辺機器は、ＵＳＢのためのＳＲＰまたはＩＮＴパイプを使用してコラボレーション要求をホストへ送信する。
【００１４】
周辺機器は、次に、ブロック３０２に示されるように、ホストにサービス記述子を提示する。サービス記述子は、周辺機器装置の能力を指定するサービスリストを含む。ホストはさらに周辺機器装置へジョブ要求を送信する（ブロック３０４）。ジョブ要求は実行されるべきジョブのタイプを指定する。ジョブは処理すべき１個以上のタスクを含み、各タスクはそのタスクを処理または完了するため最も適した装置（ホストまたは周辺機器）に割り当てられる。本発明による一実施形態では、サービス記述子及びジョブ要求はＵＳＢのためのＣＴＲＬパイプを使用して送信される。
【００１５】
次に、ブロック３０６で、ＨＮＰが実行されるべきかどうかに関する決定がなされる。ＨＮＰが実行されないならば、プロセスは、ジョブまたは１個以上のタスクの処理がホストによって制御されるブロック３０８へ移る。ＨＮＰが実行されるならば、ホストは、どちらの装置がホストであるべきかを決定するため、実行されるべきジョブまたはタスクと、ホスト及び周辺機器の能力とを解析する（ブロック３１０）。このプロセスの一部として、ホストは、ホストの役目と周辺機器の役目が交換されるべきであるかどうかを決定する（ブロック３１２）。
【００１６】
ホストの役目と周辺機器の役目が交換されないならば、ホストはジョブまたはタスクの処理を制御する（ブロック３０８）。役目が交換されるならば、ジョブの制御は周辺機器へ移され、周辺機器はホストの役目を担う（ブロック３１４）。ホストの役目を果たす周辺機器は、ジョブまたはタスクの処理を制御し、結果をデフォルトホストへ返す（ブロック３０８）。
【００１７】
次に、ブロック３１６で、処理されるべきさらなるジョブまたはタスクが存在するかどうかに関する決定がなされる。もしさらなるジョブまたはタスクが存在するならば、方法はブロック３０２へ戻り、すべてのジョブが処理されるまで繰り返す。すべてのジョブが処理されたとき、ホストの役目を担う装置がデフォルトホストであるかどうかに関する決定がなされる。もし装置がデフォルトホストでないならば、ホストの役目と周辺機器の役目はブロック３２０でデフォルトロールに戻され、方法は終了する。
【発明を実施するための最良の形態】
【００１８】
本発明による一実施形態では、ホスト及び周辺機器は、ホストとしての役目を果たすために最も適する装置を自動的に決定する。本発明による他の実施形態では、役目の交換はアプリケーションによって、または、ユーザによって開始される。
【００１９】
付録Ａは、ＵＳＢの枠組みへの典型的なコラボレーション拡張を含む。これらの典型的な拡張は、図２Ａ−２Ｂ及び図３Ａ−３Ｂの実施形態を実施するため使用される。しかし、本発明による実施形態は、付録Ａに示された拡張に限定されない。ホストが、ホストであることに最も適する装置がどちらであるかを決定し、ジョブまたはタスクを見かけのホストへ移すことを可能にする拡張は、本発明による他の実施形態において使用される。
【００２０】
次に図４を参照すると、本発明による一実施形態におけるデュアルロールデバイスの概略説明図が示されている。ＤＲＤ４００は、ホストサービスコンテナ４０２と、周辺機器サービスコンテナ４０４と、汎用サービスコンテナ４０６とを含む。図４の実施形態では、ホストサービスコンテナ４０２は、たとえば、対象ホストサービスリスト４０８、対象周辺機器リスト４１０、及び、対象クラスリスト４１２のようなＵＳＢ依存型のホスト側サービスを含む。
【００２１】
対象ホストサービスリスト４０８は、ＤＲＤ４００によってサポートされるアプリケーションサービスを記載する。たとえば、対象サービスリスト４０８は、ＤＰＳ印刷サービスのようなアプリケーション特定ＧＵＩＤを提供する。対象周辺機器リスト４１０は、ＤＲＤ４００がサポートする周辺機器を記載する。対象周辺機器リスト４１０は、たとえば、ＵＳＢ製品識別及びＵＳＢベンダー識別を含む。そして、対象クラスリスト４１２は、たとえば、ＵＳＢクラスコード及びＵＳＢプロトコルコードを与えることにより、ＤＲＤ４００によってサポートされるクラスドライバを記載する。
【００２２】
周辺機器サービスコンテナ４０４は、たとえば、ＵＳＢコンフィギュレーション記述子４１４及びＵＳＢインターフェイス記述子４１６を含むＵＳＢ依存型の周辺機器側サービスを含む。そして、汎用サービスコンテナ４０６は、たとえば、ＵＳＢリンク以外のデータリンクレベルサービス及びＵＳＢデータリンクレイヤより高い上位レベルサービスを含む対象サービスリスト４１８として構成された、ＵＳＢに囚われないサービスを含む。
【００２３】
付録
【表１】
2008500656.tif 000003
【００２４】
【表２】
2008500656.tif 000004
【００２５】
【表３】
2008500656.tif 000005
【００２６】
【表４】
2008500656.tif 000006
【００２７】
【表５】
2008500656.tif 000007
【００２８】
【表６】
2008500656.tif 000008
【００２９】
【表７】
2008500656.tif 000009
【００３０】
【表８】
2008500656.tif 000010
【００３１】
【表９】
2008500656.tif 000011
【００３２】
【表１０】
2008500656.tif 000012
【００３３】
【表１１】
2008500656.tif 000013
【００３４】
【表１２】
2008500656.tif 000014
【００３５】
【表１３】
2008500656.tif 000015
【００３６】
【表１４】
2008500656.tif 000016
【００３７】
【表１５】
2008500656.tif 000017
【００３８】
【表１６】
2008500656.tif 000018
【００３９】
【表１７】
2008500656.tif 000019
【００４０】
【表１８】
2008500656.tif 000020
【００４１】
【表１９】
2008500656.tif 000021
【００４２】
【表２０】
2008500656.tif 000022
【図面の簡単な説明】
【００４３】
【図１】従来技術によるシステムの概略説明図である。
【図２Ａ】本発明による一実施例においてホストデュアルロールデバイスによりジョブを処理する方法のフローチャートである。
【図２Ｂ】本発明による一実施例においてホストデュアルロールデバイスによりジョブを処理する方法のフローチャートである。
【図３Ａ】本発明による一実施例において周辺機器デュアルロールデバイスによりジョブを処理する方法のフローチャートである。
【図３Ｂ】本発明による一実施例において周辺機器デュアルロールデバイスによりジョブを処理する方法のフローチャートである。
【図４】本発明による一実施例におけるデュアルロールデバイスの概略説明図である。
【符号の説明】
【００４４】
４００  ＤＲＤ
４０２  ホストサービスコンテナ
４０４  周辺機器サービスコンテナ
４０８  対象ホストサービスリスト
４１０  対象周辺機器リスト
４１２  対象クラスリスト
４１４  ＵＳＢコンフィギュレーション記述子
４１６  ＵＳＢインターフェイス記述子
４１８  対象サービスリスト
【図１】
2008500656.tif 000023
【図２Ａ】
2008500656.tif 000024
【図２Ｂ】
2008500656.tif 000025
【図３Ａ】
2008500656.tif 000026
【図３Ｂ】
2008500656.tif 000027
【図４】
2008500656.tif 000028
【国際調査報告】
2008500656.tif 000029
2008500656.tif 000030
2008500656.tif 000031