(57)【要約】  本発明は、ドッキングプロセスに参加する全ての者のニーズ及び能力を平衡させる接続交渉プロセスに従うドッキングプロセス中に複数のドッキーと固定ドッキングステーションとの間のペイロード接続を事前設計するシステム、方法、及び装置を提供する。開示される一側面によれば、接続交渉システムは、通信システム内のデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立する。
2015519766.tif 000002
【特許請求の範囲】
【請求項１】
通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための接続交渉システムを含む通信システムであって、前記通信システムは、２つ以上のデバイス、前記２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき前記１つ以上の通信経路の一部を実現するために用いられ得る複数のシステム要素、並びに、（ａ）システム要素間の接続点、及び（ｂ）システム要素と前記確立されるべき１つ以上の通信経路の端点との間の接続点のうちの１つを表す複数のインターフェイスデータ要素を含み、
前記接続交渉システムは少なくとも１つのプロセッサは含み、前記少なくとも１つのプロセッサは、
ａ）第１のプロセッサ入力として、前記確立されるべき１つ以上の通信経路の１つ以上の端点ペアであって、前記端点は前記通信システムのデバイス内に位置し、各端点は前記複数のインターフェイスデータ要素のうちの１つによって表される、前記１つ以上の端点ペアを受信し、
ｂ）第２のプロセッサ入力として、前記少なくとも２つのデバイスと、任意で前記通信媒体との能力及び制約の記述であって、前記能力及び制約はブロックデータ要素のセットＢによって定められ、前記ブロックデータ要素のセットＢ内のブロックデータ要素は、（ａ）特定の通信タスクを実行するよう構成される単一のシステム要素、（ｂ）構成され得ない単一のシステム要素、又は（ｃ）単一のシステム要素がサポートする前記１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、前記能力及び制約の記述を受信し、
ｃ）前記第１及び第２の入力に基づく第１の基準を少なくとも満たす前記ブロックデータ要素のセットＢのサブセットＴｘを見つけて、
ｄ）前記通信システム内の前記確立されるべき１つ以上の通信経路を表す接続プランとして前記サブセットＴｘを出力し、
ｅ）少なくとも、前記サブセットＴｘにより指定されるように１つ以上のシステム要素を構成することにより前記接続プランを実行して、前記通信システム内の前記１つ以上の通信経路を確立する、通信システム。
【請求項２】
システム要素は、前記２つ以上のデバイスのうちの１つに関連付けられた要素、前記少なくとも１つの通信媒体に関連付けられた要素、前記２つ以上のデバイスのうちの１つ及び前記少なくとも１つの通信媒体に関連付けられた要素のうちの１つである、請求項１に記載の通信システム。
【請求項３】
前記セットＢ内の各ブロックデータ要素は、更に、前記通信システム内の前記複数のインターフェイスデータ要素から選択される１つ以上のインターフェイスデータ要素を特定するデータを含み、前記インターフェイスデータ要素を特定する前記データは、前記ブロックデータ要素に対して関係を有し、前記データは更に、各インターフェイス要素について前記インターフェイス要素と前記ブロックデータ要素との間の関係型を符号化し、前記関係型は関係型１又は２のうちの１つを含む、請求項１に記載の通信システム。
【請求項４】
前記サブセットＴｘが満たさなければならない前記第１の基準は、
前記第１の入力に含まれる、又は、Ｔｘ内の少なくとも１つのブロックデータ要素に対して関係型１を有するインターフェイスデータ要素を特定することと、
前記特定されたインターフェイスデータ要素のそれぞれが、Ｔｘの少なくとも１つのブロックデータ要素に対して関係型２を有する少なくとも１つのインターフェイスデータ要素と同じ又は実質的に同様であることを判定することと
を含む、請求項３に記載の通信システム。
【請求項５】
前記通信システム及び前記交渉システムは、
Ｉ．前記通信システムにおいて、
第２のシステム要素が第１のシステム要素に必要なサービスを提供する、
ＩＩ．前記交渉システムにおいて、
ａ）前記ブロックデータ要素のセットＢは、少なくとも第１のブロックデータ要素及び第２のブロックデータ要素を含み、
ｂ）前記第１のブロックデータ要素は前記通信システム内の前記第１のシステム要素を表し、前記第２のブロックデータ要素は前記通信システム内の前記第２のシステム要素を表し、
ｃ）前記第１及び第２のブロックデータ要素は、単一のインターフェイスデータ要素に対して関係型１及び２をそれぞれ有する、
という特徴を含む特徴を満たす、請求項３に記載の通信システム。
【請求項６】
Ｉ．前記通信システムにおいて、システム要素は第１の通信タスクを実行するための第１の構成、及び第２の通信タスクを実行するための第２の構成に構成され得り、前記システム要素は前記第１及び第２の通信タスクが前記システム要素によって同時に実行され得ないという点で制限を有し、
ＩＩ．前記交渉システムにおいて、前記ブロックデータ要素のセットＢ内の第１のブロックデータ要素は前記第１の構成の前記システム要素を表し、第２のブロックデータ要素は前記第２の構成の前記システム要素を表す、請求項１に記載の通信システム。
【請求項７】
前記サブセットＴｘにより指定されるように前記１つ以上のシステム要素を構成して前記通信システム内に前記１つ以上の通信経路を確立することは、更に、Ｔｘ内の特定のブロックデータ要素に関連付けられたコンピュータ読み取り可能命令を実行し、前記１つ以上のシステム要素の構成に影響を与えることを含む、請求項１に記載の通信システム。
【請求項８】
通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための方法であって、前記通信システムは、２つ以上のデバイス、前記２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき前記１つ以上の通信経路の一部を実現するために使用され得る複数のシステム要素、並びに、（ａ）システム要素間の接続点、及び（ｂ）システム要素と前記確立されるべき１つ以上の通信経路の端点との間の接続点のうちの１つを表す複数のインターフェイスデータ要素を含み、前記方法は、
ａ）第１の入力として、前記確立されるべき１つ以上の通信経路の前記１つ以上の端点ペアであって、前記端点は前記通信システムのデバイス内に位置し、各端点は前記複数のインターフェイスデータ要素のうちの１つによって表される、前記１つ以上の端点ペアを受信するステップと、
ｂ）第２の入力として、前記少なくとも２つのデバイスと、任意で前記通信媒体との能力及び制約の記述であって、前記能力及び制約はブロックデータ要素のセットＢによって定められ、前記ブロックデータ要素のセットＢ内のブロックデータ要素は、（ａ）特定の通信タスクを実行するよう構成される単一のシステム要素、（ｂ）構成され得ない単一のシステム要素、又は（ｃ）単一のシステム要素がサポートする前記１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、前記能力及び制約の記述を受信するステップと、
ｃ）前記第１及び第２の入力に基づく第１の基準を少なくとも満たす前記ブロックデータ要素のセットＢのサブセットＴｘを見つけるステップと、
ｄ）前記通信システム内の前記確立されるべき１つ以上の通信経路を表す接続プランとして前記サブセットＴｘを出力するステップと、
ｅ）前記サブセットＴｘにより指定されるように１つ以上のシステム要素を構成することにより前記接続プランを実行して、前記通信システム内の前記１つ以上の通信経路を確立するステップと
を含む、方法。
【請求項９】
前記セットＢ内の各ブロックデータ要素は、更に、前記通信システム内の前記複数のインターフェイスデータ要素から選択される１つ以上のインターフェイスデータ要素を特定するデータを含み、前記データは、前記インターフェイスデータ要素を前記ブロックデータ要素に対して関係を有するとして特定し、前記データは更に、各インターフェイス要素について前記インターフェイス要素と前記ブロックデータ要素との間の関係型を符号化し、前記関係型は関係型１又は２のうちの１つを含む、請求項８に記載の方法。
【請求項１０】
前記サブセットＴｘが満たさなければならない前記第１の基準は、
前記第１の入力に含まれる、又は、Ｔｘ内の少なくとも１つのブロックデータ要素に対して関係型１を有するインターフェイスデータ要素を特定することと、
前記特定されたインターフェイスデータ要素のそれぞれが、Ｔｘの少なくとも１つのブロックデータ要素に対して関係型２を有する少なくとも１つのインターフェイスデータ要素と同じ又は実質的に同様であることを判定することと
を含む、請求項８に記載の方法。
【請求項１１】
前記通信システムにおいて、システム要素は第１の通信タスクを実行するための第１の構成、及び第２の通信タスクを実行するための第２の構成に構成され得り、前記システム要素は前記第１及び第２の通信タスクが前記システム要素によって同時に実行され得ないという点で制限を有し、前記交渉システムにおいて、前記ブロックデータ要素のセットＢ内の第１のブロックデータ要素は前記第１の構成の前記システム要素を表し、第２のブロックデータ要素は前記第２の構成の前記システム要素を表す、請求項８に記載の方法。  
【請求項１２】
前記サブセットＴｘにより指定されるように前記１つ以上のシステム要素を構成して前記通信システム内に前記１つ以上の通信経路を確立するステップは、更に、Ｔｘ内の特定のブロックデータ要素に関連付けられたコンピュータ読み取り可能命令を実行し、前記１つ以上のシステム要素の構成に影響を与えることを含む、請求項８に記載の方法。  
【請求項１３】
通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための接続交渉システムを提供する通信システム内のドッキーであって、前記通信システムは、２つ以上のデバイス、前記２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき前記１つ以上の通信経路の一部を実現するために用いられ得る複数のシステム要素、並びに、（ａ）システム要素間の接続点、及び（ｂ）システム要素と前記１つ以上の通信経路の端点との間の接続点のうちの１つを表す複数のインターフェイスデータ要素を含み、
前記ドッキーによって提供される前記接続交渉システムは少なくとも１つのプロセッサは含み、前記少なくとも１つのプロセッサは、
ａ）第１のプロセッサ入力として、前記確立されるべき１つ以上の通信経路の前記１つ以上の端点ペアであって、前記端点は前記通信システムのデバイス内に位置し、各端点は前記複数のインターフェイスデータ要素のうちの１つによって表される、前記１つ以上の端点ペアを受信し、
ｂ）第２のプロセッサ入力として、前記少なくとも２つのデバイスと、任意で前記通信媒体との能力及び制約の記述であって、前記能力及び制約はブロックデータ要素のセットＢによって定められ、前記ブロックデータ要素のセットＢ内のブロックデータ要素は、（ａ）特定の通信タスクを実行するよう構成される単一のシステム要素、（ｂ）構成され得ない単一のシステム要素、又は（ｃ）単一のシステム要素がサポートする前記１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、前記能力及び制約の記述を受信し、
ｃ）前記第１及び第２の入力に基づく第１の基準を少なくとも満たす前記ブロックデータ要素のセットＢのサブセットＴｘを見つけて、
ｄ）前記通信システム内の前記確立されるべき１つ以上の通信経路を表す接続プランとして前記サブセットＴｘを出力し、
ｅ）前記サブセットＴｘにより指定されるように１つ以上のシステム要素を構成して前記通信システム内の前記１つ以上の通信経路を確立することを含む、前記接続プランの実行を開始する、ドッキー。
【請求項１４】
通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための接続交渉システムを提供する通信システム内のドッキングホストであって、前記通信システムは、２つ以上のデバイス、前記２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき前記１つ以上の通信経路の一部を実現するために用いられ得る複数のシステム要素、並びに、（ａ）システム要素間の接続点、及び（ｂ）システム要素と前記１つ以上の通信経路の端点との間の接続点を表す複数のインターフェイスデータ要素を含み、
前記ドッキングホストによって提供される前記接続交渉システムは少なくとも１つのプロセッサは含み、前記少なくとも１つのプロセッサは、
ａ）第１のプロセッサ入力として、前記確立されるべき１つ以上の通信経路の前記１つ以上の端点ペアであって、前記端点は前記通信システムのデバイス内に位置し、各端点は前記複数のインターフェイスデータ要素のうちの１つによって表される、前記１つ以上の端点ペアを受信し、
ｂ）第２のプロセッサ入力として、前記少なくとも２つのデバイスと、任意で前記通信媒体との能力及び制約の記述であって、前記能力及び制約はブロックデータ要素のセットＢによって定められ、前記ブロックデータ要素のセットＢ内のブロックデータ要素は、（ａ）特定の通信タスクを実行するよう構成される単一のシステム要素、（ｂ）構成され得ない単一のシステム要素、又は（ｃ）単一のシステム要素がサポートする前記１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、前記能力及び制約の記述を受信し、
ｃ）前記第１及び第２の入力に基づく第１の基準を少なくとも満たす前記ブロックデータ要素のセットＢのサブセットＴｘを見つけて、
ｄ）前記通信システム内の前記確立されるべき１つ以上の通信経路を表す接続プランとして前記サブセットＴｘを出力し、
ｅ）前記サブセットＴｘにより指定されるように１つ以上のシステム要素を構成して前記通信システム内の前記１つ以上の通信経路を確立することを含む、前記接続プランの実行を開始する、ドッキングホスト。
【発明の詳細な説明】
【技術分野】
【０００１】
［００１］本願は、２０１２年３月６日にＵＳＰＴＯに提出された名称“Connection Negotiation for Wireless Docking”の米国仮出願第６１／６０７，１１４号の利益を主張する。
【０００２】
［００２］本発明は、一般的には異なるコンピュータデバイス間の無線データ通信に関連し、具体的には、ネットワークの最適なネットワークトポロジー及びデバイスドライバ設定を自動構成するためのドッキングシステム及び方法に関連する。
【背景技術】
【０００３】
［００３］無線ドッキングは、携帯電話、ラップトップ等の典型的には携帯型のデバイスを、典型的には固定のドッキング環境に接続するために無線技術を使用する。このような携帯型デバイスは、通常、ドッキー又は無線ドッキー（ＷＤ：wireless dockee）と呼ばれる。無線ドッキングにおいて、ドッキーは、１つ以上のドッキングステーション（ＷＤＳ）又はドッキングホスト（ＷＤＨ）であり得るドッキング環境によって提供される大画面、キーボード、マウス、及び入出力ポート等のドッキング環境内の周辺機器へのアクセスを得るために、ドッキング環境に無線接続する。典型的な適用例では、ユーザが携帯電話上で動作中のアプリケーション（例えば、電子メールクライアント、ウェブブラウザ）と対話するとき、携帯電話上で提供される画面より大きな画面が提供される。大画面の使用は、ドッキー上で動作中のアプリケーションと対話するとき、エンドユーザの体験及び生産性を向上させる。
【０００４】
［００４］現在及び将来予想される開発中の無線ドッキング規格は、ドッキング環境が複数のデバイス及び通信リンクからなる分散的な態様で実装され得ることを想定する。
【０００５】
［００５］上記の制限及び考慮事項を考慮すると、ドッキングシステムにおいて最適な接続を構成するプロセス（本明細書では接続交渉と呼ぶ）は、少なくとも、ドッキングプロセスに参加する全ての者のニーズ及び能力を平衡させるように通信プロトコル、チップ設定、チャネル割り当て、及びルーティングトポロジーを組み合わせることを含むことは明らかである。また、様々な選択可能なソリューションをそれらの利点に基づいて評価することは、それ自体では困難な課題であり得る。最適化されるべきメトリクスが複数存在することが理想的である。メトリクスはネットワークトポロジーのスループット及び遅延であり、特にドッキーから画面周辺機能に送信される画面更新のスループットに言及する。
【０００６】
［００６］上記の欠点及び関心事項に照らせば、無線ドッキング環境にドッキングすることを提案しているドッキーが、ドッキングプロセスに参加する全ての者のニーズ及び能力をバランスさせるように通信プロトコル、チップ設定、チャネル割り当て、及びルーティングトポロジーを組み合わせる接続交渉プロセスを如何に実行するかという即座の問題に面することは明らかであろう。上述したように、システムの一部における設定の選択はシステムの他の部分の性能に影響を及ぼすため、この問題は些細ではない。構成によっては、完全に接続されたコミュニケーション図を作成する設定の組み合わせをたった１つ見つけることさえ複雑な場合もある。
【０００７】
［００７］したがって、無線ドッキーを無線ドッキング環境に接続するための接続交渉プロセスを実施する接続設計戦略を提供するためのシステム、方法、及びコンピュータプログラム製品が必要とされている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
［００８］発明の概要において、いくつかの選択された概念を紹介する。これらの概念は後に、発明を実施するための形態においてより詳細に説明される。本項は請求の主題の重要な特徴又は不可欠な特徴を特定するためのものではなく、請求の主題の範囲の決定を補助するものでもない。
【０００９】
［００９］本発明は、多様な実施形態において、ドッキングプロセスに参加する全ての者のニーズ及び能力を平衡させる接続交渉プロセスに従うドッキングプロセス中にドッキーと固定ドッキング環境とのペイロード接続を事前設計するシステム及び方法を提供することにより従来技術における欠点に対処する。
【００１０】
［００１０］開示の一側面によれば、通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための接続交渉システムを含む通信システムであって、通信システムは、２つ以上のデバイス、２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき１つ以上の通信経路の一部を実現するために用いられ得る複数のシステム要素、並びに、システム要素間の接続点、及びシステム要素と確立されるべき１つ以上の通信経路の端点との間の接続点のうちの１つを表す複数のインターフェイスデータ要素を含み、接続交渉システムは少なくとも１つのプロセッサは含み、少なくとも１つのプロセッサは、第１のプロセッサ入力として、確立されるべき１つ以上の通信経路の１つ以上の端点ペアであって、前記端点は通信システムのデバイス内に位置し、各端点は複数のインターフェイスデータ要素のうちの１つによって表される、１つ以上の端点ペアを受信し、第２のプロセッサ入力として、少なくとも２つのデバイスと、任意で通信媒体との能力及び制約の記述であって、能力及び制約はブロックデータ要素のセットＢによって定められ、ブロックデータ要素のセットＢ内のブロックデータ要素は、特定の通信タスクを実行するよう構成される単一のシステム要素、構成され得ない単一のシステム要素、又は単一のシステム要素がサポートする１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、能力及び制約の記述を受信し、第１及び第２の入力に基づく第１の基準を少なくとも満たすブロックデータ要素のセットＢのサブセットＴｘを見つけて、通信システム内の確立されるべき１つ以上の通信経路を表す接続プランとしてサブセットＴｘを出力し、少なくとも、サブセットＴｘにより指定されるように１つ以上のシステム要素を構成することにより接続プランを実行して、通信システム内の１つ以上の通信経路を確立する、通信システムが開示される。
【００１１】
［００１１］本発明の第２の側面によれば、通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための方法であって、通信システムは、２つ以上のデバイス、２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき１つ以上の通信経路の一部を実現するために使用され得る複数のシステム要素、並びに、システム要素間の接続点、及びシステム要素と確立されるべき１つ以上の通信経路の端点との間の接続点のうちの１つを表す複数のインターフェイスデータ要素を含み、方法は、第１の入力として、確立されるべき１つ以上の通信経路の１つ以上の端点ペアであって、前記端点は通信システムのデバイス内に位置し、各端点は複数のインターフェイスデータ要素のうちの１つによって表される、１つ以上の端点ペアを受信するステップと、第２の入力として、少なくとも２つのデバイスと、任意で通信媒体との能力及び制約の記述であって、能力及び制約はブロックデータ要素のセットＢによって定められ、ブロックデータ要素のセットＢ内のブロックデータ要素は、特定の通信タスクを実行するよう構成される単一のシステム要素、構成され得ない単一のシステム要素、又は単一のシステム要素がサポートする１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、能力及び制約の記述を受信するステップと、第１及び第２の入力に基づく第１の基準を少なくとも満たすブロックデータ要素のセットＢのサブセットＴｘを見つけるステップと、通信システム内の確立されるべき１つ以上の通信経路を表す接続プランとしてサブセットＴｘを出力するステップと、サブセットＴｘにより指定されるように１つ以上のシステム要素を構成することにより接続プランを実行して、通信システム内の１つ以上の通信経路を確立するステップとを含む、方法が開示される。
【００１２】
［００１２］本発明の第３の側面によれば、通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための接続交渉システムを提供する通信システム内のドッキーであって、通信システムは、２つ以上のデバイス、２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき１つ以上の通信経路の一部を実現するために用いられ得る複数のシステム要素、並びに、（ａ）システム要素間の接続点、及び（ｂ）システム要素と１つ以上の通信経路の端点との間の接続点のうちの１つを表す複数のインターフェイスデータ要素を含み、前記ドッキーによって提供される接続交渉システムは少なくとも１つのプロセッサは含み、少なくとも１つのプロセッサは、第１のプロセッサ入力として、確立されるべき１つ以上の通信経路の１つ以上の端点ペアであって、前記端点は通信システムのデバイス内に位置し、各端点は複数のインターフェイスデータ要素のうちの１つによって表される、１つ以上の端点ペアを受信し、第２のプロセッサ入力として、少なくとも２つのデバイスと、任意で通信媒体との能力及び制約の記述であって、能力及び制約はブロックデータ要素のセットＢによって定められ、ブロックデータ要素のセットＢ内のブロックデータ要素は、特定の通信タスクを実行するよう構成される単一のシステム要素、構成され得ない単一のシステム要素、又は単一のシステム要素がサポートする１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、能力及び制約の記述を受信し、第１及び第２の入力に基づく第１の基準を少なくとも満たすブロックデータ要素のセットＢのサブセットＴｘを見つけて、通信システム内の確立されるべき１つ以上の通信経路を表す接続プランとしてサブセットＴｘを出力し、サブセットＴｘにより指定されるように１つ以上のシステム要素を構成して通信システム内の１つ以上の通信経路を確立することを含む、接続プランの実行を開始する、ドッキーが開示される。
【００１３】
［００１３］本発明の第４の側面によれば、通信システムのデバイス内に位置する１つ以上の端点ペア間の１つ以上の通信経路を確立するための接続交渉システムを提供する通信システム内のドッキングホストであって、通信システムは、２つ以上のデバイス、２つ以上のデバイス間に位置する少なくとも１つの通信媒体、確立されるべき１つ以上の通信経路の一部を実現するために用いられ得る複数のシステム要素、並びに、（ａ）システム要素間の接続点、及び（ｂ）システム要素と１つ以上の通信経路の端点との間の接続点を表す複数のインターフェイスデータ要素を含み、前記ドッキングホストによって提供される接続交渉システムは少なくとも１つのプロセッサは含み、少なくとも１つのプロセッサは、第１のプロセッサ入力として、確立されるべき１つ以上の通信経路の１つ以上の端点ペアであって、前記端点は通信システムのデバイス内に位置し、各端点は複数のインターフェイスデータ要素のうちの１つによって表される、１つ以上の端点ペアを受信し、第２のプロセッサ入力として、少なくとも２つのデバイスと、任意で通信媒体との能力及び制約の記述であって、能力及び制約はブロックデータ要素のセットＢによって定められ、ブロックデータ要素のセットＢ内のブロックデータ要素は、（ａ）特定の通信タスクを実行するよう構成される単一のシステム要素、（ｂ）構成され得ない単一のシステム要素、又は（ｃ）単一のシステム要素がサポートする１つ以上の通信経路に関係なく常に同じ様に構成される単一のシステム要素を表すデータを含む、能力及び制約の記述を受信し、第１及び第２の入力に基づく第１の基準を少なくとも満たすブロックデータ要素のセットＢのサブセットＴｘを見つけて、通信システム内の確立されるべき１つ以上の通信経路を表す接続プランとしてサブセットＴｘを出力し、サブセットＴｘにより指定されるように１つ以上のシステム要素を構成して通信システム内の１つ以上の通信経路を確立することを含む、接続プランの実行を開始する、ドッキングホストが開示される。
【図面の簡単な説明】
【００１４】
［００１４］本発明の上記及び他の課題、特徴、並びに利点は、図面とともに以下の発明を実施するための形態を考察することにより明らかになるであろう。
【００１５】
【図１】［００１５］図１は、一実施形態に係る、本発明が実装され得る例示的なドッキング環境を示す。
【図２】［００１６］図２は、一実施形態に係る、無線ドッキー「Ａ」のアプリケーションソフトウェアモジュールを無線ドッキングホストのスクリーンハードウェアモジュールと接続している、本発明の接続設計モジュールによって作成された例示的な通信経路を示す。
【図３ａ−３ｅ】［００１７］図３ａ〜図３ｅは、一実施形態に係る、本発明の接続設計モジュールによって使用されるインターフェイスデータ要素及びブロックデータ要素の例示的な表現を示す。
【図４】［００１８］図４は、一実施形態に係る、ドッキーと無線ドッキングホストとの間で行われる接続交渉の例示的な交渉結果を示す。
【図５ａ−５ｂ】［００１９］図５ａ及び図５ｂは、一実施形態に係る、典型的なドッキー（図５ａ）及びドッキングホスト（図５ｂ）によって提供されるプロセッサ及びホストに接続された接続設計モジュールを示す。
【図６】［００２０］図６は、一実施形態に係る、本発明の接続設計モジュールの入力及び出力を示す。
【図７】［００２１］図７は、コンピュータシステムの形態のマシンであって、命令のセットが実行されると、マシンは本明細書に開示される技法の任意の１つ以上を実行する、マシンの例示的且つ図示的な表現を示す。一部の実施形態では、マシンはスタンドアロンデバイスとして動作する。一部の実施形態では、マシンは（ネットワークを用いて）他のマシンに接続され得る。ネットワーク化された配置では、マシンは、サーバ−クライアントユーザネットワーク環境内のサーバ又はクライアントユーザマシンの容量内で動作し得り、又は、peer-to-peer（又は分散）ネットワーク環境内のピアマシンとして動作し得る。
【発明を実施するための形態】
【００１６】
［００２２］本発明の非限定的な実施形態を、図面を参照しながら例として以下に詳細に開示する。これらの実施形態の説明において、明確さのために具体的な（特定の）用語を使用する。しかし、本発明は選択された具体的な用語に限定されるものではなく、各具体的な用語は、同様な目的を達成するために同様に動作する全ての技術的均等物を含むと理解されるべきである。
【００１７】
［００２３］本明細書は本開示の原理を説明する。したがって、本明細書に明確に記載又は図示されていなくとも、当業者は、本開示の原理を具現化し、その趣旨及び範囲に含まれる様々な構成を案出できるであろう。
【００１８】
［００２４］本発明の主題は、法定要件を満たすよう本明細書に詳細に記載されている。しかし、当該記載自体は本特許の範囲を限定するものではない。むしろ、発明者は、請求の主題は他の現在又は将来の技術とともに、本書類で説明されるものと類似する他のステップ又はステップの組み合わせを含む他の態様で具現化され得ることを考慮した。また、本明細書では、使用される方法の各単位（モジュール）を示すために用語「ステップ」及び／又は「ブロック」が用いられることがあるが、各ステップの順番が明示されている場合を除き、これらの用語は本明細書に記載される様々なステップ間の如何なる特定の順番も示唆しないと解されるべきである。
【００１９】
［００２５］本明細書に記載される全ての例及び条件的文言は、読者が本開示の原理及び発明者によって寄与される当技術分野を進歩させるための概念を理解するのを助ける教育的目的を意図したものであり、かかる具体的に記載された例及び条件に限定されないと解されるべきである。
【００２０】
［００２６］また、本開示の原理、側面、及び実施形態、並びにこれらの具体例を記す本明細書の全ての記述は、これらの構造的及び機能的均等物の両方を含むものとする。更に、かかる均等物は現在知られている均等物及び将来発展される均等物の両方、すなわち、構造によらず同じ機能を実行するあらゆる発展要素を含むものとする。
【００２１】
［００２７］本発明の実施形態は、以下でより詳細に論じられるように、様々な他のコンピュータハードウェア及び／又はソフトウェアモジュールを含む専用又は汎用コンピュータを含み得る。
【００２２】
［００２８］本発明は様々な態様で実施可能であり、プロセス（方法）、装置、システム、組成物、コンピュータ読み取り可能記憶媒体等のコンピュータ読み取り可能媒体、又は、光若しくは通信リンクを介してプログラム命令が送信されるコンピュータネットワークとしての実施を含む。本明細書において、これらの実施形態、又は本発明が取り得るあらゆる他の形態は技術と称され得る。プロセッサ又はメモリ等、タスクを実行するよう構成されると説明される構成要素は、所与の時点でタスクを実行するよう一時的に構成される一般的な要素、又はタスクを実行するよう製造された特定の要素を含む。通常、開示される方法のステップの順番は、本発明の範囲を逸脱することなく変更できる。
【００２３】
［００２９］本明細書でいう用語「接続設計（又は計画若しくはプラン）モジュール」は、メモリに結合された少なくとも１つのプロセッサ上で実行される実行可能なコードを含む１つ以上の関連するモジュールを表す。接続設計モジュールは、接続プランを立てることにより接続交渉問題を解決するよう構成される。より具体的には、接続設計モジュールはドッキングプロセスにおいて、１つ以上のドッキーと１つ以上の固定ドッキング環境との「ペイロード」接続を事前設計し、ここでペイロード接続は、ドッキング環境内の周辺機能と対話するために用いられる。接続設計モジュールは、ドッキングプロセスに参加する全ての当事者のニーズ及び能力を平衡させることにより、最適又は近最適且つ実現可能な通信経路のセットを計算する。
【００２４】
［００３０］本明細書でいう用語「接続交渉」は、ドッキーと１つ以上のドッキングホストとの間に接続を確立するシステムを指す。ドッキー及びドッキングホストはまとめてデバイスと呼ばれ、初めて互いと接触する場合がある。
【００２５】
例示的適用環境
［００３１］図１を参照すると、本明細書において通常無線ドッキーと呼ばれる複数の携帯型デバイス（例えば、携帯電話、ラップトップ等）、無線ドッキー「Ａ」１２０、無線ドッキー「Ｂ」１２２、無線ドッキー「Ｃ」１２３、無線ドッキー「Ｄ」１２４が示されている。本発明の課題は、無線ドッキーの１つ又は複数と１つ以上の無線ドッキングホスト、例えば無線ドッキングホスト１２１等との間のペイロード接続のための最適な又は近最適な構成を見つけ出すことである。
【００２６】
［００３２］接続交渉プロセスにおいて、無線ドッキングシステム内の当事者は通信を行い、ペイロード接続のための最適又は近最適構成に同意して、アプリケーションソフトウェア、ドッキー、及び周辺機能ハードウェア間の対話をサポートする。より一般的には、ペイロード接続は通信経路の例である。通信経路は、無線ドッキングの範囲外の接続、例えば２つのソフトウェアアプリケーションプログラム間の接続等を含むという点で、ペイロード接続の一般化である。通信経路はアプリケーションと周辺機器との間の接続を表し得る。
【００２７】
［００３３］図２を参照すると、図５の接続設計モジュール５５０によって管理及び実行される接続交渉プロセスの結果作成された通信経路５００が示されている。通信経路５００は、第１及び第２の端点５０２及び５０４からなる。第１の端点５０２は無線ドッキー「Ａ」１２０のアプリケーションソフトウェアプログラム４２２に関連付けられ、第２の端点５０４は無線ドッキングホスト１２１に関連付けられたスクリーンハードウェア４２３に関連付けられる。通信経路は、デバイスドライバ４１１、ネットワークＩＦ４１３、無線ネットワーク４１５、ネットワークＩＦ４１４、及びデバイスドライバ４１２を含む５つのシステム要素を通過する。  
【００２８】
［００３４］通信経路５００は、アプリケーションソフトウェアプログラム４２２とスクリーンハードウェア４２３との間の双方向データフローを可能にする。これらの２つのデバイス間で通信されるデータは、通信経路内の１つ以上のシステム要素、例えばドッキーＡ１２０と関連付けられたデバイスドライバ４１１による、例えば可逆又は非可逆（動画）圧縮によって変換されてもよい。通信経路５００は接続設計モジュール５５０（図示無し、図５参照）によって実行される計算の結果として確立されるので、接続設計モジュール５５０によって作成された接続プランを満たす。
【００２９】
［００３５］無線ドッキングは、ネットワーク４１５等のネットワークはほとんどの場合、特に設計を最適にするために接続設計モジュール５５０の出力結果として確立されたWiFi Directベースネットワークであることを想定する。同様に、本発明は、デバイスドライバ４１２、ネットワークＩＦ４１４、ネットワークＩＦ４１３等のシステム要素が特に接続設計モジュール５５０によって設計された経路を確立するよう構成され得ることを想定する。一部の実施形態では、経路の確立に加えて、１つ以上の新たなWiFi Directネットワークが接続設計モジュール５５０による計算の結果として作成されてもよい。
【００３０】
［００３６］本発明によれば、通信経路の端点ペアの各端点は、典型的には異なるデバイス内に位置する。例えば、図２を参照すると、通信ペア端点は、無線ドッキー「Ａ」１２０内のアプリケーションソフトウェアモジュール４２２の端部、及び無線ドッキングホスト１２１内のスクリーンハードウェアモジュール４２３の端部に位置する。これらの端点は通信経路５００等の通信経路を介して接続されなければならず、各通信経路は通常少なくとも１つのネットワーク接続、例えば図４に示されるようなネットワーク４１５等を含む。
【００３１】
［００３７］典型的なネットワーク接続は、例えば特定のチャネル上のWiFiネットワークを介した無線接続、又は有線接続であり得る。通信経路は通常、デバイスドライバ４１１、４１２等のデバイスドライバを含む。デバイスドライバは、特に特定の無線ネットワーク接続とともに使用される場合に最適となるよう選択されてもよい。例えば、下位のトランスポートプロトコル上に上位のデバイスアクセスプロトコルを実装するデバイスドライバである。また、通信経路は２つのデバイス内に位置する端点間を中継するために任意で他の１つのデバイスを用いてもよい。
【００３２】
［００３８］接続設計モジュール５５０は、通信システム内のデバイスの能力及び制約に基づいて、最適（又は近最適）且つ実現可能である通信経路のセットを計算する。通信システム内の各デバイスの能力及び制約は、後により詳細に説明される符号化方式を用いて符号化され得る。好ましい一実施形態において、符号化方式は、個別のデバイスの能力及び制約がデバイス特有情報パッケージとして独立して符号化され得るという特性を有する。符号化は、デバイスの作成中にデバイス設計時に若しくは工場で、又はデバイス内に保持される特殊コードによって実行され得る。任意で、デバイス間の無線媒体の特性及び／又は使用制約も符号化方式を用いて情報パッケージとして符号化してもよい。
【００３３】
［００３９］接続設計モジュール５５０は通信経路を計算するための様々な能力を提供し、限定はされないが、システム内の全デバイスのデバイス特有情報、ペアとなるシステム要素の端点に関する情報、無線媒体に関するオプション情報、及び追加のオプション情報を組み合わせる能力を含む。
【００３４】
［００４０］通常、接続設計モジュール５５０はシステム内の１つのデバイス内のプロセッサ上で動作する。一部の実施形態では、接続設計モジュールを分散実装することが考えられる。
【００３５】
［００４１］接続設計モジュール５５０の１つの入力としてデバイス特有情報パッケージを構築することは、デバイス内の監視モジュール間の通信がすでに確立されていることを前提とする。接続設計モジュール５５０は周辺機能との対話をサポートするために「ペイロード」接続を設計し、発見ハンドシェイク（discovery and handshake）プロトコルによってデバイス間の初期通信を確立しない。
【００３６】
［００４２］多様な実施形態において、接続設計モジュール５５０が特定のデバイス内に位置するという要件が無い限り、接続設計モジュール５５０は通信システム内のいずれのデバイス内に位置してもよい。
【００３７】
［００４３］接続交渉プロセスにおいて、好ましい一実施形態では、ドッキーとドッキングホスト間の通信ルートプランを決定するための接続設計モジュール５５０を提供及び実行する役割は、無線ドッキーが担う。他の実施形態では、ドッキングホストが接続設計モジュール５５０を提供及び実行する役割を担ってもよい。これらの異なる実施形態は、例として図５に示されている。例えば、図５ａは接続設計モジュール５５０を実行する役割を担う無線ドッキーを示し、図５ｂは接続設計モジュール５５０を提供（ホスト）する役割を担う無線ドッキングホストを示す。  
【００３８】
［００４４］一実施形態では、無線ドッキング規格を実装する全てのデバイスが接続設計モジュール５５０を実行する能力を備えてもよく、新しいセッション毎に、通信システム内のどの特定のデバイスが接続設計モジュール５５０を実行するかを共同で決めてもよい。
【００３９】
［００４５］接続設計モジュール５５０によって計算された通信経路に関する情報は、接続設計モジュール５５０を提供しているデバイスから接続交渉に参加している各デバイスに送信される。この情報は、計算された通信経路への各デバイスの寄与を実現するために、及び要求されるデバイス間のネットワーク接続を構成するために各デバイスによって使用される。
【００４０】
［００４６］上記したように、接続設計モジュール５５０は、異なる通信システムデバイス、例えば図２及び図４に示されるような無線ドッキー「Ａ」１２０及び無線ドッキングホスト１２１内に位置する端点のペア間の最適な又は近最適な通信経路のセットの表現を計算する。接続設計モジュール５５０は、以下で述べられるようなブロック及びインターフェイスデータ要素に作用することにより端点ペア間の最適な又は近最適な通信経路のセットを計算する。
【００４１】
インターフェイスデータ要素
［００４７］本明細書において「インターフェイス」とも呼ばれるインターフェイスデータ要素は、通信経路５００等の通信経路沿いの実際の単一のインターフェイスポイントの表現又はモデルである。一部の実施形態では、インターフェイスデータ要素は２つ以上の表現的役割を果たし得る。１つの役割において、インターフェイスデータ要素は通信経路沿いの実際の単一のインターファイスポイントを表し得る又はモデル化し得る。他の役割において、インターフェイスデータ要素は、通信経路沿いの単一のインターフェイスポイントに直接対応しない態様で通信システム内のデバイスのデバイス能力又は制約を符号化するために用いられ得る。
【００４２】
［００４８］他の実施形態では、インターフェイスデータ要素は単一のインターフェイスポイントを表す又はモデル化するという唯一の役割を果たすために使用されてもよい。かかる実施形態では、デバイス能力又は制約を符号化するために追加のデータ要素型が作成される。
【００４３】
［００４９］一実施形態において、インターフェイスデータ要素はＡＳＣＩＩ文字列として符号化され得る。例えば、図４はドッキー４２０内に位置する４６１及び４６３、並びにドッキングホスト４２１内に位置する４６２及び４６４の４つのインターフェイス、並びに、楕円形４５１、４５２、４５３、及び４５４内に示されるＡＳＣＩＩ文字列として符号化された、これらを表す関連付けられたインターフェイスデータ要素を示す。図示のＡＳＣＩＩ文字列はインターフェイスデータ要素の特性を符号化する。特性は、例えばインターフェイスが如何なる種類の通信経路沿いの如何なる種類のポイントを表すかを含み得る。好ましい一実施形態では、接続設計の目的に関連する特性だけが符号化される。したがって、インターフェイス（データ要素）の特性を符号化するＡＳＣＩＩ文字列は、システム要素を含む実現可能な最適又は近最適の通信経路を生成するためにモデルが接続設計モジュール５５０によって作用され得るような態様でシステム要素の能力及び制約を符号化するモデルの要素として見なすことができる。 
【００４４】
［００５０］本発明の有益な一側面によれば、符号化方式はいくらかフレキシブルである。すなわち、異なる実施形態は、接続設計モジュール５５０への変更を要することなく異なる符号化方式を選択し得る。
【００４５】
［００５１］一実施形態では、インターフェイスデータ要素のセットは全ＡＳＣＩＩ文字列のセットである。セットからの２つのインターフェイスデータ要素は、それらの表現が同じＡＳＣＩＩ文字列であれば等しいとされ、ここで等価関係は文字列等価である。他の実施形態では、２つのインターフェイス要素が少なくとも実質的に類似であるか否かを判定するために、より複雑な等価性テストを用いることができる。ここで、実質的な類似性は、２つのインターフェイス要素が可能性がある通信経路沿いの同じポイントを表していると定義される。特定の実施形態においてインターフェイスデータ要素のために使用される符号化方式は、あらゆるＡＳＣＩＩ文字列が有効又は有意なインターフェイスの符号化を表すという特性を通常有さない。
【００４６】
［００５２］通信経路の端点は常にインターフェイスデータ要素によって表される。したがって、接続設計モジュール５５０によって計算されるべき通信経路のセットは、接続されるべき端点を表すインターフェイスデータ要素ペアのセットとして指定される。再び図２を参照して、通信経路５００の端部は、インターフェイスデータ要素によって表現可能なインターフェイスである端点５０２、５０４を含む。図４を参照すると、インターフェイス４５１及び４５２はインターフェイス４６１及び４６２、あるいは要素４２２及び４２３の端部によって示される通信経路端点を表す。
【００４７】
ブロックデータ要素
［００５３］本明細書において「ブロック」データ要素とも呼ばれるデータ要素の第２の型は、例えば図２のデバイスドライバ４１１又は図２のネットワークＩＦ４１４等の通信システム要素を表す又はモデル化するために用いられる。「ブロック」という名称は、システム図及びプロトコルスタック図内でデバイス、モジュール、又は他のシステム要素を表すために通常用いられる形状に由来する。一般的に、システム要素は、実際の通信経路の実現に関与する実世界の物体である。本発明は、「無線ネットワークスペクトル」も実世界の物体として考える。
【００４８】
［００５４］再び図２を参照して、通信システム要素４１１、４１２、４１３、４１４、及び４１５がブロックデータ要素によってモデル化されている。しかし、図２中のいくつかの物体、例えば通信経路の端点であるデバイス４２０及びスクリーンハードウェア４２３はブロックデータ要素によって表される又はモデル化されておらず、よってここではシステム要素と呼ばれない。好ましい一実施形態において、接続設計部に入る所望の接続経路の端点に関する入力は、インターフェイスデータ要素のセット（例えば、図４の４５１及び４５２）として供給される。他の実施形態では、代わりに図４の要素４２２及び４２３を表すブロックデータ要素として入力が与えられてもよく、これらのブロック要素はそれぞれに関連付けられた、前者に関してはインターフェイス４５１、後者に関してはインターフェイス４５２をそれぞれ有してもよい。
【００４９】
［００５５］通信システムの通信システム要素と、通信システムの当該システム要素をモデル化する交渉システムのブロックデータ要素との間には、必ずしも一対一の対応が存在しないことを理解されたい。「単純な」ケースでは、システム要素は単一のブロックデータ要素と一対一の対応を有する。しかし、「単純ではない」ケースでは、単一のシステム要素が多数のブロックデータ要素によって表される。この場合、各ブロックデータ要素は単にシステム要素を表すのではなく、特定の構成が適用されたシステム要素を表し、この構成はシステム要素が通信経路の一部を実現する上で特定の機能を果たすことを保証する。この場合、多数のブロックデータは全て同じシステム要素を表すが、各ブロックはそれぞれが表す構成設定に関して異なる。例えば、「単純ではない」ケースにおいて、１つのブロックは「構成されたシステム要素」、すなわち何らかの構成データが適用されたシステム要素を表す。ネットワークインターフェイス等の複雑なシステム要素は、同時に複数の構成データのセット、例えば、第１のデバイスへのネットワーク接続を確立するための第１の構成データセット、及び同時に第２のデバイスへのネットワーク接続を確立するための第２の構成データセットを実行可能であり得ることに留意されたい。システム要素のこれらの２つの異なる構成（データセット）は、それぞれ２つの異なるブロックデータ要素によって表すことができる。
【００５０】
［００５６］用語「ブロックデータ要素」は、デバイス、（ソフトウェア）モジュール、及び場合によってはネットワーククラウド４１５等のシステム要素の表現を含み得る。ブロックの種類を表すために、ブロックデータ要素には通常メタデータが関連付けられる。例えば、メタデータは、ブロックが特定の接続を確立するための設定を有するネットワークインターフェイス、特定の設定を有するデバイス、又は特定の特性を有するネットワーク「クラウド」を表現することを表してもよい。
【００５１】
［００５７］ブロックデータ要素及びインターフェイスデータ要素の多様な組み合わせが、全体として、実現可能な通信経路を特定するために接続設計モジュール５５０によって生成及び分析されるべき（実現可能、実現不可能、及び部分的な）通信経路を表す。
【００５２】
［００５８］ブロックデータ要素は接続設計モジュール５５０に入力されるので、本明細書において「ブロックのインターフェイス」とも呼ばれる関連するインターフェイスデータ要素のセットを少なくとも有する。したがって、ブロックデータ要素は最小で記録のセットとして表すことができ、各記録は、１）ブロックに関連する特定のインターフェイスデータ（例えば、記録はインターフェイスデータ要素を符号化するＡＳＣＩＩ文字列を含むことによりインターフェイスデータ要素を表し得る）、及び、２）ブロックデータ要素とこの特定のインターフェイスデータ要素との間の関係（例えば、記録が関係型を符号化する整数を含むことにより）を表す。また、本発明を説明することを目的として、ブロックデータ要素を数字を用いて呼ぶと都合が良い（例えば「ブロックデータ要素番号７」）。
【００５３】
［００５９］次に図３ａ〜図３ｅを参照すると、例として、上述したような一般的に適用可能なインターフェイスデータ要素及びブロックデータ要素が示されている。
【００５４】
［００６０］まず図３ａを参照すると、接続交渉プロセス中に接続設計モジュール５５０の出力に基づき、例えば図２に示されるような４２２、４１１、４１３、４１４、４１２、４２３等の様々な通信システム部分を結合することにより作成され得る２つの通信経路２１、２２が示されている。
【００５５】
［００６１］図３ｂを参照すると、インターフェイスデータ要素１〜６のセットが示されており、各インターフェイスは、図３ａの２つの通信経路２１、２３のうちの１つの上に存在する固有のポイントを表す又はモデル化する。インターフェイス１〜４はペアとしてモデル化され、各インターフェイスペア（１，４）及び（２，３）は通信経路の第１及び第２の端点を表し、残りの経路は接続設計モジュール５５０によって設計される。例えば、入力ペア（１，４）は通信経路２２の各端点を表す。２つの端点ペア（１，４）及び（２，３）は、第１の入力、すなわち図６に示されるような入力「Ａ」として接続設計モジュール５５０へ入力される。
【００５６】
［００６２］接続設計モジュール５５０は、提供された入力ペア（１，４）及び（２，３）を開始点として使用して１つ以上の通信経路を確立できるか（実現できるか）否かを判定するよう構成される。そのためには、接続設計モジュール５５０は、通信経路２１、２２を実現するためにシステム要素、例えば要素４１１、４１２、４１３、４１４、及び４１５等を如何に使用及び構成できるかを計算しなければならない。
【００５７】
［００６３］図３ｂは更に、インターフェイスデータ要素５及び６により、インターフェイスが通信経路内の端点を表すことに加えて、通信経路沿いの中間地点も表し得ることを示す。
【００５８】
［００６４］次に図３ｃを参照すると、前図では通信経路２１、２２によって捉えられていたインターフェイス間の関係をブロックデータ要素７〜１１によって置換することにより、図３ａ及び図３ｂのより観念的な図が示されている。上記したように、ブロックデータ要素は、２つ以上のインターフェイス（すなわち、通信経路沿いの２つ以上のポイント）の間の接続を実現するよう構成された実世界の通信システム要素を表す又はモデル化する。各ブロックデータ要素はここでは、番号を含む楕円として描かれた対応する関連インターフェイスのセットとともに示されている。ブロックデータ要素は、本明細書において「ブロックのインターフェイス」とも呼ばれる関連付けられたインターフェイスデータ要素のセットを少なくとも含むことを上記から思い出されたい。
【００５９】
［００６５］次に図３ｄを参照すると、図３ｃに示されるブロックデータ要素の代替的な表現が示されている。図３ｄの図示は、図３ｃには示されないブロックに関する追加情報を提供する。追加情報は、いわゆるブロックのインターフェイスに対するそのブロックの関係型の記述を含む。より具体的には、図３ｄは更に、矢印表記を用いて、ブロックが自身の「インターフェイスのセット」内のインターフェイスに対して関係型１又は２を有するかを表す。例えば、楕円インターフェイス１〜４から長方形ブロック７〜１０に向かう等、インターフェイスから離れる方向を指す矢印は、インターフェイスとブロックとの間の関係型２を表す。更なる例として、インターフェイス１はブロック７に対して関係型２を有する。ブロック７及び８からそれぞれインターフェイス５に向かう方向を指す矢印、及び、ブロック９及び１０からそれぞれインターフェイス６に向かう方向を指す矢印等、インターフェイスに向かう方向を指す矢印は、インターフェイスとブロックとの間の関係型１を表す。
【００６０】
［００６６］通常、ブロックとインターフェイスとの間の関係型１は、インターフェイス／ブロックペアのブロックがインターフェイスを介して提供される通信サービスのユーザ又は「要求者」である場合を定める。ブロックとインターフェイスとの間の関係型２は、ブロックがインターフェイスを介して提供される通信サービスの提供者又は実施者である場合を定める。図３ｄでは、ブロック１１は２つのインターフェイス５及び６に対して関係型２を有し、一方、ブロック７及び９はインターフェイス５及び６に対して関係型１を有する。ブロック１１は、２つのインターフェイス５と６との間のＩＰパケットルーティングを提供するサービスを表し得る（ブロック１１がこのサービスを提供する）。ブロック７及び９は、ルーティングされたＩＰパケットを介して互いと通信しなければならないソフトウェアモジュールであり得る。このように、ブロック７及び９はブロック１１によって提供されるサービスのユーザである。
【００６１】
［００６７］上記したように、「ブロックのインターフェイス」と「ブロック」との関係は、少なくとも２つの型、すなわち関係型１及び関係型２を含み得る。好ましい一実施形態において、関係型１及び２のみが使用される。他の実施形態は、関係型１及び２以外の更なる関係型又は関係亜型（サブタイプ）を定めてもよい。
【００６２】
［００６８］インターフェイスの使用に関する他のケースでは、２つのブロック間で共有されるインターフェイスは、システム内の同じプロトコル層で動作する２つのブロック間のクライアント−サーバ型関係をモデル化し得る。このクライアント−サーバ関係は、関係の一方でインターフェイスに対して関係型１を有し、他方でインターフェイスに対して関係型２を有するインターフェイスとしてモデル化され得る。かかるクライアント−サーバ関係の例は、図４に関連して以下でより詳細に説明される。
【００６３】
［００６９］他の実施形態では、ブロックとインターフェイスとの間の追加の関係、例えば関係型３及び４を用いてクライアントサーバ関係を示してもよい。他の実施形態では、クライアント−サーバ・ペアリングは、インターフェイスデータ要素とは異なる他の種類のデータ要素を導入することによってモデル化されてもよい。
【００６４】
［００７０］一部の実施形態では、ハードウェア又はソフトウェア制限を符号化するために、ブロックと具体的に選択されたインターフェイスとの間で関係型２を使用してもよい。他の実施形態では、ハードウェア又はソフトウェア制限を符号化するために、関係型２を使用する代わりに関係型５等の追加の関係型を使用してブロックと具体的に選択されたインターフェイスとの間の関係をモデル化してもよい。
【００６５】
［００７１］好ましい一実施形態において、ブロックデータ要素は更に、関連するインターフェイス及びその関係型の他に、何らかのメタデータを有する。例えば、人間が読み取り可能な（ヒューマンリーダブル）形式によって自身がモデル化するブロック又はシステム要素を表すメタデータである。ブロックに関連付けられた他のメタデータはパフォーマンスメトリクスの計算をサポートするために使用されてもよいし、又は接続設計モジュール５５０の出力を実世界の接続として認識することに貢献してもよい。
【００６６】
［００７２］次に、図３ｄに示すブロックのセットの異なる図を表す図３ｅを参照する。図３ｅでは、プロトコルスタック図のルック・アンド・フィールを模すために各インターフェイスは一度しか描かれていない。
【００６７】
接続設計モジュール入出力
［００７３］次に図６を参照すると、例えば図１及び図２に示されるように、１つ以上のドッキーと１つ以上のドッキングホスト間の１つ以上の実現可能な通信経路を如何に実現するかを示すために使用されるブロックデータ要素のセットを特定するための接続設計プロセスの実行に用いられる入力を２つ有する接続設計モジュール５５０が示される。
【００６８】
［００７４］好ましい一実施形態において、接続設計モジュール５５０はブロックデータ要素から構成される出力Ｔｘを計算する。出力は、対象の通信システム内のデバイスの能力及び制約を条件として、最適（又は近最適）且つ実現可能な１つ以上の実現可能な通信経路を確立する。１つ以上の実現可能な通信経路の確立は、Ｔｘのブロックによって表されるシステム要素を作動及び構成することを含む。
【００６９】
［００７５］上記の実施形態において、接続設計モジュール５５０は「Ａ」によって示される第１の入力及び「Ｂ」によって示される第２の入力の２つの入力を受信するよう示されている。第１の入力「Ａ」はペアとして提供されるインターフェイスデータ要素Ｍのセットを表し、各ペアは、接続設計モジュール５５０によって実現されるべき複数の設計通信経路のそれぞれの第１及び第２の端点を特定する。例えば、無線ドッキングの場合、接続設計モジュール５５０によって実現される通信経路は、ドッキー内のアプリケーションソフトウェアと、ドッキーがドッキングを望む無線ドッキング環境内に存在する全ての周辺機能とを接続する経路としてドッキングプロセス中に特定される。
【００７０】
［００７６］上記したように、接続設計モジュール５５０は設計接続経路の開始点及び終了点を知ることに基づいて通信経路を設計する。よって、インターフェイスデータ要素Ｍのペアはこれらの開始点及び終了点を表す。
【００７１】
［００７７］接続設計モジュール５５０に供給される第２の入力「Ｂ」は、通信システム内のあらゆる無線及び／又は有線通信媒体（例えば、WiFiネットワーク）の能力及び制約に加えて、通信システム内のデバイスの能力及び制約を表す。第２の入力「Ｂ」は、上記したようなブロックデータ要素のセットＢとして通信設計モジュール５５０に供給される。
【００７２】
［００７８］引き続き図６を参照して、「Ｃ」によって示される接続設計モジュール５５０の出力は、ブロックデータ要素のセットＴｘである。ここでＴｘは、通信システム内のデバイスの能力及び制約を表すセット「Ｂ」からのブロックデータ要素の入力セットのサブセット（部分集合）である。このセットＴｘは、第１の入力「Ａ」によって表される全ての端点ペア間の実現可能な候補通信経路のセットを作成する「接続プラン」を表す。この接続プランは、通信システム内の様々な端点間の実世界の接続を実現するために使用され得る。
【００７３】
［００７９］次に、交渉システムが接続設計モジュール５５０の出力Ｔｘを如何に使用して、接続設計モジュール５５０によって選択された設計通信経路を実現するために必要な接続を作成し得るかを検討することが有益である。上記したように、ブロックデータ要素の出力セットＴｘは入力セット「Ｂ」から得られ、ブロックデータ要素のセットＢのサブセットからなる。１つのブロックデータ要素は、任意で構成データと組み合わせられた通信システム内のシステム要素を表すことを思い出されたい。構成データは、特定のインターフェイス間を如何に接続するかを、ブロックデータ要素によって表されるシステム要素（例えば、ハードウェア又はソフトウェア通信システム要素）に具体的に指示する。言い換えれば、ブロックデータ要素は、通信システム内のデバイスに、如何にして通信システム内の他のシステム要素への接続を確立するかを指示する特定の情報を含む構成データを含む。
【００７４】
経路接続を作成するためのメタデータの使用
［００８０］好ましい実施形態では、構成データに加えて、各ブロックが設計接続の作成をサポートするための関連付けられたメタデータを有する。このメタデータは、ブロックによって表される通信システム内の実際のシステム要素を作動するためにシステムが取らなければならない動作を表す。
【００７５】
［００８１］図４は、システムが実際の通信経路を作成するための複数のブロックデータ要素４０１〜４０５から構成される接続設計モジュール５５０の出力Ｔｘ４００の例を示す。図４において、５つのブロックデータ要素４０１〜４０５が関連するインターフェイスデータ要素４５１〜４５６とともに示されており、図３ｄ及び図３ｅに示される方式にしたがって、矢印はインターフェイスデータ要素とブロックデータ要素との間の関係型１及び２を示している。Ｔｘのこれらの５つのブロックデータ要素４０１〜４０５は全体として、ドッキー４２０のドッキーアプリケーションソフトウェア４２２と関連付けられた入力「Ａ」のセット「Ｍ」からの第１の端点５０２から、ドッキングホスト４２１のスクリーンハードウェア「Ｓｍａｉｎ」４２３（周辺デバイス）と関連付けられた入力「Ａ」のセット「Ｍ」からの第２の端点５０４へのデータフローを表す単一の通信経路を作成するためのプランを構成する。また、この単一の通信経路は、図２において通信経路５００としても示されている。
【００７６】
［００８２］５つのデータ要素Ｔｘ４０１〜４０５は、通信システム内の様々なシステム要素を表す。各ブロックデータ要素Ｔｘ４０１〜４０５を以下により詳細に説明する。
【００７７】
［００８３］ブロック４０１は、ＩＰ接続を介して画面内容（例えば、画面内容更新）を送信可能なドッキー４２０内のデバイスドライバ４１１を表す。ブロック４０１は、３つの関連付けられたインターフェイスデータ要素４５１、４５３、及び４５７を有する。第１のインターフェイスデータ要素４５１は、ドッキー内で動作するアプリケーションソフトウェアによって作成されたスクリーン「Ｓｍａｉｎ」４２３（メインスクリーン）用の画面内容更新を取得するためのオペレーティングシステムインターフェイス４６１を表す。第２のインターフェイスデータ要素４５３は、ＩＰ接続を実施するドッキーサブシステムへのインターフェイス４６３を表す。ブロック４０１をブロックデータ要素４０２に接続する第３のインターフェイスデータ要素４５７は、ドッキー内のシステム要素４１１とドッキングホスト「ｂ」内の４１２との間のクライアント−サーバ関係を表す。
【００７８】
［００８４］ブロック４０１は、ドッキー内の無線ドッキングソフトウェアによって実行可能なデバイスドライバ４１１を作成するためのメタデータをコンピュータ読み取り可能命令の形式で更に含む。メタデータは、インターフェイス４６１に接続して「Ｓｍａｉｎ」４２３用の画面更新を取得するようこのデバイスドライバを構成するために用いられる。メタデータは更に、ＩＰネットワークを介してドッキングホスト４２１内のデバイスドライバ４１２に接続するようドライバ４１１を構成する。このデバイスドライバは、自身が「Ｓｍａｉｎ」４２３に関連付けられていることを明かす。接続設計モジュール５５０がドッキー自身の内に位置していない場合に、命令をネットワーク接続を介してドッキーソフトウェアに送信できるよう、メタデータ命令は例えばＸＭＬ言語を用いてＡＳＣＩＩ文字列によって表現されても良い。
【００７９】
［００８５］ブロックデータ要素４０２は、ＩＰ接続を介して画面内容更新を受信して現実のスクリーンデバイスに適用するドッキングホスト４２１内のデバイスドライバ４１２を表す。
【００８０】
［００８６］ブロック４０２のメタデータは、ドッキングホスト４２１内の無線ドッキングソフトウェアによって実行可能なコンピュータ読み取り可能命令であって、上記のタイプのデバイスドライバ４１２を作成し、ドッキングホスト内のオペレーティングシステムの規定に従って現実のスクリーン「Ｓｍａｉｎ」４２３へのインターフェイス４６２に接続するようデバイスドライバ４１２を構成し、更に、ドッキー４２０内のデバイスドライバ４１１が「Ｓｍａｉｎ」４２３と関連付けられたデバイスドライバに接続することを要求したとき、デバイスドライバ４１１からＩＰネットワークを介して接続要求を受け入れるよう構成するための命令を含む。
【００８１】
［００８７］上記メタデータ命令は必須であるが、必要な通信経路を確立するために十分ではない。ブロックデータ要素４０１及び４０２に関連して上述した２つのデバイスドライバ４１１及び４１２は、ドッキー４２０とドッキングホスト４２１との間にＩＰ接続が確立され得る高速無線ネットワーク接続が存在すると仮定する。しかし、無線ドッキングにおいて、かかる高速無線接続は通常初めからは存在せず、高速無線接続（典型的にはWiFi Direct接続）も接続設計モジュール５５０によって設計されなければならない。図４のＴｘ内の残りのブロックデータ要素４０３、４０４、及び４０５は、接続設計モジュール５５０によって設計されたドッキー４２０とドッキングホスト４２１との間の高速ネットワーク接続の作成に関与するシステム要素を表す。
【００８２】
［００８８］ブロックデータ要素４０３は、５ＧＨｚチャネル上で８０２．１１ｎモードで動作するよう構成され、更にドッキングホスト４２１内のインターフェイスハードウェア４１４によって提供されるWiFi Directネットワーク４１５に接続するよう構成される、ドッキー４２０内のWiFiネットワークインターフェイスハードウェア４１３を表す。
【００８３】
［００８９］ブロック４０３のメタデータは、ドッキー内の無線ドッキングソフトウェアによって実行可能なコンピュータ読み取り可能命令であって、特定されたWiFiネットワークハードウェア４１３を作動し、上記モードで動作するよう構成し、更にWiFi Directネットワーク４１５を介してドッキングホスト４２１に接続するよう構成するための命令を含む。
【００８４】
［００９０］ブロックデータ要素４０４は、WiFi Directネットワーク４１５を作成し、ドッキーからの接続を受け入れるよう構成されたドッキングホスト４２１内の対応するWiFiハードウェア４１４を表す。ブロックデータ要素４０４は、４１４をこのように構成するべくドッキングホスト４２１によって実行されるコンピュータ読み取り可能命令を含む。
【００８５】
［００９１］ブロックデータ要素４０５は、２つのWiFiインターフェイス間で無線パケットを伝送可能な５ＧＨｚ帯内のWiFiスペクトルを表す。接続設計モジュール５５０の入力内にこのブロックが存在することは、ドッキー４２０及びドッキングホスト４２１が互いに５ＧＨｚWiFi範囲内にあることを示す。既にスペクトルが存在し、ネットワーク４１５をサポートするために作成、作動、又は構成される必要がないので、このブロックはコンピュータ読み取り可能命令を含むメタデータを有さない。
【００８６】
［００９２］接続設計モジュール５５０によって通信経路を作成するための方法は、Ｔｘ内に別々に表されている各通信経路に依存しないことを理解されたい。むしろ、ブロックメタデータ内の全ての命令の実行は、必要であれば実行プロセスがブロック単位で行われる一方で複数の通信経路を全て作成させる。
【００８７】
［００９３］一部の実施形態では、システム要素を構成するための命令の一部又は全てがメタデータ内に含まれず、何らかの自動プロセスを経てインターフェイス名から全て又は部分的に得られる。
【００８８】
［００９４］一部の実施形態では、異なるブロックのメタデータ内の命令をシステムに特定の順番で実行させるメタデータを各ブロック内に含めることが有利な場合がある。例えば、整数値「インスタンス化の順番」メタデータ要素が各ブロックに符号化されてもよく、インスタンス化の順番が最も低いブロックの命令が最初に実行されるようデバイス内のソフトウェアを構成してもよい。
【００８９】
［００９５］引き続き図４を参照して、インスタンス化の例示的な順番は、ブロック４０４の後にブロック４０３、次にブロック４０２、次にブロック４０１でもよい。このインスタンス化の順番は、対応するシステム要素と接続を開始しなければならないシステム要素が、通常、相手が接続を受け入れる状態にあることを見つけることを保証する。かかる例示的なインスタンス化の順番の最適化は有益であり得るが、最初に接続確立に失敗しても再試行するようシステム要素が構成されていれば、不可欠ではない。
【００９０】
接続設計詳細
［００９６］上記したように、接続設計モジュール５５０は、端点ペアのセットＭを表す第１の入力（図６ではＡによって示される）と、ブロックデータ要素のセットＢを表す第２の入力（図６ではＢによって示される）とを含む各入力から、「接続プラン」としてセットＴｘを含む、図６ではＣによって示される出力を作成する。接続設計モジュール５５０の出力Ｔｘは常に入力Ｂの部分集合であり、ここでＢは、全体としてシステムの全能力及び制約を表す全ての利用可能なブロックのセットである。接続プランＴｘは実現可能であるためにはいくらかの制約を満たさなければならず、よってＢの部分集合を表す。それぞれのメタデータ内のコンピュータ読み取り可能命令に従って「作動された」際にＴｘを構成するブロックデータ要素は、入力Ａ、すなわち端点ペアのセットＭによって定められた通信経路端点間の通信経路のセット内の中間セグメントの全てを実際に作成しなければならない。他の制約を満たすことに加えて、Ｔｘ内の全ブロックの一斉の作動が実現可能であるべきであり、ここでは相互排他的な特定のシステム要素の構成を表してはならないＴｘ内の２つのブロックとして定義される。
【００９１】
［００９７］接続設計は、一側面において、複数の基準を最適に満たす本明細書において実現可能な接続プランＴｘと呼ばれるブロックデータ要素のサブセットＢを見つけるために、ブロックデータ要素のセット（入力Ｂ）の様々な候補サブセットを探索するサーチプロセスとして考えることができる。接続プランＴｘが実現可能か否かを判定するべく接続設計モジュール５５０がこれらの基準をテストするためには、基準は表現ブロック、関連インターフェイスデータ要素及びメタデータに関して計算可能でなければならない。
【００９２】
［００９８］好ましい一実施形態では、接続設計モジュール５５０は４つの基準を用いて、特定のブロックのサブセットから構成される実現可能な接続プランＴｘを入力セットＢから特定する。他の実施形態はより多くの又は少ない様々な基準を使用してもよい。
【００９３】
第１の基準
［００９９］実現可能な接続プランＴｘを特定するために、満たされるべき第１の基準は、入力「Ａ」（端点ペアのセット「Ｍ」）内に含まれている、又は、検討されている出力セット「Ｔｘ」内の少なくとも１つのブロックデータ要素に対して関係型１を有するインターフェイスデータ要素を特定することと、更に、特定された各インターフェイスデータ要素が「Ｔｘ」の少なくとも１つのブロックデータ要素に対して関係型２を有することを判定することとを含む。
【００９４】
第２の基準
［００１００］満たされるべき第２の基準は、「Ｔｘ」内のいずれかの特定のブロックデータ要素が特定のインターフェイスデータ要素に対して関係型２を有するか否かをまず特定し、この特定が満たされた場合、特定されたブロックデータ要素が、当該特定のインターフェイスデータ要素に対して関係型２を有する「Ｔｘ」内の唯一のブロックデータ要素であるか否かを判定することを含む。
【００９５】
第３の基準
［００１０１］第３の基準を満たすことは、「Ｔｘ」から１つ以上のブロックを取り除いても依然として第１の基準を満たす「Ｔｘ−」を生じることが不可能であると決定することを含む。
【００９６】
［００１０２］一部の実施形態では第３の基準を省略してもよい。第３の基準は、余分なブロック、すなわち、第１の入力に基づいて通信経路を実現する上で含まれる必要がないブロックを含むＴｘを接続設計部が出力するという状況を阻止する。余分なブロックの例は、ネットワークインターフェイスの余分な構成、例えば通信経路を確立するために送信する必要が全くない場所にインターフェイスがパケットを送信することを可能にする構成等を表すブロックであろう。
【００９７】
第４の基準
［００１０３］第４の基準は、最高のパフォーマンスメトリックを備える最適な接続プランの選択に関する。第４の基準は、２つの方法のうちのどちらかで実現され得る。
【００９８】
［００１０４］第４の基準を実施する１つの方法は、第１〜第３の基準を満たすＢの全てのサブセット「Ｔ１，Ｔ２，．．．Ｔｎ」から「Ｔｘ」が最高のパフォーマンスメトリックを有するものであることを決定することを含み、ここで、あるセットのパフォーマンスメトリックは、そのセット内のブロックに符号化されたメタデータ情報に部分的に基づいて計算される。
【００９９】
［００１０５］第４の基準を実施する他の方法は、それまでに接続設計部によって検討されてきた第１〜第３の基準を満たすＢのサブセット「Ｔ１，Ｔ２，．．．Ｔｎ」のうち、「Ｔｘ」が最高のパフォーマンスメトリックを有するものであることを決定することを含み、ここで、あるセットのパフォーマンスメトリックは、そのセット内のブロックに符号化されたメタデータ情報に部分的に基づいて計算される。
【０１００】
［００１０６］第４の基準は、使用されたパフォーマンスメトリックに従って、実現される接続プランのパフォーマンスを最適化する最適なＴｘが求められることを保証する。好ましい一実施形態では、上記実施方法のいずれのパフォーマンスメトリックも、Ｔｘ内のブロックに付されたメタデータを用いることによって計算される。パフォーマンスメトリックのより完全な議論が必要な場合は、参照によりその全体が本明細書に組み込まれる仮出願第６１／６０７，１１４号のセクション２２を参照されたい。
【０１０１】
［００１０７］第４の基準の第１の実施によれば、最適なＴｘの発見が保証される。第４の基準の第２の実施によれば、通常、第１のバージョンより少ない時間で近最適なＴｘを求めることができる。
【０１０２】
［００１０８］入力セットＢに関して、接続設計部によって検討されなければならない可能性がある可能なサブセットＴｘの数は、２Ｓｉｚｅ＿ｏｆ＿Ｂのように指数関数的に成長することに留意されたい。当業者は、上記４つの基準を満たすＴｘを発見する計算（第４の基準の第１のバージョンを使用）はＮＰ完全問題のクラスに含まれることを認識するであろう。ＮＰ完全問題の取り扱いに係わる専門家には周知であるように、問題サイズが、適度な計算時間内に保証された最適ソリューションＴｘを求めることができない程度に大きい場合、実現可能な現実的ソリューションを特定するために基準を緩和してもよい。例えば、第４の基準の第２のバージョンは第１のバージョンを緩和したものであり、接続設計部がサーチを適度な時間で終えることを可能にする。
【０１０３】
プロトタイプアルゴリズム実施
［００１０９］プロトタイプの実施において、接続設計モジュール５５０はまず第１〜第３の基準を満たす全てのセットＴ１，Ｔ２，．．．Ｔｎを生成し、その後第４の基準の実施の第１のバージョンを適用して実現可能且つ最適な接続プランＴｘを選択する。
【０１０４】
［００１１０］全てのセットＴ１，Ｔ２，．．．Ｔｎを生成するために、空のセットから始めて、再帰的にブロックを追加することによってＢの（潜在的に）全てのサブセットに訪れる再帰的（バックトラッキング）アルゴリズムが使用された。例えば、既存のブロックのセットＥにおいて「欠けている」インターフェイスＩに対して関係型２をブロックＸが有する場合、この繰り返しにおいて再帰的ステップが実行された後にＥ＋Ｘが依然として基準２を満たすときのみ、ブロックＸはＥに再帰的に加えられる。Ｍ内にＩが存在する、又はインターフェイスＩに対して関係型１を有するブロックがＥ内に存在するにも関わらず、インターフェイスＩに対して関係型２を有するブロックがＹ内に未だ存在しない場合、ＥにおいてインターフェイスＩが「欠けている」と判定される。得られたセットＥ＋Ｘが基準１を満たす場合（すなわち「欠けている」インターフェイスがもう無い場合）、このセットがセットＴ１，Ｔ２，．．．Ｔｎに加えられ、Ｅ＋Ｘに対して更なる再帰は実行されない。この更なる再帰の省略は、Ｔ１，Ｔ２，．．．Ｔｎ内の各セットによって基準３が自動的に満たされることを意味する。
【０１０５】
［００１１１］上記のプロトタイプの実施は、本発明に係るＮＰ完全問題を解く又は近似するための多数の周知のアルゴリズム実施方法から選択され得るたった１つのアルゴリズム実施方法であることを理解されたい。
【０１０６】
接続設計部入力及び入力の第４の基準との関係
［００１１２］通信システム内の２つの対応する隣接システム要素４１１及び４１３をそれぞれ表す交渉システムの２つのブロックデータ要素４０１及び４０３を示す図４を再び参照する。ブロックデータ要素４０１及び４０３はともに、２つの通信システム要素４１１と４１３との間の実世界の接続４６３を表すインターフェイスデータ要素４５３に関係する。上記したように、接続設計モジュールへの１つの入力Ｂとして供給されるブロックのための準備として、使用前の準備的符号化段階中にブロックを符号化するとき、特定のブロック、例えばブロック４０３が接続４６３を介してアクセスされるサービスを実施するシステム要素を表す場合、ブロック４０３とブロック４５３との間の関係は関係型２として定められる。他のブロック、例えばブロック４０１が接続４６３を介してアクセスされるサービスを利用するシステム要素を表す場合、ブロック４０１とブロック４５３との間の関係は関係型１として定められる。
【０１０７】
［００１１３］サブセットＴｘが実現可能であることを宣言するために、接続設計モジュールへの第１及び第２の入力に基づくブロックデータ要素のセットＢのサブセットＴｘによって満たされなければならない第１の基準の適用は、サービスを利用するシステム要素を表すブロックが存在する場合、そのサービスを提供するシステム要素を表す対応するブロックが必ず存在しなければならないことを要求する。Ｔｘの要素であるブロック４０１はサービスを利用する。したがって、第１の基準を満たすためには、ブロック４０１に対してそのサービスを提供又は実行するために、インターフェイス４５３に必要な関係型２を供給するために、Ｔｘ内にブロック４０３が存在しなければならない。すなわち、ブロック４０３は、インターフェイスによって表されるシステム機能を提供又は実行する。
【０１０８】
［００１１４］また、第１の基準は、接続設計モジュールへの入力の１つである入力セットＭ内に存在するインターフェイスの全てがＴｘ内のブロックによって規定されなければならないことも保証する。接続設計モジュールが正しく機能するためには、能力及び制約を入力セットＢを構成するブロック内に符号化するためのガイドラインを使用しなければならない。言い換えると、セットＢからのブロックによって表されるシステム要素が機能するためにＢ内の他のシステム要素のインターフェイスを介して提供される付加的なサービスを必要とする場合、これらの付加的なサービスは必ずブロックの１型インターフェイスとして符号化されなければならない。かかるサービスを提供するブロックはそれらを２型インターフェイスとして符号化しなければならない。
【０１０９】
［００１１５］通信システム内の隣接しないシステム要素を表すブロック間のクライアント−サーバ関係を表すインターフェイスについては、第１の基準は、第１の基準を満たして出力される接続プラン内の全てのクライアントに対してサーバが存在することを保証できる。これを保証するためには、能力及び制約をブロック内に符号化するためのガイドラインを使用しなければならない。このガイドラインは、２つのブロックによって表されるシステム要素間にクライアント−サーバ関係が存在する場合は常に、これらのブロックを入力Ｂ内に符号化するとき、両ブロック間にこの関係を表すインターフェイスデータ要素を配置すべきであり、インターフェイスとブロックの一方との間に関係型１が、インターフェイスと他方のブロックとの間に関係型２が配置されるべきである。
【０１１０】
［００１１６］第２の基準は、接続設計モジュール５５０によって出力される通信経路が明確であることを保証する。この第２の基準は、単一の特定のインターフェイスが単一のブロックによってのみ実装又は提供され、クライアントが接続するサーバは１つしか存在しないことを保証する。第２の基準が省略された場合、いくらかの不明確さ、特にシステム要素に特定の相手に接続するよう伝える構成情報における不明確さを取り除くために、接続設計モジュール５５０の出力であるＴｘに後処理工程を実行しなければならない可能性がある。
【０１１１】
［００１１７］第２の基準の実施は、ブロックデータ要素の作成者により、システム能力だけでなく制約も符号化するために活用され得るという点で更なる利点を有する。ブロックは、特定の構成データが適用されたシステム要素を表し得ることを思い出されたい。システム要素を構成するための２つの相互排他的方法が存在する場合、好ましいアプローチは、システム要素の相互排他的構成を表すために１つではなく２つのブロックデータ要素を作成してシステム要素を表すことであり、これにより両ブロックデータ要素が単一の所与のインターフェイスに対して関係型２を有する。ブロックデータ要素の作成者はその後、接続設計モジュールが第２の基準を適用することを期待して、異なる構成を有する２つのブロックデータ要素を入力Ｂ内に配置する。両ブロックデータ要素を含めるとＴｘは第２の基準を満たさないので、接続設計モジュール５５０が同じ出力接続プランＴｘ内に両ブロックデータ要素を効率的に避けることが期待できる。
【０１１２】
［００１１８］制約を符号化するために用いられる２型インターフェイスは必ずしも入力セットＭ内に生じるインターフェイス、又は任意の他のブロック内の関係型１インターフェイスとして生じるインターフェイスである必要はない。この例としては、参照によりその全体が本明細書に組み込まれる仮出願第６１／６０７，１１４号のセクション２０を参照されたい。
【０１１３】
［００１１９］ブロックに関してシステム制約の符号化を容易にする実現可能な方法は第２の基準だけではないことに留意されたい。本発明は代替的な手段も考慮する。例えば、第３の型のインターフェイス、例えば３型インターフェイスを改変された第２の基準と共に導入してもよく、改変された第２の基準は２型インターフェイスの代わりに３型インターフェイスの一意性を見て、全てのインターフェイスに関して、インターフェイスに対してＴｘ内の単一のブロックのみが関係型３を有し得るようにする。
【０１１４】
［００１２０］一実施形態では、接続設計モジュール５５０は第２の基準を省略し、代わりに可能な限り多くの余分なブランチを有する通信経路のセットを計算してもよい。ここで、接続を確立するための２つの択一的選択肢の形態で余分なブランチを含む任意の出力Ｔｘソリューションは、最初に経路が実現されるときは一方の好ましいブランチに沿う選択を行うが、最初のブランチ沿いに通信不良が生じると他方のブランチに切り替えるアルゴリズムを使用することにより解決される。この実装形態では、接続設計モジュール５５０は第２の基準を用いず、異なる基準に置き換えてシステム制約の符号化を可能にする。
【０１１５】
［００１２１］好ましい実施形態において、インターフェイスはＡＳＣＩＩ文字列として表され、上記で概説した基準１〜４は決定を下すために、ＡＳＣＩＩ文字列間で等価性試験、及び、関係型１及び２の試験を行う。等価性試験の代わりに、インターフェイス名間での緩和された等価性試験、例えば「マッチング」試験を行ってもよいことを理解されたい。例えば、使用され得るマッチング試験の一例は、大文字／小文字を無視するＡＳＣＩＩ文字列マッチング試験である。一部の実施形態では、関係型１及び２等のインターフェイス関係型をインターフェイス名内に符号化して、マッチング規則及び基準を対応させて改変してもよい。
【０１１６】
［００１２２］ブロック及びインターフェイスを使用する本発明の符号化システムは、ユーザに高度に非制限的な自由を与える。本発明は、デバイスの能力及び制約が如何にブロック内に符号化されるべきかを表す厳密な記述（表現）が提供されることを要さない。この非厳密さは、例えば参照により全体として本明細書に組み込まれる仮出願第６１／６０７，１１４号のセクション２６に開示されるように、新たな符号化を追加できる非制限的符号化方式を用いることにより、システムを新タイプの革新的なシステムアーキテクチャに対応可能にするという点で強みを構成する。よく知られたタイプのシステム要素に対してブロックデータ要素及び関連付けられたインターフェイスデータ要素を符号化するのに適した具体的な符号化方式は、参照により全体として本明細書に組み込まれる仮出願第６１／６０７，１１４号のセクション１７〜１９に開示されている。
【０１１７】
［００１２３］「デバイスドライバ」及び「ネットワークインターフェイス」等の従来のシステムアーキテクチャ概念は、バウンダリが良く理解されたオペレーティングシステムインターフェイス及び／又はプロトコルスタックレイヤーバウンダリであるので、システム要素及びブロック内に適切にマッピングされる。単一のデバイス内の通常のシステムアーキテクチャバウンダリからの逸脱も、他のデバイスの能力及び制約を表すブロックが如何に符号化されるかに影響することなく、柔軟に符号化できる。
【０１１８】
［００１２４］従来のインターフェイスのオーバーロード、例えば、ＨＤＭＩ（登録商標）及びＵＳＢタイプ機能をサポートするＷｉＧｉｇ結合において想定されるような、例えば専用デバイスドライバに何らかの追加のリアルタイムパフォーマンス保証も提供するＩＰパケット配信インターフェイスの使用も符号化することができる。これは、仮出願第６１／６０７，１１４号のセクション１８内で説明されている。
【０１１９】
［００１２５］本発明の新規の特徴の１つは、デバイス間の無線媒体の能力がブロックによって表される態様に関する。より詳細な議論については、仮出願第６１／６０７，１１４号のセクション１８を参照されたい。
【０１２０】
［００１２６］図７は、コンピュータシステム７００の形態を取るマシンの例示的且つ図的な表現を表し、命令のセットが実行されると、マシンは上記方法の任意の１つ以上を実行し得る。一部の実施形態では、マシンはスタンドアロンデバイスとして動作する。一部の実施形態では、マシンは他のマシンと（ネットワークを用いて）接続され得る。ネットワーク化された配置では、マシンは、サーバ−クライアントユーザネットワーク環境内のサーバ又はクライアントユーザマシンの容量内で、又は、peer-to-peer（又は分散）ネットワーク環境内のピアマシンとして動作し得る。
【０１２１】
［００１２７］マシンは、サーバコンピュータ、クライアントユーザコンピュータ、パソコン（ＰＣ）、タブレットＰＣ、ラップトップコンピュータ、デスクトップコンピュータ、コントロールシステム、ネットワークルータ、スイッチ若しくはブリッジ、携帯情報端末（ＰＤＡ：personal digital assistant）、スマートフォン、ハンドヘルドＰＣ、携帯電話、ＭＰ３プレイヤー、又はマシンによって実行されるべき動作を特定する（連続的又は他の）命令のセットを実行可能な任意のマシンを含み得る。本開示のデバイスは、音声、映像、又はデータ通信を提供するあらゆる電子デバイスを幅広く含むと理解されたい。更に、単一のマシンが描かれているが、用語「マシン」は、本明細書で開示される技法の任意の１つ以上を実行するために命令のセット（又は複数のセット）を個別に又は共同で実行する任意のマシンの集合も含むと解されるべきである。  
【０１２２】
［００１２８］コンピュータシステム７００は、バス７０８を介して互いと通信するプロセッサ７０２（例えば、中央処理装置（ＣＰＵ：central processing unit）、グラフィックス処理ユニット（ＧＰＵ：graphics processing unit）又は両方）、メインメモリ７０４、及びスタティックメモリ７０６を含んでもよい。コンピュータシステム７００は、更に、ビデオ表示ユニット７１０（例えば、ＬＣＤ：liquid crystal display、フラットパネル、固体ディスプレイ、及びブラウン管（ＣＲＴ：cathode ray tube）等）を含んでもよい。コンピュータシステム７００は、入力デバイス７１２（キーボード等）、カーソル制御デバイス７１４（マウス等）、ディスクドライブユニット７１６、信号生成デバイス７１８（スピーカー又はリモコン）、及びネットワークインターフェイスデバイス７２０を含んでもよい。  
【０１２３】
［００１２９］ディスクドライブユニット７１６は、上記方法を含む本明細書に記載の技法及び機能の任意の１つ以上を具現化する命令の１つ以上のセット（ソフトウェア７２４等）が記憶されるコンピュータ読み取り可能媒体７２２を含み得る。命令７２４は、コンピュータシステム７００による実行中、メインメモリ７０４、スタティックメモリ７０６、及び／又はプロセッサ７０２内に完全に又は少なくとも部分的に存在してもよい。また、メインメモリ７０４及びプロセッサ７０２がコンピュータ読み取り可能媒体を構成してもよい。命令のセット（ソフトウェア７２４等）は、コンピュータシステム７００による実行中、メインメモリ７０４、スタティックメモリ７０６、及び／又はプロセッサ７０２内に完全に又は少なくとも部分的に存在してもよい。また、メインメモリ７０４及びプロセッサ７０２がコンピュータ読み取り可能媒体を構成してもよい。
【０１２４】
［００１３０］専用ハードウェア実装は、限定はされないが、特定用途向け集積回路、プログラマブル論理アレイを含み、また、本明細書に記載される方法を実施するために他のハードウェアデバイスが同様に構成されてもよい。様々な実施形態の装置及びシステムを含み得る適用例は、様々な電子及びコンピュータシステムを幅広く含む。一部の実施形態は、相互接続された複数の特定のハードウェアモジュール又はデバイスにモジュール間で又はモジュールを介して通信される関連する制御及びデータ信号を用いることにより、又は特定用途向け集積回路の一部として機能を実装する。したがって、例示的なシステムはソフトウェア、ファームウェア、及びハードウェア実装に適用可能である。
【０１２５】
［００１３１］本開示の多様な実施形態によれば、本明細書に記載される方法は、コンピュータプロセッサ上で動作するソフトウェアプログラムとしての動作を意図する。更に、ソフトウェア実装は、限定はされないが、分散処理又は要素／オブジェクト分散処理、並列処理を含み得り、又は、仮想マシン処理が本明細書に記載される方法を実施してもよい。
【０１２６】
［００１３２］本開示は、命令７２４を含むか、又はネットワーク環境７２６に接続されたデバイスが命令７２４を用いて音声、映像、又はデータを送受信し、ネットワーク７２６を介して通信できるよう、伝搬信号から命令７２４を受信して実行するマシン読み取り可能媒体を考慮する。命令７２４は、更に、ネットワークインターフェイスデバイス７２０を介してネットワーク７２６上で送受信され得る。
【０１２７】
［００１３３］例示的な一実施形態においてコンピュータ読み取り可能媒体７２２は単一の媒体として示されているが、用語「コンピュータ読み取り可能媒体」は、命令の１つ以上のセットを記憶する単一の媒体又は複数の媒体（中央化又は分散化データベース、並びに／又は関連付けられたキャッシュ及びサーバ等）を含むと解されるべきである。また、用語「コンピュータ読み取り可能媒体」は、マシンにより実行され、マシンに本開示の技法の任意の１つ以上を実行させる命令のセットを記憶、符号化、又は輸送可能な任意の媒体を含むと解されるべきである。
【０１２８】
［００１３４］したがって、用語「コンピュータ読み取り可能媒体」は、限定はされないが、１つ以上の読み取り専用（不揮発性）メモリ、ランダムアクセスメモリ、若しくは他の書き換え可能（揮発性）メモリを収容するメモリカード若しくは他のパッケージ等の固体メモリ、及び／又はディスク若しくはテープ等の光磁気若しくは光媒体を含むと解されるべきであり、また電子メールの添付デジタルファイル、又は他の自己完結型情報アーカイブ若しくはアーカイブのセットも実体の記憶媒体と等価な配信媒体として考えられる。したがって、本開示は、本明細書に挙げられるコンピュータ読み取り可能媒体又は分散システムの任意の１つ以上を含み、更に、当業者によって認識される均等物、及び本明細書のソフトウェア実装が記憶される継承媒体を含むと考えられる。
【０１２９】
［００１３５］本明細書は実施形態において実装される構成要素及び機能を特定の基準及びプロトコルと関連して説明するが、本開示はかかる基準及びプロトコルに限定されない。インターネット及び他のパケット交換ネットワーク送信（ＴＣＰ／ＩＰ、ＵＤＰ／ＩＰ、ＨＴＭＬ、ＨＴＴＰ等）の各基準は、従来技術の典型例である。かかる基準は、実質的に同じ機能を有するより速い又は効率的な均等物によって周期的に取って代わられる。したがって、同じ機能を有する基準及びプロトコルの置換は均等物として考えられる。
【０１３０】
［００１３６］本明細書に記載される実施形態の説明は様々な実施形態の概略的な理解を提供することを意図しており、本明細書に記載される構造を利用し得る装置及びシステムの全ての要素及び特徴の完全な説明を果たすことを意図していない。上記記載を検討すれば、当業者には多数の他の実施形態が明らかになるであろう。他の実施形態は、本開示の範囲から逸脱することなく構造的及び論理的置換及び変更が行われ得るよう、上記記載の検討から利用及び導出され得る。図面は単純に表現的であり、縮尺通りには描かれていない。一部の比率が誇張される一方、他の比率が最小化されてもよい。したがって、明細書及び図面は制限的ではなく説明的な意味で捉えられるべきである。
【０１３１】
［００１３７］本明細書において、本発明の主題のかかる実施形態は単に便宜上の理由で、個別に及び／又はまとめて用語「発明」によって称され得り、いくつかの発明又は発明的概念が実際に開示されていたとしても、本願の範囲をいずれの１つに自発的に限定することを意図しない。したがって、本明細書において特定の実施形態が図示及び記載されているが、同じ目的を達成するよう意図された任意の構成が提示されている特定の実施形態に代わり得ると理解されたい。本開示は多様な実施形態のあらゆる適合例又は変更例を含むものとする。上記記載を当業者が検討すれば、上記実施形態及び本明細書に具体的に記されていない他の実施形態の組み合わせが明らかになるであろう。
【０１３２】
［００１３８］本発明の実施にあたり、図面、開示、及び添付の特許請求の範囲を分析することにより、当業者は開示の実施形態の他の変形例を理解及び実行できる。請求項において、用語「含む（又は備える若しくは有する）」は他の要素又はステップを除外せず、また要素は複数を除外しない。単一のプロセッサ又は他のユニットが請求項内に列挙される複数の項目の機能を果たし得る。いくつかの手段が互いに異なる従属請求項内に記載されているからといって、これらの手段の組み合わせを好適に用いることができないとは限らない。
【図３ａ】
2015519766.tif 000003
【図３ｂ】
2015519766.tif 000004
【図３ｃ】
2015519766.tif 000005
【図３ｄ】
2015519766.tif 000006
【図３ｅ】
2015519766.tif 000007
【図１】
2015519766.tif 000008
【図２】
2015519766.tif 000009
【図４】
2015519766.tif 000010
【図５ａ】
2015519766.tif 000011
【図５ｂ】
2015519766.tif 000012
【図６】
2015519766.tif 000013
【図７】
2015519766.tif 000014
【国際調査報告】
2015519766.tif 000015
2015519766.tif 000016
2015519766.tif 000017