本明細書に添付される図面は、本発明に関する理解を提供するためのもので、本発明の様々な実施の形態を示し、明細書の記載と共に本発明の原理を説明するためのものである。
以下、本発明の好適な実施形態を、添付の図面を参照して詳細に説明する。添付の図面と共に以下に開示される詳細な説明は、本発明の例示的な実施形態を説明するためのもので、本発明を実施できる唯一の実施形態を示すものではない。以下の詳細な説明は、本発明の完全な理解を提供するために具体的な細部事項を含む。しかし、当業者には、本発明がそれらの具体的な細部事項なしにも実施可能であるということが理解される。
以下の実施例は、本発明の構成要素及び特徴を所定の形態で結合したものである。各構成要素又は特徴は、特別の言及がない限り、選択的なものとして考慮することができる。各構成要素又は特徴は、他の構成要素や特徴と結合されない形態で実施可能である。また、一部の構成要素及び/又は特徴を結合して本発明の実施例を構成してもよい。本発明の実施例で説明される動作の順序は変更可能である。ある実施例の一部の構成や特徴は、別の実施例に含まれてもよく、別の実施例の対応する構成又は特徴に取り替えられてもよい。
以下の説明で使用される特定用語は、本発明の理解を助けるために提供されたもので、これらの特定用語の使用は、本発明の技術的思想から逸脱しない範囲で他の形態に変更可能である。
場合によっては、本発明の概念が曖昧になることを避けるために、公知の構造及び装置を省略したり、各構造及び装置の核心機能を中心にしたブロック図の形式で図示することができる。また、本明細書全体にわたって同一の構成要素には同一の図面符号を付して説明する。
本発明の実施例は、無線アクセスシステムである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構造は複数個の構成要素を含むことができ、これらの相互作用によって上位層に対してトランスペアレントな移動性を支援する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)の利用を含むことができる。
層構造
無線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は、WFD(Wi−Fi Direct)ネットワークを例示する。WFDネットワークは、Wi−Fi装置がホームネットワーク、オフィスネットワーク及びホットスポットネットワークに参加しなくても、互いにデバイスツーデバイス(Device to Device;D2D)(あるいは、Peer−to−Peer;P2P)通信を行うことができるネットワークであって、Wi−Fi連合(Alliance)によって提案された。以下、WFDベースの通信をWFD D2D通信(簡単にD2D通信)あるいはWFD P2P通信(簡単にP2P通信)と呼ぶ。また、WFD P2P実行デバイスをWFD P2Pデバイス、簡単にP2Pデバイス又はピア(Peer)デバイスと呼ぶ。
図2を参照すると、WFDネットワーク200は、第1のP2Pデバイス202及び第2のP2Pデバイス204を含む少なくとも1つのWi−Fiデバイスを含むことができる。P2Pデバイスは、ディスプレイ装置、プリンタ、デジタルカメラ、プロジェクタ及びスマートフォンなどのWi−Fiを支援するデバイスを含む。また、P2Pデバイスは、Non−AP STA及びAP STAを含む。図示された例において、第1のP2Pデバイス202は携帯電話であり、第2のP2Pデバイス204はディスプレイ装置である。WFDネットワーク内のP2Pデバイスは互いに直接接続可能である。具体的に、P2P通信は、2つのP2Pデバイス間の信号伝送経路が第3のデバイス(例えば、AP)または既存のネットワーク(例えば、APを経てWLANに接続)を経ずに当該P2Pデバイス間に直接設定された場合を意味することができる。ここで、2つのP2Pデバイス間に直接設定された信号伝送経路はデータ伝送経路に制限され得る。例えば、P2P通信は、複数のNon−STAがAPを経ずにデータ(例、音声/映像/文字情報など)を伝送する場合を意味することができる。制御情報(例、P2P設定のためのリソース割当情報、無線デバイス識別情報など)のための信号伝送経路は、P2Pデバイス(例えば、Non−AP STA−対−Non−AP STA、Non−AP STA−対−AP)間に直接設定されるか、またはAPを経由して2つのP2Pデバイス(例えば、Non−AP STA−対−Non−AP STA)間に設定されるか、またはAPと当該P2Pデバイス(例えば、AP−対−Non−AP STA#1、AP−対−Non−AP STA#2)間に設定されてもよい。
図3は、WFDネットワークを構成する過程を説明するための図である。
図3を参照すると、WFDネットワーク構成過程は2つの過程に大別することができる。1番目の過程は、近隣発見過程(Neighbor Discovery、ND、procedure)であり(S302a)、2番目の過程は、P2Pリンク設定及び通信過程である(S304)。近隣発見過程を通じて、P2Pデバイス(例えば、図2の202)は、(自身の無線)カバレッジ内の他の隣接P2Pデバイス(例えば、図2の204)を探し、当該P2Pデバイスとの関連付け(association)、例えば、事前−関連付け(pre−association)に必要な情報を獲得することができる。ここで、事前−関連付けは、無線プロトコルで第2のレイヤ事前−関連付けを意味することができる。事前−関連付けに必要な情報は、例えば、隣接P2Pデバイスに対する識別情報などを含むことができる。近隣発見過程は、利用可能な無線チャネル別に行うことができる(S302b)。その後、P2Pデバイス202は、他のP2Pデバイス204とWFD P2Pリンク設定/通信のための過程を行うことができる。例えば、P2Pデバイス202は、周辺のP2Pデバイス204に関連付けられた後、当該P2Pデバイス204がユーザのサービス要求事項を満足しないP2Pデバイスであるか否かを判断することができる。そのために、P2Pデバイス202は、周辺のP2Pデバイス204と第2のレイヤ事前−関連付け後、当該P2Pデバイス204を検索することができる。もし、当該P2Pデバイス204がユーザのサービス要求事項を満足しない場合、P2Pデバイス202は、当該P2Pデバイス204に対して設定された第2のレイヤ関連付けを切り、他のP2Pデバイスと第2のレイヤ関連付けを設定することができる。反面、当該P2Pデバイス204がユーザのサービス要求事項を満足する場合、2つのP2Pデバイス(202及び204)はP2Pリンクを介して信号を送受信することができる。
図4は、近隣発見過程を説明するための図である。図4の例示は、図3でのP2Pデバイス202とP2Pデバイス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通信は支援されない。両方ともグループクライアントであるからである。
図7は、WFDを行っている通信グループに参加(association)する方法を説明するための図である。
図7(a)に示すように、第1のSTA(710、以下、Aという)は、グループクライアント730に対してグループオーナーとして通信中にあり、第2のSTA(720、以下、Bという)は、グループクライアント740に対してグループオーナーとして通信中にある。図7(b)に示すように、A710は、既存のWFD通信を終了(termination)し、B720が属したWFD通信グループに参加(association)することができる。A710は、B720がグループオーナーであるので、Bのグループクライアントとなる。A710は、B720に関連付けを要求する前に既存のWFD通信を終了することが好ましい。
図8は、WFD通信のためのリンクを設定する方法を説明するための図である。
図8(a)に示すように、第2のSTA(820、以下、Bという)は、既存のWFD通信においてグループオーナー(Group Owner)として動作中にある。既存のWFD通信においてグループクライアント830とWFD通信中にある場合、B820を発見した、WFD通信を行っていない第1のSTA(810、以下、Aという)が、B820との新しいWFD通信のためにリンク設定を試みる。この場合、B820がリンク設定を受諾した場合、A810とB820との間の新しいWFD通信リンクが設定され、A810は、既存のB820のWFDグループのクライアントとして動作することになる。このような場合、A810がB820のWFD通信グループに参加(association)した場合となる。A810は、グループオーナーであるB820とのみWFD通信を行うことができ、A810と既存のWFD通信のクライアント830とのWFD通信は支援されない。両方ともグループクライアントであるからである。
図9は、WFD通信グループに参加するリンクを設定する方法を説明するための図である。
図9(a)に示すように、第1のSTA(910、以下、Aという)は、グループオーナー930に対してグループクライアントとしてWFD通信中にある。このとき、他のWFD通信のグループクライアント940に対してグループオーナーとして通信中にある第2のSTA(920、以下、Bという)を発見したA910は、グループオーナー930とのリンクを終了(termination)し、B920のWi−Fi Directに参加することができる。
Wi−Fiダイレクトサービス(WFDS)
Wi−Fiダイレクトは、リンク層(Link layer)の動作まで定義するネットワーク接続の標準技術である。Wi−Fiダイレクトによって構成されたリンクの上位層で動作するアプリケーションに対する標準が定義されていないため、Wi−Fiダイレクトを支援するデバイスが互いに接続された後にアプリケーションを駆動する場合の互換性を支援することが難しかった。このような問題を解決するために、Wi−Fiダイレクトサービス(WFDS)という上位層アプリケーションの動作に対する標準化がWi−Fiアライアンス(WFA)で議論中である。
図10は、WFDSフレームワーク構成要素を説明するための図である。
図10のWi−Fi Direct層は、Wi−Fiダイレクト標準によって定義されるMAC層を意味する。Wi−Fi Direct層は、Wi−Fiダイレクト標準と互換するソフトウェアとして構成することができる。Wi−Fi Direct層の下位には、WiFi PHYと互換する物理層(図示せず)によって無線接続を構成することができる。Wi−Fi Direct層の上位にASP(Application Service Platform)というプラットフォームが定義される。
ASPは、サービスが必要とする機能を実行する論理個体である。ASPは、共通共有プラットフォーム(common shared platform)であり、その上位のアプリケーション(Application)層とその下位のWi−Fi Direct層との間でデバイス探索(Device Discovery)、サービス探索(Service Discovery)、ASPセッション管理(ASP Session management)、接続トポロジ管理(Connection topology management)及び保安(Security)などのタスクを処理することができる。
ASPの上位には、サービス(Service)層が定義される。サービス層は用途(use case)特定サービスを含む。WFAでは、4個の基本サービスである伝送(Send)、プレー(Play)、ディスプレイ(Display)、プリント(Print)サービスを定義する。WFAで定義する4個の基本サービスを簡略に説明すると、まず、Sendは、2つのWFDSデバイス間のファイル伝送を行うことができるサービス及びアプリケーションを意味する。伝送サービスは、ピア機器間のファイルを伝送するためのものであるという点で、ファイル伝送サービス(File Transfer Service、FTS)と呼ぶこともできる。Playは、2つのWFDSデバイス間のDLNA(Digital Living Network Alliance)をベースとするオーディオ/ビデオ(A/V)、写真、音楽などを共有またはストリーミングするサービス及びアプリケーションを意味する。Printは、文書、写真などのコンテンツを有しているデバイスとプリンタとの間で文書、写真出力を可能にするサービス及びアプリケーションを意味する。Displayは、WFAのミラキャスト(Miracast)ソースとシンクとの間に画面共有を可能にするサービス及びアプリケーションを意味する。
図10に示されたイネーブル(Enable)API(Application Program Interface)は、WFAで定める基本サービス以外にサードパーティー(3rd party)アプリケーションを支援する場合に、ASP共通プラットフォームを利用できるようにするために定義される。サードパーティーアプリケーションのために定義されるサービスは、1つのアプリケーションでのみ利用されてもよく、様々なアプリケーションで一般的に(又は共通的に)利用されてもよい。
以下、説明の便宜のため、WFAにより定義されたサービスはWFAサービス、WFAではなく、サードパーティーによって新たに定義されるサービスはイネーブルサービスと呼ぶ。
アプリケーション層は、ユーザインターフェース(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は、2つのデバイス間に複数個のASP−セッションをセットアップすることができる。それぞれのASP−セッションは、ASP−セッションを要求するASPによって割り当てられるセッション識別子によって識別されてもよい。
サービスは、他のサービス又はアプリケーションにASPを用いて用途特定機能を提供する論理的な個体である。1つのデバイスのサービスは、1つ以上の他のデバイスの対応するサービス、及びサービス−特定プロトコル(これは、サービス標準及びASPプロトコルによって定義できる)を用いて通信することができる。
ASPとサービスとの間のインターフェースは、メソッド(Method)及びイベント(Event)で定義される。Methodは、サービスによって開始される動作を示し、Methodのパラメータ(又はフィールド)には、実行しようとする動作に関する情報が含まれてもよい。Eventは、ASPからサービスに情報を提供する。
一例として、図12は、ASPとサービスとの間のメソッド及びイベントの伝送例を示す図である。
サービスがメソッド呼び出しを行うと、メソッド呼び出し返却値として制限された情報がサービスに返却される。全てのメソッド呼び出しは、直ちに返却されることが原則である。これによって、サービスに返却される値は、メソッド呼び出し返却の遅延を引き起こすネットワークを介して獲得された情報またはユーザから獲得された情報に依存してはならない。
ASPは、イベントを介してサービスに情報を提供する。メソッドのように、イベントもパラメータでデータを伝送する。イベントは一方向に伝送されるので、サービスがイベントのコンテンツに基づいてアクションを取ろうとする場合、メソッド呼び出しが後続しなければならない。
ASPと通信する複数のサービスは、メソッド及びイベントを使用することができる。メソッドは、サービスからASPに伝搬され、イベントは、ASPから特定サービスに伝搬され得る。イベントは、メソッド呼び出しに対して直ちに応答される必要はない。
再び図11を参照すると、ユーザがデバイスAとデバイスBとの間にサービスXを利用しようとする場合、それぞれのデバイス上のASPは、サービスX専用のASP−セッションをデバイス間に生成する。その後、ユーザがサービスYを利用しようとする場合、当該サービスのための新しいASP−セッションが確立(establish)される。ピア機器間に複数のASPセッションが確立された(established)場合、複数のASPセッションのそれぞれは、ASPセッションの確立を要求したピアデバイス(具体的には、ASPセッションの確立を要求したピアデバイスのASP)によって割り当てられるセッション識別子(Session Identifier)により識別することができる。
WFDSでは、2つのピアデバイス間の動作を定義するにおいて、それらのうち一方のデバイスはサービス広告器(advertiser)の役割を担い、他方のデバイスはサービス探索器(seeker)の役割を担うことができる。サービス探索器は、サービス広告器を発見(discover)し、所望のサービスを見つけた場合、サービス広告器との接続を要求することもできる。
サービス探索器として設定されたピア機器は、サービス広告器として設定されたピア機器を探索し、サービス広告器として設定されたピア機器から所望のサービスを発見すると、サービス広告器として設定されたピア機器に接続を要求することができる。具体的に、サービス探索器側がサービス広告器側にASPサービスセッション確立を要求すると、サービス広告器側は、サービス探索器側のASPセッション確立要求に応答することができる。
サービス広告器とサービス探索器との関係は固定されたものではない。一例として、サービス広告器及びサービス探索器としての役割は、いずれか1つのASPセッションと次のASPセッションにおいて互いに変わってもよい。ピア機器がサービス広告器として動作するか、サービス探索器として動作するかは、どのピア機器がサービスの探索(search)を開始したか否かに基づいて決定され得る。すなわち、サービスの探索を要求するピア機器がサービス探索器として機能することができる。
また、いずれか1つのピア機器が同じサービスに対して、サービス広告器及びサービス探索器として同時に設定されてもよく、いずれか1つのピア機器が複数のサービス広告器を有するか、または複数のサービス探索器を有してもよい。一例として、いずれか1つのピア機器は、第1のWi−Fiダイレクトサービス及び第2のWi−Fiダイレクトサービスのサービスに対してはサービス広告器として設定されると同時に、第3のWi−Fiダイレクトサービス及び第4のWi−Fiダイレクトサービスに対してはサービス探索器として設定されてもよい。
以下では、サービス広告器及びサービス探索器についてより詳細に説明する。
サービス広告器及びサービス探索器
サービス広告器として設定されたピア機器はサービスを広告し、サービス探索器は広告されたサービスを発見(discover)することができる。サービス広告器として設定されたピア機器は、サービス広告中断メソッド(CancelAdvertiseService method)がコール(call)されるか、または広告状態が中断として設定される前まで(例えば、AdvertiseStatusパラメータのstatus値がNotAdvertisedを指示)サービスを広告することができる。サービス広告器がサービスを広告するには、後連携(post association)及び早期連携(pre−association)のうち少なくとも1つを利用することができる。
サービス広告器が広告するサービスは、サービス名で識別することができる。具体的に、ピア機器は、サービス探索の間、各サービスがUTF−8サービス名文字列を含むように制御することができる。ここで、UTF−8でエンコーディングされたサービス名の長さは、255バイト又はそれ以下であってもよい。サービス名の長さは、サービス探索要求フレーム及びサービス探索応答フレームで利用可能な空間によって決定されてもよい。
“org.wi−fi”という文字列は、WFAサービスを識別するために予約されたものであってもよい。具体的に、WFAサービス名は、次の通りである。
org.wi−fi.wfds.send.tx
org.wi−fi.wfds.send.rx
org.wi−fi.wfds.play.tx
org.wi−fi.wfds.play.rx
org.wi−fi.wfds.display.tx
org.wi−fi.wfds.display.rx
org.wi−fi.wfds.print.tx
org.wi−fi.wfds.print.rx
もし、イネーブルサービスがorg.wi−fiで始まるサービス名を用いて広告又は探索することを試みる(attempt)場合、ASPは、広告又は探索に対するイネーブルサービスの試み(attempt)を拒絶することができる。イネーブルサービスのためには、逆ドメイン名表記法(Reserve domain name notation)を用いることができる。この表記法によれば、アプリケーション製作者(author)によって所有されたDNS名(例えば、example.com)における各要素(例えば、example及びcom)の順序を変えて配置したもの(例えば、com.example)をイネーブルサービスのサービス名のプレフィックス(prefix)として用いることができる。
これによって、イネーブルサービス名は、次の例のように定義することができる。
com.example.serviceX
com.example.productY
com.example.04cf75db−19d1−4d84−bef3−b13b33fcfa5a
イネーブルサービスは、1つのアプリケーションのために定義されてもよく、様々なアプリケーションにおいて一般的に実行されるために定義されてもよい。
サービスは、サービス名で識別されると同時に、サービス情報で定義される。これによって、サービス名が同じサービスであるとしても、サービス情報が異なる場合、互いに異なるサービスであるものと取り扱いされ得る。
サービスを広告するにおいて、サービス広告器は、広告されるそれぞれのサービスに広告ID(advertisement ID)を割り当てることができる。サービス広告器は、サービス別に、互いに異なる広告IDが割り当てられるように制御することができる。
サービス広告(Service Advertisement)は後連携(post association)でも利用することができる。そのために、ピア機器は、P2Pグループが形成された(formed)後、追加的なASPセッションの確立を許容することができる。
サービス探索手順は、サービス探索器がASPセッションを開始するのに必ず必要なものではない。サービス探索器は、サービス探索手順のために、アウトオブバンド(out of band)メカニズムを許容することもできる。なお、サービス探索器は、ピアデバイスの既発見のサービスをキャッシング(caching)することもできる。
サービス探索手順では、ワイルドカードサーチ(又はネームサーチ)を支援することができる。ワイルドカードサーチとは、プレフィックスサーチが支援されることを意味することができる。プレフィックスサーチは、プレフィックスを含む全てのサービスの検索が可能であることを意味することができる。一例として、全てのWFAサービス(即ち、Send、Play、Display、Print)を探索するために、‘org.wi−fi.wfds.*’(又は‘org.wi−fi.wfds*)という検索語を含むワイルドカードサーチが許容可能である。この場合、ワイルドカード検索の結果として、‘org.wi−fi.wfds’というプレフィックスを含む全てのサービスリストが返却され得る。
特定のWFAサービスを探索するためには、‘org.wi−fi.wfds.servicename.*’(又は‘org.wi−fi.wfds.servicename*’)(ここで、servicenameは、Send、Play、Display、Printのいずれか1つであってもよい)という検索語を含むワイルドカードサーチが許容可能である。この場合、ワイルドカード検索の結果として、‘org.wi−fi.wfds.servicename’というプレフィックスを含む全てのサービスリストが返却され得る。イネーブルサービスの場合もワイルドカードが許容されてもよいことは勿論である。
ワイルドカードサーチは、dot(‘.’)で分離される単語に限って許容可能である。例えば、イネーブルサービス名が“com.example.serviceX”であれば、‘com.*’(又は‘com*’)、‘com.example.*’(又は‘com.example*’)に限って、ワイルドカードサーチが許容可能である。
以下、サービス広告器及びサービス探索器で取り扱われるメソッド及びイベントについて詳細に説明する。
サービス広告器のメソッド
サービス広告器は、サービスの広告のためにサービス広告メソッド(Advertise Service Method)をコール(Call)することができる。これによって、サービス探索器は、広告されるサービスの検索、発見及びASPセッションを開始することができる。サービス広告メソッドには、サービス名パラメータ(又はサービス名のリストパラメータ)、ポートパラメータ、プロトコルパラメータ、共有パラメータ、自動受諾パラメータ及びサービス情報パラメータのうち少なくとも1つを含むことができる。各パラメータについての説明は、次の通りである。
i)サービス名(又はサービス名のリスト)
サービス名は、サービス探索を要求する(例えば、SeekService Methodコールを実行)サービス探索器によって検索が可能なサービスの特徴を識別する。サービス名とサービス探索器からの問い合わせ(query)に含まれた文字列との対照を通じてサービス名マッチングを行うことができる。
マッチングされるサービスが複数個である場合、サービス広告メソッドには、複数個のサービス名を含むサービス名リストが含まれてもよい。一例として、サービスが同じポートで伝送及び受信を支援すれば、伝送のためのサービス名(例えば、service.tx)及び受信のためのサービス名(service.rx)の全てがサービス名リストに含まれてもよい。例えば、検索が要求されるサービス名がorg.wi−fi.wfds.sendであり、サービスがorg.wi−fi.wfds.send.rx及びorg.wi−fi.wfds.send.txを全て支援すれば、サービス名リストには、“org.wi−fi.wfds.send”、“org.wi−fi.wfds.send.rx”及び“org.wi−fi.wfds.send.tx”が全て含まれてもよい。
サービスが同じポートナンバーで全てのWFAサービスを支援すれば、サービス名リストには、全てのWFAサービス名及び全てのWFAサービスでの伝送のためのサービス名が含まれてもよい。例えば、サービスが全てのWFAサービスを支援すれば、サービス名リストには、“org.wi−fi.wfds.send.tx、org.wi−fi.wfds.send.rx、org.wi−fi.wfds.send、org.wi−fi.wfds.play.tx、org.wi−fi.wfds.play.rx、org.wi−fi.wfds.play、org.wi−fi.wfds.display.tx、org.wi−fi.wfds.display.rx、org.wi−fi.wfds.display、org.wi−fi.wfds.print.tx、org.wi−fi.wfds.print.rx、org.wi−fi.wfds.print”が含まれてもよい。
ii)サービスポート
サービスポートは、登録されたサービスを聴取し、サービス探索器から受信される接続のためのIPポートである。サービス広告器は、サービス名検索の結果パラメータとしてサービスポートをサービス探索器に知らせることができる。ただし、サービスポートは、サービス名のようにサービス探索器によって検索可能なものではない。サービスポートは予約されたものであるので、サービスポートを共有するように設定されていない限り(例えば、共有パラメータが“true”に設定されていない限り)、他のサービス又は他のアクティブASPセッションが同じポートを使用することができない。
もし、サービス広告を要求するメソッド(AdvertiseService method)が呼び出されるとき、サービスポートが利用可能でなければ、サービス広告が失敗したことを知らせるイベント(例えば、Advertise Failed Event)がASPからサービスに伝送されてもよい。
サービスのためのASPセッションが生成され、ネットワークインターフェースが知られている状態のとき、サービスポートは、アプリケーションによって縛られていてもよい。
iii)プロトコル
プロトコルは、IANA(Internet Assigned Number Authority)で定義された整数として定義することができる。例えば、TCPは数字6として定義し、UDPは数字17として定義することができる。
iv)共有
共有パラメータは、他のサービスとサービスポートを許容するか否かを指示する。一例として、共有パラメータの値が“True”である場合、サービスポートは、他の広告及びASPセッションによって再使用可能である。サービスポートを共有するASPセッションはサービスポートを独占的に制御してはならない。これとは異なり、共有パラメータの値が“Service”である場合、サービスポートは、同じサービス名を有する他のサービスの広告によって再使用可能である。共有パラメータの値が“False”である場合、1つのサービスがサービスポートを独占的に制御することができる。
サービスが、現在広告中のサービスによって使用されるサービスポートの独占的使用を要求する場合、ASPは、サービスに広告が失敗したことを知らせるイベント(AdvertiseFailed Event)を伝送することができる。サービスが、独占的使用が予約された(reserved)サービスポートの共有を要求した場合にも、ASPは、サービスに広告が失敗したことを知らせるイベントを伝送することができる。なお、サービスが既に他のサービス広告メソッド(Advertise Service Method)と共有されているサービスポートを非共有(non−share)サービスポートとして設定することを要求する場合にも、ASPは、サービスに広告が失敗したことを知らせるイベントを伝送することができる。
v)自動受諾
サービス広告器のASPは、ASPセッションのセットアップのために、セッション要求イベント(SessionRequest Event)をサービス層に伝送することができる。このとき、もし、自動受諾パラメータの値が“True”であれば、サービス広告器は、サービ層でセッション要求イベントに対する応答としてセッション確認メソッド(ConfirmSession Method)が呼び出されなくても、サービス探索器からの全てのASPセッション要求(ASP−session request)を受諾することができる。
ただし、セッション要求イベント(SessionRequest Event)でget_network_config_PINパラメータがTrueに設定されていれば、サービス層からASP層に伝送されるサービス確認メソッド(又はセッション確認メソッド)として伝送される必要がある。
もし、自動受諾パラメータの値が“False”である場合、サービス広告器のASPは、サービスからのセッション確認メソッドの受信を待ち、ASPセッション要求を受諾するか否かを決定することができる。ASPセッションセットアップのためのセッション要求イベントは、自動受諾パラメータの値と関係なく、ASPからサービスに伝送可能である。
vi)サービス情報
サービス情報は、サービス探索手順で使用されるサービスに関する具体的な情報を意味する。サービス情報の内容(content)は、自由な形式であり(free−form)、選択的なパラメータである。もし、サービス情報が存在すれば、サービス探索応答フレーム内で1つの応答としてサービス情報がサービス探索器に伝達されてもよい。
サービス探索器は、サービス探索メソッド(SeekService Method)内のサービス情報要求を具体化することによって、サービス情報の内容に基づいて検索を行うことができる。
vii)サービス状態
サービス状態は、サービス広告メソッドが呼び出される時点のサービスの状態を指示する。一例として、サービス状態パラメータの値が‘1’であることは、サービスが利用可能であることを指示するもので、サービス状態パラメータの値が‘0’であることは、サービスが利用不可能であることを指示するものであってもよい。ただし、サービスが利用不可能な状態であるとしても、サービス広告器は、プローブ要求フレームまたはサービス探索要求フレームに対する応答として、機器が当該サービスを支援することを指示することができる。
サービス状態パラメータが‘0’である場合(即ち、サービスが利用不可能な状態である場合)、ASPは、ASPセッションセットアップのための要求を拒絶することができる。
viii)ネットワークロール(network role)
ネットワークロールは、サービス広告器がP2Pグループでグループオーナー(GO)に設定されなければならないか否かを指示する。一例として、ネットワークロールパラメータが‘1’であることは、P2Pグループ内でサービス広告器がGOに設定されなければならないことを示し、ネットワークロールパラメータが‘0’であることは、サービス広告器の地位の如何は問わないことを意味してもよい。
ix)ネットワーク設定
ネットワーク設定パラメータは、接続のための好みのWSC設定メソッド(WSC Config.Method)を指示する。一例として、ネットワーク設定パラメータが‘1’であることは、WFDSデフォルト設定メソッドまたはWSC PINメソッドを指示するものであってもよく、ネットワーク設定パラメータが‘2’であることは、WSC PINメソッドのみを指示するものであってもよい。
x)遅延セッション応答
明示的な特定サービスではない限り、基本的に、遅延セッション応答パラメータの値はNullであってもよい。なお、遅延セッション応答パラメータは、自動受諾パラメータの値が“False”である場合にのみ存在し得る。
遅延セッションパラメータの値が存在する場合、遅延セッションパラメータは、サービス広告器の自動受諾パラメータの値がFalseに設定されており、サービス探索器がASPセッションを生成しようとする時に、サービス広告器からサービス探索器に伝送されるメッセージフレームと見なされてもよい。
一例として、もし、サービス探索器がASPセッションを生成するためにプロビジョン探索要求フレームを伝送する場合、遅延セッションパラメータは、サービス広告器から伝送されるプロビジョン探索応答フレームにセッション情報フィールドとして含まれてもよい。
他の例として、もし、サービス探索器がASPセッションを生成するために、セッション要求メッセージ(Request_Session message)を伝送する場合、遅延セッション応答パラメータは、遅延セッションASPコーディネーションプロトコルメッセージ(Defferred_Session ASP coordination protocol message)の遅延セッション応答フィールドとして含まれてもよい。
ASPは、サービス広告メソッドに対して、広告IDを返却することができる。広告IDは、ASPによって割り当てられ、広告が要求されるサービスによって操作される機器上で固有に広告を識別する。そして、広告IDは、広告されたサービスのASPセッションの確立のために、サービス探索器に伝送されてもよい。
サービス広告器は、既に存在する(existing)広告の状態が変更された場合、サービス状態変更を知らせる、サービス状態変更メソッド(ServiceStatusChange Method)を呼び出すことができる。サービス状態変更メソッドには、広告ID及びサービス状態パラメータが含まれてもよい。各パラメータについての説明は、次の通りである。
i)広告ID
サービス広告メソッドによって返却される本来の(originally)広告IDが含まれてもよい。
ii)サービス状態
サービスが利用可能な状態である場合、サービス状態パラメータの値は“Available”に設定することができる。サービス広告器によって支持されるサービスがその瞬間利用不可能な状態である場合、サービス状態パラメータの値は“Unavailable”に設定することができる。サービス状態パラメータ値は、プローブ応答フレームまたはサービス探索応答フレームに含まれてもよい。
サービス広告器は、既に存在している広告を取り消すために、サービス広告取り消しメソッド(CancelAdvertiseService Method)を呼び出すことができる。サービス広告器がサービス広告取り消しメソッドを呼び出すと、サービス名及び関連情報(associated information)はこれ以上広告されず、サービスポートに対する予約(reservation)も解除される。
サービスがASPからセッション要求イベントを受信すると、サービス広告器は、ASPセッションセットアップ(setup)を許容するか否かを決定するために、セッション確認メソッド(SessionCorfirm Method)を呼び出すことができる。セッション確認メソッドは、特定サービスに対するセッションセットアップを許容するか否かを指示するという点で、サービス確認メソッド(ConfirmService Method)と呼ぶこともできる。ただし、広告が自動で始まった場合(例えば、サービス広告メソッド(AdvertiseService Method)の自動受諾パラメータの値が“True”である場合)にはASPセッションセットアップが自動で受諾されるので、セッション確認メソッドが呼び出されなくてもよい。
セッション確認メソッドには、セッションMACパラメータ、セッションIDパラメータ及び確認(Confirmed)パラメータのうち少なくとも1つが含まれてもよい。各パラメータについての詳細な説明は、次の通りである。
i)セッションMAC
セッションIDが割り当てられた機器のMACアドレスを指示する。
ii)セッションID
ASPセッションの識別子(Identifier)を指示する。
iii)確認(Confirmed)
確認パラメータの値がTrueであれば、ASPセッションセットアップを進行することができる。なお、P2Pグループが存在しなければ、グループの形成(form)も行うことができる。これとは異なり、確認パラメータの値がFalseである場合、要求されたASPセッションは終了(closed)し得る。
サービス探索器のメソッド
サービス探索器は、サービス広告器として機能するピアデバイスが有するサービスを検索するためのサービス探索を要求する、サービス探索メソッド(SeekService Method)を呼び出すことができる。検索の範囲は、選択的にMACアドレスによって制限されてもよい。サービス探索メソッドは、サービス名、正確な検索(exact search)、MACアドレス及びサービス情報要求パラメータのうち少なくとも1つを含むことができる。各パラメータについての具体的な説明は、次の通りである。
i)サービス名
サービス名パラメータは、検索しなければならないサービスの名を指示する。サービス名パラメータに含まれる文字列は、検索されなければならないサービス名の正確な名であってもよく、検索されなければならないサービス名のプレフィックスであってもよい。
プレフィックスサーチの一例として、特定サービスに対する受信サービス及び送信サービスを検索するために、受信サービス及び送信サービスの両方の名を含ませずに、特定サービスの名のみを含ませることができる。例えば、Sendサービスに対して、サービスがorg.wi−fi.wfds.send.rx及びorg.wi−fi.wfds.send.txを検索するためには、両者が共通的に含むorg.wi−fi.wfds.sendをサービス名パラメータに挿入することができる。
全てのWFAサービスを検索するためには、全てのWFAサービス名が共通的に含む文字列である“org.wi−fi.wfds”をサービス名パラメータに含ませることができる。
ii)正確な検索
正確な検索パラメータの値が“True”であれば、正確な検索が行われる。具体的に、プローブ要求及び応答フレームの交換を通じて、サービス名パラメータに含まれた文字列と正確に一致するサービスを検索することができる。
正確な検索パラメータの値が“False”であれば、プレフィックス検索が行われる。具体的に、プレフィックス検索のために、プローブ要求/応答フレームの交換に加えて、サービス探索要求/応答フレームの交換を行うことができる。サービス探索/要求応答フレームの交換を通じて、サービス名パラメータに含まれた文字列をプレフィックスとして含む全てのサービスを検索することができる。
機器探索の間、サービス名パラメータに含まれた文字列と正確に一致する機器のみがプローブ要求に応答するはずなので、正確な検索はプレフィックスよりも速い。
iii)MACアドレス
全てのピアWi−Fiダイレクト機器上のサービスを検索するためのものであるので、一般に、MACアドレスパラメータはNULLに設定することができる。ただし、MACアドレスパラメータに特定のピア機器のMACアドレス値が含まれる場合、サービス検索は、明示されたMACアドレスに限って制限的に行われてもよい。ピアアドレスのMACアドレスは、コロン(:)により区分される正規フォーマット(canonical format)(例えば、“00:14:bb:11:22:33”)で含まれてもよい。
iv)サービス情報要求
サービス情報要求パラメータには、サービス広告器とサービス探索要求/応答フレームが交換されるサービス情報探索の間に追加的な情報を要求するための文字列が含まれてもよい。
サービス情報要求を問い合わせ(query)る文字列が、サービス広告メソッド(AdvertiseService method)に含まれたサービス情報セットの従属文字列(substring)である場合、検索結果イベント(SearchResult Event)が呼び出されてもよい。例えば、“ABC”の問い合わせ(query)文字列は、多数のサービス情報のうち“ABCpdq”または“ABC”として読まれるサービス情報とマッチングされ得る。
サービス探索要求メソッド(例えば、ServiceSeek Method)に対応して、サービス探索取り消しメソッド(例えば、CancelSeekService Method)のために使用できるハンドル(handle)パラメータが返却されてもよい。
サービス探索器は、サービス探索を取り消すサービス探索取り消しメソッド(CancelSeek Method)を呼び出すことができる。サービス探索取り消しメソッドには、サービス探索メソッドによって返却されるハンドルパラメータが含まれてもよい。
サービス広告器のイベント
遠隔デバイスが、広告されるサービスに対するASPセッションを始めようとする時に、サービス広告器のASPは、セッション要求イベント(SessionRequest Event)をサービスに伝送することができる。このとき、セッション要求イベントは、サービスの始まりを開始するためのものであるという点で、サービス要求イベント(ServiceRequest Event)と呼ぶこともできる。具体的に、セッション要求イベントは、サービス広告器のASPがプロビジョン探索要求フレームを受信するか、またはREQUEST_SESSION ASPコーディネーションプロトコルメッセージを受信する場合にトリガーされてもよい。セッション要求イベントには、次のパラメータが含まれてもよい。
i)広告ID
サービス広告メソッドが呼び出されるとき、ASPによって割り当てられた広告識別子が含まれてもよい。
ii)セッションMAC
セッションIDが割り当てられたP2P機器のMACアドレスが含まれてもよい。
iii)サービスデバイス名
遠隔デバイスのデバイス名(具体的には、WSCによって定義されたデバイス名)が含まれてもよい。
iv)セッションID
遠隔ASPによって割り当てられたセッション識別子が含まれてもよい。
v)セッション情報
サービス特定データペイロードが含まれてもよい。セッション情報は、最大144バイトの長さを有することができる。
vi)ネットワーク設定PIN獲得(get_network_config_PIN)
もし、サービス広告器が、サービス広告器でサービスネットワークをセットアップするためのPIN(Personal Identification Number)を要求するWSC設定メソッド(WSC Config method)と共に、プロビジョン探索要求フレームを受信する場合、ネットワーク設定PIN獲得パラメータの値は“True”であり得る。ユーザによって入力されたWSC PINは、セッション確認メソッドに含まれてASPに提供され得る。
もし、サービス広告器が、サービス広告器でサービスネットワークをセットアップするためのPIN(Personal Identification Number)を要求しないWSC設定メソッド(WSC Config method)と共に、プロビジョン探索要求フレームを受信するか、またはREQUEST_SESSION ASPコーディネーションプロトコルメッセージによってサービス要求イベントがトリガーされた場合、ネットワーク設定PIN獲得パラメータの値は“False”であり得る。
vii)ネットワーク設定PIN
サービス広告器のASPが、サービスネットワークをセットアップするためにディスプレイされるPINを要求するWSC設定メソッドと共にプロビジョン探索要求を受信する場合、ASPは、WSC PIN値を生成し、生成されたWSC PIN値をサービスに提供して、WSC PIN値がディスプレイされるようにすることができる。
サービス広告器のASPが、サービスネットワークをセットアップするためにディスプレイされるPINを要求しないWSC設定メソッドと共にプロビジョン探索要求を受信する場合、またはREQUEST_SESSION ASPコーディネーションプロトコルメッセージによってサービス要求イベントがトリガーされた場合、ネットワーク設定PINパラメータの値は‘0’であり得る。
サービスをこれ以上広告できないか、またはサービスの広告を開始できない場合、広告失敗を知らせるイベント(例えば、AdvertiseFailed Event)を伝送することができる。広告失敗を知らせるイベントには、広告ID及び失敗理由パラメータが含まれてもよい。各パラメータについて簡略に説明すると、次の通りである。
i)広告ID
サービス広告メソッド(AdvertiseService Method)によって返却される広告ID値を指示することができる。
ii)理由
広告失敗の理由が含まれてもよい。広告失敗の理由は、サービスポートが既に共有中の場合(一例として、非共有サービスポートを要求したが、当該サービスポートが既に共有サービスポートとして利用される場合)、サービスポートが既に私的に用いられる場合(一例として、サービスポートを要求したが、サービスポートが既に私的な(専用の)サービスポートとして利用される場合)、またはその他の失敗事由のいずれか1つを指示することができる。
サービス探索器のイベント
検索が進行中のとき、ピア機器から発見されたそれぞれの広告されるサービスのために検索結果を知らせる、検索結果イベント(SearchResult Event)が伝送されてもよい。検索結果イベントには、ハンドル、サービスMAC、広告ID、サービス名、サービス情報及びサービス状態パラメータのうち少なくとも1つが含まれてもよい。各パラメータについての説明は、次の通りである。
i)ハンドル
サービス探索メソッドによって返却される値を指示する。
ii)サービスMAC
ピアデバイスのMACアドレスを指示する。
iii)広告ID
ピアデバイスによって定義された広告IDを指示する。
iv)サービス名
ピアデバイスによって定義されたフル(full)サービス名を指示する。
v)サービス情報
サービス広告器とサービス検索器との間に定義された追加的なサービス(ベンダー(vendor))特定パラメータまたはNULL文字列が含まれる。
vi)サービス状態
サービスが利用可能な状態である場合、サービス状態パラメータの値は“Available”に設定することができる。サービス広告器によって支持されるサービスがその瞬間利用不可能な状態である場合、サービス状態パラメータの値は“Unavailable”に設定することができる。
サービス探索器は、サービス探索メソッド(SeekService Method)によって開始された検索を中断するか、またはこれ以上の検索結果イベント(Searchresult Event)が生成されることを防止するための検索終了イベント(SearchTerminated Event)を伝送することができる。検索終了イベントには、ハンドル及び終了理由パラメータが含まれてもよい。各パラメータについての説明は、次の通りである。
i)ハンドル
終了される検索を指示する。
ii)理由
検索の終了理由が指示されてもよい。検索の終了理由として、タイムアウト(Timeout)またはシステム誤り(System Failure)が指示されてもよい。
サービス探索器は、広告されるサービスのASPセッションを開始するために、サービス要求イベント(ServiceRequest Event)を伝送することができる。サービス要求イベントには、広告ID、セッションMAC、セッションID及びセッション情報パラメータのうち少なくとも1つが含まれてもよい。各パラメータについての説明は、次の通りである。
i)広告ID
ピア機器によって定義された広告識別子が含まれてもよい。
ii)セッションMAC
セッションIDが割り当てられたピアデバイスのMACアドレスが含まれてもよい。
iii)セッションID
ASPセッション識別子が含まれてもよい。
iv)セッション情報
アプリケーション特定データペイロード(payload)が含まれてもよい。
サービス探索及びASPセッションセットアップ
上述した説明に基づいて、本発明に係るサービス探索及びASPセッションセットアップ過程について詳細に説明する。
図13は、サービス探索及びASPセッションセットアップ動作の流れ図である。図13に示したASPセッションセットアップ動作は、あるP2Pデバイスの特定のサービスが他のP2Pデバイス及びサービスを探索し、サービスを要求して、Wi−Fiダイレクト接続を確立し、アプリケーションが動作する過程を意味する。
説明の便宜のため、図13において、デバイスAは、自身のサービスを広告するサービス広告器として動作し、デバイスBは、サービスを探索するサービス探索器として動作するものと仮定する。
デバイスAのサービス層がASPにサービス広告メソッドを伝送すると、デバイスAのASPは、サービス広告メソッドに含まれた情報に基づいて自身のサービスを広告し、他のデバイスが当該サービスを見つけることができるように待機することができる。
デバイスBのサービス層がASPにサービス探索メソッドを伝送すると、デバイスBのASPは、受信されたサービス探索メソッドに含まれた情報に基づいて上位アプリケーションまたはユーザの所望のサービスを支援するデバイスを探索することができる。一例として、デバイスBのサービス層が、アプリケーション層からサービスを使用する旨(Use Service)の意図を示す情報を受信すると、検索が必要なサービスに対する情報を含むサービス探索メソッドをASPに伝達することができる。
サービス探索メソッドを受信したデバイスBのASPは、所望のサービスを支援するデバイスを探索するために、プローブ要求フレームを伝送することができる。このとき、プローブ要求フレームには、見つけようとするまたは自身が支援可能なサービスのサービス名(service name)をハッシュ(hash)形態に変換したハッシュ値が含まれてもよい。ハッシュ値は、ASPがサービス名またはサービス名のプレフィックス(prefix)をハッシュ形態に変換したものであって、6オクテットの長さを有することができる。プローブ要求フレームはブロードキャスト伝送されてもよく、特定の機器に対してユニキャスト伝送されてもよい。
プローブ要求フレームを受信したデバイスAは、ハッシュマッチング(hash matching)を試み、プローブ要求フレームに含まれたハッシュ値にマッチングされるサービスを支援するものと判断される場合、プローブ応答フレーム(Probe Response frame)をデバイスBに伝送することができる。このとき、プローブ応答フレームには、ハッシュ値、広告IDフィールド及びサービス通知情報フィールドのうち少なくとも1つが含まれてもよい。ハッシュ値は、プローブ要求フレームを介して要求されるハッシュ値にマッチングされるサービスのハッシュ値を指示するもので、広告IDフィールドは、ASPの内部で各サービスに対する広告を固有に識別するために、ASPによって割り当てられた値であってもよい。広告IDは、ASPセッション確立を要求するのに利用されてもよい。サービス通知情報フィールドは、サービス情報指示フィールド(service_information_indication_field)及びサービス状態フィールド(service_status_field)を含むことができる。サービス情報指示フィールドは、プローブ応答に含まれている各サービス別にサービス情報が存在するか否かを指示することができる。サービス状態フィールドは、プローブ応答フレームを伝送する瞬間にサービスが利用可能であるか否かを指示するのに利用することができる。
デバイスAからデバイスBが見つけようとするサービスの利用が可能であることを知らせるプローブ要求フレームを受信すると、デバイスBのASPは、見つけようとするサービスを支援する機器が発見されたことを報告するために、検索結果イベントをサービス層に伝送することができる。このとき、検索結果イベントには、サービス名、広告ID、サービス状態及びサービス情報パラメータのうち少なくとも1つが含まれてもよい。
デバイスBが見つけようとするサービスを支援する機器が見つからなかった場合、サービス探索要求フレームの伝送は省略することができる。図示していないが、デバイスBのASPは、見つけようとするサービスを支援する機器が発見されなかったことを知らせる、検索結果イベントをサービス層に伝送することができる。このとき、検索結果イベントには、サービス名、広告ID、サービス状態及びNULLサービス情報パラメータが含まれてもよい。
デバイスAから、利用可能なサービスがあることを知らせるプローブ要求フレームを受信すると、デバイスBは、デバイスAのサービス情報を探索するために、サービス探索要求フレームをトリガーすることができる。このとき、サービス探索要求フレームにはサービス名フィールドが含まれてもよい。サービス名フィールドは、検索しようとする完全な(complete)サービス名または検索しようとするサービス名のプレフィックスを含むことができる。
これに対して、デバイスAは、サービス名マッチングを行って、デバイスBが見つけようとするサービスを提供するか否かを知らせるサービス探索応答フレームをデバイスBに伝送することができる。サービス探索応答フレームには、サービス名、サービス状態、広告ID及びサービス情報が含まれてもよい。
サービス名は、広告されるサービスのサービス名を指示する文字列を含むことができる。
デバイスAが、デバイスBが見つけようとするサービスを支援するとしても、サービス探索応答フレームを伝送する時点に、デバイスBが、デバイスAが提供するサービスを利用できない場合が発生し得る。例えば、デバイスAが、デバイスAが検索するプリント(Print)サービスを支援するが、サービス探索応答フレームを伝送する時点に、最大利用可能デバイスと連携中であるので、これ以上のピアデバイスとの連携を許容できなければ、デバイスAは、デバイスBが検索しようとするサービスを支援するにもかかわらず、デバイスBは、デバイスAが提供するサービスを利用できなくなる。これによって、本発明に係るデバイスAは、サービス探索応答フレームが伝送される瞬間に当該サービスを利用可能であるか否かを指示するサービス状態情報をサービス探索応答フレームに含ませることができる。
すなわち、サービス探索応答フレームが伝送される時点に当該サービスの利用が不可能であれば、サービス状態情報は、当該サービスが利用不可能であることを指示する一方、サービス探索応答フレームが伝送される時点に当該サービスの利用が可能であれば、サービス状態情報は、当該サービスを利用できることを指示することができる。サービス状態情報は、1ビットの指示子(indicator)であってもよい。
広告IDフィールドは、ASPの内部で各サービスに対する広告を固有に識別するためのものであってもよい。
サービス情報フィールドは、サービス広告器であるデバイスAがサービス探索器であるデバイスBと共有できる選択的な(optional)情報を含むことができる。与えられたサービス(即ち、デバイスBが見つけようとするサービス)に対するサービス情報が存在する場合、サービス情報フィールドには、与えられたサービスとマッチングされるプローブ応答フレームを介して伝送されたハッシュ値が含まれてもよい。
ただし、サービス情報を獲得するためには、サービス探索要求フレームを伝送するデバイスBが正確なサービス名及びサービス情報の問い合わせのために、WFDSサービスプロトコルタイプ(整数5として正義)を使用する必要がある。デバイスBは、サービス層でサービス探索メソッドが呼び出されるとき、サービス探索メソッドに含まれるサービス情報要求パラメータを具体化することによって、サービス情報の内容に基づいてサービスを検索することができる。
上述したサービス探索要求及び応答フレームは、IEEE 802.11uシステムで定義するGAS(Generic Advertisement Protocol)を用いて行われてもよい。
デバイスBのASPは、サービス層が要求したサービス探索メソッドによって要求された動作が完了すると、検索結果イベントを介して、その結果をサービスを介してアプリケーション及びユーザに知らせることができる。
この時点まではWi−Fi Directのグループは形成されていない状態である。デバイスAで提供するサービスが利用可能であり、ユーザがデバイスAのサービスを選択して、サービスがセッション接続メソッド(ConnectSession Method)を呼び出す場合、P2Pグループ形成(group formation)が進行し得る。このとき、プロビジョン発見要求(Provision Discovery Request)及びプロビジョン発見応答(Provision Discovery Response)を介して、セッション情報と接続能力(connection capability)情報が交換される。
セッション情報は、サービスを要求するデバイスが要求するサービスの概略的な情報を知らせるヒント(hint)情報である。セッション情報は、例えば、ファイル伝送サービスを要求しようとする場合には、ファイルの数、サイズなどを知らせることで、相手がサービス要求に対する収容/拒絶(accept/reject)を決定できるようにする情報である。接続能力は、GO交渉(Group Owner negotiation)及びP2P招待(invitation)過程でグループを生成するための情報として利用することができる。
デバイスBがデバイスAにプロビジョン発見要求メッセージを伝達すると、デバイスAのASPは、サービス情報などを含むセッション要求(SessionRequest)をサービス層に伝達し、サービス層は、サービス情報をアプリケーション/ユーザに伝達する。アプリケーション/ユーザが、セッション情報に基づいて当該セッションを収容すると決定すると、サービス層を介してサービス確認メソッドがASPに伝達される。
その間、デバイスAのASPは、デバイスBにプロビジョン発見応答メッセージを伝達し、その状態情報は‘延期(deferred)’に設定することができる。これは、当該サービスが即時には収容されないことを示し、ユーザの入力を待っていることを知らせるためである。これによって、デバイスBのASPは、サービス層にConnectStatusイベントを伝達しながら、サービス要求が延期されたことを知らせることができる。
デバイスAのASPがサービス確認メソッド(ConfirmService Method)を受信すると、後続(follow−on)プロビジョン発見過程を行うことができる。すなわち、デバイスAはデバイスBにプロビジョン発見要求メッセージを伝達することができる。これを、follow−onプロビジョン発見過程と呼ぶことができる。このメッセージには、当該サービスに対する状態が成功(success)であることを示す情報と共に、サービス情報が含まれてもよい。これによって、デバイスBのASPは、サービス層にConectStatusイベントを伝達しながら、サービス要求が収容されたことを知らせることができる。また、デバイスBのASPは、プロビジョン発見応答メッセージをデバイスAに伝達することができ、ここには、接続能力情報が含まれてもよい。
P2Pプロビジョン発見過程が行われた後、GO交渉または招待過程を通じてP2Pグループが生成され、第2層(L2)接続及びIP(Internet Protocol)接続が行われる。GO交渉のために、ピアデバイス間にGO交渉要求フレーム及びGO交渉応答フレームを交換することができる。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 Method)をASPに知らせることができる。
これによって、デバイスAのASPは、ADDED_SESSIONメッセージを相手デバイスに伝送する。このとき、ADDED_SESSIONメッセージには、セッション識別子(session ID)、MACアドレス情報などが含まれてもよく、これによってサービスを固有に(unique)区分することができる。ADDED_SESSIONメッセージを受信したデバイスBのASPは、セッション接続をサービス層に知らせ、ポート要求、ポートバインディングなどを経てポートが準備されたこと(PortReady())をサービス層に知らせることができる。ASPは、ポートをファイアウォール(firewall)内で開くことができる。
その後、デバイスAとデバイスBのサービス層間にアプリケーションソケット(socket)接続を知らせ、アプリケーション層によってアプリケーションデータの伝送のためのリンクが形成され、これを介してアプリケーションデータを送受信することができる。
デバイスBのアプリケーション/ユーザによって当該アプリケーションの終了(Close Application)がサービス層に指示され得る。これによって、サービス層は、ASPにセッション終了メソッド(ClosedSession Method)を伝達し、当該ポートが解除(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)を終了することができる。
図13の例示を参照して、サービス要求がP2Pプロビジョン発見過程を用いて開始された場合に、サービス探索器(Service Seeker)とサービス広告器(Service Advertiser)との間のメッセージシーケンスについて説明した。図13の例示では、自動受諾パラメータがFALSEに設定される場合を仮定した。もし、自動受諾パラメータがTRUEに設定されれば、ASPは、サービスからのセッション確認メソッドがなくても、すべてのASP−セッションサービス要求を収容するように動作することができる。また、それぞれのASPは、現在の状態をSessionStatusイベント及びConnectionStatusイベントを用いてサービスに知らせることができる。
以下では、WFAサービスでのサービス探索手順について具体的に説明する。説明の便宜のため、WFAサービスにおいて伝送(Send)サービスを例に挙げて説明する。ただし、後述する実施例は、伝送サービス以外のWFAサービス及びイネーブルサービスにも適用できることは勿論である。
伝送サービスでのサービス探索手順
図14は、Wi−Fiダイレクトファイル伝送サービスのアーキテクチャーを示す図である。図14に示したASP層及びWi−Fiダイレクト層は、ピアデバイスのL2接続を提供する役割を担うことができる。
Wi−Fiダイレクトサービス探索ステップにおいて、ピアデバイスは、他のピアデバイスとサービス能力(Service capabilities)に対する情報を交換することができる。具体的に、ピアデバイスは、他のピアデバイスとファイル伝送サービスを支援するか否かに対する情報を交換することができる。ファイル伝送サービスが可能な他のピアデバイスが検索されると、ピアデバイスのASPは、検索された機器との連携(association)を行うことができる。
制御平面は、ピアデバイス間にWi−Fiダイレクトファイル伝送サービスセッションを確立するのに活用することができる。制御平面は、UPnPを使用することができるWFDファイル伝送制御点(UPnP enabled Wi−Fi Direct FTS Control Point)及びUPnPを使用することができるP2Pファイル伝送サービス要素(UPnP enabled P2P FTS component)を含むことができる。
データ平面は、実際のファイルデータの伝送のための伝送経路を提供することができる。ファイル伝送のためにHTTP(Hyper Text Transfer Protocol)を利用することができる。
FTSを利用するピアデバイスのいずれか一方は、伝送トランスミッタ(Send Transmitter)として動作し、他方は、伝送レシーバ(Send Receiver)として動作することができる。一例として、図15は、伝送トランスミッタと伝送レシーバとの間の動作を層別に簡略に図式化した図である。
伝送トランスミッタ及び伝送レシーバは、Wi−Fiダイレクト層及びASP層を介して、デバイス探索、サービス探索及びサービス連携を行うことができる。
伝送トランスミッタと伝送レシーバとの間のサービス連携が完了すると、伝送トランスミッタは、他のピアデバイス(即ち、伝送レシーバ)とのファイル伝送セッションを開始し、上位層であるトランスポート層で、HTTPを用いてファイル伝送を行うことができる。
トランスポート層でファイルデータを伝送するにおいて、伝送トランスミッタはHTTPクライアントの役割を担い、伝送レシーバはHTTPサーバーの役割を担うことができる。伝送トランスミッタは、HTTP PUTメソッドを用いてHTTPサーバー(即ち、伝送レシーバ)にファイルを伝送し、伝送レシーバは、伝送トランスミッタからファイルデータを受信することができる。
HTTPサーバーとして機能する伝送レシーバは、伝送されるファイルを受信するために、特定のTCPポートをオープンすることができる。
伝送レシーバは、ファイル伝送のためのUPnPサービスを主催(host)することができる。伝送トランスミッタは、UPnP制御点を介して、伝送レシーバによって主催される(hosted)WFDS上のUPnPアクションを発動(invoke)することができる。
図16は、FTSでのL2接続が確立される過程を説明するための図である。図15を参照すると、まず、伝送トランスミッタは、FTSセッションを確立する伝送レシーバを検索するためのWi−Fiダイレクト機器探索手順を行うことができる。
その後、伝送トランスミッタは、ファイル伝送サービスの探索を要求するためのサービス探索要求フレームを伝送することができる。サービス探索要求フレームは、ブロードキャスト伝送されてもよく、特定のピアデバイスにユニキャスト伝送されてもよい。
サービス探索要求フレームには、伝送トランスミッタが見つけようとするサービスバージョン情報が含まれてもよい。一例として、サービスバージョン情報が0x01であることは、Wi−Fiダイレクトファイル伝送サービスバージョン1を指示することができる。
サービス探索要求フレームを受信した伝送レシーバは、これに対する応答としてサービス探索応答フレームを伝送することができる。
伝送レシーバが、伝送トランスミッタが見つけようとする所望のサービス及びサービスバージョンを支援する場合、伝送レシーバと伝送トランスミッタとの間でL2サービス連携を進行することができる。
具体的に、伝送トランスミッタは伝送レシーバにサービス連携要求フレームを伝送し、これに対する応答として、伝送レシーバは伝送トランスミッタにサービス連携応答フレームを伝送することができる。このとき、サービス連携要求フレーム及び応答フレームは、IEEE 802.11uシステムで定義するGAS(Generic Advertisement Protocol)を用いて行われてもよい。
サービス連携要求フレーム及びサービス連携応答フレームにはベンダー特定(Vendor−Specific)コンテンツが含まれてもよい。一例として、表1は、ベンダー特定コンテンツに挿入できるフィールドを列挙した図表である。
表1に記述したように、サービス連携要求フレーム及びサービス連携応答フレームには共通的に、OUI(Organizationally Unique Identifier)サブタイプフィールド、サービス連携アップデートインジケーターフィールド及びサービス連携TLV(Type、Length、Value)フィールドを含むことができる。
OUIサブタイプフィールドは、当該フレームがサービス連携フレームであることを指示することができる。
サービス連携アップデート指示子は、サービス連携要求フレームまたはサービス連携応答フレームを伝送する機器のサービス情報が変更される毎に1ずつ増加するカウンターである。伝送トランスミッタ及び伝送レシーバは、相手から受信するアップデート指示子値を格納し、格納された値と以降のサービス連携要求フレームまたはサービス連携応答フレームを受信したときのアップデート指示子値とを比較して、相手のサービス情報がアップデートされたか否かを判断することができる。
サービス連携TLV(Type、Length、Value)フィールドは、それがサービス連携要求フレームに含まれるか、またはサービス連携応答フレームに含まれるかによって、サービス要求TLVまたはサービス応答TLVと呼ぶことができる。表2は、そのうち、サービス連携要求フレームのサービス要求TLVを説明するための図表である。
表2に記述した例のように、サービス要求フレームに含まれるサービス要求TLVには、長さフィールド、サービスプロトコルタイプフィールド、サービストランザクションIDフィールド、TCPポートフィールド及び伝送サービスメタ情報フィールドを含むことができる。
長さフィールドは、サービス要求TLVの長さを指示する。
サービスプロトコルタイプフィールドは、WFDSのサービスプロトコルタイプを指示する。一例として、表3は、サービスプロトコルタイプ別値(value)を説明するための図表である。
表3に列挙した例において、サービスプロトコルタイプフィールドの値が0x05であることは、FTSのためのプロトコルタイプであることを指示することができる。
サービストランザクションIDフィールドは、サービス連携要求フレームとサービス連携応答フレームとのマッチングのために発給される識別子である。一例として、サービス連携要求フレームを伝送した伝送トランスミッタは、伝送されたサービス連携要求フレームのトランザクションIDと同じトランザクションIDを有するサービス連携応答フレームを受信して、サービス連携を進行することができる。
TCPポートフィールドは、ファイル伝送に必要なTCPポートの値を指示する。
伝送サービスメタ情報フィールドはサービス特定情報を含むことができる。ここで、サービス特定情報とは、ピアデバイスにヒントを提供するために要求されるものであってもよい。一例として、表4は、伝送サービスメタ情報を説明するための図表である。
表4に記述したように、サービスメタ情報フィールドは、ノートフィールド、サイズフィールド、アイテムの数フィールド(NoofItems(Number of Items)フィールド)及びItemフィールドを含むことができる。
ノートフィールドには、ASCII形式の自由なテキストが入力されてもよい。
サイズフィールドは、伝送サービスメタ情報フィールドの総サイズ(Kb単位)を指示する。
アイテムの数フィールドは、伝送サービスメタ情報に含まれたアイテムの数を指示することができる。
アイテムフィールドは、伝送されるファイルの情報を示す。具体的に、アイテムフィールドは、伝送されるファイルの名、伝送されるファイルのサイズ及び伝送されるファイルのタイプに関する情報のうち少なくとも1つを含むことができる。一例として、表5は、アイテムフィールドを説明するための図表である。アイテムフィールドのサイズは、伝送されるファイルの数に比例して線形的に増加することができる。
表6は、サービス連携応答フレームのサービス応答TLVを説明するための図表である。
表6に記述したように、サービス応答TLVは、長さフィールド、サービスプロトコルタイプフィールド、サービストランザクションIDフィールド、状態コードフィールド及びTCPポートフィールドを含むことができる。
長さフィールドは、サービス応答TLVの長さを指示する。
サービスプロトコルタイプフィールドは、WFDSのサービスプロトコルタイプを指示する。一例として、サービスプロトコルタイプフィールドの値が0x05であることは、FTSのためのプロトコルタイプであることを指示することができる。
サービストランザクションIDフィールドは、サービス連携要求フレームとサービス連携応答フレームのマッチングのために発給される識別子である。一例として、サービス連携要求フレームを受信した伝送レシーバは、サービストランスミッタに、伝送されたサービス連携要求フレームのトランザクションIDと同じトランザクションIDを有するサービス連携応答フレームを伝送することができる。
状態コードフィールドは、要求されるサービス情報の状態を指示する。一例として、サービス情報の状態は、表7のように定義することができる。
表7に記述された例でのように、サービス状態コードフィールドを介して伝送トランスミッタとのサービス連携が成功したか否かが、一例として、状態コードフィールドの値が0である場合、伝送トランスミッタと伝送レシーバとの間のサービス連携が成功したことを指示するが、状態コードフィールドの値が1〜4である場合には、伝送トランスミッタと伝送レシーバとの間の連携は失敗したことを指示することができる。
表6に記述したTCPポートフィールドは、ファイル伝送に必要なTCPポートの値を指示する。
再び図16を参照すると、伝送トランスミッタが、伝送されるファイルに関する伝送サービスメタ情報を含むサービス連携要求フレームを伝送レシーバに伝送すると、伝送レシーバは、FTS連携が要求されたことを知らせる情報をディスプレイし、ユーザにFTS連携を許容するか否かを問い合わせることができる。ユーザから、FTS連携を受諾するか否かに対する入力を受信すると、伝送レシーバのASPは、サービス連携要求フレームに対して応答することができる。具体的に、伝送レシーバは、状態コードを含むサービス連携応答フレームを伝送トランスミッタに伝送することができる。ユーザがFTS連携を受諾する場合、先に表7に記述したように、状態コードの値は0に設定され得る。
成功的なFTS連携手順が進行すると、伝送トランスミッタと伝送レシーバは、P2Pグループ形成(formation)プロセスを行うことができる。グループ形成プロセスを介して伝送トランスミッタ及び伝送レシーバのいずれか一方はグループクライアント(Client)に設定され、他方はグループオーナー(Owner)に設定されてもよい。
P2Pグループが形成されると、伝送トランスミッタはFTSセッションを開始し、ファイル伝送を開始することができる。
FTSセッションは、ピアデバイス間に構築されるUPnPセッションである。伝送トランスミッタは、伝送レシーバがUPnPデバイスアーキテクチャーを用いて主催したWFD FTSを探索することができる。
伝送トランスミッタは、伝送レシーバによって主催されるWFD FTSによって提供されるサービスを管理するために、UPnP制御点個体を用いることができる。UPnP制御点は、ファイル伝送セッションを管理するために、Wi−Fiダイレクトサービスによって提供されるアクションを発動(invoke)する。
Wi−Fiダイレクトファイル伝送サービスは、ファイル伝送セッションの管理及び制御のためのL3メカニズムとしてUPnPサービスを利用することができる。UPnPサービスは、機器によって支援される細部サービス特徴を探索するための選択的なサービス探索手順を提供することができる。UPnPサービスは、伝送トランスミッタによって発動されるUPnPアクションを定義し、伝送レシーバがFTSセッションを管理できるようにする。
図17は、L2接続及びL3接続を含むFTSセッションの流れ図である。
L2接続の確立過程については図16を通じて説明したので、これについての詳細な説明は省略する。
伝送トランスミッタと伝送レシーバとの間に成功裏にP2P接続が行われると、伝送トランスミッタは、UPnPデバイスアーキテクチャー別にサービス説明ドキュメントを検索することができる(retrieve)。伝送トランスミッタのUPnPデバイスアーキテクチャー制御点個体は、伝送レシーバによって主催される(hosted)サービス(例えば、WFDS上のUPnPアクション)に加入(subscribe)することができる。
その後、伝送トランスミッタは、自身の識別情報及び伝送されるファイルのメタ情報を含むセッション生成アクション(CreateSession)を発動することができる。
セッション生成アクションを受信した伝送レシーバは、ユーザにセッション生成アクションが受信されたことを知らせるための情報をディスプレイすることができる。ユーザがセッション生成を受諾すると、伝送レシーバは、セッションを識別するための固有の(unique)識別子を生成し、セッション生成アクションに対する応答として、セッションIDを伝送トランスミッタに伝送することができる。
なお、伝送レシーバは、生成されたセッションに割り当てられたセッションID及び生成されたセッションの状態情報を含む伝送状態可変イベント(Transportstatus variable event)を伝送トランスミッタに伝送することができる。伝送レシーバがセッション生成要求を受諾した場合、生成されたセッションの状態は伝送準備完了(Ready_for_transport)に設定することができる。
伝送レシーバから、生成されたセッションが伝送準備完了の状態であることを知らせる伝送状態可変イベントを受信した伝送トランスミッタは、トランスポートチャネル構築を開始することができる。
その後、トランスポートチャネルが成功的に構築されると、伝送レシーバは、セッション状態を‘伝送中(transporting)’に変更して伝送状態可変イベントを伝送することができる。セッション状態が‘伝送中’であることを知らせる伝送状態可変イベントを受信した伝送トランスミッタは、HTTP PUT要求を用いてファイルデータを伝送することができる。
サービス探索要求フレーム及びサービス探索応答フレームのフォーマット
サービス探索手順に用いられるサービス探索要求フレーム及びサービス探索応答フレームは、それぞれANQP(Access Network Query Protocol)クエリ要求情報及びANQPクエリ応答情報を含むことができる。
一例として、図18及び図19は、それぞれサービス探索要求フレーム及びサービス探索応答フレームのフォーマットを例示した図である。
図18に例示したように、サービス探索要求フレームにはクエリデータがさらに含まれてもよい。このとき、クエリデータは、伝送トランスミッタの能力(capabilities)を代表するサービス情報要素を含むことができる。
図19に例示したように、サービス探索応答フレームは応答データを含むことができる。応答フレームにはサービス情報が含まれてもよい。応答データに含まれ得るサービス情報の一例が、表8に記載されている。
表8を参照すると、応答データは、サービスプロトコルタイプフィールド、長さフィールド及びサービス情報フィールドを含むことができる。
応答データに含まれるサービス情報フィールドには、FTSのための様々な情報が含まれてもよい。一例として、表9は、サービス情報フィールドに含まれ得るフィールドを説明するための図表である。
表9に記述したように、サービス情報フィールドは、サービスバージョンフィールド、UUIDフィールド、サービス状態フィールド、フレンドリ名フィールド、セッションIDフィールド及びサービスビットマップフィールドを含むことができる。
サービスバージョンフィールドは、伝送レシーバが支援するFTSのバージョンを指示することができる。UUIDフィールドは、伝送レシーバとして設定された機器のUUID(Universally Unique Identifier)を指示することができる。
サービス状態フィールドは、伝送サービスの現状態を指示する。一例として、表10は、サービス状態フィールドの値に基づいた伝送サービスの状態を説明するための図表である。
フレンドリ名フィールドは、ユーザが伝送サービスを容易に識別するための文字列が含まれてもよい。伝送トランスミッタは、フレンドリ名フィールドで指示する文字列をディスプレイすることで、ユーザがファイル伝送対象となる伝送レシーバを識別できるようにすることができる。
セッションIDフィールドは、伝送サービスのために割り当てられたセッションIDを指示する。
サービスビットマップフィールドは、FTSを利用する機器のタイプ及び当該機器でのFTS利用可能性を指示することができる。表11は、サービスビットマップフィールドを説明するための図表である。
表10に記述したように、サービスビットマップフィールドの2ビットは、FTSを利用する機器のタイプを指示することができる。2ビットのいずれか一方は、当該機器が伝送トランスミッタであるか否かを指示し、他方は、当該機器が伝送レシーバであるか否かを指示することができる。一例として、2ビットの値がすべて1である場合、当該機器は伝送トランスミッタ及び伝送レシーバの両方として動作できることを指示するもので、2ビットの値がすべて0である場合、当該機器は、伝送トランスミッタ及び伝送レシーバとして動作できない、FTSを支援できない機器であることを指示するものであってもよい。
サービスビットマップフィールドの1ビットは、当該機器でのFTS利用可能性を指示するのに利用することができる。一例として、サービス探索応答フレームを伝送する時点にFTSが利用不可能な場合、当該ビットは0に設定され、サービス探索応答フレームを伝送する時点にFTSを利用できる場合、当該ビットは1に設定されてもよい。
再び図19を参照すると、サービス探索応答フレームには状態コードフィールドも含まれてもよい。サービス探索要求フレームのクエリデータが指示するサービス情報が発見されない場合、状態コードフィールド(Status Code field)は、要求されたサービス情報を当該機器で利用できないことが指示され、応答値(Response value)は空欄(empty)となり得る。
状態コードフィールドについての詳細な説明は、先に表7を参照して詳細に説明したので、これについての詳細な説明は省略する。
状態属性(Status Attribute)
サービス広告器及びサービス探索器で取り扱われる多数のフレームを区分するために、各フレームには状態属性フィールドが含まれてもよい。具体的に、GO交渉応答フレーム、GO交渉確認フレーム、P2P招待応答フレーム、P2P存在応答フレーム、(再)連携応答フレーム、プロビジョン探索要求フレーム及びプロビジョン探索応答フレームなどに状態属性フィールドが含まれてもよい。
一例として、表12は、状態属性を説明するための図表である。
表12に列挙した状態属性のうち探索サービスハッシュは、WFDSを検索するためのプローブ要求フレームにおいて使用可能である。サービスハッシュ属性は、探索されなければならないサービス名の6オクテットの長さのハッシュアレイ(array)を含む。サービスハッシュ属性の形式は表13に記述している。ハッシュ値は、UTF−8サービス名上にSHA−1の出力結果物から6オクテットのLSBを抽出することによって構成可能である。
表13に記述したように、プローブ要求フレームは、複数のサービスに対するハッシュ値を含むこともできる。ただし、プローブ要求フレームに複数のサービスに対するハッシュ値が含まれるといって、プローブ応答フレームにも複数のサービスに対する情報(例えば、サービス広告器が支援するサービスに対するハッシュ値又は広告ID)が含まれなければならないものではない。プローブ応答フレームには、プローブ要求フレームに含まれる複数のハッシュ値のうちサービス広告器で支援するサービスに対応するサービスの情報のみが含まれることで足りる。
表12に列挙した状態属性のうちサービス事例データ情報は、プロビジョン探索要求フレームに含まれてもよい。サービス事例データ情報の属性は、ピアデバイス間に接続を確立するに先立ち、サービスの提案される事例(instance)に関する具体的な情報を交換するために利用される。サービス事例データ情報の属性は表14に記述している。
表14に記述したサービス特定フィールドは、受信されるサービスセッションを受諾又は拒絶するか否かを決定しなければならないピアデバイスのための情報を含む。サービス特定フィールドは、サービス名に基づいて解釈されなければならない。
表12に列挙した状態属性のうち接続能力情報は、プロビジョン探索要求フレーム及びプロビジョン探索応答フレームに含まれてもよい。接続能力情報の属性はP2Pデバイスの接続能力を含む。接続能力情報の属性に基づいて、P2Pグループでのグループオーナー及びグループクライアントが決定され得る。接続能力情報の属性は表15に記述している。
表15に記述した接続能力フィールドは、ピアデバイスがグループクライアントまたはグループオーナーとして設定可能であるか否かを指示することができる。表16は、接続能力フィールドの値に基づいたピアデバイスの能力を記述した図表である。
表16に記述したように、接続能力フィールドのいずれか1つのビットは、ピアデバイスがグループクライアント又はグループオーナーのいずれか一方として設定可能であることを指示し、他の1つのビットは、ピアデバイスがグループクライアントであるか、またはグループクライアントとしてのみ動作できることを指示することができる。さらに他の1つのビットは、ピアデバイスがグループオーナーであるか、またはグループオーナーとしてのみ動作できることを指示することができる。表17は、列挙した3つのビットの値に基づいたマスキング結果を記述した図表である。
表12に列挙した状態属性のうち広告ID情報属性は、ピアデバイスの特定のWFDSに対するASPセッション確立を要求するためにプロビジョン探索要求フレームにおいて使用可能である。広告ID情報属性は、プロビジョン探索応答フレームにおいても使用可能である。広告ID情報属性は表18に記述している。
広告ID情報属性に含まれる広告IDは、早期連携(pre−association)探索の間に発見されるサービスのU32値であり、サービス事例属性から獲得されるものであってもよい。
表12に列挙した状態属性のうちの広告されたサービス情報属性は、WFDSの特定の(particular)事例(instance)であることを識別するために、プローブ応答フレームにおいて使用可能である。広告されたサービス情報属性は、サービスハッシュ属性を含むプローブ要求フレームの応答として伝送することができる。サービス情報属性は表19に記述している。
表19に記述した広告されたサービスデスクリプタのフォーマットは、表20の通りである。
表20に例示したように、広告されたサービスデスクリプタには広告IDが含まれてもよい。サービス広告器は、サービスハッシュ値を含むプローブ要求フレームの受信に対する応答として、サービスハッシュ値にマッチングされるサービスの広告IDを含むプローブ応答フレームを伝送することができる。
上述した実施例で説明する本発明の例示的な方法は、説明の簡明さのために動作のシリーズとして表現されているが、これは、段階が行われる順序を制限するためのものではなく、必要な場合には、それぞれの段階が同時にまたは異なる順序で行われてもよい。また、本発明で提案する方法を具現するために、図面で例示する全ての段階が必ず必要なものではない。
また、本発明に係る方法において、前述した本発明の様々な実施例で説明した事項は独立して適用されたり、又は2つ以上の実施例が同時に適用されるように具現されてもよい。
図20は、本発明の一実施例に係る無線デバイスの構成を示すブロック図である。
無線デバイス10は、プロセッサ11、メモリ12、送受信器13を備えることができる。送受信器13は、無線信号を送信/受信することができ、例えば、IEEE 802システムに基づく物理層を具現することができる。プロセッサ11は、送受信器13と電気的に接続されて、IEEE 802システムに基づく物理層及び/又はMAC層を具現することができる。また、プロセッサ11は、前述した本発明の様々な実施例に係るアプリケーション、サービス、ASP層のうちの1つ以上の動作を行うように構成されてもよい。また、前述した本発明の様々な実施例に係る無線デバイスの動作を具現するモジュールがメモリ12に格納され、プロセッサ11によって実行されてもよい。メモリ12は、プロセッサ11の内部に含まれるか、またはプロセッサ11の外部に設置されて、プロセッサ11と公知の手段によって接続されてもよい。
図20の無線デバイス10の具体的な構成は、前述した本発明の様々な実施例で説明した事項が独立して適用されたり、又は2つ以上の実施例が同時に適用されるように具現されてもよく、重複する内容は明確性のために説明を省略する。
上述した本発明の実施例は様々な手段を用いて具現することができる。例えば、本発明の実施例は、ハードウェア、ファームウェア(firmware)、ソフトウェア又はそれらの結合などによって具現することができる。
ハードウェアによる具現の場合、本発明の実施例に係る方法は、1つ又はそれ以上のASICs(Application Specific Integrated Circuits)、DSPs(Digital Signal Processors)、DSPDs(Digital Signal Processing Devices)、PLDs(Programmable Logic Devices)、FPGAs(Field Programmable Gate Arrays)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサなどによって具現することができる。
ファームウエアやソフトウェアによる具現の場合、本発明の実施例に係る方法は、以上で説明された機能又は動作を実行するモジュール、手順又は関数などの形態で具現することができる。ソフトウェアコードは、メモリユニットに格納されてプロセッサによって駆動されてもよい。メモリユニットは、前記プロセッサの内部又は外部に位置して、既に公知の様々な手段によってプロセッサとデータを交換することができる。
上述したように開示された本発明の好ましい実施形態についての詳細な説明は、当業者が本発明を具現し、実施できるように提供された。以上では本発明の好ましい実施形態を参照して説明したが、当該技術分野における熟練した当業者は、下記の特許請求の範囲に記載された本発明の思想及び領域から逸脱しない範囲内で本発明を様々に修正及び変更できるということが理解できる。したがって、本発明は、ここに開示された実施形態に制限されるものではなく、ここに開示された原理及び新規の特徴と一致する最も広い範囲を与えるためのものである。