本発明は、任意のネットワーク機能性クライアント又はサーバを標準的なHTML5アプリケーションにおいて有効にするためのシステム及びデバイスに関する。
今日のウェブブラウザは、大部分がHTTPクライアントエンティティであり、全ての通信がブラウザから開始され、ウェブサーバをブラウザにおいて実行させるオプションは存在しない。さらに、付加的なプラグインをインストールすることなく、ブラウザにおいて実行されるHTML5アプリケーションにおいてネットワーククライアント(HTTPクライアント及びウェブソケットクライアントを除く)として動作するオプションは存在しない。通信をウェブブラウザによって開始する場合、ネイティブアプリケーション又は特殊なプラグインは、ブラウザごとに、及びオペレーティングシステム(operating system,OS)ごとに、及び、時には、サービスタイプごとに、インストールされなければならない。そのようなインストールは、取り扱いが複雑である。なぜなら、各オペレーティングシステム、各ブラウザ及び各サービスタイプは、個々のインストール手続きを必要とするためである。
本発明の課題は、HTML5アプリケーションの機能性を拡張するための技法を提供することである。
この課題は、独立項の特徴によって達成される。さらなる実装形式は、従属項、説明及び図面から明らかである。
本発明を詳細に説明するために、下記の用語、略語及び表記が使用されるであろう。
ウェブソケット:英語では、web socket又はWebSocketであり、ウェブソケットは、単一のTCP接続上で全二重通信チャネルを提供するウェブ技術である。WebSocketプロトコルは、IETFによって、RFC6455として2011年に標準化され、ウェブIDLにおけるWebSocket APIは、ワールドワイドウェブコンソーシアム(World Wide Web Consortium,W3C)によって標準化されつつある。
HTTP:英語では、Hypertext Transfer Protocolであり、ハイパーテキスト転送プロトコルは、分散型、協調的なハイパーメディア情報システムのためのアプリケーションプロトコルである。HTTPは、ワールドワイドウェブ(World Wide Web,WWW)のためのデータ通信の基盤である。
HTML5:英語では、Hypertext Transfer Protocol version 5であり、ハイパーテキスト転送プロトコルバージョン5は、ワールドワイドウェブのためのコンテンツを構築及び提示するためのマークアップ言語であり、インターネットの中核技術である。HTML5は、HTMLの第5回目の改定であり、W3Cの勧告候補である。HTML5の中核目的は、HTML5を人間によって簡単に理解可能であり、ウェブブラウザ、パーサ等などのコンピュータ及びデバイスによって一貫して理解されるように維持しつつ、言語を最新マルチメディアのためのサポートと共に改善することであった。HTML5によってサポートされるプロトコルの例は、HTTPクライアント、WebSocket、webRTCである。
NSプロトコル:英語では、network server protocolであり、ネットワークサーバプロトコルは、HTML5によってサポートされないプロトコルである。
WebRTC:英語では、Web Real−Time Communicationであり、ウェブリアルタイム通信は、ワールドワイドウェブコンソーシアム(World Wide Web Consortium,W3C)によって、ブラウザ対ブラウザアプリケーションを、プラグインなしで、音声発呼、ビデオチャット及びポイントツーポイント(point−to−point,P2P)ファイル共有について有効にするために草案されつつあるAPI定義である。
OS:英語では、operating systemであり、オペレーティングシステムは、ハードウェアリソースを管理し、コンピュータプログラムについて共通のサービスを提供するソフトウェアの集まりである。オペレーティングシステムは、システムソフトの必須の構成要素である。アプリケーションプログラムは、通常は、機能するためにオペレーティングシステムを必要とする。
SOAP:英語では、Simple Object Access Protocolであり、シンプルオブジェクトアクセスプロトコルは、コンピュータネットワークにおけるウェブサービスの実装において構造化情報を交換するためのプロトコル仕様である。SOAPは、そのメッセージフォーマットについてXML情報セットに依存し、メッセージネゴシエーション及び送信について、通常は、他のアプリケーション層プロトコル、特に注目すべきは、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol,HTTP)又はシンプルメール転送プロトコル(Simple Mail Transfer Protocol,SMTP)に依存する。
REST:英語では、Representational State Transferであり、レプレゼンテーショナルステート転送は、ワールドワイドウェブなどの分散システムのためのソフトウェアアーキテクチャの1つのスタイルである。RESTは、有力なウェブAPI設計モデルとして出現した。
CGI:英語では、Common Gateway Interfaceであり、共通ゲートウェイインターフェースは、ウェブサーバソフトウェアがウェブコンテンツの生成を実行可能なファイルへ委任するための標準的な方法である。そのようなファイルは、CGIスクリプト又は単にCGIとして知られている。これらは、通常は、スクリプト言語で書かれる。
DLNA:英語では、Digital Living Network Allianceである。デジタルリビングネットワークアライアンスは、デジタルメディアの共有をマルチメディアデバイス間で可能にするための互換性ガイドラインを定義する責任を負う非営利の協調的な業界組織である。こうしたガイドラインは、標準を使用する制限された手法のセットを特定して、互換性を達成する。互換性ガイドラインは、音楽、写真及びビデオなどのデジタルメディアの共有を、コンピュータ、TV、プリンタ、カメラ、携帯電話、及び他のマルチメディアデバイスなどの消費者デバイス間で可能にする。
DMR:英語では、Digital Media Receiverであり、デジタルメディア受信機は、メディア拡張機、メディアストリーマ(media streamer)、デジタルメディアハブ、又はデジタルメディアアダプタ(digital media adapter,DMA)とも一般的に称され、ホームネットワークへ接続して、デジタルメディアファイル(音楽、画像、若しくはビデオなど)をパーソナルコンピュータ又は他のネットワーク化されたメディアサーバから取得し、それらをホームシアターシステム又はTV上で再生することができる家庭用エンターテインメントデバイスである。DLNA組織は、これらのデバイスをデジタルメディアレンダラ(digital media renderer,DMR)と称する。
SSDP:英語では、Simple Service Discovery Protocolであり、シンプルサービスディスカバリプロトコルは、ネットワークサービス及び存在情報のアドバタイズメント及び検出のためのインターネットプロトコルスイートに基づくネットワークプロトコルである。SSDPは、これを、動的ホスト構成プロトコル(Dynamic Host Configuration Protocol,DHCP)又はドメイン名システム(Domain Name System,DNS)などのサーバベースの構成メカニズムの支援なしに、また、ネットワークホストの特殊な静的構成なしに、達成する。SSDPは、ユニバーサルプラグアンドプレイの検出プロトコルの基礎であり、住宅環境又は小規模事業所環境における使用を意図される。SSDPは、UPnPプロトコルスタック内に組み込まれた。
GENA:英語では、General Event Notification Architectureである。一般イベント通知アーキテクチャは、通知をHTTPリソース間で送信するHTTP通知アーキテクチャを定義する。HTTPリソースは、通知、例えば、配信リスト、友人リスト、印刷ジョブ等を送信又は受信することを必要とし得る任意のオブジェクトであり得る。GENA Base Client to Arbiterは、TCP/IP及び管理スコープの信頼性を欠くマルチキャストUDP上でHTTPを使用して通知を送信及び受信するための能力を提供する。
IGMP:英語では、Internet Group Management Protocolであり、インターネットグループ管理プロトコルは、IPネットワーク上のホスト及び隣接するルータによって使用されて、マルチキャストグループメンバーシップを確立する通信プロトコルである。IGMPは、IPマルチキャストの不可欠な部分である。IGMPは、オンラインストリーミングビデオ及びオンラインストリーミングゲームなどの一対多のネットワーキングアプリケーションのために使用され得、これらのタイプのアプリケーションをサポートする場合に、リソースのより効率的な使用を可能にする。
IPTV:英語では、Internet Protocol Televisionであり、インターネットプロトコルテレビジョンは、テレビジョンサービスが、従来の地上波信号、衛星信号、及びケーブルテレビジョンフォーマットを通じて配信される代わりに、インターネットプロトコルスイートを使用してインターネットなどのパケット交換ネットワーク上で配信されるシステムである。
WSDL:英語では、Web Services Description Languageであり、ウェブサービス記述言語は、ウェブサービスによって提供される機能性を記述するために使用されるXMLベースのインターフェース記述言語である。ウェブサービスのWSDL記述(WSDLファイルとも称される)は、どのようにサービスが呼び出され得るか、どのパラメータをサービスが期待するか、及びどのデータ構造をサービスが返すかの機械読取可能な記述を提供する。
XML:英語では、Extensible Markup Languageであり、拡張可能マークアップ言語は、人間が読むことができ、且つ、機械読取可能なフォーマットで文書を符号化するための規則のセットを定義する。
GUI:英語では、Graphical User Interfaceであり、グラフィカルユーザインターフェースは、ユーザが、テキストコマンドよりもむしろ画像を使用して電子デバイスと相互作用することを可能にするユーザインターフェースの一種である。GUIは、コンピュータ、MP3プレーヤ、ポータブルメディアプレーヤ又はゲームデバイスなどのハンドヘルドデバイス、家庭用器具、オフィス、及び産業機器において使用され得る。
API:英語では、Application Programming Interfaceであり、アプリケーションプログラミングインターフェースは、どのように幾つかのソフトウェア構成要素が互いに相互作用すべきかの仕様である。実際には、大抵の場合において、APIは、ルーチン、データ構造、オブジェクトクラス、及び変数についての仕様を通常は含むライブラリである。
スクリプト言語:英語では、scripting language又はscript languageであり、人間のオペレータによって1つずつ二者択一的に実行され得るタスクの実行を解釈及び自動化し得る特殊なランタイム環境について書かれたスクリプト、プログラムを書くことをサポートするプログラミング言語である。スクリプトを通じて自動化され得る環境は、ソフトウェアアプリケーション、ウェブブラウザ内のウェブページ、オペレーティングシステム(OS)のシェル、及び埋め込みシステム用の言語などの幾つかの汎用のドメイン特化型言語を含む。
JavaScript(商標):英語では、JavaScript(JS)であり、インタプリタ型コンピュータプログラミング言語である。JavaScriptは、本来は、クライアント側のスクリプトがユーザと相互作用し、ブラウザを制御し、非同期的に通信し、及び表示された文書のコンテンツを変更し得るように、ウェブブラウザの一部として実装された。しかしながら、つい最近では、JavaScriptは、ゲーム開発とデスクトップアプリケーションの生成との双方において一般的となった。
Bonjour:Bonjourは、アップルのZero構成ネットワーキングの実装であり、サービス検出、アドレス割り当て、及びホスト名解決を含む、技術の一群である。Bonjourは、プリンタなどのデバイス、他のコンピュータ、及び、それらのデバイスがローカルネットワーク上でマルチキャストドメイン名システム(multicast Domain Name System,mDNS)サービスレコードを使用して提供するサービスの位置を突き止める。
AirPlay:AirPlayは、オーディオ、ビデオ、及び写真を関連するメタデータと共にデバイス間で無線ストリーミングすることを可能にする、アップル社によって開発されたプロプライエタリプロトコルスタック/スイートである。
UPnP:英語では、Universal Plug and Playであり、ユニバーサルプラグアンドプレイは、パーソナルコンピュータ、プリンタ、インターネットゲートウェイ、Wi−Fiアクセスポイント及びモバイルデバイスなどのネットワークデバイスが互いの存在をネットワーク上でシームレスに発見し、データ共有、通信、及びエンターテインメントのために機能的なネットワークサービスを確立することを許可するネットワーキングプロトコルのセットである。UPnPは、主に、企業規模のデバイスなしの住宅ネットワークを対象とする。
DMC:英語では、Digital Media Controllerであり、デジタルメディアコントローラは、DLNA認証デバイスクラスに従う。デジタルメディアコントローラは、デジタルメディアサーバ(digital media server,DMS)上でコンテンツを発見し、デジタルメディアレンダラ(digital media renderer,DMR)に対して、そのコンテンツを再生するように命令する。コンテンツは、DMCから又はDMCを通じてストリーミングしない。例は、インターネットタブレット、Wi−Fi対応のデジタルカメラ及びスマートフォンを含む。
RUIS:遠隔ユーザインターフェースサーバ、即ち、Httpサーバである。
RTSP:英語では、Real Time Streaming Protocolである。リアルタイムストリーミングプロトコルは、エンターテインメントシステム及び通信システムにおける使用のために設計されて、ストリーミングメディアサーバを制御するネットワーク制御プロトコルである。本プロトコルは、メディアセッションをエンドポイント間で確立及び制御するために使用される。メディアサーバのクライアントは、再生及び一時停止などのVCRのようなコマンドを発行して、サーバからのメディアファイルのプレイバックのリアルタイム制御を促進する。
RTMP:英語では、Real Time Messaging Protocolであり、リアルタイムメッセージングプロトコルは、オーディオ、ビデオ及びデータをインターネット上でFlashプレーヤとサーバとの間でストリーミングするためのプロトコルである。
XMPP:英語では、Extensible Messaging and Presence Protocolであり、拡張可能なメッセージング及びプレゼンスプロトコルは、XML(拡張可能マークアップ言語)に基づいたメッセージ指向ミドルウェアのための通信プロトコルである。本プロトコルは、本来は、ほぼリアルタイムのインスタントメッセージング(instant messaging,IM)、存在情報、及び連絡先メンテナンスのために開発された。拡張可能であるように設計されているため、本プロトコルは、出版購読型システム、VoIPのためのシグナリング、ビデオ、ファイル転送、ゲーム等のためにも使用されてきた。
URI:英語では、Uniform Resource Identifierであり、ユニフォームリソース識別子は、名前又はウェブリソースを識別するために使用される文字列である。そのような識別は、特定のプロトコルを使用した、ネットワーク(典型的には、ワールドワイドウェブ)上のウェブリソースの表現との相互作用を可能にする。
第1の態様によれば、HTML5アプリケーションとして実行されるネットワークエンティティ(Network Entity running as a HTML5 Application,NEHA)が提供される。NEHAは、HTTPサーバと、ネットワークエンティティ(network entity,NE)と、ミラーネットワークエンティティ(mirror network entity,MNE)とを備えるシステムであって、MNE(120)は、NEのミラーインスタンスであり、所望のネットワークプロトコルは、MNE120とNEとの間で実行されるシステムにおいて使用される。NEHAは、MNE120を要求するための第1の要求をHTTPサーバへ送信するように構成された第1の送信器1320であって、第1の要求は、所望のネットワークプロトコルを示す、第1の送信器1320と、要求されたMNE120を示す第1の応答をHTTPサーバから受信するように構成された第1の受信器1310と、第1の要求を処理し、第1の応答を生成するように構成された処理ロジック1350と、NEとMNEを通じて通信するように構成された通信ユニット1330とを備える。
NEとMNE120を通じて通信することによって、NEHAは、ブラウザごとに及びオペレーティングシステム(operating system,OS)ごとに又はNEHA上のサービスタイプごとに、ネイティブアプリケーション又は特殊なプラグインをインストールする必要なしに、所望のネットワークプロトコルを実行するNEと通信することが可能になる。NEHAの機能性は、HTML5によってサポートされない所望のネットワークプロトコルにまで拡張される。ミラーネットワークエンティティMNE120は、ミラーリングされたデバイスとも称される。
第1の態様自体に係るNEHAの第1の取り得る実装において、通信ユニット1330は、メッセージをMNE120へ送信するように構成された第2の送信器1333と、メッセージをMNE120から受信するように構成された第2の受信器1331とを備え、処理ロジック1350は、MNE120から受信されるメッセージを処理し、MNE120へ送信されるメッセージを生成するためにさらに構成される。
第1の態様の第1の実装形式に係るNEHAの第2の取り得る実装形式において、NEHAが、第1のサービスを要求するためのクライアントエンティティであり、NEが、第1のサービスを提供するサーバエンティティである場合、MNE120へ送信されるメッセージは、第1のサービスを要求するための第2の要求であり、MNE120から受信されるメッセージは、第1のサービスを提供する第2の応答である。第2の要求及び第2の応答は、所望のネットワークプロトコルにおいて定義されるメッセージであり、IGMPを例にとると、第2の要求が、マルチキャストグループについてのJoin Group Requestである場合、第2の応答は、Join Group Replyである。第2の要求が、Leave Group Requestである場合、第2の応答は、Leave Group Replyである。
そうすることによって、NEHAは、サービスを要求するためのクライアントエンティティとなること、及び、HTML5によってサポートされない任意のネットワークプロトコルについてのネットワーククライアントデバイスとして動作することが可能になる。
第1の態様の第2の実装形式に係るNEHAの第3の取り得る実装形式において、所望のネットワークプロトコルは、HTML5によってサポートされないネットワークプロトコル、特に、インターネットグループ管理プロトコル(Internet Group Management Protocol,IGMP)、インターネットプロトコルテレビジョン(Internet Protocol Television,IPTV)、グループプロトコル、及びファイル転送プロトコル(File Transfer Protocol,FTP)を含む。
NEHAは、MNE120を導入することによって、HTML5によってサポートされない任意のネットワークプロトコルクライアントとしてHTML5アプリケーションにおいて実行されることが可能になる。例えば、NEHAは、IGMPクライアントをHTML5ブラウザにおいて実行することが可能になる。
第1の態様自体の第1の実装形式に係るNEHAの第4の取り得る実装形式において、NEHAが、第2のサービスを提供するサーバエンティティであり、NEが、第2のサービスを要求するクライアントエンティティである場合、MNE120から受信されるメッセージは、第2のサービスを要求するための第3の要求であり、NME120へ送信されるメッセージは、第2のサービスを提供する第3の応答である。第2の要求/応答と同様に、第3の要求/応答も、所望のネットワークプロトコルの周知のメッセージである。
NEHAは、サービスを提供するためのサーバエンティティとなることが可能になる。
第1の態様の第4の実装形式に係るNEHAの第5の取り得る実装形式において、所望のネットワークプロトコルは、HTTP、自動検出制御ネットワークプロトコル、及びメディア自動検出制御ネットワークプロトコルを含む。
自動検出制御ネットワークプロトコルは、UPnPグループプロトコル、及びBonjourを含む。自動検出制御(UPnP、Bonjour等)機能は、MNE120を導入することによって、HTML5アプリケーションにおいて可能になる。
メディア自動検出制御ネットワークプロトコルは、メディアUPnPグループプロトコル、AirPlay及びDLNAプロトコルを含む。UPnPメディアレンダラ及びDLNAメディアプレーヤDMR機能は、MNE120を導入することによって、HTML5アプリケーションにおいて有効になる。
所望のネットワークプロトコルが、自動検出制御ネットワークプロトコルである場合、NEHAは、自動検出制御ネットワークデバイスである。所望のネットワークプロトコルが、メディア自動検出制御ネットワークプロトコルである場合、NEHAは、メディア自動検出制御ネットワークレンダラデバイスである。
第1の態様自体に係るNEHAの第6の取り得る実装形式又は第1の態様の先行する実装形式のいずれか1つにおいて、NEHAは、通信ユニット1330に結合され、NEHAとMNE120との間でパーシステントコネクションを確立するように構成された接続確立ユニット1340をさらに備え、したがって、MNE120へ送信されるメッセージ及びMNE120から受信されるメッセージが、パーシステントコネクション上で転送される。
第1の態様自体に係るNEHAの別の取り得る実装形式又は第1の態様の先行する実装形式のいずれか1つにおいて、パーシステントコネクションは、ウェブソケットパーシステントコネクション、特に、HTML5ウェブソケットパーシステントコネクション又はセキュアリンク接続である。セキュアリンク接続は、暗号化されたセキュアリンク接続であり得る。ウェブソケットパーシステントコネクションは、双方向ウェブソケットパーシステントコネクションであり得る。
第1の態様自体に係るNEHAの別の取り得る実装形式又は第1の態様の先行する実装形式のいずれか1つにおいて、パーシステントコネクションは、スクリプト言語インターフェース、例えば、JavaScriptインターフェースを提供する。
第1の態様自体に係るNEHAの別の取り得る実装形式又は第1の態様の先行する実装形式のいずれか1つにおいて、NEHA110は、NEとMNE120を通じて通信する、例えば、メッセージをMNE120へ送信するなどするように構成されたウェブブラウザ210を備える。ウェブブラウザは、HTML5ブラウザである。
ウェブブラウザ210は、メッセージをMNE120へ送信するように構成されたHTML5アプリケーションを備える。
第1の態様自体に係るNEHAの第7の取り得る実装形式又は第1の態様の先行する実装形式のいずれか1つにおいて、第1のネットワークプロトコルは、NEHAとMNE120との間で実行される。
第1の態様の第7の実装形式に係るNEHAの第8の取り得る実装形式において、第1のネットワークプロトコルは、所望のネットワークプロトコル及びプライベートプロトコルを含む。
第1の態様自体に係るNEHAの別の取り得る実装形式又は第1の態様の先行する実装形式のいずれか1つにおいて、HTTPプロトコルは、NEHAとHTTPサーバとの間で実行され、したがって、第1の要求及び第1の応答は、HTTPプロトコルのものである。
第1の態様の第2又は第4の実装形式に係るNEHAの別の取り得る実装形式において、要求されるMNE120は、ネットワークID、特に、IPアドレスにポート番号を加えたものによって示される。
第1の態様自体に係るNEHAの別の取り得る実装形式又は第1の態様の先行する実装形式のいずれか1つにおいて、第1のサービス及び第2のサービスは、ウェブサービスである。
第2の態様において、システムが提供される。本システムは、第1の態様自体又は第1の態様の実装形式のうちのいずれかに係る、HTML5アプリケーションとして実行されるネットワークエンティティ(Network Entity running as a HTML5 Application,NEHA)を備える。本システムは、HTTPサーバと、ネットワークエンティティ(network entity,NE)と、ミラーネットワークエンティティ(mirror network entity,MNE)とを備え、MNE120は、NEのミラーインスタンスであり、所望のネットワークプロトコルは、MNE120とNE130との間で実行され、HTTPサーバは、MNE120を要求するための第1の要求であって、MNE120とNEとの間で使用される所望のネットワークプロトコルを含む第1の要求を、NEHAから受信するために、及び要求されるMNE120を示す第1の応答をNEHAへ送信するように構成され、NEHAは、NEとMNE120を通じて通信するように構成され、MNE120は、NEと所望のネットワークプロトコルを使用して通信するように構成される。
第2の態様自体に係るシステムの第1の実装形式において、NEHAが、クライアントエンティティであり、NEが、サーバエンティティである場合、MNE120は、NEHAから受信される第2の要求があり次第、第1のサービス要求するための第4の要求を送信し、第1のサービスを提供する第4の応答をNEから受信するように構成される。
第2の態様の第1の実装形式に係るシステムの第2の実装形式において、MNE120が、第4の応答をキャッシュするためにさらに構成され、第1のサービスを要求し、所望のネットワークプロトコルを示す後者の第2の要求が受信される場合、MNE120が、記憶された第4の応答に基づいて、後者の第2の要求に直接応答するように構成される。
第2の態様自体に係るシステムの第3の実装形式において、NEHAが、サーバエンティティであり、NEが、クライアントエンティティである場合、NME120は、第2のサービスを要求するための第5の要求をNEから受信し、NEHAから受信される第3のサービス応答に基づいて、第2のサービスを提供する第5の応答をNEへ送信するように構成される。
第2の態様の第3の実装形式に係るシステムの第4の実装形式において、MNE120が、第3の応答をキャッシュするためにさらに構成され、後者の第5の要求が、第1のサービスを要求する場合、MNE120は、記憶された第3の応答に基づいて、後者の第5の要求に直接応答するように構成される。
第2の態様自体に係るシステムの別の取り得る実装形式又は第2の態様の先行する実装形式のいずれか1つにおいて、MNE120は、NEHAからの第2の要求の一部及びNEからの第5の要求の一部をローカルに取り扱うためにさらに構成される。
MNE120は、ネットワークエンティティとして動作して、第2の要求の一部を取り扱うことが可能になり、ネットワークエンティティは解放され、ネットワークトラフィックは低減され、帯域幅は、それに応じて節約される。MNE120は、NEHAとして動作して、第5の要求の一部を取り扱うことも可能になり、NEHAは解放され、ネットワークトラフィックは、さらに低減され、帯域幅は、さらに節約される。
第2の態様自体に係るシステムの別の取り得る実装形式又は第2の態様の先行する実装形式のいずれか1つにおいて、MNE120は、NEHAと第1のネットワークプロトコルを使用して通信し、第1のネットワークプロトコルと所望のネットワークプロトコルとが異なる場合、メッセージを第1のネットワークプロトコルから所望のネットワークプロトコルへ又は所望のネットワークプロトコルから第1のネットワークプロトコルへ変換するためにさらに構成される。
第2の態様自体に係るシステムの別の取り得る実装形式又は第2の態様の先行する実装形式のいずれか1つにおいて、HTTPサーバは、既存のミラーネットワークエンティティを使用することによって、又は新たなミラーネットワークエンティティをセットアップすることによって、MNE120を判定するためにさらに構成される。
第2の態様自体に係るシステムの別の取り得る実装形式又は第2の態様の先行する実装形式のいずれか1つにおいて、第2の要求/応答、第3の要求/応答、第4の要求/応答及び第5の要求/応答を含む、MNE120によって送受信されるメッセージは、所望のネットワークプロトコルにおいて定義される周知のメッセージである。
第3の態様によれば、方法が提供される。本方法は、ミラーネットワークエンティティMNE120を要求するための第1の要求を生成し、HTTPサーバへ送信するステップであって、MNE120は、ネットワークエンティティNEのミラーインスタンスであり、第1の要求は、MNE120とNEとの間で実行される所望のネットワークプロトコルを示す、ステップと、必要とされるMNE120を示す第1の応答をHTTPサーバから受信し、処理するステップと、NEとMNE120を通じて通信するステップとを含む。
第3の態様自体に係る方法の取り得る第1の実装形式において、本方法は、メッセージを生成し、MNE120へ送信するステップと、メッセージをMNE120から受信し、処理するステップとをさらに含む。
第3の態様の第1の実装形式に係る方法の取り得る第2の実装形式において、NEHAが、第1のサービスを要求するためのクライアントエンティティであり、NEが、第1のサービスを提供するサーバエンティティである場合、MNE120へ送信されるメッセージは、第1のサービスを要求する第2の要求であり、MNE120から受信されるメッセージは、第1のサービスを提供する第2の応答である。
第3の態様の第2の実装形式に係る方法の取り得る第3の実装形式において、所望のネットワークプロトコルは、HTML5によってサポートされないネットワークプロトコル、特に、インターネットグループ管理プロトコル(Internet Group Management Protocol,IGMP)、インターネットプロトコルテレビジョン(Internet Protocol Television,IPTV)、グループプロトコル、ファイル転送プロトコル(File Transfer Protocol,FTP)、SSDP、SOAP及びGENAを含む。
NEHAは、サービスを開始するために多数のネットワークプロトコルの中から柔軟に選択することが可能になる。
第3の態様の第1の実装形式に係る方法の取り得る第4の実装形式において、NEHAが、第2のサービスを提供するためのサーバエンティティであり、NEが、第2のサービスを要求するクライアントエンティティである場合、MNE120から受信されるメッセージは、第2のサービスを要求する第3の要求であり、MNE120へ送信されるメッセージは、第2のサービスを提供する第3の応答である。
第3の態様の第4の実装形式に係る方法の取り得る第5の実装形式において、所望のネットワークプロトコルは、HTTP、自動検出制御ネットワークプロトコル、及びメディア自動検出制御ネットワークプロトコルを含み得る。自動検出制御ネットワークプロトコルは、UPnPグループプロトコル、及びBonjourを含む。自動検出制御(UPnP、Bonjour等)機能は、MNE120を導入することによって、HTML5アプリケーションにおいて有効になる。
第3の態様の第4の実装形式に係る方法の別の取り得る実装形式において、メディア自動検出制御ネットワークプロトコルは、メディアUPnPグループプロトコル、AirPlay及びDLNAプロトコルを含む。UPnPメディアレンダラ及びDLNAメディアプレーヤDMR機能は、MNE120を導入することによって、HTML5アプリケーションにおいて有効になる。所望のネットワークプロトコルが、自動検出制御ネットワークプロトコルである場合、NEHAは、自動検出制御ネットワークデバイスである。所望のネットワークプロトコルが、メディア自動検出制御ネットワークプロトコルである場合、NEHAは、メディア自動検出制御ネットワークレンダラデバイスである。
第3の態様自体に係る方法の第6の取り得る実装形式又は第3の態様の実装形式のいずれか1つにおいて、本方法は、パーシステントコネクションをNEHAとMNE120との間で確立するステップを含み、したがって、MNE120へ送信されるメッセージ及びMNE120から受信されるメッセージは、パーシステントコネクション上で転送される。
第3の態様の第6の実装形式に係る方法の別の取り得る実装形式において、パーシステントコネクションは、ウェブソケットパーシステントコネクション、特に、HTML5ウェブソケットパーシステントコネクション又はセキュアリンク接続であり得る。セキュアリンク接続は、暗号化されたセキュアリンク接続であり得る。ウェブソケットパーシステントコネクションは、双方向ウェブソケットパーシステントコネクションであり得る。パーシステントコネクションは、スクリプト言語インターフェース、例えば、JavaScriptインターフェースを提供し得る。
ウェブソケット接続をパーシステントコネクションとして使用することによって、NEHAとNEとの間の通信は、任意のオペレーティングシステム(OS)上の任意のHTML5アプリケーション及び任意のウェブサービスを用いて実装され得る。
メッセージをMNE120へ送信するステップは、ウェブブラウザ、特に、HTML5ブラウザを介して実行され得る。
第4の態様によれば、別の方法が提供されて、第2の態様自体又は第2の態様の実装形式のいずれか1つに係るステップが実行される。
NEHAが、サービス要求を開始する場合、新たなアプリケーションがインストールされる必要はない。HTML5アプリケーションは、各モバイルデバイス上で利用可能であり、余分なソフトウェアが開発される必要はない。したがって、HTML5ブラウザプラットフォームは、今までは可能ではなかった様々なアプリケーションを実行することが可能になる。
本発明は、ウェブブラウザの機能性を拡張するための技法が、動的に起動され、ユーザエンティティ、例えば、ブラウザ内のHTML5アプリケーションと、パーシステントコネクションを介して、例えば、HTML5ウェブソケット(web socket,ws)又はHTML5セキュアリンクウェブソケット(セキュアリンクのために暗号化されるwss)を介して通信し得る、ネットワーク内のミラーリングされたサービス/デバイスを追加することによって達成され得るという発見に基づく。この解決策は、いかなるインストールの必要も回避し、任意のオペレーティングシステム(OS)上の任意のHTML5ブラウザ及び任意のウェブサービスと共に機能する。したがって、本発明は、ブラウザ内又はブラウザ外のHTML5アプリケーションが、パーシステントコネクション、例えば、HTML5ウェブソケット、及びネットワーク内のミラーリングされたサービスを使用することによって、ウェブサーバ及びウェブサービスをセキュアで標準的な手法で実行することを可能にする技法を提供する。本技法は、HTML5アプリケーションが、適当なサービス/プロトコルを用いてミラーデバイスを動的にロード及び初期化することを可能にする。そのような技法を適用することは、HTML5ブラウザプラットフォームが、今までは可能ではなかった様々なアプリケーションを実行することを可能にする。
そのような技法を適用することは、HTML5アプリケーションが、ウェブサーバを実行し、ウェブサービスサーバとして動作することを可能にする。そのような技法を適用する方法は、HTML5においてサポートされないネットワークプロトコルクライアントをHTML5アプリケーションにおいて実行する。本技法は、HTML5ウェブソケットなどのパーシステントコネクション及びネットワーク内のミラーリングされたサービス/デバイスを使用している。HTML5ウェブソケットは、全二重の継続的な単一ソケットの直接通信のJavaScriptインターフェースを提供する。ミラーリングされたサービス/デバイスは、プロキシとして動作し、必要とされるプロトコルをウェブソケット接続へ及びウェブソケット接続から転送し、HTML5アプリケーション内のJavaScriptコードに要求を取り扱わせる。ミラーリングされたデバイスは、特定のHTML5アプリケーションが1つのデバイスとして動作するために共に起動され得るサービスのセットを含み得る。ミラーリングされたサービス/デバイスは、要求の一部を、要求をウェブソケットトンネルへ転送することなく、応答をキャッシュすること又はサービスロジックの一部をミラーリングされたサービスにおいて実装させることによって取り扱い得る。
本明細書において説明される方法、システム及びデバイスは、デジタル信号プロセッサ(Digital Signal Processor,DSP)を含む任意のCPUにおける、マイクロコントローラにおける、若しくは任意の他のサイドプロセッサにおけるソフトウェアとして、又は、特定用途向け集積回路(application specific integrated circuit,ASIC)内のハードウェア回路として、実装され得る。
本発明は、デジタル電子回路において、又はコンピュータハードウェア、ファームウェア、ソフトウェアにおいて、又はこれらの組み合わせにおいて、例えば、従来のモバイルデバイスの利用可能なハードウェアにおいて若しくは本明細書において説明される方法を処理するための専用の新たなハードウェアにおいて実装され得る。
本発明のさらなる実施形態は、下記の図面に関して説明されるであろう。
一実装形式に係る、ユーザエンティティとネットワークエンティティとを含むシステムを例示するブロック図である。
一実装形式に係る一般的なネットワークシステムを例示するブロック図である。
一実装形式に従った一般的なネットワークシステムを例示的なサービスと共に例示するブロック図である。
一実装形式に従った、HTML5アプリケーションがサーバエンティティとして動作する場合のHTML5とミラーリングされたサービス/デバイスとの通信のフロー図である。
一実装形式に従った、HTML5アプリケーションが、HTML5におけるサポートされないネットワークプロトコルのためのクライアントエンティティとして動作する場合の、HTML5とミラーリングされたサービス/デバイスとの通信のフロー図である。
一実装形式に従った、SSDP、GENA、SOAPサービスミラーリングバンドルを使用した、ブラウザ内部のDLNA DMRデバイスの例示的な実装のフロー図である。
一実装形式に従った、SSDP、GENA、SOAPサービスミラーリングを使用するブラウザ内のDLNA DMRの例示的な実装のブロック図である。
一実装形式に従って、IGMP及びユニキャストサービスミラーリングのためのマルチキャストを使用した、IGMPクライアントHTML5アプリケーションの例示的な実装のフロー図である。
一実装形式に従った、ネットワークにおけるミラーリングされたIPTVデバイスを使用したIPTVクライアントデバイスHTML5アプリケーションの例示的な実装のフロー図である。
一実装形式に係る、ユーザエンティティとウェブサービスとの間のパーシステントコネクションを開始するための方法の概略図である。
本発明の一実施形態に係るシステムの概略図である。
本発明の別の実施形態に係るシステムの概略図である。
本発明の一実施形態に係る、HTML5アプリケーションとして実行されるネットワークエンティティ(Network Entity running as a HTML5 Application,NEHA)の概略図である。
本発明の別の実施形態に係る方法のフローチャートである。
本発明の別の実施形態に係る、HTML5アプリケーションとして実行されるネットワークエンティティ(NEHA)の概略図である。
下記において、ウェブサービスが説明される。ウェブサービスは、ワールドワイドウェブ(World Wide Web,WWW)上での2つの電子デバイス間の通信の方法である。W3Cは、「ウェブサービス」を「ネットワーク上での相互運用可能な機械同士の相互作用をサポートするように設計されたソフトウェアシステム」として定義する。ウェブサービスは、機械処理可能なフォーマット(特に、頭字語WSDLによって知られるウェブサービス記述言語(Web Services Description Language))で記述されたインターフェースを有する。他のシステムは、典型的には、他のウェブ関連標準と併せてXMLシリアライゼーションと共にHTTPを使用して伝送される、SOAPメッセージを使用したその記述によって規定された手法で、ウェブサービスと相互作用する。ウェブサービスは、企業が互いに及び顧客と通信するための手段として主に使用される、現代のネットワーキングの重要な面となっており、ウェブサービスは、エンティティが、ファイアウォールの背後にある互いのITシステムの詳細な知識なしに、データを交換することを可能にする。ウェブサーバ/ウェブページシステムなどの従来のクライアント/サーバモデルとは異なり、ウェブサービスは、ユーザにGUIを提供しない。ウェブサービスは、その代わりに、ビジネスロジック、データ及びプロセスを、プログラマティックインターフェースを通じてネットワーク全体で共有する。その結果、開発者は、ウェブサービスをGUI(ウェブページ又は実行可能なプログラムなど)に追加して、特定の機能性をユーザへ提供することができる。大抵のウェブサービスは、HTTPを、メッセージ(サービス要求及び応答など)を送信するために使用する。クライアントは、要求を開始し、サーバから応答を受信し、今までは、HTML5アプリケーションは、javascriptからのXMLHttpReqオブジェクトを使用してクライアントとしてのみ動作し得たが、ウェブサービスサーバとしては動作し得なかった。
下記において、HTML5アプリケーション及びウェブソケットが説明される。HTML5は、HTML(Hyper Text Markup Language)の最新版及び改訂版であり、HTML5は、ウェブページのための有力なマークアップ言語である。そのため、HTMLは、ウェブページの基本的な構築ブロックを備える。HTML5の仕様は、現時点では、いまだに開発中であるが、そのうちの一部のセクションは、既に確定しており、特に、ウェブソケット要素については、完成に近く、今日使用され得る実装が存在する。特に、MicrosoftのInternet Explorer(商標)、MozillaのFirefox(商標)、GoogleのChrome(商標)及びAppleのSafari(商標)などの、最も一般的なウェブブラウザの最新バージョンは、既存の仕様に従ったウェブソケット要素を実装する。HTML5の重要な部分は、アプリケーションプログラミングインターフェース(application programming interface,API)を記述する仕様である。これらのAPIは、ブラウザによって実行されるスクリプト言語、例えば、JavaScript(商標)プログラミング言語などからアクセス可能である。APIにアクセス可能であり得るブラウザによって実行される付加的なプログラミング言語は、MicrosoftのJ Script(商標)などのECMAスクリプト標準の様々なバリエーション、及びMicrosoftのVBScript(商標)などの他のスクリプト言語を含む。本文書において、JavaScriptという用語は、全てのそのような言語を表すために使用される。なぜなら、JavaScriptは、ブラウザにおいて使用される、群を抜いて最も普及したスクリプト言語であり、大抵の標準文書において使用される用語であるためである。
HTML5は、ブラウザについての事実上の業界標準となり、ブラウザは、いかなるOS(Windows、アンドロイド、IOS等)においても基本アプリケーションである。HTML5アプリケーションは、インストールを必要とせず、更新は、瞬時にパブリッシュされ得、HTML5アプリケーションは、分離層を提供し、デバイス間互換性を提供するブラウザ内部で実行される。HTML5アプリケーションは、オンライン又はオフラインで実行され得、ウェブ言語、例えば、カスケーディングスタイルシート(Cascading Style Sheets,CSS)、HTML、及びJavascriptなどにおいて完全に書かれ得る。それらの主な制約は、それらがセキュリティ上の理由に起因して、及び、任意のウェブページコード/アプリケーションを実行するための分離層として動作するそれらの役割のために、オペレーティングシステムのネイティブAPIにアクセスすることができないことである。より具体的には、HTML5アプリケーションは、ネイティブネットワーキングAPIを開くことができず、JavaScriptからの全てのそれらのネットワーク通信は、HTTPのみを使用するHTMLHttpReqオブジェクトを介してのみ行われ、トランザクションは、ブラウザ、ウェブソケット及び最近導入されたwebRTCからのみ開始され得る。そうは言っても、HTML5アプリケーションが、W3C(HTML5)によってサポートされないネットワークプロトコル、例えば、IGMP、UDP、TCP、RTSPのクライアントとして動作することは、不可能である。HTML5ウェブソケットの導入によって、二方向通信が可能になり、この理由により、今日のウェブブラウザは、大部分がクライアントエンティティであり、ウェブサーバをブラウザにおいて実行させるオプションは存在せず、より具体的には、自動検出制御(UPnP、Bonjour)デバイスをブラウザにおいて実行させるためのオプションは存在しない。さらに、DLNA DMRをブラウザにおいて実行させるオプションは、httpサーバ、マルチキャストソケット、及び、よりネイティブなOS APIを含むためのUPnPの要件に起因して、存在しない。
下記において、DLNAが説明される。DLNAは、デジタルメディア、例えば、音楽、写真及びビデオなどを、消費者デバイス、例えば、コンピュータ、TV、プリンタ、カメラ、携帯電話、及び他のマルチメディアデバイス間で共有することを可能にするための互換性ガイドラインを定義している。DLNAは、デジタルメディアを共有するための今日の主な標準である。DLNAは、ユニバーサルプラグアンドプレイ(Universal Plug and Play,UPnP)をメディア管理、検出及び制御のために使用する。UPnPは、DLNAがサポートするデバイスのタイプ(「サーバ」、「レンダラ」、「コントローラ」)、及びメディアにネットワーク上でアクセスするためのメカニズムを定義する。DLNAは、通知のためのGENAを制御するためにSOAPを、検出のためにSSDPを使用する。デジタルメディアレンダラ(Digital Media Render,DMR)は、DLNAにおいて定義され、デジタルコンテンツの再生及びレンダリングのための幾つかのウェブサービスを提供する(UPnPメディアレンダラテンプレートを実装する)デバイスである。今までは、DMRをブラウザ内部に実装することは不可能であった。デジタルメディアコントローラ(Digital Media Controller,DMC)は、DMSによって提供されるコンテンツを検出し、このコンテンツとDMRの能力とを一致させる。DMCは、デバイスを検出し、DLNAデバイス間の接続を生成し、制御し、及び解除する責任を負う。
図13に示されるような、HTML5アプリケーションとして実行されるネットワークエンティティ(Network Entity running as a HTML5 Application,NEHA)110の一実施形態によれば、NEHA110は、HTTPサーバ140と、ネットワークエンティティ(network entity,NE)130と、ミラーネットワークエンティティ(mirror network entity,MNE)120とを備える、図11に例示されるシステム1100において提供され、MNE120は、NE130のミラーインスタンスであり、所望のネットワークプロトコルは、MNE120とNE130との間で実行される。図11のNEHA110は、図13のNEHA110に対応する。NEHA110は、MNE120を要求するための第1の要求をHTTPサーバ140へ送信する第1の送信器1320であって、第1の要求は、所望のネットワークプロトコルを示す、第1の送信器1320と、要求されたMNE120を示す第1の応答をHTTPサーバ140から受信する第1の受信器1310と、NE130とMNE120を通じて通信する通信ユニット1330と、第1の要求を処理し、第1の応答を生成する処理ロジック1350とを備える。
NE130とMNE120を通じて通信することによって、NEHA110は、ブラウザごとに及びオペレーティングシステム(operating system,OS)ごとに又はNEHA110上のサービスタイプごとに、ネイティブアプリケーション又は特殊なプラグインをインストールする必要なしに、所望のネットワークプロトコルを実行するNE130と通信することが可能になる。ミラーネットワークエンティティ(mirror network entity,MNE)120は、ミラーリングされたデバイスとも称される。
本実施形態の1つの取り得る実装形式において、通信ユニット1330は、メッセージをMNE120へ送信する第2の送信器1333と、メッセージをMNE120から受信する第2の受信器1331とを備える。したがって、処理ロジック1350は、MNE120から受信されたメッセージを処理し、MNE120へ送信されるべきメッセージを生成する。NEHA110は、ウェブサービスを要求するクライアントエンティティ、又はウェブサービスを提供するためのサーバエンティティであり得る。
本実施形態の1つの取り得る実装形式において、NEHA110が、第1のサービスを要求するためのクライアントエンティティである場合、NE130は、第1のサービスを提供するサーバエンティティであり、図12に示されるように、MNE120へ送信されるメッセージは、第1のサービスを要求する第2の要求であり、MNE120から受信されるメッセージは、第1のサービスを提供する第2の応答である。図12のNEHA110、MNE120、NE130及びHTTPサーバ140は、図11のNEHA110、MNE120、NE130及びHTTPサーバ140に対応する。
これを行うことによって、NEHA110は、サービスを要求するためのクライアントエンティティとなること、及びHTML5によってサポートされない任意のネットワークプロトコルについてのネットワーククライアントとして動作することが可能になる。
本実施形態の1つの取り得る実装形式において、所望のネットワークプロトコルは、HTML5によってサポートされないネットワークプロトコル、特に、インターネットグループ管理プロトコル(Internet Group Management Protocol,IGMP)、インターネットプロトコルテレビジョン(Internet Protocol Television,IPTV)、グループプロトコル、及びファイル転送プロトコル(File Transfer Protocol,FTP)を含む。
NEHA110は、MNE120を導入することによって、HTML5によってサポートされない任意のネットワークプロトコルクライアントをHTML5アプリケーションにおいて実行することが可能になる。
本実施形態の1つの取り得る実装形式において、NEHA110が、第2のサービスを提供するためのサーバエンティティである場合、NE130は、第2のサービスを要求するクライアントエンティティであり、図12に示されるように、MNE120から受信されるメッセージは、第2のサービスを要求する第3の要求であり、MNE120へ送信されるメッセージは、第2のサービスを提供する第3の応答である。NEHA110は、サービスを提供するためのサーバエンティティとなることが可能になる。
本実施形態の1つの取り得る実装形式において、所望のネットワークプロトコルは、HTTP、自動検出制御制御ネットワークプロトコル、及びメディア自動検出制御ネットワークプロトコルを含む。
本実施形態の1つの取り得る実装形式において、自動検出制御ネットワークプロトコルは、UPnPグループプロトコル、及びBonjourを含む。自動検出制御(UPnP、Bonjour等)機能は、MNE120を導入することによって、HTML5アプリケーションにおいて可能となる。
本実施形態の1つの取り得る実装形式において、メディア自動検出制御ネットワークプロトコルは、メディアUPnPグループプロトコル、AirPlay及びDLNAプロトコルを含む。UPnPメディアレンダラ及びDLNAメディアプレーヤのDMR機能は、MNE120を導入することによって、HTML5アプリケーションにおいて可能となる。
本実施形態の1つの取り得る実装形式において、所望のネットワークプロトコルが、自動検出制御ネットワークプロトコルである場合、NEHA110は、自動検出制御ネットワークデバイスである。所望のネットワークプロトコルが、メディア自動検出制御ネットワークプロトコルである場合、NEHA110は、メディア自動検出制御ネットワークレンダラデバイスである。
本実施形態の1つの取り得る実装形式において、NEHA110は、NEHA110とMNE120との間にパーシステントコネクションを確立するための接続確立ユニット1340をさらに備える。したがって、MNE120へ送信されるメッセージ及びMNE120から受信されるメッセージは、パーシステントコネクション上で転送される。
本実施形態の1つの取り得る実装形式において、パーシステントコネクションは、ウェブソケットパーシステントコネクション、特に、HTML5ウェブソケットパーシステントコネクション又はセキュアリンク接続である。セキュアリンク接続は、暗号化されたセキュアリンク接続であり得る。ウェブソケットパーシステントコネクションは、双方向ウェブソケットパーシステントコネクションであり得る。
本実施形態の1つの取り得る実装形式において、パーシステントコネクションは、スクリプト言語インターフェース、例えば、JavaScriptインターフェースを提供する。
本実施形態の1つの取り得る実装形式において、NEHA110は、NE130とMNE120を通じて通信するように、例えば、メッセージをMNE120へ送信するように構成されたウェブブラウザ210を備える。ウェブブラウザは、HTML5ブラウザである。
ウェブブラウザ210は、メッセージをMNE120へ送信するように構成されたHTML5アプリケーションを備える。
本実施形態の1つの取り得る実装形式において、第1のネットワークプロトコルは、NEHA110とMNE120との間で実行される。
本実施形態の1つの取り得る実装形式において、第1のネットワークプロトコルは、所望のネットワークプロトコル、及びプライベートプロトコルを含む。第2の要求及び第2の応答が、所望のネットワークプロトコルにおいて定義されるメッセージである場合、IGMPを例にとると、第2の要求が、マルチキャストグループについてのJoin Group Requestである場合、第2の応答は、Join Group Replyである。第2の要求が、Leave Group Requestである場合、第2の応答は、Leave Group Replyである。第2の要求及び第2の応答が、プライベートプロトコルのメッセージである場合、Join Group Requestは、「J<Address><Port>\n」の形式であり得、Leave Group Requestは、「L<Address><Port>\n」の形式であり得、テキストを送信するためのメッセージは、「S<Address><Port><message>\n\n」の形式であり得る。
本実施形態の1つの取り得る実装形式において、HTTPプロトコルは、NEHA110とHTTPサーバ140との間で実行され、したがって、第1の要求及び第1の応答は、HTTPプロトコルのものである。
本実施形態の1つの取り得る実装形式において、要求されたMNE120は、ネットワークID、特に、IPアドレスにポート番号を加えたものによって示される。
本実施形態の1つの取り得る実装形式において、第1のサービス及び第2のサービスは、ウェブサービスである。
図11及び図12に示されるように、システム1100/1200の一実施形態が提供される。本システムは、図13のHTML5アプリケーションとして実行されるネットワークエンティティ(Network Entity running as a HTML5 Application NEHA,NEHA)110を備える。システム1100/1200は、HTTPサーバ140と、ネットワークエンティティ(network entity,NE)130と、ミラーネットワークエンティティ(mirror network entity,MNE)120とを備え、MNE120は、NE130のミラーインスタンスであり、所望のネットワークプロトコルは、MNE120とNE130との間で実行され、HTTPサーバ140は、MNE120を要求する第1の要求であって、MNE120とNE130との間で使用される所望のネットワークプロトコルを含む第1の要求をNEHA110から受信し、及び、要求されたMNE120を示す第1の応答をNEHA110へ送信し、NEHA110は、NE130とMNE120を通じて通信し、MNE120は、所望のネットワークプロトコルを使用してNE130と通信する。
本システム実施形態の1つの取り得る実装形式において、NEHA110が、クライアントエンティティである場合、NE130は、サーバエンティティであり、図12に示されるように、MNE120は、NEHA110から受信される第2の要求があり次第、第1のサービスを要求する第4の要求を送信し、第1のサービスを提供する第4の応答をNEから受信する。図12のNEHA110、MNE120、NE130及びHTTPサーバ140は、図11のNEHA110、MNE120、NE130及びHTTPサーバ140に対応する。
MNE120が第4の応答をキャッシュする、本システム実施形態の1つの取り得る実装形式において、第1のサービスを要求し、所望のネットワークプロトコルを示す後者の第2の要求が受信される場合、MNE120は、キャッシュされた第4の応答に基づいて、後者の第2の要求に直接応答する。
本システム実施形態の1つの取り得る実装形式において、NEHA110が、サーバエンティティである場合、NE130は、クライアントエンティティであり、図12に示されるように、MNE120は、第2のサービスを要求する第5の要求をNE130から受信し、NEHA110から受信される第3のサービス応答に基づいて、第2のサービスを提供する第5の応答をNE130へ送信する。
MNE120が第3の応答をキャッシュする、本システム実施形態の1つの取り得る実装形式において、第1のサービスを要求する後の第5の要求の場合、図12に示されるように、MNE120は、記憶された第3の応答に基づいて、後者の第5の要求に直接応答する。
本システム実施形態の1つの取り得る実装形式において、MNE120は、NEHA110からの第2の要求の一部、及びNE130からの第5の要求の一部を、ローカルに取り扱う。
MNE120は、ネットワークエンティティとして動作して、第2の要求の一部を取り扱うことが可能になり、ネットワークエンティティは解放され、ネットワークトラフィックは低減され、帯域幅は、それに応じて節約される。MNE120は、NEHAとして動作して、第5の要求の一部を取り扱うことも可能になり、NEHAは解放され、ネットワークトラフィックは、さらに低減され、帯域幅は、さらに節約される。
本システム実施形態の1つの取り得る実装形式において、MNE120は、NEHA110と第1のネットワークプロトコルを使用して通信し、第1のネットワークプロトコルと所望のネットワークプロトコルとが異なる場合、メッセージを第1のネットワークプロトコルから所望のネットワークプロトコルへ/所望のネットワークから第1のネットワークプロトコルへ変換する。
本システム実施形態の1つの取り得る実装形式において、変換は、ミラーネットワークエンティティの変換ユニットによって実行される。変換ユニットを有することによって、NEHA110は、HTML5アプリケーションをサポートしないネットワークエンティティと通信することが可能になる。
1つの取り得る実装形式において、変換は、プライベートネットワークプロトコルのメッセージを周知の所望のネットワークプロトコル内にカプセル化すること、例えば、ヘッダを所望のネットワークプロトコルに従ってカプセル化することによって行われ、逆もまた同様である。
本システム実施形態の1つの取り得る実装形式において、HTTPサーバ140は、既存のミラーネットワークエンティティを使用することによって、又は新たなミラーネットワークエンティティをセットアップすることによって、MNE120を判定する。
NEHAによって実行される方法実施形態は、図14に例示される。本方法は、図13のNEHA110によって実行され得る。本方法は、
ブロック1410:MNE120を要求するための第1の要求を生成し、HTTPサーバへ送信するステップであって、第1の要求は、所望のネットワークプロトコルを示す、ステップと、
ブロック1420:要求されたMNE120を示す第1の応答をHTTPサーバから受信し、処理するステップと、
ブロック1430:NEとMNE120を通じて通信するステップとを含む。
本方法実施形態の1つの取り得る実装形式において、通信するステップ1430は、メッセージをMNE120へ送信するステップと、メッセージをMNE120から受信するステップとを含む。
本方法実施形態の1つの取り得る実装形式において、NEHAが、第1のサービスを要求するためのクライアントエンティティである場合、NEは、第1のサービスを提供するサーバエンティティであり、MNE120へ送信されるメッセージは、第1のサービスを要求する第2の要求であり、MNE120から受信されるメッセージは、第1のサービスを提供する第2の応答である。
通信するステップ1430は、したがって、
ブロック1431:第1のサービスを要求する第2の要求を生成し、送信するステップと、
ブロック1433:第1のサービスを提供する第2の応答を受信し、処理するステップと
を含む。所望のネットワークプロトコルは、HTML5によってサポートされないネットワークプロトコル、特に、インターネットグループ管理プロトコル(Internet Group Management Protocol,IGMP)、インターネットプロトコルテレビジョン(Internet Protocol Television,IPTV)、グループプロトコル、及びファイル転送プロトコル(File Transfer Protocol,FTP)を含む。
本方法実施形態の1つの取り得る実装形式において、HTTPプロトコルは、NEHAとHTTPサーバとの間で実行され、したがって、第1の要求及び第1の応答は、HTTPプロトコルのものである。
本方法実施形態の1つの取り得る実装形式において、要求されたMNE120は、ネットワークID、特に、IPアドレスにポート番号を加えたものによって示される。
本方法実施形態の1つの取り得る実装形式において、NEHAが、第2のサービスを提供するためのサーバエンティティである場合、NEは、第2のサービスを要求するクライアントエンティティであり、MNE120から受信されるメッセージは、第2のサービスを要求する第3の要求であり、MNE120へ送信されるメッセージは、第2のサービスを提供する第3の応答である。通信するステップ1430は、したがって、
ブロック1435:第2のサービスを要求する第3の要求を受信し、処理するステップと、
ブロック1437:第2のサービスを提供する第3の応答を生成し、送信するステップと
を含む。
本方法実施形態の1つの取り得る実装形式において、NEHAが、第2のサービスを提供するためのサーバエンティティである場合、NEは、第2のサービスを要求するクライアントエンティティであり、所望のネットワークプロトコルは、HTTP、自動検出制御ネットワークプロトコル、及びメディア自動検出制御ネットワークプロトコルを含む。
自動検出制御ネットワークプロトコルは、UPnPグループプロトコル、及びBonjourを含む。
メディア自動検出制御ネットワークプロトコルは、メディアUPnPグループプロトコル、AirPlay、及びDLNAプロトコルを含む。
所望のネットワークプロトコルが、自動検出制御ネットワークプロトコルである場合、NEHAは、自動検出制御ネットワークデバイスであり、所望のネットワークプロトコルが、メディア自動検出制御ネットワークプロトコルである場合、NEHAは、メディア自動検出制御ネットワークレンダラデバイスである。
本方法実施形態の1つの取り得る実装形式において、本方法は、NEHAとMNE120との間でパーシステントコネクションを確立するステップ1400をさらに含み、したがって、MNE120へ送信されるメッセージ及びMNE120から受信されるメッセージは、パーシステントコネクション上で転送される。
本方法実施形態の1つの取り得る実装形式によれば、パーシステントコネクションは、ウェブソケットパーシステントコネクション、特に、HTML5ウェブソケットパーシステントコネクション又はセキュアリンク接続である。セキュアリンク接続は、暗号化されたセキュアリンク接続であり得る。ウェブソケットパーシステントコネクションは、双方向ウェブソケットパーシステントコネクションであり得る。
本方法実施形態の1つの取り得る実装形式によれば、パーシステントコネクションは、スクリプト言語インターフェース、例えば、JavaScriptインターフェースを提供する。
本方法実施形態の1つの取り得る実装形式において、NEHAは、NEとMNE120を通じて通信するように構成されたウェブブラウザを備え、例えば、ウェブブラウザを使用してメッセージをMNE120へ送信するなどする。
ウェブブラウザは、ウェブサービスを要求する第2の要求を送信し、又は第3の応答を送信するように構成されたHTML5アプリケーションを備える。
本方法実施形態の1つの取り得る実装形式において、第1のネットワークプロトコルは、NEHAとMNE120との間で実行される。第1のネットワークプロトコルは、所望のネットワークプロトコル及びプライベートプロトコルを含む。
図15に示されるような別のNEHA実施形態によれば、NEHA1500は、プロセッサ1510を備えて、図14に係る方法実施形態を実行する。
図1は、1つの実装形式に係る、ユーザエンティティ110として示されるNEHAと、ミラーリングされたサービスインスタンスと称されるMNE120とを含むシステム100を例示するブロック図を示す。ユーザエンティティ110は、MNE120からのウェブサービスを所望のネットワークプロトコルに従って要求する112。ユーザエンティティ110は、MNE120へのパーシステントコネクションを確立する114ように構成される。ユーザエンティティ110は、第2のブロック111「要求されるミラーリングされたサービス/デバイスをネットワークにおける適当なプロトコルを用いてXMLHTTPReqオブジェクトを使用して開始する」の動作をトリガするために、第1のブロック115「ページがブラウザにおいてローディングを開始する」を含む。第2のブロック111は、所望のネットワークプロトコルを用いてウェブサービスを要求することを表す。要求のために、HTML言語が、例えば、要求を投稿するためにXMLHTTPReqオブジェクトが使用され得る。MNE120は、第1のブロック121「ミラーリングされたデバイスがネットワークLAN又はWAN上で利用可能な要求されたプロトコルにおいて、要求されたサービス/デバイスのためのプロキシとして動作する」を含む。このブリングアップブロック121は、MNE120を所望のネットワークプロトコルに従ってブリングアップするように構成される。MNE120は、接続有効化ブロック123「ウェブソケット接続をウェブブラウザws又はwssと確立する」を含む。この第2のブロック123は、パーシステントコネクションをユーザエンティティ110とMNE120との間で確立する114ように構成される。ユーザエンティティ110は、第3のブロック113「ミラーリングされたデバイスにウェブソケットを介して接続する(ウェブソケットトンネルをws又はwssを介して開始する)」を含む。
1つの実装形式において、パーシステントコネクションは、「ws」と省略されるウェブソケット接続、特に、HTML5ウェブソケット接続を含む。1つの実装形式において、パーシステントコネクションは、「wss」と省略されるウェブソケットセキュア、特に、暗号化されたセキュアリンク接続を含む。1つの実装形式において、ユーザエンティティ110は、ウェブサービスについての要求を開始するように構成されたウェブブラウザを備える。1つの実装形式において、ウェブブラウザは、ウェブサービスについての要求を開始するように構成されたHTML5アプリケーションを含む。1つの実装形式において、MNE120は、ユーザエンティティ110をウェブサービスサーバへパーシステントコネクションを通じて接続するプロキシとして動作するように構成される。1つの実装形式において、MNE120は、クライアントエンティティの要求の少なくとも一部を取り扱うように構成される。1つの実装形式において、ウェブサービスのミラーリングされたインスタンスは、MNE120によって所望のネットワークプロトコルに従って起動されるウェブサービスのセットを含む。1つの実装形式において、ユーザエンティティ110は、スクリプト言語インターフェース、特に、JavaScriptインターフェースを提供するパーシステントコネクションを確立するように構成される。1つの実装形式において、MNE120は、後述されるように、自動検出制御デバイス、特に、HTML5、UPnP、Bonjourのうちの1つをユーザエンティティのHTML5アプリケーションにおいて実行することを可能にするように構成される。1つの実装形式において、ネットワークエンティティ120は、後述されるように、メディアレンダラデバイス、特に、UPnPメディアレンダラデバイス及びDLNAデジタルメディアレンダラデバイスのうちの1つをユーザエンティティのHTML5アプリケーションにおいて実行することを可能にするように構成される。1つの実装形式において、ネットワークエンティティ120は、後述されるように、ビデオクライアントデバイス、特に、IPTVデバイス及びIGMPデバイスのうちの1つをユーザエンティティのHTML5アプリケーションにおいて実行することを可能にするように構成される。1つの実装形式において、所望のネットワークプロトコルは、後述されるように、HTTP、非HTTP、SSDP、SOAP、GENA及びIGMPのうちの1つを含む。
図1は、どのように一般的なHTML5アプリケーションがミラーリングされたサービスインスタンスをネットワーク内で下記において説明されるようなネットワークを介して開始し得るかを例示する。MNE120は、ネットワークエンティティ上でJavaScriptを介して図1に示されるようなXMLHttpReqオブジェクトを使用して動的に起動され得る。ページは、JavaScriptをロードして115、ネットワークサーバ、例えば、ネットワークエンティティMNE120におけるネットワークサーバへの接続を開始し111、ミラーリングされたサービスをネットワークサーバ上で起動する。前記JavaScriptは、次いで、ウェブソケットサーバへ、例えば、それぞれ暗号化されていない接続及び暗号化された接続のための2つのURIスキームws及びwssのうちの1つを介して接続する113。その段階において、ユーザエンティティのHTML5アプリケーションとネットワーク内のネットワークデバイスとの間のパーシステント双方向コネクションが確立される。
図1は、HTML5アプリケーションがウェブサーバを実行し、ウェブサービスサーバとして動作することを可能にするための方法及び装置も説明する。また、図1は、同じシステム及び技法を使用して、W3C(HTML5)によってサポートされないネットワークプロトコルクライアントをHTML5アプリケーションにおいて実行する方法を説明する。本技法は、HTML5ウェブソケット及びミラーリングされたサービスインスタンスをネットワーク内で使用している。
HTML5ウェブソケットは、全二重の継続的な単一ソケットの直接通信のJavaScriptインターフェースを提供する。ミラーリングされたサービスは、その基本的な実施形態において、プロキシとして動作し、必要とされるプロトコルをウェブソケット接続へ及びウェブソケット接続から転送し、HTML5アプリケーション内のJavaScriptコードに要求を取り扱わせる。ミラーリングされたデバイスの基本的な実施形態は、特定のHTML5アプリケーションが1つのデバイスとして動作するために共に起動されているサービスのセットである。ミラーリングされたデバイスは、高度な実装において、要求の一部を、要求をウェブソケットトンネルへ転送することなく、応答をキャッシュすること又はサービスロジックの一部をミラーリングされたサービスにおいて実装させることによって取り扱う。
図2は、1つの実装形式に係る一般的なネットワークシステム200を例示するブロック図を示す。システム200は、ユーザエンティティ210として示されるNEHAを備え、MNE120 220は、ミラーリングされたサービスインスタンスを提供する。本図は、プロキシとして動作し、HTML5アプリケーション211に要求を取り扱わせる、ネットワーク内で利用可能なウェブサービス223を示す。ウェブブラウザ210は、例えば、図1に関して上述されたユーザエンティティ110上で実行され、HTML5アプリケーション211と、ネットワーク内で利用可能なウェブサーバ又はウェブサービスへのパーシステントコネクションを開始するように構成されたブロック「ウェブソケットパーシステントコネクション」213とを含む。パーシステントコネクションは、ネットワーク230を通じたウェブソケットパーシステントコネクション231であり得る。ミラーリングされたサービスインスタンス220、例えば、図1に関して上述されたミラーネットワークエンティティ120は、ウェブサーバへのパーシステントコネクションを確立するように構成されたブロック「ウェブソケットパーシステントコネクション」221を含む。ミラーリングされたサービスインスタンス220は、さらなるブロック「ネットワーク上のウェブサービス」223を含み、これは、ミラーリングされたサービスインスタンス220における接続について利用可能な、ネットワークのミラーリングされたウェブサービスを形成する。
図3は、1つの実装形式に従った一般的なネットワークシステム300を例示的なサービスと共に例示するブロック図を示す。システム300は、ユーザエンティティ210として示されるNEHAを備え、MNE120 220は、ミラーリングされたサービスインスタンスを提供する。一般的なネットワークシステム300は、図2に関して上述された一般的なネットワークシステムシステム200に対応し得る。一例において、MNE120 220は、プロキシとして動作し、HTML5アプリケーション211に要求を取り扱わせ、HTTPサーバプロキシ323として実装される。一例において、MNE120 220は、プロキシとして動作し、HTML5アプリケーション211に要求を取り扱わせ、RTMPサーバプロキシ325として実装される。一例において、MNE120 220は、プロキシとして動作し、HTML5アプリケーション211に要求を取り扱わせ、XMPPサーバプロキシ327として実装される。
一例において、HTTPサーバ及びサーバプロキシは、SOAPのために、又はRESTのために、又はHTTPプロトコルの上で利用可能な任意の他のCGIインターフェースのために使用される。HTTPサーバプロキシ323は、要求パラメータを抽出し、それらをウェブソケットトンネル内へ転送し、JavaScriptに取り扱わせる。応答は、ウェブソケットトンネルを介して返され、次いで、HTTP上の必要とされるプロトコル、例えば、SOAP REST等へ変換される。別の例においては、RTMPサーバプロキシ325が、ミラーリングされたサービスインスタンスとして使用される。RTMPサーバプロキシ325は、RTMP要求をトンネル内へプロキシし、その逆もまた同様である。図3に図示されない別の例においては、RTSPサーバプロキシが、ミラーリングされたサービスインスタンスとして使用される。RTSPサーバは、RTSP要求をトンネル内へプロキシし、その逆もまた同様である。別の例においては、リアルタイムメッセージングプロトコルXMPPサーバプロキシ327が、ミラーリングされたサービスインスタンスとして使用される。XMPPサーバプロキシは、HTML5アプリケーションがXMPPプロトコルについてのクライアント又はサーバとして機能することを可能にする。これは、HTML5において利用可能ではないネットワークOS APIを要求した任意の他のネットワークサービスサーバ又はクライアントに当てはまる。
図4は、1つの実装形式に従った、HTMLブラウザ410として示されるサーバエンティティとして動作するNEHAと、ミラーリングされたサービス/デバイス420として示されるMNE120との間の通信システム400におけるフロー図を例示する。図4は、ウェブサービスクライアント430(クライアントエンティティとも呼ばれる)が、ネットワーク内のミラーリングされたサービス420へウェブプロトコルにおいて呼を開始する場合のフローを例示する。ミラーリングされたサービス420は、必要な場合には呼を変換し、開始フェーズにおいて確立されたウェブソケットトンネルを介して、要求をHTML5アプリケーション410へプロキシし、及び/又は転送する。HTML5アプリケーション410は、要求を取り扱い、応答を生成し、ミラーリングされたサービス420に接続されるウェブソケットを介して応答を転送する。ミラーリングされたサービス420は、必要な場合には、応答を前記プロトコルへ変換し、応答をウェブサービスクライアント430へ前記プロトコルにおいて送信する。
下記のブロックは、システム400によって処理される。サービスクライアント430は、ミラーリングされたサービスIPアドレスによって示されるMNE120に対して要求を行う431。ミラーリングされたサービス420は、要求を取り扱い、必要とされるプロトコルについてのプロキシとして動作する421。ミラーリングされたサービス420は、要求をウェブソケットトンネルを通じてHTML5ブラウザ410へ転送する423。HTML5ブラウザアプリケーションは、JavaScript言語のウェブサービス要求を取り扱う411。HTML5ブラウザ410は、応答をウェブソケットトンネルを通じてミラーリングされたサービス/デバイス420へ返す413。ミラーリングされたサービス420は、応答を要求側、即ち、サービスクライアント430へ返す425。サービスクライアント430は、応答を受信する433。HTML5ブラウザ410は、図1から図3に関して上述されたように、ユーザエンティティ110、210上で実行され得る。ミラーリングされたサービス420は、図1から図3に関して上述されたように、MNE120、220上で実行され得る。
図5は、非HTTPプロトコルについてのクライアントエンティティとして動作するNEHAと、MNE120と、非標準的なHTML5ネットワークプロトコル(network protocol,NS)サーバとして動作するネットワークエンティティとの間の通信システム500におけるフロー図を例示する。NEHA、MNE120及びNEは、1つの実装形式に従って、それぞれHTML5ブラウザ510、ミラーリングされたサービス/デバイス520及びNSサービスサーバ530として示される。要求についてのクライアントエンティティは、HTML5アプリケーションにおいてJavaScriptで実装され得、HTML5アプリケーションから、ミラーリングされたサービス/デバイス520への転送を、開始フェーズにおいて確立されたウェブソケットトンネルを使用することによって開始し得る。ミラーリングされたサービス/デバイス520は、次いで、要求をプロキシし、必要な場合には要求を変換し、要求を非標準的なHTML5ネットワークプロトコル(NS)サーバ530へ転送する。NSサーバプロトコル530からの応答は、ミラーリングされたサービス/デバイス520によって受信され、ミラーリングされたサービス/デバイス520は、次いで、必要な場合には応答を変換し、応答をHTML5アプリケーション510へウェブソケットトンネルを介して転送する。
下記のブロックは、システム500によって処理される。HTML5ブラウザ510は、要求をNSネットワークプロトコルにおいてNSサーバエンティティ530へ送信する515。HTML5ブラウザ510アプリケーションは、JavaScript言語の要求を、ウェブソケットトンネルを使用して、ミラーリングされたサービス/デバイス520へ転送する511。ミラーリングされたデバイス520は、要求をウェブソケットトンネルを通じて転送する523。ミラーリングされたデバイス520は、必要とされるプロトコルについてのプロキシ又はサーバとして動作して、要求を取り扱う521。サービスサーバ530は、NSネットワークプロトコル要求を取り扱い531、応答を送信する533。ミラーリングされたデバイス520は、応答を要求側、即ち、HTML5ブラウザ510へ返す。ミラーリングされたデバイス520は、応答をウェブソケットトンネルを通じて転送する527。HTML5ブラウザ510は、応答をウェブソケットを介して受信し、NEネットワークプロトコルをJavaScript言語で取り扱う513。
HTML5ブラウザ510は、図1から図3に関して上述されたように、ユーザエンティティ110、210上で実行され得る。ミラーリングされたサービス520は、図1から図3に関して上述されたように、ネットワークエンティティ120、220上で実行され得る。NSネットワークプロトコルサーバ530は、図4に関して上述されたように、サービスクライアント430上で、例えば、HTTPプロトコルサーバと共に、実行され得る。
図6は、本システムの例示的な実装のフロー図600を例示する。本システムは、NEHA610と、HTTPサーバ621と、MNE120として動作するミラーリングされたDMR623と、NE615とを備える。NEHA610は、サーバエンティティとして動作し、NE615は、クライアントエンティティとして動作する。NEHAは、HTML5ブラウザを備える。HTML5ブラウザは、AVCP611及びDMR613を備える。ブラウザ610内のDLNA DMR613は、1つの実装形式に従って、SSDP、GENA、SOAPサービスミラーリングバンドルを使用する。DLNA DMR613は、UPnPメディアレンダラテンプレートを実装しており、そのため、制御のためにSOAP、検出のためにSSDP、イベントメカニズムのためにGENA、及びアドレッシングのためにHTTP上のXMLを実装することを必要とする。
図6は、フロー図600において、どのようにミラーリングされたDMRデバイス623がインストールされるかと、検出からアドレッシングまで並びに制御及びその後のイベントまでの動作の全てのフローとを示す。ブラウザ610は、オーディオビデオ制御ポイント(audio video control point,AVCP)611及びDMR613を備える。DMC/AVCP615は、ブラウザ610の外部に実装される。HTTPサーバ621及びミラーリングされたDMR623は、サーバ610上にインストールされる。
図6によれば、下記のフローシーケンス又は当該フローシーケンスの一部が実装され得る。HTTPサーバ621は、メッセージをNEHA610のブラウザ内のHTML5アプリケーションへ送信して、ウェブページ及びJSS、CSS、HTMLを得る。DMR613は、メッセージをHTTPサーバ621へ送信して、ミラーインスタンスのブリングアップを要求する。このメッセージは、HTTPサーバ621によって、ミラーリングされたDMR623へ転送される。二方向ウェブソケットパーシステントコネクションは、DMR613とミラーリングされたDMR623との間で確立される。ミラーリングされたDMR623は、メッセージをDMC615へ送信して、新たなデバイスをパブリッシュ/アドバタイズする。DMC615は、その新たなデバイスについてのDMR記述XMLファイルを要求する。ミラーリングされたDMR623は、メッセージを(ウェブソケット上で)DMR613へ送信して、DMR記述XMLを得る。ミラーリングされたDMR623は、DMR記述ファイルをDMC615へ送信する。DMC615は、あらゆるサービスの制御及びイベントURLを抽出する。DMC615は、メッセージをミラーリングされたDMR623へ送信して、接続マネージャ(connection manager,CM)並びにオーディオ及びビデオトランスポート(audio and video transport,AVT)サービス制御URL(SOAP)をアクティブ化する。ミラーリングされたDMR623は、メッセージをDMR613へ送信して、CM及びAVTサービス制御URLを(ウェブソケット上で)アクティブ化する。DMC615は、GENAメッセージをミラーリングされたDMR623へ送信して、イベント変数をDMRサービス上に登録する。ミラーリングされたDMR623は、メッセージをDMR613へ送信して、サブスクリプションURL情報をパーシステントウェブソケットコネクションを通じて渡す。ミラーリングされたDMR623は、GENAメッセージをDMC615へ送信して、サブスクリプションSIDを返す。変数変化が、DMR623のサービスのうちの1つにおいて発生する場合、DMR623は、DMC615に、GENA通知イベントメッセージによって、変数が登録されたURI上で変化したことを通知する。
図7は、1つの実装形式に従った、SSDP、GENA、SOAPサービスミラーリングを使用するブラウザ710内にDLNA DMR711を有するシステム700の例示的な実装のブロック図を例示する。システム700は、図6に関して上述されたようなフロー図600を実装し得る。システム700は、NEHA710と、ネットワークサーバ又はホームクラウドにおいて配置されるMNE120として動作するミラーリングされたDMR720と、NEとして動作するDMC/AVCP740とを備える。NEHA710は、サーバエンティティとして動作し、NE740は、クライアントエンティティとして動作する。NEHAは、ウェブブラウザを備える。NEHA710のウェブブラウザは、HTML5アプリケーション、例えば、HTML5プレーヤビデオタグ713、JavaScript711で実装されるDMR及びウェブソケットパーシステントコネクション715を含む。ミラーリングされたDMR720は、ネットワーク730を通じてウェブブラウザ710のウェブソケットパーシステントコネクション715に接続されるウェブソケットパーシステントコネクション721を含む。ミラーリングされたDMR720は、SSDPプロキシ725、SOAPプロキシ726、GENAサブスクリプションプロキシ727及び記述XML728を含むhttpサーバ723を含む。DMC730は、制御メッセージ、イベントメッセージ及び記述メッセージを、ミラーリングされたDMR720へ送信し得る。
UPnPデバイスについての検出サービスは、SSDPであり得る。SSDPデバイスは、周期的な通知メッセージを特定のマルチキャストアドレス上で送信し、同じマルチキャストアドレス上で送信される検索要求に応じる。
図7は、ネットワーク内のSSDPミラーリングされたサービスがマルチキャストメッセージを送受信し、それらをユニキャストで転送することを示す。ウェブソケットトンネル731を通じて、MNE120 720は、検索要求をHTML5アプリケーション713へ転送して、通知メッセージに応答するサービス内の何らかの論理層を取り扱い、又は要求側へ返信する。HTML5アプリケーション713から送信される通知メッセージは、ウェブソケットトンネル731を通じて周期的に転送され、次いで、SSDPマルチキャストアドレス上でネットワークへ送信される。UPnPデバイスについてのアドレッシングサービスは、HTTP上のxmlであり得る。全ての通信がウェブソケット731を通じてHTML5 JavaScript711へトンネリングされる基本的な実装が示される。図7に示されない高度な実装において、アドレッシングサービスは、XML記述文書をキャッシュし、又はそれらを一度にHTML5アプリケーション713から受信する。UPnPデバイスについての制御サービスは、SOAPであり得る。SOAPは、基本的に、http上のxmlを付加的なHTTPヘッダと共に使用するRPCである。SOAPのミラーリングされたサービスインスタンスプロキシ726は、SOAP要求を受信し、必要な全ての関連情報を収集し、それをウェブソケットトンネルを通じてHTML5アプリケーション713へ転送して、アクションを取扱い又は実行する。次いで、HTML5アプリケーション713は、UPnPアクションのための必要とされる応答に従ってウェブソケットトンネル731を通じてリソースを返して、SOAPのミラーリングされたサービスインスタンスプロキシ726に、リソースを関連するHTTPヘッダを含むSOAP応答へ変換させる。UPnPにおけるイベントメカニズムは、ミラーリングされたGENAプロキシ727が利用可能であるネットワーク内のミラーリングされたDMR720におけるそれについてのGENAであり得る。ミラーリングされたGENAプロキシ727は、加入者のURIを受信して、加入者にイベントチャージを通知するGENAサブスクリプション要求を取り扱う。要求は、HTML5アプリケーション713へウェブソケットトンネル731を介して転送される。HTML5アプリケーション713は、図6及び図7に示されるように、URIをサービスサブスクリプションリストに追加し、サブスクリプションID SID及びサブスクリプションタイムアウトを返す(サブスクリプションIDが加入者制御ポイントへ、この場合にはDMC)。応答は、ウェブソケットトンネル731を通じてトンネリングされ、ミラーリングされたGENAサービスを介して加入者へ送信される。加入者は、サブスクリプションタイムアウトが同じように発生した後、サブスクリプションを更新する。いったんイベントが、DMRのサービスのうちの1つにおいて発生すると、例えば、DMRが一時停止されると、AVTransportサービスは、PAUSEへの再生状態変化と共にLasChange通知をサブスクリプションリストURIへ送信し、それをXMLHttpReqオブジェクトを介してHTTPクライアントとして直接に行う。
ウェブブラウザ710は、図1から図3に関して上述されたように、ユーザエンティティ110、210上で実行され得る。ミラーリングされたサービス720は、図1から図3に関して上述されたように、ネットワークエンティティ120、220上で実行され得る。
図8は、所望のネットワークプロトコルがIGMPである場合の、本システムの例示的な実装のフロー図800を例示する。本システムは、HTML5アプリケーション811を有するNEHA810と、MNE120として動作するミラーリングされたIGMPクライアント823と、RUISのようなHTTPサーバ821と、NEとして動作するルータネットワークエンティティ827とを備える。NEHA810は、ウェブブラウザを備える。HTML5アプリケーション811は、1つの実装形式に従って、IGMP及びマルチキャストを使用して、ユニキャストサービスをミラーリングする。図8は、今までは可能ではなかった、HTML5アプリケーションにおけるNEネットワークプロトコルクライアント実装を例示する。図8に図示されるような実装においては、ミラーリングされたIGMPクライアント823及びウェブソケット接続を使用することが可能である。図8は、どのようにHTML5アプリケーション811がIGMPクライアントとして基本的に動作するマルチキャストアドレスへ送信及びリッスンするかを示す。HTML5アプリケーション811は、NEHA810のブラウザ内へダウンロードされ得、アプリケーションは、特定のマルチキャストアドレスについてIGMPクライアントを初期化し、ウェブソケット双方向接続を開始し得る。新たな初期化されたミラーリングされたIGMPクライアント823は、休眠(reposed)マルチキャストアドレスを追加し、そのアドレスをリッスンすることを始め得る。マルチキャストメッセージ/ストリームが、ミラーリングされたIGMPクライアント823に受信される場合、ミラーリングされたIGMPクライアント823は、マルチキャストメッセージ/ストリームをユニキャストへ変換し、それをHTML5アプリケーション811へ確立されたウェブソケットトンネルを介して転送する。HTML5アプリケーション811がマルチキャストメッセージを送信したいと望む場合はいつでも、HTML5アプリケーション811は、図8に例示されるように、マルチキャストメッセージをユニキャストでウェブソケットトンネルを介して送信し、ミラーリングされたIGMPクライアント823は、それをマルチキャストへ変換し、それを前記マルチキャストアドレスへ送信する。
NEHA810のブラウザは、図1から図3に関して上述されたように、ユーザエンティティ110、210上で実行され得る。ミラーリングされたIGMPクライアント823は、図1から図3に関して上述されたように、ネットワークエンティティ120、220上で実行され得る。
図8によれば、下記のフローシーケンス又は当該フローシーケンスの一部が、実装される。サーバ820内のHTTPサーバ821 RUISは、メッセージをNEHA810のブラウザ内のHTML5アプリケーション811へ送信して、ウェブページ及びJSを得る。HTML5アプリケーション811は、メッセージをRUIS821へ送信して、特定のマルチキャストアドレスについてのIGMPミラーデバイスのブリングアップを要求する。このメッセージは、RUIS821によって、サーバ820上のミラーリングされたIGMPクライアント823へ転送される。二方向ウェブソケットパーシステントコネクションは、HTML5アプリケーション811とミラーリングされたIGMPクライアント823との間で確立される。IGMP追加アドレスは、ミラーリングされたIGMPクライアント823によってネットワークエンティティ827へ転送される。ネットワークエンティティ827は、マルチキャスト(multicast,MX)ストリームを受信する。ミラーリングされたIGMPクライアント823は、マルチキャストアドレス825をリッスンして、MXストリームを受信する。ミラーリングされたIGMPクライアント823は、メッセージをHTML5アプリケーション811へ送信して、ストリームをユニキャストへ変換し、それをウェブソケットトンネルを通じて転送する。HTML5アプリケーション811は、メッセージを、ミラーリングされたIGMPクライアント823へウェブソケットトンネルを通じて送信する。このメッセージは、ミラーリングされたIGMPクライアント823によってMXへ変換され、マルチキャストアドレス825へ送信される。
図9は、1つの実装形式に従った、ネットワーク内のMNE120として動作するミラーリングされたIPTVデバイス922を使用するHTML5アプリケーション911を有するIPTVクライアントデバイス910の例示的な実装のフロー図900を例示する。IPTVのミラーリングされたデバイス922は、HTML5アプリケーション911がIPTVクライアントとして動作することを可能にする、ミラーリングされたサービスのバンドルであり得る。この説明的な実装におけるサービスのバンドルは、ミラーリングされたチャネルサービス925、ミラーリングされたトランスコードサービス927及びミラーリングされたIGMPサービス929であり得る。図9は、どのようにHTML5アプリケーション911がそのコード及びHTML表現をHTTPサーバRUIS(Remote User Interface server)921からダウンロードし、次いで、ネットワーク内のミラーリングされたIPTVデバイス922を初期化し、そのサービスへのウェブソケットトンネルを確立し、どのメディアフォーマットを再生し得るかというその能力をビデオタグにおいて転送するかを例示する。次いで、HTML5アプリケーション911は、要求されたチャネルをセットして、IPTVチャネルのミラーリングされたサービス922を始める。ミラーリングされたチャネルサービスは、IGMPサービスを接続し、特定のチャネルについての要求されたマルチキャストアドレスのアドレスを転送する。ミラーリングされたIGMPサービス922は、要求されたマルチキャストアドレスを追加し、そのアドレスをリッスンすることを始める。ミラーリングされたIGMPサービス922は、データ(mpeg2ts上のビデオH.264)を、ミラーリングされたトランスコードサービスへ転送する。ミラーリングされたトランスコードサービスは、必要な場合には、データを、サポートされるストリーミングプロトコルへ、要求側のHTML5アプリケーションビデオタグによってトランスコードする。HTML5アプリケーション911が、HTML5アプリケーション911はmpeg2ts上のH.264をサポートすることを特定する場合、トランスコードする必要はなく、マルチキャストは、ユニキャストへ変換され、ストリームは、以前に確立されたウェブソケットトンネルを介して、HTML5アプリケーション911へ送信される。HTML5アプリケーション911は、ストリームを受信し、ビデオデータをビデオタグ要素へ渡す。
ブラウザ910は、図1から図3に関して上述されたように、ユーザエンティティ110、210上で実行され得る。ミラーリングされたIPTVデバイス922は、図1から図3に関して上述されたように、ネットワークエンティティ120、220上で実行され得る。
図10は、1つの実装形式に係る、NEHAとMNE120との間でパーシステントコネクションを開始するための方法1000の概略図を示す。
NEHA及びMNE120は、図1から図9に関して上述されたようなエンティティであり得る。方法1000は、ウェブサービスを要求するステップ1001を含み得、要求するステップは、所望のネットワークプロトコルを含む。方法1000は、要求するステップに応答して、所望のネットワークプロトコルに従って、ウェブサービスのミラーリングされたインスタンスをブリングアップするステップ1003を含み得る。方法1000は、ウェブサービスの要求側とウェブサービスとの間のパーシステントコネクションを、ウェブサービスのミラーリングされたインスタンスに基づいて確立するステップ1005を含み得る。
1つの実装形式において、要求は、HTML5ブラウザによって開始される。1つの実装形式において、パーシステントコネクションは、「ws」と省略されるウェブソケット接続、特に、HTML5ウェブソケット接続を含む。1つの実装形式において、パーシステントコネクションは、「wss」と省略されるセキュアリンク接続、特に、暗号化されたセキュアリンク接続を含む。1つの実装形式において、NEHA110は、ウェブサービスについての要求を開始するように構成されたウェブブラウザを含む。1つの実装形式において、ウェブブラウザは、ウェブサービスについての要求を開始するように構成されたHTML5アプリケーションを含む。1つの実装形式において、ウェブサービスのミラーリングされたインスタンスは、NEHA110をウェブサービスへパーシステントコネクションを通じて接続するプロキシとして動作するように構成される。1つの実装形式において、ウェブサービスのミラーリングされたインスタンスは、クライアントエンティティの要求のうちの少なくとも一部を取り扱うように構成される。1つの実装形式において、ウェブサービスのミラーリングされたインスタンスは、MNE120によって所望のネットワークプロトコルに従って起動されるウェブサービスのセットを含む。1つの実装形式において、NEHA110は、スクリプト言語インターフェース、特に、JavaScriptインターフェースを提供するパーシステントコネクションを確立するように構成される。1つの実装形式において、MNE120は、自動検出制御デバイス、特に、HTML5、UPnP、Bonjourのうちの1つを後述されるようにNEHAのHTML5アプリケーションにおいて実行することを可能にするように構成される。1つの実装形式において、MNE120は、メディアレンダラデバイス、特に、UPnPメディアレンダラデバイス及びDLNAデジタルメディアレンダラデバイスのうちの1つを上述されたようにNEHAのHTML5アプリケーションにおいて実行することを可能にするように構成される。1つの実装形式において、MNE120は、ビデオクライアントデバイス、特に、IPTVデバイス及びIGMPデバイスのうちの1つを上述されたようにNEHAのHTML5アプリケーションにおいて実行することを可能にするように構成される。1つの実装形式において、所望のネットワークプロトコルは、下記のネットワークプロトコルのうちの1つを含む:上述されたようなHTTP、非HTTP、SSDP、SOAP、GENA及びIGMP、又はW3Cにおいてサポートされない任意の他のネットワークプロトコル。
上記の実装において、ウェブサービスのミラーリングされたインスタンスは、ミラーリングされたサービスとも呼ばれる。
前記から、様々な方法、システム、記録媒体上のコンピュータプログラム等が提供されることは、当業者には明らかであろう。
本開示は、実行される場合に、少なくとも1つのコンピュータに、本明細書において説明される実行ステップ及び算出ステップを実行させるコンピュータ実行可能なコード又はコンピュータ実行可能な命令を含むコンピュータプログラム製品もサポートする。
多くの代替案、変形例、及びバリエーションは、上記の教示に照らせば、当業者には明らかとなるであろう。当然ながら、当業者は、本明細書において説明される適用例の他に、本発明の多くの適用例が存在することを容易に認識する。本発明は、1つ又は複数の特定の実施形態を参照しつつ説明されてきたが、当業者は、本発明の範囲から逸脱することなく、多くの変更が実施形態に対して行われ得ることを認識する。したがって、添付の特許請求の範囲及びその均等物の範囲内で、本発明は、本明細書において具体的に説明された以外の方法で実施され得ることが、理解されるべきである。