今後、デバイスの対間における通信は増大しそうに思われる。このような通信の例は、ゲーム・コンソール、テレビジョン、および加熱システムのような家庭用デバイスの接続用途増大や、最近におけるタブレット・コンピュータおよびスマート・フォンの追加において見ることができる。これらのデバイスの一部は、例えば、スマート・フォンまたはタブレット・コンピュータを使用してテレビジョンまたは加熱システムを制御する、画像および動画(motion picture)をカメラからラップトップまたはパーソナル・コンピュータ(PC)等にワイヤレスで転送するというように、種々の目的のために、それらの間における直接データ接続を介してデータを送信および受信することができる。現在、このような通信は、通例、有線またはワイヤレスのホーム・ネットワークまたはオフィス・ネットワークのような、同じネットワークに双方のデバイスを接続することによって実施される。これは、同じネットワーク内にない2つのデバイス間におけるデータ交換には常に可能な訳でも望ましい訳ではないので、デバイスはデータを中継するためにオンライン・サービスを利用しなければならないが、これもときには望ましくない場合がある。
多くの場合、共通のローカル・ネットワークに接続されることなく、そしてオンライン・サービスを使用せずに、直接通信で互いに係合することが有利となるデバイスは、セルラ通信ネットワークに接続されているデバイスである。2つのセルラ・デバイス間における直接データ接続を、その目的のために割り当てられた無線リソースを利用して可能にする、「近接サービス」または「直接モード」として知られている技法が開発されている。従来のセルラ・デバイスは1つ以上の通信ネットワークのネットワーク・インフラストラクチャを利用し、このインフラストラクチャは互いと通信するために少なくとも1つの基地局を含むのに対して、このようなデバイス間における直接モード通信は、ユーザ・データがネットワーク・インフラストラクチャを横断する必要なく、これらが互いと直接ワイヤレス・データ接続を確立できるという特徴がある。
以上で説明した直接モード通信には必要とされるように、互いに近接するのではなく、そして同じローカル・ネットワーク内にあるのでもない、2つのセルラ・デバイス間におけるデバイス対デバイス(D2D)通信を可能にすることができれば望ましいであろう。セルラ・デバイスにとってこのような通信を達成するのを困難にする1つの要因は、セルラ・デバイスが異なる移動体ネットワーク通信事業者に加入しているかもしれず、したがって異なるファイアウォールの後ろ側にあるかもしれないことである。同じ移動体通信事業者のネットワーク内にあるデバイスであっても、セキュリティ規制が2つのデバイスが直接通信することを禁止する場合もある。この問題に対する簡単な(trivial)解決策をあげるとすれば、ファイアウォールを除去し、各デバイスが通信事業者のネットワークの内部および外部双方から直接アドレス可能にすることであろう。こうすると発生する可能性がある問題は、通信事業者、したがって、デバイスのユーザが、デバイスに到達することを許可されるデータを制御できなくなることである。例えば、悪意のあるウェブサイトまたはハッカーが、ある一定のデバイスにデータを送り続ける可能性があり、その結果、エンド・ユーザがデータ使用に対する高額の請求書に直面する可能性があること、または/および迷惑データ(unsolicited data)に対してネットワーク通信事業者が課金できず、通信事業者には損失になってしまう可能性があることである。
また、2つのセルラ・デバイス上にある2つのソフトウェア・アプリケーションがデータを交換するために、これらのデバイスおよびアプリケーションが、デバイス間で接続が利用可能であることを把握し、そしてこの接続を介してデータ・パケットを待っていればよければ、またはデータ・パケットを送ることができれば望ましいであろう。好ましくは、このような通信を可能にする技法は、アプリケーション開発者およびデバイスのエンド・ユーザの双方にとってシームレスであり、使いやすくなければならない。
当技術分野において必要とされるのは、1つの移動体通信事業者の同じまたは異なる通信ネットワーク、または異なる移動体ネットワーク通信事業者の通信ネットワークに接続された2つのセルラ・デバイス間において、以上で説明した問題の少なくともいくつかに取り組むことができるように、接続の確立を可能にする技法である。
以上で説明した問題の1つ以上に取り組むために、本明細書では「インフラストラクチャ・ベースのD2D通信」と呼ぶ技法を提案する。ここで、「インフラストラクチャ・ベースのD2D通信」という用語は、2つのデバイス間における直接データ接続の発見および設定を指し、これらのデバイスがあたかも同じネットワーク内に位置するかのように、データ交換を可能にするためのものである。言い換えると、インフラストラクチャ・ベースのD2D通信は、例えば、送信制御プロトコル(TCP)/インターネット・プロトコル(IP)およびユーザ・データグラム・プロトコル(UDP)/IPパケットのようなデータ・パケットを、その目的のために確立された接続を介して直接交換することを、デバイスに可能にする。この接続を、本明細書では、「インフラストラクチャ・ベースのD2D接続」と呼ぶ。以下では、別段指定されなければ、「通信」および「接続」という用語は、インフラストラクチャ・ベースのD2D通信および接続をそれぞれ指すこととする。
最も一般的な場合では、デバイスは異なる移動体ネットワーク通信事業者(MNO)の通信ネットワークに接続される。しかしながら、種々の個々の場合では、デバイスは、1つのMNOの2つの異なる通信ネットワーク、および1つのMNOの同じ通信ネットワークに接続されることもある。
本発明の一態様では、第1移動体ネットワーク通信事業者(MNO A)によって制御される第1ルーティング・エンティティに、第1移動体ネットワーク通信事業者の通信ネットワークに接続された第1デバイスと、第2移動体ネットワーク通信事業者(MNO B)の通信ネットワークに接続された第2デバイスとの間においてインフラストラクチャ・ベースのD2D接続の確立を可能にするコンピュータ実装方法を提案する。このようなデバイスは、標準化における、任意のスマート・デバイスまたは端末、好ましくは移動体端末、更に公式的には「ユーザ機器」(UE)または「移動局」(MS)として知られ、単に「ユーザ」、「端末」、または「セルラ・デバイス」と呼ばれることもあるものとすることができる。また、このようなデバイスは、ラップトップ、タブレット、スマート・ウオッチ、スマート・グラスなどのようなデバイスも含むことができる。この方法は、第1ルーティング・エンティティによって実行されるステップを含み、第1デバイスから第2デバイスの第1識別子を含む接続要求を受けるステップと、受け取った第2デバイスの第1識別子から、第2移動体ネットワーク通信事業者(MNO B)によって制御される第2ルーティング・エンティティを識別する、第2デバイスの第2識別子を割り出すステップと、第2識別子を使用して、第2ルーティング・エンティティに、第1デバイスと第2デバイスとの間の接続を求める接続要求を出すことによって、識別された第2ルーティング・エンティティとコンタクトするステップであって、接続要求が、第1識別子、および/または第2デバイスの第2識別子を含む、ステップとを含む。更に、この方法は、第1デバイスのコンタクト情報を第2ルーティング・エンティティに提供するステップと、第2ルーティング・エンティティから第2デバイスのコンタクト情報を受け取るステップと、第1デバイスのコンタクト情報および第2デバイスのコンタクト情報にしたがって、第1デバイスと第2デバイスとの間インフラストラクチャ・ベースのD2D接続を介したデータ交換に合わせて第1ファイアウォールを構成するステップとを含んでもよい。第1ファイアウォールは、第1デバイスが接続されている通信ネットワークのファイアウォールであり(即ち、第1デバイス自体に実装されているかもしれないファイアウォールとは異なる)、第1ファイアウォールは、第1デバイスのファイアウォールとして機能するように構成される(即ち、第1デバイスを保護するように構成される)。
本発明の他の態様では、以上で説明したような第2ルーティング・エンティティによって実行されるコンピュータ実装方法も開示する。この方法は、第2ルーティング・エンティティによって実行されるステップを含み、第1ルーティング・エンティティから、第1デバイスと第2デバイスとの間の接続を求める接続要求を受けるステップであって、接続要求が、前述のように、第2デバイスの第1識別子および/または第2識別子を含む、ステップと、受け取った第2デバイスの第1識別子および/または第2識別子から割り出して第2デバイスの第3識別子を決定するステップと、決定した第3識別子を使用して、接続要求またはその派生物を、決定した第3識別子によって識別された第2デバイスに出すことによって、第2デバイスにコンタクトするステップと、を含む。更に、この方法は、第1ルーティング・エンティティから第1デバイスのコンタクト情報を受け取るステップと、必要に応じて、第2デバイスから、第2デバイスが接続要求を受け入れる指示を受けるステップと、第2デバイスのコンタクト情報を第1ルーティング・エンティティに提供するステップと、第1デバイスのコンタクト情報および第2デバイスのコンタクト情報にしたがって、第1デバイスと第2デバイスとの間のインフラストラクチャ・ベースのD2D接続を介したデータ交換に合わせて第2ファイアウォールを構成するステップとを含む。第2ファイアウォールは、第2デバイスが接続されている通信ネットワークのファイアウォールであり(即ち、第2デバイス自体に実装されているかもしれないファイアウォールとは異なる)、第2ファイアウォールは、第2デバイスのファイアウォールとして機能するように構成される(即ち、第2デバイスを保護するように構成される)。
以下では、簡潔さのために、第1および第2ファイアウォールを、それぞれ、第1および第2デバイスのファイアウォールと呼ぶ。しかしながら、以上で示したこれらのファイアウォールの説明に則して、これらのファイアウォールは、デバイス自体に実装されデバイス自体によって制御されるファイアウォールではなく、ネットワーク・レベルのファイアウォール(即ち、通信ネットワークおよび/またはMNOによって制御されるファイアウォール)を意味することも理解されよう。
以下では、第1および第2ルーティング・エンティティによって実行される方法は、異なる移動体ネットワーク通信事業者のそれぞれの通信ネットワークに接続された第1および第2デバイスを参照して、最も一般的な場合について説明する。しかしながら、本明細書において説明する方法は、第1および第2デバイスが同じ移動体ネットワーク通信事業者の同じ通信ネットワークに接続されている特定の場合、ならびに第1および第2デバイスが同じ移動体ネットワーク通信事業者の異なる通信ネットワークに接続されている特定の場合にも等しく適用可能である。言い換えると、特許請求の範囲において使用される場合、第1移動体ネットワーク通信事業者は、第2移動体ネットワーク通信事業者と同じであることが可能であるが、そうである必要はなく、第1移動体ネットワーク通信事業者が第2移動体ネットワーク通信事業者と同じである場合、第1デバイスが接続されている通信ネットワークは、第2デバイスが接続されている通信ネットワークと同じであることが可能であるが、そうである必要はない。
本明細書において使用する場合、「第1識別子」という用語は、スマート・セルラ・デバイス上およびインターネット上においてオーバー・ザ・トップ・アプリケーション(例えば、Facebook、Twitter等のような)によって使用されるアプリケーション・レベルの識別子を指す。アプリケーション・レベルの識別子のいくつかの例には、ログイン名、友人の名前、特定のユーザを識別するオンライン・アプリケーションによって生成される数値の列、電子メール・アドレス等が含まれるが、これらに限定されるのではない。
本明細書において使用する場合、「第2識別子」という用語は、移動体ネットワーク通信事業者(MNO)によって使用されるネットワーク・レベルの識別子を指す。ネットワーク・レベルの識別子のいくつかの例には、国際移動体加入者識別情報(IMSI)、移動局国際加入者ディレクトリ番号(MSISDN)、統一資源識別子(URI)等が含まれるが、これらに限定されるのではない。これらのネットワーク・レベルの識別子は、一般に、ネットワーク・レベルの識別子がどの移動体ネットワーク通信事業者またはドメインに属するのか識別するような構造に作られる。その結果、ネットワーク・レベルの識別子は、識別された移動体ネットワーク通信事業者によって制御されるルーティング・エンティティを識別しこれとコンタクトするために使用することができる。
本明細書において使用する場合、「第3識別子」という用語は、トラフィックを第2デバイスにアドレスするおよび/または導くために第2ネットワークが内部で使用する識別子を指す。このような識別子の正確な形態、例えば、IMSI、一時的移動体加入者識別情報(TMSI)、IPアドレス、sipアドレス、または国際移動機器識別情報(IMEI)は、ネットワークの実施態様によって異なる。
本発明の実施形態は、セルラ・デバイスのエンド・ユーザが、彼らのデバイス上で実行するOTTアプリケーション内から他のデバイスとのインフラストラクチャ・ベースのD2D接続を設定することができれば、即ち、OTTアプリケーションがこのような接続の設定を指揮するのであれば望ましいであろうという知見に基づく。例えば、メアリーがジョンにFacebookを通じて写真を送りたい場合、彼女は、「ジョン」を選択し、コンテキスト・メニューを開き、「D2D経由で送る」を選択することができるはずである。次いで、アプリケーションがそのようにする場合、アプリケーションにおいて使用されるデバイスの識別子(即ち、第1識別子)が、第2デバイスの移動体ネットワーク通信事業者の通信ネットワークにおけるルーティングのために使用されるデバイス識別子(即ち、第2および第3識別子)にリンク可能でなければならないという問題が生ずる。この問題は、他のセルラ・デバイス(「第2デバイス)とD2D通信を開始した1つのセルラ・デバイス(「第1デバイス)の側にルーティング・エンティティ(「第1ルーティング・エンティティ」)を実装し、第2デバイスの側にルーティング・エンティティ(「第2ルーティング・エンティティ」)を実装することによって解決される。第1ルーティング・エンティティは、第2デバイスが過去においてそのネットワーク・レベルの識別情報とアプリケーション・レベルの識別情報との間の関連付けをOTTサービス・プロバイダまたは他のデータベースに登録したことがあるのであれば、そして第2デバイスの第1および/または第2識別子を含む接続要求によって第2ルーティング・エンティティを識別し次いで第2ルーティング・エンティティにコンタクトすることに基づいて、第2デバイスの第1識別子から、第2デバイスの第2識別子を割り出すことができる。第2ルーティング・エンティティは、受け取った第2デバイスの第1識別子または/および第2識別子から、そのデバイスの第3識別子を割り出すことができる。更に、2つのルーティング・エンティティは、第1および第2デバイスについてのコンタクト情報を交換し、これらのそれぞれのエッジ・ファイアウォール(即ち、コア・ネットワークと、例えば、それぞれのMNO毎のインターネットのような、他のネットワークとの間のファイアウォール)をデバイス間のデータ交換に合わせて構成するときに協働するように構成される。このように、インフラストラクチャ・ベースのD2D接続は、各々がそれぞれのネットワーク・レベルのファイアウォール(即ち、これらのそれぞれの通信ネットワークおよび/またはMNOによって制御されるファイアウォール)の背後にある1対のデバイス間に確立することができる。
一実施形態では、第1ルーティング・エンティティによって実行される方法は、更に、第1デバイスから、第1デバイスと第2デバイスとの間の接続を終了するコマンドを受け取るステップと、第1デバイスのファイアウォールに接続を終了するように命令するステップと、必要に応じて、第2ルーティング・エンティティに、接続を終了する指示を出すステップとを含んでもよい。次いで、対応して、第2ルーティング・エンティティによって実行される方法は、更に、第1ルーティング・エンティティから、第1デバイスが第1デバイスと第2デバイスとの間の接続を終了するコマンドを発行したという指示を受けるステップと、第2デバイスのファイアウォールに、接続を終了するように命令するステップと、および/または接続を終了すべきことの指示を第2デバイスに出すステップとを含んでもよい。このように、第1デバイスが接続の終了を先導することができる。
他の実施形態では、第1ルーティング・エンティティによって実行される方法は、更に、第2ルーティング・エンティティから、第2デバイスが第1デバイスと第2デバイスとの間の接続を終了するコマンドを発行したことの指示を受けるステップと、第1デバイスのファイアウォールに、接続を終了するように命令するステップと、および/または第1デバイスに接続を終了すべきことの指示を出すステップとを含んでもよい。次いで、対応して、第2ルーティング・エンティティによって実行される方法は、更に、第2デバイスから、第1デバイスと第2デバイスとの間の接続を終了するコマンドを受け取るステップと、第2デバイスのファイアウォールに接続を終了するように命令するステップと、必要に応じて、第1ルーティング・エンティティに、接続を終了することの指示を出すステップとを含んでもよい。このような実施形態は、第2デバイスが接続の終了を先導することを可能にする。
一実施形態では、第2デバイスの第1識別子から割り出して第2デバイスの第2識別子を決定する第1ルーティング・エンティティは、第1識別子を含む要求をOTTアプリケーションに関連付けられたサーバに送り、第2識別子を含む応答を受け取る第1ルーティング・エンティティを含むことができる。他の実施形態では、第2デバイスの第1識別子から割り出して第2デバイスの第2識別子を決定する第1ルーティング・エンティティは、第1識別子に基づいて第2識別子を組み立てるロジックにアクセスし、このロジックを、受け取った第2デバイスの第1識別子に適用して、第2デバイスの第2識別子を組み立てる第1ルーティング・エンティティを含むことができる。更に他の実施形態では、第2デバイスの第1識別子から割り出して第2デバイスの第2識別子を決定する第1ルーティング・エンティティは、OTTアプリケーションに関連付けられたサーバの公開鍵を使用して、受け取った第1識別子を解読する第1ルーティング・エンティティを含むことができる。実施形態では、第2デバイスの第2識別子が、第2デバイスの第1識別子と同じであってもよい。
一実施形態では、第2デバイスの第2識別子から割り出して第2デバイスの第3識別子を決定する第2ルーティング・エンティティは、複数の第2識別子および複数の第3識別子を含む(識別する)データベースにアクセスし、データベースに格納されている複数の第3識別子から、受け取った第2デバイスの第2識別子に対応する1つを、第2デバイスの第3識別子として識別する第2ルーティング・エンティティを含むことができる。複数の第3識別子の各々は、複数の第2識別子の1つ以上に対応する。他の実施形態では、第2デバイスの第2識別子から割り出して第2デバイスの第3識別子を決定する第2ルーティング・エンティティは、第2識別子に基づいて第3識別子を組み立てるロジックにアクセスし、受け取った第2デバイスの第2識別子にこのロジックを適用して第2デバイスの第3識別子を組み立てる第2ルーティング・エンティティを含むことができる。実施形態では、第3識別子は第2識別子と同じであることも可能である。実施形態では、第2ルーティング・エンティティには知られている秘密によって第2識別子を解読して、第3識別子を得てもよい。
実施形態では、第1デバイスのコンタクト情報は、接続を介してデータを伝達するために使用される第1デバイスのIPアドレスおよび1つ以上のポート番号を含んでもよく、第2デバイスのコンタクト情報は、接続を介してデータを伝達するために使用される第2デバイスのIPアドレスおよび1つ以上のポートを含んでもよい。
好ましい実施形態では、第1ルーティング・エンティティは、第1移動体ネットワーク通信事業者の通信ネットワークのコア・ネットワーク内における直接モード制御センタ(DMCC)を含んでもよく、一方第2ルーティング・エンティティは、第2移動体ネットワーク通信事業者の通信ネットワークのコア・ネットワーク内における類似のDMCCを含んでもよい。
本発明の更に他の態様では、以上で説明したような第1デバイスによって実行されるコンピュータ実装方法を開示する。この方法は、第1デバイスによって実行されるステップを含み、前記第1移動体ネットワーク通信事業者の通信ネットワークの外部にあり、前記第2移動体ネットワーク通信事業者の通信ネットワークの外部にあるネットワークに接続されたOTTサービス・プロバイダから、前記第2デバイスの第1識別子を入手するステップと、前述のような第1ルーティング・エンティティに、前記第2デバイスの第1識別子を含む接続要求を出すステップと、必要に応じて、前記第1ルーティング・エンティティから、前記第2デバイスのコンタクト情報を受け取るステップと、を含む。実施形態では、このような方法は、更に、第1デバイスが第1ルーティング・エンティティに、第1デバイスと第2デバイスとの間の接続を終了するコマンドを出すステップ、または第1デバイスが第1ルーティング・エンティティから接続を終了すべきことの指示を受けるステップも含んでもよい。
本発明の更に他の態様では、以上で説明したような第2デバイスによって実行されるコンピュータ実装方法を開示する。この方法は、第2デバイスによって実行されるステップを含み、前記第1移動体ネットワーク通信事業者の通信ネットワークの外部にあり、前記第2移動体ネットワーク通信事業者の通信ネットワークの外部にあるネットワークに接続されたOTTサービス・プロバイダに、前記第2デバイスの第1識別子を付与するステップと、前述のような第2ルーティング・エンティティから、第1デバイスと第2デバイスとの間の接続を求める接続要求を受けるステップと、必要に応じて、第2ルーティング・エンティティに、第2デバイスが接続要求を受け入れることの指示を出すステップと、必要に応じて、第2ルーティング・エンティティから、第1デバイスのコンタクト情報を受け取るステップとを含む。実施形態では、このような方法は、更に、第2デバイスが第2ルーティング・エンティティに第1デバイスと第2デバイスとの間の接続を終了するコマンドを出すステップ、または第2デバイスが第2ルーティング・エンティティから接続を終了すべきことの指示を受けるステップを含んでもよい。
本発明の他の態様によれば、ここで説明したような方法ステップを実行するデータ処理システムおよび装置を提供する。データ処理システムおよび装置の各々は、ここで説明したような方法ステップを実行するように構成された少なくとも1つのプロセッサを含む。このようなデータ処理システムを装置内に含むこともできる。
また、本開示は、コンピュータ読み取り可能記憶媒体上に実装されるコンピュータ・プログラム、およびこのようなコンピュータ・プログラムを格納する、好ましくは非一時的なコンピュータ読み取り可能記憶媒体に関するとしてもよい。コンピュータ・プログラムは、コンピュータ上で実行すると、本開示において説明する方法の内任意のものにしたがって方法ステップを実行するように構成されたソフトウェア・コード部分を含むのでもよい。
これまでの実施形態では、第2デバイスは、代わりに、第2ネットワーク通信事業者(MNO A)の通信ネットワーク以外の第2ネットワークに接続されてもよい。例えば、第2ネットワークは、例えば、第2通信事業者または第1通信事業者の固定またはワイヤレス・ネットワークでもよい。ワイヤレス・ネットワークは、WiFiネットワークでもよく、例えば、ワイヤレス・アクセス・ポイントまたはホットスポットを含んでもよい。第2デバイスは、ホーム・ネットワークまたは会社のネットワークのような、プライベート・ネットワークを通じて第2ネットワークに接続されてもよい。これらのネットワークは、固定および/またはワイヤレス、例えば、WiFIネットワークでもよい。これまでの実施形態において説明したように、第2デバイスと、第2デバイスが接続されている第2ネットワークとの間に、第2ファイアウォールがあってもよい。第2ファイアウォールは、例えば、ファイアウォールとして構成可能なホーム・ゲートウェイであってもよい。第2ファイアウォールは、第2ネットワークからの通信事業者の制御下にあってもよい。即ち、通信事業者は、第2ネットワークからファイアウォールの設定を変更することができ、および/または第2ファイアウォールは、プライベート・ネットワークから制御されてもよい。例えば、第2デバイスがファイアウォールの設定を変更してもよい。しかしながら、第2ファイアウォールがある場合、第2デバイスと第2ネットワークとの間におけるファイアウォールの設定変更は、複雑となり、様々なファイアウォール制御ポリシーを受けることもあり、セキュリティ上危険であるおそれがある。したがって、以下の態様および実施形態では、接続要求が第1デバイスから発せられた場合でも、第2ファイアウォールを通って第2デバイスから接続を設定させることを提案する。これは、ファイアウォールを通って出て行くトラフィックは常に許容されるからである。有利なこととして、ネットワークの1つが移動体ネットワークでない場合でも、異なるネットワークまたは異なるネットワーク・セグメント間におけるD2D接続を設定することができる。
以下の態様および実施形態では、第2デバイスはその第1識別子(アプリケーション・レベルの識別子)およびその第2識別子(通信事業者レベルの識別子)を、登録データベースを含む第2ルーティング・エンティティに登録することができる。第2ネットワークは、第2ルーティング・エンティティ、例えば、DMCCを含むのでもよい。第2ルーティング・エンティティは、第2ファイアウォールを構成するように構成されなくてもよいが、これが除外されるのではない。第1識別子および第2識別子を登録データベースに格納してもよい。第1識別子と第2識別子との間の関係は、当業者によって有用と思われる任意の方法で格納することができる。第2ルーティング・エンティティは、第1識別子および第2識別子をOTTサービスに転送することができる。これによって、第1ルーティング・エンティティが第2デバイスの第1識別子から第2デバイスの第2識別子を割り出し、つまり第2ルーティング・エンティティを識別することが可能になる。デバイスの第1識別子から第2識別子を割り出す方法については先に説明したので、ここでは繰り返さない。
あるいは、第2ルーティング・エンティティが、OTTサービス・プロバイダの制御下にあってもよい。通信事業者およびユーザが、第1識別子および第2識別子を第2ルーティング・エンティティに、少なくとも同じOTTサービスのために、登録したデバイスのために同じ第2ルーティング・エンティティを共有できることを利点にあげてもよいであろう。
例えば、接続要求を配信するために、第2デバイスには常に第2ルーティング・エンティティから到達できるように、第2デバイスと第2ルーティング・エンティティとの間の接続は常に開いておいてもよい。また、例えば、第2ネットワークを通じて、または第2デバイスも接続することができる異なるネットワーク、例えば、移動体ネットワークを通じて、OTTプロバイダによって提供されるような通知サービスを使用して、接続要求を第2デバイスに配信してもよい。プッシュ通知を配信する通知サービスは、IPレベルの接続を電話機に要求することなく、メッセージをデバイスに送ることを可能にし、こうしてバッテリの漏れを低減する。
第2デバイスは、第2デバイスによる接続の設定前または最中に、第2ルーティング・エンティティに登録することができ、例えば、必要なときに第2デバイスによる設定中に構成してもよい。第2デバイスは、第2ルーティング・エンティティへの登録および第2識別子のOTTサービスへの登録の前に、(U)SIM、ソフトSIM、SIM AKA手順または同様の方法を使用して、第2識別子を入手していてもよい。例えば、移動体デバイスは、移動体ネットワーク通信事業者との加入と関連付けられ、または他のデバイスから資格証明を入手済みである(例えば、出願第13190078.9号を参照のこと)。
本発明の他の態様では、第1移動体ネットワーク通信事業者によって制御される第1ルーティング・エンティティのためのコンピュータ実装方法を開示する。この方法は、第1移動体ネットワーク通信事業者の通信ネットワークに接続された第1デバイスと、第2通信ネットワークに接続された第2デバイスとの間における接続の確立を可能にする。この方法は、第1ルーティング・エンティティによって実行されるステップを含み、第1デバイスから、第2デバイスの第1識別子を含む接続要求を受けるステップと、第2デバイスの第1識別子から、第2ルーティング・エンティティを識別する第2デバイスの第2識別子を割り出すステップと、第2ルーティング・エンティティに、第1デバイスと第2デバイスとの間の接続を求める接続要求を出すステップであって、接続要求が第2デバイスの第1識別子および/または第2識別子を含む、ステップと、第2ルーティング・エンティティに第1デバイスのコンタクト情報を提供するステップと、第2ルーティング・エンティティから第2デバイスのコンタクト情報を受け取るステップと、第1デバイスのコンタクト情報および第2デバイスのコンタクト情報にしたがって、第1デバイスと第2デバイスとの間の接続を介したデータ交換に合わせて第1ファイアウォールを構成するステップであって、第1ファイアウォールが、第1デバイスが接続されている通信ネットワークのファイアウォールであり、第1デバイスを保護するように構成される、ステップとを含む。
本発明の更に他の態様では、第2ルーティング・エンティティのためのコンピュータ実装方法を開示する。この方法は、第1移動体ネットワーク通信事業者の通信ネットワークに接続された第1デバイスと、第2通信ネットワークに接続された第2デバイスとの間における接続の確立を可能にする。この方法は、第2ルーティング・エンティティによって実行されるステップを含み、第1移動体ネットワーク通信事業者によって制御される第1ルーティング・エンティティから、第1デバイスと第2デバイスとの間の接続を求める接続要求を受けるステップであって、接続要求が第2デバイスの第1識別子または/および第2識別子を含む、ステップと、第2デバイスの第1識別子または/および第2識別子から割り出して第2デバイスの第3識別子を決定するステップと、接続要求またはその派生物を、第3識別子によって識別された第2デバイスに出すステップと、第1ルーティング・エンティティから、第1デバイスのコンタクト情報を受け取るステップと、必要に応じて、第2デバイスから、第2デバイスが接続要求を受け入れる指示を受けるステップと、第2デバイスのコンタクト情報を第1ルーティング・エンティティに提供するステップとを含む。
本発明の他の態様では、第1移動体ネットワーク通信事業者の通信ネットワークに接続された第1デバイスのためのコンピュータ実装方法を開示する。この方法は、第2通信ネットワークに接続された第1デバイスと第2デバイスとの間における接続の確立を可能にする。この方法は、第1移動体ネットワーク通信事業者の通信ネットワークの外部にあり、第2通信ネットワークの外部にあるネットワークに接続されたオーバー・ザ・トップ(OTT)サービス・プロバイダから、第2デバイスの第1識別子を入手するステップと、第1移動体ネットワーク通信事業者によって制御される第1ルーティング・エンティティに、第2デバイスの第1識別子を含む接続要求を出すステップと、必要に応じて、第1ルーティング・エンティティから第2デバイスのコンタクト情報を受け取るステップとを含む。
本発明の更に他の態様では、第2通信ネットワークに接続された第2デバイスのためのコンピュータ実装方法を開示する。この方法は、第1移動体ネットワーク通信事業者の通信ネットワークに接続された第1デバイスと第2デバイスとの間における接続の確立を可能にする。この方法は、第1移動体ネットワーク通信事業者の通信ネットワークの外部にあり、更に第2通信ネットワークの外部にあるネットワークに接続されたオーバー・ザ・トップ(OTT)サービス・プロバイダに、第2デバイスの第1識別子を付与するステップと、第2デバイスの第1識別子および第2識別子を第2ルーティング・エンティティに登録するステップと、第2ルーティング・エンティティから、第1デバイスと第2デバイスとの間の接続を求める接続要求を受けるステップと、必要に応じて、第2ルーティング・エンティティに、第2デバイスが接続要求を受け入れる指示を出すステップと、必要に応じて、第2ルーティング・エンティティから第1デバイスのコンタクト情報を受け取るステップとを含む。
本発明の更に他の態様では、第2ルーティング・エンティティのためのコンピュータ実装方法を開示する。この方法は、第1移動体ネットワーク通信事業者の通信ネットワークに接続された第1デバイスと、第2通信ネットワークに接続された第2デバイスとの間における接続の確立を可能にする。この方法は、第2デバイスから、第1デバイスの第1識別子を含む接続要求を受けるステップと、第1デバイスの第1識別子から、第1ルーティング・エンティティを識別する第1デバイスの第2識別子を割り出すステップと、第1ルーティング・エンティティに、第1デバイスと第2デバイスとの間の接続を求める接続要求を出すステップであって、接続要求が第1デバイスの第1識別子または/および第2識別子を含む、ステップと、第1ルーティング・エンティティに第2デバイスのコンタクト情報を提供するステップと、第1ルーティング・エンティティから第1デバイスのコンタクト情報を受け取るステップと、第2デバイスに第1デバイスのコンタクト情報を提供するステップとを含む。
本発明の更にまた別の態様では、第1移動体ネットワーク通信事業者によって制御される第1ルーティング・エンティティのためのコンピュータ実装方法を開示する。この方法は、第1移動体ネットワーク通信事業者の通信ネットワークに接続された第1デバイスと、第2通信ネットワークに接続された第2デバイスとの間における接続の確立を可能にする。この方法は、第2ルーティング・エンティティから、第1デバイスと第2デバイスとの間の接続を求める接続要求を受けるステップであって、接続要求が第1デバイスの第1識別子または/および第2識別子を含む、ステップと、第1デバイスの第1識別子または/および第2識別子から割り出して第1デバイスの第3識別子を決定するステップと、接続要求またはその派生物を、第3識別子によって識別された第1デバイスに出すステップと、第2ルーティング・エンティティから第2デバイスのコンタクト情報を受け取るステップと、必要に応じて、第1デバイスから、第1デバイスが接続要求を受け入れる指示を受けるステップと、第1デバイスのコンタクト情報を第2ルーティング・エンティティに提供するステップと、第1デバイスのコンタクト情報および第2デバイスのコンタクト情報にしたがって、第1デバイスと第2デバイスとの間の接続を介したデータ交換に合わせて第1ファイアウォールを構成するステップであって、第1ファイアウォールが、第1デバイスが接続されている通信ネットワークのファイアウォールであり、第1デバイスを保護するように構成される、ステップとを含む。
第1ルーティング・エンティティ(例えば、DMCC)が第1デバイスから、第2デバイスの第1識別子を含む接続要求を受けると、第1ルーティング・エンティティは、例えば、第1識別子を含む要求をOTTサービスに送り、次いで第2識別子を受け取ることによって、第2デバイスの第1識別子から第2デバイスの第2識別子を割り出す。第1ルーティング・エンティティは、第2識別子に基づいて第2ルーティング・エンティティを決定し、第2デバイスの第1および/または第2識別子を含む接続要求を第2ルーティング・エンティティに送る。第2デバイスと第2ルーティング・エンティティとの間で接続が開いたままにされている場合、接続要求を第2デバイスに送るためにこの接続を使用してもよい。あるいは、接続要求を第2デバイスに送るために、プッシュ・サービスを使用してもよい。好ましくは、接続要求は第1デバイスのコンタクト情報(例えば、パブリックIPアドレスおよび必要に応じてポート番号)を含む。第1デバイスの接続情報を第2デバイスに別個に配信してもよい。第1ルーティング・エンティティは、第1デバイスのコンタクト情報を第1デバイスからまたは第1ファイアウォールから入手することができ、ここで、第1ファイアウォールは、第1デバイスが接続されている通信ネットワークにおけるファイアウォールであり、第1デバイスを保護するように構成されている。第2デバイスは、接続要求を受けり、この要求を拒否するまたは受け入れることができる。第2デバイスは、接続要求に含まれる第1デバイスのコンタクト情報を受け取ることができ、または第1デバイスのコンタクト情報を別個に受け取ることもできる。第2デバイスは応答を第1ルーティング・エンティティに送ることができ、この応答は、第1デバイスと第2デバイスとの間の接続についての第2デバイスのコンタクト情報(例えば、パブリックIPアドレスおよび必要に応じてポート番号)を含む。第1ルーティング・エンティティは、第1デバイスのコンタクト情報および第2デバイスのコンタクト情報にしたがって、第1デバイスと第2デバイスとの間の接続を介したデータ交換に合わせて第1ファイアウォールを構成する。ここで、第1ファイアウォールは、第1デバイスが接続されている通信ネットワークにおけるファイアウォールであり、第1デバイスを保護するように構成される。この時点で、第2デバイスは、第1デバイスの接続情報に基づいて、第1デバイスと第2デバイスとの間に接続を設定することができる。接続を終了するようにファイアウォールに命令することによる第1デバイスと第2デバイスとの間における接続の終了は、既に説明した実施形態におけるように実行することができるので、ここでは繰り返さない。また、既定時間の後に接続を終了するのでもよい。
必要に応じて、第2デバイスへの接続要求に認証トークンを含めることができ、第2デバイスは認証トークンをその応答において使用して、それ自体を第2デバイスとして、第1ファイアウォールのような、第1デバイスにおよび/または第1ネットワークのネットワーク・エレメントに認証することができる。認証トークンは、第1ルーティング・エンティティ、第1ファイアウォール、または第1ネットワークの任意の他のエレメントによって生成されてもよく、第1ネットワークのエレメント間で共有されてもよい。
第2デバイスが第1デバイスへの接続を設定したいとき、第2ルーティング・エンティティにコンタクトする。登録されていない場合、第2デバイスは最初に、以上で説明したように、登録しなければならないこともある。第2ルーティング・エンティティは、第2デバイスから、第1デバイスの第1識別子を含む接続要求を受ける。第2ルーティング・エンティティは、第1デバイスの第1識別子から、第1ルーティング・エンティティを識別する第1デバイスの第2識別子を割り出す。このように、第2デバイスは、異なるルーティング・エンティティに関係するデバイス、例えば、異なる通信事業者に関係するデバイスへの接続を設定できるという利点がある。第2ルーティング・エンティティは、接続要求を第1ルーティング・エンティティに転送することができる。次いで、第2デバイスと第1デバイスとの間の接続を求める接続要求は、第1ルーティング・エンティティによって受けられる。第1ルーティング・エンティティは、第2デバイスの第1または/および第2識別子から割り出して第1デバイスの第3識別子を決定する。第1ルーティング・エンティティは、接続要求またはその派生物を、第3識別子によって識別された第1デバイスに出す。第1デバイスは、接続要求を第1ルーティング・エンティティから受け、この要求を拒否するまたは受け入れることができる。第1デバイスは、IPアドレスと、必要に応じて、ポート番号とを含むことができる応答を、第1ルーティング・エンティティに送ることができる。第1ルーティング・エンティティは、第1デバイスの第1ファイアウォール・コンタクト情報を要求することができる(例えば、パブリックIPアドレス、および必要に応じてポート番号。これらは、例えば、ファイアウォールがNAT変換を実行するために、第1デバイスからの情報とは異なることもある)。第1ルーティング・エンティティは、例えば、第2ルーティング・エンティティを介して、第1デバイスのコンタクト情報を含む応答を第2デバイスに送る。第1ルーティング・エンティティは、第1デバイスのコンタクト情報および第2デバイスのコンタクト情報にしたがって、第1デバイスと第2デバイスとの間の接続を介したデータ交換に合わせて第1ファイアウォールを構成する。ここで、第1デバイスが接続されている通信ネットワークの第1ファイアウォールは、第1デバイスを保護するように構成されている。この時点で、第2デバイスは、第1デバイスのコンタクト情報に基づいて、第1デバイスとの接続を設定することができる。
当業者には認められるであろうが、本発明の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化することができる。したがって、本発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態をなすことができ、これらは全て、総じて、「回路」、「モジュール」、または「システム」と本明細書では呼ぶこともできる。本開示において説明する機能は、コンピュータのマイクロプロセッサによって実行されるアルゴリズムとして実現することができる。更に、本発明の態様は、コンピュータ読み取り可能プログラム・コードが具体化された、例えば、格納された、1つ以上のコンピュータ読み取り可能媒体(1つまたは複数)において具体化されたコンピュータ・プログラム製品の形態をなすこともできる。
1つ以上のコンピュータ読み取り可能媒体(1つまたは複数)の任意の組み合わせも利用することができる。コンピュータ読み取り可能媒体とは、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能記憶媒体であるとして差し支えない。コンピュータ読み取り可能記憶媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体システム、装置、あるいはデバイス、更には以上の任意の適した組み合わせでもよいが、これらに限定されるのではない。コンピュータ読み取り可能記憶媒体の更に具体的な例(非網羅的なリスト)をあげるとすれば、以下になる。1本以上のワイヤを有する電気接続、携帯用コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯用コンパクト・ディスク・リード・オンリー・メモリ(CD−ROM)、光記憶デバイス、磁気記憶デバイス、または以上のものの任意の適した組み合わせ。この文書のコンテキストでは、コンピュータ読み取り可能記憶媒体は、命令実行システム、装置、またはデバイスによる使用、あるいはこれと関連付けた使用のためにプログラムを保持または格納することができる任意の有形媒体として差し支えない。
コンピュータ読み取り可能信号媒体は、例えば、ベースバンドにおいてまたは搬送波の一部として、コンピュータ読み取り可能プログラム・コードが内部に具体化された伝搬データ信号を含むことができる。このような伝搬信号は、電磁、光、またはこれらの任意の適した組み合わせを含むがこれらに限定されない種々の形態の内任意のものをなすことができる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、命令実行システム、装置、またはデバイスによる使用、あるいはこれと関連付けた使用のためにプログラムを伝達、伝搬、または移送することができる任意のコンピュータ読み取り可能媒体として差し支えない。
コンピュータ読み取り可能媒体上に具体化されたプログラム・コードは、任意のしかるべき媒体を使用して送信することができる。任意のしかるべき媒体には、ワイヤレス、ワイヤライン、光ファイバ、ケーブル、RF等、または以上のものの任意の適した組み合わせが含まれるが、これらに限定されるのではない。本発明の態様に合わせて動作を実行するためのコンピュータ・プログラム・コードは、1つ以上のプログラム言語の任意の組み合わせで書くことができる。プログラミング言語には、Java(商標)、Smalltalk、C++等のようなオブジェクト指向プログラミング言語、あるいは「C」プログラミング言語または同様のプログラミング言語のような従来の手順型プログラミング言語が含まれる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、単体ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、あるいは全体的にリモート・コンピュータまたはサーバ上で実行することができる。後者のシナリオでは、リモート・コンピュータをユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む、任意のタイプのネットワークを通じて接続することができ、あるいは接続が外部コンピュータに対して行われてもよい(例えば、インターネット・サービス・プロバイダを介してインターネットを通じて)。
以下に、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図(flowchart illustration)および/またはブロック図を参照しながら、本発明の態様について説明する。尚、フローチャート図および/またはブロック図、あるいはフローチャート図および/またはブロック図におけるブロックの組み合わせの各ブロックは、コンピュータ・プログラム命令によって実現できることは理解されよう。これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサ、具体的には、マイクロプロセッサまたは中央処理ユニット(CPU)に供給され、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスのプロセッサによって実行する命令が、フローチャートおよび/またはブロック図の1つ以上のブロックにおいて指定される機能/アクトを実施する手段を形成する(create)ように、機械(machine)を制作する(produce)ことができる。
また、これらのコンピュータ・プログラム命令をコンピュータ読み取り可能媒体に格納することもでき、コンピュータ読み取り可能媒体に格納された命令が、フローチャートおよび/またはブロック図の1つ以上のブロックにおいて指定される機能/アクトを実現する命令を含む製品を制作するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定のやり方で機能するように指令することができる。
また、コンピュータ・プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータまたは他のプログラマブル装置上で実行する命令が、フローチャートおよび/またはブロック図の1つ以上のブロックにおいて指定される機能/アクトを実現するためのプロセスを提供するように、一連の動作ステップをコンピュータ、他のプログラマブル装置、または他のデバイス上で実行させてコンピュータ実装プロセスを制作することもできる。
図におけるフローチャートおよびブロック図は、本発明の種々の実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施態様のアーキテクチャ、機能、および動作を例示する。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能(1つまたは複数)を実現するための1つ以上の実行可能命令を含む、モジュール、セグメント、またはコードの部分(portion of code)を表すことができる。また、ある代替実施態様では、ブロック内に記される機能が、図に示される順序以外で行われてもよいことは注記してしかるべきである。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、または、関係する機能に応じて、ときにはブロックが逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図におけるブロックの組み合わせは、指定された機能またはアクトを実行する特殊目的ハードウェア・ベース・システム、あるいは特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実現できることも注記しておく。
添付図面を参照して、本開示について更に例示する。添付図面は、本開示による実施形態を模式的に示す。尚、本開示はこれらの具体的な実施形態に限定されるのでは決してないことは理解されよう。更に、これらの実施形態および限定の内任意のものの組み合わせも本開示によって予見されることである。
図面に示される例証的な実施形態を参照して、本発明の態様について更に詳しく説明する。図面において、
図1は、通信システム100の模式図を示す。以下で更に詳しく説明するように、通信システム100は、無線アクセス・ネットワーク102(図1ではE−UTRANまたは(UT)RANとしても示される)と、種々のエレメントまたはノードを内部に有するコア・ネットワーク104とを含む。
図1の通信システムでは、簡潔さのために、3世代のネットワークが一緒に模式的に図示されている。このアーキテクチャおよび全体像の更に詳細な説明は、3GPP TS23.002において見つけることができる。この文書をここで引用したことにより、その内容全体が本願にも含まれるものとする。
図1の下側の分岐は、GPRSまたはUMTS通信ネットワークを表す。
GSM/GPRS通信ネットワーク(即ち、2G/2.5G通信ネットワーク)では、無線アクセス・ネットワーク102が複数の基地局(BTS)と、1つ以上の基地局コントローラ(BSC)とを含むが、図1では個々に示されていない。コア・ネットワーク104は、ゲートウェイGPRSサポート・ノード(GGSN)、サービングGPRSサポート・ノード(GPRSではSGSN)または移動体交換局(GSMではMSC、図1には示されていない)、および認証局(AuC)と組み合わされたホーム・ロケーション・レジスタ(HLR)を含む。HLRは、移動体デバイス106(「ユーザ機器」(UE)またはユーザ・デバイスと呼ぶこともなる)についての加入情報を含み、AuCは、認証および鍵一致(AKA)手順に使用される共有秘密鍵Kを含む。
UMTS無線アクセス・ネットワーク(UTRAN)(即ち、3G通信ネットワーク)では、無線アクセス・ネットワーク102は、図示しない、複数のNodeBに接続された無線ネットワーク・コントローラ(RNC)を含む。コア・ネットワーク104では、GGSNおよびSGSN/MSCは通常HLR/AuCに接続され、HLR/AuCは、移動体デバイス106の加入情報および共有秘密鍵Kを含む。
図1における上側の分岐は、次世代通信ネットワークを表し、全体的に長期的進化(LTE)システムまたは進化パケット・システム(EPS)(即ち、4G通信ネットワーク)として示されている。このようなネットワークでは、E−UTRANとして示される、無線アクセス・ネットワーク102は、移動体デバイス106にワイヤレス・アクセスを与える進化NodeB(eNodeBまたはeNB)を含む。コア・ネットワーク104は、PDNゲートウェイ(P−GW)と、サービング・ゲートウェイ(S−GW)とを含む。EPSのE−UTRANは、パケット・ネットワークを通じてS−GWに接続されている。S−GWは、シグナリングの目的のために、ホーム・サブスクライバ・サーバHSSおよび移動管理エンティティMMEに接続されている。HSSは、加入プロファイル・レポジトリSPRを含み、AKA手順のために共有秘密鍵Kを格納する認証局(AuC)と結合されている。EPSネットワークの全体的なアーキテクチャのこれ以上の情報は、3GPP TS23.401において見つけることができる。
GPRS、UMTS、およびLTE通信ネットワークでは、コア・ネットワーク104は、一般に、例えばゲートウェイ(例えば、P−GW)を使用して、他のネットワーク108に接続される。他のネットワーク108は、例えば、インターネット、または異なる通信事業者間に接続を提供する専用ネットワークのような、任意の外部パケット交換ネットワークとすることができる。
勿論、3GGPによって定められる以外のアーキテクチャ、例えば、WiMAXおよび/またはCDMA2000も、本開示のコンテキストにおいて使用することができ、これは5Gのような今後のアーキテクチャを除外するのではない。
図2は、本発明の一実施形態にしたがって、同じOTTアプリケーションまたは互換性があるOTTアプリケーションを実行している2つのデバイス間において、インフラストラクチャ・ベースのD2D接続の確立を可能にするシステム200の模式図を示す。例示の目的上、図2〜図6の説明では、双方のデバイス上で実行しているOTTアプリケーションをFacebookであると考える。更に、第1デバイスのエンド・ユーザであるメアリーは、第2デバイスのエンド・ユーザであるジョンとFacebook上で友人であり、メアリーはインフラストラクチャ・ベースのD2D通信を使用して写真をジョンに送りたいと考えている。本明細書において説明するように、システム200は、メアリーが彼女のデバイス(例えば、スマート・フォン)上でジョンを選択することを可能にし、そして写真送付を選択することを可能にする。システム200は、ジョンが要求を受け入れることを可能にする。その結果、メアリーおよびジョンのデバイス間に接続を設定することができる。この接続を介して写真を送ることができ、この接続は再度解放することができる。
インフラストラクチャ・ベースのD2D通信の他の用途例には、2人のエンド・ユーザが彼らのそれぞれのデバイス上においてユーザ対ユーザ・ゲームをプレーすること、1人のエンド・ユーザから他のエンド・ユーザに名刺を送ること、他のデバイス(例えば、スマート・フォン)からのデバイス(例えば、アプリケーション)の遠隔制御、あるデバイス(例えば、センサ)が警報を他のデバイスに送ること、またはあるデバイス(例えば、タブレットPC)が印刷ジョブを他のデバイス(例えば、プリンタ)に送ることを含むこともできる。
図2に示すように、システム200は、通信ネットワークに接続されている第1移動体デバイス202(以上で説明したシナリオではメアリーのデバイス)を含む。この通信ネットワークを、以後、図2に示す第1移動体ネットワーク通信事業者Aの「第1通信ネットワーク」と呼び、デバイス202は、第1通信ネットワークの無線アクセス・ネットワーク204に接続されている。一方、無線アクセス・ネットワーク204は、第1通信ネットワークのコア・ネットワーク206に接続されている。同様に、システム200は、通信ネットワークに接続された第2移動体デバイス212(以上で説明したシナリオではジョンのデバイス)を含む。この通信ネットワークを、以後、図2に示す第2移動体ネットワーク通信事業者Bの「第2通信ネットワーク」と呼び、デバイス212は第2通信ネットワークの無線アクセス・ネットワーク214に接続されている。一方、無線アクセス・ネットワーク214は、第2通信ネットワークのコア・ネットワーク216に接続されている。
無線アクセス・ネットワーク204および214の各々は、図1に示した無線アクセス・ネットワーク102の内の1つとすることができ、一方コア・ネットワーク206および216の各々は、図1に示したコア・ネットワーク104の内の1つとすることができる。移動体デバイス202および212の各々は、そのそれぞれのネットワーク100に接続されている、図1に示した移動体デバイス106とすることができる。更に、図1に示した他アーキテクチャと同様、コア・ネットワーク206および216は他のネットワーク222に接続されており、図1に示した他のネットワーク108と同様、他のネットワーク222は、例えば、インターネット、または異なるMNO間に接続を提供する専用ネットワークのような、任意の外部パケット交換ネットワークとすることができる。例えば、FacebookのようなOTTサービス・プロバイダ224のサーバは、インターネット222に接続されている。
更に図2に示すように、MNO Aの制御下にあるコア・ネットワーク206はエッジ・ファイアウォール208を含む。同様に、MNO Bの制御下にあるコア・ネットワーク216はエッジ・ファイアウォール218を含む。
エッジ・ファイアウォール208および218は、これらのファイアウォールの背後にあるネットワークおよびデバイスが、ポート・スキャン、ログイン試行等のような、サイバー攻撃に対抗して保護されることを保証することを目的とするコンポーネントである。ここで、「ネットワーク」は、通信事業者のネットワークの内任意のものを含むことができ、その加入者のデバイスを含む事業用(operational)セルラ・ネットワークから、オフィス・ネットワークや加入者がいない他のネットワークまでの範囲に及ぶ。したがって、ファイアウォール208および218は加入者も迷惑データから保護する。事実上、ファイアウォール208および218は、それぞれの加入者のデバイス(それぞれ、第1および第2デバイス)がこれらの通信をそれ自体で開始しなければ、これらのデバイスへのあらゆる通信を阻止する。言い換えると、ファイアウォールはデバイスへの着信接続を禁止する。したがって、これらは、このようなファイアウォールによって保護されているデバイス、または当技術分野で言われるように、このようなファイアウォールの背後にあるデバイスが、同じファイアウォールの背後にあるのではない他のデバイスから接続を受けたい場合には、再構成する必要があるファイアウォールである。ある場合には、これは同じファイアウォールの背後にある2つのデバイスにも該当することもある。例えば、ルーティング・プロトコルが、同じファイアウォールの背後にある2つのデバイス間であっても、あらゆるトラフィックがそのファイアウォールを通過しなければならないことを強制し、ファイアウォールにこのようなトラフィックを許可しない可能性を与えることもある。このような場合、これら2つのデバイスに直接互いに接続させるために、保護用ファイアウォールを再構成する必要がある。
移動体通信ネットワークでは、ファイアウォール機能は、ネットワークのP-GWの内側で実行される場合もある。したがって、本願の実施形態によれば、「ファイアウォール」と呼ばれるものは、可能性として、P−GWも含む、またはファイアウォールおよびP−GWの組み合わせであると理解されるものとする。
更に、あるネットワークでは、パブリックIPアドレスと、プライベートIPアドレスと呼ばれる、ネットワーク内部のIPアドレスとの間で変換を行うネットワーキング・デバイスを採用することもある。このような変換は、当技術分野では、ネットワーク・アドレス変換または「NAT」として知られており、ファイアウォールによって実行することができる。一般的なネットワーキング技術では、アドレス変換を行いファイアウォールとしても動作するデバイスをNAT’ingファイアウォールと呼ぶ。ファイアウォール208および218の一方または双方が、このようなNAT’ingファイアウォールを含むことができる。
また、図2に示すように、MNO Aの制御下にあるコア・ネットワーク206は、更に、第1ルーティング・エンティティ210も含む。同様に、MNO Bの制御下にあるコア・ネットワーク216も、更に、第2ルーティング・エンティティ220を含む。
第1および第2ルーティング・エンティティ210および220の各々は、DMCC上に実装することができる。本明細書で説明するDMCCは、ProSe機能を実行し、ProSeアプリケーション・サーバを含む(comprise)デバイスである。当技術分野では周知のように、ProSe機能とは、UE間において直接通信を可能にする制御機能である。3GPPのTS23.303に記載されているように、このようなProSe機能は、ProSe直接発見およびProSe直接通信を使用するために必要なパラメータをUEに付与することができ、ここで「直接」という単語は、発見されたまたは通信するProSe−対応UE間における直接無線リンクを意味する。ProSe機能は、ProSe直接発見において使用されるProSeアプリケーションIDおよびProSeアプリケーション・コードのマッピングを追跡し続けるように構成することができ、ここで「アプリケーションID」とは、ProSe対応UEについてのアプリケーション関連情報を識別するグローバル一意識別子を意味し、「コード」とは、ProSeアプリケーションIDと関連付けられ発見プロセスに使用されるコードを意味する。本願のコンテキストでは、「アプリケーション」とは、LinkedIn、Facebook等のような、移動体オペレーティング・システム上にインストールされるアプリケーションを意味する。更に、ProSe機能は、発見および通信に必要な無線またはネットワーク・パラメータおよびセキュリティ資料(security material)をUEに付与し、ユーザ・アプリケーションを識別しおよび加入者のレジストリを処理および維持し、ProSe発見サービス等を使用することを許可されたアプリケーションのレジストリを維持するように構成することもできる。更に、ProSe機能は、2つのUEの近接を検出する、および/または2つのUEの近接を他の通信事業者のProSe機能に伝達する方法および機能も含むことができる。
ProSeアプリケーション・サーバは、EPC ProSeユーザIDおよびProSe機能IDのレジストリを保持し、アプリケーション・レイヤ・ユーザIDおよびEPC ProseユーザIDをマッピングするように構成することができる。EPC ProSeユーザIDは、例えば、UEが、ワイヤレス・ローカル・エリア・ネットワーク(WLAN)のような無線チャネル上でブロードキャストする、または待ち受けることができる識別子でもよい。ProSe機能IDは、通信事業者のネットワークにおけるProSe機能を指す。
更にその上、ProSe機能は、特定の直接モード・デバイスが他の直接モード・デバイスの近隣にあるとき、およびこれらのデバイスの内任意のものによる直接通信を求める要求を受けたときをUEに知らせるように構成することもできる。このような要求があったとき、ProSe機能は、ProSeアプリケーション・サーバおよびアプリケーションと協働して、近隣にいる友人のリストをUEに付与することができる。本明細書において使用する場合、「友人」(friends)という用語は、例えば、加入者がアプリケーション・サービスに問い合わせるためにProSe機能に付与する、任意の友人のリストを意味する。
本明細書では、アプリケーション・サーバまたはサービス(例えば、アプリケーション)を「オーバー・ザ・トップ・サービス」または「OTTサービス」と呼ぶ。
本発明の実施形態によれば、DMCC210および220は、更に、エッジ・ファイアウォール208および218をそれぞれ制御するように拡張される。移動体デバイスとそれぞれのDMCCとの間にシグナリング・チャネルを追加することにより、ファイアウォールにおけるホール(hole)に対する制御を向上させ、制御されないファイアウォール・ホール・パンチング技法と比較して、セキュリティ向上という結果を得ることができる。
第1および第2デバイス202、212が1つのMNOの同じ通信ネットワークに接続されている場合、DMCC210および220を1つのDMCCとして実装することもできる。勿論、種々の実施形態では、DMCC210および220の機能を組み合わせること、または任意の数の論理デバイスにわたって分散させることもできる。
図3は、本発明の一実施形態にしたがって、第1デバイス202と第2デバイス212との間にインフラストラクチャ・ベースのD2D接続を設定する方法300のメッセージング図を示す。
第1デバイス202は、第1デバイス202のユーザがデータ、例えば、写真を他の移動体デバイスのユーザ、例えば、ジョンの第2デバイス212に、第1および第2デバイス202、212間おけるインフラストラクチャ・ベースのD2D通信を使用して、送りたいことをユーザ(即ち、メアリー)に示すことを可能にするユーザ・インターフェースを含むことができる。メアリーおよびジョンは、第1および第2デバイス202、212には、OTTアプリケーション上で接続されている、例えば、Facebook上において「友人」であることが知られている。
このようにデータをジョンに送るというメアリーの望みを示すユーザ入力を受け取ったことに応答して、第1デバイス202は、図3に示すステップ302において、OTTサービス・プロバイダ224に、第2デバイス212の第1識別子を要求することができる。OTTサービス・プロバイダ224が第2デバイス212の第1識別子を所有していない場合、OTTサービス・プロバイダ224はステップ303で示す手順において、第2デバイス212にこのような識別子を要求する。この手順については以下で更に詳しく説明する。例えば、第2デバイス212が既に第1識別子をOTTサービス・プロバイダ224に、例えば、先の(earlier)手順303を使用して付与したためにOTTサービス・プロバイダ224が第2デバイス212の第1識別子を知っていれば、ステップ303を省略することもできる。
ステップ304において、OTTサービス・プロバイダ224は、第1デバイス202に、第2デバイス212の第1識別子で回答する。このような識別子は、第1ルーティング・エンティティ210がMNO Bに対して識別子を割り出すことができる限り、電話番号または他の識別子とすることもできる。例えば、device2@mno-b.countrycodeはこのような識別子の例である。必要に応じて、第1識別子が、その対象であるアプリケーション、例えば、facebook.device2@mno-b.countrycode、または特定のピア、例えば、device-a.facebook.device2@mno-b.countrycodeというような、もっと多くの情報を含むこともできる。第1識別子の更に他の例は、以下でも挙げられる。
必要に応じて、第1デバイス202は、ステップ304を再度実行する必要なく後に使用するために、OTTサービス・プロバイダ224から得られた第1識別子を任意の時間期間だけ格納するように構成することもできる。
次いで、第1デバイス202は第2デバイスの第1識別子をDMCC210に、メッセージ306内において転送する。このメッセージにおいて、必要に応じて、第1デバイス202が、使用されているアプリケーションを示す別の情報(例えば、アプリケーション識別子)も含むことができる。更に、第1デバイス202は、第1デバイスが通信のために使用することを意図するIPアドレスおよびポート番号を含めることもできる。これが該当する場合、DMCC210は、受け取ったIPアドレスがパブリックIPアドレスか否かチェックすることができる。パブリックIPアドレスでない場合、DMCC210は、例えば、ステップ308で示すように、ファイアウォール208および/または第1通信ネットワークの他のファイアウォールに問い合わせることによって、第1デバイス202の通信セッションのために使用することができるパブリックIPアドレスおよびポート番号を得ることができる。ステップ310においてDMCC210に戻されたIPアドレスおよびポート番号は、インフラストラクチャ・ベースのD2D通信のために使用される第1デバイス202のコンタクト情報の少なくとも一部を形成することができる。
代替実施形態では、第1デバイス202がメッセージ306とは別のメッセージにおいて、および/またはメッセージ306よりも早いまたは遅い任意の時点で第1デバイスが使用することを意図するIPアドレスおよびポート番号を付与することもできる。
他の代替実施形態では、第1デバイス202が、DMCC210にOTTサービス224との通信を処理させることもできる。このような実施形態では、メッセージ302、304、および306の順序およびエンドポイントは、以下のように変化することができる。第1デバイスが最初に、第1識別子を除いて、メッセージ302および306からの情報を含む1つのメッセージをDMCC210に送る。すると、DMCC210はメッセージ302をOTTサービスに送り、OTTサービスはメッセージ304によってDMCC210に回答する。このように、事実上、DMCC210は、第1デバイス202の代わりに、OTTサービスとの通信を処理することができる。
第1デバイス202から第2デバイスの第1識別子を受け取ったことに応答して、DMCC210は、第2デバイスのMNO/DMCCにコンタクトできるように、特定のMNO(即ち、第2デバイス212のMNOに対して)を識別するために、第1識別子から第2識別子を割り出す(resolve)ことができるか否かチェックすることができる。つまり、第2識別子は第2デバイスの識別を可能にし、第2識別子の少なくとも一部(例えば、ドメイン・ネーム、移動体ネットワーク・コード、または国別コード)を使用して、第2デバイスがどのMNOに属するのか知ることによって、第2デバイスのDMCC220にコンタクトすることができる。特定のDMCC220にコンタクトする正確な手順は、第2識別子の少なくとも一部に使用されるタイプ情報に依存し、当業者には周知である。この目的のために、種々の実施形態では、DMCC210はOTTサービス・プロバイダ224と相互作用して、第1識別子から第2識別子を割り出し、ドメイン・ネーム・サーバ(DNS)のような公開データベースと相互作用し、または少なくともMNO AおよびB(例えば、インフラストラクチャDNS、またはMNO BのHLR)によってアクセス可能なデータベースと相互作用することができる。
例えば、一実施形態では、第1識別子が第2識別子に対する全ての関連ビットを含むので、DMCC210は第1識別子から名称解決する(resolve)ことができる。この場合、DMCC210は、DMCC210に知られている何らかのロジックを使用して、一部(parts)を削除または追加することにより、あるいはMNO AおよびBが互いの間で共有するデータベースに問い合わせることによって、例えば、HLR参照クエリーによって、第2識別子を組み立てることができる。
他の実施形態では、第1識別子が第2識別子に対する関連ビットの全てを含んでいない場合、DMCC210は、クエリー・メッセージ312によって図3に示すように、OTTサービス・プロバイダ224に第2識別子について問い合わせるように構成することができる。第2識別子、またはDMCC210が第2識別子を決定することを可能にする情報が付随するOTTサービス・プロバイダの応答を、図3においてメッセージ314で示す。この手法の様々な利点について、異なるタイプの識別子について更に詳しく論ずるときに、以下に論ずる。
一旦DMCC210が第1識別子から第2識別子を割り出すことに成功し、次いでMNO Bを識別したなら、DMCC210は、第2デバイスのDMCC220を特定することができ、そしてステップ316において、DMCC210は、割り出した第2識別子を使用して、第2デバイス212に対する接続要求が付随するメッセージ316をMNO BのDMCC220に送ることができる。この接続要求は、第1および/または第2識別子を含むことができ、更に必要に応じて、第1デバイスについてのコンタクト情報、および/または使用されるアプリケーションの指示(例えば、アプリケーション識別子)を含むことができる。
次いで、DMCC220は、第2デバイス212の第2識別子の有効性をチェックし、第2デバイス212が範囲内にあるか否かチェックし、ある場合、ローミングしているか否かチェックすることができる。次いで、DMCC220は、例えば、それ自体の識別子データベースを使用して、接続要求内において受け取った第1および/または第2識別子から第3識別子を割り出すことができる。次いで、DMCC220はメッセージ318を第2デバイス212に、第1デバイスからの接続要求と共に送ることができる。構成に応じて、第2デバイス212は、使用されるアプリケーションの指示が第1識別子の一部として出されるかあるいはメッセージ318または他のメッセージにおいて別の情報エレメントとして追加される場合、恐らくは特定のOTTアプリケーションの内側で、受けた接続要求をユーザに表示するため、そして要求を受け入れるか否かに関するユーザ入力を受け取るためにユーザ・インターフェースを含むことができる。次いで、第2デバイス320は、接続要求が受け入れられたまたは拒否されたことをDMCC220に示すメッセージ320で、DMCC220に回答することができる。このメッセージまたは別のメッセージのいずれかにおいて、第2デバイス212は、第2デバイスが第1デバイス202とのインフラストラクチャ・ベースのD2D通信のために使用することを意図するIPアドレスおよびポート番号も含むことができる。
第2デバイスが接続要求を受け入れたと仮定すると、この受入を示すメッセージ320の受信時に、DMCC220は、受け取った第2デバイス212のコンタクト情報がパブリックIPアドレスであるか否かチェックすることができる。そうでない場合、DMCC220は、例えば、ファイアウォール218に問い合わせることによって、通信のためのパブリックIPアドレスおよびポート番号を入手することができる。このために、図3に示すように、DMCC220は、受け取った第2デバイスのIPアドレスおよびポート番号を、メッセージ322においてファイアウォール218に送ることができる。ファイアウォール218は、NAT規則を作成し、NATにポート番号を選択し、その外部IPアドレスおよび選択したポート番号を、メッセージ324においてDMCC220に返送する。すると、外部IPアドレスおよび選択したポート番号が、TCP/IPセッションを設定するときに第1デバイスが使用すべき、第2デバイスの「コンタクト情報」を形成する。
ステップ326において、DMCC220はDMCC210に接続が同意されたことを知らせる。このステップにおいてまたは別のメッセージにおいて、DMCC220は第2デバイスのコンタクト情報を含めることができる。
今日のネットワークでは、コンタクト情報は通例IPアドレス、およびデバイスが互いにコンタクトするために使用することができるポート番号であるが、本発明の実施形態は、デバイスが互いにコンタクトすることを可能にするあらゆる他のタイプのコンタクト情報にも等しく適用可能である。例えば、IPv6ネットワークでは、ある範囲のIPアドレスまたはIPアドレスのリストを提供してもよい。
DMCC210は、メッセージ328で示すように、第2デバイスのコンタクト情報を含む接続受入メッセージを第1デバイスに転送し、そしてメッセージ330で示すように、例えば、先に説明したメッセージ316または別のメッセージにおいてそのようにまだ行われていない場合、どのコンタクト情報を第1デバイスが第2デバイスにコンタクトするために使用するか、DMCC220に知らせる。また、DMCC210は、メッセージ332において、第1および第2デバイス間における接続は直ぐに設定されるので、ファイアウォールはそれに応じて構成できることをファイアウォール208に知らせる。
ステップ334において、DMCC220は、指定されたコンタクト情報にしたがって、第1デバイス202から第2デバイス212への着信トラフィックを待つようにファイアウォール218に知らせるので、ファイアウォール218はしかるべく構成することができる。
一旦ファイアウォール208および218が、第1および第2デバイスのコンタクト情報にしたがって適正に構成されたなら、ステップ336において、第1から第2デバイスにTCP/IPセッション接続設定を行うことができ、次いで、第1デバイスはデータを第2デバイスに、そしてその逆に、設定されたTCP接続を介して送ることができる。あるいは、ステップ336は、第1デバイスおよび第2デバイスが、例えば、データを交換する前に接続を設定する必要がないUDPのようなステートレス・プロトコルを使用してデータを交換することを含んでもよい。
図4および図5に示すように、第1または第2デバイスのいずれかが、例えば、接続終了のユーザ入力を受け取ったことに応答して、接続を終了することができる。
図4は、本発明の一実施形態にしたがって、第1デバイス202と第2デバイス212との間におけるインフラストラクチャ・ベースのD2D接続を、第1デバイス202の主導で終了する方法400のメッセージング図を示す。図4においてメッセージ402で示すように、第1デバイス202はDMCC210に接続を終了するように命令することができる。次いで、DMCC210は、メッセージ404で示すように、接続を終了できることをファイアウォール208に知らせることができる。また、DMCC210は、メッセージ406で示すように、接続が直ちに終了することをDMCC220に知らせることもできる。次いで、この情報で何をするか判断するのは、DMCC220の個々の構成次第としてもよい。実施形態では、DMCC220はそのファイアウォール218に接続の終了を、メッセージ408を使用して知らせることができ、および/またはメッセージ410を使用して第2デバイス212に知らせることができ(次いで、第2デバイス212がファイアウォール218に知らせることができる)、こうすれば優れたセキュリティの実践になるであろう。
図5は、本発明の一実施形態にしたがって第1デバイス202と第2デバイス212との間におけるインフラストラクチャ・ベースのD2D接続を、第2デバイス212の主導で終了する方法500のメッセージング図を示す。図5においてメッセージ502で示すように、第2デバイス212が接続を終了するように、DMCC220に命令することができる。DMCC220は、しかるべく再構成するためにメッセージ504をファイアウォール218に送り、接続の閉鎖を知らせるためにメッセージ506をDMCC210に送ることができる。次いで、DMCC210はメッセージ508をファイアウォール208に送り、および/またはメッセージ510を第1デバイス202に送り(次いで、第1デバイス202はファイアウォール208に知らせることができる)、接続が終了することを示すことができる。
好ましい実施形態では、図4または図5による終了は、セッション336または対応するアプリケーション・レベルのセッションが適正に終了した後に行われる。次いで、図4または図5によるステップのシーケンスが、それぞれのファイアウォールを再度閉鎖し、デバイスへおよび/またはからの迷惑データまたはパケットに対する余分なコストを防止する。
図4および図5は、関与する移動体デバイスの一方によるセッション終了を例示したが、更に他の実施形態では、例えば、時間切れ、前払いのユーザの残額がなくなった、加入者が許容される直接接続の最大数を超過した等のために、第1および/または第2通信ネットワークがセッション終了を先導することもできる。他の理由をあげるとすれば、アプリケーションにおけるセキュリティ違反、または侵入検出システム(IDS)あるいはファイアウォール208および/または218によってトリガーされるイベントの通知(news)とすることができる。実施形態では、第1または第2通信ネットワークが終了を先導するとき、メッセージ402または502にそれぞれ類似する接続終了メッセージを送り、ステップ404または504からの接続終了手順をそれぞれ開始することができる。
本発明の実施形態は、第1および第2デバイスを識別し、他のエンティティによって識別子を割り出す種々の手法を予見する。ある例証的な手法について以下で説明する。これらに基づいて、当業者には更に他の手法も想起することができるが、これらの全ては本発明の範囲に該当する。
第1識別子
本明細書において既に説明したように、第1識別子は、第1デバイスとOTTアプリケーションとの間で使用される識別子であることから、アプリケーション・レベルに存在する。したがって、一実施形態では、第1識別子はOTTアプリケーションの識別を含むことができる。あるいは、別のアプリケーション識別子を第1識別子と共に送ることもできる。更に、以下で説明するように、実施態様に応じて、第1識別子が他の識別を含むこともできる。
一実施形態では、第1識別子は、更に、第2デバイス212のMNOの識別も含むことができる。例えば、識別子は、"application.device2@mno-b.nl"または"application.device2.mno-b.nl"、あるいはこれらの例の任意の暗号化および/または難読化表現のように表すことができる。
このような第1識別子を3つの部分、アプリケーション部、第2デバイス部、および第2デバイス部のMNOに分割することができる。
アプリケーション部は、別の識別子として送られてもよく、例えば、「Facebook」のようなその一般的な名称、例えば、'facebook.com'のようなドメイン名、または例えば「5」または「App=5」のようなアプリケーションの同意リスト(agreed list)上のエントリを示す数値を使用してアプリケーションを識別し、更に必要に応じて、例えば、「FacebookV2」または'V2.facebook.com'というようなバージョン番号を含むこともできる。この実施態様では、識別子におけるアプリケーションは、どのアプリケーションがインフラストラクチャ・ベースのD2D接続を確立することを求めているのかに関しての指示を第2デバイスに出す目的を果たす。
第2デバイス部は、第1識別子において随意である。存在する場合、この部分は、例えば、電話番号の数値表現、例えば、6 1234 5678、または第2デバイスのIMSIのような、第2デバイスの識別を含む。他の可能性は、DMCC220だけが第2デバイス212にコンタクトするために必要となる識別子を割り出すことができる、第2デバイス部がカスタム識別子、例えば、電話番号の暗号化表現(おそらくはソルトを含む)、またはこの目的のために特定的に作られる一意の番号を含むことである。DMCC220は、参照表を使用することにより、あるいは第1識別子のこの部分に何らかのロジックおよび/または解読を使用することにより、名称解決(resolution)を行うことができる。
第2デバイス部のMNOは、DMCC210が接続要求を適正な他のDMCCに転送することができるように、コンタクトすべきMNO(即ち、第2デバイスのMNO)を特定することを意図する。実施形態では、例えば、公開鍵暗号法を使用して、第2デバイスのMNOの識別子を暗号化することができる。このような場合、第2デバイス212またはDMCC220が、接続要求を受けるのはDMCC210からであることを知っている場合、第2デバイス212またはDMCC220は、DMCC210の公開鍵を使用して識別子を暗号化することができる。あるいは、暗号化の前には受信側DMCCがわからないときには、DMCC220の秘密鍵を使用することもできる。後者の実施態様の方が一般的であると考えられる。両方の実施態様において、識別子および/または付随するメッセージは、どの鍵が使用されたかを示す。この実施形態の利点の1つは、第2デバイスを特定するために、TMSIまたは移動局国際加入者ディレクトリ番号(MSISDN)のような、MNOレベルの識別子を使用できることであり、これらはOTT224や第1デバイス202に暴露されることはない。
他の実施形態では、第1識別子は、更に、第2デバイスの平文識別子も含むことができる。このような場合、双方のMNOに知られている電話番号または任意の他の識別子を識別子として使用することができる。加えて、同じ接続要求メッセージにおいて、別のエンティティとしてまたは識別子の一部として、例えば、'phone-number/application'または'application@phone-number'という形態でアプリケーションを示す(provide)ことができる。
更に他の実施形態では、第1識別子が、更に、XMLメッセージも含むことができる。XMLメッセージは、例えば、第2識別子、アプリケーション、有効日(validity date)、コンタクトすべきMNOまたはDMCC、DMCC220による情報のシグネチャー、認証チケット(当技術分野では「ケルベロス・チケット」としても知られている)、および/または識別子が有効であることを検証するためにDMCC210および/またはDMCC220が使用することができ、正しいDMCCおよび正しい第2デバイスを割り出すときにDMCC210を助けるその他の関連部分を含む。このようなXMLメッセージの例を以下に示す。
更に他の実施形態では、第1識別子が、更に、OTTサービス・プロバイダ224によって生成されたランダム・コードも含むことができる。このランダム・コードは、OTTプロバイダが、先に説明した識別子の実施形態に逆に関係付けることができるが、ここではOTTに格納される。例えば、OTTサービス・プロバイダ224は、'some-code-here@application.domain'という形態で識別子を付与することができる。DMCC210がこのような第1識別子を受け取ると、第2デバイスがそのIPアドレスにおいてOTTサービス・プロバイダ224の1つ以上のサーバに接続されているので、未暗号化バージョンについてOTT225に問い合わせるようにDMCC210に命令するメッセージと共にOTTサービス・プロバイダ224において格納されている、先に説明した識別子の暗号化表現、または第2デバイス212に対してOTTサービス・プロバイダ224が有するIPアドレスのいずれかによって、DMCC210が第2デバイス212のMNOおよび/またはDMCCを識別することを可能にする第2識別子を得るためにOTTサービス・プロバイダ224とコンタクトするように構成される。
第2識別子
本明細書において既に説明したように、第2識別子は、DMCC210がDMCC220とコンタクトすることを可能にする識別子である。種々の実施形態において、第2識別子がDMCC220の明示的な識別を含んでいない場合、DMCC210がDMCC220に到達するためにどのMNOにコンタクトすべきか分かるように、少なくともMNO Bの識別を含む。このため、種々の実施形態では、第2識別子は、例えば、以下の指示を出すことができる。
−既存のDNS参照表を使用して割り出すことができる、例えば、DMCC.mno-b.nlのような一意のリソース識別子(URI)。
−参照の必要なく直接コンタクトすることができるルーティング可能なアドレス(routable address)としてのIPアドレスおよびポート番号(IPベースでないネットワークでは、同様のアドレスがルーティング・プロトコルのために存在する)。
−MNO Bの移動体ネットワーク・コードのみ。この場合、DMCC210は、例えば、ある規格にしたがって、何らかのロジックを使用して、MNO BにおけるDMCCにどのように到達するか発見するように構成される(設定された規格にしたがって、MNO BにおけるDMCCに到達可能であることを条件とする)。
−HLR参照表を使用してIMSIを割り出すことができるIMSIまたはMSISDN。
第3識別子
種々の実施形態において、第3識別子は、第2デバイスのMSISDN、第2デバイスの内部またはパブリックIPアドレス、第2デバイスのIMSI、第2デバイスのTMSI、あるいは第2通信ネットワークがページング機能を開始するためまたは第2デバイス212に直接通知する(talk)ために使用することができる任意の他の識別子を含むことができる。
以下の表1は、第1、第2、および第3識別子、ならびに識別子を割り出すためにDMCC210およびDMCC220によって行われるアクションの例のリストを示す。
図3に示したステップに戻り、実施形態では、ステップ303は以下を含むことができる。OTTサービス・プロバイダ224または第2デバイス212のいずれかがこの手順を開始することができる。例えば、デバイス212が、DMCC220および第2デバイス212が同意した何らかのロジックにしたがって、本明細書において説明したような1つ以上の第1識別子を生成することができる。あるいはまたは加えて、デバイス212が DMCC220に1つ以上の第1識別子の生成において補助するように要求することもできる。このように、DMCC220は、識別子が適正なフォーマットであり、設定された規格に従うことを確認することができる。このような識別子の例は、DMCC220によって生成される乱数、または番号ポータビリティ(number portability)に使用されるような一時的な電話番号等とすることができる。必要に応じて、1つ以上の第1識別子をMNO Bの秘密鍵またはMNO Aの公開鍵で暗号化することもできる(このような暗号化された識別子がMNO AのDMCCに付与されることが分かっていることを条件とする)。必要に応じて、複数の第1識別子を、特定のMNOに1つずつ生成することができる。次いで、第2デバイス212はOTTサービス・プロバイダ224に、生成した1つ以上の第1識別子を付与することができる。
実施形態では、ステップ303の手順は、例えば、OTTサービス・プロバイダ224にコンタクトする第2デバイス212の効力によって、暗示的に行うこともできる。このような実施形態では、OTTサービス・プロバイダ224は、第2デバイスのIPアドレスを入手して、要求時にこれを第1デバイスに、第2デバイスの第1識別子として、転送することができる。
次に、メッセージ332、334、404、408、504、および508の実施態様の実施形態(embodiments of implementation)について説明する。
メッセージ332および334は、ファイアウォール208および218に、それぞれ、DMCC210および220からの命令に基づいて開くように命令する。メッセージ404、408、504、および508は、同様にそれぞれのDMCCからの命令に基づいて、それぞれのファイアウォールに再度閉じるように命令する。例示の目的上そして簡素化のために、以下ではIPv4にしたがって動作するファイアウォールについて説明するが、当業者には明白な細かい修正によって、この説明はIPv6にしたがって動作するファイアウォールにも適用可能である。更に、以下の説明では、ファイアウォールはIPベースの通信のみに作用し、識別子からIPアドレスへの変換は、例えば、DMCCによって以前に行われていると仮定する。
フラット・ネットワーク・アーキテクチャでは、ファイアウォール208および218の各々は、それぞれの通信ネットワークの縁における1つのファイアウォールとすることができる。この場合、メッセージ332および334の実行は以下のようにすることができる(上位ファイアウォール言語)。
次いで、IPアドレスはそれぞれのファイアウォールのファイアウォール規則に追加される。ファイアウォールがNAT’ingファイアウォールである実施形態では、規則は、トラフィックがここでは通過を許される代わりに転送されることを反映するために、しかるべく変更され、この場合、接続を再度閉じることに関して、注意する必要がある。一実施形態では、対応するDMCCもこれらの規則を、例えば、何らかの永続的ストレージにおいて追跡し、接続が終了したときに再度規則を明示的に削除するように、ファイアウォールは、明示的にそれが引っ込められる(taken down)まで、この規則を保持することができる。他の実施形態では、対応するDMCCが規則毎に失効日を指示するように構成することもできる。
例えば、ファイアウォールの販売業者によっては、ファイアウォールと対応するDMCCとの間の通信をどのように実施するかにおいて、差違が存在する場合もある。実施形態では、DMCCには、ログイン資格証明、ならびに一定のIPアドレスおよびインターフェースについてDMCCに規則を追加または削除させる十分な許可を与えることができる。他の実施形態では、販売業者が彼らのファイアウォールの構成のために使用する企業固有のプロトコルの一部を対応するDMCCに実装することができる。例えば、規則が複製されるファイアウォールに新たな規則をプッシュするために、複製APIを使用することができる。
実施形態では、ファイアウォールのNAT表(NAT’ingファイアウォールの場合)に、または開放接続(open connection)を追跡する表(ステートフルな、即ち、ステートレスでないファイアウォールの場合)に、エントリを挿入してもよい。このような実施形態は、対応するDMCCが全ての接続の管理を続ける必要がないという利点、そしていずれかの表におけるエントリであっても削除させるファイアウォール技法(firewalling techniques)が未だ機能しているという利点を有することができる。次いで、対応するDMCCは、表におけるエントリについてファイアウォールに問い合わせ、どのエントリが関連するか発見するように構成することができる。
以上の論述では、それぞれの通信ネットワークが、特定のデバイスを保護する1つのファイアウォールによって管理されると仮定した。しかしながら、実際には、通信ネットワーク内のデバイスは複数のファイアウォールによって保護され、別の機能にセグメントされることもある。通信ネットワークの異なるネットワーク・セグメントの例には、課金プロセスに関与する機械の全てに対して1つのネットワーク・セグメントを有し、構成管理を行うために使用される機械に他のセグメントを有し、検査目的のために他のセグメントを有し、一般的なオフィス使用のために更に他の1つを有する等を含む。このような通信ネットワーク600の一部の例を図6に示す。図6では、通信ネットワーク600のオフィス・セグメントはセグメント602として示されている。セグメント604として示されている他のセグメントは、アドミニストレータが彼らの日常活動のために使用する機械を含むセグメントとすることができる。セグメント606は、例えば、図1のコア・ネットワーク104のような、コア・ネットワークを形成するネットワーク・エレメントを含むセグメントとすることができる。セグメント608は、シグナリングおよび課金関連処理(billing related activities)に関与する機械を含むセグメントとすることができる。そして、セグメント610は、例えば、RAN102のような無線アクセス・ネットワークのような、接続を行うネットワーク・エレメントを含むセグメントとすることができる。図6に示すエレメント612、614、および616は、異なるアクセス技術毎にユーザ・デバイスを例示する。このようなネットワークでは、複数のファイアウォールが存在する。図6に示すように、ファイアウォール620は図2の外部ネットワーク222にアクセスするときにオフィス・ネットワーク・セグメント602を保護するように構成することができる。ファイアウォール622は、管理ネットワーク・セグメント604およびコア・ネットワーク・セグメント606を保護するように構成することができる。ファイアウォール624は、ファイアウォール622と並列に実行するように構成することができるが、コア・ネットワーク・セグメント606を保護するようにしか構成することができない。そして、ファイアウォール626は、異なるMNOが専用ネットワークに接続された場合に、異なるMNO(図6ではMNO642、644、および646として示す)間のトラフィックのためにコア・ネットワーク・セグメント606を保護するように構成することができる。更に、図6に示すように、ファイアウォール628は、セグメント606のコア・ネットワーク・エレメントを、セグメント604から操作するアドミニストレータによって制御できることを確保するように構成することができる。ファイアウォール630は、課金セグメント608のために同じことを行うように構成することができる。一方、ファイアウォール632は、オフィス・セグメント602のために同じことを行うように構成することができる。エレメント636〜640は、特定の無線アクセス・ネットワーク内にあるデバイスが直接互いに通信するのを防止するファイアウォールである。エレメント634および648は、無線アクセス・ネットワークとコア・ネットワークとの間、および無線アクセス・ネットワークと課金セグメントとの間におけるトラフィックをそれぞれ規制するファイアウォールである。
このようなネットワークにおいても、本明細書において説明した一般的な原理が適用できる。エレメント650として示す、このような通信ネットワークのDMCC(1つまたは複数)は、例えば、ネットワーク・セグメント608に実装することができ、次いで複数のファイアウォールを、好ましくは、実質的に同時に構成することができる。このため、デバイス612が、MNO642から来るデバイスに対する直接通信に利用可能にされることになった場合、DMCC650はファイアウォール634、636、および626に、着信トラフィックおよび要求される構成を知らせなければならない。これは、各ファイアウォールに個々に知らせるか、またはポリシー変更によって一度に全てのファイアウォールに知らせることのいずれかによって、行うことができる。後者がファイアウォール構成に一般に採用されている技術である。
例えば、第1ルーティング・エンティティ210、第2ルーティング・エンティティ220、第1デバイス202、または第2デバイス212のような、方法300、400、および500のステップを実行するときに関与するエンティティ毎に、このようなエンティティによって実行されるそれぞれのステップは、方法300のそれぞれのステップを実行するように構成された少なくとも1つのプロセッサまたはマイクロプロセッサを含む、任意の種類のデータ処理システムによって実行することができる。このようなデータ処理システムの例を図7に示す。更に、方法ステップ400、400、および500について図2と関連付けて説明し、具体的には、第1および第2ルーティング・エンティティの例としてDMCCを参照して説明したが、これらの方法ステップを任意の順序で実行するように構成された任意のシステムが本発明の範囲内に該当することは当業者には認められよう。
図7は、本開示の実施形態にしたがって、第1および第2デバイス間におけるインフラストラクチャ・ベースのD2D接続の確立において補助するときに使用することができる例証的なデータ処理システム700を示すブロック図である。
図7に示すように、データ処理システム700は、システム・バス710を通じてメモリ・エレメント704に結合された少なくとも1つのプロセッサ702を含むことができる。したがって、データ処理システムはメモリ・エレメント704内にプログラム・コードを格納することができる。更に、プロセッサ702は、システム・バス710を通じてメモリ・エレメント704からアクセスされたプログラム・コードを実行することができる。一態様では、データ処理システム700は、プログラム・コードを格納および/または実行するのに適したコンピュータとして実装することができる。しかしながら、システム700は、プロセッサおよびメモリを含み、本明細書内において説明した機能を実行することができる任意のシステムの形態で実装すればよいことは認められてしかるべきである。
メモリ・エレメント704は、例えば、ローカル・メモリ706のような1つ以上の物理メモリ・デバイスと、1つ以上の大容量記憶デバイス708とを含むことができる。ローカル・メモリとは、プログラム・コードの実際の実行中に通常使用されるランダム・アクセス・メモリまたは他の非永続的メモリ・デバイス(1つまたは複数)を指すことができる。大容量記憶デバイスは、ハード・ドライブまたは他の永続的データ記憶デバイスとして実装されればよい。また、処理システム700は1つ以上のキャッシュ・メモリ(図示せず)も含むことができる。キャッシュ・メモリは、実行中にプログラム・コードを大容量記憶デバイス708から引き出さなければならない回数を減らすために、少なくとも一部のプログラム・コードの一時的格納に備える。
入力デバイス712および出力デバイス714として図示されている入力/出力(I/O)デバイスを、任意に、データ処理システムに結合することができる。入力デバイスの例には、例えば、キーボード、マウスのようなポインティング・デバイス等を含むことができるが、これらに限定されるのではない。出力デバイスの例には、例えば、モニタまたはディスプレイ、スピーカ等を含むことができるが、これらに限定されるのではない。また、システム700は、組み合わせ入力/出力デバイスを、例えば、タッチ感応(「タッチスクリーン」とも呼ぶ)ディスプレイの形態で含むこともできる。タッチ感応ディスプレイは、情報を表示し、おそらくはスタイラスまたはユーザの指による、ディスプレイとのユーザ対話処理の形態でユーザ入力を受け取ることができる。このような実施形態は、データ処理システム700がUE106またはその一部として機能するように構成される場合に、特に有用となることができる。
入力デバイスおよび/または出力デバイス(1つまたは複数)は、直接または仲介するI/Oコントローラを介してデータ処理システムに結合することができる。
また、ネットワーク・アダプタ716をデータ処理システムに結合して、他のシステム、コンピュータ・システム、リモート・ネットワーク・デバイス、および/またはリモート記憶デバイスに、仲介するプライベートまたはパブリック・ネットワークを通じて結合されることを可能にしてもよい。ネットワーク・アダプタは、具体的には、前記システム、デバイス、および/またはネットワークによって送信されるデータを受信するデータ受信機718、およびデータを前記システム、デバイス、および/またはネットワークに送信するデータ送信機720を含むことができる。モデム、ケーブル・モデム、およびイーサネット・カードは、データ処理システム700と共に使用することができる異なるタイプのネットワーク・アダプタの例である。
メモリ・エレメント704は、アプリケーション(図示せず)を格納することができる。尚、データ処理システム700は、更に、アプリケーションの実行を容易にすることができるオペレーティング・システム(図示せず)を実行することもできることは認められてしかるべきである。実行可能プログラム・コードの形態で実現されるアプリケーションは、データ処理システム700によって、例えば、プロセッサ702によって実行することができる。アプリケーションを実行したことに応答して、データ処理システム700は、本明細書において説明した1つ以上の方法ステップを、例えば、DMCC210、DMCC220、第1デバイス202、または第2デバイス212として実行するように構成することができる。
尚、エレメント702〜720は図7では別々のエレメントとして示されているが、他の実施形態では、これらの機能をもっと少ない数の個別エレメントに実装すること、またはもっと多い数のコンポーネントにわたって分散させることもできることは、当業者には認められよう。
本発明の種々の実施形態は、コンピュータ・システムまたはプロセッサと共に使用するためのプログラム製品として実現することもでき、プログラム製品のプログラム(1つまたは複数)は、実施形態の機能(本明細書において説明した方法を含む)を定める。一実施形態では、プログラム(1つまたは複数)は、種々の非一時的コンピュータ読み取り可能媒体(一般に、「ストレージ」と呼ぶ)に保持することができる。本明細書において使用する場合、「非一時的コンピュータ読み取り可能記憶媒体」という表現は、全てのコンピュータ読み取り可能媒体を含み、唯一の例外が一時的な伝搬信号である。他の実施形態では、プログラム(1つまたは複数)は種々の一時的コンピュータ読み取り可能記憶媒体に保持することができる。例示的なコンピュータ読み取り可能記憶媒体には、(i)情報が永続的に格納される非書き込み可能記憶媒体(例えば、CD−ROMドライブによって読み取り可能なCD−ROMディスク、ROMチップ、または任意のタイプのソリッド・ステート不揮発性半導体メモリのような、コンピュータ内部のリード・オンリー・メモリ・デバイス)、および(ii)変化する可能性がある情報が格納される書き込み可能記憶媒体(例えば、フラッシュ・メモリ、ディスケット・ドライブ内部のフロッピ・ディスク、またはハード・ディスク・ドライブ、あるいは任意のタイプのソリッド・ステート・ランダム・アクセス半導体メモリ)が含まれるが、これらに限定されるのではない。コンピュータ・プログラムは、本明細書において説明したプロセッサ1202上で実行することができる。
いずれの1つの実施形態に関係して説明したいずれの特徴も、単独で、または説明した他の特徴と組み合わせて使用することができ、更に実施形態の他のいずれかの1つ以上の特徴と組み合わせて、あるいは実施形態の他のいずれかのいずれの組み合わせでも使用できることは理解されよう。更に、本発明は以上で説明した実施形態に限定されるのではなく、添付する請求項の範囲内で変更することも可能である。
本明細書において使用した用語は、特定の実施形態を説明するために限られており、本発明の限定であることを意図するのではない。本明細書において使用する場合、単数形「a」、「an」、および「the」は、文脈が明らかにそうでないことを示すのでなければ、複数形も含むことを意図している。更に、「含む」(comprises)および/または「含んでいる」(comprising)という用語は、本明細書において使用する場合、述べられる特徴、整数、ステップ、動作、エレメント、および/またはコンポーネントの存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、エレメント、コンポーネント、および/またはそのグループの存在や追加を除外するのではないことも理解されよう。
以下の特許請求の範囲における全ての手段またはステップ+機能エレメントの対応する構造、材料、アクト、および均等物は、特定的に特許請求される他の特許請求対象エレメントと組み合わせて当該機能を実行する任意の構造、材料、またはアクトを含むことを意図している。本発明の説明は、例示および説明の目的に限って提示されたのであって、網羅的であること、または開示した形態に本発明を限定することを意図するのではない。本発明の範囲および主旨から逸脱することなく、当業者には多くの変更および変種が明白であろう。以上の実施形態が選択され説明されたのは、本発明の原理および実用的用途を最良に説明するためであり、更に他の当業者が、本発明を理解して、想定される特定の使用に適する種々の変更を行って種々の実施形態を得ることを可能にするためである。