本明細書に添付される図面は、本発明に関する理解を提供するためのもので、本発明の様々な実施の形態を示し、明細書の記載と共に本発明の原理を説明するためのものである。
以下、本発明の好適な実施形態を、添付の図面を参照して詳細に説明する。添付の図面と共に以下に開示される詳細な説明は、本発明の例示的な実施形態を説明するためのもので、本発明を実施できる唯一の実施形態を示すものではない。以下の詳細な説明は、本発明の完全な理解を提供するために具体的な細部事項を含む。しかし、当業者には、本発明がそれらの具体的な細部事項なしにも実施可能であるということが理解される。
以下の実施例は、本発明の構成要素及び特徴を所定の形態で結合したものである。各構成要素又は特徴は、特別の言及がない限り、選択的なものとして考慮することができる。各構成要素又は特徴は、他の構成要素や特徴と結合されない形態で実施可能である。また、一部の構成要素及び/又は特徴を結合して本発明の実施例を構成してもよい。本発明の実施例で説明される動作の順序は変更可能である。ある実施例の一部の構成や特徴は、別の実施例に含まれてもよく、別の実施例の対応する構成又は特徴に取り替えられてもよい。
以下の説明で使用される特定用語は、本発明の理解を助けるために提供されたもので、これらの特定用語の使用は、本発明の技術的思想から逸脱しない範囲で他の形態に変更可能である。
場合によっては、本発明の概念が曖昧になることを避けるために、公知の構造及び装置を省略したり、各構造及び装置の核心機能を中心にしたブロック図の形式で図示することができる。また、本明細書全体にわたって同一の構成要素には同一の図面符号を付して説明する。
本発明の実施例は、無線アクセスシステムであるIEEE 802システム、3GPPシステム、3GPP LTE及びLTE―A(LTE―Advanced)システム、並びに3GPP2システムのうち少なくとも1つに開示された標準文書によって裏付けることができる。すなわち、本発明の実施例において、本発明の技術的思想を明確にするために説明を省いた段階又は部分は、上記の文書によって裏付けることができる。また、本文書で開示している用語はいずれも上記の標準文書によって説明することができる。
以下の技術は、CDMA(Code Division Multiple Access)、FDMA(Frequency Division Multiple Access)、TDMA(Time Division Multiple Access)、OFDMA(Orthogonal Frequency Division Multiple Access)、SC―FDMA(Single Carrier Frequency Division Multiple Access)などのような様々な無線アクセスシステムに用いることができる。CDMAは、UTRA(Universal Terrestrial Radio Access)やCDMA2000のような無線技術(radio technology)によって具現することができる。TDMAは、GSM(Global System for Mobile communications)/GPRS(General Packet Radio Service)/EDGE(Enhanced Data Rates for GSM Evolution)のような無線技術によって具現することができる。OFDMAは、IEEE 802.11(Wi―Fi)、IEEE 802.16(WiMAX)、IEEE 802―20、E―UTRA(Evolved UTRA)などのような無線技術によって具現することができる。明確性のために、以下ではIEEE 802.11システムを中心に説明するが、本発明の技術的思想がこれに制限されるものではない。
WLANシステムの構造
図1は、本発明を適用できるIEEE 802.11システムの例示的な構造を示す図である。
IEEE 802.11構造は複数個の構成要素を含むことができ、これらの相互作用によって上位層に対してトランスペアレントなSTA移動性を支援するWLANを提供することができる。基本サービスセット(Basic Service Set;BSS)はIEEE 802.11 LANにおける基本的な構成ブロックに該当し得る。図1では、2個のBSS(BSS1及びBSS2)が存在し、それぞれのBSSのメンバーとして2個のSTAが含まれること(STA1及びSTA2はBSS1に含まれ、STA3及びSTA4はBSS2に含まれる)を例示的に示している。図1において、BSSを示す楕円は、当該BSSに含まれた各STAが通信を維持するカバレッジ領域を示すものと理解してもよい。この領域をBSA(Basic Service Area)と呼ぶことができる。STAがBSAの外へ移動すると、当該BSA内の他のSTAと直接通信できなくなる。
IEEE 802.11 LANにおいて最も基本的なタイプのBSSは、独立したBSS(Independent BSS:IBSS)である。例えば、IBSSは、2個のSTAだけで構成された最小の形態を有することができる。また、最も単純な形態であるとともに他の構成要素が省略されている図1のBSS(BSS1又はBSS2)がIBSSの代表的な例示に該当し得る。このような構成は、STA同士が直接通信できる場合に可能である。また、このような形態のLANは、予め計画して構成されるものではなく、LANが必要な場合に構成され、これをアド―ホック(ad―hoc)ネットワークと呼ぶこともできる。
STAの電源オン/オフ、STAのBSS領域への入/出などによって、BSSでのSTAのメンバーシップが動的に変更され得る。BSSのメンバーになるためには、STAは同期化過程を用いてBSSにジョインすることができる。BSS基盤構造の全てのサービスにアクセスするためには、STAはBSSに関連付けられて(associated)いなければならない。このような関連付け(association)は動的に設定することができ、分配システムサービス(Distribution System Service:DSS)の利用を含むことができる。
さらに、図1では、分配システム(Distribution System:DS)、分配システム媒体(Distribution System Medium:DSM)、アクセスポイント(Access Point:AP)などの構成要素について図示する。
WLANで直接的なステーション―対―ステーションの距離は、PHY性能によって制限され得る。いずれかの場合は、このような距離の限界が十分であり得るが、場合に応じては、より遠い距離のステーション間の通信が必要であり得る。拡張されたカバレッジを支援するために分配システム(DS)を構成することができる。
DSは、各BSSが互いに連結される構造を意味する。具体的には、図1に示すように、BSSが独立的に存在する代わりに、複数のBSSで構成されたネットワークの拡張された形態の構成要素としてBSSが存在する場合もある。
DSは、論理的な概念であり、分配システム媒体(DSM)の特性によって特定することができる。これと関して、IEEE 802.11標準では無線媒体(Wireless Medium:WM)と分配システム媒体(DSM)を論理的に区分している。それぞれの論理的媒体は、異なる目的のために使用され、異なる構成要素によって使用される。IEEE 802.11標準の定義では、このような各媒体が同一のものと制限することもなく、異なるものと制限することもない。このように複数の媒体が論理的に異なるという点で、IEEE 802.11 LAN構造(DS構造または他のネットワーク構造)の柔軟性を説明することができる。すなわち、IEEE 802.11 LAN構造は多様に具現することができ、それぞれの具現例の物理的な特性によって独立的に該当のLAN構造を特定することができる。
DSは、複数のBSSのシームレス(seamless)統合を提供し、目的地へのアドレスを取り扱うのに必要な論理的サービスを提供することによって移動機器を支援することができる。
APは、関連付けられた各STAに対してWMを通じてDSへのアクセスを可能にし、STA機能性を有するエンティティ(entity)を意味する。APを通じてBSSとDSとの間のデータ移動を行うことができる。例えば、図1で示すSTA2及びSTA3は、STAの機能性を有しながら、関連付けられた各STA(STA1及びSTA4)をDSにアクセスさせる機能を提供する。また、全てのAPは、基本的にSTAに該当するので、全てのAPはアドレス可能なエンティティである。WM上での通信のためにAPによって使用されるアドレスとDSM上での通信のためにAPによって使用されるアドレスは、必ずしも同一である必要はない。
APと関連付けられた各STAのうち一つからそのAPのSTAアドレスに送信されるデータは、常に非制御ポート(uncontrolled port)で受信され、IEEE 802.1Xポートアクセスエンティティによって処理され得る。また、制御ポート(controlled port)が認証されると、送信データ(またはフレーム)はDSに伝達され得る。
層構造
無線LANシステムで動作するSTAの動作は、層(layer)構造の観点で説明することができる。装置構成の面で層構造はプロセッサによって具現することができる。STAは複数個の層構造を有することができる。例えば、802.11標準文書において扱う層構造は、主にDLL(Data Link Layer)上のMACサブ層(sublayer)及び物理(PHY)層である。PHYは、PLCP(Physical Layer Convergence Procedure)個体、PMD(Physical Medium Dependent)個体などを含むことができる。MACサブ層及びPHYは、それぞれ、MLME(MAC sublayer Management Entity)及びPLME(Physical Layer Management Entity)と呼ばれる管理個体を概念的に含む。このような個体は、層管理機能が作動する層管理サービスインターフェースを提供する。
正確なMAC動作を提供するために、SME(Station Management Entity)がそれぞれのSTA内に存在する。SMEは、別途の管理プレーン内に存在したり、または別途に離れて(off to the side)いるように見られる、層独立的な個体である。SMEの正確な機能は、本文書で具体的に説明していないが、一般的には様々な層管理個体(LME)から層―従属的な状態を収集し、層―特定パラメータなどの値をほぼ同一に設定するなどの機能を担当するものと見られる。一般に、SMEは、一般のシステム管理個体を代表して(on behalf of)このような機能を行い、標準管理プロトコルを具現することができる。
前述した個体は、様々な方式で相互作用する。例えば、個体間にはGET/SETプリミティブ(primitive)を交換(exchange)することによって相互作用することができる。プリミティブは、特定の目的に関連した要素(element)やパラメータのセットを意味する。XX―GET.requestプリミティブは、与えられたMIB attribute(管理情報ベースの属性情報)の値を要求するために使用される。XX―GET.confirmプリミティブは、Statusが「成功」である場合には適切なMIB属性情報値をリターンし、そうでない場合には、Statusフィールドでエラー指示をリターンするために使用される。XX―SET.requestプリミティブは、指示されたMIB属性が与えられた値に設定されるように要求するために使用される。前記MIB属性が特定の動作を意味する場合、これは、該当動作が行われることを要求するものである。そして、XX―SET.confirmプリミティブは、statusが「成功」である場合に、指示されたMIB属性が要求された値に設定されたことを確認し、そうでない場合には、statusフィールドにエラー条件をリターンするために使用される。MIB属性が特定の動作を意味する場合、これは、該当動作が行われたことを確認させる。
また、MLME及びSMEは、様々なMLME_GET/SETプリミティブをMLME_SAP(Service Access Point)を介して交換することができる。また、様々なPLME_GET/SETプリミティブが、PLME_SAPを介してPLMEとSMEとの間で交換されてもよく、MLME―PLME_SAPを介してMLMEとPLMEとの間で交換されてもよい。
無線LANの進化
無線LAN(WLAN)技術に対する標準は、IEEE(Institute of Electrical and Electronics Engineers)802.11グループで開発されている。IEEE 802.11a及びbは2.4GHz又は5GHzで無許可帯域(unlicensed band)を利用し、IEEE 802.11bは11Mbpsの伝送速度を提供し、IEEE 802.11aは54Mbpsの伝送速度を提供する。IEEE 802.11gは、2.4GHzで直交周波数分割多重化(Orthogonal Frequency Division Multiplexing、OFDM)を適用し、54Mbpsの伝送速度を提供する。IEEE 802.11nは、多重入出力OFDM(Multiple Input Multiple Output―OFDM、MIMO―OFDM)を適用し、300Mbpsの伝送速度を提供する。IEEE 802.11nはチャネル帯域幅(channel bandwidth)を40MHzまで支援し、この場合、600Mbpsの伝送速度を提供する。
IEEE 802.11eに従う無線LAN環境でのDLS(Direct Link Setup)関連プロトコルは、BSS(Basic Service Set)がQoS(Quality of Service)を支援するQBSS(Quality BSS)を前提とする。QBSSでは、非―AP(Non―AP)STAだけでなく、APもQoSを支援するQAP(Quality AP)である。ところが、現在商用化されている無線LAN環境(例えば、IEEE 802.11a/b/gなどに従う無線LAN環境)では、たとえNon―AP STAがQoSを支援するQSTA(Quality STA)であるとしても、APは、QoSを支援できないレガシー(Legacy)APがほとんどである。その結果、現在商用化されている無線LAN環境では、QSTAであるとしても、DLSサービスを利用することができないという限界がある。
トンネルダイレクトリンク設定(Tunneled Direct Link Setup:TDLS)は、このような限界を克服するために新たに提案された無線通信プロトコルである。TDLSは、QoSを支援しないが、現在商用化されたIEEE 802.11a/b/gなどの無線LAN環境においてもQSTAがダイレクトリンクを設定できるようにし、節電モード(Power Save Mode:PSM)においてもダイレクトリンクの設定が可能なようにするものである。したがって、TDLSは、レガシーAPが管理するBSSにおいても、QSTAがダイレクトリンクを設定できるようにするための諸手順を規定する。そして、以下では、このようなTDLSを支援する無線ネットワークをTDLS無線ネットワークという。
Wi―Fiダイレクトネットワーク
従来の無線LANは、無線アクセスポイント(AP)がハブとして機能するインフラストラクチャ(infrastructure)BSSに対する動作を主に扱った。APは、無線/有線接続のための物理層支援機能、ネットワーク上のデバイスに対するルーティング機能、及びデバイスをネットワークに追加/除去するためのサービス提供などを担当する。この場合、ネットワーク内のデバイスは、APを介して接続されるものであって、相互間に直接接続されるものではない。
デバイス間の直接接続を支援する技術として、Wi―Fiダイレクト(Wi―Fi Direct)標準の制定が議論されている。
図2は、 Wi―Fiダイレクトネットワークを例示する。 Wi―Fiダイレクトネットワークは、Wi―Fi装置がホームネットワーク、オフィスネットワーク及びホットスポットネットワークに参加しなくても、互いにデバイスツーデバイス(Device to Device;D2D)(あるいは、Peer―to―Peer;P2P)通信を行うことができるネットワークであって、Wi―Fi連合(Alliance)によって提案された。以下、 Wi―Fiダイレクトベースの通信をWFD D2D通信(簡単にD2D通信)あるいはWFD P2P通信(簡単にP2P通信)と呼ぶ。また、WFD P2P実行デバイスをWFD P2Pデバイス、簡単にP2Pデバイスと呼ぶ。
図2を参照すると、WFDネットワーク200は、第1のWFDデバイス202及び第2のWFDデバイス204を含む少なくとも1つのWi―Fiデバイスを含むことができる。WFDデバイスは、ディスプレイ装置、プリンタ、デジタルカメラ、プロジェクタ及びスマートフォンなどのWi―Fiを支援するデバイスを含む。また、WFDデバイスは、Non―AP STA及びAP STAを含む。図示された例において、第1のWFDデバイス202は携帯電話であり、第2のWFDデバイス204はディスプレイ装置である。WFDネットワーク内のWFDデバイスは互いに直接接続可能である。具体的に、P2P通信は、2つのWFDデバイス間の信号伝送経路が第3のデバイス(例えば、AP)または既存のネットワーク(例えば、APを経てWLANに接続)を経ずに当該WFDデバイス間に直接設定された場合を意味することができる。ここで、2つのWFDデバイス間に直接設定された信号伝送経路はデータ伝送経路に制限され得る。例えば、P2P通信は、複数のNon―STAがAPを経ずにデータ(例、音声/映像/文字情報など)を伝送する場合を意味することができる。制御情報(例、P2P設定のためのリソース割当情報、無線デバイス識別情報など)のための信号伝送経路は、WFDデバイス(例えば、Non―AP STA―対―Non―AP STA、Non―AP STA―対―AP)間に直接設定されるか、またはAPを経由して2つのWFDデバイス(例えば、Non―AP STA―対―Non―AP STA)間に設定されるか、またはAPと当該WFDデバイス(例えば、AP―対―Non―AP STA#1、AP―対―Non―AP STA#2)間に設定されてもよい。
図3は、WFDネットワークを構成する過程を説明するための図である。
図3を参照すると、WFDネットワーク構成過程は2つの過程に大別することができる。1番目の過程は、近隣発見過程(Neighbor Discovery (ND) procedure)であり(S302a)、2番目の過程は、P2Pリンク設定及び通信過程である(S304)。近隣発見過程を通じて、WFDデバイス(例えば、図2の202)は、(自身の無線)カバレッジ内の他の隣接WFDデバイス(例えば、図2の204)を探し、当該WFDデバイスとの関連付け、例えば、事前―関連付け(pre―association)に必要な情報を獲得することができる。ここで、事前―関連付けは、無線プロトコルで第2のレイヤ事前―関連付けを意味することができる。事前―関連付けに必要な情報は、例えば、隣接WFDデバイスに対する識別情報などを含むことができる。近隣発見過程は、可用無線チャネル別に行うことができる(S302b)。その後、WFDデバイス202は、他のWFDデバイス204とWFD P2Pリンク設定/通信のための過程を行うことができる。例えば、WFDデバイス202は、周辺のWFDデバイス204に関連付けられた後、当該WFDデバイス204がユーザのサービス要求事項を満足しないWFDデバイスであるか否かを判断することができる。そのために、WFDデバイス202は、周辺のWFDデバイス204と第2のレイヤ事前―関連付け後、当該WFDデバイス204を検索することができる。もし、当該WFDデバイス204がユーザのサービス要求事項を満足しない場合、WFDデバイス202は、当該WFDデバイス204に対して設定された第2のレイヤ関連付けを切り、他のWFDデバイスと第2のレイヤ関連付けを設定することができる。反面、当該WFDデバイス204がユーザのサービス要求事項を満足する場合、2つのWFDデバイス(202及び204)はP2Pリンクを介して信号を送受信することができる。
図4は、近隣発見過程を説明するための図である。図4の例示は、図3でのWFDデバイス202とWFDデバイス204との間の動作として理解することができる。
図4を参照すると、図3の近隣発見過程は、SME(Station Management Entity)/アプリケーション/ユーザ/ベンダーの指示により開始されてもよく(S410)、スキャン段階(scan phase)(S412)と探し段階(find phase)(S414〜S416)とに分けられてもよい。スキャン段階(S412)は、利用可能な全ての無線チャネルに対して802.11方式に従ってスキャンする動作を含む。これによって、P2Pデバイスは、最上の動作チャネルを確認することができる。探し段階(S414〜S416)は、聴取(listen)モード(S414)と検索(search)モード(S416)を含み、P2Pデバイスは、聴取モード(S414)と検索モード(S416)を交互に繰り返す。P2Pデバイス202,204は、検索モード(S416)でプローブ要求フレーム(Probe request frame)を用いて能動検索を実施し、速い検索のために、検索範囲をチャネル1、6、11(例えば、2412、2437、2462MHz)のソーシャルチャネル(social channel)に限定することができる。また、P2Pデバイス202,204は、聴取モード(S414)で3つのソーシャルチャネルのうち1つのチャネルのみを選択して受信状態に維持する。このとき、他のP2Pデバイス(例、202)が検索モードで伝送した、プローブ要求フレームが受信された場合、P2Pデバイス(例えば、204)は、プローブ応答フレーム(probe response frame)で応答する。聴取モード(S414)時間はランダムに与えられてもよい(例えば、100、200、300TU(Time Unit))。P2Pデバイスは、検索モードと受信モードを継続して繰り返す途中、互いの共通チャネルに到達することができる。P2Pデバイスは、他のP2Pデバイスを発見した後、当該P2Pデバイスに選択的に結合するために、プローブ要求フレームとプローブ応答フレームを用いてデバイスタイプ、製作会社またはフレンドリデバイス名(name)を発見/交換することができる。近隣発見過程を通じて周辺のP2Pデバイスを発見し、必要な情報を得た場合、P2Pデバイス(例えば、202)は、SME/アプリケーション/ユーザ/ベンダーにP2Pデバイス発見を知らせることができる(S418)。
現在、P2Pは、主に遠隔プリント、写真共有などのような半―静的(semi―static)通信のために用いられている。しかし、Wi―Fiデバイスの普遍化と位置基盤のサービスなどにより、P2Pの活用性はますます広がっている。例えば、ソーシャルチャット(例えば、SNS(Social Network Service)に加入した無線デバイスが、位置基盤のサービスに基づいて近接地域の無線デバイスを認識し、情報を送受信)、位置―基盤の広告提供、位置―基盤のニュース放送、無線デバイス間のゲーム連動などにP2Pが活発に利用されると予想される。便宜上、このようなP2P応用を新規P2P応用と呼ぶ。
図5は、WFDネットワークの新たな様相を説明するための図である。
図5の例示は、新規P2P応用(例えば、ソーシャルチャット、位置―基盤のサービス提供、ゲーム連動など)が適用される場合のWFDネットワークの様相として理解することができる。
図5を参照すると、WFDネットワークにおいて多数のP2Pデバイス(502a〜502d)がP2P通信510を行い、P2Pデバイスの移動によって、WFDネットワークを構成するP2Pデバイスが随時変更されるか、または、WFDネットワーク自体が動的/短時間的に新たに生成又は消滅し得る。このように、新規P2P応用部分の特徴は、密集(dense)ネットワーク環境においてかなりの数のP2Pデバイス間に動的/短時間的にP2P通信が行われ、終了できるという点である。
図6は、WFD通信のためのリンクを設定する方法を説明するための図である。
図6(a)に示すように、第1のSTA(610、以下、Aという)は、既存のWFD通信においてグループオーナー(Group Owner)として動作中にある。既存のWFD通信のグループクライアント630との通信中に、A610が、新たなWFD通信対象である、WFD通信をしていない、第2のSTA(620、以下、Bという)を発見した場合、A610は、B620とのリンク設定を試みる。この場合、新たなWFD通信は、A610とB620との間のWFD通信であり、Aはグループオーナーであるので、既存のグループクライアント630の通信と別個に通信設定を進行することができる。1つのWFDグループは、1つのグループオーナーと1つ以上のグループクライアントで構成することができ、1つのグループオーナーであるA610を満足するので、図6(b)に示すように、WFDリンクを設定することができる。この場合、A610が既存のWFD通信グループにB620を招待(invitation)した場合であり、WFD通信の特性上、A610とB620との間、A610と既存のグループクライアント630との間のWFD通信はそれぞれ可能であるが、B620と既存のグループクライアント630との間のWFD通信は支援されないこともある。Wi―FiダイレクトのP2Pグループケーパビリティのうちイントラ(Intra)―BSSオプションが活性化(またはオンに設定)される場合であると、B620と既存のグループクライアント630との間のWFD直接通信(すなわち、Wi―FiダイレクトBSS内での各クライント間の直接通信)を行うこともできる。
図7は、WFDを行っている通信グループに参加(association)する方法を説明するための図である。
図7(a)に示すように、第1のSTA(710、以下、Aという)は、グループクライアント730に対してグループオーナーとして通信中にあり、第2のSTA(720、以下、Bという)は、グループクライアント740に対してグループオーナーとして通信中にある。図7(b)に示すように、A710は、既存のWFD通信を終了(termination)し、B720が属したWFD通信グループに参加することができる。A710は、B720がグループオーナーであるので、Bのグループクライアントとなる。A710は、B720に関連付けを要求する前に既存のWFD通信を終了することが好ましい。
図8は、WFD通信のためのリンクを設定する方法を説明するための図である。
図8(a)に示すように、第2のSTA(820、以下、Bという)は、既存のWFD通信においてグループオーナーとして動作中にある。既存のWFD通信においてグループクライアント830とWFD通信中にある場合、B820を発見した、WFD通信を行っていない第1のSTA(810、以下、Aという)が、B820との新たなWFD通信のためにリンク設定を試みる。この場合、B820がリンク設定を受諾した場合、A810とB820との間の新たなWFD通信リンクが設定され、A810は、既存のB820のWFDグループのクライアントとして動作することになる。このような場合、A810がB820のWFD通信グループに参加した場合となる。A810は、グループオーナーであるB820とのみWFD通信を行うことができ、A810と既存のWFD通信のクライアント830とのWFD通信は支援されないこともある。Wi―FiダイレクトのP2Pグループケーパビリティのうちイントラ―BSSオプションが活性化(またはオンに設定)される場合であると、A810と既存のWFD通信のクライアント830との間のWFD直接通信(すなわち、Wi―FiダイレクトBSS内での各クライント間の直接通信)を行うこともできる。
図9は、WFD通信グループに参加するリンクを設定する方法を説明するための図である。
図9(a)に示すように、第1のSTA(910、以下、Aという)は、グループオーナー930に対してグループクライアントとしてWFD通信中にある。このとき、他のWFD通信のグループクライアント940に対してグループオーナーとして通信中にある第2のSTA(920、以下、Bという)を発見したA910は、グループオーナー930とのリンクを終了し、B920のWFDに参加することができる。
Wi―Fiダイレクトサービス(WFDS)
Wi―Fiダイレクトはリンク層(Link layer)の動作まで定義するネットワーク連結標準技術である。Wi―Fiダイレクトによって構成されたリンクの上位層で動作するアプリケーションに対する標準が定義されていないので、Wi―Fiダイレクトを支援する各デバイスが互いに連結された後、アプリケーションを駆動する場合の互換性を支援しにくかった。このような問題を解決するために、Wi―Fiダイレクトサービス(WFDS)という上位層アプリケーションの動作に対する標準化がWi―Fiアライアンス(WFA)で論議中にある。
図10は、WFDSフレームワーク構成要素を説明するための図である。
図10のWi―Fiダイレクト層は、Wi―Fiダイレクト標準によって定義されるMAC層を意味する。Wi―Fiダイレクト層は、Wi―Fiダイレクト標準と互換されるソフトウェアとして構成することができる。Wi―Fiダイレクト層の下位には、Wi―Fi PHYと互換される物理層(図示せず)によって無線連結を構成することができる。Wi―Fiダイレクト層の上位にASP(Application Service Platform)というプラットフォームが定義される。
ASPは、共通共有プラットフォーム(common shared platform)であり、その上位のアプリケーション(Application)層とその下位のWi―Fiダイレクト層との間でセッション(session)管理、サービスの命令処理、ASP間の制御及び保安機能を行う。
ASPの上位にはサービス(Service)層が定義される。サービス層は、用途(use case)特定サービスを含む。WFAでは、4個の基本サービスである伝送(Send)、プレイ(Play)、ディスプレイ(Display)、プリント(Print)サービスを定義する。また、イネーブル(Enable)API(Application Program Interface)は、基本サービスの他に、サードパーティー(3rd party)アプリケーションを支援する場合にASP共通プラットフォームを利用できるようにするために定義される。
図10では、サービスの例示として、伝送、プレイ、ディスプレイ、プリント、またはサードパーティーアプリケーションで定義するサービスなどを図示するが、本発明の適用範囲がこれに制限されることはない。例えば、本文書で「サービス」という用語は、前記伝送、プレイ、ディスプレイ、プリント、またはサードパーティーアプリケーションで定義するサービスの他にも、Wi―Fiシリアルバス(Wi―Fi Serial Bus:WSB)、Wi―Fiドッキング(Wi―Fi Docking)、及び隣接認知ネットワーク(Neighbor Awareness Networking:NAN)を支援するためのサービスのうちいずれか一つであってもよい。
伝送(Send)は、二つのWFDSデバイス間のファイル伝送を行えるサービス及びアプリケーションを意味する。プレイ(Play)は、二つのWFDSデバイス間DLNA(Digital Living Network Alliance)基盤のオーディオ/ビデオ(A/V)、写真、音楽などを共有またはストリーミングするサービス及びアプリケーションを意味する。プリント(Print)は、文書、写真などのコンテンツを有しているデバイスとプリンターとの間での文書、写真出力を可能にするサービス及びアプリケーションを意味する。ディスプレイ(Display)は、WFAのミイラキャスト(Miracast)ソースとシンクとの間の画面共有を可能にするサービス及びアプリケーションを意味する。
アプリケーション層は、ユーザーインターフェース(UI)を提供することができ、情報を人が認識可能な形態に表現し、ユーザーの入力を下位層に伝達するなどの機能を行う。
図11は、WFDS動作を説明するための図である。
図11では、2個のピア(peer)デバイスA及びBが存在すると仮定する。
ASPは、各サービスが必要とする共通の各機能を具現する論理的な個体(logical entity)である。これら各機能は、デバイス発見(Device Discovery)、サービス発見(Service Discovery)、ASP―セッション管理、連結トポロジー(topology)管理、保安などを含むことができる。
ASP―セッションは、デバイスAのASPとデバイスBのASPとの間の論理的なリンクである。ASP―セッションを開始するためには、各ピアデバイス間のP2P(Peer―to―Peer)連結が必要である。ASPは、二つのデバイス間で複数のASP―セッションをセットアップすることができる。それぞれのASP―セッションは、ASP―セッションを要求するASPによって割り当てられるセッション識別子によって識別され得る。
サービスは、他のサービスまたはアプリケーションにASPを用いて用途特定機能を提供する論理的な個体である。一つのデバイスのサービスは、一つ以上の他のデバイスの対応するサービスと、サービス―特定プロトコル(これは、サービス標準及びASPプロトコルによって定義され得る。)を用いて通信することができる。
ASPとサービスとの間のインターフェースは、メソッド(Method)及びイベント(Event)と定義される。メソッドは、サービスによって開始される動作を示し、メソッドのパラメータ(またはフィールド)には、遂行しようとする動作に対する情報を含ませることができる。イベントは、ASPからサービスに情報を提供する。
ユーザーがデバイスAとデバイスBとの間でサービスXを利用しようとする場合、それぞれのデバイス上の各ASPは、サービスX専用のASP―セッションをデバイス間に生成する。その後、ユーザーがサービスYを利用しようとする場合、該当のサービスのための新たなASP―セッションが樹立(establish)される。
図12は、WFDSでのASPセッションセットアップシーケンスを説明するための図である。
WFDSでは、二つのピアデバイス間の動作を定義するにおいて、そのうちいずれかのデバイスはサービスアドバタイザーとしての役割をし、他のデバイスはサービスシーカーとしての役割をすることができる。サービスシーカーは、サービスアドバタイザーを発見(discover)し、所望のサービスを探した場合、サービスアドバタイザーとの連結を要求することもできる。図12の例示では、デバイスAがサービスアドバタイザーとしての役割をし、デバイスBがサービスシーカーとしての役割をする場合を例示的に示す。
図12のASPセッションセットアップ動作について簡略に説明すると、いずれかのWFDSデバイスの特定サービスが他のWFDSデバイス及びサービスを探索し、サービスを要求し、Wi―Fiダイレクト連結を樹立し、アプリケーションが動作する過程を示す。
図12において、デバイスAは、自身のサービスをアドバタイズ(advertise)し、他のデバイスが該当のサービスを探すことができるように待機することができる。デバイスAのASPは、サービス層から提供されるAdvertisement()メソッドに含まれる情報に基づいて他のデバイスに応答することができる。
デバイスBは、サービスを探して開始しようとするデバイスである。デバイスBは、上位アプリケーションまたはユーザーの要求に応じてサービスを支援するデバイスを探す過程を行う。デバイスBのサービス層は、アプリケーション層からサービスを使用するという(Use Service)意図を示す情報を受信すると、SeekService()メソッドに必要な情報を含ませてASPに伝達することができる。
これによって、デバイスBのASPは、他のデバイスにプローブ要求フレームを伝送することができる。このとき、プローブ要求フレーム内に自身が探そうとするサービスまたは自身が支援可能なサービスのサービス名称(service name)をハッシュ(hash)形態で含ませて要求する。
プローブ要求フレームを受信したデバイスAは、ハッシュマッチング(hash matching)を試み、ハッシュ値に該当するサービスを支援する場合、プローブ応答フレームをデバイスBに伝送することができる。プローブ応答フレーム内には、サービス名称、アドバタイズメントID値などを含ませることができる。
このようなプローブ要求/応答フレームを取り交わす過程は、デバイスAとBが互いにWFDSを支援するデバイスということと、各自が支援するサービスが何かを知ることができるデバイス探索過程と称することができる。
さらに、デバイスAとBは、P2Pサービス発見過程を通じて特定サービスに対する具体的な事項に対する情報を取り交わすことができる。例えば、サービス名称(複数のサービスに対する支援有無を探索する場合は、複数のサービス名称)、サービス情報要求などの情報がサービス発見要求メッセージを通じてデバイスBからデバイスAに伝達され得る。これに対して、デバイスAはサービス情報マッチングを行い、マッチングされる場合は、該当のサービスを提供できるとデバイスBに知らせることができる。例えば、サービス発見応答メッセージには、サービス名称、アドバタイズメントID、サービス状態(service status)などの情報を含ませることができる。サービス状態情報は、サービスアドバタイザー側で遠隔デバイスから要求されるサービスが利用可能であるか否かを知らせる情報である。このようなサービス発見過程は、IEEE 802.11uシステムで定義するGAS(Generic Advertisement Protocol)を使用して行うことができる。
デバイスBのASPは、サービス層が要求したSeekService()メソッドによって要求された動作が完了すると、その結果(すなわち、SearchResult)をサービスを通じてアプリケーション及びユーザーに知らせることができる。
この時点まではWi―Fiダイレクトのグループが形成されない状態であり、ユーザーがサービスを選択し、サービスがセッション連結(すなわち、ConnectSession)を行う場合にP2Pグループ形成(group formation)が進行される。このとき、プロビジョン発見要求(Provision Discovery Request)及びプロビジョン発見応答(Provision Discovery Response)を通じて、セッション情報と連結ケーパビリティ(connection capability)情報が交換される。
セッション情報は、サービスを要求するデバイスが要求するサービスの大略的な情報を知らせるヒント(hint)情報である。セッション情報は、例えば、ファイル伝送サービスを要求しようとする場合は、ファイルの個数、サイズなどを知らせ、相手がサービス要求に対する収容/拒絶(accept/reject)を決定できるようにする情報である。連結ケーパビリティは、GO交渉(Group Owner negotiation)及びP2P招待過程でグループを生成するための情報として利用することができる。
デバイスBがデバイスAにプロビジョン発見要求メッセージを伝達すると、デバイスAのASPは、サービス情報などを含むセッション要求(SessionRequest)をサービス層に伝達し、サービス層は、サービス情報をアプリケーション/ユーザーに伝達する。アプリケーション/ユーザーがセッション情報に基づいて該当のセッションを収容すると決定すると、サービス層を通じて確認(ConfirmService())がASPに伝達される。
その間、デバイスAのASPは、デバイスBにプロビジョン発見応答メッセージを伝達するが、その状態情報は、延期される(deferred)に設定することができる。これは、該当のサービスが即時には収容されないことを示し、ユーザーの入力を待っていることを知らせるためである。これによって、装置BのASPは、サービス層にConectStatusイベントを伝達しながらサービス要求が延期されたことを知らせることができる。
デバイスAのASPがConfirmService()の伝達を受けると、後続(follow―on)プロビジョン発見過程を行うことができる。すなわち、デバイスAは、デバイスBにプロビジョン発見要求メッセージを伝達することができる。これを後続プロビジョン発見過程と称することができる。このメッセージには、該当のサービスに対する状態が成功(success)であることを示す情報と共に、サービス情報を含ませることができる。これによって、デバイスBのASPは、サービス層にConectStatusイベントを伝達しながらサービス要求が収容されたことを知らせることができる。また、デバイスBのASPは、プロビジョン発見応答メッセージを装置Aに伝達することができ、これには、連結ケーパビリティ情報を含ませることができる。
P2Pプロビジョン発見過程が行われた後、GO交渉または招待過程を通じてP2Pグループが生成され、第2の層L2連結及びIP(Internet Protocol)連結が行われる。GO交渉過程についての詳細な説明は省略する。
GO交渉が完了し、P2P連結またはIP連結が生成された後、デバイスAとBは、ASPコーディネーションプロトコル(coordination protocol)を通じてセッションを要求するREQUEST_SESSIONメッセージを伝達する。REQUEST_SESSIONメッセージには、アドバタイズメントID、MACアドレス(mac_addr)、セッション識別子(session ID)などを含ませることができる。MACアドレスは、P2Pデバイスのアドレスを意味する。REQUEST_SESSIONメッセージに応答して、デバイスAは、デバイスBにACKメッセージを伝達することができる。
これを受け取ったデバイスAは、セッションが連結されたことを上位サービス/アプリケーションに知らせ、サービス層は、該当のセッションに対するポート(port)情報を要求し、該当のセッションとポートをバインディング(binding)させることができる。これによって、ASPは、該当のポートを開放し(ASPは、ポートを防火壁(firewall)内で開放することができる)、ポートが準備されたことをサービス層に知らせることができる。サービス層は、セッションが準備されたこと(SessionReady())をASPに知らせることができる。
これによって、デバイスAのASPは、ADDED_SESSIONメッセージを相手デバイスに伝送する。このとき、ADDED_SESSIONメッセージには、セッション識別子、MACアドレス情報などを含ませることができ、これによって、サービスを固有に(unique)区分することができる。ADDED_SESSIONメッセージを受信したデバイスBのASPは、セッション連結をサービス層に知らせ、ポート要求、ポートバインディングなどを経てポートが準備されたこと(PortReady())をサービス層に知らせることができる。ASPは、ポートを防火壁内で開放することができる。
その後、デバイスAとデバイスBのサービス層間にアプリケーションソケット(socket)連結を知らせ、アプリケーション層によってアプリケーションデータの伝送のためのリンクが形成され、これを通じてアプリケーションデータが送受信され得る。
デバイスBのアプリケーション/ユーザーによって該当のアプリケーションの終了(Close Application)がサービス層に指示され得る。これによって、サービス層は、ASPにセッション終了(ClosedSession())メソッドを伝達し、該当のポートが解除(release)されることを知らせることができる。
これによって、デバイスBのASPは、デバイスAにREMOVE_SESSIONメッセージを通じて連結されたサービスの終了を要求することができる。REMOVE_SESSIONメッセージには、アドバタイズメントID、MACアドレス、セッションIDなどを含ませることができる。
デバイスAのASPは、サービス層を通じてアプリケーション/ユーザーにセッション終了を知らせ、サービス層は、ASPにポート解除を知らせることができる。これによって、ASPは、該当のサービスに対してアクティブであるセッションが存在しない場合、防火壁内でインカミング(incoming)ポートを閉鎖することができる。デバイスAは、デバイスBにREMOVE_SESSIONメッセージに対するACKメッセージを伝達することができ、デバイスBのASPは、該当のサービスに対してアクティブであるセッションが存在しない場合、防火壁内でインカミングポートを閉鎖することができる。
その後、デバイスA及びデバイスBは、関連付け解除(Diassociation)要求/応答を通じてP2P連結及び相互関連付け(association)を終了することができる。
図12の例示を通じて、サービス要求がP2Pプロビジョン発見過程を用いて開始された場合、サービスシーカーとサービスアドバタイザーとの間のメッセージシーケンスに対して説明した。図12の例示では、auto_acceptがFALSEに設定される場合を仮定した(auto_acceptがTRUEに設定されると、ASPは、サービスからのConfirmServiceメソッドがなくても、全てのASP―セッションサービス要求を収容するように動作することができる)。また、それぞれのASPは、現在の状態をSessionStatusイベント及びConnectionStatusイベントを用いてサービスに知らせることができる。
サービス転換方案
二つのWFDSデバイスは、ASPコーディネーションプロトコルを通じてASP―セッションの要求(REQUEST)、追加(ADD)、拒絶(REJECT)、除去(REMOVE)などを行うことができる。ASPコーディネーションプロトコルは、WFDSで定義した別途の制御プロトコルであり、ASP間UDP(User Datagram Protocol)を通じて通信する方法を提供する。
従来技術では、二つのWFDSデバイスが共通に提供できるサービスの種類が多数である場合、一つのサービスを連結する方案に対しては定義しているが、互いに異なるサービス間の転換及び元のサービスへの復帰などのサービス間相互動作に対しては定義していない。
例えば、WFDSデバイスAとWFDSデバイスBがいずれもプレイサービス及びディスプレイサービスを支援する場合、従来技術によると、独立的にそれぞれのサービスを行うことは定義されている。しかし、プレイとディスプレイとの間の転換及び復帰に関する内容は全く定義されていない。
プレイ(例えば、DLNA)は、A/V、写真、音楽などのファイル基盤のローカルコンテンツを共有またはストリーミングするサービスである。ディスプレイサービス(例えば、ミイラキャスト)は、プレイサービスと類似するが、ファイル基盤のコンテンツの共有/ストリーミングではなく、送信側(TX)デバイスの画面を実時間でエンコーディングして受信(RX)デバイスに送るスクリーンミラーリング(screen mirroring)技術である。
表1は、ディスプレイサービスとプレイサービスの特性を比較したものである。
表1に示すように、ディスプレイサービスは、ホーム画面、アプリケーション画面、通常的でないA/Vコンテンツの共有に適しているが、ファイルコンテンツの場合は、トランスコーディングの負担のため適していない。プレイサービスは、ファイル基盤のメディアストリーミングを、元の品質を毀損せずに行えるという長所を有するが、スクリーン自体のミラーリングは支援することができない。
このように、プレイとディスプレイの二つの画面共有サービスは、画面にコンテンツを表示するサービスという点では共通しているが、相互補完的または代案的(alternative)に適用される。TXデバイスがファイル基盤のA/Vコンテンツをミイラキャストを用いて伝送する場合、A/Vコンテンツをローカルでデコーディングした後、再びエンコーディングして伝送しなければならないオーバーヘッドが発生し、再びエンコーディングする場合、画質劣化が発生する。この場合、ディスプレイサービスの代わりに、プレイサービスに伝送することがより効率的である。または、TXデバイスがゲームやホーム画面などのファイル基盤でないコンテンツをRXデバイスと共有しようとする場合は、プレイサービスでは画面共有を具現しにくいので、ディスプレイサービスを適用することが効率的である。このように相互補完的で且つ代案的なサービスの場合は、サービス間の転換、変更、復帰などの動作をASPが支援する方案が要求される。
このように、ディスプレイサービスの遂行中にプレイサービスに転換したり、その反対に転換する場合を仮定して本発明の各例示を説明する。しかし、本発明はこれに制限されるものではなく、他の例示として、第1の層/第2の層(L1/L2)処理率(throughput)がディスプレイサービスと伝送サービスの全てを支援するのに不足している場合、ディスプレイサービスの遂行中に伝送サービスに転換したり、その反対に転換する場合にも、本発明で提案する原理を同一に適用することができる。
アプリケーションがサービスを転換しようとする場合として、次のような状況を仮定することができる。
例えば、シーカーデバイスのアプリケーションがサービスに受信側プレイサービスの探索(SeekService(org.wi―fi.wfds.play.rx,…)及び受信側ディスプレイサービスの探索(SeekService(org.wi―fi.wfds.display.rx,…)を呼び出す場合を仮定することができる。この場合、アプリケーションは、ユーザーの入力、デバイス政策(policy)、処理率測定などの多様な情報に基づいてサービスを転換することに決定することができる。
または、送信側プレイサービスの待機(AdvertiseService(org.wi―fi.wfds.play.tx,…)を呼び出したアドバタイザーデバイスが、送信側プレイサービスの探索(SeekService(org.wi―fi.wfds.play.tx,…))を呼び出したシーカーデバイスが受信側ディスプレイサービス(org.wi―fi.wfds.display.rx)を支援できるか否かを知るために、受信側ディスプレイサービスの探索(SeekService(org.wi―fi.wfds.display.rx,…))を呼び出す場合を仮定することができる。この場合、アプリケーションは、ユーザーの入力、デバイス政策、処理率測定などの多様な情報に基づいてサービスを転換することに決定することができる。
図13〜図16は、本発明の一実施例に係るサービス転換を説明するための図である。
図13〜図14の動作は、すなわち、サービスAに対するASP―セッションセットアップ動作を示す。図13は、プローブ要求/応答、サービス発見要求/応答、サービスAに対するプロビジョン発見要求/応答、GO交渉過程を示す。
図13に示す過程を通じて、第1のサービス(すなわち、サービスA)と第2のサービス(サービスB)の2つのサービスに対する探索(seek)が行われる。すなわち、第2のデバイス(デバイスB)は、第1のデバイス(デバイスA)がサービスA及びサービスBを支援するか否かをデバイス発見過程及び/またはサービス発見過程などを通じて確認することができる。デバイスA及びBがサービスA及びBを全て支援する場合、図13の例示では、デバイスAとデバイスBとの間でサービスAに対するプロビジョン発見要求/応答過程を通じてサービスAに対するセッション情報及び連結ケーパビリティを交換することができる。
具体的には、デバイスAは、サービスA及びサービスBを支援することができ、また、デバイスBも、サービスA及びサービスBを支援すると仮定する。デバイスAのサービスA及びサービスBは、それぞれASPにAdvertiseService()メソッドを用いて自身が支援するサービスに対して知らせる。また、デバイスBでも、サービスA及びサービスBは、それぞれASPにAdvertiseService()メソッドを用いて自身が支援するサービスに対して知らせる。
アプリケーション/ユーザーが新たなサービスを探し、該当のサービスを駆動させるために入力すると、該当のサービスは、ASPを通じて周辺のWFDS支援デバイスのうち該当のサービスを支援するデバイスを探索するようになる。
図13の例示では、デバイスBのアプリケーション/ユーザーがサービスAを使用しようとする場合を仮定する(Use Service)。これによって、サービスAは、ASPにSeekService()メソッドを伝達するようになる。これによって、ASPは、P2Pプローブ要求/応答メッセージを用いてサービスAを支援する周辺のWFDSデバイスを探索することができる。
具体的には、プローブ要求メッセージには、探索対象になるサービスのハッシュ値を含ませることができる。これを受信したデバイスAは、サービスハッシュ値がマッチングされる場合、プローブ応答メッセージにハッシュ値またはサービス名称を含ませて伝送することができる。複数のサービスを支援するWFDSデバイスをスキャニングしようとする場合、プローブ要求フレームに複数のサービス名称、または複数のサービスハッシュ値を含ませることができる。
表2及び表3は、本発明で提案するプローブ応答メッセージに追加的に含まれ得る情報のフォーマットを示す。
既存の方式に従うと、プローブ応答メッセージ内に一つのサービスに対する情報が含まれていたので、多数のサービスに対するデバイス探索を行うためには、多数回のプローブ要求/応答フレームの交換が必要であった。
本発明によると、P2Pプローブ応答フレーム内にアドバタイズされるサービス情報(Advertised Service Info)というフィールドを定義し、アドバタイズされるサービス情報内に一つ以上のアドバタイズされるサービス記述子(Advertised Service Descriptor)が含まれ、一つのアドバタイズされるサービス記述子は、一つのサービスに対する情報を含むものと定義することができる。すなわち、一つのプローブ応答メッセージ内に前記表2のようなアドバタイズされるサービス情報が含まれ、アドバタイズされるサービス情報には、前記表3または表4のようなアドバタイズされるサービス記述子情報を一つまたは複数含ませることができる。表3または表4は、一つのアドバタイズされるサービス記述子の各サブフィールドのフォーマットを示す。
アドバタイズされるサービス記述子内には、該当のサービスが支援可能であるか否かを示すサービス通知(Service Notice)フィールド、及び該当のサービスがサービスハンドオーバーを支援するか否かを示す情報のうち一つ以上を含ませることができる。サービスハンドオーバーフィールドが0x01に設定されたアドバタイズされるサービス記述子に対応するサービスは、サービスハンドオーバーが適用され得ることを示すことができる。
このようなP2Pプローブ要求/応答過程を通じたデバイス発見後、追加的にサービス発見要求/応答過程を行うことができる。
下記の表5及び表6は、サービス発見応答メッセージに含まれるサービス情報を示す。
既存の方式に従うと、サービス発見応答メッセージ内に一つのサービスに対する情報が含まれていたので、多数のサービスに対するサービス発見を行うためには多数回のサービス発見要求/応答フレームの交換が必要であった。
本発明によると、P2Pサービス発見応答フレーム内に一つ以上のサービス情報記述子(Service Info Descriptor)というフィールドを定義することができる。前記表5に示すように、サービス情報記述子がいくつ含まれるかに対する情報を含むフィールドも共に定義することができる。前記表6は、一つのサービス情報記述子の各サブフィールドのフォーマットを示す。サービス情報記述子は、サービス状態(service status)、サービスハンドオーバー、サービス名称長さ、サービス名称、サービス情報長さ、及びサービス情報フィールドのうち一つ以上を含むことができる。
このように、デバイスA及びデバイスBは、1回のデバイス発見過程、サービス発見過程を通じて、サービスA及びサービスBに対するデバイス発見及びサービス発見を行うことができる。
図14では、サービスAに対するセッション要求、サービスAに対するセッション追加過程を示す。
図14に示す過程の詳細な事項は、図12の対応過程と同一であるので、重複する説明は省略する。図13〜図14に示す動作の結果として、サービスAに対するセッションが開始される。
図15〜図16では、サービスBに対するASP―セッションセットアップ動作を示す。
図15に示すように、サービスAに対するセッションが存在している二つのデバイス間でアプリケーションによってサービスBが呼び出される場合は、サービスAからサービスBへの転換が行われなければならない。このために、新たなサービスBに対するセッションをセットアップしなければならない。
この場合、従来技術によると、いずれかの各デバイス間に新たなサービスBを追加するためには、プロビジョン発見要求/応答、GO交渉過程、セッション要求、セッション追加過程を行うことに定義されている。しかし、デバイスAとデバイスBとの間にP2P連結が既に存在している場合、サービスBに対するセッションのセットアップのためにデバイスAとデバイスBとの間にプロビジョン発見要求/応答過程を通じて連結ケーパビリティ情報を交換することは不要または非効率的である。
したがって、図15に示すように、サービスAからサービスBへの転換を行うために、新たなサービスBに対するセッションセットアップのためにプロビジョン発見要求/応答過程を省略(skip)し、直ぐセッション要求、セッション追加過程を行うことができる。
図15の例を通じて、サービスアドバタイザーとサービスシーカーとの間にL2(第2の層)/L3(第3の層)連結(例えば、IP連結またはP2P連結)が既に設定されている場合のメッセージシーケンスに対して説明した。この場合、サービスシーカーは、プロビジョン発見過程を行わず、REQUEST_SESSIONメッセージを用いてサービス要求を開始することができる。
図16には、ASPがサービスAに対するASPセッションを終了する動作を示す。サービスシーカーデバイスでユーザー入力によってサービスAに対するセッションの終了が指示されると、これによってサービス終了過程を行うことができる。
図17は、本発明の追加的な実施例に係るサービス転換を説明するための図である。
図17は、図15の代わりに行われる動作を示す。すなわち、本発明の追加的な例示によるサービス転換動作は、図13、図14、図17及び図16の順にサービスAに対するセッションセットアップ(図13及び図14)、サービスBに対するセッションセットアップ(図17)、サービスAに対するセッション終了(図16)を行うことができる。
図17の例示によると、デバイスBでサービス転換に対するユーザー入力が発生すると、サービスBは、ASPにセッション連結を指示することができる。これによって、デバイスBのASPは、セッション要求(REQUEST_SESSION)メッセージをデバイスAに伝達するが、セッション要求メッセージには、セッション情報(すなわち、サービスBに対するセッション情報)が含まれる。セッション要求に含まれたセッション情報に基づいて、デバイスAのサービスBは、アプリケーションを通じてサービスBに対するセッションセットアップに対するユーザー入力を受けることができる。
サービスBがデバイスAで利用可能でないか、ユーザー/アプリケーションによってサービスBが拒絶される場合は、図17のADDED_SESSIONメッセージの代わりにREJECTED_SESSIONメッセージが伝達され得る。この場合、元のセッション(すなわち、サービスAに対するセッション)を維持することができる。
図17の例を通じて、サービスアドバタイザーとサービスシーカーとの間にL2(第2の層)/L3(第3の層)連結(例えば、IP連結またはP2P連結)が既に設定されている場合のメッセージシーケンスに対して説明した。この場合、サービスシーカーは、プロビジョン発見過程を行わず、REQUEST_SESSIONメッセージを用いてサービス要求を開始することができる。ここで、サービス情報(ヒント情報またはメタデータ)はREQUEST_SESSIONメッセージに含まれる。
図18は、本発明で提案するサービスハンドオーバーを説明するための図である。
各WFDSサービス(例えば、ディスプレイサービスとプレイサービス)間のシームレスサービスハンドオーバーは、ユーザー経験の品質を高めるのに非常に重要である。
図18の例示では、デバイスAのユーザーの入力によってデバイスAとデバイスBとの間のディスプレイサービス(例えば、ミイラキャスト)が開始される場合を仮定する。すなわち、ディスプレイサービスに対して、デバイスAは送信側またはソース(Source)としての役割をし、デバイスBは受信側またはシンク(Sink)としての役割をする。ディスプレイサービスにより、デバイスAで駆動されるホームスクリーン、ゲーム、アプリ(Apps)などの画面がデバイスBに表示され得る。
図18の例示では、ディスプレイサービスが開始され、デバイスAとデバイスBとの間のWFDSディスプレイサービスが樹立されると、例えば、ディスプレイサービスによってデバイスAのホーム画面がデバイスBに表示され得る。
この場合、デバイスAのユーザーがギャラリーアプリを駆動し、いずれかの映画ファイルを選択する場合を仮定する。この場合、ディスプレイサービスは、ファイル基盤のコンテンツを処理するのに適しておらず、プレイサービスによってファイル基盤のコンテンツを表示するサービスを提供することに適している。したがって、ディスプレイサービスからプレイサービスへのハンドオーバー(または、上述したようなサービス転換(switch))が要求される。
図18の例示において、デバイスAからデバイスBにハンドオーバー要求(すなわち、ディスプレイサービスからプレイサービスへのハンドオーバー/転換を要求)メッセージが伝達され、WFDSサービスハンドオーバーが行われた後、プレイサービスによってデバイスAのユーザーが選択した映画ファイルがデバイスBで再生され得る。すなわち、プレイサービス(例えば、DLNA)に対してデバイスAが送信側または「+PU+」(Push Controller)としての役割をし、デバイスBは、受信側またはDMR(Digital Media Renderer)としての役割をする。
図19は、本発明の追加的な実施例に係るサービスハンドオーバー過程を説明するための図である。
図19の例は、図13〜図16を参照して説明したサービス転換方案において、図15〜図16の動作を代替することと理解することができる。すなわち、本発明の追加的な例示によるサービスハンドオーバー動作は、図13及び図14の順にサービスAに対するセッションセットアップ(図13及び図14)及びサービスAからサービスBへのハンドオーバー(図19)を行うことができる。
デバイスAとデバイスBは、いずれもサービスA及びサービスBという同一のサービスを支援し、サービスA及びサービスBはいずれもサービスハンドオーバーを支援すると仮定する。
図19の例において、デバイスBのアプリケーション/ユーザーがサービスAの遂行中にサービスBにハンドオーバーすることに決定し、これをサービスAに知らせることができる。これによって、サービスAは、ASPにサービスハンドオーバーを指示するメソッド(ServiceHandover())を伝達することができる。
デバイスBのサービスBは、ASPにServiceHandover()メソッドを通じてサービスBへのハンドオーバーを要求する。これを受けたデバイスBのASPは、デバイスAのASPにASPコーディネーションプロトコルのHANDOVER_SESSIONメッセージを用いてハンドオーバーを要求する。このとき、HANDOVER_SESSION内には、ハンドオーバー対象であるサービスBのadvertisement_id、mac_address、session_id情報を含ませることができる。これを受けたデバイスAのASPは、SessionHandover()イベントをサービスAに伝達することができる。このように要求されるサービスハンドオーバーの収容または拒絶の有無は、アプリケーションの設定またはユーザーによって決定することができる。現在進行中のデバイスAのサービスAは、ハンドオーバーに対するアプリケーション/ユーザーの収容により、現在のセッションを閉鎖し、使用するポートを解除することができる。その後、アプリケーション/ユーザーは、サービスBに対するセッションを追加し、この結果をASPコーディネーションプロトコルのADDED_SESSIONメッセージを通じてデバイスBに知らせるようになる。これを受けたデバイスBのASPは、デバイスAでハンドオーバーを収容したことが分かり、サービスBを行うことができる。
図19の例のようなセッションハンドオーバー動作のために、ASPコーディネーションプロトコルで新たなOpcodeを定義することができる。Opcodeは、メッセージタイプを示すことができる。例えば、下記の表7のように、Opcode=4をHANDOVER_SESSIONメッセージを指示するものと定義することができる。
表8は、図19の実施例と関連するHANDOVER_SESSIONメッセージのフォーマットを示す。
図20は、本発明の一実施例に係るサービスハンドオーバー過程を説明するための図である。
図20の例は、図13〜図16を参照して説明したサービス転換方案において、図15〜図16の動作を代替することと理解することができる。すなわち、本発明の追加的な例によるサービスハンドオーバー動作は、図13及び図14の順にサービスAに対するセッションセットアップ(図13及び図14)及びサービスAからサービスBへのハンドオーバー(図20)を行うことができる。
デバイスAとデバイスBは、いずれもサービスA及びサービスBという同一のサービスを支援し、サービスA及びサービスBはいずれもサービスハンドオーバーを支援すると仮定する。
図20の例において、デバイスBのアプリケーション/ユーザーがサービスAの遂行中にサービスBにハンドオーバーすることに決定し、これをサービスAに知らせることができる。これによって、サービスAは、ASPにサービスハンドオーバーを指示するメソッド(ServiceHandover())を伝達することができる。
サービスハンドオーバーに対するメソッドは、ServiceHandover(service_mac、advertisement_id、session_information、session_mac、session_id)と定義することができる。
ここで、service_macフィールドは、遠隔P2PデバイスのMACアドレスを意味する。図13のSearchResultイベントによってリターンされた値と同一の値を有することができる。advertisement_idフィールドは、ハンドオーバーターゲットサービス(すなわち、サービスB)のアドバタイズメントIDを示すことができる。session_informationフィールドは、サービスハンドオーバーを開始するとき、サービスアドバタイザーに伝えられるセッション情報に該当し、場合に応じてNULLに設定することもできる。session_macフィールドは、現在のASP―セッションに対するsession_idを割り当てたP2PデバイスのMACアドレスを意味する。session_idフィールドは、現在のASP―セッションのセッション識別子を意味する。ServiceHandover()メソッドによってsession_mac情報及びsession_id情報がリターンされ得る。
サービスAからServiceHandover()メソッドを受信したデバイスBのASPは、デバイスAにハンドオーバーセッション(HANDOVER_SESSION)メッセージを送り、サービスBに初期(Initiated)に設定されたセッション状態イベントを伝達することができる。これは、サービスシーカー側のASPがASP―セッションを要求したが、未だに使用する準備がされておらず、アドバタイザーの承認を待機しているか、またはネットワーク連結が未だに樹立されていないことを知らせる意味を有する。
デバイスBがデバイスAに伝達するハンドオーバーセッションメッセージには、サービスAに対するセッションMAC(session_mac)、セッションID、アドバタイズメントIDなどの情報と、サービスBに対するセッションMAC、セッションID、セッション情報などの情報を含ませることができる。セッションMAC(session_mac)情報は、セッションIDを割り当てたP2PデバイスのMACアドレスを示すことができる。
これによって、デバイスAのASPは、サービスBにセッション要求イベント(SessionRequest)を伝達し、サービスBは、アプリケーション/ユーザーにセッション情報を伝達し、ユーザー入力(例えば、収容)を受けることができ、これをサービスBに知らせると、サービスBは、ASPに確認メソッド(SessionConfirm())を伝達することができる。
デバイスAのASPは、セッション状態イベントをサービスBに伝達するが、その状態を要求された(Requested)に設定することができる。これは、サービスアドバタイズ側のASPが、他のデバイスによってセッションが要求されることをサービス層に知らせる意味を有する。また、デバイスAのASPは、開放(Open)に設定されたセッション状態イベントをサービスBに伝達することができる。これは、ASP―セッションセットアップが完了し、使用する準備がされたことを知らせる意味を有する。その後、デバイスAのサービスBとASPとの間のポート要求、ポートバインディング、ポート準備などのメソッド/イベントの交換後にセッション準備メソッド(SessionReady())がASPに伝達されると、ASPは、デバイスBにADDED_SESSIONメッセージを伝達することができる。ADDED_SESSIONメッセージには、MACアドレス、セッションIDなどの情報を含ませることができる。デバイスBのASPは、開放(Open)に設定されたセッション状態イベントをサービスBに伝達し、ACKメッセージをデバイスAに送ることができる。
その後、デバイスBのASPは、サービスAに閉鎖(Closed)に設定されたセッション状態イベントを伝達することができる。これは、セッション状態が開放(Open)または初期(Initiated)から閉鎖(Closed)状態に転換されたことを知らせる意味を有する。これによって、サービスAは、ASPにポート解除を指示するメソッド(ReleasePort())を伝達することができる。
また、デバイスBからACKメッセージを受信したデバイスAのASPは、サービスAに閉鎖(Closed)に設定されたセッション状態イベントを伝達することができる。これによって、サービスAは、ASPにポート解除を指示するメソッド(ReleasePort())を伝達することができる。
一方、デバイスBのサービスBは、デバイスAのサービスBにアプリケーションソケット連結を知らせ、アプリケーション層によってアプリケーションデータの伝送のためのリンクが形成され、これを通じてアプリケーションデータが送受信され得る状態になり、サービスBに対するサービスセッションが開始される。
図20の例において、デバイスAでサービスBが利用可能でないか、サービスBに対する要求がアプリケーション/ユーザーによって拒絶される場合、デバイスAは、ADDED_SESSIONメッセージの代わりにREJECTED_SESSIONメッセージをデバイスBに伝送し、元のセッション(すなわち、サービスAに対するセッション)を維持することができる。
図20の例のようなセッションハンドオーバー動作のために、ASPコーディネーションプロトコルで新たなOpcodeを定義することができる。Opcodeは、メッセージタイプを示すことができる。例えば、前記表6に示すように、Opcode=4をHANDOVER_SESSIONメッセージを指示するものと定義することができる。
また、HANDOVER_SESSIONメッセージのフォーマットは、下記の表9または表10のように定義することもできる。
前記表9及び表10において、Opcodeの値が4に設定され、これは、前記表6にしたがってHANDOVER_SESSIONメッセージタイプであることを示す。
前記表10は、前記表9に比べて現在のサービスに対するadvertisement_id情報がさらに含まれる例を示す。
また、サービス転換またはサービスハンドオーバーを支援するために、REQUEST_SESSIONメッセージを利用することもできる。すなわち、ASPコーディネーションプロトコルにおいて既存のREQUEST_SESSIONメッセージを修正し、ASP―セッションが既に存在している状況で新たなASP―セッションをセットアップするためのメッセージとして使用することもできる。このような修正されたREQUEST_SESSIONメッセージフォーマットは、下記の表11のように定義することができる。
図21は、本発明に係るサービスハンドオーバーの追加的な例を説明するための図である。
図21の例では、WFDSを支援するスマートフォンとTVとの間のサービスハンドオーバーを例示的に示す。スマートフォンは、プレイサービスの送信側(TX)機能及びディスプレイサービスのTX機能を支援するものと仮定する。TVは、プレイサービスの受信側(RX)機能及びディスプレイサービスのRX機能を支援するものと仮定する。
デバイス発見過程におけるプローブ要求/応答メッセージの交換を通じて、シーカーとしての役割をするスマートフォンは、アドバタイザーとしての役割をするTVの支援サービスとサービスハンドオーバーケーパビリティを確認することができる。
その後、WFDS規格によるセッション樹立過程後、ディスプレイサービス(例えば、ミイラキャスト)を開始するようになる。これによって、スマートフォンは、自身の画面をTVの画面にスクリーンミラーリングすることができる。ディスプレイサービスの遂行途中で、スマートフォンのユーザーがギャラリー内の特定A/Vファイル(すなわち、スマートフォンの格納所に格納されたファイル基盤の動画)を選択することができる。この場合、スマートフォンは、該当のファイル基盤のコンテンツをプレイサービスを通じてTVに伝送しようとする。ディスプレイサービスの途中でプレイサービスへの転換またはハンドオーバーの有無は、スマートフォン設定及び/または製造会社の政策などに従うことができる。
サービス転換/ハンドオーバーのために、スマートフォンは、HANDOVER_SESSIONメッセージをTVのASPに伝達し、プレイサービスへのハンドオーバーを試みる。TVがハンドオーバーを受諾すると、プレイサービスにハンドオーバーが行われる。ユーザーが選択したファイル基盤の動画が終了したり、ユーザーが中止する場合、設定にしたがって既存のディスプレイサービスに再びハンドオーバーし、元のサービスに復帰することができる。
このように、本発明は、WFDSデバイスが共通のサービスを支援する場合、ハンドオーバーの可否をデバイス発見時に知ることができ、ASP間の制御メッセージを通じてサービス間のハンドオーバーまたは元のサービスへの復帰を途切れなく行うことができる。
さらに、本発明では、ASPがサービスに呼び出し(call)をするConnectionStatusイベントプリミティブを提案する。ConnectionStatusイベントは、ASPが自身のグループ形成やサービス要求などに対する進行状況をサービスに報告するために利用される。ConnectionStatusイベントプリミティブは、ConnectStatus(session_mac、session_id、status)と定義することができる。
「状態(status)」フィールドは、サービスシーカーまたはサービスアドバタイザー側のASPのステートマシンの現在の状態を示す。「session_mac」フィールドは、session_idを割り当てたP2PデバイスのMACアドレスを示す。「session_id」フィールドは、ASP―セッションを開始したASPによって割り当てられるASP―セッション識別子を示す。
「状態」フィールドは、ServiceRequestSent、ServiceRequestReceived、serviceRequestDeferred、ServiceRequestAccepted、ServiceRequestFailed、GroupFormationStarted、GroupFormationComplete、またはGroupFormationFailedに設定することができる。
ServiceRequestSentは、サービスシーカーによってのみ使用することができる。サービスシーカーで閉鎖(Closed)状態にあるASPがサービスからConnectSessionsメソッドを受信し、意図する(intended)ピアASPとのIP連結が存在しない場合、ASPは、ServiceRequestSent状態に変更し、これを示すイベント(例えば、ConnectionStatusイベント)を伝送することができる。
ServiceRequestReceivedは、サービスアドバタイザーによってのみ使用することができる。サービスアドバタイザーで閉鎖(Closed)状態にあるASPが、新たなsession_id及びsession_macペア(pair)に対するP2Pプロビジョン発見要求を受信する場合、またはピアASPからREQUEST_SESSIONメッセージを受信する場合、ASPは、ServiceRequestSent状態に変更し、これを示すイベントを伝送することができる。
ServiceRequestDeferredは、サービス要求が直ぐ収容されない場合に使用することができる。サービスシーカーでServiceRequestSent状態にあるASPが、状態=1に設定されたP2Pプロビジョン発見応答を受信する場合、ASPは、ServiceRequestDeferred状態に変更し、これを示すイベントを伝送することができる。また、サービスアドバタイザーでASPがServiceRequestReceived状態にあり、対応するAdvertiseServiceメソッドでauto_acceptがFALSEに設定された場合、ASPは、ServiceRequestDeferred状態に変更し、これを示すイベントを伝送することができる。遠隔デバイスがユーザー入力を待機している場合は、本イベントと後続するConnectStatus(ServiceRequestAccepted)イベントとの間にまたは本イベントとConnectStatus(ServiceRequestFailed)イベントとの間には長い遅延が発生し得る。本イベントの受信側はタイムアウトを具現しなければならない。
ServiceRequestAcceptedは、サービス要求が収容されることを示す。サービスシーカーでServiceRequestSent状態にあるASPが状態=0に設定されたP2Pプロビジョン発見応答を受信し、ConnectionCapability交換が成功である場合、ASPは、ServiceRequestAccepted状態に変更し、これを示すイベントを伝送することができる。サービスシーカーでServiceRequestDeffered状態にあるASPが状態=0に設定されたP2Pプロビジョン発見応答を受信した場合、ASPは、ServiceRequestAccepted状態に変更し、これを示すイベントを伝送することができる。サービスアドバタイザーでServiceRequestDeffered状態にあるASPがconfirmed=TRUEに設定されたConfirmSessionメソッドを受信する場合、ASPは、ServiceRequestAccepted状態に変更し、これを示すイベントを伝送することができる。
ServiceRequestFailedは、次のような場合に利用される。サービスシーカーでServiceRequestDeffered状態に設定されたASPが、所定の時間の間P2Pプロビジョン発見要求を受信できないか、または受信されたP2Pプロビジョン発見要求に基づいて有効な連結ケーパビリティを設定できない場合、ASPは、ServiceRequestFailed状態に変更し、これを示すイベントを伝送することができる。サービスアドバタイザーでServiceRequestReceived状態にあるASPが、受信されたP2Pプロビジョン発見要求に基づいて有効な連結ケーパビリティを設定できず、対応するAdvertiseServiceメソッドでauto_acceptがFALSEに設定された場合、ASPは、ServiceRequestFailed状態に変更し、これを示すイベントを伝送することができる。サービスアドバタイザーでServiceRequestDeffered状態にあるASPが、confirmed=FALSEに設定されたConfirmSessionメソッドを受信する場合、ASPは、ServiceRequestFailed状態に変更し、これを示すイベントを伝送することができる。サービスは、前記のようなイベントを受信した後、CloseSessionメソッドを呼び出すことができる。
GroupFormationStartedは、P2Pグループ形成が開始されることを示す。サービスシーカーでASPがServiceRequestAccepted状態にある場合、ASPは、GroupFormationStarted状態に変更し、これを示すイベントを伝送することができる。サービスアドバタイザーでASPがServiceRequestReceived状態にあり、対応するAdvertiseServiceメソッドでauto_acceptがTRUEに設定された場合、ASPは、GroupFormationStarted状態に変更し、これを示すイベントを伝送することができる。サービスアドバタイザーでASPがServiceRequestAccepted状態にあり、意図するピアASPとのIP連結が存在しない場合、ASPは、GroupFormationStarted状態に変更し、これを示すイベントを伝送することができる。
GroupFormationCompleteは、P2Pグループが成功裏に形成されたり、またはP2Pグループが既に形成されていること(すなわち、IP連結の存在)を示す。
GroupFormationFailedは、P2Pグループ形成に失敗することを示す。
図22は、本発明に係るASP―セッションに対するステートマシンを説明するための図である。
全てのWFDSデバイスは、それぞれのASP―セッションに対するステートマシン(state machine)を有することができる。図22は、一つのASP―セッションに対するステートマシンを例示的に示す。
ASPがサービスからConnectSessionsメソッドを受信すると、ASPは、サービスシーカーとして新たなASP―セッション(初期(Initiated)状態に設定される)を生成することができる。初期(Initiated)状態は、複数のサブ―ステート(sub―states)で構成することができる。サービスシーカーに対するサブ―ステートマシンは、図23を参照して後述する。初期(Initiated)状態で、ASPがピアASPから該当のASP―セッションに対するADD_SESSIONメッセージを受信する場合、ASP―セッション状態は開放(Open)状態に変更される。ASPがサービスからCloseSessionメソッドを受信したり、ピアASPからREJECTED_SESSIONメッセージを受信したり、P2P交換タイムアウト(またはPD(Provision Discovery)交換タイムアウト)イベントが発生したり、連結ケーパビリティ交換失敗が発生したり、または他の連結失敗イベントが発生する場合、ASP―セッション状態は初期(Initiated)状態から閉鎖(Closed)状態に変更される。
ASPが新たなsession_mac及びsession_idペアに対するP2P PD(Provision Discovery)要求を受信したり、REQUEST_SESSIONメッセージを受信する場合、ASPは、サービスアドバタイザーとして新たなASP―セッション(要求された(Requested)状態に設定される)を生成することができる。要求された(Requested)状態は、複数のサブ―ステートで構成することができる。サービスアドバタイザーに対するサブ―ステートマシンは、図24を参照して後述する。ASPがサービスからSetSessionReadyメソッドを受信する場合、ASP―セッション状態は要求された(Requested)状態から開放(Open)状態に変更される。要求された(Requested)状態にあるASPがサービスからCloseSessionメソッドまたはConfirmSession(confirmed=FALSE)メソッドを受信したり、または他の連結失敗イベントが発生する場合、ASP―セッション状態は閉鎖(Closed)状態に変更される。
サービスアドバタイザー及びサービスシーカーの全てに対して開放(Open)状態で、ASPがサービスからCloseSessionメソッドを受信したり、ピアASPからREMOVED_SESSIONメッセージを受信したり、または他の連結失敗イベントが発生する場合、ASP―セッション状態は閉鎖(Closed)状態に変更される。
図23は、サービスシーカーに対するサブ―ステートマシンを説明するための図である。
図23のステートマシンは、初期(Initiated)ステート上でのサービスシーカーに対するステートマシンを示す。
エントリー(Entry)ステートでピアデバイスとのIP連結が存在する場合は、グループ形成完了(GroupFormationComplete)ステートに遷移(transit)する。エントリー(Entry)ステートでピアデバイスとのIP連結が存在しない場合は、PD(Provision Discovery)要求をピアASPに伝送し、サービス要求伝送(ServiceRequestSent)ステートに遷移する。
ServiceRequestSentステートでASPがピアASPから状態=0に設定されたP2P PD応答を受信する場合、ピアASPからのP2P PD応答の連結ケーパビリティが有効であるとServiceRequestAcceptedステートに遷移し、ピアASPからのP2P PD応答の連結ケーパビリティが有効でないと閉鎖(Closed)ステートに遷移する。ServiceRequestSentステートでASPがピアASPから状態=1に設定されたP2P PD応答を受信する場合、ServiceRequestDeferredステートに遷移する。
ServiceRequestDeferredステートでASPがピアASPから状態=0に設定されたP2P PD要求を受信する場合、ピアASPにP2P PD応答を送信し、ASPがP2P PD応答に対する有効な連結ケーパビリティを設定できないとServiceRequestFailedステートに遷移し、ASPがP2P PD応答に対する有効な連結ケーパビリティを設定できるとServiceRequestAcceptステートに遷移する。ServiceRequestDeferredステートでASPが所定の時間内にPD要求を受信できないとServiceRequestFailedステートに遷移する。
ServiceRequestFailedステートから閉鎖(Closed)ステートに遷移する。
ServiceRequestAcceptedステートからGroupFormationStartedステートに遷移する。
GroupFormationStartedステートで、P2P GO交渉プロセスに失敗したり、自律(autonomous)GO生成に失敗したり、存在しているP2Pグループにジョイン(join)することに失敗したり、または他の理由により、GroupFromationFailedステートに遷移するようになる。GroupFormationStartedステートで、P2Pグループ形成が成功であるとGroupFromationCompleteステートに遷移する。
GroupFormationFailedステートから閉鎖(Closed)ステートに遷移する。
GroupFormationCompleteステートで、必要な場合(新たなP2Pグループの場合)IPアドレスをセットアップしたり、ASPコーディネーションプロトコルに対するUDPソケットをセットアップしたり、サービスシーカーにREQUEST_SESSIONメッセージを送信したり、サービスシーカーがサービスアドバタイザーからADDED_SESSIONメッセージを受信すると開放(Open)ステートに遷移したり、サービスシーカーがサービスアドバタイザーからREJECT_SESSIONメッセージを受信すると閉鎖(Closed)ステートに遷移したり、サービスシーカーがサービスからCloseSessionメソッドを受信すると閉鎖(Closed)ステートに遷移することができる。
他の失敗の場合に閉鎖(Closed)ステートに遷移する。
ServiceRequestFailedステート、GroupFormationFailedステート及びServiceRequestAcceptedステートは、該当のステート内で何ら動作(action)もないので、閉鎖(Closed)ステートになり得る。
図24は、サービスアドバタイザーに対するサブ―ステートマシンを説明するための図である。
図24のステートマシンは、Requestedステート上でのサービスアドバタイザーに対するステートマシンを示す。
エントリー(Entry)ステートで、ASPが新たなsession_id及びsession_macペアに対するP2P PD要求を受信したり、またはASPがサービスシーカーからREQEUST_SESSIONメッセージを受信すると、ASP―セッションはServiceRequestReceivedステートになり得る。
ServiceReqeustReceivedステートで、サービスアドバタイザーがauto_acceptをFALSEに設定すると、session_Requestイベントをサービスに送り、ServiceRequestDeferredステートに遷移する。ServiceReqeustReceivedステートで、サービスアドバタイザーがauto_acceptをTRUEに設定し、ピアASPとのIP連結が存在しないと、P2P PD応答をピアASPに送り、ASPがP2P PD応答に対して有効な連結ケーパビリティを設定できるとGroupFormationStartedステートに遷移し、ASPがP2P PD応答に対する有効な連結ケーパビリティを設定できないとServiceRequestFailedステートに遷移する。ServiceReqeustReceivedステートで、サービスアドバタイザーがauto_acceptをTRUEに設定し、ピアASPとのIP連結が存在すると、ServiceRequestAcceptedステートに遷移する。
ServiceRequestDeferredステートで、ASPがサービスからconfirmed=FALSEに設定されたConfirmSessionメソッドを受信するとServiceReqeustFailedステートに遷移し、ASPがconfirmed=TRUEに設定されたConfirmSessionメソッドを受信するとServiceReqeustAcceptedステートに遷移する。
ServiceRequestFailedステートから閉鎖(Closed)ステートに遷移する。
ServiceReqeuestAcceptedステートで、ピアデバイスとのIP連結が存在しない場合(すなわち、P2P PD交換によってサービス要求が開始された場合)、状態=0に設定されたP2P PD要求メッセージをピアASPに送り、ASPがピアASPからP2P PD応答で有効な連結ケーパビリティを受信するとGroupFormationStartedステートに遷移し、ASPがピアASPからP2P PD応答で有効でない連結ケーパビリティを受信すると閉鎖(Closed)ステートに遷移する。ServiceReqeuestAcceptedステートで、ピアデバイスとのIP連結が存在する場合(すなわち、REQUEST_SESSIONメッセージによってサービス要求が開始された場合)、ASPがサービスからSetSessionReadyメソッドを受信すると開放(Open)ステートに遷移する。ServiceReqeuestAcceptedステートで、ASPがサービスからCloseSessionメソッドを受信すると閉鎖(Closed)ステートに遷移する。
GroupFormationStartedステートで、P2P GO交渉に失敗したり、自律(autonomous)GO生成に失敗したり、存在しているP2Pグループにジョインすることに失敗したり、または他の理由により、GroupFromationFailedステートに遷移するようになる。GroupFormationStartedステートで、P2Pグループ形成が成功であるとGroupFromationCompleteステートに遷移する。
GroupFormationFailedステートから閉鎖(Closed)ステートに遷移する。
GroupFormationCompleteステートで、必要な場合(新たなP2Pグループの場合)IPアドレスをセットアップしたり、ASPコーディネーションプロトコルに対するUDPソケットをセットアップしたり、ASPがサービスからSetSessionReadyを受信すると開放(Open)ステートに遷移したり、ASPがCloseSessionメソッドを受信すると閉鎖(Closed)ステートに遷移することができる。
他の失敗の場合に閉鎖(Closed)ステートに遷移する。
ServiceRequestFailedステート及びGroupFormationFailedステートは、該当のステート内で何ら動作もないので、閉鎖(Closed)ステートになり得る。
図13〜図24で説明する本発明の例示的な方法は、説明の簡明さのために動作のシリーズとして表現されているが、これは、段階が行われる順序を制限するためのものではなく、必要な場合、それぞれの段階が同時にまたは異なる順序で行われることもある。また、本発明で提案する方法を具現するために、図面で例示する全ての段階が必ず必要なものではない。
また、本発明に係る方法において、上述した本発明の多様な実施例で説明した事項は、独立的に適用されたり、または2以上の実施例が同時に適用されるように具現することができる。
図25は、本発明の一実施例に係る無線デバイスの構成を示すブロック図である。
無線デバイス10は、プロセッサ11、メモリ12及び送受信機13を含むことができる。送受信機13は、無線信号を送信/受信することができ、例えば、IEEE 802システムによる物理層を具現することができる。プロセッサ11は、送受信機13と電気的に連結され、IEEE 802システムによる物理層及び/またはMAC層を具現することができる。また、プロセッサ11は、上述した本発明の多様な実施例に係るアプリケーション、サービス、及びASP層のうち一つ以上の動作を行うように構成することができる。また、上述した本発明の多様な実施例に係る無線デバイスの動作を具現するモジュールがメモリ12に格納され、プロセッサ11によって実行されることもある。メモリ12は、プロセッサ11の内部に含まれたり、またはプロセッサ11の外部に設置され、プロセッサ11と公知の手段によって連結され得る。
図25の無線デバイス10は、Wi―Fiダイレクトサービスを支援し、セッションセットアップを行うように設定することができる。プロセッサ11は、第1のサービスに対するセッションを生成するために、前記第1の無線デバイスと第2の無線デバイスとの間のプロビジョン発見過程を含む、前記第1の無線デバイスと前記第2の無線デバイスとの間のP2P(Peer―to―Peer)連結をセットアップするように設定することができる。プロセッサ11は、第2のサービスに対するセッションを生成するために、前記第1の無線デバイスから前記第2の無線装置にセッション要求(REQUEST_SESSION)メッセージを伝送するように(または無線デバイス10が第2の無線デバイスである場合は、セッション要求(REQUEST_SESSION)メッセージを受信するように)前記送受信機を制御するように設定することができる。前記第2のサービスに対するセッション情報は、前記セッション要求メッセージに含ませることができる。
図25の無線デバイス10の具体的な構成は、上述した本発明の多様な実施例で説明した各事項が独立的に適用されたり、または2以上の実施例が同時に適用されるように具現することができ、重複する内容は、明確性のために説明を省略する。
上述した本発明の各実施例は、多様な手段を通じて具現することができる。例えば、本発明の各実施例は、ハードウェア、ファームウェア、ソフトウェアまたはそれらの結合などによって具現することができる。
ハードウェアによる具現の場合、本発明の各実施例に係る方法は、一つまたはそれ以上のASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、プロセッサ、コントローラー、マイクロコントローラー、マイクロプロセッサなどによって具現することができる。
ファームウェアやソフトウェアによる具現の場合、本発明の各実施例に係る方法は、以上で説明した機能または各動作を行うモジュール、手順または関数などの形態で具現することができる。ソフトウェアコードは、メモリユニットに格納され、プロセッサによって駆動され得る。前記メモリユニットは、前記プロセッサの内部または外部に位置し、既に公知の多様な手段によって前記プロセッサとデータを取り交わすことができる。
上述したように開示された本発明の好ましい実施形態に対する詳細な説明は、当業者が本発明を具現して実施できるように提供された。以上では、本発明の好ましい実施形態を参照して説明したが、該当の技術分野で熟練した当業者であれば、下記の特許請求の範囲に記載した本発明の思想及び領域から逸脱しない範囲内で本発明を多様に修正及び変更させ得ることを理解できるだろう。したがって、本発明は、ここで示した各実施形態に制限されるものではなく、ここで開示した各原理及び新規の各特徴と一致する最広の範囲を付与するためのものである。