JP7125788B2 - プロキシを用いてセキュアデバイスとアンセキュアデバイスとの間を通信するシステム及び方法 - Google Patents

プロキシを用いてセキュアデバイスとアンセキュアデバイスとの間を通信するシステム及び方法 Download PDF

Info

Publication number
JP7125788B2
JP7125788B2 JP2020524730A JP2020524730A JP7125788B2 JP 7125788 B2 JP7125788 B2 JP 7125788B2 JP 2020524730 A JP2020524730 A JP 2020524730A JP 2020524730 A JP2020524730 A JP 2020524730A JP 7125788 B2 JP7125788 B2 JP 7125788B2
Authority
JP
Japan
Prior art keywords
devices
subscriber
connection
secure
edge
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020524730A
Other languages
English (en)
Other versions
JP2020528189A (ja
Inventor
クリス・アレン
ポール・グレゴワール
トッド・アンダーソン
ラジープ・ラト
アンディ・ショールズ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infrared5 Inc
Original Assignee
Infrared5 Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infrared5 Inc filed Critical Infrared5 Inc
Publication of JP2020528189A publication Critical patent/JP2020528189A/ja
Application granted granted Critical
Publication of JP7125788B2 publication Critical patent/JP7125788B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本願は、2017年7月21日出願の米国特許仮出願第62/535263号の優先権及びその利益を主張するものであり、該仮出願は参照の上全体として本明細書に組み込まれる。
本発明は、セキュアデバイスとアンセキュアデバイスとの間の通信を確立するのに適したシステム及び方法に関する。特に、本発明は、安全性が保証された通信に亘る実装を要求する通信プロトコルを利用して、セキュアデバイスとアンセキュアデバイスとの間の通信を可能にするシステム及び方法に関する。
インターネットの出現及びコンピュータネットワークへのアクセスの増加により、サービスプロバイダ及びエンドユーザが、様々なサービス(例えば、ストリーミング、ゲーミング、コミュニケーション、ファイルトランスファ等)へのアクセスを提供するインターネットにおいてシームレスに通信を行うことを可能にすることが、促進されてきた。サービスプロバイダ及びエンドユーザは、様々な通信プロトコルを用いて実に様々に通信をすることができる。トランスミッションプロトコル(TCP)及びインターネットプロトコル(IP)は、例えば、インターネット及びネットワークにおいて通信を行うのに用いられる多数のプロトコルのための根本的なプロトコルである。インターネットの利用が増大し、様々なタイプのインターネット利用可能デバイスが入手可能となってくるにつれて、デバイス間の安全な通信を簡素化するための、他の通信プロトコルが創作されてきた。例えば、エンドユーザは、別のエンドユーザ若しくはサービスプロバイダとの直接の接続を統合する必要無く、ウエブブラウザ及び/又はモバイルアプリケーションを介して、コンテンツ及びサービスにアクセスできる。
サービスがユーザに即座に入手可能であり、更に未知のデバイス間の接続が容易であることから、それらのデバイス間の接続に関してリスクが増加している。悪意のある振る舞いからサービスプロバイダ及びエンドユーザを保護するために、デバイス間で通信するに当たり、様々なセキュリティ及び制約のスタンダード、並びにプロトコルが、利用のために開発されてきた。インターネットオープンスタンダードは、そのようなスタンダードの例であり、ウエブブラウザクライアントから作成される、接続に関する或る制約(例えば、TCP及びユーザデータグラムプロトコル(UDP)接続プロトコル)を配置する。これらの制約は、クロスオリジンリソースシェアリング(CORS)スタンダード内でカバーされ、様々なウエブブラウザに亘って様々に解釈され得る。CORの一つの実装では、ブラウザクライアントは、セキュアサイトからアンセキュアエンドポイントへの接続を確立できない。この要件は、(例えば、グーグルクロムなどの)メインストリームブラウザによる採用を介して、スタンダードと成りつつあり、オフィシャルのHTML5使用の一部として、全てのブラウザに適用し得るものとなる。このことは、あるウエブブラウザが関連するときにデータがデバイス間でどのように共有され得るか、ということに、広範な影響がある。
そのような制約の一例は、デバイスで用いられるウエブブラウザが、ウエブリアルタイムコミュニケーション(WebRTC)によるエンドポイントへの遠隔接続を作成しようと試みるときに、発生する。なぜなら、ブラウザクライアントは、リモートサーバへ接続するときに(例えば、カメラやマイクロホンから)マルチメディアを発行するためのアクセスを制約しているからである。サーバエンドポイントはSSLサーティフィケイトにより安全性が保証される必要があるので、アクセスは制約され得る。特に、CORSと同様に、WebRTCアーキテクチャも、メカニズムフローのための制約及び境界を規定するオープンスタンダードにより規定される、それ自身のルールのセットを付随する。安全性が保証される接続(SSL使用可能)であるコアポリシの一つは、遠隔メディアサーバエンドポイントへ接続するWebRTCクライアントにより要求される(例えば、接続は、セキュアプロトコル(通常、セキュアウエブソケット若しくはWSS)を用いて確立されなければならない。よって、WebRTC接続は、SSLサーティフィケイトが、接続される遠隔サーバにインストールされることを要求する。大量のメディアトラフィックを処理するのに、クラスタリングコンフィギュレーション及び/又はクラウドコンフィギュレーションでの多数のメディアサーバが必要とされる状況では、ブラウザが接続する必要がある、クラスタ内のすべてのサーバインスタンスは、WebRTC下で機能する、安全性が保証された接続(SSL使用可能)に亘って、アクセス可能である。これらの制約は、広範な問題となる可能性がある。なぜなら、WebRTCは、近年にてウイルスのための採用がされた、通信のための最適低遅延フレームワークを提示し、利用が増え続けている、からである。従って、WebRTCは、デバイス間でマルチメディアをシェアする多数の実装にとって好適なものではあるが、クラスタ/クラウドコンピューティングを用いるインフラストラクチャにて、現在、効率的には利用され得ない。
クライアント、ブラウザを発行する際に配置される上記のサーチの制約は、セキュアクライアントとアンセキュアクライアントの間の接続を妨げるものであり、大抵のウエブページが今日安全に配信されるので、このことは、全てのブラウザ通信のために安全性が保証された接続が絶対的に用いられなければならない、ということを意味する。サービスプロバイダが、(単独のインスタンスにより処理され得るよりも多くのインターネットトラフィックを処理するために)アーキテクチャを外部に拡大することを開始するにつれて、クラスタ内の多数のインスタンスのためにSSLサーティフィケイトを管理しなければならないことに関して問題が発生し、このことにより次は、個々のインスタンスが、SSLサーティフィケイトだけでなくそれ自身のドメインを有することが要求される。特に、SSLは、ドメイン名を使用し、サーティフィケイトを認証するエンティティを認可し、これにより、設定内の個々のサーバインスタンスは、通常、異なるドメイン及びそれ自身のSSLサーティフィケイトを要求するものである。
クラウドコンピューティングの発展も、類似の問題点を付随する。クラウドプラットフォームは、それらのアプリケーションプログラムインタフェース(API)を用いて動的インスタンスマネジメントを提示し、ストリームマネジャ、若しくは他のマネジメントツールを用いるストリーミングセットアップは、クラウドプラットフォームのオートスケーリングフィーチャを利用でき、ネットワークトラフィックが変化するにつれて、サーバノードをリアルタイムで動的に付加/除去し得る。クラスタが手動でセットアップされるのかどうか、若しくは、オートスケーリングにより作成されるのかどうか、に関わりなく、問題点は依然同じである。特に、個々の動的クラウドインスタンスのために、及び、オートスケーリングを介して管理されるインスタンスのために、ドメインをセットアップしてサーティフィケイトをインストールすることは、単調であり、実用的ではない。
セキュア接続を要求するプロトコルを実装する際、安全性が保証されたデバイスと安全性が保証されないデバイスとの間のセキュア通信の提供を改善する必要がある。この必要に対処する種々の形態の解決策にて、本発明は、更に、他の所望の特性を有するものである。
セキュア接続を要求するプロトコルを実装する際に安全性が保証されたデバイスと安全性が保証されないデバイスとの間にセキュア通信を提供するための改善策のニーズがある。種々の実施形態にて、本発明は、他の望ましい特徴と有することに加えて、このニーズに対処する解決策を提供する。
本発明の例示の実施形態により、安全性が保証されたデバイスと安全性が保証されないデバイスとの間のセキュア通信を提供する方法が、提示される。方法は、セキュア接続を経由してプロキシサービスにて、サブスクライバデバイス上でクライアントからの接続リクエストを受信するステップであって、接続リクエストはターゲットのパブリッシャデバイスのためのノードアドレスを含む、受信するステップと、アンセキュア接続を経由して、プロキシサービスをターゲットのパブリッシャデバイスへ接続するステップと、及び、 サブスクライバデバイスとターゲットのパブリッシャデバイスとの間のブリッジを、プロキシサービスを経由して確立するステップとを含む。方法は、サブスクライバデバイス間の接続をネゴシエートするために、ブリッジに亘ってプロキシチャネルを利用するステップと、及び、サブスクライバデバイス間の接続に亘ってサブスクライバデバイスとパブリッシャデバイスの間でデータを交換するステップとを含む。
本発明の形態により、ドメイン名とセキュアソケットレイヤ(SSL)サーティフィケイトを伴って構成されるストリームマネジャサーバ上で、プロキシサービスが実装されている。ストリームマネジャはクラウドインフラストラクチャ上に実装されている。ブリッジを確立するステップは、相互作用接続確立(ICE)技術を用いてサブスクライバデバイスとパブリッシャデバイスとの間でセッションセットアップ情報をネゴシエートするステップを含む。
本発明の形態により、ブリッジは、WebSocketセキュア(WSS)接続若しくはハイパーテキストトランスファプロトコルセキュア(HTTP)接続を用いる、サブスクライバデバイスとプロキシサービスとの間の接続と、及び、WebSocket(WS)アンセキュア接続若しくはハイパーテキストトランスファプロトコルセキュア(HTTP)接続を用いる、パブリッシャデバイスとプロキシサービスとの間の接続とを含み得る。ブリッジにより、セキュアデータがセキュアサブスクライバデバイスからアンセキュアパブリッシャデバイスへ流れることが可能になる。
本発明の形態により、サブスクライバデバイスは、ウエブブラウザクライアントからプロキシサービスへ接続する。パブリッシャデバイスは、ドメインもSSLサーティフィケイトも伴わないメディアサーバであってよく、マルチメディアを、接続されたサブスクライバデバイスへブロードキャストするように構成されている。接続はサブスクライバデバイスとパブリッシャデバイスとの間の直接接続であってよく、若しくは、接続はネットワークアドレストランスレーション(NAT)接続であり、及び、接続はサブスクライバデバイスとパブリッシャデバイスとの間でマルチメディアを交換するように構成されている。
本発明の形態により、プロキシサービスは、ピンガー機構を用いて、サブスクライバデバイスとパブリッシャデバイスとの間のマルチメディアデータの交換の間に、ブリッジをオープンのまま維持するように構成されている。方法は更に、ロードバランサにより、サブスクライバデバイスとパブリッシャデバイスとの間の負荷をバランスするステップを含む。プロキシサービスが、効率性及び信頼性のために、安全性が保証されたデバイスと安全性が保証されないデバイスとの間で、WebRTC情報交換を提供し得る。パブリッシャデバイスは、複数の物理的ノード若しくはバーチャルインスタンスを含むストリーミングクラスタを含み得る。方法は更に、サブスクライバデバイスとパブリッシャデバイスのための元のクライアント情報を追跡するためにカスタムヘッダを作成するステップを含み得る。
本発明の例示の実施形態により、安全性が保証されたデバイスと安全性が保証されないデバイスとの間のセキュア通信を提供するシステムが、提供される。システムは、セキュア接続を経由してサブスクライバデバイスと電子通信するプロキシサービスと、及び、アンセキュア接続を経由してプロキシサービスと電子接続するターゲットのパブリッシャデバイスとを含む。プロキシサービスは、クライアントデバイスから接続リクエストを受信することに応答して、プロキシサービスは、サブスクライバデバイスとターゲットのパブリッシャデバイスとの間のブリッジを、プロキシサービスを経由して確立し、及び、サブスクライバデバイス間の接続をネゴシエートするために、ブリッジに亘ってプロキシチャネルを利用して、サブスクライバデバイス間の前記接続に亘ってサブスクライバデバイスとパブリッシャデバイスの間でマルチメディアのデータの交換を促進するように構成されている。
本発明の形態により、ドメイン名とセキュアソケットレイヤ(SSL)サーティフィケイトを伴って構成されるストリームマネジャサーバ上で、プロキシサービスが実装されている。ストリームマネジャは、クラウドインフラストラクチャ上に実装され得る。前記ブリッジを確立するためのプロセスは、相互作用接続確立(ICE)技術を用いてサブスクライバデバイスとパブリッシャデバイスとの間でセッションセットアップ情報をネゴシエートすることを含み得る。ブリッジは、WebSocketセキュア(WSS)接続若しくはハイパーテキストトランスファプロトコルセキュア(HTTP)接続を用いる、サブスクライバデバイスとプロキシサービスとの間の接続と、及び、WebSocket(WS)アンセキュア接続若しくはハイパーテキストトランスファプロトコルセキュア(HTTP)接続を用いる、パブリッシャデバイスとプロキシサービスとの間の接続とを含み得る。ブリッジにより、セキュアデータがセキュアサブスクライバデバイスからアンセキュアパブリッシャデバイスへ流れることが可能になり得る。
本発明の形態により、サブスクライバデバイスは、ウエブブラウザクライアントからプロキシサービスへ接続する。パブリッシャデバイスは、ドメインもSSLサーティフィケイトも伴わないメディアサーバであり得、マルチメディアを、接続されたサブスクライバデバイスへブロードキャストするように構成されている。接続は、サブスクライバデバイスとパブリッシャデバイスとの間でマルチメディアを交換するように構成され得、及び、接続は、サブスクライバデバイスとパブリッシャデバイスとの間の直接接続であり得、若しくは、ネットワークアドレストランスレーション(NAT)接続であり得る。本発明の形態により、プロキシサービスは、ピンガー機構を用いて、サブスクライバデバイスとパブリッシャデバイスとの間のマルチメディアの交換の間に、ブリッジをオープンのまま維持するように構成されている。
プロキシサービスは、更に、ロードバランスにより、サブスクライバデバイスとパブリッシャデバイスとの間の負荷をバランスするように構成され得る。プロキシサービスが、効率性及び信頼性のために、安全性が保証されたデバイスと安全性が保証されないデバイスとの間で、WebRTC情報交換を提供し得る。パブリッシャデバイスは、複数の物理的ノード若しくはバーチャルインスタンスを含むストリーミングクラスタを含み得る。プロキシサービスは、更に、サブスクライバデバイスとパブリッシャデバイスのための元のクライアント情報を追跡するためにカスタムヘッダを作成するように構成され得る。
本発明のこれらの及び他の特性は、以下のような添付の図面と併せて、発明の詳細な説明を参照することにより、より十分に理解されるものである。
本発明に係る、ストリーミングクラスタタイプネットワークのための例示の構成である。 本発明に係る、デイジーチェーンクラスタリングタイプネットワークのための例示の構成である。 本発明に係る、ストリームマネジャルーティングオペレーションのための例示のプロセスである。 本発明に係る、ストリームマネジャプロキシサーバを用いてマルチメディアセッションを確立するための例示のプロセスである。 本発明に係る、ストリームマネジャによりオートスケーリングを実装するための例示のプロセスである。 本発明に係る、ストリームマネジャプロキシサーバの例示のオペレーションである。 本発明に係る、ストリームマネジャプロキシサーバによりロードバランシングを実装するための例示のプロセスである。 本発明に係る、例示のコンピュータアーキテクチャである。
本発明の例示の実施形態は、ソケットプロキシングを介して安全性が保証されたデバイスと安全性が保証されないデバイスとの間の通信を提供して、クライアントデバイス(例えば、サブスクライバデバイス)上のクライアントウエブブラウザに、種々のオープンスタンダードにより規定されるセキュリティポリシー(例えばWebRTC、CORS等のポリシー)と適合させる、方法及びシステムに関する。本発明は、セキュアウエブブラウザと、サーバサイド(例えば、パブリッシャサーバデバイス)のアンセキュア接続との間で、データをパスし得るストリームマネジャサーバにより実装される、プロキシサービスを提供する。特に、例示の実施形態では、本発明は、ストリームマネジャデバイスにより実装される仲介プロキシサーバを介してプロキシされるメディアサーバノードに基づく、ウエブブラウザクライアントからWebRTC(若しくは類似のプロトコル)へのWebSocket通信を利用する。
WebRTC、HTTPS等のプロトコルを実装する際、サーバが、安全性が保証されて(SSL使用可能で)ないならば、通信は機能しなくなる。この問題は、クライアント-サーバ(パブリッシュ)データフローと、サーバ-クライアント(サブスクライブ)データフローとの、両方に当てはまる。本発明のストリームマネジャプロキシサーバは、アンセキュアサーバ内部にホストされるプロキシサーバを提供することによって、アンセキュアサーバアクセス問題を解決する。更に、WebRTCセキュリティポリシーは、アンセキュア接続上のクライアント-サーバの接続性のみをブロックするが、サーバ-サーバの接続性をブロックしない。WebRTCのこの形態を利用して、ストリームマネジャプロキシサーバは、クライアント-アンセキュアデバイスの通信に改良を生じる、固有の組み合わせのステップを用いるWebSocketを用いて確立される、あらゆるWebRTCクライアントの接続に対して、ストリームマネジャプロキシサーバ自身とWebRTCメディアサーバとの間の、サーバ-サーバのアンセキュア接続を生成する。
本発明のストリームマネジャプロキシサーバを初期化するために、ブラウザクライアントは、クライアントとストリームマネジャプロキシサーバとの間で生成されるセキュアWebSocket接続に亘って、ターゲットメディアサーバアプリケーションスコープと共に、ストリームマネジャプロキシサーバが接続することを欲するメディアサーバのパブリックIPアドレスを、ストリームマネジャプロキシサーバに提供する。ストリームマネジャプロキシサーバは続いて、それ自身とターゲットメディアサーバとの間のサーバ-サーバ接続を同期して作成する。ストリームマネジャプロキシサーバ-メディアサーバの接続と、クライアント-ストリームマネジャプロキシサーバの接続との対は、セキュアクライアントに、アンセキュアメディアサーバへのトークをさせる、ブリッジを生成する。
ブリッジが確立されると、セキュアクライアントにより通過する全てのパラメータは、アンセキュアターゲットメディアサーバに転送され、全てのパラメータはストリームマネジャプロキシサーバチャネルに到着し、メディアサーバから受けたレスポンスはストリームマネジャプロキシサーバを経由してクライアントへ中継されて戻される。この解決策により、セキュアクライアントは、どこにでも配置されるアンセキュアサーバにトークすることが可能になる。更に、プロキシチャネルは、サーバとクライアントの間のICEデータ交換及び任意の通信のために、初期化され得る。接続性が確立され、ICE交換が成功して完了すると、直接に、若しくは(必要により)NATを用いて、オーディオ/ビデオが、クライアントとサーバの間で流れる。プロキシチャネルは、クライアントとメディアサーバとの間の任意の将来の通信に対してアクティブを維持し、アクティブ/オープンを維持した後、クライアントが接続を閉じるときに、若しくは、メディアサーバがプロキシ接続を閉じるときに、終了となる。例えば、セキュア接続とアンセキュア接続の両方は特別の「ピンポン」若しくはピンガー機構を用いて、有益なデータがそれらを介して流れないときでも、WebSocket接続のアライブを保持する。「ピンポン」若しくはピンガー機構は、周知のアクティブステータストラッキングの、例えば、デバイス(及び別のデバイスとの接続)が依然アクティブであるかどうかを見るために周期的にデバイスのネットワーク接続を確認することの、任意の組み合わせを含み得る。この解決策は、クラウドインスタンスと共にマネージドのインスタンスに関して、等しく十分に機能する。
プロキシサービスの実装を介して、本発明は、周知の複数の問題点に対処する、固有の組み合わせのステップを提供する。特に、本発明は、セキュアロケーションから一つ若しくはそれ以上のアンセキュアロケーションにマルチメディアデータが転送される必要がある、リアルタイムのデータ指向アプリケーションに対して、解決策を提供する固有の組み合わせのステップ及び技術を提供する。本発明は、リアルタイムロケーション情報がセキュアアプリケーションからアンセキュアサーバに転送される必要がある、ジオロケーションアプリケーションに関する問題にも対処する。更に、本発明は、アプリケーションが、非パーマネントのIPアドレス(パーマネントドメイン名は、SSLサーティフィケイトに対しては利用可能では無い)によりバーチャルマシンと連動し、セキュアエンドポイントからアンセキュアエンドポイントへWebSocketに亘ってサーバ間にて転送される必要があるデータを有する、クラウドベースのWebSocketアプリケーションによって、実装され得る。よって、本発明は、技術の向上(例えば、コンピューティングデバイス及びインターネット)により必要とされる、少なくとも一つの技術エリアへ向上を提供する。
更に、本発明は、WebRTCに亘るウエブブラウザを含む例示の実装に、通常、言及するが、WebRTCは、モバイルプラットフォーム及びIoTデバイスを含む、非ブラウザデバイスのためのアプリケーションを有しており、よって、本発明は、ウエブブラウザによる利用に限定される意図はない。例えば、本発明は、クラウドフォン若しくはウエブフォンとも称される、ブラウザベースのボイスオーバーIP(VoIP)電話によって利用可能であり、該電話は、ソフトフォン若しくは他の類似の技術をダウンロードしてインストールする、という前提条件に取って換わって、ウエブブラウザ内部から、コールが為されて受信され得る。更に、本発明により提供される解決策は、メディアサーバにより提供されるサービスの範囲に含まれる全てのWebRTCストリーミングシナリオに対して包括的である。例えば、本発明により提供される解決策は、WebRTCに亘る1-多のストリーミング(1パブリッシャ-多サブスクライバ)、WebRTCに亘る1-1のストリーミング(チャット)、WebRTCに亘る多-多のストリーミング(コンフェレンシング)、WebRTCベースのオンラインビデオレコーディング(サブスクライバ無しのパブリッシャ)、接続性のルールがセキュア起源のポリシーに適合するがサーバのためのSSL使用可能なドメインをセットアップすることができない任意のWebSocketオービトラリデータトランスミッション等に、適用可能であるが、これらに限定されるものではない。更に、本発明は、WebRTCの使用に限定されず、クライアントにアンセキュアデバイスに接続させないプロトコルの任意の組み合わせの範囲内で実装され得る。
図1~図7では、全体を通して同じ部位には同じ参照数字が割り当てられており、本発明に係る、安全性が保証されたデバイスと安全性が保証されていないデバイスとの間に安全性が保証された通信を提供する、改良されたオペレーションについての、例示の実施形態若しくは複数の実施形態を示す。図面に示す例示の実施形態若しくは複数の実施形態を参照して、本発明を説明するが、当然ながら、多数の別途の形式が本発明を具体化し得るものである。本発明の精神および範囲と共に、依然保持するように開示される実施形態のパラメータを変更する様々な態様を、当業者であれば更に理解するところである。
本発明は、現存の及び将来のストリームマネジャ構成の範囲内での実装のためのプロキシソリューションを提供する、方法及びシステムに関する。当業者には理解されるところであるが、ストリームマネジャは、マルチメディアストリーミングの周囲に集中するアプリケーションプログラムインタフェース(API)として構成されるアクトであってもよい、ウエブサーバ若しくは他のコンピューティングインフラストラクチャ上で稼働する、ソフトウエアアプリケーションである。本発明により提供されるプロキシソリューションは、マルチメディアを(例えば、ウエブブラウザを介して)エンドユーザデバイスに提供するように構成された、ストリームマネジャ及び他のマルチメディアマネジメントソリューションの、任意の組み合わせにより実装され得る。例えば、本発明により提供されるプロキシソリューションは、(クラウド上に提供されるバーチャルマシンの代りに、マネージドの物理ハードウエアから成る)クラウドインフラストラクチャ、若しくはホスト型の/マネージドのインフラストラクチャ上で実装されるストリームマネジャの内部で、展開され得る。更に、本発明により提供されるプロキシソリューションは、ストリームマネジャ用語と併せて、説明され得る。なぜなら、技術的改良はストリームマネジャ上に実装され、他のサービスと同時に稼働するからである。しかしながら、本発明のプロキシソリューションは、ストリームマネジャの性能に直接的に依存する、というものではなく、データがセキュアエンドポイントとアンセキュアエンドポイントとの間で転送される、任意のブラウザベースのアプリケーションに、拡張され得る。
ストリームマネジャプロキシソリューションは、拡張可能なバーチャルシステムにより動作するようにも適用され得る。クラウドインフラストラクチャでは、例えば、ストリームマネジャは、接続クライアントによりシステムにて(例えば、サブスクライバデバイスにて)負担する負荷に基づいて、バーチャルマシンイメージから動的にクラウドインスタンスをスピンアップしスピンダウンする管理を行うことができる。特に、ストリームマネジャは、クラウドプラットフォームのAPIを用いて、インスタンスタイプ、インスタンスタグ(メタ)、マシンイメージ識別子などの、更なるパラメータを提供することによりインスタンスの創作を、及び/又は、削除を要求し得る。クラウドインフラストラクチャ内でストリーミングインフラストラクチャをスケールアップすることは、(図4に示すような)メディアサーバノードのクラスタを創作して、単独のサーバインスタンスにより処理され得るよりも多くのインターネットトラフィックを処理することを、含み得る。本発明は、任意の組み合わせのネットワーク構成で実装され得る。
図1Aは、サーバノードの意図される役割及び能力に基づいて、ストリーミングマネジメントのために集められたサーバノードを含む従来のストリーミングクラスタ100の例を示す。特に、図1Aは、パブリッシャデバイス102が、消費のためにサブスクライバデバイス104にコンテンツをどのように発行し得るかを示す。当業者に理解されるように、パブリッシャデバイス102は、要求するユーザ/デバイスに対するマルチメディアを提供する/受け取るように構成されている任意の組み合わせのコンピューティングデバイスを、含み得る。同様に、サブスクライバデバイス104は、他のデバイスに対してマルチメディアを要求する/マルチメディアを提供するクライアントにより構成されている任意の組み合わせのコンピューティングデバイスを、含み得る。例えば、パブリッシャデバイス102は、他のユーザ(例えば、サブスクライバ)に提供されるワンウエイストリーミングサービスを、又は、ツーウエイストリーミングサービス(例えば、データ、ビデオ、オーディオ、若しくはそれらの組み合わせ)を、ホストするように構成されたサーバであってもよい。図1Aの例示のシステム100では、パブリッシャデバイス102は、発端デバイス106(若しくは取り込みエンドポイント)を介してネットワークに亘って通信し、サブスクライバデバイス104は、エッジデバイス108を介してネットワークに亘って通信する。当業者に理解されるように、発端デバイス106及びエッジデバイス108は、周知の、コンピューティングデバイス若しくはバーチャルマシンのインスタンスの、任意の組み合わせでもよく、1台のパブリッシャデバイス102若しくはサブスクライバデバイス104よりも多くの台数を扱うように構成されてもよい。発端若しくはエッジデバイスは、遠隔デバイス(例えば、サブスクライバ/パブリッシャデバイス)の間にて信頼性のある接続を確立するように提供され得る。
当業者に理解されるように、システム100は、相互に直接接続する発端ノード106とエッジノード108との二重システムに限定されない。ある構成では、図1Bに示されるように、一つ以上の仲介ノード110が、遠隔発端ノード106とエッジノード108エンドポイントとの間のトラフィックをブリッジする、デイジーチェーンの形式で、発端ノード106とエッジノード106が、繋がり得る。ストリーミングシステムでの仲介ノード110の使用は、通常、地理的配布のためであり、多数の分散配置からのクライアントに最小限の待ち時間で接続させるため、である。ストリーミングシステムにて仲介ノード110を使用することにより、単独の発端ノード106が多数のエッジノード108に配信できるものの容量が、拡張されることも可能になる。更に、ノード若しくはサーバを中継することが、発端ノード106とエッジノード108との間で初期化されると、個々の中継が処理し得るエッジノード108の接続の数により、容量が拡張し得る。
ネットワーク構成に関わらず、最初は、パブリッシャデバイス102とサブスクライバデバイス104は、(例えば、ストリーミングセッションの前に)必ずしも相互に直接接続しない。従って、パブリッシャデバイス102とサブスクライバデバイス104との間を調整してマルチメディアを交換するための接続を確立するメカニズムが、要求され得る。ある実施形態では、ストリームマネジャデバイス210が、パブリッシャデバイス102とサブスクライバデバイス104との間で、接続を確立して通信を管理するように構成され得る。ある実施形態では、ストリームマネジャデバイス210は、ドメイン名を伴うプロキシサーバであってもよく、SSLサーティフィケイトがインストールされている。ストリームマネジャプロキシサーバ210は、到来するクライアント接続を処理し、パブリッシャデバイス102とサブスクライバデバイス104との間のプロキシ接続を管理し、及び、受信される内容を何ら変更すること無く、パブリッシャデバイス102とサブスクライバデバイス104との各々から受信される情報の全てをプロキシする、ように、WebSocketデータリスナを登録するように、構成されてもよい。ストリームマネジャデバイス210は、プロキシ接続に亘る遠隔プロシジャコール(RPC)を許可し、遠隔メディアサーバからのクライアント方法の起動を許可し、ネゴシエーションが完了した後でさえ接続がアライブを保持されてオブザーバとなることを保証し、接続若しくはプロキシ接続のいずれかが終了するならば通信ブリッジを終了する、ように構成されてもよい。当業者に理解されるように、デバイス間の通信は双方向であってもよく、これによりいずれかのデバイスは情報の交換を開始できる。例えば、パブリッシャデバイス102若しくはサブスクライバデバイス104(クライアント)は、ストリームマネジャデバイス210(サーバ)上の何かをコールすることができ、ストリームマネジャデバイス210は、特定のパブリッシャデバイス102若しくはサブスクライバデバイス104をコールでき、又は、パブリッシャデバイス102若しくはサブスクライバデバイス104はお互いにコールできる。同様に、単独のストリームに接続する全ての、パブリッシャデバイス102若しくはサブスクライバデバイス104に、通知を送ることができる。
図2は、発端ノード106とエッジデバイス108の利用を介してパブリッシャデバイス102とサブスクライバデバイス104との間の接続を確立する、ストリームマネジャプロキシサーバ210についての例示の実装及びプロセス200を示す。当業者に理解されるように、プロセス200を利用し、任意の組み合わせの仲介の発端デバイス106及び(もしあれば)エッジデバイス108を用いて、任意の数のパブリッシャデバイス102若しくはサブスクライバデバイス104を接続し得るが、プロセス200は図2に示す構成に限定されることは意図されていない。
プロセス200のステップ1では、ストリームマネジャプロキシサーバ210が、パブリッシャデバイス102からのリクエストを受信し得る。例えば、パブリッシャデバイス102は、ストリームマネジャプロキシサーバ210にリクエストを転送し、サブスクライバに利用可能なマルチメディアストリームを作成する。プロセス200のステップ2ではストリームマネジャプロキシサーバ210は、(例えば、データストア220から)ブロードキャストのために利用可能な発端ノード106を検索し、利用すべき発端ノード106を選択する。当業者に理解されるように、任意の組み合わせの選択方法及び基準は、ノードを選択するのに利用され得る。例えば、ストリームマネジャプロキシサーバ210は、ラウンドロビン、ロジスティック回帰、又は、帯域幅などの乱数ジェネレータ及び基準、CPU、RAM負荷、ジオロケーションなどを利用して、利用可能な発端ノード106のリストから発端ノード106を選択できる。プロセス200のステップ3では、ストリームマネジャプロキシサーバ210は、選択された発端ノードを、リクエストするパブリッシャデバイス102に戻す。プロセス200のステップ4では、パブリッシャデバイス102は、ストリームマネジャプロキシサーバ210により提供される情報を利用して、選択された発端ノード106に接続する。
プロセス200は、リクエストするサブスクライバデバイス104のためにエッジノード108を確立するとき、同様のステップのセットを追随する。特に、プロセス200のステップ5では、ストリームマネジャプロキシサーバ210は、サブスクライバデバイス104からリクエストを受信し得る。例えば、サブスクライバデバイス104は、リクエストをストリームマネジャプロキシサーバ210に転送して、マルチメディアブロードキャストにアクセスするための、エッジノード108への接続アクセスを作成することができる。プロセス200のステップ5の間に、ストリームマネジャプロキシサーバ210は、(例えば、データストア220から)利用可能なエッジノード108を検索し、(例えば、発端ノード106を介して)ブロードキャストに接続するために利用するエッジノード108を選択することができる。例えば、ストリームマネジャプロキシサーバ210は、ラウンドロビンや乱数ジェネレータを利用して、利用可能なエッジノード108のリストからエッジノード108を選択することができる。
プロセス200のステップ6では、ストリームマネジャプロキシサーバ210は、リクエストするサブスクライバデバイス104に、選択されたエッジノード108を戻す。プロセス200のステップ7では、サブスクライバデバイス104は、ストリームマネジャプロキシサーバ210により提供された情報を利用して、選択されたエッジノード108に接続することができる。プロセス200のステップ7の後、ストリームマネジャプロキシサーバ210によって個々のデバイス102、104に提供された発端ノード106とエッジノード108を経由して、パブリッシャデバイス102とサブスクライバデバイス104との間にて接続が確立された。この後、この接続を利用してデバイス間でマルチメディアをストリームし得る。更に、当業者に理解されるように、プロセス200は、(例えば、図3に示すように)発端ノード106及び/又はエッジノードを含まないシステムで、実装され得る。
ある実施形態では、本発明は、ブラウザクライアント(例えば、サブスクライバデバイス104)と、マルチメディアコンテンツを提供するメディアサーバ(例えば、パブリッシャデバイス102)との間にて、信頼性のある双方向通信を可能にするように構成されてもよい。例えば、本発明は、本発明は、(例えば、プロセス300を用いて)クラウドコンピューティングプラットフォーム上のブラウザクライアントとサーバとの間のWebRTC情報交換を利用することにより、モバイルコンピューティングデバイス上のブラウザとクラウドプラットフォーム上のサーバとの間に、双方向の通信を提供し得る。WebRTC通信をセットアップする際、WebRTC信号伝達を利用して、2参加者間で相互に情報が交換され、マルチメディアストリーミングセッションがセットアップされる。このことは、信号伝達及びネゴシエーションとしても周知であり、信号伝達及びネゴシエーションが成功するために、WebRTC通信は、参加者の一がセキュア接続状態であることを要求する。



図3は、システム100にてWebRTC通信をセットアップするための信号伝達及びネゴシエーションのプロセス600の例示の実装を示す。特に、図3は、仲介としてストリームマネジャプロキシサーバ210を用いて、サブスクライバデバイス104とパブリッシャデバイス102との間のWebRTC通信を確立するための、例示のプロセス300の概観を示す。最初に、ストリームマネジャプロキシサーバ210は、セキュアサーバとしてセットアップされる。例えば、ストリームマネジャプロキシサーバ210は、セキュア接続の一部として用いられ得るように、ドメイン名及びSSLサーティフィケイトを伴って作成される。ストリームマネジャプロキシサーバ210は、(例えば、サブスクライバデバイス104とエッジノード108の間にて、及び/又は、ブロードキャスタ102と発端ノード106との間にて)ブロードキャスタデバイス102とサブスクライバデバイス104のためのエントリポイントとして、構成され得る。SSLサーティフィケイトは、(例えば、WebRTC通信を経由して)リアルタイム通信のセットアップを許容し、ウエブブラウザにより強制されるルールによるコンプライアンス(例えば、クロスオリジンリソースシェアリング(CORS))を許容する。更に、SSLは、WebRTCの信号伝達フェーズのために要求され、該フェーズは、HTTPS、若しくはWebSocketセキュア(WSS)に関して為され得る。信号伝達が完了すると、ストリームマネジャプロキシサーバ210プロキシノードは最早要求されず、(例えば、サブスクライバデバイス104上の)ブラウザは別のノード(例えば、発端ノード106若しくはパブリッシャデバイス102)と直接接続して、マルチメディアを交換できる。このことは、WebRTCなどのプロトコルの利益をもたらすものであり、このときこのプロトコルを利用しようとするセキュアデバイス及びアンセキュアデバイスにより作られる制約は無い。
プロセス300のステップ1では、サブスクライバデバイス104上のクライアントは、セキュア接続に亘ってストリームマネジャプロキシサーバ210に接続する。サブスクライバデバイス104は、マルチメディアを交換することを欲する、意図されるパブリッシャデバイス102(例えば、メディアサーバ)に対して、送信も対処も行う。例えば、WebSocketセキュア(WSS)を用いてストリームマネジャプロキシサーバ210への接続をネゴシエートし得、パブリッシャデバイス102のメディアサーバに対してターゲットIPを提供し得る。
プロセス300のステップ2では、(クライアントのサブスクライバデバイス104により提供される)パブリッシャデバイス102のためのターゲットアドレスを用いて、ストリームマネジャプロキシサーバ210は、(ターゲットのパブリッシャデバイス102メディアサーバがドメイン名/SSLを有しないときの)アンセキュア接続では無く、それ自身とターゲットのパブリッシャデバイス102メディアサーバとの間のサーバ-サーバ接続を確立することができる。例えば、ストリームマネジャプロキシサーバ210は、プライベートクラウドネットワーク上のアンセキュアデバイスへ接続するWebSocket(WS)プロトコルを用いて、サーバ-サーバ接続を確立することができる。サブスクライバデバイス104によるセキュアWebSocket接続と、パブリッシャデバイス102によるサーバ-サーバ接続との、組み合わせは、ストリームマネジャプロキシサーバ210を経由して(例えば、WebSocketに亘る双方向メッセージングを経由して)サブスクライバデバイス104とパブリッシャデバイス102との間に、トラバースブリッジを創作する。確立されると、ブリッジは、セキュアデータがアンセキュアエンドポイントへフローすること、及びアンセキュアデータがセキュアエンドポイントへフローすることを、通常それら機能を許可しないプロトコル(例えば、WebRTC)内部に実装されても、可能にするプロキシチャネルを提供する。従って、ストリームマネジャプロキシサーバ210は、(例えば、サブスクライバデバイス104上の)ウエブブラウザ
と、通常許容されないアンセキュアメディアデバイス(例えば、パブリッシャデバイス102)との間にてWebRTC通信確立するのに用いられ得る。本明細書に提示される例は、信号伝達及びプロキシのためにWebSocketを利用することに関連するが、本発明は、WebRTC信号伝達のためにWebSocketを用いることに限定されるものでは無い。本発明の範囲から乖離すること無く、デバイス間にて信号伝達データを送信する技術の任意の組み合わせが利用され得る。例えば、HTTPはWebSocketと同様の機能及び制約を有するので、本発明は、クラスタノード上の非セキュアHTTP接続へセキュアHTTPSコールをセキュアするのに用いられ得る。
ある実施形態では、ストリームマネジャプロキシサーバ210は、プロキシチャネルに亘って通信するために、ソケットプロキシサービス、ターゲットメディアサーバインスタンス、及びクライアントをホストするように、構成されている。例えば、WebRTCの実装では、ストリームマネジャプロキシサーバ210は、プロキシに亘って通信するJavaScript(登録商標)を用いて、ターゲットメディアサーバインスタンス、及びWebRTCクライアントにより、WebSocketプロキシプロトコルをホストする。特に、ストリームマネジャプロキシサーバ210は、二つのピアデバイス(例えば、サブスクライバデバイス104とパブリッシャデバイス102)がオープンWebRTCスタンダードを用いて相互に通信をする、全てのサービス及びプロトコルを促進するように、構成され得る。
WebRTCセッションを初期化するために、ストリームマネジャプロキシサーバ210へのプロキシチャネル接続が確立された後には、ピアデバイスの両方は、相互のロケーション、性能、及び他方の必要な詳細(例えば、ワールドワイドウェブコンソーシアム(W3C)スタンダード)について、知らなければならない。このステップは、ピアディスカバリとして知られており、ある実施形態では、信号伝達は、ピアディスカバリのためのプロキシチャネルに亘って、サブスクライバデバイス104とパブリッシャデバイス102との間で、交換される。通常、WebRTCプロトコルを利用する際には、交換される、少なくとも二つのタイプの信号伝達データがある。それらタイプは、セッションディスクリプションプロトコル(SDP)セッションコントロールメッセージとICE候補を含む。SDPは、メディア可能デバイスの性能を記述するためのフォーマットである。本発明では、メディア可能デバイスは、発端ノード106、エッジノード108、サブスクライバデバイス104、及び、パブリッシャデバイス102のうちの、いずれでもよい。信号伝達/ピアディスカバリプロセスの間に、SDPを用いて、デバイスは、相互に、それらの性能のリスト(例えば、どのコードをそれが使用できるか、それが生成できる解決策、及び、ストリームをセットアップするための他の詳細な情報、等)を各々送信できる。
共有する情報及び性能に基づいて、デバイスの各々が、相互に通信する方法について同意すると、プロセス300は、ICE候補フェーズ(ステップ3)に移る。ICEは、インターネットに亘ってデバイス間で接続を確立する助けをするのに用いられるプロトコルである。ICE候補内の情報は、転送のためにUDPを用いるのかTCPを用いるのか、クライアントのIPアドレス、及び、ピアへの直接接続を作成するための他のディテールを、含む。特に、ICEは、ピアデバイスを接続するための最良のパスを見出すのに利用される。当業者に理解されるように、最良のパスは、デバイス間の直接接続であることもあり、直接接続が可能でない場合にも(即ち、ネットワークアドレストランスレーション(NATs)の背後で)提供され得る。
ICEは、デバイスを接続する助けとなる、NATに対するセッショントラバーサルユーティリティ(STUN)、及び、NAT周りのトラバーサルユージングリレイ(TURN)として知られる、二つのサブプロトコルも含み得る。STUNサーバは、ファイアウオール/NATsをバイパスするのに用いられ、TURNサーバは、直接のピアツーピア(P2P)接続がSTUNを用いても確立され得ないならば用いられ得る、STUNの拡張である。それらの個々の機能を可能にするため、STUNサーバにより、クライアントは、それらのパブリックアドレス、それが背後にあるNATのタイプ、及びNATにより特定のローカルポートと関連するインターネットサイドポートを、見出すことができ、また、TURNサーバは、クライアントがそのようなリレイからIPアドレス及びポートを入手できる、プロトコルを用いる。STUNサーバ及びTURNサーバは、本発明に係る、WebRTC接続をセットアップし得る基礎となり得る。ICE候補、及びSTUN/TURNサーバの詳細は、信号伝達ステージの間に、通信され得る。更に、ブラウザクライアントは、利用されることが望ましいSTUN/TURNサーバを規定するAPIを含むことがある。
ピアディスカバリが完了し、ICEデータが取得されると、ピアデバイスはこのデータを相互に交換し、これによりWebRTCセッション(例えば、マルチメディアストリーミング)がそれらデバイス間で確立され得る。ICEデータは、クライアントとメディアサーバとの間の標準のWebSocketプロキシ接続に関して、完遂され得る。ある実施形態では、ピアデバイス間でICEデータをリレイするべく適切なメッセージフォーマットを生成するために、WebSocketチャネルが、サブスクライバデバイス104と、プロキシチャネル上のパブリッシャデバイス102との間で、確立される。
その後、プロセス300のステップ4では、デバイス間で接続が確立され得、それらの間で直接、又は、直接のデータフローが可能でないならばSTUNサーバ/TURNサーバに亘るNATを経由して、マルチメディアストリームが流れ得る。留意すべきことであるが、プロキシチャネルは、ディスカバリを管理し、セキュアデバイスとアンセキュアデバイスとの間の接続を確立して維持するのに、用いられ得、一方で、デバイス間の(若しくは、NATに亘る)接続はデバイス間でマルチメディアを共有するのに利用される。
ある実施形態では、ストリームマネジャプロキシサーバ210は、WebSocketに亘っていつでも多数のWebSocketプロキシブリッジを生成する接続マネジメントのための、標準のメカニズムを実装し得る。これにより、ストリームマネジャプロキシサーバ210は動的環境(例えば、バーチャルデバイス)で利用されることが可能となり、多数のインスタンスが特定のパブリッシャに対して稼働する。例えば、ストリームマネジャプロキシサーバ210は、クラウド環境に実装されたパブリッシャデバイス102により稼働するように構成される。クラウドインフラストラクチャ上のストリーミング、若しくは、任意の大規模展開を稼働する際、クラウドコンピューティングで用いられる最も有用で効果的な特徴は「オートスケーリング」である。オートスケーリングにより、システムは、トラフィック/ディマンドが縮小若しくは拡張する際にメディアサーバインスタンスを加えること、及び/又は除去することにより、サーバフリートのサイズを動的にスケールすることができる。例えば、メディアサーバはより多くのクライアントリクエストを有するので、システムは、オートスケールしてバーチャルマシンの数を拡張し、リクエストを促進してマルチメディアのストリームクオリティを維持することができる。
図4は、ストリームマネジャプロキシサーバ210を用いてオートスケーリングすることの例を示す。図4の例示の実装では、図4の左部のクラスタは、到来するストリームにために用いられる発端サーバ106、及び二つのエッジノード108を有する。閾値に到達し、エッジノードへ接続するサブスクライバクライアントのためにクラスタがより多くの容量を必要とすることが、(ストリームマネジャ210上の構成に基づいて)ストリームマネジャ210により検出されると、システムは、「スケールアウト」する。スケールアウトは、ストリームマネジャ210が(例えば、クラウドネットワークAPIを用いて)新しいバーチャルインスタンスをスピンアップし、図4の右部上のクラスタに示すように、役割を新しいインスタンスに割り当てることを、意味する。ある実施形態では、図4に示すように、エッジノード108は、エントリポイントとして新しいインスタンスに割り当てられ得る。同様に、ノード上の負荷が(ストリームマネジャ210で再び規定される)最小限閾値に到達すると、ストリームマネジャ210はエントリエッジノード108を余分のクラスタに「スピンダウン」し、クラスタを除去する(例えばスケールインする)ことができる。当業者に理解されるように、図4は(インスタンスのクラスタにアクセスする)エッジノード108によりスケールインしスケールアウトすることを示すが、同じシステム100は、システム100上により多くのパブリッシングクライアントを許容する必要に基づいて、新しい発端ノード106をスピンアップしスピンダウンするのに、用いられ得る。更に、当業者に理解されるように、提示されるシステムは、仮想化されたマシンインスタンスを伴うクラウドインフラストラクチャのみに限定されるものでは無い。同じように物理的ハードウエアベースのホストされるノードによっても用いられ得る。例えば、同じインフラストラクチャは、物理的ハードウエアのために用いられ得、メディアサーバノードのこれらの物理的インスタンスをオンライン及びオフラインの状態にし得る。
続いて図4に関して、複数のエッジデバイス108及び発端デバイス106を含む、多数のクラスタにより、クラウドコンピューティング環境が示される。クラウドコンピューティングの一つの利点は、複数のコンピューティングエンティティをオートスケールすることができることである。当業者に理解されるように、クラウドコンピューティング環境でオートスケールする際には、サーバインスタンスは動的インスタンスとしてリアルタイムで創作され除去される。しかしながら、動的インスタンスは、それらのIPアドレスがシステムスタートアップの間に変化するので、真に「動的」であり、これにより、時間及び利用可能性の複雑性を前提とすると、システムアドミニストレータが、セキュアソケットレイヤ(SSL)サーティフィケイトをこれらのインスタンス上にインストールすることは、可能では無い。システムがオートスケーリングシステムを使用しなくとも、手動で管理されるセットアップ上であってもSSL使用可能ノードをスケールすることについての問題点がなお存在する。あらゆる現存するWebRTCサーバのために手動でインスタンス上にSSLをインストールしなければならないことと、新しいインスタンスを加える際に同じことをしなければならないこととは、非常に時間を浪費し実現困難となり得る。従って、発端ノード106及びエッジノード108を含むストリーミングクラスタは、それらの上にSSLを添えないことがある。それらは、一時的にアロケートされるIPアドレスを伴う動的クラウドインスタンスであるからである。従って、発端ノード106及びエッジノード108は、WebRTCインタフェースによるセキュア接続とは、考慮されないことがあり、本発明のプロキシサーバを利用して相互作用し得る。
ある実施形態では、ストリームマネジャプロキシサーバ210は、クラウドプラットフォームのAPIと連結して設けられ、ストリーミングアーキテクチャに動的オートスケーリング機能を提供する。言い換えれば、アンセキュアエンドポイント(例えば、動的エンドポイント)からWebRTC通信を可能にするために、本発明は、ストリームマネジャプロキシサーバ210を介して、WebRTC参加者とクラウド/バーチャルインスタンスとの間のネゴシエーションを提供する。このことにより、WebRTCプロトコルを利用することの利点を犠牲にすることなく、ネットワークの負荷に依存して、システムは、効率的にスケールアウトしスケールインすること(例えば、ロードバランシング)が可能になる。図3に関して説明したように、この構成では、ストリームマネジャプロキシサーバ210インスタンス自身は、WebRTCサービスをホストするための登録パブリックドメイン名によりSSL使用可能であり、(例えばアンセキュアデバイスが参加者であることから)それら自身上では為し得無いデバイスに対してWebSocketプロキシサービスを提供できる。よって、ストリームマネジャプロキシサーバ210は、クラウド(若しくは類似の)環境内の、複数のセキュアサブスクライバデバイス104クライアントとアンセキュアパブリッシャデバイス102との間でWebRTCセッションセットアップ情報をパスするように構成されたネゴシエータとして動作し得、このことにより、パブリッシャデバイス102がセキュア接続(例えば、ドメイン名をインストールしたSSL)を提供するか否かに拘わり無く、強制的セキュア接続性ポリシーをバイパスする。
ある実施形態では、プロキシサーバ210は、パブリッシャデバイス102のための複数の発端ノード106の間の接続をセットアップするのに用いられ得る。図5は、ストリームマネジャプロキシサーバ210が、パブリッシャデバイス102(例えば、メディアサーバ)のための、複数のサブスクライバデバイス104と複数の発端ノード106との間の接続をセットアップするのにどのように用いられ得るかを、示す。図5に示すように、ストリームマネジャプロキシサーバ210は、ドメイン名(例えば、DOMAIN1.COM)と関連し得、SSLサーティフィケイトを有し得る。動作時には、サブスクライバデバイス104は、WSSを用いてストリームマネジャプロキシサーバ210へ直接接続し、サブスクライバデバイスがマルチメディアを共有することを望むパブリッシャのために発端ノード106のIPアドレスを共有する。この後、ストリームマネジャプロキシサーバ210は、提供されたIPアドレス及びWSを用いて、特定された発端ノード106と直接接続して、サーバ-サーバ接続を確立できる。そのプロセスが完了すると、(発端ノード106を経由する)ブロードキャスタデバイス102とサブスクライバデバイス104は、図5に示すように、相互にマルチメディアを直接共有し得る。又別に、直接の共有が可能で無いならば、ブロードキャスタデバイス102とサブスクライバデバイス104は、図3に関して本明細書でより詳細に説明したように、NATに亘ってマルチメディアを共有し得る。図5は、サブスクライバデバイス104と発端ノード106の利用を示すが、本発明の範囲から乖離すること無く、デバイス接続の任意の組み合わせが利用され得る。例えば、ストリームマネジャプロキシサーバ210が、サブスクライバデバイス104とパブリッシャデバイス102の間の唯一の接続であってもよいし、(例えば、図1A、1B及び2に関して説明した構造と類似する、)サブスクライバデバイス104とパブリッシャデバイス102の間の接続を促進する、発端ノード106とエッジノード108のネットワークがあってもよい。
ある実施形態では、ストリームマネジャプロキシサーバ210は、カスタムヘッダを用いてプロキシ接続に亘って、クライアントのオリジナルIPアドレスを獲得して伝達することを、促進し得る。一般に、プロキシにより、発信元のクライアントIPアドレスは、プロキシのIPアドレスにより上書きされ、ヘッダは、プロキシの背後の元クライアントについての情報の詳細を提供し得る。クライアントの元IPがサーバに転送されないならば、異なる位置から接続を区別して追跡することは困難である。固有のヘッダを利用し、ストリームマネジャプロキシサーバ210は、カスタマヘッダを用いて元クライアント情報を保存して転送することができ、これにより、ネットワークに亘るメディアサーバノードは、クライアントの元IPアドレスを知る。これは、分析の、ジオマッピングのロケーションベースの認証に対して、有益及びそれ以上である。
本発明に係る、使用のためのヘッダの例は、以下の通りである。
[数1]
{Sec-WebSocket-Key=XsuhAp80WSWenevmuVlFeQ==,X-Forwarded-For-Meta-Port=52965, X-Forwarded-For-Meta-Type=WEB, User-Agent=Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0, Sec-WebSocket-Version=13, X-Forwarded-For=192.168.1.45, X-Forwarded-For-Meta-Secure=false, Sec-WebSocket-Protocol=json}
X-Forwarded-Forブロックは、発信元のクライアントのIPアドレスのために用いられてもよい。X-Forwarded-For-Meta-Secureブロックは、クライアントセッションがセキュア接続を超えるか(否か)をリレイするのに用いられてもよい。この情報は、WebSocket接続オブジェクトを介して取得され得る。X-Forwarded-For-Meta-Portブロックは、発信元のクライアントのポートを関連付けるのに用いられてもよく、X-Forwarded-For-Meta-Typeブロックは、発信元のクライアントの接続タイプについての情報を提供するのに用いられてもよい。
ある実施形態では、ストリームマネジャプロキシサーバ210は、クラウドロードバランサソリューションにより稼働して、それを通過するネットWebRTCプロキシ接続のための容量をスケールアップする助けとなるように設計されている。当業者に理解されるように、任意のロードバランスするTCP/UDPベースのシステム、及び、アーキテクチャ(クラウド若しくは非クラウド環境)の組み合わせが、本発明の範囲から乖離すること無く、用いられ得る。動作時には、一つ以上のストリームマネジャプロキシサーバ210インスタンスは、クラウドインフラストラクチャ上で創作され得、クラウドプラットフォームにより提供されるロードバランサを用いてインスタンスをロードバランスし得る。個々のストリームマネジャプロキシサーバ210インスタンスは、メディアサーバエンドポイント(例えば、パブリッシャデバイス102若しくは発端ノード106)へのそれ自身のプロキシ接続を管理し得、プロキシするための個々のクライアントWebSocket接続(例えば、サブスクライバデバイス104若しくはエッジノード108)は、ロードバランサに亘って確立される。
図6は、ロードバランサ230がシステム100内部に実装される、例示の実装を示す。特に、図6は、ロードバランサ230を伴うシステム100の例示の実装を示し、ロードバランサ230がサブスクライバデバイス104及びパブリッシャデバイス102とどのように相互作用するかを示す。動作時には、マルチメディアデータは、ウエブブラウザクライアントWebSocket接続から受信され、ロードバランサを介してプロキシされ、続いて、意図するメディアサーバノードに到達する前にストリームマネジャプロキシサーバ210を介してプロキシされる。最初に、サブスクライバデバイス104上のクライアントは、消費プロキシサーバに対する(例えば、ウエブブラウザを経由するアンセキュアメディアサーバへの接続に対する)リクエストを提出する。クライアントにより提出される個々のプロキシリクエストに対して、ロードバランサ230は、それらの各々に対する、現存のトラフィック/ネットワークステータスに基づいて、使用すべき異なるストリームマネジャプロキシサーバ210インスタンスを選択し得る。その後、クライアントは、ターゲットのパブリッシャデバイス104に対するIPアドレスを提供することにより、ストリームマネジャプロキシサーバ210により提供されるプロキシサービスへ接続し、(例えば、図2~図5に関して説明したような、)ICEのネゴシエート及び信号伝達プロセスを開始する。ICE情報を受信した後、相互の間の接続をセットアップし、直接に、若しくは必要ならばNATを用いて、メディア転送を初期化する。メディア転送の間に何らかのデータ転送が必要とされれば、ストリームマネジャプロキシサーバ210により提供される、確立されたプロキシブリッジに亘って、データが流れる。
ある実施形態では、ストリームマネジャプロキシサーバ210は、生きていることを保証するためにクライアント接続を継続的にピングすることにより、ロードバランサがWebSocket接続を閉じることを防ぎ続ける、特別の「ピンガー」メカニズムを用いる。更に、ロードバランサ230を用いる際には、転送は二度プロキシされる。特に、転送は、ロードバランサ230を通過する際最初にプロキシされ、ストリームマネジャプロキシサーバ210を通過する際二度目にプロキシされる。転送のプロトコルはリアルタイムであるから、データが二つのサーバを通過しているときでも、遅延は無い。
任意の適切なコンピューティングデバイスが、本明細書に記載の、(例えば、パブリッシャデバイス102、サブスクライバデバイス104、発端ノード106、エッジノード108、ストリームマネジャプロキシサーバ210等を介して)コンピューティングデバイスを、及び、方法/機能を、実装するのに用いられ得、更に、当業者に理解されるように、一般的コンピューティングデバイス上でソフトウエアを単に実行することよりもより有意に、ハードウエア、ソフトウエア、及びファームウエアを介して、本明細書に記載の操作及び特徴を実行するための特定のシステムに、変換され得る。そのようなコンピューティングデバイス700の一つの例示は、図7に示される。コンピューティングデバイス700は、適切なコンピューティング環境の例示に過ぎず、本発明の範囲を限定するものでは無い。図7に示す「コンピューティングデバイス」は、当業者に理解されるように、「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」、「モバイルデバイス」、「タブレットコンピュータ」、若しくは他のコンピューティングデバイスを、含む。コンピューティングデバイス700が例示の目的で示されているとしても、本発明の実施形態は、本発明の単独の実施形態を実装する様々なやり方についての任意の数にて、任意の数のコンピューティングデバイス700を利用し得る。従って、当業者に理解されるように、本発明の実施形態は単独のコンピューティングデバイス700に限定されるものでは無く、例のコンピューティングデバイス700の実装若しくは構成についての、単独のタイプに限定されるものでも無い。
コンピューティングデバイス700は、以下の例示のコンポーネントの一つ以上のものに直接的に若しくは間接的に結合し得るバス710、メモリ712、一つ以上のプロセッサ714、一つ以上のプレゼンテーションコンポーネント716、インプット/アウトプットポート718、インプット/アウトプットコンポーネント720、及び電源724を、含み得る。当業者であれば理解し得るが、バス710は、アドレスバス、データバス、若しくはそれらの任意の組み合わせ等の、一つ以上のバスを含み得る。更に、当業者であれば理解し得るが、意図するアプリケーション、及び、特定の実施形態の使用に依存して、これらのコンポーネントの数倍が単独のデバイスにより実装され得る。同様に、ある例では、単独のコンポーネントが多数のデバイスにより実装され得る。よって、図7は、本発明の一つ以上の実施形態を実装するのに用いられ得る例のコンピューティングデバイスの例示に過ぎず、本発明を限定するものでは無い。
コンピューティングデバイス700は、種々のコンピュータ読み取り可能媒体を含み得、若しくは、それらと相互作用する。例えば、コンピュータ読み取り可能媒体は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、電気的消却プログラム可能型読取専用メモリ(EEPROM)、フラッシュメモリ若しくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)若しくは他の光学若しくはホログラフィック媒体、磁気カセット、磁気テープ、磁気ディスク記憶若しくは他の磁気記憶デバイスを含むことができ、それらは、情報をエンコードするのに用いられ得、コンピューティングデバイス700によりアクセスされ得る。
メモリ712は、揮発性及び/又は不揮発性メモリの形式のコンピュータ記憶媒体を含み得る。メモリ712は、リムーバブルでも、非リムーバブルでも、それらの任意の組み合わせでもよい。例示のハードウエアデバイスは、ハードドライブ、ソリッドステートメモリ、光学ディスクドライブなどの、デバイスである。コンピューティングデバイス700は、メモリ712、種々のI/Oコンポーネント720等の、コンポーネントからデータを読み出す一つ以上のプロセッサを含み得る。プレゼンテーションコンポーネント716は、ユーザや他のデバイスにデータ表示を示す。例示のプレゼンテーションコンポーネントは、ディスプレイデバイス、スピーカ、プリントコンポーネント、振動コンポーネント等を、含む。
I/Oポート718により、コンピューティングデバイス700は、I/Oコンポーネント720等の、他のデバイスと論理的に結合することができる。I/Oコンポーネント720の例は、マイクロホン、ジョイスティック、記録装置、ゲームパッド、サテライトディッシュ、プリンタ、ワイヤレスデバイス、ネットワークデバイス等を、含む。
本明細書で利用されるように、用語「含む(comprise)」及び「含むこと(comprising)」は、排他的では無く、包括的であると解釈されることを意図する。本明細書で利用されるように、用語「例示(exemplary)」、「例(example)」及び「事例的(illustrative)」は、「例、事例若しくは実例として機能すること」を意味することを意図し、他の構成に関連する好適な若しくは利点のある構成を示すものとして、若しくは示さないものとして、解釈されるべきではない。本明細書で利用されるように、用語「約(about)」、「およそ(generally)」及び「概略(approximately)」は、特性、パラメータ、サイズ、及び寸法における変数などの、客観値若しくは主観値の範囲の上限内及び下限内に存在し得る変数をカバーすることを意図する。一つの非限定的な例では、用語「約(about)」、「およそ(generally)」及び「概略(approximately)」は、丁度、若しくは+10%未満、若しくは-10%未満を、意味する。一つの非限定な例では、用語「約(about)」、「およそ(generally)」及び「概略(approximately)」は、一人の、含まれるべき関連分野の当業者により、十分に近いと考えられることを意味する。本明細書で利用されるように、用語「実質的に(substantively)」は、当業者に理解されるように、行動、特徴、特性、状態、構造、項目、若しくは結果の、完全な、若しくはほぼ完全な範囲若しくは程度を示す。例えば、「実質的に」円形である物は、その物が、数学的に判断可能な限度まで完全な円であるか、当業者に認識される程若しくは理解される程ほぼ円であるか、のいずれかであることを、意味する。絶対的完全性からの偏差の、正確な許容可能な程度は、幾つかの例では、具体的な内容に依存し得る。しかしながら、一般的に、完全性の近似は、あたかも絶対的な且つ全体的な完全性が達成される若しくは獲得されるような、同様の全般的な結果を有するべきものである。当業者に理解されるように、行動、特徴、特性、状態、項目、若しくは結果についての完全性の欠如又は完全性の欠如の近傍に言及する、否定的な意味合いで利用される際に、「実質的に」の使用は等しく適用可能である。
前述の記載に接すれば、当業者には本発明に係る多数の修正や代替の実施形態が明らかである。従って、本明細書の記載は、例示としてのみ解釈されるべきものであり、当業者に本発明を実施するためのベストモードを教示するためのものである。本発明の精神から乖離すること無く、詳細な構成は実質的に変更可能であり、特許請求の範囲の内部に在る全ての修正の排他的な使用が用意されている。本明細書では、明確かつ簡潔な記載の記述を可能にするように実施形態を記述してきたが、複数の実施形態は本発明から離れることなく様々に組み合わされたり分離されたり、され得ることが、意図されており、また認められるものである。特許請求の範囲及び適用される法規により要求される範囲にのみ、本発明は限定されることが、意図されている。
当然ながら、請求項は、本明細書に記載の発明の全ての、包括的な及び具体的な特徴を、更には、言葉の問題として、行間に存在すると言及され得る、発明の範囲の全ての記述を、カバーするべきものである。

Claims (26)

  1. セキュア転送プロトコルを使用する、ブロードキャスタデバイスからサブスクライバデバイスにマルチメディアデータをストリーミングする方法であって、前記マルチメディアデータは、ネットワークによって接続された1つ以上の発端デバイスと1つ以上のエッジデバイスとを含む、デバイスのネットワークを使用してストリーミングされ、前記発端デバイス及び前記エッジデバイスは、前記ネットワークに亘ってのセキュア転送プロトコルの確立をサポートするものでは無い、方法において、
    プロキシサービスにおいてセキュア転送プロトコルを介して、複数のサブスクライバデバイスのうちの一つのサブスクライバデバイスから接続リクエストを受信するステップであって、該接続リクエストは、ブロードキャスタデバイスからのマルチメディアデータのストリームを示すデータを含み、該ブロードキャスタデバイスは、該1つ以上の発端デバイスのうちの一つの発端デバイスとの接続を有し、前記ネットワークは、前記発端デバイスと、前記1つ以上のエッジデバイスのうち前記サブスクライバデバイスに割り当てられたエッジデバイスとを接続して、前記発端デバイスおよび前記ネットワークを介して前記ブロードキャスタデバイスから受信された、前記示されたストリームを前記サブスクライバデバイスに配信し、前記発端およびエッジデバイスは前記ネットワークに亘っての前記セキュア転送プロトコルの確立をサポートするものでは無い、受信するステップと 、
    プロキシサービスを使用して、前記サブスクライバデバイスと、前記サブスクライバデバイスに割り当てられた前記エッジデバイスとの間に、第1のブリッジを確立するステップと、
    前記サブスクライバデバイスと前記サブスクライバデバイスに割り当てられた前記エッジデバイスとの間の第1の接続をネゴシエートするべく、前記第1のブリッジに亘ってプロキシチャネルを利用するステップであって、前記示されたストリームをストリーミングするための前記セキュア転送プロトコルの信号伝達およびネゴシエート情報が、前記第1の接続に亘って送信されるようにする、利用するステップと、
    前記ブロードキャスタデバイスから前記発端デバイスへ前記示されたストリームをストリーミングすることと、前記セキュア転送プロトコルを使用しない前記ネットワークに亘っての前記発端デバイスから前記サブスクライバデバイスに割り当てられた前記エッジデバイスへ前記示されたストリームをストリーミングすることと、前記第1の接続に亘って前記サブスクライバデバイスと前記エッジデバイスとの間で前記示されたストリームをストリーミングするための、前記セキュア転送プロトコルのデータを交換しつつ、前記エッジデバイスから前記サブスクライバデバイスへ前記示されたストリームをストリーミングすることとを、制御することにより、前記ブロードキャスタデバイスから前記サブスクライバデバイスへの、マルチメディアデータの前記示されたストリームのストリーミングを制御するステップと
    を含む、
    方法。
  2. ドメイン名とセキュアソケットレイヤ(SSL)サーティフィケイトを伴って構成されるストリームマネジャサーバ上で、プロキシサービスが実装されている、請求項1に記載の方法。
  3. ストリームマネジャサーバはクラウドインフラストラクチャ上に実装されている、請求項2に記載の方法。
  4. 前記第1のブリッジを確立するステップは、相互作用接続確立(ICE)技術を用いてサブスクライバデバイスとエッジデバイスとの間でセッションセットアップ情報をネゴシエートするステップを含む、請求項1に記載の方法。
  5. 第1のブリッジは、
    WebSocketセキュア(WSS)接続若しくはハイパーテキストトランスファプロトコルセキュア(HTTPS)接続を用いる、サブスクライバデバイスとプロキシサービスとの間の接続と、及び、
    WebSocket(WS)アンセキュア接続若しくはハイパーテキストトランスファプロトコ(HTTP)接続を用いる、エッジデバイスとプロキシサービスとの間の接続と
    を含む、請求項1に記載の方法。
  6. ブリッジにより、セキュアデータがセキュアサブスクライバデバイスからアンセキュアエッジデバイスへ流れることが可能になる、請求項1に記載の方法。
  7. サブスクライバデバイスは、ウエブブラウザクライアントからプロキシサービスへ接続する、請求項1に記載の方法。
  8. 発端デバイス及びエッジデバイスは、ドメインもSSLサーティフィケイトも伴わないメディアサーバである、請求項1に記載の方法。
  9. プロキシサービスは、ピンガー機構を用いて、サブスクライバデバイスのマルチメディアデータのストリーミングの間に、第1のブリッジをオープンのまま維持するように構成されている、請求項1に記載の方法。
  10. 更に、ロードバランサにより、サブスクライバデバイスとパブリッシャデバイスとの間の負荷をバランスするステップを含む、請求項1に記載の方法。
  11. プロキシサービスが、サブスクライバデバイスとサブスクライバに割り当てられたエッジデバイスとの間で、WebRTC情報交換を提供する、請求項1に記載の方法。
  12. 更に、サブスクライバデバイスとエッジデバイスのための元のクライアント情報を追跡するためにカスタムヘッダを作成するステップを含む、請求項1に記載の方法。
  13. セキュア転送プロトコルを使用する、ブロードキャスタデバイスからサブスクライバデバイスにマルチメディアデータをストリーミングするシステムであって、前記マルチメディアデータは、ネットワークによって接続された1つ以上の発端デバイスと1つ以上のエッジデバイスとを含む、デバイスのネットワークを使用してストリーミングされ、前記発端デバイス及び前記エッジデバイスは、前記ネットワークに亘ってのセキュア転送プロトコルの確立をサポートするものでは無い、システムにおいて、
    前記システムは、
    セキュア転送プロトコルを使用して複数のサブスクライバデバイスと電子通信するプロキシサービスと、
    ネットワークにより接続された、1つ以上の発端デバイスと1つ以上のエッジデバイスとを含む、デバイスのネットワークであって、前記発端デバイス及び前記エッジデバイスは、前記ネットワークに亘っての前記セキュア転送プロトコルの確立をサポートするものでは無い、デバイスのネットワークと
    を含み、
    ブロードキャスタデバイスは、前記1つ以上の発端デバイスのうちの一つの発端デバイスとの接続を有し、
    プロキシサービスは、
    前記複数のサブスクライバデバイスのうちの一つのサブスクライバデバイスからの接続リクエストであって、前記ブロードキャスタデバイスからのマルチメディアデータのストリームを示すデータを含む、接続リクエストを、前記セキュア転送プロトコルに亘って、受信することに応答して、
    プロキシサービスを介して、前記サブスクライバデバイスと、(前記サブスクライバデバイスに)割り当てられた前記1つ以上のエッジデバイスのうちの一つのエッジデバイスとの間に、第1のブリッジを確立して、前記発端デバイス及び前記ネットワークを介して前記ブロードキャスタデバイスから受信した、前記示されたストリームを、前記サブスクライバデバイスに配信し、
    前記示されたストリームをストリーミングするための前記セキュア転送プロトコルの信号伝達およびネゴシエート情報が、前記第1の接続に亘って送信されるように、前記サブスクライバデバイスと前記サブスクライバデバイスに割り当てられた前記エッジデバイスとの間の第1の接続をネゴシエートするべく、前記第1のブリッジに亘ってプロキシチャネルを利用する
    ように構成されており、
    前記ブロードキャスタデバイスは、前記発端デバイスへ前記示されたストリームをストリーミングし、
    前記発端デバイスは、前記セキュア転送プロトコルを使用しない前記ネットワークに亘っての、前記サブスクライバデバイスに割り当てられた前記エッジデバイスへマルチメディアデータの前記示されたストリームをストリーミングし、
    前記第1の接続に亘って前記サブスクライバデバイスと前記エッジデバイスが前記示されたストリームをストリーミングするための前記セキュア転送プロトコルのデータを交換する間に、前記エッジデバイスは、前記サブスクライバデバイスへマルチメディアデータの前記示されたストリームをストリーミングする、
    システム。
  14. ドメイン名とセキュアソケットレイヤ(SSL)サーティフィケイトを伴って構成されるストリームマネジャサーバ上で、プロキシサービスが実装されている、請求項13に記載のシステム。
  15. ストリームマネジャサーバはクラウドインフラストラクチャ上に実装されている、請求項14に記載のシステム。
  16. 前記第1のブリッジを確立することは、相互作用接続確立(ICE)技術を用いてサブスクライバデバイスとエッジデバイスとの間でセッションセットアップ情報をネゴシエートすることを含む、請求項13に記載のシステム。
  17. 第1のブリッジは、
    WebSocketセキュア(WSS)接続若しくはハイパーテキストトランスファプロトコルセキュア(HTTPS)接続を用いる、サブスクライバデバイスとプロキシサービスとの間の接続と、及び、
    WebSocket(WS)アンセキュア接続若しくはハイパーテキストトランスファプロトコル(HTTP)接続を用いる、エッジデバイスとプロキシサービスとの間の接続と
    を含む、請求項13に記載のシステム。
  18. ブリッジにより、セキュアデータがセキュアサブスクライバデバイスからアンセキュアエッジデバイスへ流れることが可能になる、請求項13に記載のシステム。
  19. サブスクライバデバイスは、ウエブブラウザクライアントからプロキシサービスへ接続する、請求項13に記載のシステム。
  20. エッジデバイスは、ドメインもSSLサーティフィケイトも伴わないメディアサーバである、請求項13に記載のシステム。
  21. プロキシサービスは、ピンガー機構を用いて、サブスクライバデバイスのマルチメディアデータのストリーミングの間に、第1のブリッジをオープンのまま維持するように構成されている、請求項13に記載のシステム。
  22. 更に、サブスクライバデバイスとエッジデバイスとの間の負荷をバランスするためのロードバランスを含む、請求項13に記載のシステム。
  23. プロキシサービスが、サブスクライバデバイスとエッジデバイスとの間で、WebRTC情報交換を提供する、請求項13に記載のシステム。
  24. に、サブスクライバデバイスとエッジデバイスのための元のクライアント情報を追跡するためにカスタムヘッダを作成するステップ
    を、含む、請求項13に記載のシステム。
  25. プロキシサービスが、ブロードキャスタデバイスと、前記1つ以上の発端デバイスのうちの一つの発端デバイスとの間の、第2のブリッジを、プロキシサービスを介して更に確立するステップと
    プロキシサービスが、ブロードキャスタデバイスと発端デバイスとの間の接続をネゴシエートするべく、第2のブリッジに亘るプロキシチャネルを更に利用するステップと
    を、更に、含む、請求項1に記載の方法。
  26. ブロードキャスタデバイスと、前記1つ以上の発端デバイスのうちの一つの発端デバイスとの間の、第2のブリッジを、プロキシサービスを介して更に確立するプロキシサービスと、
    ブロードキャスタデバイスと発端デバイスとの間の接続をネゴシエートするべく、第2のブリッジに亘るプロキシチャネルを更に利用するプロキシサービスと
    を、更に、含む、請求項13に記載のシステム。
JP2020524730A 2017-07-21 2018-07-20 プロキシを用いてセキュアデバイスとアンセキュアデバイスとの間を通信するシステム及び方法 Active JP7125788B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762535263P 2017-07-21 2017-07-21
US62/535,263 2017-07-21
PCT/US2018/043000 WO2019018716A1 (en) 2017-07-21 2018-07-20 SYSTEM AND METHOD FOR USING PROXY TO COMMUNICATE BETWEEN SECURE AND UNSECURED DEVICES

Publications (2)

Publication Number Publication Date
JP2020528189A JP2020528189A (ja) 2020-09-17
JP7125788B2 true JP7125788B2 (ja) 2022-08-25

Family

ID=65014296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020524730A Active JP7125788B2 (ja) 2017-07-21 2018-07-20 プロキシを用いてセキュアデバイスとアンセキュアデバイスとの間を通信するシステム及び方法

Country Status (4)

Country Link
US (2) US11425113B2 (ja)
EP (1) EP3656083A4 (ja)
JP (1) JP7125788B2 (ja)
WO (1) WO2019018716A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144441B1 (en) 2016-06-30 2021-10-12 Headspin, Inc. System for assisting in assessment and mitigation of data network operations
US11159416B1 (en) 2016-10-18 2021-10-26 Headspin, Inc. Systems and methods of testing virtual private network communications using remote connectivity
US11425113B2 (en) 2017-07-21 2022-08-23 Infrared5, Inc. System and method for using a proxy to communicate between secure and unsecure devices
US11019129B1 (en) 2017-08-11 2021-05-25 Headspin, Inc. System for controlling transfer of data to a connected device
US11438638B2 (en) * 2019-06-27 2022-09-06 Infrared5, Inc. Systems and methods for extraterrestrial streaming
US11386663B1 (en) 2020-08-28 2022-07-12 Headspin, Inc. Reference-free system for determining quality of video data
US11778011B2 (en) 2020-09-18 2023-10-03 Infrared5, Inc. Live streaming architecture with server-side stream mixing
US20220353335A1 (en) * 2021-04-28 2022-11-03 Microsoft Technology Licensing, Llc Session establishment in remote desktop infrastructure environments
US20220360595A1 (en) * 2021-05-10 2022-11-10 Webgap Inc System and method for secure web browsing
US20220385711A1 (en) * 2021-05-28 2022-12-01 Flir Unmanned Aerial Systems Ulc Method and system for text search capability of live or recorded video content streamed over a distributed communication network
US20220414676A1 (en) * 2021-06-28 2022-12-29 Forcepoint, LLC Web Endpoint Device Having Automatic Switching Between Proxied and Non-Proxied Communication Modes Based on Communication Security Policies
CN113542274A (zh) * 2021-07-15 2021-10-22 南京中孚信息技术有限公司 一种跨网域数据传输方法、装置、服务器及存储介质
CN113824689B (zh) * 2021-08-24 2022-11-29 北京百度网讯科技有限公司 边缘计算网络、数据传输方法、装置、设备和存储介质
US11914686B2 (en) 2021-10-15 2024-02-27 Pure Storage, Inc. Storage node security statement management in a distributed storage cluster
JP2023081226A (ja) 2021-11-30 2023-06-09 株式会社リコー 通信管理装置、通信システム、通信管理方法、及びプログラム
US11470175B1 (en) * 2022-02-09 2022-10-11 coretech It, UAB Early positive communication response in a proxy infrastructure
US12058755B1 (en) * 2024-03-25 2024-08-06 Relay, Inc. Techniques for connecting a disconnected wireless device to a cloud-based communications server via a proxy device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012100206A (ja) 2010-11-05 2012-05-24 Nec Corp 暗号通信中継システム、暗号通信中継方法および暗号通信中継用プログラム
JP2016051389A (ja) 2014-09-01 2016-04-11 日本電信電話株式会社 コンテンツ配信サービスを実現するためのシステム、方法、およびプログラム
US20160197886A1 (en) 2015-01-07 2016-07-07 Anchorfree Inc. Secure personal server system and method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067545A (en) 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US7072982B2 (en) * 2000-11-22 2006-07-04 Microsoft Corporation Universal naming scheme for peer to peer resources
US6996841B2 (en) * 2001-04-19 2006-02-07 Microsoft Corporation Negotiating secure connections through a proxy server
US20050273849A1 (en) 2004-03-11 2005-12-08 Aep Networks Network access using secure tunnel
US8185660B2 (en) 2009-05-12 2012-05-22 Cisco Technology, Inc. Inter-working between network address type (ANAT) endpoints and interactive connectivity establishment (ICE) endpoints
US10410222B2 (en) * 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
US8543805B2 (en) * 2010-04-21 2013-09-24 Citrix Systems, Inc. Systems and methods for split proxying of SSL via WAN appliances
US20140032733A1 (en) * 2011-10-11 2014-01-30 Citrix Systems, Inc. Policy-Based Application Management
CN105144768B (zh) 2013-04-26 2019-05-21 英特尔Ip公司 频谱共享情境中的共享频谱重新分配
US20150082021A1 (en) * 2013-09-13 2015-03-19 Qualcomm Incorporated Mobile proxy for webrtc interoperability
US9628543B2 (en) * 2013-09-27 2017-04-18 Samsung Electronics Co., Ltd. Initially establishing and periodically prefetching digital content
US9578112B2 (en) * 2014-04-30 2017-02-21 Jive Communications, Inc. Reliability of a connection during a communication session on a network device
WO2016065080A1 (en) * 2014-10-21 2016-04-28 Twilio, Inc. System and method for providing a miro-services communication platform
US11425113B2 (en) 2017-07-21 2022-08-23 Infrared5, Inc. System and method for using a proxy to communicate between secure and unsecure devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012100206A (ja) 2010-11-05 2012-05-24 Nec Corp 暗号通信中継システム、暗号通信中継方法および暗号通信中継用プログラム
JP2016051389A (ja) 2014-09-01 2016-04-11 日本電信電話株式会社 コンテンツ配信サービスを実現するためのシステム、方法、およびプログラム
US20160197886A1 (en) 2015-01-07 2016-07-07 Anchorfree Inc. Secure personal server system and method

Also Published As

Publication number Publication date
EP3656083A1 (en) 2020-05-27
WO2019018716A1 (en) 2019-01-24
EP3656083A4 (en) 2020-12-09
US11425113B2 (en) 2022-08-23
US20230061245A1 (en) 2023-03-02
JP2020528189A (ja) 2020-09-17
US20190028465A1 (en) 2019-01-24

Similar Documents

Publication Publication Date Title
JP7125788B2 (ja) プロキシを用いてセキュアデバイスとアンセキュアデバイスとの間を通信するシステム及び方法
CN110301126B (zh) 会议服务器
US10341427B2 (en) Forwarding policies on a virtual service network
US9699237B2 (en) Managed media relay selection for real-time communications
EP2112788B1 (en) A method and node for p2p content sharing
FR3067550A1 (fr) Procede de communication quic via des chemins multiples
US11716368B2 (en) Multicast overlay network for delivery of real-time video
US11601358B2 (en) Cross datacenter communication using a mesh gateway
EP3201783A1 (en) Https request enrichment
TW201002018A (en) Method for predicting port number of NAT apparatus based on two STUN server inquiry results
US8443057B1 (en) System, method, and/or apparatus for establishing peer-to-peer communication
US10735476B1 (en) Connection service with network routing
US10594746B1 (en) Connection service with network routing
JP5726302B2 (ja) トポロジサーバを用いた、通信アーキテクチャにわたって分散されたノードのネットワークに対する秘密または保護されたアクセス
CN116582590A (zh) 数据传输方法及装置
CN115865878A (zh) 一种媒体流的传输控制方法、装置、存储介质和电子设备
Bruneo et al. A Cloud-Based Overlay Networking for the Internet of Things: Quantitative Evaluation
Bruneo et al. A Cloud-Based Overlay Networking for the Internet of Things: Quantitative
Vílchez Blanco Real-Time Communication Network Architecture Design for Organizations with WebRTC

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220711

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220805

R150 Certificate of patent or registration of utility model

Ref document number: 7125788

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150