[0001]本出願は、内容の全体が参照によって本明細書に組み込まれる、2013年5月24日に出願された米国仮出願第61/827,475号の利益を主張する。
[0026]本開示は、モバイルデバイスのようなワイヤレスドッキー(WD)がドッキングホストまたはドッキングステーションとしても知られているワイヤレスドッキングセンター(WDC)とワイヤレスにドッキングできるドッキングシステム環境に適用可能な、ワイヤレス通信技法と、プロトコルと、方法と、デバイスとを説明する。WDおよびWDCは、互いとのドッキングセッションを確立することができる。WDCは、WDと、WDCと関連付けられる任意の数の周辺デバイス(PF)との間の対話を可能にし得る。たとえば、周辺機器は、ディスプレイ、プロジェクター、スピーカー、キーボード、マウス、ジョイスティック、データ記憶デバイス、ネットワークインターフェースデバイス、他のドッキングホスト、リモコン、カメラ、マイクロフォン、プリンタ、または他のデバイスを含み得る。異なる例では、そのような周辺デバイスは、スタンドアロンデバイス、または他のコンピュータのようなデバイスのコンポーネントを含み得る。ユーザは、モバイルハンドセットのようなWDをWDCとワイヤレスにドッキングし、WDといずれの周辺機器との間の対話も可能にし得る。いくつかの例では、WDは、ドッキングセッションの様相を制御し、今後のドッキングセッションにおいて使用するために1つのドッキングセッションからある情報を記憶することが可能にされてよく、今後のドッキングセッションをセットアップするために同じ情報の交換を繰り返す必要をなくす。
[0027]一般に、ワイヤレスドッキングは、発見、接続セットアップ、セッションセットアップ、ならびに構成および制御プロトコルという4つの要素からなり得る。発見は、WDがWDCとそのサービス属性とを特定することを可能にし得る。最初の発見の後で、WDは、ドッキングサービスのために新たなASPセッションをセットアップすることによって、WDCに接続することができる。セッションセットアップの後で、構成および制御プロトコルは、WDCにおいてWD自身によるPFの使用をWDがネゴシエートし構成することを可能にし得る。その後、WDCは、個々のPFサービスのためにWDとのペイロード接続を確立することによって、WDのためのPFサービスへのアクセスを可能にし得る。
[0028]いくつかの例では、WDは、WDCと関連付けられるPFの1つまたは複数を選択することによって、WDCとワイヤレスにドッキングすることができる。たとえば、WD4は、ディスプレイPFとキーボードPFとを個々に選択することができる。いくつかの例では、個々のPFを選択するのとは対照的に、WDは、WDCと関連付けられるPFの1つまたは複数に各々対応する、1つまたは複数のワイヤレスドッキング環境(WDN)を選択することができる。いくつかの例では、WDNは、WD中心あるいはWDN中心のいずれかであり得る。WD中心のWDNは、WDによる使用のためにWDによって定義される(たとえば作成される)WDNである。WD中心のWDNのための構成データは、WDCに、WDに、または両方に記憶され得る。WDC中心のWDNは、一般的な用途に(たとえば複数のWDによって)利用可能なWDNである。いくつかの例では、WDNは、特定のタイプのWDNであり得る。いくつかの例示的なWDNのタイプは、限定はされないが、オフィスWDNタイプ、エンターテイメントWDNタイプ、共同作業空間WDNタイプ、オーディオ限定WDNタイプ、および企業オフィスWDNタイプを含む。いくつかの例では、オフィスWDNタイプは、ディスプレイPF、マウスPF、およびキーボードPFと関連付けられ得る。いくつかの例では、オーディオ限定WDNタイプは、オーディオシンクPF(たとえばスピーカー)と関連付けられ得る。
[0029]図1は、本開示の1つまたは複数の技法による、ワイヤレスドッキー(WD)がワイヤレスドッキングセンター(WDC)と関連付けられる1つまたは複数の周辺機器を利用するためにワイヤレス通信チャネルを通じてWDCとワイヤレスにドッキングするように構成される、例示的なワイヤレスドッキング環境(WDE)の概念図である。図1に示されるように、WDE2は、WD4と、WDC6と、ワイヤレス通信チャネル8と、周辺機器(PF)10A〜10N(総称的に「PF10」)と、通信チャネル12A〜12N(総称的に「通信チャネル12」)とを含む。
[0030]WDE2は、WDCと関連付けられる1つまたは複数のPFにアクセスするためにワイヤレス通信チャネルを通じてWDCとワイヤレスにドッキングするように構成され得る、WD4を含み得る。たとえば、WD4は、PF10の1つまたは複数にアクセスするために、ワイヤレス通信チャネル8を通じてWDC6とワイヤレスにドッキングすることができる。WD4の例は、限定はされないが、スマートフォンもしくは他のモバイルハンドセットのようなモバイルデバイス、タブレットコンピュータ、ラップトップコンピュータ、1つまたは複数の処理ユニット、もしくは他の集積回路もしくはチップセット、または他の電子デバイスを含む。
[0031]ワイヤレス通信チャネル8は、WD4とWDC6との間で通信信号を伝搬することが可能な任意のチャネルであり得る。いくつかの例では、ワイヤレス通信チャネル8は、2.4ギガヘルツ(GHz)帯、5GHz帯、60GHz帯、または他の周波数帯のような周波数帯における高周波通信において実装され得る。いくつかの例では、ワイヤレス通信チャネル8は、(Wi−Fi Alliance(登録商標)によって推進されているような)Wi−Fi(登録商標)、(Wireless Gigabit Allianceによって推進されているような)WiGig、および/または米国電気電子学会(IEEE)802.11の規格のセット(たとえば、802.11、802.11a、802.11b、802.11g、802.11n、802.11ac、802.11adなど)、または他の規格、プロトコル、もしくは技術の中の、規格、プロトコル、または技術の1つまたは複数のセットに適合し得る。2.4GHz帯、5GHz帯、および60GHz帯のような使用される周波数帯は、Wi−Fi、WiGigの規格、任意の1つまたは複数のIEEE802.11プロトコル、または他の適用可能な規格もしくはプロトコルに照らして理解されるように、本開示で定義され得る。
[0032]WDE2は、WDC6と関連付けられる1つまたは複数のPFのWDによる利用を容易にするために、WDのためのワイヤレスドッキングホストデバイスとして動作するように構成され得る、WDC6を含み得る。言い換えると、WDC4は、コンピューティング環境および/または通信環境内で接続エージェントとして機能するワイヤレスドッキングホストデバイスであり得る。たとえば、WDC6は、周辺機器10の1つまたは複数のWD4による利用を容易にするために、ワイヤレス通信チャネル8を通じてWD4とワイヤレスにドッキングすることができる。WDC6は、専用のワイヤレスドックであってよく、または、スマートフォンもしくは他のモバイルハンドセット、タブレットコンピュータ、ラップトップコンピュータ、コンピュータモニター、または他の電子デバイス、または上記のいずれかのコンポーネントもしくはサブシステムにおいて実装されてよい。
[0033]いくつかの例では、WDC6は、PF10の1つまたは複数と関連付けられ得る。一例として、PF10のあるPFがWDC6と関連付けられてよく、このときそのPFはWDC6によって管理される。あるPFがWDC6によって管理されると見なされてよく、このときWDC6はそのPFのWDによる利用を容易にすることが可能である。別の例として、PF10のあるPFはWDC6と関連付けられてよく、このときPFは通信チャネル12のそれぞれの通信チャネルなどによってWDC6に通信可能に結合される。
[0034]WDE2は、WDCと関連付けられ得るとともに、関連付けられるWDCとワイヤレスにドッキングされるWDに1つまたは複数のサービスを提供するように各々構成され得る、1つまたは複数のPF10を含み得る。たとえば、PF10のあるPFがWDC6と関連付けられWD4がWDC6とワイヤレスにドッキングされる場合、そのPFは1つまたは複数のサービスをWD4に提供することができる。PF10の例は、限定はされないが、ディスプレイ、プロジェクター、スピーカー、キーボード、マウス、ジョイスティック、データ記憶デバイス、ネットワークインターフェースデバイス、他のドッキングホスト、リモコン、カメラ、マイクロフォン、プリンタ、またはサービスを提供することが可能な様々な他のデバイスのいずれかを含む。
[0035]いくつかの例では、PF10の1つまたは複数は、通信チャネル12のそれぞれの通信チャネルなどによって、WDC6に通信可能に結合され得る。たとえば、PF10Aは、通信チャネル12Aを介してWDC6に通信可能に結合され得る。いくつかの例では、通信チャネル12の1つまたは複数は、有線通信チャネルであり得る。たとえば、通信チャネル12の1つまたは複数は、ユニバーサルシリアルバス(USB)ケーブル、ネットワークケーブル、光ファイバケーブル、および/または情報を通信することが可能な任意の他のケーブルを含み得る。いくつかの例では、通信チャネル12の1つまたは複数は、ワイヤレス通信チャネルであり得る。たとえば、通信チャネル12の1つまたは複数は、Bluetooth(登録商標)リンク、Wi−Fiリンク(ワイヤレス通信チャネル8と同様であり得る)、光リンクなどを含み得る。いくつかの例では、PF10の1つまたは複数はWDC6に含まれ得る。たとえば、WDC6はPF6のディスプレイを含み得る。
[0036]WD4のユーザは、WD4をWDC6に物理的に接続することなく、WDC6と関連付けられるPF10の1つまたは複数にアクセスすることを望むことがある。たとえば、WD4がユーザ入力を受けるための比較的小さなタッチ感知式ディスプレイ(たとえば仮想キーボード)を伴うモバイルコンピューティングデバイスであり、PF10がフルサイズのモニター(たとえば対角方向に20インチ)とフルサイズの物理キーボードとを含む場合、WD4のユーザは、フルサイズのモニターとフルサイズのキーボードとを利用してWD4と対話することを望むことがある。しかしながら、WD4とフルサイズのモニターおよびキーボードとの間に有線接続を確立することをユーザに要求するのは望ましくないことがある。本開示の1つまたは複数の技法によれば、WD4は、PF10の1つまたは複数にアクセスするために、ワイヤレス通信リンク8を介してWDC6とワイヤレスにドッキングすることができる。このようにして、本開示の技法は、WD4をWDC6に物理的に接続することなく、WDC6と関連付けられるPF10の1つまたは複数(すなわちフルサイズのモニターおよびキーボード)にユーザがアクセスすることを可能にし得る。
[0037]図2は、本開示の1つまたは複数の例による、WDと、WDがWDCと関連付けられる1つまたは複数のPFにアクセスできるようにワイヤレスにドッキングするための技法を実行するWDCとの間の、例示的なデータフロー200を示す通信フロー図である。図2の技法は、図1に示されるWD4およびWDC6のようなWDおよびWDCによって実行され得る。例示を目的に、図2の技法は図1のWD4およびWDC6のコンテキストで説明されるが、WD4およびWDC6の構成とは異なる構成を有するコンピューティングデバイスが図2の技法を実行することができる。
[0038]ドッキング構成および制御プロトコルは、ドッキングセッションにおいて、WD4が関心を持っているPFを選択して構成するために、WD4によって使用され得る。ドッキング構成および制御プロトコルが個々のPFに対して動作する前に、WD4は、WDC6によって要求される場合、ユーザタイプ認証プロシージャを実行することができる。WDC6は、事前関連発見フェーズの間に、要素「isUserTypeAuthRequired」を使用してそのような要求を示し得る。
[0039]PFのためのドッキング構成および制御プロシージャの例示的なシーケンスが図2に示される。例では、WD4はまずPFクエリプロシージャを使用して、PF情報を取得する。次いで必要とされる場合、WD4は、関心のあるPFを選択し構成する。PFの選択および構成が完了すると、WD4およびWDC6は、個々のPFサービスをセットアップする。
[0040]本開示の1つまたは複数の技法によれば、WD4およびWDC6は、ドッキングセッションセットアッププロシージャを実行するために通信を交換することができる(202)。たとえば、WD4およびWDC6は、WD4とWDC6との間の直接のワイヤレス接続を介してドッキングセッションを確立するために、通信を交換することができる。例示的なドッキングセッションセットアッププロシージャのさらなる詳細は、図5Bを参照して以下で与えられる。
[0041]WD4およびWDC6は、PF問合せプロシージャを実行するために通信を交換することができる(204)。たとえば、WD4およびWDC6は、WD4がWDC6と関連付けられる1つまたは複数のPFを決定できるように、通信を交換することができる。例示的なドッキング問合せプロシージャのさらなる詳細が、図6Aを参照して以下で与えられる。
[0042]WD4およびWDC6は、PF選択および構成プロシージャを実行するために通信を交換することができる(206)。たとえば、WD4およびWDC6は、WD4がWDC6と関連付けられる1つまたは複数のPFを選択できるように通信を交換することができる。例示的なPF選択プロシージャのさらなる詳細が、図6Bを参照して以下で与えられる。
[0043]WD4およびWDC6は、PFサービスセットアッププロシージャを実行するために通信を交換することができる(208)。たとえば、WD4およびWDC6は、WD4とWDC6の1つまたは両方において1つまたは複数の選択されるPFと関連付けられる1つまたは複数のサービスをセットアップするために通信を交換することができる。例示的なPFサービスセットアッププロシージャのさらなる詳細が、図5Dを参照して以下で与えられる。
[0044]WD4およびWDC6はPFデータを交換することができる(210)。たとえば、WD4およびWDC6は、WD4が1つまたは複数の選択されたPFにアクセスできるように通信を交換することができる。このようにして、WD4は、WD4がWDC6と関連付けられる1つまたは複数の選択されるPFにアクセスできるように、WDC6にワイヤレスにドッキングすることができる。WD4とWDC6との間で交換され得る例示的なデータのさらなる詳細が、図5Dを参照して以下で与えられる。
[0045]図3は、本開示の1つまたは複数の例による、WDと、WDがWDCと関連付けられる1つまたは複数のWDNを作成しそれにアクセスできるようにワイヤレスにドッキングするための技法を実行するWDCとの間の、例示的なデータフロー300を示す通信フロー図である。図3の技法は、図1に示されるWD4およびWDC6のようなWDおよびWDCによって実行され得る。例示を目的に、図3の技法は図1のWD4およびWDC6のコンテキストで説明されるが、WD4およびWDC6の構成とは異なる構成を有するコンピューティングデバイスが図3の技法を実行することができる。
[0046]ドッキング構成および制御プロトコルは、ドッキングセッションにおいて、WD4が関心を持っているWDNを選択して構成するように、WD4によって使用され得る。ドッキング構成および制御プロトコルがWDNに対して動作する前に、WD4は、WDC6によって要求される場合、ユーザタイプ認証プロシージャを実行することができる。WDC6は、事前関連発見フェーズの間に、要素「isUserTypeAuthRequired」を使用してそのような要求を示し得る。
[0047]WDNのためのドッキング構成および制御プロトコル動作の例示的なシーケンスが図3に示される。例では、WD4はまずPFクエリプロシージャを使用して、PF情報を取得する。次いで、WD4は今後の使用のためにWDNを作成する。今後のドッキングセッションにおいて、WD4は、WD4が関心を持っているPFの選択と構成とを含む、WD中心のWDNを直接選択することができる。WDN選択が完了すると、WD4およびWDC6は個々のPFサービスをセットアップする。
[0048]本開示の1つまたは複数の技法によれば、WD4およびWDC6は、ドッキングセッションセットアッププロシージャを実行するために通信を交換することができる(302)。たとえば、WD4およびWDC6は、WD4とWDC6との間の直接のワイヤレス接続を介してドッキングセッションを確立するために、通信を交換することができる。例示的なドッキングセッションセットアッププロシージャのさらなる詳細は、図5Bを参照して以下で与えられる。
[0049]WD4およびWDC6は、PF問合せプロシージャを実行するために通信を交換することができる(304)。たとえば、WD4およびWDC6は、WD4がWDC6と関連付けられる1つまたは複数のPFを決定できるように、通信を交換することができる。例示的なドッキングセッションセットアッププロシージャのさらなる詳細は、図5Bを参照して以下で与えられる。
[0050]WD4およびWDC6は、WD中心のWDN作成プロシージャを実行するために通信を交換することができる(306)。たとえば、WD4およびWDC6は、WD4がWDC6と関連付けられる1つまたは複数のPFに対応する新たなWDNを作成できるように通信を交換することができる。例示的なWDN作成プロシージャのさらなる詳細が、図6Hを参照して以下で与えられる。
[0051]WD4およびWDC6は、ドッキングセッション切断プロシージャを実行するために通信を交換することができる(308)。たとえば、WD4およびWDC6は、WD4とWDC6との間で開いている1つまたは複数のセッションを閉じるために通信を交換することができる。例示的なドッキングセッション切断プロシージャのさらなる詳細が、図5Dを参照して以下で与えられる。
[0052]より後の時間において、WD4は、WDN作成プロシージャの間に作成されたWDNを使用することができる。WD4およびWDC6は、ドッキングセッションセットアッププロシージャを実行するために通信を交換することができる(310)。たとえば、WD4およびWDC6は、WD4とWDC6との間の直接のワイヤレス接続を介してドッキングセッションを確立するために、通信を交換することができる。例示的なドッキングセッションセットアッププロシージャのさらなる詳細は、図5Bを参照して以下で与えられる。
[0053]より後の時間において、WD4およびWDC6は、WDN選択プロシージャを実行するために通信を交換することができる(312)。たとえば、WD4およびWDC6は、WD4がWDC6での使用のために構成されるWDNの1つまたは複数を選択できるように通信を交換することができる。例示的なWDN選択プロシージャのさらなる詳細が、図6Eを参照して以下で与えられる。
[0054]WD4およびWDC6は、PFサービスセットアッププロシージャを実行するために通信を交換することができる(314)。たとえば、WD4およびWDC6は、WD4とWDC6の1つまたは両方において選択されるWDNに対応する、1つまたは複数のPFと関連付けられる1つまたは複数のサービスをセットアップするために通信を交換することができる。例示的なPFサービスセットアッププロシージャのさらなる詳細が、図5Dを参照して以下で与えられる。
[0055]WD4およびWDC6はPFデータを交換することができる(316)。たとえば、WD4およびWDC6は、WD4が選択されたWDNに対応する1つまたは複数のPFにアクセスできるように通信を交換することができる。このようにして、WD4は、WD4がWDC6での使用のために構成されるWDNにアクセスできるように、WDC6とワイヤレスにドッキングすることができる。WD4とWDC6との間で交換され得る例示的なデータのさらなる詳細が、図5Dを参照して以下で与えられる。
[0056]図4は、本開示の1つまたは複数の技法による、WD4がPF10の1つまたは複数を利用するためにワイヤレス通信チャネル8を通じて例示的なWDC6とワイヤレスにドッキングするように構成される、WDE2の一例のさらなる詳細を示すブロック図である。
[0057]図4に示されるように、WD4は、1つまたは複数のプロセッサ22と、1つまたは複数の通信ユニット24と、1つまたは複数のユーザインターフェース(UI)デバイス26と、1つまたは複数の記憶デバイス28とを含み得る。コンポーネント22、24、26、および28の各々は、コンポーネント間通信のために通信チャネル30を介して(物理的に、通信可能に、および/または動作可能に)相互接続され得る。いくつかの例では、通信チャネル30は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他のチャネルを含み得る。記憶デバイス28の1つまたは複数は、いくつかの例では、UIモジュール32と、通信モジュール34と、ワイヤレスドッキングモジュール(WDM)36と、1つまたは複数のアプリケーションモジュール38A〜38N(総称的に「アプリケーションモジュール38」)と、1つまたは複数のPFサービスモジュール40A〜40N(総称的に「サービスモジュール40」)と、アプリケーションサービスプラットフォーム(ASP)モジュール42とを含み得る。
[0058]プロセッサ22は、一例では、機能を実装し、および/またはWD4内で実行するための命令を処理するように構成される。たとえば、プロセッサ22は、記憶デバイス28の1つまたは複数に記憶された命令を処理することが可能であり得る。プロセッサ22の例は、任意の1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または任意の他の同等の集積回路もしくはディスクリート論理回路網、ならびにそのようなコンポーネントの任意の組合せを含み得る。
[0059]WD4は、いくつかの例では、1つまたは複数の通信ユニット24も含む。WD4は、一例では、1つまたは複数のワイヤレスネットワークのような1つまたは複数のネットワークを介して外部デバイスと通信するために、通信ユニット24の1つまたは複数を利用する。通信ユニット24の1つまたは複数は、イーサネット(登録商標)カード、光学トランシーバ、高周波トランシーバ、または情報を送受信することができる任意の他のタイプのデバイスのような、ネットワークインターフェースカードであり得る。そのようなネットワークインターフェースの他の例は、Bluetooth、3G、およびWi−Fi無線を含み得る。いくつかの例では、WD4は、外部デバイスとワイヤレスに通信するために通信ユニット24を利用する。たとえば、WD4は、ワイヤレス通信チャネル8を通じてWDC6の通信ユニット64とワイヤレスに通信するために、通信ユニット24を利用することができる。いくつかの例では、通信ユニット24は、通信ユニット24に外部デバイスとワイヤレスに通信させる、通信モジュール34のような、WD4の他のコンポーネントから入力を受け取ることができる。
[0060]WD4は、いくつかの例では、通信モジュール34も含む。いくつかの例では、通信モジュール34は、WD4とWDC6のような外部デバイスとの間の通信を管理することができる。たとえば、通信モジュール34は、WDC6によってホストされるネットワークに接続することができる。いくつかの例では、通信モジュール34はWDCとデータを交換することができる。一例として、通信モジュール34は、WDC6から周辺データを受信することができる。いくつかの例では、通信モジュール34は、受信された情報をWD4の他のコンポーネントに提供することができる。たとえば、通信モジュール34は、受信された周辺データをPFサービスモジュール40の1つまたは複数に提供することができる。
[0061]WD4は、いくつかの例では、1つまたは複数のUIデバイス26も含み得る。いくつかの例では、UIデバイス26の1つまたは複数は、メディアデータのようなコンテンツを出力するように構成され得る。たとえば、UIデバイス26の1つまたは複数は、ディスプレイにおいてビデオデータを表示し、および/またはスピーカーからオーディオデータを出力するように構成され得る。コンテンツを出力することに加えて、UIデバイス26の1つまたは複数は、触覚的な、聴覚的な、または視覚的な入力を受け取るように構成され得る。UIデバイス26のいくつかの例は、ビデオディスプレイ、スピーカー、キーボード、タッチスクリーン、マウス、カメラなどを含む。
[0062]WD4は、いくつかの例では、UIモジュール32も含み得る。UIモジュール32は、WD4と関連付けられる他のコンポーネントからUIデータのようなコンテンツを受信し、UIデバイス26の1つまたは複数にコンテンツを出力させるために、1つまたは複数の機能を実行することができる。いくつかの例では、UIモジュール32は、ユーザ入力のような入力のインジケーションを受信し、入力のインジケーションをWDM36のようなWD4と関連付けられる他のコンポーネントに送るように構成され得る。データを使用して、UIモジュール32は、UIデバイス26の1つまたは複数のようなWD4と関連付けられる他のコンポーネントに、データに基づいて出力を提供させることができる。
[0063]1つまたは複数の記憶デバイス28は、動作の間にWD4内に情報を記憶するように構成され得る。記憶デバイス28の1つまたは複数は、いくつかの例では、コンピュータ可読記憶媒体を備え得る。いくつかの例では、記憶デバイス28の1つまたは複数は一時メモリを備えてよく、これは、記憶デバイス28の1つまたは複数の主な目的が長期記憶ではないことを意味する。記憶デバイス28の1つまたは複数は、いくつかの例では非揮発性メモリを備えてよく、これは、システムがオフにされるときに記憶デバイス28の1つまたは複数が記憶されているコンテンツを維持しないことを意味する。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当技術分野で知られている他の形態の揮発性メモリを含む。いくつかの例では、記憶デバイス28の1つまたは複数は、プロセッサ22により実行するためのプログラム命令を記憶するために使用される。記憶デバイス28の1つまたは複数は、一例では、プログラム実行の間に情報を一時的に記憶するために、WD4上で実行されるソフトウェアまたはモジュール(たとえば、UIモジュール32、通信モジュール34、WDM36、PFサービスモジュール40、およびASPモジュール42)によって使用され得る。
[0064]記憶デバイス28の1つまたは複数はまた、いくつかの例では、1つまたは複数のコンピュータ可読記憶媒体を含み得る。記憶デバイス28の1つまたは複数はさらに、情報の長期記憶のために構成され得る。いくつかの例では、記憶デバイス28の1つまたは複数は、非揮発性記憶素子を含み得る。そのような非揮発性記憶要素の例は、磁気ハードディスク、光ディスク、フロッピー(登録商標)ディスク、フラッシュメモリ、または電気的プログラマブルメモリ(EPROM)もしくは電気消去可能プログラマブル(EEPROM(登録商標))メモリの形態を含む。
[0065]アプリケーションモジュール38の各々は、WD4もしくはWD4上で動作するソフトウェアを製造する業者から提供されるアプリケーション、または主要なソースデバイス6とともに使用するための第三者によって開発されたアプリケーションを表し得る。アプリケーションモジュール38の例は、移動経路設定、地図、オーディオおよび/またはビデオの提示、ストリーミングビデオの配信および提示、ワードプロセッシング、スプレッドシート、音声および/または通話、天気などのためのアプリケーションを含み得る。
[0066]WD4はまた、いくつかの例では、サービスの発見を調整し、WD4とWDC6との間の接続とセッションとを管理するように構成され得る、ASPモジュール54を含み得る。いくつかの例では、ASPモジュール54は、WDM36のようなWD4の1つまたは複数の他のコンポーネントから方法コールを受け取り得る。いくつかの例では、ASPモジュール54は、WDM36のようなWD4の1つまたは複数の他のコンポーネントにイベント通知を提供し得る。
[0067]WD4はまた、いくつかの例では、アプリケーションモジュール38の1つまたは複数のようなWD4の1つまたは複数の他のコンポーネントにPFサービスを提供するように構成され得る、PFサービスモジュール52を含み得る。PFサービスモジュール52の1つまたは複数によって提供され得るいくつかの例示的なPFサービスは、限定はされないが、表示サービス、Wi−Fiシリアルバス(WSB)サービス、印刷サービス、およびオーディオサービスを含む。いくつかの例では、PFサービスモジュール52の1つまたは複数は、周辺機能データを含み得るPFサービスセッション通信を、PFサービスモジュール92の対応するPFサービスモジュールと交換するように構成され得る。
[0068]WD4はまた、いくつかの例では、WD4がWDC6と関連付けられる1つまたは複数の周辺機能(PF)(たとえばPF10の1つまたは複数)にアクセスできるように、WDC6とWD4をワイヤレスにドッキングするために1つまたは複数の機能を実行することができるWDM36を含み得る。いくつかの例では、WDM36は、発見モジュール40と、セットアップモジュール42と、制御モジュール44と、WDNモジュール46と、認証モジュール48と、切断モジュール50とを含み得る。
[0069]WDM36は、WDCに関する情報を取得するためにWDC6とのドッキング事前関連発見を実行するように構成され得る発見モジュール40を含み得る。たとえば、発見モジュール40は、WDCと関連付けられる1つまたは複数のPFを決定することができる。一例として、発見モジュール40は、ワイヤレスリンクを介してWDCから情報を受信することができる。いくつかの例では、情報は、WDCの1つまたは複数の特性を示し得る。情報によって示され得るいくつかの例示的な特性は、限定はされないが、送信デバイスがWDタイプのデバイスであるかWDCタイプのデバイスであるかを示すデバイスタイプ、送信デバイスの親しみやすい名前を示すデバイス名、送信デバイスが利用可能であるかどうかを示すデバイス利用可能性ステータス、WDCと関連付けられる1つまたは複数のPFのインジケーション、および、WDC6に記憶される1つまたは複数のドッキング環境タイプ(たとえば1つまたは複数のWDN)を含む。
[0070]WDM36は、WD4とWDC6との間でワイヤレスドッキング接続をセットアップするように構成され得る、セットアップモジュール42を含み得る。一例として、セットアップモジュール42は、WDC6とWD4との間の直接のワイヤレス接続を介して、WDC6とWD4との間にドッキングセッションを確立するように構成され得る。いくつかの例では、セットアップモジュール42は、WDC6とWD4との間でドッキング接続セットアップ交換を実行するように構成され得る。いくつかの例では、セットアップモジュール42は、WDC6とWD4との間でドッキングASP(アプリケーションサービスプラットフォーム)セッションセットアップを実行するように構成され得る。
[0071]WDM36は、WDC6と関連付けられる1つまたは複数のPFを管理するように構成され得る制御モジュール44を含み得る。一例として、制御モジュール44は、WDC6とドッキング構成および制御プロトコル通信を交換することができる。たとえば、制御モジュール44は、WDC6と関連付けられるPFの1つまたは複数を選択するように構成され得る。
[0072]WDM36は、1つまたは複数のPFに各々対応する1つまたは複数のワイヤレスドッキング環境(WDN)の選択/作成/修正/削除を管理するように構成され得る、WDNモジュール46を含み得る。たとえば、WDNモジュール46は、特定のWDNを選択するための要求をWDC6に送ることによって、WDNを選択することができる。
[0073]WDM36は、PF10の1つまたは複数へのアクセス権を取得するために1つまたは複数の動作を実行するように構成され得る、アクセス制御モジュール48を含み得る。たとえば、アクセス制御モジュール48は、ユーザ証明書をWDC6に送ることによって、WDC6とのユーザタイプ認証プロシージャを実行するように構成され得る。いくつかの例では、ユーザ証明書は、ユーザタイプとパスフレーズとを含み得る。
[0074]WDM36は、WD4とWDC6との間のワイヤレスドッキング接続を切断するように構成され得る、切断モジュール50を含み得る。一例では、切断モジュール50は、WD4とWDC6との間でドッキングASP(アプリケーションサービスプラットフォーム)セッション切断を実行することができる。いくつかの例では、切断モジュール50は、ある時間の期間(たとえば、10秒、30秒、5分)にWDC6からキープアライブ信号を受信しなかったことに応答して、切断プロシージャを実行するように構成され得る。
[0075]図4に示されるように、WDC6は、1つまたは複数のプロセッサ62と、1つまたは複数の通信ユニット64と、1つまたは複数のユーザインターフェース(UI)デバイス66と、1つまたは複数の記憶デバイス68とを含み得る。コンポーネント62、64、66、および68の各々は、コンポーネント間通信のために通信チャネル70を介して(物理的に、通信可能に、および/または動作可能に)相互接続され得る。いくつかの例では、通信チャネル70は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための任意の他のチャネルを含み得る。記憶デバイス68の1つまたは複数は、いくつかの例では、UIモジュール72と、通信モジュール74と、ワイヤレスドッキングモジュール(WDM)76と、1つまたは複数のアプリケーションモジュール78A〜78N(総称的に「アプリケーションモジュール78」)と、1つまたは複数のPFサービスモジュール80A〜80N(総称的に「サービスモジュール80」)と、アプリケーションサービスプラットフォーム(ASP)モジュール82とを含み得る。
[0076]プロセッサ62は、一例では、機能を実装し、および/またはWDC6内で実行するための命令を処理するように構成される。たとえば、プロセッサ62は、記憶デバイス68の1つまたは複数に記憶された命令を処理することが可能であり得る。プロセッサ62の例は、任意の1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または任意の他の同等の集積回路もしくはディスクリート論理回路網、ならびにそのようなコンポーネントの任意の組合せを含み得る。
[0077]WDC6は、いくつかの例では、1つまたは複数の通信ユニット64も含む。WDC6は、一例では、1つまたは複数のワイヤレスネットワークのような1つまたは複数のネットワークを介して外部デバイスと通信するために、通信ユニット64の1つまたは複数を利用する。通信ユニット64の1つまたは複数は、イーサネットカード、光学トランシーバ、高周波トランシーバ、または情報を送受信することができる任意の他のタイプのデバイスのような、ネットワークインターフェースカードであり得る。そのようなネットワークインターフェースの他の例は、Bluetooth、3G、およびWi−Fi無線を含み得る。いくつかの例では、WDC6は、外部デバイスとワイヤレスに通信するために通信ユニット64を利用する。たとえば、WDC6は、ワイヤレス通信チャネル8を通じてWD4の通信ユニット24とワイヤレスに通信するために通信ユニット64を利用することができる。いくつかの例では、通信ユニット64は、通信ユニット64に外部デバイスとワイヤレスに通信させる、通信モジュール74のようなWDC6の他のコンポーネントから入力を受け取ることができる。
[0078]WDC6は、いくつかの例では、通信モジュール74も含む。いくつかの例では、通信モジュール74は、WDC6とWD4のような外部デバイスとの間の通信を管理することができる。たとえば、通信モジュール74は、WD4によってホストされるネットワークに接続することができる。いくつかの例では、通信モジュール74はWD4とデータを交換することができる。一例として、通信モジュール74は、WD4に周辺データを送信することができる。いくつかの例では、通信モジュール74は、送信された情報をWDC6の他のコンポーネントに受信することができる。たとえば、通信モジュール34は、周辺データをPFサービスモジュール80の1つまたは複数から受信することができる。
[0079]WDC6は、いくつかの例では、1つまたは複数のUIデバイス66も含み得る。いくつかの例では、UIデバイス66の1つまたは複数は、メディアデータのようなコンテンツを出力するように構成され得る。たとえば、UIデバイス66の1つまたは複数は、ディスプレイにおいてビデオデータを表示し、および/またはスピーカーからオーディオデータを出力するように構成され得る。コンテンツを出力することに加えて、UIデバイス66の1つまたは複数は、触覚的な、聴覚的な、または視覚的な入力を受け取るように構成され得る。UIデバイス66のいくつかの例は、ビデオディスプレイ、スピーカー、キーボード、タッチスクリーン、マウス、カメラなどを含む。いくつかの例では、UIデバイス66の1つまたは複数は、周辺機器10に含まれ得る。
[0080]WDC6は、いくつかの例では、UIモジュール72も含み得る。UIモジュール72は、WDC6と関連付けられる他のコンポーネントからUIデータのようなコンテンツを受信し、UIデバイス66の1つまたは複数にコンテンツを出力させるために、1つまたは複数の機能を実行することができる。いくつかの例では、UIモジュール72は、ユーザ入力のような入力のインジケーションを受信し、その入力のインジケーションをWDM76のようなWDC6と関連付けられる他のコンポーネントに送るように構成され得る。データを使用して、UIモジュール72は、UIデバイス66の1つまたは複数のようなWDC6と関連付けられる他のコンポーネントに、データに基づいて出力を提供させることができる。
[0081]1つまたは複数の記憶デバイス68は、動作の間にWDC6内に情報を記憶するように構成され得る。記憶デバイス68の1つまたは複数は、いくつかの例では、コンピュータ可読記憶媒体を備え得る。いくつかの例では、記憶デバイス68の1つまたは複数は一時メモリを備えてよく、これは、記憶デバイス68の1つまたは複数の主な目的が長期記憶ではないことを意味する。記憶デバイス68の1つまたは複数は、いくつかの例では非揮発性メモリを備えてよく、これは、システムがオフにされるときに記憶デバイス68の1つまたは複数が記憶されているコンテンツを維持しないことを意味する。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、および当技術分野で知られている他の形態の揮発性メモリを含む。いくつかの例では、記憶デバイス68の1つまたは複数は、プロセッサ62により実行するためのプログラム命令を記憶するために使用される。記憶デバイス68の1つまたは複数は、一例では、プログラム実行の間に情報を一時的に記憶するために、WDC6上で実行されるソフトウェアまたはモジュール(たとえば、UIモジュール72、通信モジュール74、WDM76、PFサービスモジュール80、およびASPモジュール82)によって使用され得る。
[0082]記憶デバイス68の1つまたは複数はまた、いくつかの例では、1つまたは複数のコンピュータ可読記憶媒体を含み得る。記憶デバイス68の1つまたは複数はさらに、情報の長期記憶のために構成され得る。いくつかの例では、記憶デバイス68の1つまたは複数は、非揮発性記憶素子を含み得る。そのような非揮発性記憶要素の例は、磁気ハードディスク、光ディスク、フロッピーディスク、フラッシュメモリ、または電気的プログラマブルメモリ(EPROM)もしくは電気消去可能プログラマブル(EEPROM)メモリの形態を含む。
[0083]アプリケーションモジュール78の各々は、WDC6もしくはWDC6上で動作するソフトウェアを製造する業者から提供されるアプリケーション、または主要なソースデバイス6とともに使用するための第三者によって開発されたアプリケーションを表し得る。アプリケーションモジュール78の例は、移動経路設定、地図、オーディオおよび/またはビデオの提示、ストリーミングビデオの配信および提示、ワードプロセッシング、スプレッドシート、音声および/または通話、天気などのためのアプリケーションを含む。
[0084]WDC6はまた、いくつかの例では、サービスの発見を調整してWDC6とWD4との間の接続とセッションとを管理するように構成され得る、ASPモジュール82を含み得る。いくつかの例では、ASPモジュール82は、WDM76のようなWDC6の1つまたは複数の他のコンポーネントから方法コールを受け取り得る。いくつかの例では、ASPモジュール82は、WDM76のようなWDC6の1つまたは複数の他のコンポーネントにイベント通知を提供し得る。
[0085]WDC6はまた、いくつかの例では、WD4の対応するPFサービスモジュールにPFサービスを提供するように構成され得る、PFサービスモジュール92を含み得る。PFサービスモジュール92の1つまたは複数によって提供され得るいくつかの例示的なPFサービスは、限定はされないが、表示サービス、Wi−Fiシリアルバス(WSB)サービス、印刷サービス、およびオーディオサービスを含む。いくつかの例では、PFサービスモジュール92の1つまたは複数は、周辺機能データを含み得るPFサービスセッション通信を、PFサービスモジュール52の対応するPFサービスモジュールと交換するように構成され得る。
[0086]WDC6はまた、いくつかの例では、WD4がWDC6と関連付けられる1つまたは複数の周辺機能(PF)(たとえばPF10の1つまたは複数)にアクセスできるように、WDC6とWD4をワイヤレスにドッキングするために1つまたは複数の機能を実行することができるWDM76を含み得る。いくつかの例では、WDM76は、発見モジュール80と、セットアップモジュール82と、制御モジュール84と、WDNモジュール86と、認証モジュール88と、切断モジュール90とを含み得る。
[0087]WDM76は、WDCに関する情報を提供するためにWD4とのドッキング事前関連発見を実行するように構成され得る発見モジュール80を含み得る。たとえば、発見モジュール80は、WDC6と関連付けられる1つまたは複数のPFに関する情報をWD4の発見モジュール40に提供することができる。いくつかの例では、発見モジュール80は、ワイヤレスリンクを介してWD4に情報を提供することができる。いくつかの例では、情報は、WDC6の1つまたは複数の特性を示し得る。情報によって示され得るいくつかの例示的な特性は、限定はされないが、WDC6がWDタイプのデバイスであるかWDCタイプのデバイスであるかを示すデバイスタイプ、WDC6の親しみやすい名前を示すデバイス名、WDC6が利用可能であるかどうかを示すデバイス利用可能性ステータス、WDC6と関連付けられる1つまたは複数のPFのインジケーション、および、WDC6に記憶される1つまたは複数のドッキング環境タイプ(たとえば1つまたは複数のWDN)を含む。
[0088]WDM76は、WDC6とWD4との間でワイヤレスドッキング接続をセットアップするように構成され得るセットアップモジュール82を含み得る。一例として、セットアップモジュール82は、WDC6とWD4との間の直接のワイヤレス接続を介して、WDC6とWD4との間にドッキングセッションを確立するように構成され得る。いくつかの例では、セットアップモジュール82は、WDC6とWD4との間でドッキング接続セットアップ交換を実行するように構成され得る。いくつかの例では、セットアップモジュール82は、WDC6とWD4との間でドッキングASP(アプリケーションサービスプラットフォーム)セッションセットアップを実行するように構成され得る。
[0089]WDM76は、WD6と関連付けられる1つまたは複数のPFを管理するように構成され得る制御モジュール84を含み得る。一例として、制御モジュール84は、WD4とドッキング構成および制御プロトコル通信を交換することができる。たとえば、制御モジュール84は、WD4から受信されたWDC6と関連付けられるPFの1つまたは複数を選択するための要求を処理するように構成され得る。
[0090]WDM76は、1つまたは複数のPFに各々対応する1つまたは複数のワイヤレスドッキング環境(WDN)の選択/作成/修正/削除を管理するように構成され得る、WDNモジュール86を含み得る。たとえば、WDNモジュール76は、WD4から新たなWDNを作成するための要求を受信したことに応答して、新たなWDNを作成することができる。
[0091]WDM76は、PF10の1つまたは複数へのアクセス権を取得するために1つまたは複数の動作を実行するように構成され得る、アクセス制御モジュール88を含み得る。たとえば、アクセス制御モジュール88は、ユーザ証明書をWD4から受信することによって、WD4とのユーザタイプ認証プロシージャを実行するように構成され得る。いくつかの例では、ユーザ証明書は、ユーザタイプとパスフレーズとを含み得る。
[0092]WDM76は、WDC6とWD4との間のワイヤレスドッキング接続を切断するように構成され得る、切断モジュール90を含み得る。一例では、切断モジュール90は、WDC6とWD4との間でドッキングASP(アプリケーションサービスプラットフォーム)セッション切断を実行することができる。いくつかの例では、切断モジュール90は、ある時間の期間(たとえば、10秒、30秒、5分)にWD4からキープアライブ信号を受信しなかったことに応答して、切断プロシージャを実行するように構成され得る。
[0093]図5は、本開示の1つまたは複数の例による、WDと、ワイヤレスにドッキングするための技法を実行するWDCとの間の例示的なデータフローを示す通信フロー図である。図5の技法は、図1および図4に示されるWD4およびWDC6のようなWDおよびWDCによって実行され得る。例示を目的に、図5の技法は図1および図4のWD4およびWDC6のコンテキストで説明されるが、WD4およびWDC6の構成とは異なる構成を有するコンピューティングデバイスが図5の技法を実行することができる。図5A〜図5Dは、例示的なワイヤレスドッキングプロシージャの様々なフェーズの間の、図5の例示的なデータフローの1つまたは複数の部分を各々示す。具体的には、図5Aはドッキング事前関連発見を示し、図5Bは接続セットアップを示し、図5CはASPセッションセットアップを示し、図5Dは構成および制御と、PFサービスセッションと、切断とを示す。
[0094]WD4のユーザは、WD4をWDC6に物理的に接続することなく、WDC6と関連付けられるPF10の1つまたは複数にアクセスすることを望むことがある。たとえば、WD4がユーザの入力を受けるための比較的小さなタッチ感知式ディスプレイ(たとえば仮想キーボード)を伴うモバイルコンピューティングデバイスであり、PF10がフルサイズのモニター(たとえば対角方向に20インチ)とフルサイズの物理キーボードとを含む場合、WD4のユーザは、フルサイズのモニターとフルサイズのキーボードとを利用してWD4と対話することを望むことがある。しかしながら、WD4とフルサイズのモニターおよびキーボードとの間に有線接続を確立することをユーザに要求するのは望ましくないことがある。本開示の1つまたは複数の技法によれば、WD4は、PF10の1つまたは複数にアクセスするために、ワイヤレス通信リンク8を介してWDC6とワイヤレスにドッキングすることができる。このようにして、本開示の技法は、WD4をWDC6に物理的に接続することなく、WDC6と関連付けられるPF10の1つまたは複数(すなわちフルサイズのモニターおよびキーボード)にユーザがアクセスすることを可能にし得る。
[0095]図5に示されるように、ドッキングサービス(すなわち、WDM36およびWDM76)は、事前関連デバイスとサービスの発見を実行するためにASPを使用することができる(510)。WDC6によって提供されるドッキングサービスがWD6の関心と一致する場合、WDC6上のドッキングサービスおよびWD4上のドッキングサービスは、P2P予備発見プロシージャを実行し、その後WDC6とWD4とを含むP2Pグループを形成するために、ASPを実行することができる(520)。ASPセッションが次いで、WDC6とWD4との間のドッキングセッションのために作成され得る(530)。
[0096]ドッキングサービスのためのASPセッションがセットアップされると、ドッキング構成および制御プロトコルは、ドッキングASPセッションの接続上で動作し得る(540)。ドッキング構成および制御プロトコルは、接続後PF/WDN発見、PF/WDN選択、およびPFサービスのための構成に使用され得る。いくつかの例では、PF/WDN選択および構成が完了する前に、ドッキングサービスは、すべてのPFサービスへのWDのアクセスを阻止することができる。
[0097]PF/WDNの選択および構成が完了すると、WDC6におけるドッキングサービスは、WDC6が提供することに同意したサービスにWD4がアクセスすることを可能にし得る(550)。WD4およびWDC6は、PFサービスセットアッププロシージャを実行することができる。PFサービスセットアッププロシージャは次いで、可能性のあるPF接続セットアップと、PF ASPセッションセットアップとを含み得る。
[0098]WD4はWDC6からドッキング解除することができる。たとえば、ドッキングサービスにWDC6とWD4との間の各々の個々のPFサービスのASPセッションを閉じさせ得るドッキングセッション切断プロシージャがトリガされ得る。
[0099]図5Aに示されるように、ドッキング事前関連発見フェーズ510の間に、WD4は、WDC6と関連付けられる1つまたは複数のPFを決定するために、ドッキング事前関連発見を実行することができる。たとえば、発見モジュール80は、ワイヤレスドッキングサービスが1つまたは複数のWDによって発見され得るように、WDC6のワイヤレスドッキングサービス(たとえばWDM76)を広告することができる。いくつかの例では、発見モジュール80は、ASPモジュール94にAdvertiseService方法を実行させることによって、ワイヤレスドッキングサービスを広告することができる。発見モジュール80は、サービス名値、自動受入れ値、サービス情報値、および/またはサービスステータス値というパラメータの1つまたは複数を規定することによって、ASPモジュール94にAdvertiseService方法を実行させることができる。いくつかの例では、AdvertiseService方法のプリミティブは、AdvertiseService(service_name, auto_accept, service_information, service_status)であり得る。いくつかの例では、発見モジュール80は、org.wi-fi.wfds.docking.wdcとしてサービス名値を規定することができる。いくつかの例では、発見モジュール80は、WDC6において現在構成されているPF10の1つまたは複数および/または1つまたは複数のWDNに関する情報を含むものとして、サービス情報値を規定することができる。いくつかの例では、発見モジュール80は、以下で説明されるようなwdnType要素を使用することなどによって、ドッキング環境タイプ(DET)を特定するものとしてサービス情報値を規定することができる。いくつかの例では、発見モジュール80は、要素preassociationServiceDiscoveryを含み得るXMLデータのUTF−8テキスト文字列としてサービス情報値を規定することができる。例示的なpreassociationServiceDiscovery要素は、以下のXMLのスキーマにおいて提供されるように定義され得る。
[0100]いくつかの例では、WDC6は、WDC6がワイヤレスドッキングサービスをホストしていることを示すメッセージをWD4に送ることによって、事前関連発見を実行することができる。いくつかの例では、メッセージはさらに、WDC6がユーザタイプ認証プロシージャの実行を要求するかどうかを示す。いくつかの例では、発見モジュール80は、AdvertiseService方法を呼び出すことによって、ASPモジュール94にメッセージを送らせることができる。いくつかの例では、ASPモジュール94は、WDC6がワイヤレスドッキングサービスをホストしているかどうかを問い合わせる要求をWD4から受信するのを待つことによって、AdvertiseService方法を実行することができる。
[0101]WD4の発見モジュール40は、ドッキング事前関連発見を実行することができる。たとえば、発見モジュール40は、ワイヤレスドッキングサービスを探すことができる。いくつかの例では、発見モジュール40は、ASPモジュール54にSeekService方法を実行させることによって、ワイヤレスドッキングサービスを探すことができる。発見モジュール40は、サービス名値、正確な検索値、MACアドレス値、および/またはサービス情報要求値というパラメータの1つまたは複数を規定することによって、ASPモジュール54にSeekService方法を実行させることができる。いくつかの例では、SeekService方法のプリミティブは、SeekService(service_name, exact_search, mac_address, service_information_request)であり得る。いくつかの例では、発見モジュール40は、org.wi-fi.wfds.docking.wdcとしてサービス名値を規定することができる。いくつかの例では、発見モジュール40は、真(または論理的等価物)として正確な検索値を規定することができる。いくつかの例では、発見モジュール40は、ヌル(または論理的等価物)としてサービス情報要求値を規定することができる。いくつかの例では、発見モジュール40は、特定のDETとしてサービス情報要求値を規定することができる。
[0102]ASPモジュール54は、WD4がワイヤレスドッキングサービスを探していることを示す要求をWDC6に送ることによって、SeekService方法を実行することができる。たとえば、ASPモジュール54は、発見モジュール40によって規定されるサービス名値のハッシュ値(たとえば、org.wi-fi.wfds.docking.wdc)を含む、P2Pプローブ要求をWDC6に送ることができる。いくつかの例では、ASPモジュール54は、通信ユニット24を介してP2Pプローブ要求をWDC6に送ることができる。
[0103]ASPモジュール94は、WD4がワイヤレスドッキングサービスを探していることを示す要求を受信することができる。たとえば、ASPモジュール94は、発見モジュール40によって規定されるサービス名値のハッシュ値(たとえば、org.wi-fi.wfds.docking.wdc)を含む、P2Pプローブ要求を受信することができる。ASPモジュール94は、要求に含まれるハッシュ値を、AdvertiseService方法コールにおいて発見モジュール80によって規定されるサービス名値のハッシュ値と一致させることができる。発見モジュール80によって規定されるサービス名値が発見モジュール40によって規定されるサービス名値と一致する(すなわちハッシュ値が一致する)と決定したことに応答して、ASPモジュール94は、発見モジュール80によって規定されるサービス名値とサービス名値に対応する広告識別子とを示すP2Pプローブ応答をWD4に送ることができる。
[0104]ASPモジュール54は、WDC6がワイヤレスドッキングサービスをホストしていることを示す応答を受信することができる。たとえば、ASPモジュール54は、発見モジュール80によって規定されるサービス名値とサービス名値に対応する広告識別子とを含む、P2Pプローブ応答を受信することができる。ASPモジュール54は次いで、WDC6のワイヤレスドッキングサービスと関連付けられるPFに関する情報を要求するために、P2Pサービス発見要求をWDC6に送ることができる。
[0105]ASPモジュール94は、WDC6のワイヤレスドッキングサービスと関連付けられるPFに関する情報に対する要求を受信することができる。たとえば、ASPモジュール94は、P2Pサービス発見要求を受信することができる。要求を受信したことに応答して、ASPモジュール94は、WDC6のワイヤレスドッキングサービスと関連付けられるPFに関する情報を含む応答をWD4に送ることができる。たとえば、ASPモジュール94は、AdvertiseService方法を呼び出すときにサービス情報値において発見モジュール80によって規定される情報、および/またはサービス情報によって示されるPFの広告識別子のいくつかまたはすべてのような、WDC6のワイヤレスドッキングサービスと関連付けられるPFに関する情報を含む、P2Pサービス発見応答をWD4に送ることができる。いくつかの例では、応答は、WDC6上で構成される1つまたは複数のWDNに関する情報を含み得る。そのような例では、ASPモジュール94は、WDC6上で構成される1つまたは複数のWDNに関する情報をWDN86から受信することができる。
[0106]ASPモジュール54は、WDC6のワイヤレスドッキングサービスと関連付けられるPFに関する情報を含む応答を受信することができる。たとえば、ASPモジュール54は、AdvertiseService方法を呼び出すときにサービス情報値において発見モジュール80によって規定される情報のいくつかまたはすべてのような、WDC6のワイヤレスドッキングサービスと関連付けられるPFに関する情報を含む、P2Pサービス発見応答を受信することができる。いくつかの例では、ASPモジュール54は、受信された情報の一部またはすべてを発見モジュール40に送ることができる。言い換えると、ASPモジュール54は、SearchResultイベントなどとともに、AdvertiseService方法の結果を発見モジュール40に報告することができる。いくつかの例では、SearchResultイベントとともに報告される結果は、WDC6のMACアドレスと、WDC6のワイヤレスドッキングサービスに対応する広告識別子とを含み得る。
[0107]発見モジュール40は次いで、WDC6によってホストされるドッキングサービスがWD4の関心と一致するかどうかを決定することができる。たとえば、発見モジュールは、WDC6からの応答に含まれるPFの1つまたは複数がWD4によって探されている1つまたは複数のPFと一致するかどうかを決定することができる。いくつかの例では、発見モジュール40は、WD4によって探されている1つまたは複数のPFを特定するためにユーザ入力を要求するGUIをUIモジュール32に出力させることによって、WD4によって探されている1つまたは複数のPFを決定することができる。いくつかの例では、GUIは、WDC6からの応答に含まれるPFのうちの1つまたは複数を含み得る。いくつかの例では、GUIは、WDC6からの応答に含まれるWDNの1つまたは複数を含み得る。いくつかの例では、発見モジュール40は、SeekService方法を呼び出す前に、WD4によって探されている1つまたは複数のPFを決定することができる。いずれの場合でも、WDC6からの応答に含まれるPFの1つまたは複数がWD4によって探されているPFの1つまたは複数と一致すると決定したことに応答して、発見モジュール40は、ドッキングセッションの確立を要求する信号をセットアップモジュール42に送ることができる。このようにして、発見モジュール40および発見モジュール80は事前関連発見を実行することができる。
[0108]図5Bによって示されるように、ドッキング接続セットアップフェーズ520の間に、セットアップモジュール42およびセットアップモジュール82は、WD4とWDC6との間にドッキングセッションを確立することができる。いくつかの例では、セットアップモジュール42およびセットアップモジュール82は、WD4とWDC6との間の直接のワイヤレス接続を介してドッキングセッションを確立することができる。いくつかの例では、セットアップモジュール42およびセットアップモジュール82は、WD4とWDC6の両方を含む新たなP2Pグループを形成することによって、WD4とWDC6との間に直接のワイヤレス接続をセットアップすることができる。いくつかの例では、新たなP2Pグループを作成することとは対照的に、セットアップモジュール42およびセットアップモジュール82は、WD4およびWDC6を既存のP2Pグループへ参加させることができる。いくつかの例では、P2PグループはWi−Fi Direct(登録商標) P2Pグループであり得る。いくつかの例では、WD4はグループ所有者であり得る。いくつかの例では、WDC6はグループ所有者であり得る。いくつかの例では、WD4およびWDC6はグループ所有者のネゴシエーションを実行することができる。
[0109]いくつかの例では、セットアップモジュール42は、ASPモジュール54にConnectSessions方法を実行させることによって、P2Pグループをセットアップすることができる。セットアップモジュール42は、サービスMAC値、広告識別値、セッション情報値、およびネットワークルール値というパラメータの1つまたは複数を規定することによって、ASPモジュール54にConnectSessions方法を実行させることができる。いくつかの例では、ConnectSessions方法のプリミティブは、ConnectSessions((service_mac, advertisement_id)のリスト, session_information, network_role)であり得る。いくつかの例では、セットアップモジュール42は、WDC6のワイヤレスドッキングサービスに対応するMACアドレスおよび広告識別子として、サービスMAC値と広告識別値とを規定することができる。上で論じられたように、WDC6のワイヤレスドッキングサービスに対応するMACアドレスおよび広告識別子は、以前のSearchResultイベントにおいてASPモジュール54を介してWDC6からWDM36に報告され得る。いくつかの例では、セットアップモジュール42は、ネットワークルール値を1として規定することによって、WD4をグループ所有者にさせることができる。
[0110]いくつかの例では、ASPモジュール54は、ASPモジュール94と1つまたは複数のメッセージを交換し、1つまたは複数のイベントをセットアップモジュール42に通知することによって、ConnectSessions方法を実行することができる。一例として、ASPモジュール54は、セッションが開始されたことをセットアップモジュール42に通知するために、SessionStatusイベントを実行することができる。いくつかの例では、ASPモジュール54は、要求されたセッションのセッション識別子を生成し、セッション識別子をセットアップモジュール42に提供することができる。別の例として、ASPモジュール54は、P2P予備発見要求メッセージをASPモジュール94に送ることができる。いくつかの例では、P2P予備発見要求メッセージは、セッション識別子を含み得る。いくつかの例では、P2P予備発見要求メッセージは、WD4の接続能力のインジケーションを含み得る。いくつかの例示的な接続能力は、限定はされないが、要求者(すなわちWD4)が新たなグループのグループ所有者になれるかどうか、要求者がクライアントになれるかどうか、要求者が新たなグループを作成できるかどうか、要求者が応答者(すなわちWDC6)に参加され得る既存のグループを有するかどうかなどを含む。
[0111]ASPモジュール94は、P2P予備発見要求メッセージを受信し、これに応答して、セッションが要求されたことをセットアップモジュール82に通知するためにSessionStatusイベントを実行することができる。いくつかの例では、ASPモジュール94は、セッション要求がWD4から受信されたことをセットアップモジュール82に通知するために、ConnectStatusイベントを実行することができる。いくつかの例では、発見モジュール80がAdvertiseService方法を呼び出すときに真として自動受入れ値を規定した場合などに、ASPモジュール94は、さらなる入力を伴わずにセッション要求を受け入れることができる。いくつかの例では、発見モジュール80がAdvertiseService方法を呼び出すときに偽として自動受入れ値を規定した場合などに、ASPモジュール94は、セッション要求を受け入れる前または拒否する前に、追加の入力を探すことができる。
[0112]ASPモジュール94が追加の入力を探さない場合、ASPモジュール94は、セッション要求が受け入れられたことをASPモジュール54に通知することができる。たとえば、ASPモジュール94は、セッションが受け入れられたことを示すP2P予備発見応答をASP54に送ることができる。いくつかの例では、P2P予備発見応答は、WDC6の接続能力と適合するWD4の接続能力の1つ(たとえば上述した例示的な接続能力の1つまたは複数)のインジケーションを含み得る。ASPモジュール94およびASPモジュール54は次いで、グループの形成および/または併合を完了することができる。たとえば、WD4の接続能力が、WD4が新たなグループを作成できその所有者になれるというものであり、WDC6の接続能力が、WDC6が新たなグループに参加できるというものである場合、ASPモジュール54は、WD4に新たなグループを作成させることができ、ASPモジュール94は、WDC6に、WD4によって作成される新たなグループに参加させることができる。このようにして、P2Pグループは、WD4とWDC6との間の直接のワイヤレス接続を介して確立され得る。
[0113]ASPモジュール94が追加の入力を探している場合、ASPモジュール94は、該追加の入力を取得するために、セットアップモジュール82と情報を交換することができる。一例として、ASPモジュール94は、WD4から受信されたセッション要求が延期されたことをセットアップモジュール82に通知するために、ConnectStatusイベントを実行することができる。別の例として、ASPモジュール94は、ASPモジュール94がセッション要求を受け入れるべきか拒絶するべきかについて、セットアップモジュール82からの命令を要求するために、SessionRequestイベントを実行することができる。加えて、いくつかの例では、ASPモジュール94は、追加の入力を探していることをASPモジュール54に通知することができる。一例として、ASPモジュール94は、セッション要求がまだ受け入れられていないことを示すP2P予備発見応答メッセージ(たとえばステータス(1)を伴うP2P予備発見応答メッセージ)をASPモジュール54に送ることができる。
[0114]セットアップモジュール82は、命令に対する要求を受信し、ASPモジュール94がセッション要求を受け入れるべきか拒絶するべきかを示すユーザ入力を求めることを試み得る。一例として、セットアップモジュール82は、UIモジュール72に、ASPモジュール94がセッション要求を受け入れるべきか拒絶するべきかを示す入力を提供するようにWDC6のユーザに求める要求を出力させることができる。たとえば、UIモジュール72は、UIデバイス66のライトを点滅させること、UIデバイス66のディスプレイにプロンプトを出現させることなどができる。UIモジュール72は次いで、ASPモジュール94がセッション要求を受け入れるべきであることを示す、ボタン押下のようなユーザ入力を受け取ることができる。セットアップモジュール82は、ConfirmSession方法を呼び出すことなどによって、要求された命令をASPモジュール94に提供することができる。セットアップモジュール82は、セッションMAC値、セッションID値、および確認済値(confirmed value)というパラメータの1つまたは複数を規定することによって、ConfirmSession方法を呼び出すことができる。セットアップモジュール82は、WD4のMACとしてセッションMAC値を規定し、ASPモジュール54によって生成されるセッション識別子としてセッションID値を規定することができる。セットアップモジュール82は、確認済値を真として規定することによって、セッション要求を受け入れるようにASPモジュール94に指示することができる。セットアップモジュール82は、確認済値を偽として規定することによって、セッション要求を拒絶するようにASPモジュール94に指示することができる。
[0115]ASPモジュール94は、ASPモジュール94がセッション要求を受け入れるかどうかを示すP2P予備発見要求メッセージのようなメッセージをASPモジュール54に送ることによって、ConfirmSession方法を実行することができる。いくつかの例では、メッセージはセッション情報も含み得る。いくつかの例では、ASPモジュール94は、セッション要求が受け入れられたことをセットアップモジュール82に通知するために、ConnectStatusイベントを実行することができる。
[0116]ASPモジュール54は、メッセージを受信し、セッション要求が受け入れられたかどうかをセットアップモジュール42に通知することができる。たとえば、ASPモジュール54は、セッション要求が受け入れられたかどうかをセットアップモジュール42に通知するために、ConnectStatusイベントを実行することができる。セッション要求が受け入れられたことをメッセージが示す場合、ASPモジュール54はP2Pグループ形成を開始することができる。たとえば、ASPモジュール54は、WDC6の接続能力と適合するWD4の接続能力(たとえば上述した例示的な接続能力の1つまたは複数)の1つのインジケーションを含む、P2P予備発見応答メッセージのようなメッセージをASPモジュール94に送ることができる。いくつかの例では、ASPモジュール54は、グループ形成が開始したことをセットアップモジュール42に通知するために、ConnectStatusイベントを実行することができる。ASPモジュール94およびASPモジュール54は次いで、グループの形成および/または併合を完了することができる。たとえば、WD4の接続能力が、WD4が新たなグループを作成できその所有者になれるというものであり、WDC6の接続能力が、WDC6が新たなグループに参加できるというものである場合、ASPモジュール54は、WD4に新たなグループを作成させることができ、ASPモジュール94は、WDC6に、WD4によって作成される新たなグループに参加させることができる。WD4とWDC6がともに同じP2Pグループの中にあるとASPモジュール54が決定するとき、ASPモジュール54は、グループ形成が完了したことをセットアップモジュール42に通知するために、ConnectStatusイベントを実行することができる。同様に、WD4とWDC6がともに同じP2Pグループの中にあるとASPモジュール94が決定するとき、ASPモジュール94は、グループ形成が完了したことをセットアップモジュール82に通知するために、ConnectStatusイベントを実行することができる。このようにして、P2Pグループは、WD4とWDC6との間の直接のワイヤレス接続を介して確立され得る。
[0117]図5Cによって示されるように、ドッキングASPセッションセットアップフェーズ530の間に、ASPモジュール54およびASPモジュール94は、WDM36とWDM76との間にASPセッションをセットアップすることができる。いくつかの例では、ASPモジュール54およびASPモジュール94は、WD4とWDC6の両方がメンバーであるP2Pグループを介してセッション通信が交換されるように、ASPセッションをセットアップすることができる。いくつかの例では、ASPモジュール54は、新たなASPセッションを作成するための要求を含むメッセージをASPモジュール94に送ることによって、ASPセッションセットアップを実行することができる。たとえば、ASPモジュール54は、セッションMAC値、セッションID値、広告ID値、およびセッション情報の1つまたは複数を含む、要求セッションメッセージを送ることができる。
[0118]ASPモジュール94は、メッセージを受信することができ、メッセージが受信されたという肯定応答を含むメッセージをASPモジュール54に送ることができる。ASPモジュール94は、開くように要求されたASPセッションの状態を変えるために、SetSessionReady方法を実行する。いくつかの例では、セットアップモジュール82は、セッションが要求されたことをセットアップモジュール82に通知するためにASPモジュール94がSessionStatusイベントを実行したことに応答して、ASPモジュール94にSetSessionReady方法を実行させることができる。いずれの場合でも、ASPモジュール94は、セッションが追加されたかどうかを示すメッセージをASPモジュール54に送ることができる。一例として、ASPモジュール94は、セッションが追加されたことを示すために、追加済セッションメッセージを送ることができる。一例として、ASPモジュール94は、セッションが拒絶されたことを示すために、拒絶済セッションメッセージを送ることができる。いずれの場合でも、メッセージは、セッションMAC値とセッションID値とを含み得る。
[0119]セッションが開いていることをASPモジュール94が示す場合、ASPモジュール94は、ASPセッションセットアップが完了しておりASPセッションを使用する準備ができていることをセットアップモジュール82に通知するために、SessionStatusイベントを実行することができる。上で論じられたように、SessionStatusイベントを実行するとき、ASPモジュール94はまた、セッションMACおよび/またはセッションIDをセットアップモジュール82に示すことができる。
[0120]セットアップモジュール82は、通知を受信することができ、特定のポートでの入来する接続を許可するようにASPモジュール94に指示することができる。たとえば、セットアップモジュール82は、セッションMAC値、セッションID値、IPアドレス、ポート値、およびプロトコル番号というパラメータの1つまたは複数を規定することによってBoundPort方法を実行するように、ASPモジュール94を呼び出すことができる。いくつかの例では、セットアップモジュール82は、ASPセッションのセッションMACとしてセッションMAC値を規定することができる。いくつかの例では、セットアップモジュール82は、ASPセッションのセッションIDとしてセッションID値を規定することができる。いくつかの例では、セットアップモジュール82は、セッションプロトコル値を6として規定することができる(たとえばTCP)。
[0121]ASPモジュール94は、特定のポートでの入来する通信を許可するために、1つまたは複数の動作を実行することができる。たとえば、ASPモジュール94は、セットアップモジュール82によって規定される特定のポートが許可されているかどうかを決定することによって、BoundPort方法を実行することができる。いくつかの例では、ASPモジュール94は、特定のポートが許可されているかどうかをセットアップモジュール82に通知するために、PortStatusイベントを実行することができる。特定のポートが許可されている場合、ASPモジュール94は、ASPセッションの通信が特定のポートに宛てられるべきであることを示す、許可済ポートメッセージのようなメッセージをASPモジュール54に送ることができる。その特定のポートが許可されていない場合、セットアップモジュール82は、許容可能なポートが決定されるまで別のポートを規定することができる。
[0122]ASPモジュール54は、メッセージを受信することができ、ASPセッションの通信が特定のポートに宛てられるべきであることをセットアップモジュール42に通知するためにPortStatusイベントを実行することができる。セッションが追加されたことを示すメッセージをASPモジュール94から受信したことに応答して、ASPモジュール54は、ASPセッションセットアップが完了しておりASPセッションを使用する準備ができていることをセットアップモジュール42に通知するために、SessionStatusイベントを実行することができる。上で論じられたように、SessionStatusイベントを実行するとき、ASPモジュール54はまた、セッションMACおよび/またはセッションIDをセットアップモジュール42に示すことができる。
[0123]セットアップモジュール42は、通知を受信することができ、特定のポートでの入来する接続を許可するようにASPモジュール54に指示することができる。たとえば、セットアップモジュール42は、セッションMAC値、セッションID値、IPアドレス、ポート値、およびプロトコル番号というパラメータの1つまたは複数を規定することによって、BoundPort方法を実行するように、ASPモジュール54を呼び出すことができる。いくつかの例では、セットアップモジュール42は、ASPセッションのセッションMACとしてセッションMAC値を規定することができる。いくつかの例では、セットアップモジュール42は、ASPセッションのセッションIDとしてセッションID値を規定することができる。いくつかの例では、セットアップモジュール42は、セッションプロトコル値を6として規定することができる(たとえばTCP)。
[0124]ASPモジュール54は、特定のポート上での入来する通信を許可するために、1つまたは複数の動作を実行することができる。たとえば、ASPモジュール54は、セットアップモジュール42によって規定される特定のポートが許可されているかどうかを決定することによって、BoundPort方法を実行することができる。いくつかの例では、ASPモジュール54は、特定のポートが許可されているかどうかをセットアップモジュール42に通知するために、PortStatusイベントを実行することができる。特定のポートが許可されている場合、ASPモジュール54は、ASPセッションの通信が特定のポートに宛てられるべきであることを示す、許可済ポートメッセージのようなメッセージをASPモジュール94に送ることができる。その特定のポートが許可されていない場合、セットアップモジュール42は、許容可能なポートが決定されるまで別のポートを規定することができる。このようにして、WD4のWDM36は、直接のワイヤレス接続を介して、WDC6のWDM76とのドッキングセッションを確立することができる。図5Cによって示されるように、アプリケーションソケットがWDM36とWDM76との間に接続され得る。
[0125]図5Dによって示されるように、ドッキング構成および制御プロトコルフェーズ540の間に、WD4およびWDC6は、接続後発見および構成を実行することができる。たとえば、WDM36および/またはWDM76は、PF問合せプロシージャ、PF選択および構成プロシージャ、PFリスト変更プロシージャ、WDN問合せプロシージャ、WDN選択プロシージャ、WDNリスト変更プロシージャ、認証プロシージャ、WDN作成プロシージャ、WDN修正プロシージャ、WDによりトリガされるWDN削除プロシージャ、およびWDCによりトリガされるWDN削除プロシージャの1つまたは複数を実行することができる。プロシージャの例示的な詳細は、それぞれ図6A〜図6Kを参照して以下で論じられる。
[0126]図5Dによって示されるように、ドッキングPFサービスセッションフェーズ550の間に、WD4およびWDC6は、PFサービスのためのセッションセットアップを実行し、PFデータを交換することができる。いくつかの例では、WD4および/またはWDC6は、可能性のあるPF接続セットアップおよび/またはPF ASPセッションセットアップを実行することによって、PFサービスのためのセッションセットアップを実行することができる。いくつかの例では、WD4および/またはWDC6は、セッションセットアップに備えるために1つまたは複数の活動を実行することができる。一例として、制御モジュール42は、WD4によって選択されWDC6によって受け入れられる1つまたは複数のPFおよび/または1つまたは複数のWDNに対応する、PFサービスモジュール52の1つまたは複数をトリガおよび/または構成することができる。たとえば、制御モジュール42は、PFサービスモジュール92の対応するPFサービスモジュールを使用するために、PFサービスモジュール52の特定のPFサービスモジュールをトリガすることができる。別の例として、制御モジュール82は、WD4によって選択されWDC6によって受け入れられる1つまたは複数のPFおよび/または1つまたは複数のWDNに対応する、PFサービスモジュール92の1つまたは複数をアクティブ化および/または構成することができる。たとえば、制御モジュール82は、PFサービスモジュール52の対応するPFサービスモジュールによる使用のために、PFサービスモジュール92の特定のPFサービスモジュールを構成することができる。
[0127]いくつかの例では、制御モジュール44は、ASPモジュール54に、PFサービスモジュール52の1つまたは複数とPFサービスモジュール92の1つまたは複数との間で1つまたは複数のASPセッションをセットアップさせることができる。いくつかの例では、制御モジュール84は、ASPモジュール94に、PFサービスモジュール52の1つまたは複数のPFサービスモジュールとPFサービスモジュール92の1つまたは複数の対応するPFサービスモジュールとの間で、1つまたは複数のASPセッションをセットアップさせることができる。
[0128]いずれの場合でも、PFサービスモジュール52の1つまたは複数のPFサービスモジュールは、PFサービスモジュール92の1つまたは複数の対応するPFサービスモジュールとPFデータを交換し始めることができる。たとえば、PFサービスモジュール52の表示サービスモジュールは、PFサービスモジュール92の対応する表示サービスモジュールに表示データ(たとえばビデオデータ)を送り始めることができ、これがPF10の対応するディスプレイ周辺機器に表示データを出力させ得る。このようにして、WD4はWDC6とワイヤレスにドッキングすることができる。いくつかの例では、WDCにより支援される、WDと外部のWi−Fi対応周辺機器との間の直接のペアリングも使用され得る。
[0129]図5Dによって示されるように、ドッキングASPセッション切断フェーズ560の間に、WD4およびWDC6は、WD4とWDC6との間の1つまたは複数の開いているセッションを閉じるために、セッション切断プロシージャを実行することができる。いくつかの例では、セッション切断プロシージャはWD4によって開始され得る。たとえば、切断モジュール50が切断プロシージャを開始することができる。いくつかの例では、セッション切断プロシージャはWDC6によって開始され得る。たとえば、切断モジュール90が切断プロシージャを開始することができる。いくつかの例では、WD4および/またはWDC6は、ある特定のセッションを閉じるためにセッション切断プロシージャを実行することができる。たとえば、WD4がもはや特定のPFを使用しようとしていない場合、WD4は、PFサービスモジュール52の特定のPFサービスモジュールと、その特定のPFと関連付けられるPFサービスモジュール92の対応するPFサービスモジュールとの間の特定のセッション(たとえばASPセッション)を閉じるために、セッション切断プロシージャを実行することができる。いくつかの例では、WD4および/またはWDC6は、WD4とWDC6との間のすべてのセッションを閉じるためにセッション切断プロシージャを実行することができる。たとえば、WD4がWDC6からドッキング解除しつつある場合、WD4は、WD4とWDC6との間のすべてのセッションを閉じるためにセッション切断プロシージャを実行することができる。
[0130]WD4および/またはWDC6は、特定のセッションの閉鎖を要求するメッセージを対応するデバイスに送ることによって、特定のセッションを閉じることができる。たとえば、切断モジュール50は、CloseSession方法を実行するようにASPモジュール54を呼び出すことによって、特定のセッションを閉じることができる。いくつかの例では、切断モジュール50は、セッションMAC値、セッションID値というパラメータの1つまたは複数を規定することによって、CloseSession方法を実行するように、ASPモジュール54を呼び出すことができる。いくつかの例では、セットアップモジュール42は、特定のセッションのセッションMACとしてセッションMAC値を規定することができる。いくつかの例では、セットアップモジュール42は、特定のセッションのセッションIDとしてセッションID値を規定することができる。いくつかの例では、ASPモジュール54は、特定のセッションに対応する識別値(たとえば特定のセッションのセッションMACおよび/または特定のセッションのセッションID)を示すremove_sessionメッセージをASPモジュール94に送ることによって、CloseSession方法を実行することができる。いくつかの例では、ASPモジュール54は、SessionStatusイベントを実行することによって、セッションが閉じられたことをWDM76に通知することができる。特定のセッションがWDM36とWDM76の間のASPセッションである場合のようないくつかの例では、ASPモジュール54は、関連解除メッセージをASP94に送ることができる。いくつかの例では、ASPモジュール54は、特定のセッションによって使用されるポート上で任意の他のセッションがアクティブであるかどうかを決定することができる。他のセッションがアクティブではないとASPモジュール54が決定する場合、ASPモジュール94はポートを閉じることができる。
[0131]WDC6は、特定のセッションの閉鎖を要求するメッセージを受信することができる。たとえば、ASPモジュール94はremove_sessionメッセージを受信することができる。いくつかの例では、remove_sessionメッセージを受信したことに応答して、ASPモジュール94は、特定のセッションが閉じられたことをWDM76に通知するために、SessionStatusイベントを実行することができる。いくつかの例では、ASPモジュール94は、remove_sessionメッセージの受信に肯定応答するために、メッセージをASPモジュール54に送ることができる。いくつかの例では、ASPモジュール94は、特定のセッションによって使用されるポート上で任意の他のセッションがアクティブであるかどうかを決定することができる。他のセッションがアクティブではないとASPモジュール94が決定する場合、ASPモジュール94はポートを閉じることができる。このようにして、WD4とWDC6との間のセッションは切断され得る。
[0132]図6A〜図6Kは、本開示の1つまたは複数の例による、WDと、様々なワイヤレスドッキング技法を実行するWDCとの間の、例示的なデータフローを示す通信フロー図である。図6A〜図6Kの技法は、図1および図4に示されるWD4およびWDC6のようなWDおよびWDCによって実行され得る。例示を目的に、図6A〜図6Kの技法は図1および図4のWD4およびWDC6のコンテキストで説明されるが、WD4およびWDC6の構成とは異なる構成を有するコンピューティングデバイスが図6A〜図6Kの技法を実行することができる。
[0133]図6Aは、例示的なPF問合せプロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Aによって示されるように、WD4は、PF問合せ要求をWDC6に送ることができる。たとえば、WD4のWDM36の制御モジュール44は、WDC6と関連付けられる1つまたは複数のPF(たとえば、PF10の1つまたは複数)に関する情報に対する要求を含むメッセージを、WDC6のWDM76の制御モジュール84に送ることができる。いくつかの例では、要求は、以下のXMLのスキーマで提供されるように定義され得る「pfQueryReq」タイプのXML要素を含み得る。
[0134]WD4から問合せ要求を受信したことに応答して、WDC6は問合せ応答を送ることができる。たとえば、制御モジュール84は、WDC6と関連付けられる1つまたは複数のPFに関する情報を含むメッセージを制御モジュール44に送ることができる。いくつかの例では、応答は、以下のXMLのスキーマで提供されるように定義され得る「pfQueryRsp」タイプのXML要素を含み得る。いくつかの例では、情報は、WDC6と関連付けられる1つまたは複数のPFを特定するリストを含み得る。いくつかの例では、リストはWDC6と関連付けられるすべてのPFを特定することができる。いくつかの例では、リストは、WDによるアクセスのために現在利用可能であるPFのような、WDC6と関連付けられるPFのサブセットを特定することができる。
[0135]いくつかの例では、情報はまた、WDC6と関連付けられる1つまたは複数のPFの属性と実現可能な構成とを含み得る。いくつかの例では、制御モジュール84は、WDC6と関連付けられる各PFのためのそれぞれのXML要素を応答に含むことによって、WDC6と関連付けられる1つまたは複数のPFと、WDC6と関連付けられる1つまたは複数のPFの属性および実現可能な構成とを示すことができる。いくつかの例では、各々のそれぞれのXML要素は、以下のXMLのスキーマで提供されるように定義され得る、peripheralFunctionタイプであり得る。いくつかの例では、PF問合せプロシージャのサポートは、WD4とWDC6の両方で必須であり得る。
[0136]図6Bは、例示的なPF選択および構成プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Bによって示されるように、WD4は、PF選択および構成要求をWDC6に送ることができる。たとえば、WD4のWDM36の制御モジュール44は、WDC6と関連付けられるPFの1つまたは複数を使用するための要求を含むメッセージを、WDC6のWDM76の制御モジュール84に送ることができる。いくつかの例では、制御モジュール44は、以下のXMLのスキーマで提供されるように定義され得る、「pfSelectionReq」タイプのXML要素を要求の中に含み得る。いくつかの例では、制御モジュール44は、WD4がアクセスしようとする1つまたは複数のPF(たとえば探されているPFのセット)を、要求の中で個々に特定することができる。たとえば、制御モジュール44は、各々の探されているPFのための「pfSelection」要素と、「個別」に設定された「selectionStyle」要素とをメッセージに含むことができる。いくつかの例では、制御モジュール44は「pfSelection」要素の中で、探されているPFの各々の所望の構成を示すことができる。いくつかの例では、制御モジュール44は、WDC6と関連付けられるPFのデフォルトのセットの選択を示すことができる(すなわち、そのような例では制御モジュール44は探されているPFを個々に特定しなくてよい)。たとえば、制御モジュール44は、「すべて」に設定された「selectionStyle」要素をメッセージに含むことができる。
[0137]WD4から選択要求を受信したことに応答して、WDC6は選択応答を送ることができる。たとえば、制御モジュール44は、選択要求が受け入れられるかどうかを示すメッセージを制御モジュール84に送ることができる。いくつかの例では、応答は、以下のXMLのスキーマで提供されるように定義され得る「pfSelectionRsp」タイプのXML要素を含み得る。
[0138]いくつかの例では、WD4は、WD4によって現在選択されているWDC6と関連付けられる1つまたは複数のPFを選択解除することを望むことがある。そのような例では、WD4は選択解除プロシージャを実行することができる。たとえば、制御モジュール44は、WD4によって現在選択されているWDC6と関連付けられるPFの1つまたは複数を選択解除するための要求を含むメッセージを制御モジュール84に送ることができる。いくつかの例では、制御モジュール44は、WD4が選択解除しようとする1つまたは複数のPFを、要求の中で個々に特定することができる。たとえば、制御モジュール44は、各々の選択解除されるPFのための「pfSelection」要素と、「個別」に設定された「selectionStyle」要素とをメッセージに含むことができる。いくつかの例では、制御モジュール44は、WD4によって現在選択されている関連付けられるすべてのPFの選択解除を示すことができる。たとえば、制御モジュール44は、「すべて」に設定された「selectionStyle」要素をメッセージに含むことができる。そのような例では、制御モジュール44は、切断モジュール50に切断プロシージャを実行させることができる。
[0139]言い換えると、WD4は、自身が関心を持っているPFを選択し構成するために、PF選択および構成プロシージャを使用することができ、いくつかの例では、WD4が更新されたPF情報を取得した後で実行され得る。いくつかの例では、PF選択および構成プロシージャのサポートは、WD4とWDC6の両方で必須であり得る。しかしながら、いくつかの例では、プロシージャは、WD4がPFを個々に明示的に選択または構成することを許容しないことがある。
[0140]図6Cは、例示的なPFリスト変更プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。いくつかの例では、WDC6と関連付けられる1つまたは複数のPFに関する情報は変化し得る。一例として、追加のPFがWDC6と関連付けられるようになる(たとえば追加のPFがWDC6に差し込まれる)場合、WDC6と関連付けられる1つまたは複数のPFに関する情報は変化し得る。別の例として、WDC6と関連付けられるPFが使用可能になる場合(たとえば別のWDがPFを選択解除した場合)、WDC6と関連付けられる1つまたは複数のPFに関する情報は変化し得る。いずれの場合でも、WDC6と関連付けられる1つまたは複数のPFに関する情報が変化したと決定したことに応答して(すなわち、WDC6がWDC6と関連付けられる1つまたは複数のPFに関する情報を更新した場合)、WDC6はPF変更通知をWD4に送ることができる。言い換えると、WDC6は、WD4にPF変更を知らせるために、PF変更通知プロシージャを使用することができる。たとえば、制御モジュール84は、WDC6と関連付けられる1つまたは複数のPFに関する更新された情報を含むメッセージを制御モジュール44に送ることができる。いくつかの例では、更新された情報は、WDC6と関連付けられるPFのリストと、列挙されたPFの属性および実現可能な構成とを含み得る。いくつかの例では、メッセージは、以下のXMLのスキーマで提供されるように定義され得る「pfChangeNotif」タイプのXML要素を含み得る。図6Cに示されるように、WD4は、PF変更通知を受信したことに応答して、PF選択および構成プロシージャを上述したように実行することができる。言い換えると、プロシージャは、PF選択および構成プロシージャを再び実行するようにWD4をトリガすることができる。いくつかの例では、PF変更通知プロシージャのサポートは、WD4とWDC6の両方で必須であり得る。
[0141]図6Dは、例示的なWDN問合せプロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Dによって示されるように、WD4は、WDN問合せ要求をWDC6に送ることができる。たとえば、WD4のWDM36のWDNモジュール46は、WDC6上での使用のために構成された1つまたは複数のWDNに関する情報に対する要求を含むメッセージを、WDC6のWDM76のWDNモジュール86に送ることができる。いくつかの例では、要求は、以下のXMLのスキーマで提供されるように定義され得る「wdnQueryReq」タイプのXML要素を含み得る。
[0142]WD4から問合せ要求を受信したことに応答して、WDC6は問合せ応答を送ることができる。たとえば、WDNモジュール86は、WDC6上での使用のために構成される1つまたは複数のWDNに関する情報を含むメッセージをWDNモジュール46に送ることができる。いくつかの例では、応答は、以下のXMLのスキーマで提供されるように定義され得る「wdnQueryRsp」タイプのXML要素を含み得る。いくつかの例では、情報は、WDC6上での使用のために構成される1つまたは複数のWDNを特定するリストを含み得る。いくつかの例では、リストはWDC6上での使用のために構成されるすべてのWDNを特定することができる。いくつかの例では、リストは、WDによるアクセスのために現在利用可能であるWDNのような、WDC6上での使用のために構成されるWDNのサブセットを特定することができる。
[0143]いくつかの例では、情報はまた、WDC6上での使用のために構成される1つまたは複数のWDNの属性と実現可能な構成とを含み得る。いくつかの例では、WDNモジュール86は、WDC6上での使用のために構成される各WDNのためのそれぞれのXML要素を応答に含むことによって、WDC6上での使用のために構成される1つまたは複数のWDNと、WDC6上での使用のために構成される1つまたは複数のWDNの属性および実現可能な構成とを示すことができる。いくつかの例では、各々のそれぞれのXML要素は、以下のXMLのスキーマで提供されるように定義され得る「wdn」タイプであり得る。
[0144]言い換えると、WD4は、WDN情報を取得するためにPF問合せプロシージャを使用することができる。いくつかの例では、WDN問合せプロシージャのサポートは、WD4とWDC6の両方で任意選択であり得る。いくつかの例では、WDC6は、WDN問合せプロシージャが事前関連発見フェーズの間にサポートされるかどうかを示し得る。
[0145]図6Eは、例示的なWDN選択プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Eによって示されるように、WD4は、WDN選択要求をWDC6に送ることができる。たとえば、WD4のWDM36のWDNモジュール46は、WD4がアクセスしようとしているWDC6上での使用のために構成された1つまたは複数のWDNの特定のWDNを使用するための要求を含むメッセージを、WDC6のWDM76のWDNモジュール86に送ることができる。いくつかの例では、WDNモジュール46は、以下のXMLのスキーマで提供されるように定義され得る「wdnSelectionReq」タイプのXML要素を要求の中に含み得る。いくつかの例では、WDNモジュール46は、WD4がアクセスしようとしている特定のWDNの識別子をメッセージに含むことができる。
[0146]WD4から選択要求を受信したことに応答して、WDC6は選択応答を送ることができる。たとえば、WDNモジュール46は、選択要求が受け入れられるかどうかを示すメッセージをWDNモジュール86に送ることができる。いくつかの例では、応答は、以下のXMLのスキーマで提供されるように定義され得る「wdnSelectionRsp」タイプのXML要素を含み得る。
[0147]言い換えると、WD4は、事前に構成されたWDN(たとえば、WD4によって以前に作成されたWDN)および/またはWD中心のWDNを選択するために、WDN選択プロシージャを使用することができる。いくつかの例では、WD4は、WD4がWDN情報を取得した後で、WDN選択プロシージャを実行することができる。いくつかの例では、WDN選択プロシージャのサポートは、WD4とWDC6の両方で任意選択であり得る。いくつかの例では、WDC6は、WDN選択プロシージャが事前関連発見フェーズの間にサポートされるかどうかを示し得る。
[0148]いくつかの例では、WD4は、WD4によって現在選択されているWDC6上での使用のために構成された1つまたは複数のWDNを選択解除することを望むことがある。そのような例では、WD4は選択解除プロシージャを実行することができる。たとえば、WDNモジュール46は、WD4によって現在選択されているWDC6上での使用のために構成されたWDNの1つまたは複数を選択解除するための要求を含むメッセージをWDNモジュール86に送ることができる。いくつかの例では、WDNモジュール46は、WD4が選択解除しようとする1つまたは複数のWDNを、要求の中で個々に特定することができる。たとえば、WDNモジュール46は、各々の選択解除されるWDNのための「wdnSelection」要素と、「個別」に設定された「selectionStyle」要素とをメッセージに含むことができる。いくつかの例では、WDNモジュール46は、WD4によって現在選択されているすべてのWDNの選択解除を示すことができる。たとえば、WDNモジュール46は、「すべて」に設定された「selectionStyle」要素をメッセージに含むことができる。そのような例では、WDNモジュール46は、切断モジュール50に切断プロシージャを実行させることができる。
[0149]図6Fは、例示的なWDNリスト変更プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。いくつかの例では、WDC6上での使用のために構成される1つまたは複数のWDNに関する情報は変化し得る。一例として、WDNに対応するPFの1つまたは複数が使用可能になる場合(たとえば別のWDがPFを選択解除した場合)、WDC6上での使用のために構成された1つまたは複数のWDNに関する情報は変化し得る。別の例として、新たなWDNが定義される場合(たとえばWDが新たなWDNを作成した場合)、WDC6上での使用のために構成された1つまたは複数のWDNに関する情報は変化し得る。いずれの場合でも、WDC6上での使用のために構成される1つまたは複数のWDNに関する情報が変化したと決定したことに応答して(すなわち、WDC6がWDC6上での使用のために構成された1つまたは複数のWDNに関する情報を更新した場合)、WDC6はWDN変更通知をWD4に送ることができる。たとえば、WDNモジュール86は、WDC6上での使用のために構成される1つまたは複数のWDNに関する更新された情報を含むメッセージをWDNモジュール46に送ることができる。いくつかの例では、更新された情報は、WDC6上での使用のために構成されたWDNのリストと、列挙されたWDNの属性および実現可能な構成とを含み得る。いくつかの例では、メッセージは、以下のXMLのスキーマで提供されるように定義され得る「wdnChangeNotif」タイプのXML要素を含み得る。図6Fに示されるように、WD4は、WDN変更通知を受信したことに応答して、WDN選択および構成プロシージャを上述したように実行することができる。
[0150]図6Gは、例示的な認証プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Gによって示されるように、WD4は、ユーザタイプ認証要求をWDC6に送ることができる。たとえば、WD4のアクセス制御モジュール48は、WD4のユーザに対応する1つまたは複数の証明書を含むメッセージを、WDC6のアクセス制御モジュール88に送ることができる。いくつかの例では、1つまたは複数の証明書は、WD4のユーザのユーザタイプおよび/またはパスフレーズを示し得る。いくつかの例示的なユーザタイプは、限定はされないが、所有者、訪問者、管理者、子供、および親を含む。いくつかの例では、メッセージは、以下のXMLのスキーマで提供されるように定義され得る「userTypeAuthReq」タイプのXML要素を含み得る。そのような例では、アクセス制御モジュール48は、「userType」要素を使用してユーザタイプを示し、「passphrase」要素を使用してパスフレーズを示すことができる。
[0151]WDC6は、ユーザタイプ認証要求を受信し、要求によって示される情報(たとえばユーザタイプおよび/またはパスフレーズ)と関連付けられる1つまたは複数の権利を決定することができる。一例として、アクセス制御モジュール88は、要求によって示される情報がPF10の1つまたは複数へのアクセス権を付与するかどうかを決定することができる。ユーザタイプが管理者である場合、アクセス制御モジュール88は、要求によって示される情報がPF10のすべてのPFへのアクセス権を付与すると決定することができる。ユーザタイプが訪問者である場合、アクセス制御モジュール88は、要求によって示される情報がPF10のサブセットへのアクセス権を付与すると決定することができる。別の例として、アクセス制御モジュール88は、要求によって示される情報がWDC6上での使用のために構成された1つまたは複数のWDNへのアクセス権を付与するかどうかを決定することができる。別の例として、アクセス制御モジュール88は、要求によって示される情報がWDC6上での使用のための新たなWDNを作成するように権利を付与するかどうかを決定することができる。別の例として、アクセス制御モジュール88は、要求によって示される情報がWDC6上での使用のために構成された既存のWDNを修正するように権利を付与するかどうかを決定することができる。別の例として、アクセス制御モジュール88は、要求によって示される情報がWDC6上での使用のために構成された既存のWDNを削除するように権利を付与するかどうかを決定することができる。ユーザタイプが管理者である場合、アクセス制御モジュール88は、要求によって示される情報がWDC6上での使用のために構成された1つまたは複数のWDNの任意のWDNを削除する権利を付与すると決定することができる。ユーザタイプが訪問者である場合、アクセス制御モジュール88は、要求によって示される情報がWDC6上での使用のために構成された1つまたは複数のWDNの任意のWDNを削除する権利を付与しないと決定することができる。
[0152]言い換えると、WD4は、(たとえばPFサービスへの)アクセス権を確立するために、ユーザタイプ認証プロシージャを使用することができる。いくつかの例では、ユーザタイプ認証プロシージャのサポートは、WD4とWDC6の両方で任意選択であり得る。いくつかの例では、WDC6は、ユーザタイプ認証が事前関連発見フェーズの間に必要とされるかどうかを示し得る。
[0153]図6Hは、例示的なWDN作成プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Hによって示されるように、WD4は、WDN作成要求をWDC6に送ることができる。たとえば、WDNモジュール46は、WDC6上での使用のために新たなWDNを作成するための要求を含むメッセージをWDNモジュール86に送ることができる。いくつかの例では、要求は、新たなWDNに対応することをWD4が要求している、WDC6と関連付けられるPFのセットのインジケーションを含み得る。たとえば、WDNモジュール46は、特定の表示PF、特定のオーディオ再生PF、および特定のユーザ入力PFに対応する新たなWDNが作成されることを要求し得る。いくつかの例では、WDNモジュール46は、PFのセットの各PFを個々に特定することによって、PFのセットを示すことができる。たとえば、WDNモジュール46は、PFのセットの各々のそれぞれのPFに対して、それぞれのPFを一意に特定する識別値を規定することができる(たとえば、PF ID2が特定の表示PFに対応し、PF ID4が特定のオーディオ再生PFに対応し、PF ID7が特定のユーザ入力PFに対応する場合、WDNモジュール46は、PF ID2と、PF ID4と、PF ID7とに対応する新たなWDNが作成されることを要求し得る)。いくつかの例では、WDNモジュール46は、PFのセットがWD4によって現在アクセスされている1つまたは複数のPFからなることを示すことによって、PFのセットを示すことができる。たとえば、WD4が、特定の表示PFと、特定のオーディオ再生PFと、特定のユーザ入力PFとに現在アクセスしている場合、WDNモジュール46は、WD4によって現在アクセスされているPFに対応する新たなWDNが作成されることを要求し得る。
[0154]いくつかの例では、WDNモジュール46は、以下のXMLのスキーマで提供されるように定義され得る「wdnCreateReq」タイプのXML要素を要求の中に含み得る。PFの特定されたセットに対応する新たなWDNが作成されることをWDNモジュール46が要求するときなどのいくつかの例では、WDNモジュール46は、wdnCreateReq要素のselectionStyle要素を個別のものとして規定することができる。WD4によって現在アクセスされているPFに対応する新たなWDNが作成されることをWDNモジュール46が要求するときなどのいくつかの例では、WDNモジュール46は、wdnCreateReq要素のselectionStyle要素を現在として規定することができる。
[0155]WD4からの要求を受信したことに応答して、WDC6は、新たなWDNを作成するための要求を受け入れるか拒絶するかを決定することができる。一例として、WDNモジュール86は、WD4が新たなWDNを作成する権限を与えられるかどうかに基づいて、新たなWDNを作成するための要求を受け入れるか拒絶するかを決定することができる。別の例として、WDNモジュール86は、WD4が新たなWDNに対応することを要求された1つまたは複数のPFにアクセスする権限を与えられるかどうかに基づいて、新たなWDNを作成するための要求を受け入れるか拒絶するかを決定することができる。いずれの場合も、WDC6は、新たなWDNを作成するための要求が受け入れられたかどうかを示す応答をWD4に送ることができる。たとえば、WDNモジュール86は、新たなWDNを作成するための要求が受け入れられたかどうかを示すメッセージをWDNモジュール46に送ることができる。新たなWDNを作成するための要求が受け入れられた場合、WDNモジュール86は、新たなWDNのための識別情報をメッセージに含むことができる。いくつかの例では、メッセージは、以下のXMLのスキーマで提供されるように定義され得る「wdnCreateRsp」タイプのXML要素を含み得る。別のWDがWDC6と現在ドッキングされている場合などのいくつかの例では、WDC6は、新たなWDNが作成されたことを他のWDに通知するために、図4Fを参照して上述した例示的なWDNリスト変更プロシージャのようなWDNリスト変更プロシージャを実行することができる。
[0156]いくつかの例では、新たなWDNのための構成情報は、WD4、WDC6、または両方に記憶され得る。いくつかの例では、WD中心のWDN作成プロシージャのサポートは、WD4とWDC6の両方で任意選択であり得る。いくつかの例では、WDC6は、WD中心のWDN作成プロシージャが事前関連発見フェーズの間にサポートされるかどうかを示し得る。
[0157]図6Iは、例示的なWDN修正プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Iによって示されるように、WD4は、WDN修正要求をWDC6に送ることができる。たとえば、WDNモジュール46は、WDC6上での使用のために構成される1つまたは複数のWDNの既存のWDNを修正するための要求を含むメッセージをWDNモジュール86に送ることができる。いくつかの例では、要求は、既存のWDNと、既存のWDNがそれに対応するように修正されることをWD4が要求しているWDC6と関連付けられるPFのセットとのインジケーションを含み得る。一例として、既存のWDNが特定のオーディオ再生PFおよび特定のユーザ入力PFに対応する場合、WDNモジュール46は、既存のWDNが特定の表示PFに追加で対応するように修正されることを要求することができる。別の例として、既存のWDNが特定のオーディオ再生PFおよび特定のユーザ入力PFに対応する場合、WDNモジュール46は、既存のWDNが特定のユーザ入力PFにもはや対応しないように修正されることを要求することができる。いくつかの例では、WDNモジュール46は、以下のXMLのスキーマで提供されるように定義され得る「wdnModReq」タイプのXML要素を要求の中に含み得る。
[0158]WD4からの要求を受信したことに応答して、WDC6は、既存のWDNを修正するための要求を受け入れるか拒絶するかを決定することができる。一例として、WDNモジュール86は、WD4が既存のWDNを修正する権限を与えられるかどうかに基づいて、既存のWDNを修正するための要求を受け入れるか拒絶するかを決定することができる。別の例として、WDNモジュール86は、WD4が既存のWDNに対応することを要求された1つまたは複数のPFにアクセスする権限を与えられるかどうかに基づいて、既存のWDNを修正するための要求を受け入れるか拒絶するかを決定することができる。いずれの場合も、WDC6は、既存のWDNを修正するための要求が受け入れられたかどうかを示す応答をWD4に送ることができる。たとえば、WDNモジュール86は、既存のWDNを修正するための要求が受け入れられたかどうかを示すメッセージをWDNモジュール46に送ることができる。いくつかの例では、メッセージは、以下のXMLのスキーマで提供されるように定義され得る、「wdnModRsp」タイプのXML要素を含み得る。別のWDがWDC6と現在ドッキングされている場合などのいくつかの例では、WDC6は、既存のWDNが修正されたことを他のWDに通知するために、図4Fを参照して上述した例示的なWDNリスト変更プロシージャのようなWDNリスト変更プロシージャを実行することができる。
[0159]いくつかの例では、修正されたWDNのための構成情報は、WD4、WDC6、または両方に記憶され得る。いくつかの例では、WD中心のWDN修正プロシージャのサポートは、WD4とWDC6の両方で任意選択であり得る。いくつかの例では、WDC6は、WD中心のWDN修正プロシージャが事前関連発見フェーズの間にサポートされるかどうかを示し得る。
[0160]図6Jは、例示的なWDによりトリガされるWDN削除プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Jによって示されるように、WD4は、WDN削除要求をWDC6に送ることができる。たとえば、WDNモジュール46は、WDC6上での使用のために構成される1つまたは複数のWDNの既存のWDNを削除するための要求を含むメッセージをWDNモジュール86に送ることができる。いくつかの例では、要求は既存のWDNのインジケーションを含み得る。いくつかの例では、WDNモジュール46は、以下のXMLのスキーマで提供されるように定義され得る「wdnDeleteReq」タイプのXML要素を要求の中に含み得る。
[0161]WD4からの要求を受信したことに応答して、WDC6は、既存のWDNを削除するための要求を受け入れるか拒絶するかを決定することができる。たとえば、WDNモジュール86は、WD4が既存のWDNを削除する権限を与えられるかどうかに基づいて、既存のWDNを削除するための要求を受け入れるか拒絶するかを決定することができる。WDC6は、既存のWDNを削除するための要求が受け入れられたかどうかを示す応答をWD4に送ることができる。たとえば、WDNモジュール86は、既存のWDNを削除するための要求が受け入れられたかどうかを示すメッセージをWDNモジュール46に送ることができる。いくつかの例では、メッセージは、以下のXMLのスキーマで提供されるように定義され得る「wdnDeleteRsp」タイプのXML要素を含み得る。別のWDがWDC6と現在ドッキングされている場合などのいくつかの例では、WDC6は、既存のWDNが削除されたことを他のWDに通知するために、図4Fを参照して上述した例示的なWDNリスト変更プロシージャのようなWDNリスト変更プロシージャを実行することができる。
[0162]いくつかの例では、WDによりトリガされるWD中心のWDN削除プロシージャのサポートは、WD4とWDC6の両方で任意選択であり得る。いくつかの例では、WDC6は、WDによりトリガされるWD中心のWDN削除プロシージャが事前関連発見フェーズの間にサポートされるかどうかを示し得る。
[0163]図6Kは、例示的なWDCによりトリガされるWDN削除プロシージャの実行の間の、WD4とWDC6との間の例示的なデータフローを示す。図6Kによって示されるように、WDC6は、WDN削除通知をWD4に送ることができる。たとえば、WDNモジュール86は、WDC6上での使用のために構成される1つまたは複数のWDNの既存のWDNが削除されたという通知を含むメッセージをWDNモジュール46に送ることができる。いくつかの例では、通知は既存のWDNのインジケーションを含み得る。いくつかの例では、WDNモジュール86は、以下のXMLのスキーマで提供されるように定義され得る「wdnDeleteNotif」タイプのXML要素を通知の中に含み得る。
[0164]いくつかの例では、WDCによりトリガされるWD中心のWDN削除プロシージャのサポートは、WD4とWDC6の両方で任意選択であり得る。いくつかの例では、WDC6は、WDによりトリガされるWDC中心のWDN削除プロシージャが事前関連発見フェーズの間にサポートされるかどうかを示し得る。
[0165]図7は、本開示の1つまたは複数の例による、WDと、ワイヤレスにドッキングするための技法を実行するWDCとの間の例示的なデータフローを示す通信フロー図である。図7の技法は、図1および図4に示されるWD4およびWDC6のようなWDおよびWDCによって実行され得る。例示を目的に、図7の技法は図1および図4のWD4およびWDC6のコンテキストで説明されるが、WD4およびWDC6の構成とは異なる構成を有するコンピューティングデバイスが図7の技法を実行することができる。
[0166]本開示の1つまたは複数の技法によれば、WD4およびWDC6は、次のように通信を交換することができる。WD4およびWDC6は、WPS情報を交換することができる(1502)。たとえば、ユーザはボタンを押し、PINを入力し、またはNFCインターフェースをタッチすることができる。いくつかの例では、WD4およびWDC6は、最初の接続の間にのみWPS情報を交換することができる。WD4およびWDC6は次いで、WPA2と接続セットアップ情報を交換することができる(1504)。いくつかの例では、WD4およびWDC6は、トリガされたWPSまたはUI上のアイコンの選択のようなトリガに応答して、接続セットアップ情報を交換することができる。WD4およびWDC6は次いで、ドッキングサービスのためのASPセッションセットアップ情報を交換することができる(1506)。WD4は次いで、ドッキングサービス内のユーザタイプ認証情報をWDC120に通信することができる(1508)。
[0167]WD4およびWDC6は次いで、様々なPFサービス(たとえばPFサービスA、Bなど)のためのASPセッションセットアップ情報とPFデータとを交換することができる。図7に示されるように、ユーザタイプ認証情報は、個々のPFサービスのためのASPセッションセットアップの承認を制御し(1522)、および/または個々のPFサービスのためのASPセッションセットアップをトリガすることができる(1524)。
[0168]WD4があるPFサービスにアクセスすることが許容されない場合などのいくつかの例では、そのインターフェース接続されたPFサービスの観点からのアプリケーションとしてのドッキングは、対応するPFサービスのためのASPセッションセットアップを受け入れるべきではない。PFサービスセットアップが完了すると、WD4は、WDC6においてPFサービスを使用することができる。
[0169]図8は、本開示の1つまたは複数の例による、例示的なワイヤレスドッキングデバイスの例示的なドッキング構成および制御プロトコルスタック800を示す概念図である。いくつかの例では、ドッキング構成および制御プロトコルスタック800は、WD4および/またはWDC6によって実装され得る。
[0170]図8に示されるように、ドッキング構成および制御プロトコルスタック800は、インターネット(IP)レイヤ802と、トランスポート(TCP)レイヤ804と、アプリケーションレイヤ806とを含む。アプリケーションレイヤ806は、HTTP808と、シンプルオブジェクトアクセスプロトコル(SOAP:simple object access protocol)810と、HTTP812と、汎用イベント通知アーキテクチャ(GENA:general event notification architecture)814と、ドッキング816とを含み得る。いくつかの例では、ドッキング構成および制御プロトコルスタック800はHTTP上で動作することができ、いくつかの例では、メッセージのトランザクションのためにSOAPおよび/またはGENAを使用することができるが、他のプロトコルが可能である(たとえばUPnP)。プレーンテキストXMLを使用する様々な例示的なメッセージフォーマットが以下に示される。他の例では、メッセージは、バイナリプロトコルのような他のフォーマットでもフォーマットされ得る。
[0171]WD4は、WDC6にコマンド(たとえばSOAP要求)を送るためにSOAP810を使用することができる。事前関連サービス発見フェーズの間に、WDC6におけるSOAP810のためのドッキングサービスパスパラメータが与えられ得る。
[0172]WD4からのSOAP要求は次のフォーマットを使用することができる。SOAPボディに含まれるべき要素は、対応するプロシージャにおいて定義され得る。
[0173]WDC6からのSOAP応答は次のフォーマットを使用することができる。SOAPボディに含まれるべき要素は、対応するプロシージャにおいて定義され得る。
[0174]WDC6は、GENA814を使用し通知をWD4に送ることができる。事前関連サービス発見フェーズの間に、WDC6におけるGENAのためのドッキングサービスパスが与えられ得る。
[0175]WD4からのGENA加入要求メッセージは次のフォーマットを使用することができる。
SUBSCRIBE [Docking Service GENA Path] HTTP/1.1
HOST: [WDC IP Address]
CALLBACK: <WD’s IP Address/Delivery Path>
NT: wdck:event
TIMEOUT: [requested subscription duration in seconds]
[0176]WDC6からのGENA加入応答メッセージは次のフォーマットを使用することができる。
HTTP/1.1 200 OK
DATE: [when response was generated]
SID: [subscriptionID]
CONTENT-LENGTH: 0
TIMEOUT: [actual subscription duration in seconds]
[0177]WD4からのGENA離脱要求メッセージは次のフォーマットを使用することができる。
UNSUBSCRIBE [Docking Service GENA Path] HTTP/1.1
HOST: [WDC’s IP Address]
SID: [subscriptionID]
[0178]WDC6からのGENA加入応答メッセージは次のフォーマットを使用することができる。
HTTP/1.1 200 OK
[0179]WDC6からのGENAイベント通知メッセージは次のフォーマットを使用することができる。配信パスは、GENA加入メッセージのCALLBACKフィールドにおいて示される配信パスであり得る。GENAイベント通知メッセージに含まれるべき要素は、対応するプロシージャにおいて定義され得る。
[0180]図9は、本開示の1つまたは複数の技法による、ワイヤレスドッキングデバイスによって実装され得る例示的なワイヤレスドッキングアーキテクチャ900を示す概念図である。アーキテクチャ900を含み得るワイヤレスドッキングデバイスの例は、(図1および図4のWD4のような)ワイヤレスドッキーおよび(図1および図4のWDC6のような)ワイヤレスドッキングセンターである。
[0181]図9に示されるように、アーキテクチャ900は、通信レイヤ902(たとえば、Wi−Fi Direct/TDLS/Infrastructure/802.11n/ac/ad)、アプリケーションサービスプラットフォーム(ASP)904、ドッキングサービス906、印刷サービス908、ワイヤレス表示サービス910(たとえば、Miracast)、Wi−Fiシリアルバス(WSB)サービス912、および1つまたは複数の他の周辺デバイス914A〜914N(総称的に「周辺サービス914」)を含み得る。
[0182]図9に示されるように、アーキテクチャ900は、ドッキングサービス906がそれを通じてアーキテクチャ900の1つまたは複数の他のコンポーネントを管理できる、複数のインターフェースを定義し得る。たとえば、ドッキングサービス906は、インターフェース916を介してASP904によってASPイベントと方法とを管理し、インターフェース918を介して印刷サービス908を管理し、インターフェース920を介してワイヤレス表示サービス910を管理し、インターフェース922を介してWSB912を管理し、インターフェース944を介して周辺サービス914を管理することができる。
[0183]ドッキングサービス906は、サービス発見と、WDとWDCとの間でのセッションセットアップとを実行するために、ASP904によって提供されるインターフェースとイベントとを利用することができる。アーキテクチャ900がWDCによって実装される場合、ドッキングサービス906とASP904との間のインターフェース916は、WDCにおけるドッキングサービス906が、ドッキングサービス906を広告すること(ドッキングサービス906によって管理されるPFと、周辺機能の使用を駆動するために必要とされる能力とを含む)の1つまたは複数を実行することを可能にし、WDがWDCにワイヤレスに接続することを可能にし得る。アーキテクチャ900がWDによって実装される場合、ドッキングサービス906とASP904との間のインターフェース916は、WDにおけるドッキングサービス906が、WDCにおけるドッキングサービス906を探すこと(WDCによって管理されるPFと、PFの使用を駆動するために必要とされる能力とを含む)の1つまたは複数を実行することと、WDCにワイヤレスに接続することとを可能にし得る。
[0184]上述したように、ドッキングサービス906は、WDCによって提供されるドッキングセッションを構成するためにWDによって使用され得る、ドッキング構成および制御プロトコルを含み得る。
[0185]PFサービス(たとえばPFサービス914)は、ASP904の上で直接展開されてもされなくてもよい。ドッキングサービス906は、同じドッキングサービス上でPFサービスと通信することができ、PFサービスの上で管理エンティティとして機能する。アーキテクチャ900がWDCによって実装される場合、ドッキングサービス906とPFサービス(たとえば、印刷、表示およびWSB)との間のインターフェース916は、WDCにおけるドッキングサービス906が、PFサービスをアクティブ化および非アクティブ化することと、WDCにおけるPFサービスへのWDのアクセスを制御することと、WDによる使用のためにPFサービスを構成することとの1つまたは複数を実行することを可能にし得る。アーキテクチャ900がWDによって実装される場合、ドッキングサービス906とPFサービス(たとえば、印刷、表示およびWSB)との間のインターフェース916は、ドッキングサービス906が、WDCにおける対応するPFサービスを探し使用するようにWDにおけるPFサービスをトリガすることと、WDによる使用のためにPFサービスを構成することとの1つまたは複数を実行することを可能にし得る。
[0186]以下の例示的な定義および用語が本開示に適用され得る(しかし、いくつかの例では追加の定義が適用可能であり得る)。
・ドッキング:WDが、WDCが利用可能であるものとして広告している周辺デバイスを知り、多くとも1つのユーザペアリングステップで、WDCおよび周辺機器のすべてまたはサブセットに接続するプロセス。
・ドッキング環境タイプ:周辺機能をサポートするための周辺機器および属性の推奨される最小のセット(たとえば「ホームオフィスドッキング」のためのドッキング環境タイプ)。
・周辺機能:WDの一部ではないが、WDCとのドッキングを通じてWDに対して利用可能にされ得る、論理I/O機能。
・周辺機能プロトコル:周辺機器がそれによってWi−Fiネットワークを通じて使用/アクセスされ得るプロトコル。周辺機能プロトコルの例は、WSB、Wi−Fi Display、およびWiGig Display Extensionである。
・WD:ワイヤレスドッキング環境とドッキングすることが可能なポータブルデバイス(たとえば、スマートフォン、ネットブック、ラップトップ、カメラ)。
・WDC:ワイヤレスドッキーと、WDCによって管理されるすべての周辺機器の完全なセットまたはサブセットとの間の接続のセットアップを調整する論理エンティティ。
・ワイヤレスドッキング環境:WDがドッキングできる周辺機器のグループを示す汎用的な用語。
[0187]以下の例示的な略称および頭字語が本開示に適用され得る(しかし、いくつかの例では追加の定義が適用可能であり得る)。
・ASP アプリケーションサービスプラットフォーム
・DET ドッキング環境タイプ
・PF 周辺機能
・PFP 周辺機能プロトコル
・WD ワイヤレスドッキー
・WDC ワイヤレスドッキングセンター
・WDN ワイヤレスドッキング環境
・WFDS Wi−Fi Directサービス
・WSB Wi−Fiシリアルバス
[0188]図10は、本開示の1つまたは複数の例による、WDとWDCとをワイヤレスにドッキングするための技法を示すフローチャートである。図10の技法は、図1および図4に示されるWD4およびWDC6のようなWDおよびWDCによって実行され得る。例示を目的に、図10の技法は図1および図4のWD4およびWDC6のコンテキストで説明されるが、WD4およびWDC6の構成とは異なる構成を有するコンピューティングデバイスが図10の技法を実行することができる。
[0189]図10の技法は、通信をWDC6に送ることによるものを含めて、WD4が示された活動を実行し、または示された通信を交換するように、WD4がWDC6に通信を送るときにWD4によって実施される方法を含んでよく、その一部は、WD4がWDC6から受信する通信に応答したものであり得る。図10の技法はまた、通信をWD4に送ることによるものを含めて、WDC6が示された活動を実行し、または示された通信を交換するように、WDC6がWD4に通信を送るときにWDC6によって実施される方法を含んでよく、その一部は、WDC6がWD4から受信する通信に応答したものであり得る。
[0190]方法1000の様々な実装形態では、WD4とWDC6のいずれかまたは両方が、次の活動を実行し次の通信を交換することができ、すなわち、ワイヤレスドッキングセンターを介して利用可能な周辺機能についての情報のために、ワイヤレスドッキーとワイヤレスドッキングセンターとの間でドッキング事前関連発見を実行し(1002)、ワイヤレスドッキーとワイヤレスドッキングセンターとの間でドッキング接続セットアップ交換を実行し(1004)、ワイヤレスドッキーとワイヤレスドッキングセンターとの間でドッキングASP(アプリケーションサービスプラットフォーム)セッションセットアップを実行し(1006)、ワイヤレスドッキーとワイヤレスドッキングセンターとの間でドッキング構成および制御プロトコル通信を交換し(1008)、ワイヤレスドッキーとワイヤレスドッキングセンターとの間でPF(周辺機能)サービスセッション通信(周辺機能データを含む)を交換し(1010)、ワイヤレスドッキーとワイヤレスドッキングセンターとの間でドッキングASP(アプリケーションサービスプラットフォーム)セッション切断を実行する(1012)ことができる。
[0191]図11は、本開示の1つまたは複数の例による、WDと、ワイヤレスにドッキングするための技法を実行するWDCとの間の、例示的なデータフローを示す通信フロー図である。図11の技法は、図1および図4に示されるWD4およびWDC6のようなWDおよびWDCによって実行され得る。例示を目的に、図11の技法は図1および図4のWD4およびWDC6のコンテキストで説明されるが、WD4およびWDC6の構成とは異なる構成を有するコンピューティングデバイスが図11の技法を実行することができる。
[0192]本開示の1つまたは複数の技法によれば、WD4は、WDC6と関連付けられる1つまたは複数のPFを決定することができる(1100)。たとえば、WD4は、WDC6と関連付けられる1つまたは複数のPFを示すリストを受信することができる。
[0193]WD4は、WD4とWDC6との間の直接のワイヤレス接続を介してドッキングセッションを確立することができる(1102)。たとえば、WD4は、WD4とWDC6とを含むP2Pグループを形成することができる。別の例として、WD4は、WD4のドッキングサービスとWDC6の対応するドッキングサービスとの間でASPセッションを開くことができる。
[0194]WD4は、WDC6と関連付けられる1つまたは複数のPFの少なくとも1つのPFを選択することができる(1104)。たとえば、WD4は、WDC6と関連付けられる1つまたは複数のPFの少なくとも1つへのアクセスを要求するメッセージをWDC6に送ることができる。
[0195]WD4は、WDC6と関連付けられる1つまたは複数のPFの少なくとも1つのPFにアクセスすることができる(1106)。たとえば、WD4は、WDC6と関連付けられる1つまたは複数のPFの少なくとも1つのPFからPFデータを受信することができる。
[0196]いくつかの例では、本開示の1つまたは複数の技法を実行するとき、図1および図4のWD4のようなWD、ならびに/または図1および図4のWDC6のようなWDCは、1つまたは複数のWi−Fi Directサービス(WFDS)方法を呼び出すことができる。呼び出され得るいくつかの例示的なWFDS方法が以下で与えられる。本方法の1つまたは複数のパラメータは、全体が参照によって本明細書に組み込まれる、WFDS技術仕様書において定義され得る。いくつかのフェーズ(たとえば、発見、セットアップ、切断)と関連付けられるものとして説明される一方、以下の方法の各々は、ワイヤレスドッキングプロシージャの間の任意の時点で呼び出され得る。
[0197]以下の方法の1つまたは複数は、サービス発見および接続セットアップの間に使用され得る。
・Docking SeekService方法
○ 例示的なプリミティブ:SeekService(service_name、exact_search、mac_address、service_information_request)
○ WDCを探しSeekService方法を呼び出すWDは、exact_searchが真に設定された状態で、「org.wi−fi.wfds.docking.wdc」としてservice_nameを規定することができる。
○ WDによって規定されるservice_information_request文字列は、ヌルか、WDCが提供できるサービス情報のテキストのサブストリングかのいずれかであり得る。
・Docking AdvertiseService方法
○ 例示的なプリミティブ:AdvertiseService(service_name、auto_accept、service_information、service_status)
○ AdvertiseService方法を呼び出すWDCは、「org.wi−fi.wfds.wsb.wdc」としてservice_nameを規定することができる。
○ service_informationは、以下で定義され得る要素「preassociationServiceDiscovery」を含み得るXMLデータのUTF−8テキスト文字列であり得る。
○ service_informationは、PFの情報と事前に構成されたWDNとを含み得る。
○ service_informationは、要素「wdnType」を使用してドッキング環境タイプ(DET)を特定することができる。
[0198]以下の方法の1つまたは複数は、接続セットアップおよびドッキングセッションセットアップの間に使用され得る。ドッキングサービスは、接続をセットアップするためのP2P予備発見とP2Pグループ形成とを含む背後の機構をASPが使用できるように、具体的な情報をASPに提供することができる。
[0199]ドッキングサービスのためのASPセッションセットアップの後で、WD4は、関心のあるPF/WDNを選択して構成するように、ドッキング構成および制御プロトコルをトリガすることができる。ドッキングサービスは、ASPによって提供される以下の方法の1つまたは複数を使用して、接続セットアップとASPセッションセットアップとを実行することができる。
・Docking ConnectSessions方法
○ 例示的なプリミティブ:ConnectSessions((service_mac、advertisement_id)のリスト、session_information、network_role)
○ サービス探索者(たとえばWD4)は、発見されたサービス広告者に対するドッキングサービス要求を開始するために、ConnectSessions方法を呼び出すことができる。
○ session_informationはUTF−8文字列であり得る。
・Docking ConfirmSession方法
・例示的なプリミティブ:ConfirmSession(session_mac、session_id、confirmed)
○ WDCアプリケーションがSessionRequestイベントを受け入れることを確認すると、WDCサービスは、confirmedが真に設定された状態でConfirmSession方法を呼び出すことができる。
・Docking BoundPort方法
○ 例示的なプリミティブ:BoundPort(session_mac、session_id、ip_address、port、proto)
○ BoundPort方法は、ドッキングサービスがIPを通じて展開されるときに使用され得る。
○ ドッキングサービスは、ドッキング構成および制御プロトコルのためにASP上で1つのTCPポートを開けるために、BoundPort方法を使用することができる。
○ ドッキングサービスは、たとえば、様々なポート値の1つと、6という初期値(TCP)とを使用することができる。
[0200]以下の方法は、ドッキングセッション切断の間に使用され得る。ドッキングセッション切断は、WFDS ASPを使用して実行され得る。ドッキングセッション切断は、WD4とWDC6のいずれかにおいてドッキングサービスによってトリガされ得る。ドッキングセッション切断プロシージャは、対応するWDCとWDとの間の各々の個々のPFサービスのASPセッションを閉じるように、ドッキングサービスをトリガすることができる。
・WSB CloseSession方法
○ 例示的なプリミティブ:CloseSession(session_mac、session_id)
○ CloseSessionが実行されると、任意の他の開いているASPセッションと関連付けられないポートは再び遮断され得る。
[0201]例示的なWi−Fiドッキングのスキーマが、このセクションにおいてすべての要素およびデータ型とともに以下で定義される。この例示的なスキーマは、図1および図4のWD4のようなWD、ならびに/または図1および図4のWDC6のようなWDCによって実施され得る。
[0202]複数の例示的なWi−Fiドッキング固有のXML単純型が以下で定義される。具体的には、peripheralFunctionType要素、peripheralFunctionState要素、peripheralFunctionProtocol要素、wdnType要素、wdnScope要素、dockingDeviceType要素、optionalFeatureName要素、pfChangeCode要素、wdnChangeCode要素、responseCode要素、およびpfSelectionStyle要素が以下で定義される。いくつかの例では、WDおよび/またはWDCは、上述した技法の1つまたは複数を実行するときなどに、以下のXML要素の1つまたは複数を送信することができる。
[0203]複数の例示的なWi−Fiドッキング固有のXML複合型が以下で定義される。具体的には、peripheralFunction要素、dockingEnvironment要素、およびperipheralFunctionSelection要素が以下で定義される。
[0204]事前関連サービス発見におけるservice_informationのための例示的なXML要素が以下で定義される。具体的には、preassociationServiceDiscovery要素が以下で定義される。
[0205]PF問合せプロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Aを参照して上述した例示的なPF問合せプロシージャのようなPF問合せプロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、PF問合せプロシージャを実行するとき、WD4は以下で定義されるpfQueryReq要素と同様であり得るpfQueryReq要素を送ることができ、WDC6は以下で定義されるpfQueryRsp要素と同様であり得るpfQueryRsp要素を送ることができる。
[0206]PF選択および構成プロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Bを参照して上述した例示的なPF選択および構成プロシージャのようなPF選択および構成プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、PF選択および構成プロシージャを実行するとき、WD4は、以下で定義されるpfSelectionReq要素と同様であり得るpfSelectionReq要素を送ることができ、WDC6は、以下で定義されるpfSelectionRsp要素と同様であり得るpfSelectionRsp要素を送る。
[0207]例示的なPF変更通知プロシージャのためのXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Cを参照して上述した例示的なPF変更通知プロシージャのようなPF変更通知プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、PF変更通知プロシージャを実行するとき、WDC6は、以下で定義されるpfChangeNotif要素と同様であり得るpfChangeNotif要素を送ることができる。
[0208]例示的なWDN問合せプロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Dを参照して上述した例示的なWDN問合せプロシージャのようなWDN問合せプロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、WDN問合せプロシージャを実行するとき、WD4は、以下で定義されるwdnQueryReq要素と同様であり得るwdnQueryReq要素を送ることができ、WDC6は、以下で定義されるwdnQueryRsp要素と同様であり得るwdnQueryRsp要素を送ることができる。
[0209]例示的なWDN選択プロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Eを参照して上述した例示的なWDN選択プロシージャのようなWDN選択プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、WDN選択プロシージャを実行するとき、WD4は、以下で定義されるwdnSelectionReq要素と同様であり得るwdnSelectionReq要素を送ることができ、WDC6は、以下で定義されるwdnSelectionRsp要素と同様であり得るwdnSelectionRsp要素を送ることができる。
[0210]例示的なWDN変更通知プロシージャのためのXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Fを参照して上述した例示的なWDN変更通知プロシージャのようなWDN変更通知プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、WDN変更通知プロシージャを実行するとき、WDC6は、以下で定義されるwdnChangeNotif要素と同様であり得るwdnChangeNotif要素を送ることができる。
[0211]例示的なユーザタイプ認証プロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Gを参照して上述した例示的なユーザタイプ認証プロシージャのようなユーザタイプ認証プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、ユーザタイプ認証プロシージャを実行するとき、WD4は、以下で定義されるuserTypeAuthReq要素と同様であり得るuserTypeAuthReq要素を送ることができ、WDC6は、以下で定義されるuserTypeAuthRsp要素と同様であり得るuserTypeAuthRsp要素を送ることができる。
[0212]例示的なWDN作成プロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Hを参照して上述した例示的なWDN作成プロシージャのようなWDN作成プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、WDN作成プロシージャを実行するとき、WD4は、以下で定義されるwdnCreateReq要素と同様であり得るwdnCreateReq要素を送ることができ、WDC6は、以下で定義されるwdnCreateRsp要素と同様であり得るwdnCreateRsp要素を送ることができる。
[0213]例示的なWDN修正プロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Iを参照して上述した例示的なWDN修正プロシージャのようなWDN修正プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、WDN修正プロシージャを実行するとき、WD4は、以下で定義されるwdnModReq要素と同様であり得るwdnModReq要素を送ることができ、WDC6は、以下で定義されるwdnModRsp要素と同様であり得るwdnModRsp要素を送ることができる。
[0214]例示的なWDN削除プロシージャのための複数の例示的なXML要素が以下で定義される。いくつかの例では、以下の例示的なXML要素の1つまたは複数が、図4Jを参照して上述した例示的なWDN削除プロシージャのようなWDN削除プロシージャを実行するときに、WDまたはWDCによって送信され得る。たとえば、WDN削除プロシージャを実行するとき、WD4は、以下で定義されるwdnDeleteReq要素と同様であり得るwdnDeleteReq要素を送ることができ、WDC6は、以下で定義されるwdnDeleteRsp要素と同様であり得るwdnDeleteRsp要素を送ることができる。
[0215]例1.ワイヤレスドッキングセンター(WDC)によって、およびワイヤレスドッキー(WD)から、WDCと関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を受信することと、WDCによって、およびWDから、1つまたは複数の認証証明書を受信することと、WDCによって、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDから受信された1つまたは複数の認証証明書が付与するかどうかを決定することと、WDがアクセスを要求する1つまたは複数のPFの第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、WDCによって、WDが第1のPFにアクセスすることを許可することとを備える、方法。
[0216]例2.WDがアクセスを要求する1つまたは複数のPFの第2のPF1つへのアクセスを1つまたは複数の認証証明書が付与しないと決定したことに応答して、WDCによって、WDが第2のPFにアクセスするのを防ぐことをさらに備える、例1の方法。
[0217]例3.1つまたは複数の認証証明書が、ユーザタイプとパスフレーズのうちの1つまたは複数を示す、例1から2の任意の組合せの方法。
[0218]例4.WDCによって、およびWDから、WDCにおいて使用するために新たなWDNを作成することと、WDCと関連付けられる既存のWDNを修正することと、WDCと関連付けられる既存のWDNを削除することとのうちの1つまたは複数のための要求を受信することと、WDCによって、要求を完了fする権限をWDから受信された1つまたは複数の認証証明書が付与するかどうかを決定することと、要求を完了するための権限を1つまたは複数の認証証明書が付与すると決定したことに応答して、WDCによって、およびWDに、WDCが要求を受け入れることを示すメッセージを送ることと、要求を完了するための権限を1つまたは複数の認証証明書が付与しないと決定したことに応答して、WDCによって、およびWDに、WDCが要求を受け入れないことを示すメッセージを送ることとをさらに備える、例1から3の任意の組合せの方法。
[0219]例5.メモリと、1つまたは複数のプロセッサと、少なくとも1つのモジュールを備えるワイヤレスドッキングセンター(WDC)であって、少なくとも1つのモジュールが、ワイヤレスドッキー(WD)から、WDCと関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を受信し、WDから、1つまたは複数の認証証明書を受信し、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDから受信された1つまたは複数の認証証明書が付与するかどうかを決定し、WDがアクセスを要求する1つまたは複数のPFの第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、WDCによって、WDが第1のPFにアクセスすることを許可するように、1つまたは複数のプロセッサによって実行可能である、WDC。
[0220]例6.少なくとも1つのモジュールがさらに、例1から4の方法の任意の組合せを実行するように1つまたは複数のプロセッサによって実行可能である、例5のWDC。
[0221]例7.ワイヤレスドッキー(WD)から、ワイヤレスドッキングセンター(WDC)と関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を受信するための手段と、WDから、1つまたは複数の認証証明書を受信するための手段と、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDから受信された1つまたは複数の認証証明書が付与するかどうかを決定するための手段と、第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、WDがアクセスを要求する1つまたは複数のPFの1つの第1のPFにWDがアクセスすることを許可するための手段とを備える、WDC。
[0222]例8.例1から例4の方法の任意の組合せを実行するための手段をさらに備える、例7のWDC。
[0223]例9.非一時的コンピュータ可読記憶媒体が、実行されると、ワイヤレスドッキングセンター(WDC)の1つまたは複数のプロセッサに、ワイヤレスドッキー(WD)から、WDCと関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を受信させ、WDから、1つまたは複数の認証証明書を受信させ、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDから受信された1つまたは複数の認証証明書が付与するかどうかを決定させ、WDがアクセスを要求する1つまたは複数のPFの第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、WDCによって、WDが第1のPFにアクセスすることを許可させる、命令を記憶する。
[0224]例10.実行されると、WDの1つまたは複数のプロセッサに、例1から4の方法の任意の組合せを実行させる命令をさらに記憶した、例9の非一時的コンピュータ可読記憶媒体。
[0225]例11.ワイヤレスドッキー(WD)によって、およびワイヤレスドッキングセンター(WDC)に、WDCと関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を送ることと、WDによって、およびWDCに、1つまたは複数の認証証明書を送ることと、WDによって、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDCに送られた1つまたは複数の認証証明書が付与するかどうかを決定することと、WDがアクセスを要求する1つまたは複数のPFの第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、WDによって、第1のPFにアクセスすることとを備える、方法。
[0226]例12.1つまたは複数の認証証明書が、ユーザタイプとパスフレーズのうちの1つまたは複数を示す、例11の方法。
[0227]例13.WDによって、およびWDCに、WDCにおいて使用するための新たなWDNを作成することと、WDCと関連付けられる既存のWDNを修正することと、WDCと関連付けられる既存のWDNを削除することとのうちの1つまたは複数のための要求を送ることと、WDによって、およびWDCから、WDCが要求を受け入れるかどうかを示すメッセージを受信することとをさらに備える、例11から12の任意の組合せの方法。
[0228]例14.メモリと、1つまたは複数のプロセッサと、少なくとも1つのモジュールを備えるワイヤレスドッキー(WD)であって、少なくとも1つのモジュールが、ワイヤレスドッキングセンター(WDC)に、WDCと関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を送り、WDCに、1つまたは複数の認証証明書を送り、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDCに送られた1つまたは複数の認証証明書が付与するかどうかを決定し、WDがアクセスを要求する1つまたは複数のPFの第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、WDによって、第1のPFにアクセスするように、1つまたは複数のプロセッサによって実行可能である、WD。
[0229]例15.少なくとも1つのモジュールがさらに、例11から13の方法の任意の組合せを実行するように1つまたは複数のプロセッサによって実行可能である、例14のWD。
[0230]例16.ワイヤレスドッキングセンター(WDC)に、WDCと関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を送るための手段と、ワイヤレスドッキー(WD)によって、およびWDCに、1つまたは複数の認証証明書を送るための手段と、WDによって、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDCに送られた1つまたは複数の認証証明書が付与するかどうかを決定するための手段と、第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、WDがアクセスを要求する1つまたは複数のPFの第1のPFにアクセスするための手段とを備える、WD。
[0231]例17.例11から13の方法の任意の組合せを実行するための手段をさらに備える、例16のWD。
[0232]例18.非一時的コンピュータ可読記憶媒体が、実行されると、ワイヤレスドッキー(WD)の1つまたは複数のプロセッサに、ワイヤレスドッキングセンター(WDC)へ、WDCと関連付けられる1つまたは複数の周辺機能(PF)にアクセスするための要求を送らせ、WDCへ、1つまたは複数の認証証明書を送らせ、WDがアクセスを要求する1つまたは複数のPFへのアクセスをWDCに送られた1つまたは複数の認証証明書が付与するかどうかを決定させ、WDがアクセスを要求する1つまたは複数のPFの第1のPFへのアクセスを1つまたは複数の認証証明書が付与すると決定したことに応答して、第1のPFへアクセスさせる、命令を記憶する。
[0233]例19.実行されると、WDの1つまたは複数のプロセッサに、例11から13の方法の任意の組合せを実行させる命令をさらに記憶した、例18の非一時的コンピュータ可読記憶媒体。
[0234]例に応じて、本明細書で説明されるいずれもの技法におけるいくつかの活動またはイベントは異なる順序で実行されてよく、全体的に追加され、結合され、または除外されてよいことが認識されるべきである(たとえば、説明される活動またはイベントのすべてがこの技法の実施のために必要であるとは限らない)。その上、いくつかの例では、活動またはイベントは、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通じて、連続的ではなく同時に実行され得る。
[0235]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして記憶または送信されてよく、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体のような有形の媒体に相当するコンピュータ可読記憶媒体、または、ある場所から別の場所への、たとえば通信プロトコルに従った、コンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は全般に、(1)非一時的である有形コンピュータ可読記憶媒体または(2)信号もしくは搬送波のような通信媒体に相当し得る。データ記憶媒体は、本開示で説明される技法の実装のための、命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0236]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号または他の一時的媒体を含まないが、その代わりに非一時的、有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常は磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。上の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0237]命令は、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積論理回路もしくはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造または本明細書で説明される技法の実装形態に適した任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で与えられてよく、あるいは複合コーデックに組み込まれてよい。また、本技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
[0238]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが説明されたが、それらは必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上述したように、様々なユニットは、適切なソフトウェアおよび/またはファームウェアとともに、コーデックハードウェアユニットの中で組み合わされてよく、または、上述した1つまたは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供されてよい。
[0239]様々な例が説明されてきた。これらおよび他の例は、以下の特許請求の範囲の範囲内にある。