JPWO2018043111A1 - 情報処理装置、情報処理方法、及び、情報処理システム - Google Patents
情報処理装置、情報処理方法、及び、情報処理システム Download PDFInfo
- Publication number
- JPWO2018043111A1 JPWO2018043111A1 JP2018537100A JP2018537100A JPWO2018043111A1 JP WO2018043111 A1 JPWO2018043111 A1 JP WO2018043111A1 JP 2018537100 A JP2018537100 A JP 2018537100A JP 2018537100 A JP2018537100 A JP 2018537100A JP WO2018043111 A1 JPWO2018043111 A1 JP WO2018043111A1
- Authority
- JP
- Japan
- Prior art keywords
- proxy
- service
- information processing
- slave
- master
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2408—Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本技術は、プロキシを複数設置する場合に、適切な負荷分散を行うことができるようにする情報処理装置、情報処理方法、及び、情報処理システムに関する。情報処理装置が、複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定することで、プロキシを複数設置する場合に、適切な負荷分散を行うことができるようになる。本技術は、例えば、家庭内LANやケーブルオペレータのヘッドエンド、モバイル網の基地局等のネットワークに接続されるFWプロキシ装置に適用することができる。
Description
本技術は、情報処理装置、情報処理方法、及び、情報処理システムに関し、特に、プロキシを複数設置する場合に、適切な負荷分散を行うことができるようにした情報処理装置、情報処理方法、及び、情報処理システムに関する。
インターネットを介してコンテンツを配信するサーバと、当該コンテンツを再生するクライアント装置との間に、プロキシサーバ(プロキシ)を設置することで、クライアント装置からの要求に対する応答性能を高める技術が提案されている(例えば、特許文献1参照)。
ところで、クライアント装置が接続されるネットワークに、複数のプロキシが設置される場合に、プロキシごとの負荷を適切に分散させたいという要請があるが、現状では、そのような要請に応えるための技術方式は確立されていない。
本技術はこのような状況に鑑みてなされたものであり、プロキシを複数設置する場合に、適切な負荷分散を行うことができるようにするものである。
本技術の第1の側面の情報処理装置は、複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備える情報処理装置である。
本技術の第1の側面の情報処理装置は、独立した装置であってもよいし、1つの装置を構成している内部ブロックであってもよい。また、本技術の第1の側面の情報処理方法は、上述した本技術の第1の側面の情報処理装置に対応する情報処理方法である。
本技術の第1の側面の情報処理装置、及び、情報処理方法においては、複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲が決定される。
本技術の第2の側面の情報処理システムは、マスタプロキシが稼働する第1の情報処理装置と、スレーブプロキシが稼働する1又は複数の第2の情報処理装置と、1又は複数のクライアント装置とが、ネットワークを介して接続された情報処理システムにおいて、前記第1の情報処理装置は、複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記スレーブプロキシに対する前記マスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備え、前記第2の情報処理装置は、複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記マスタプロキシに対する前記スレーブプロキシとして機能し、前記マスタプロキシにより決定された担当範囲に応じたサービスにより配信されるコンテンツのストリームを処理する処理部を備える情報処理システムである。
本技術の第2の側面の情報処理システムにおいては、マスタプロキシが稼働する第1の情報処理装置と、スレーブプロキシが稼働する1又は複数の第2の情報処理装置と、1又は複数のクライアント装置とが、ネットワークを介して接続された情報処理システムにおいて、前記第1の情報処理装置によって、複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記スレーブプロキシに対する前記マスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲が決定され、複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記マスタプロキシに対する前記スレーブプロキシとして機能し、前記マスタプロキシにより決定された担当範囲に応じたサービスにより配信されるコンテンツのストリームが処理される。
本技術の第1の側面、及び、第2の側面によれば、プロキシを複数設置する場合に、適切な負荷分散を行うことができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
以下、図面を参照しながら本技術の実施の形態について説明する。なお、説明は以下の順序で行うものとする。
1.システムの構成
2.本技術の概要
3.マスタプロキシとスレーブプロキシの関係によるFWプロキシ装置の負荷分散
(1)新規のスレーブ・プロキシ装置が追加される場合の例
(2)新規のスレーブ・プロキシ装置がさらに追加される場合の例
(3)クライアント装置によるマスタプロキシの発見・接続の例
4.マスタプロキシとスレーブプロキシの実装例
(1)機械的なサービス担当範囲の割り当ての例
(2)サービスのアクセス頻度に応じた担当範囲の割り当ての例
(3)サービスのアクセス頻度に応じたBSごとの担当範囲の割り当ての例
(4)マスタプロキシとスレーブプロキシのトポロジの例
5.変形例
6.コンピュータの構成
2.本技術の概要
3.マスタプロキシとスレーブプロキシの関係によるFWプロキシ装置の負荷分散
(1)新規のスレーブ・プロキシ装置が追加される場合の例
(2)新規のスレーブ・プロキシ装置がさらに追加される場合の例
(3)クライアント装置によるマスタプロキシの発見・接続の例
4.マスタプロキシとスレーブプロキシの実装例
(1)機械的なサービス担当範囲の割り当ての例
(2)サービスのアクセス頻度に応じた担当範囲の割り当ての例
(3)サービスのアクセス頻度に応じたBSごとの担当範囲の割り当ての例
(4)マスタプロキシとスレーブプロキシのトポロジの例
5.変形例
6.コンピュータの構成
<1.システムの構成>
(伝送システムの構成例)
図1は、本技術を適用した伝送システムの一実施の形態の構成を示す図である。なお、システムとは、複数の装置が論理的に集合したものをいう。
図1は、本技術を適用した伝送システムの一実施の形態の構成を示す図である。なお、システムとは、複数の装置が論理的に集合したものをいう。
図1において、伝送システム1は、FWプロキシ装置10−1乃至10−N(N:1以上の整数)、クライアント装置20−1乃至20−M(M:1以上の整数)、及び放送サーバ40を含んで構成される。
伝送システム1において、FWプロキシ装置10−1乃至10−Nと、クライアント装置20−1乃至20−Mとは、エンドユーザ宅2に構築された家庭内LAN(Local Area Network)等のネットワーク30を介して、相互に接続され、通信を行うことが可能である。
FWプロキシ装置10−1は、ネットワーク30に接続されたデバイスと、放送サーバ40や送信所50などからなる放送伝送路60との間に設置され、フォワードプロキシ(Forward Proxy)としての機能(ゲートウェイ機能)を有している。FWプロキシ装置10−1は、フォワードプロキシ機能を提供するための専用のサーバや、テレビ受像機やセットトップボックス(STB:Set Top Box)、ネットワークストレージなどから構成される。
FWプロキシ装置10−1は、送信所50を介して、放送サーバ40から送信されてくる放送波を受信し、放送波から得られるコンテンツのストリームを、ネットワーク30に接続されたクライアント装置20−1乃至20−Mのいずれかに送信(転送)する。
FWプロキシ装置10−2乃至10−Nは、FWプロキシ装置10−1と同様に、専用のサーバやテレビ受像機などから構成され、フォワードプロキシとしての機能を有している。FWプロキシ装置10−2乃至10−Nは、放送サーバ40からの放送波から得られるコンテンツのストリームを、ネットワーク30に接続されたクライアント装置20−1乃至20−Mのいずれかに送信(転送)する。
ここで、詳細は後述するが、ネットワーク30に接続されるFWプロキシ装置10−1乃至10−Nにおいては、いずれかのFWプロキシ装置10が、マスタプロキシとして機能し、それ以外のFWプロキシ装置10が、スレーブプロキシとして機能するマスタ・スレーブ関係を有している。そして、FWプロキシ装置10−1乃至10−Nが、マスタ・スレーブ関係を有することで、マスタプロキシが稼働するFWプロキシ装置10によって、各FWプロキシ装置10に対し、サービスの担当範囲が割り当てられる。
なお、FWプロキシ装置10−1乃至10−Nを、特に区別する必要がない場合、単に、FWプロキシ装置10と称するものとする。
また、以下の説明では、マスタプロキシとしての機能を有するFWプロキシ装置10を、マスタ・プロキシ装置10Mと称する一方で、スレーブプロキシとしての機能を有するFWプロキシ装置10を、スレーブ・プロキシ装置10Sと称して区別する。
なお、マスタ・プロキシ装置10Mの詳細な構成は、図2を参照して後述する。また、スレーブ・プロキシ装置10Sの詳細な構成は、図3を参照して後述する。また、以下の説明では、マスタ・プロキシ装置10Mとスレーブ・プロキシ装置10Sを、特に区別する必要がない場合には、FWプロキシ装置10と称するものとする。つまり、FWプロキシ装置10は、マスタ・プロキシ装置10M又はスレーブ・プロキシ装置10Sのいずれかとなる。
クライアント装置20−1は、ネットワーク30を介してFWプロキシ装置10−1乃至10−Nのいずれから送信(転送)されてくるコンテンツのストリームを受信して再生する受信機である。すなわち、クライアント装置20−1は、エンドユーザの操作などに応じて、FWプロキシ装置10−1乃至10−Nのいずれかを介して、放送経由で配信されるコンテンツを再生することができる。
クライアント装置20−1は、テレビ受像機やセットトップボックス、パーソナルコンピュータなどの固定受信機、あるいは、スマートフォンや携帯電話機、タブレット型コンピュータなどのモバイル受信機として構成される。さらに、クライアント装置20−1は、ヘッドマウントディスプレイ(HMD:Head Mounted Display)などのウェアラブルコンピュータであってもよい。
クライアント装置20−2乃至20−Mは、クライアント装置20−1と同様に、家庭内で使用される固定受信機又はモバイル受信機などから構成され、FWプロキシ装置10−1乃至10−Nのいずれかを介して、放送経由で配信されるコンテンツのストリームを受信して再生する。
なお、以下の説明では、クライアント装置20−1乃至20−Mを、特に区別する必要がない場合、単に、クライアント装置20と称するものとする。また、クライアント装置20の詳細な構成は、図4を参照して後述する。
放送サーバ40は、例えば、放送局などの放送事業者により提供されるサーバであって、送信所50に設置される送出設備と、専用線などの所定の回線を介して接続される。
放送サーバ40は、番組やCM等のコンテンツのファイル(データ)や制御情報(シグナリング)を処理し、その結果得られるデータを、専用線を介して送信所50内の送出設備に送信する。そして、送信所50内の送出設備は、放送サーバ40からのデータに対し、必要な処理(変調処理等)を施すことで、その結果得られる放送波が、放送伝送路60を介して、エンドユーザ宅2内のFWプロキシ装置10により受信される。
なお、図1の伝送システムでは、FWプロキシ装置10とクライアント装置20が、エンドユーザ宅2内に配置される場合を説明したが、FWプロキシ装置10は、エンドユーザ宅2内に限らず、例えば、ケーブルオペレータのヘッドエンドや、モバイル網の基地局などに設置されるようにして、より広範囲は領域をカバーできるようにしてもよい。
すなわち、例えば、FWプロキシ装置10が、ケーブルオペレータのヘッドエンドに設置される場合、クライアント装置20は、同一のエンドユーザ宅内ではなく、ケーブルテレビのサービスを契約している各エンドユーザ宅内に設置されることになる。また、例えば、FWプロキシ装置10が、モバイル網の基地局に設置される場合、クライアント装置20は、モバイルサービスを契約しているエンドユーザが、屋内又は屋外で所持しているデバイスとなる。
また、FWプロキシ装置10やクライアント装置20は、自動車等の車両に搭載される車載機器であってもよい。さらに、図1の伝送システム1において、ネットワーク30に接続されるデバイスやサーバの間で行われる通信は、無線通信及び有線通信は勿論、無線通信と有線通信とが混在した通信、すなわち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであってもよい。
(マスタ・プロキシ装置の構成)
図2は、図1のFWプロキシ装置10のうち、マスタ・プロキシ装置10Mの構成例を示す図である。
図2は、図1のFWプロキシ装置10のうち、マスタ・プロキシ装置10Mの構成例を示す図である。
図2において、マスタ・プロキシ装置10Mは、処理部100、チューナ101、通信I/F102、及び記憶部103から構成される。
処理部100は、例えば、CPU(Central Processing Unit)やマイクロプロセッサ等から構成される。処理部100は、各種の演算処理や、各部の動作制御などの処理を行う。
チューナ101は、アンテナを介して受信された放送波に対し、必要な処理(復調処理等)を施し、その結果得られる多重化ストリームを、処理部100に供給する。処理部100は、チューナ101から供給される多重化ストリームを処理し、その結果得られるコンテンツのストリームを、通信I/F102に供給する。
通信I/F102は、例えば、通信インターフェース回路等から構成される。通信I/F102は、ネットワーク30に接続されたクライアント装置20から送信されてくるデータを受信し、処理部100に供給する。また、通信I/F102は、処理部100から供給されるコンテンツのストリームを、ネットワーク30を介して、クライアント装置20に送信する。
記憶部103は、例えば、半導体メモリやハードディスクドライブ(HDD:Hard Disk Drive)等から構成される。記憶部103は、処理部100からの制御に従い、各種のデータを記憶する。
処理部100は、マスタプロキシ111、UPnP/SSDPサーバ112、プロキシアプリマネージャ113、ローカルウェブサーバ114、及びSLS処理系115を含む。
マスタプロキシ111は、マスタ・プロキシ装置10Mで稼働するサービスであって、スレーブ・プロキシ装置10Sで稼働するスレーブプロキシに対するマスタプロキシとして機能する。
マスタプロキシ111は、自身(マスタプロキシ)やスレーブプロキシに対し、サービスの担当範囲を割り当てる処理を行う。マスタプロキシ111は、自身が割り当てたサービスの担当範囲に従い、担当範囲のサービスに関する処理を行う。
また、マスタプロキシ111は、クライアント装置20からのリクエストを、対象のサービスを担当するスレーブプロキシに通知する。なお、マスタプロキシ111により行われる処理の詳細は、図7及び図8などを参照して後述する。
UPnP/SSDPサーバ112、プロキシアプリマネージャ113、及びローカルウェブサーバ114は、マスタ・プロキシ装置10Mで稼働するサービスである。
UPnP/SSDPサーバ112、プロキシアプリマネージャ113、及びローカルウェブサーバ114は、マスタプロキシ111と、ネットワーク30に接続されるスレーブ・プロキシ装置10Sで稼働するスレーブプロキシとの間のマスタ・スレーブ関係を確立するための処理を行う。この処理の詳細は、図9及び図16などを参照して後述する。
また、UPnP/SSDPサーバ112、プロキシアプリマネージャ113、及びローカルウェブサーバ114は、マスタプロキシ111と、ネットワーク30に接続されるクライアント装置20との接続を確立するための処理を行う。この処理の詳細は、図18などを参照して後述する。
SLS処理系115は、放送経由で取得される制御情報であるSLS(Service Layer Signaling)に関する処理を行う。SLS処理系115によりSLSが処理されることで、多重化ストリームから、所望のコンテンツのストリーム(担当範囲のサービスで配信されるコンテンツのストリーム)が得られる。なお、SLSの詳細は、図5を参照して後述する。
マスタ・プロキシ装置10Mは、以上のように構成される。
(スレーブ・プロキシ装置の構成)
図3は、図1のFWプロキシ装置10のうち、スレーブ・プロキシ装置10Sの構成例を示す図である。
図3は、図1のFWプロキシ装置10のうち、スレーブ・プロキシ装置10Sの構成例を示す図である。
図3において、スレーブ・プロキシ装置10Sは、処理部150、チューナ151、通信I/F152、及び記憶部153から構成される。なお、チューナ151乃至記憶部153は、図2のチューナ101乃至記憶部103と同様に構成されるため、ここではその説明は省略する。
処理部150は、例えば、CPUやマイクロプロセッサ等から構成される。処理部150は、各種の演算処理や、各部の動作制御などの処理を行う。
処理部150は、スレーブプロキシ161及びSLS処理系162を含む。
スレーブプロキシ161は、スレーブ・プロキシ装置10Sで稼働するサービスであって、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111に対するスレーブプロキシとして機能する。
スレーブプロキシ161は、マスタプロキシ111により割り当てられたサービスの担当範囲に従い、担当範囲のサービスに関する処理を行う。なお、スレーブプロキシ161により行われる処理の詳細は、図7及び図8などを参照して後述する。
SLS処理系162は、放送経由で取得される制御情報であるSLSに関する処理を行う。SLS処理系162によりSLSが処理されることで、多重化ストリームから、所望のコンテンツのストリーム(担当範囲のサービスで配信されるコンテンツのストリーム)が得られる。なお、SLSの詳細は、図5を参照して後述する。
スレーブ・プロキシ装置10Sは、以上のように構成される。
(クライアント装置の構成)
図4は、図1のクライアント装置20の構成例を示す図である。
図4は、図1のクライアント装置20の構成例を示す図である。
図4において、クライアント装置20は、処理部200、通信I/F201、表示部202、及びスピーカ203から構成される。
処理部200は、例えば、CPUやマイクロプロセッサ等から構成される。処理部200は、各種の演算処理や、各部の動作制御などの処理を行う。
通信I/F201は、例えば、通信インターフェース回路等から構成される。
通信I/F201は、処理部200からの制御に従い、ネットワーク30に接続されたマスタ・プロキシ装置10Mに対し、所望のサービスで配信されるコンテンツを要求する。また、通信I/F201は、ネットワーク30を介して、マスタ・プロキシ装置10M又はスレーブ・プロキシ装置10Sから送信(転送)されてくるコンテンツのストリームを受信し、処理部200に供給する。
処理部200は、通信I/F201から供給されるコンテンツのストリームを処理し、その結果得られるデータのうち、ビデオデータを、表示部202に供給し、オーディオデータを、スピーカ203に供給する。
表示部202は、例えば、LCD(Liquid Crystal Display)やOELD(Organic Electroluminescence Display)等のディスプレイから構成される。表示部202は、処理部200から供給されるビデオデータに対応する映像を表示する。スピーカ203は、処理部200から供給されるオーディオデータに対応する音声を出力する。
なお、表示部202が、タッチパネルの機能を有している場合には、当該タッチパネルに対するエンドユーザの操作に応じた操作信号が処理部200に供給され、処理部200は、当該操作信号に応じた処理を行う。また、図4には図示していないが、物理的なボタン等の入力部を設けて、当該入力部に対するエンドユーザの操作に応じた操作信号が、処理部200に供給されるようにしてもよい。
処理部200は、アプリケーション211及びブラウザ212を含む。アプリケーション211及びブラウザ212により、レンダラ機能が提供される。
アプリケーション211は、ネットワーク30に接続されるクライアント装置20が、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111との接続を確立するための処理を行う。なお、アプリケーション211で行われる処理の詳細は、図18などを参照して後述する。
ブラウザ212は、通信I/F201から供給されるコンテンツのストリームであって、マスタ・プロキシ装置10M又はスレーブ・プロキシ装置10Sにより放送経由で受信されたデータを処理し、コンテンツを再生する。
なお、ブラウザ212は、DASHプレーヤとしての機能を有するが、その詳細は、図5を参照して後述する。また、ブラウザ212で行われる処理の詳細は、図8や図18などを参照して後述する。
クライアント装置20は、以上のように構成される。
(本技術のプロトコルスタック)
図5は、本技術のIP伝送方式のプロトコルスタックの例を示す図である。
図5は、本技術のIP伝送方式のプロトコルスタックの例を示す図である。
デジタル放送の伝送方式として、現状では、MPEG2-TS(Transport Stream)方式が広く普及しているが、今後は、通信の分野で用いられているIP(Internet Protocol)パケットをデジタル放送に用いたIP伝送方式が普及することが想定されている。
例えば、次世代地上波放送規格の1つであるATSC(Advanced Television Systems Committee)3.0においても、IP伝送方式を採用して、より高度なサービスを提供できるようにすることが期待されている。本技術においても、ATSC3.0等と同様に、IP伝送方式を採用することができる。
図5において、最も下位の階層は、物理層(Physical Layer)とされる。ATSC3.0等のIP伝送方式のデジタル放送では、一方向の放送を利用した伝送に限らず、一部のデータを、双方向の通信を利用して伝送する場合があるが、放送(Broadcast)を利用する場合、その物理層は、サービス(チャネル)のために割り当てられた放送波の周波数帯域等が対応することになる。
物理層(Physical Layer)の上位の階層は、データリンク層(Data Link Layer)とされる。また、データリンク層の上位の階層は、IP(Internet Protocol)層とUDP(User Datagram Protocol)層とされる。IP層とUDP層は、通信の階層モデルにおけるネットワーク層とトランスポート層に相当する層であり、IPアドレスとポート番号により、IPパケットとUDPパケットが特定される。
ここで、ATSC3.0では、制御情報(シグナリング)として、LLS(Low Level Signaling)とSLS(Service Layer Signaling)を用いることが想定されている。LLSは、SLSよりも下位の層で伝送される制御情報である。SLSは、サービス単位の制御情報である。すなわち、ATSC3.0では、トランスポート層の制御情報が、LLSとSLSの2階層で伝送される。
LLSには、SLT(Service List Table)等のメタデータが含まれる。SLTメタデータは、サービス(チャネル)の選局に必要な情報など、放送ネットワークにおけるストリームやサービスの構成を示す基本情報を含む。このSLTメタデータは、UDPパケットを含むIPパケットであるUDP/IPパケットに含めて伝送される。ただし、SLTメタデータを格納したUDP/IPパケットは、特別なIPアドレスとポート番号で伝送されることになる。
IP層とUDP層に隣接する上位の階層は、ROUTE(Real-time Object Delivery over Unidirectional Transport)とされる。ROUTEは、ストリーミングファイル転送用のプロトコルであって、FLUTE(File Delivery over Unidirectional Transport)を拡張したものである。
このROUTEセッションにより、サービスごとに、SLSのファイル(Signaling)や、NRT(Non Real Time)コンテンツのファイル(NRT)、DASHセグメントファイル(DASH)などが伝送される。
ここで、SLSは、サービスレベルの制御情報であり、対象のサービスに属するコンポーネントの探索と選択に必要な情報や属性などを提供するものである。SLSは、USBD(User Service Bundle Description),S-TSID(Service-based Transport Session Instance Description),MPD(Media Presentation Description)等のメタデータを含む。
USBDメタデータは、他のメタデータの取得先などの情報を含む。
S-TSIDメタデータは、LSID(LCT Session Instance Description)をATSC3.0向けに拡張したものであって、ROUTEプロトコルの制御情報である。また、S-TSIDメタデータは、ROUTEセッションで伝送されるEFDT(Extended FDT)を特定することができる。EFDTは、FLUTEで導入されていたFDT(File Delivery Table)を拡張したものであって、転送用の制御情報である。
MPDメタデータは、MPEG-DASHに準拠したストリーミング配信を行うために用いられる、ビデオやオーディオのファイルの制御情報である。
ここで、MPEG-DASHは、OTT-V(Over The Top Video)に従ったストリーミング配信規格であって、HTTP(Hypertext Transfer Protocol)をベースとしたストリーミングプロトコルを用いたアダプティブストリーミング配信に関する規格である。
このMPEG-DASHの規格では、ビデオやオーディオのファイルの制御情報であるメタデータを記述するためのマニフェストファイルと、動画のコンテンツを伝送するためのファイルフォーマットが規定されている。ここでは、前者のマニフェストファイルが、MPD(Media Presentation Description)と称され、後者のファイルフォーマットは、セグメントフォーマットとも称される。
また、トランスポート・プロトコルとして、ROUTEを用いる場合には、ストリーミングのファイルフォーマットとして、MP4ファイルフォーマットを用いることができる。MP4ファイルフォーマットは、ISO/IEC 14496-12で規定されているISO BMFF(ISO Base Media File Format)の派生フォーマットである。
ROUTEセッションで伝送されるセグメントは、イニシャライゼイションセグメント(IS:Initialization Segment)と、メディアセグメント(MS:Media Segment)から構成される。イニシャライゼイションセグメントは、データ圧縮方式等の初期化情報を含んでいる。また、メディアセグメントは、ビデオやオーディオ、字幕のストリームのデータを格納している。すなわち、このメディアセグメントが、DASHセグメント(DASHセグメントファイル)に相当するものである。
このように、番組等のコンテンツを構成するサービスコンポーネント(ビデオやオーディオ、字幕等)のストリームデータは、ISO BMFFの規格に準じたDASHセグメント単位で、ROUTEセッションにより伝送されることになる。
なお、NRTコンテンツは、受信機のストレージに一旦蓄積された後で再生が行われるコンテンツである。また、NRTコンテンツ以外のファイル(例えば、アプリケーションや電子サービスガイド(ESG:Electronic Service Guide)のファイル)がROUTEセッションで伝送されるようにしてもよい。
また、LLSとしてのSLTメタデータや、SLSとしてのUSBD,S-TSID,MPD等のメタデータは、例えば、XML(Extensible Markup Language)等のマークアップ言語により記述されたテキスト形式のデータとすることができる。
一方で、双方向の通信(Broadband)を利用する場合、その物理層(Physical Layer)の上位の階層は、データリンク層(Data Link Layer)とされる。また、データリンク層の上位の階層は、ネットワーク層に相当するIP層とされる。IP層に隣接する上位階層は、トランスポート層に相当するTCP(Transmission Control Protocol)層とされ、さらに、TCP層に隣接する上位階層は、アプリケーション層に相当するHTTP層とされる。
すなわち、これらの階層によって、インターネット等の通信回線で稼働するTCP/IPなどのプロトコルが実装される。
HTTP層に隣接する上位階層のうち、一部の階層は、制御情報(Signaling)と、NRTコンテンツ(NRT)とされる。この制御情報としては、上述したROUTEセッションで伝送される制御情報など、すべての制御情報が含まれる。また、NRTコンテンツは、通信経由で取得されるコンテンツであって、例えば、アプリケーションが含まれる。
HTTP層に隣接する上位階層のうち、上述した階層以外の他の階層は、DASHセグメント(DASH)とされる。すなわち、双方向の通信系のストリーミング配信では、VOD(Video On Demand)番組等のコンテンツを構成するサービスコンポーネント(ビデオやオーディオ、字幕等)のストリームデータが、ISO BMFFの規格に準じたDASHセグメント単位で伝送されることになる。
以上のように、本技術のIP伝送方式のプロトコルスタックにおいては、一方向の放送系の階層と、双方向の通信系の階層の一部が共通のプロトコルとなって、一方向の放送と双方向の通信で、コンテンツを構成するサービスコンポーネントのストリームデータを、ISO BMFFの規格に準じたDASHセグメント単位で伝送することができる。
そのため、一方向の放送系のストリーミング配信と、双方向の通信系のストリーミング配信の双方を行う場合において、上位の階層のプロトコルが共通化されているため、各装置での実装の負担や処理の負担を軽減することができる。
なお、図1の伝送システム1では、送信側に、放送系の放送サーバ40が設けられ、一方向の放送系のストリーミング配信のみに対応した構成を示したが、図5のプロトコルスタックに示したように、本技術は、双方向の通信系のストリーミング配信にも対応することができる。このような双方向の通信系のストリーミング配信に対応した構成については、図27を参照して後述するものとする。
<2.本技術の概要>
ところで、図1に示した伝送システム1のような、ネットワーク30に、複数のFWプロキシ装置10−1乃至10−Nが設置されている環境では、クライアント装置20からのDASHセグメントのリクエストの送付先が、特定のFWプロキシ装置10に固定されてしまうと、それ以外のFWプロキシ装置10(例えば後から追加で設置されたFWプロキシ装置10)が機能しなくなる。
また、クライアント装置20で実行されるブラウザ212のプロキシ設定を利用することで、各クライアント装置20が接続するFWプロキシ装置10をそれぞれ異なるように手動で設定することも可能ではあるが、管理が煩雑となり、FWプロキシ装置10ごとの負荷が容易に分散されない可能性がある。
このように、複数のFWプロキシ装置10−1乃至10−Nが設置されている環境において、FWプロキシ装置10ごとの負荷を、適切に分散させたいという要請があるが、現状では、そのような要請に応えるための技術方式は確立されていない。
そこで、本技術では、複数のFWプロキシ装置10−1乃至10−Nが設置される場合に、FWプロキシ装置10の間に、マスタとスレーブとの関係を持たせて、マスタ・プロキシ装置10Mによって、クライアント装置20からのDASHセグメントのリクエストが、適切にリダイレクションされるようにする。これにより、ネットワーク30において、マスタ・プロキシ装置10M又はスレーブ・プロキシ装置10SのいずれかとなるFWプロキシ装置10ごとの負荷が、適切に分散されることになる。
このFWプロキシ装置10の間のマスタとスレーブとの関係は、FWプロキシ装置10がネットワーク30に追加される度に、手動で設定してもよいし、あるいはFWプロキシ装置10同士が、例えば各自の能力属性(処理能力やストレージ能力等)等に応じたネゴシエーションを行うことで決定してもよい。
ここでは、例えば、ネットワーク30に最初に接続したFWプロキシ装置10をマスタ・プロキシ装置10Mとし、その後、FWプロキシ装置10が追加された場合には、FWプロキシ装置10の能力属性に応じて、マスタ・プロキシ装置10Mを決定すればよい。ただし、マスタ・プロキシ装置10Mは固定とし、常に同一のFWプロキシ装置10が、その役割を担うようにしてもよい。また、マスタ・プロキシ装置10Mは、1つに限らず、複数設置するようにしてもよい。複数のマスタ・プロキシ装置10Mを設けることで、各マスタプロキシ111の処理の負荷を分散させることができる。
マスタとなったFWプロキシ装置10(マスタ・プロキシ装置10M)は、例えば、ユニバーサルプラグアンドプレイ(UPnP:Universal Plug and Play)のSSDP(Simple Service Discovery Protocol)等を利用して、サービス(チャネル)の担当範囲を調整するためのAPI(Application Programming Interface)を公開し、当該APIを通じて、スレーブとなった各FWプロキシ装置10(スレーブ・プロキシ装置10S)に、サービス担当範囲を割り当てる。
ここでは、マスタ・プロキシ装置10Mによって、サービス担当範囲を割り当てるためのデータベース(以下、プロキシ−サービス担当範囲データベースという)が生成されることで、各FWプロキシ装置10(で稼働するマスタプロキシ111とスレーブプロキシ161)に対し、サービス担当範囲が割り当てられる。
なお、UPnPは、デバイスを接続するだけで、対象のネットワークに参加することを可能にするプロトコルである。また、SSDPは、UPnPで用いられるプロコトルの1つで、ネットワーク上のデバイスの探索や応答を行うためのものである。
マスタ・プロキシ装置10Mは、クライアント装置20から、DASHセグメントのリクエストを受けた場合、プロキシ−サービス担当範囲データベースを参照して、担当のFWプロキシ装置10に特定し、当該FWプロキシ装置10にリダイレクションを行う。そして、リダイレクションを受けたFWプロキシ装置10は、割り当てられたサービスの範囲内で、放送経由で配信されるコンテンツのストリームを受信し、ネットワーク30を介してクライアント装置20に送信する。
なお、マスタ・プロキシ装置10Mは、プロキシ−サービス担当範囲データベースを生成する際に、各種のポリシ(規則)に従い、FWプロキシ装置10に対し、サービス担当範囲が割り当てられるようにする。
このようなポリシとしては、例えば、複数のFWプロキシ装置10に対し、対象のエリア内で受信可能な全サービスを機械的に割り当てたり、あるいは、エンドユーザの視聴履歴を考慮に入れて、アクセス頻度の高いサービス群が優先的に負荷分散されるように割り当てたりすることができる。さらには、サービス(チャネル)のザッピングの高速化を図るために、同時に受信可能なサービス群をまとめるなど、様々な規則を選択できるようにする。
なお、サービス群をまとめる単位としては、例えば、ブロードキャストストリームID(BSID: Broadcast Stream ID)単位とすることができる。FWプロキシ装置10において、ブロードキャストストリームIDで指定される周波数帯域(例えば6MHz)で伝送されるデータは一度に取得することができる。このブロードキャストストリームIDについては、例えば、下記の非特許文献1の「Table 6.2 SLT XML Format」などに、その詳細が記述されている。
非特許文献1:ATSC Candidate Standard:Signaling, Delivery, Synchronization, and Error Protection(A/331) Doc. S33-174r15 January 2016
また、新しいFWプロキシ装置10がネットワーク30に接続された場合には、当該ネットワーク30に接続されるFWプロキシ装置10のうち、同一のマスタ・プロキシ装置10M(で稼働するマスタプロキシ111)を共有している1又は複数のスレーブ・プロキシ装置10S(で稼働するスレーブプロキシ161)のそれぞれのサービス担当範囲の再設定が行われる。
ここで、図6には、本技術を適用した場合に行われる、プロキシのサービス担当範囲の割り当てと、セグメントリクエストのリダイレクションの処理の流れの概要を示している。
すなわち、ネットワーク30において、新規のFWプロキシ装置10が接続され、ネットワーク30に参加してきたとき(S1)、マスタ・プロキシ装置10M(で稼働するマスタプロキシ111)は、ネットワーク30に接続された複数のFWプロキシ装置10で稼働するマスタプロキシ111とスレーブプロキシ161が受け持つサービスの担当範囲を決定する(S2)。
このとき、マスタ・プロキシ装置10Mでは、各FWプロキシ装置10が担当するサービス範囲に関するデータを格納したプロキシ−サービス担当範囲データベースが生成され、各FWプロキシ装置10に対し、サービス担当範囲が通知される。これにより、各FWプロキシ装置10においては、マスタ・プロキシ装置10Mからのサービス担当範囲に従い、サービスチューニングの準備が行われる。
その後、ネットワーク30において、クライアント装置20が接続され、放送経由で配信されるコンテンツの再生が開始されるとき、マスタ・プロキシ装置10M(で稼働するマスタプロキシ111)は、クライアント装置20からのDASHセグメントのリクエストのリダイレクションを行う(S3)。
このとき、マスタ・プロキシ装置10Mでは、プロキシ−サービス担当範囲データベースを参照して、クライアント装置20からのDASHセグメントのリクエストの処理を担当すべきFWプロキシ装置10を決定し、当該FWプロキシ装置10に対し、クライアント装置20からのDASHセグメントのリクエストを送信する(リダイレクションする)。
以上のようにして、プロキシのサービス担当範囲の割り当てと、セグメントリクエストのリダイレクションの処理を行うことで、ネットワーク30に複数設置されたFWプロキシ装置10の負荷分散を行うことが可能となるが、以下、その詳細な内容について説明する。
<3.マスタプロキシとスレーブプロキシの関係によるFWプロキシ装置の負荷分散>
(1)新規のスレーブ・プロキシ装置が追加される場合の例
(サービス担当範囲の割り当てと、リクエストリダイレクションの処理の流れ)
まず、図7及び図8のフローチャートを参照して、新規のスレーブ・プロキシ装置10Sが追加される場合における、プロキシのサービス担当範囲の割り当てと、セグメントリクエストのリダイレクションの一連の処理の流れを説明する。
まず、図7及び図8のフローチャートを参照して、新規のスレーブ・プロキシ装置10Sが追加される場合における、プロキシのサービス担当範囲の割り当てと、セグメントリクエストのリダイレクションの一連の処理の流れを説明する。
図7及び図8の説明では、マスタ・プロキシ装置10Mが存在するネットワーク30に対し、新規のスレーブ・プロキシ装置10Sと、クライアント装置20がその順に接続し、クライアント装置20により、放送経由で配信されるコンテンツの再生が指示される場合を説明する。
図7及び図8において、ステップS111乃至S117の処理は、マスタ・プロキシ装置10Mにより実行され、ステップS121乃至S130の処理は、新規で追加されるスレーブ・プロキシ装置10Sにより実行される。一方で、ステップS101乃至S105の処理は、クライアント装置20により実行される。
新規のスレーブ・プロキシ装置10Sが、ネットワーク30に接続されると(S121)、ステップS122において、スレーブプロキシ161は、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111の存在を確認するために、通信I/F152を介して、ネットワーク30に接続されたデバイスに対し、存在確認用のメッセージを、マルチキャストで送信する。
ステップS122の処理で、スレーブ・プロキシ装置10Sにより送信されるメッセージは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS111において、マスタプロキシ111は、スレーブ・プロキシ装置10Sから受信したメッセージに応じて、設定管理APIを生成し、レスポンスとして、ネットワーク30を介してスレーブ・プロキシ装置10Sに通知する。
なお、スレーブプロキシ161からの存在確認に応じたマスタプロキシ111による設定管理APIの通知の詳細は、図9のフローチャートを参照して後述する。
ステップS111の処理で、マスタ・プロキシ装置10Mにより送信される設定管理APIは、ネットワーク30を介して、スレーブ・プロキシ装置10Sにより受信される。
ステップS123において、スレーブプロキシ161は、チューナ151を制御して、サービスのスキャンを行う。ここでは、例えば、チューナ151により初期スキャン処理が行われることで、LLSとして伝送されるSLTメタデータ等から、スレーブ・プロキシ装置10Sにより受信可能なサービスを示すサービススキャン結果が得られる。
一方で、このとき、マスタ・プロキシ装置10Mにおいても、チューナ101により再スキャン処理が行われる(S112)。これにより、マスタ・プロキシ装置10Mでは、LLSとして伝送されるSLTメタデータ等から、マスタ・プロキシ装置10Mにより受信可能なサービスを示すサービススキャン結果が得られる。
ただし、このような、スレーブ・プロキシ装置10Sがサービススキャンを行うタイミングで、マスタ・プロキシ装置10Mによるサービススキャンを行うかどうかは、任意である。
すなわち、マスタ・プロキシ装置10Mが受信可能なサービスは、頻繁に変わるものではないため、一度、サービススキャンを行えば、そのサービススキャン結果を利用し続けることができる。ただし、マスタ・プロキシ装置10Mが、モバイル受信機や車載機器などの移動可能なデバイスとなる場合には、現時点でのエリアにより受信可能なサービスが変化する可能性が高いため、サービススキャンを再度行う必要がある。
ステップS124において、スレーブプロキシ161は、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111に対し、ステップS123の処理で得られるサービススキャン結果を通知する。また、スレーブプロキシ161は、マスタプロキシ111に対し、サービス担当範囲を要求する(S125)。
なお、スレーブプロキシ161は、サービススキャン結果を、サービス担当範囲のリクエストに含めて、同時に送信するようにしてもよい。
ステップS124,S125の処理で、スレーブ・プロキシ装置10Sにより送信される、サービススキャン結果と、サービス担当範囲のリクエストは、マスタ・プロキシ装置10Mにより受信される。
ステップS113において、マスタプロキシ111は、サービススキャン結果に基づいて、サービス担当範囲を決定する。
ここでは、サービススキャン結果として、マスタ・プロキシ装置10M自身のサービススキャン結果と、新規のスレーブ・プロキシ装置10Sのサービススキャン結果が得られる。そして、マスタプロキシ111では、これらのサービススキャン結果を用いて、あらかじめ定められたポリシ(規則)に従い、各FWプロキシ装置10のサービス担当範囲を決定する。
例えば、ここでのポリシとしては、複数のFWプロキシ装置10に対し、対象のエリア内で受信可能な全サービスを機械的に割り当てたり、あるいは、エンドユーザの視聴履歴を考慮に入れて、アクセス頻度の高いサービス群が優先的に負荷分散されるように割り当てたりすることができるのは、先に述べた通りである。なお、ポリシの詳細については、図21乃至図24を参照して後述する。
また、ここでは、各FWプロキシ装置10の能力属性(例えば処理能力等)が取得されるようにすることで、当該能力属性を用いて、ポリシに応じたサービスの担当範囲が決定されるようにしてもよい。これにより、例えば、処理能力が高いFWプロキシ装置10に対しては、担当のサービスの範囲を広げるといったことが可能となる。
なお、ここでは、各FWプロキシ装置10(マスタプロキシ111やスレーブプロキシ161)と、サービス担当範囲とを対応付けたプロキシ−サービス担当範囲データベースが生成され、記憶部103に記憶される。
ステップS114において、マスタプロキシ111は、スレーブプロキシ161に対し、ステップS113の処理で決定されたサービス担当範囲を示す情報(以下、サービス担当範囲情報という)を通知する。
ステップS114の処理で、マスタ・プロキシ装置10Mにより送信される、サービス担当範囲情報は、スレーブ・プロキシ装置10Sにより受信される。
ステップS126において、スレーブプロキシ161は、マスタ・プロキシ装置10Mから受信したサービス担当範囲情報に基づいて、チューナ151を制御して、自身の担当範囲のサービスのチューニングの準備を行う。ここでは、サービス担当範囲情報が示す各サービスの選局の準備が行われる。
一方で、このとき、マスタ・プロキシ装置10Mにおいても、自身の担当範囲のサービスのチューニングの準備が行われる(S115)。なお、スレーブ・プロキシ装置10Sにおいては、リソースに余裕がある場合には、担当範囲のサービスについて、事前にサービスチューニングが行われるようにしてもよい(図8のS127)。
その後、図8に示すように、クライアント装置20が、ネットワーク30に接続されると(S101)、当該クライアント装置20と、マスタ・プロキシ装置10Mとの間で、マスタプロキシ設定処理が行われる(S102)。
このマスタプロキシ設定処理では、クライアント装置20と、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111との間の接続が確立される。なお、マスタプロキシ設定処理の詳細は、図18のフローチャートを参照して後述する。
ステップS103において、アプリケーション211は、マスタプロキシ111に対し、サービス−MPDテーブルを要求する。
ステップS103の処理で、クライアント装置20により送信されるサービス−MPDテーブルのリクエストは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS116において、マスタプロキシ111は、クライアント装置20から受信したテーブルのリクエストに応じて、サービス−MPDテーブルを生成し、レスポンスとして、ネットワーク30を介してクライアント装置20に返答する。
ここで、サービス−MPDテーブルは、サービスとMPDメタデータとを対応付けたテーブルである。サービス−MPDテーブルは、SLSから生成される。なお、ここでは、説明の簡略化のため、サービス−MPDテーブルがマスタプロキシ111により生成されるとして説明するが、サービス−MPDテーブルは、SLS処理系115により生成されるようにしてもよい。
ステップS116の処理で、マスタ・プロキシ装置10Mにより送信されるサービス−MPDテーブルは、ネットワーク30を介して、クライアント装置20により受信される。
ステップS104において、アプリケーション211は、マスタ・プロキシ装置10Mから受信したサービス−MPDテーブルを参照して、所望のサービスに対応したMPDメタデータに基づいて、マスタプロキシ111に対し、DASHセグメントを要求する。
ステップS104の処理で、クライアント装置20により送信されるDASHセグメントのリクエストは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS117において、マスタプロキシ111は、クライアント装置20から受信したDASHセグメントのリクエストに対するスレーブプロキシ161への割り振りを、プロキシ−サービス担当範囲データベースを参照して判断し、その判断結果に応じたリダイレクションを行う。
これにより、マスタプロキシ111によって、クライアント装置20(のアプリケーション211)からのDASHセグメントのリクエストが、適切なスレーブプロキシ161に対し、リダイレクションされることになる。
なお、ここでは、説明を簡略化するために、リダイレクションされるDASHセグメントのリクエストが、マスタプロキシ111からスレーブプロキシ161に対して直接通知されるとして説明しているが、実際には、図8の点線で示しているように、マスタプロキシ111からクライアント装置20を経由して、いわば間接的に、スレーブプロキシ161に通知される。また、セグメントリクエストのリダイレクションの詳細は、図25及び図26を参照して後述する。
ステップS117の処理で、マスタ・プロキシ装置10MによりリダイレクションされたDASHセグメントのリクエストは、適切であると判断されたスレーブプロキシ161が稼働しているスレーブ・プロキシ装置10Sにより受信される。
ステップS128において、スレーブプロキシ161は、事前サービスチューニングを行っているかどうかを判定する。ここでは、上述のステップS127の処理で、リソースに余裕がなく、事前サービスチューニングを行っていない場合には、ステップS128の判定処理で、「NO」と判定され、処理は、ステップS129に進められる。
ステップS129において、スレーブプロキシ161は、マスタ・プロキシ装置10Mから受信したDASHセグメントのリクエストに基づいて、チューナ101を制御して、サービスのチューニングを行う。これにより、DASHセグメントのリクエストに応じたDASHセグメントファイルが、放送サーバ40から放送経由で取得される。
一方、上述のステップS127の処理で、リソースに余裕があって、事前サービスチューニングが行われていた場合には、放送サーバ40から放送経由で得られる、担当範囲のサービスのストリームは展開済みであるので、ステップS129の処理はスキップされる。この場合、展開済みのストリームから、DASHセグメントのリクエストに応じたDASHセグメントファイルが取得される。
DASHセグメントファイルが取得されると、処理は、ステップS130に進められる。ステップS130において、スレーブプロキシ161は、放送サーバ40から受信したDASHセグメントファイルを、通信I/F102を介して、ネットワーク30に接続されたクライアント装置20に返答する。
ステップS130の処理で、スレーブ・プロキシ装置10Sにより送信(転送)されるDASHセグメントファイルは、ネットワーク30を介して、クライアント装置20により受信される。
クライアント装置20では、ブラウザ212によって、スレーブ・プロキシ装置10Sから受信したDASHセグメントファイルが再生される(S105)。これにより、クライアント装置20においては、放送経由で配信された番組等のコンテンツが再生されることになる。
以上、新規のスレーブ・プロキシ装置10Sが追加される場合における、プロキシのサービス担当範囲の割り当てと、セグメントリクエストのリダイレクションの一連の処理の流れを説明した。
(設定管理APIの通知の詳細)
次に、図9のフローチャートを参照して、スレーブプロキシ161からの存在確認に応じたマスタプロキシ111による設定管理APIの通知の詳細を説明する。すなわち、図9のフローチャートに示した処理は、上述の図7のステップS122,S111の処理に対応したものとなる。
次に、図9のフローチャートを参照して、スレーブプロキシ161からの存在確認に応じたマスタプロキシ111による設定管理APIの通知の詳細を説明する。すなわち、図9のフローチャートに示した処理は、上述の図7のステップS122,S111の処理に対応したものとなる。
ステップS151においては、図7のステップS122と同様に、新規のスレーブ・プロキシ装置10Sで稼働するスレーブプロキシ161が、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111の存在を確認するために、ネットワーク30に接続されたデバイスに対し、M-SEARCHリクエストを、マルチキャストで送信する。
このM-SEARCHリクエストは、HTTPリクエストであって、SSDPであるプロトコルを利用して、ネットワーク30に接続されたデバイスの探索を行う際に用いられる。
ステップS151の処理で、スレーブ・プロキシ装置10Sにより送信されるM-SEARCHリクエストは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS141において、UPnP/SSDPサーバ112は、スレーブ・プロキシ装置10Sから受信したM-SEARCHリクエストに応じて、デバイスディスクリプションURLを生成し、M-SEARCHレスポンスとして、ネットワーク30を介してスレーブ・プロキシ装置10Sに送信する。
このM-SEARCHレスポンスは、M-SEARCHリクエストに対する応答であって、LOCATIONとして、デバイスディスクリプションURLを含んでいる。このデバイスディスクリプションURLは、XML形式のファイルのURLである。
ステップS141の処理で、マスタ・プロキシ装置10Mにより送信されるM-SEARCHレスポンスは、ネットワーク30を介して、スレーブ・プロキシ装置10Sにより受信される。
ステップS152において、スレーブプロキシ161は、マスタ・プロキシ装置10Mから受信したM-SEARCHレスポンス(のデバイスディスクリプションURL)に基づいて、ネットワーク30に接続されたマスタ・プロキシ装置10Mで稼働するローカルウェブサーバ114に対し、デバイスディスクリプションを要求する。
このデバイスディスクリプションリクエストは、HTTPリクエストであって、GETメソッドの対象のリソースとして、M-SEARCHレスポンスのデバイスディスクリプションURLに応じた内容が記述される。
ステップS152の処理で、スレーブ・プロキシ装置10Sにより送信されるデバイスディスクリプションリクエストは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS142において、ローカルウェブサーバ114は、スレーブ・プロキシ装置10Sから受信したデバイスディスクリプションリクエストに応じて、デバイスディスクリプションを生成し、レスポンスとして、ネットワーク30を介してスレーブ・プロキシ装置10Sに送信する。
図10は、デバイスディスクリプションレスポンスの例を示す図である。
なお、図10の例では、記載を省略しているが、デバイスディスクリプションレスポンスのヘッダには、ファイルのタイプなどが記述される。また、当該ヘッダに続いて、XML形式のデバイスディスクリプションの内容が記述される。
すなわち、図10に示すように、デバイスディスクリプションには、root要素のxmlns属性として、"urn:schemas-upnp-org:device-1-0"が記述され、UPnP準拠のデバイスディスクリプションであることが宣言されている。
serviceList要素には、マスタ・プロキシ装置10Mでサポートされるサービスの一覧が記述される。serviceList要素には、1又は複数のservice要素が記述される。
service要素には、サポートされるサービスのうち、1つのサービスについての情報が記述される。service要素は、serviceType要素、serviceId要素、SCPDURL要素、及びcontrolURL要素などの上位要素となる。
図10の例では、2つのservice要素が記述されている。
1つ目のservice要素において、serviceType要素には、サービスのタイプとして、"urn:atsc:proxy"が記述され、ATSC3.0サービスのプロキシサービスであることを意味している。
また、serviceId要素には、サービスIDとして、"urn:UPnP:serviceId:1234"が記述され、プロキシサービスのサービスIDを表している。
また、controlURL要素には、プロキシ待ち受けアドレス/ポート取得APIのURLとして、"http://192.168.1.1:23456/getATSC3.0ProxyAddressPort"が記述される。このURLは、マスタプロキシ111がリクエストを待ち受けるIPアドレスとポート番号を示すプロキシ待ち受けアドレス/ポートを取得するためのWeb APIを呼び出すための情報である。
2つ目のservice要素において、serviceType要素には、サービスのタイプとして、"urn:atsc:configMan"が記述され、ATSC3.0の設定管理サービスであることを意味している。
また、serviceId要素には、サービスIDとして、"urn:UPnP:serviceId:5678"が記述され、プロキシサービスのサービスIDを表している。
また、controlURL要素には、設定管理APIのURLとして、"http://192.168.1.1:23456/getServiceScope"が記述される。このURLは、マスタプロキシ111がサービス担当範囲情報を取得するためのWeb APIを呼び出すための情報である。
なお、各service要素において、通常、SCPDURL要素には、ACRクライアントサービスについてのサービスディスクリプションのアドレスが記述されるので、HTTPで規定されるGETメソッドにより、サービスディスクリプションが取得される。その場合には、UPnPで規定されるSOAP(Simple Object Access Protocol)により、controlURL要素に記述されるURLに対し、アクションのメッセージを送付することで、アクションを呼び出すことになる。
一方で、本技術では、より簡便にWeb APIを呼び出せるように、UPnPの規定とは異なる方法で、Web APIのURLを周知する方法を提案する。すなわち、本技術では、図10に示すように、SCPDURL要素の値としては何も記述せずに(SCPDURL要素の中身は空にしておき)、SCPDURL要素に何も記述されていない場合に限り、controlURL要素に、直接、Web APIのURLを記述できるようにしている。
なお、controlURL要素に、直接、Web APIのURLを記述するための条件としては、上述したような、SCPDURL要素の中身を空にするほか、例えば、controlURL要素に、ダミーの文字列を記述するようにしてもよい。
図9に戻り、ステップS142の処理で、マスタ・プロキシ装置10Mにより送信されるデバイスディスクリプションレスポンスは、デバイスディスクリプションリクエストを送信したスレーブ・プロキシ装置10Sにより受信される。
そして、スレーブ・プロキシ装置10Sでは、マスタ・プロキシ装置10Mから受信したデバイスディスクリプションレスポンスに基づいて、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111から、サービス担当範囲情報を取得することになる。
ここで、図9のフローチャートには、スレーブ・プロキシ装置10Sで稼働するスレーブプロキシ161における、デバイスディスクリプションレスポンスを受信した後の処理を記載していないが、次のような処理が行われる。
すなわち、スレーブプロキシ161は、デバイスディスクリプションレスポンスの設定管理APIのURLに基づいて、マスタプロキシ111に対し、サービス担当範囲を要求する。なお、このスレーブプロキシ161の処理は、上述の図7のステップS125の処理に相当する。
図11は、サービス担当範囲リクエストの例を示す図である。
サービス担当範囲リクエストには、GETメソッドの対象のリソースとして、"getServiceScope"であるサービス担当範囲情報が記述される。また、HOSTには、ホスト名として、"192.168.1.1:23456"が記述される。
すなわち、サービス担当範囲リクエストでは、デバイスディスクリプションレスポンスに記述された内容(controlURL要素の内容)に応じて、GETメソッドの対象が、"getServiceScope"となる。さらに、サービス担当範囲リクエストには、HOSTとして、"192.168.1.1"であるマスタ・プロキシ装置10MのIPアドレスと、"23456"であるマスタプロキシ111のポート番号が記述される。
このようなサービス担当範囲リクエストは、ネットワーク30に接続されたマスタ・プロキシ装置10Mにより受信される。そして、マスタプロキシ111は、スレーブ・プロキシ装置10Sから受信したサービス担当範囲リクエストに応じて、サービス担当範囲情報を生成し、レスポンスとして、ネットワーク30を介してスレーブ・プロキシ装置10Sに送信する。なお、このマスタプロキシ111の処理は、上述の図7のステップS113,S114の処理に相当する。
なお、サービス担当範囲リクエストのボディに対し、ステップS123の処理で得られるサービススキャン結果を記述するようにしてもよい。
図12は、サービス担当範囲レスポンスの例を示す図である。
サービス担当範囲レスポンスのボディ部には、サービス担当範囲情報として、"ServiceId-A"や"ServiceId-B"などのサービスIDのリストが記述されている。このリストは、サービスIDを示す文字列を改行して列挙したリストとされる。
すなわち、マスタプロキシ111によって、"ServiceId-A"であるサービスIDのサービスAと、"ServiceId-B"であるサービスIDのサービスBが、スレーブプロキシ161のサービス担当範囲として割り当てられたことになる。
このようなサービス担当範囲レスポンスは、ネットワーク30に接続されたスレーブ・プロキシ装置10Sにより受信される。そして、スレーブ・プロキシ装置10Sでは、マスタ・プロキシ装置10Mから受信したサービス担当範囲レスポンス(サービス担当範囲情報)に基づいて、サービスのチューニングの準備が行われる。
ここでは、例えば、サービスAと、サービスBのストリームを受信するための準備が、スレーブ・プロキシ装置10Sにより行われる。なお、このスレーブプロキシ161の処理は、上述の図7のステップS126の処理に相当する。また、このとき、マスタ・プロキシ装置10Mにおいても、サービスのチューニングの準備が行われる(図7のS115)。
以上のようにして、スレーブ・プロキシ装置10Sに対し、サービス担当範囲が割り当てられるが、図13には、サービス担当範囲の割り当てのより具体的な例を示している。
すなわち、図13においては、マスタ・プロキシ装置10Mと、スレーブ・プロキシ装置10Sで受信可能な放送サービスとして、サービス1(Service-1),サービス2(Service-2),サービス3(Service-3),サービス4(Service-4),サービス5(Service-5),サービス6(Service-6),及びサービス7(Service-7)の7つのサービスがスキャンされた場合を想定する。
なお、各サービスのストリームは、サービスIDにより識別される。また、各サービスのストリームは、ブロードキャストストリームIDにより識別されるブロードキャストストリーム(BS:Broadcast Stream)で伝送される。さらに、各サービスのストリームでは、PLP IDで識別されるPLP(Physical Layer Pipe)のストリームが伝送される。
ブロードキャストストリーム1(BS-1)においては、PLP-1,PLP-2を含むサービス1のストリームと、PLP3を含むサービス2のストリームが伝送される。また、ブロードキャストストリーム2(BS-2)では、PLP-1を含むサービス3のストリームと、PLP-2,PLP-3,PLP-4を含むサービス4のストリームが伝送される。
ブロードキャストストリーム3(BS-3)においては、PLP-1を含むサービス5のストリームと、PLP-2を含むサービス6のストリームが伝送される。また、ブロードキャストストリーム4(BS-4)では、PLP-1を含むサービス7のストリームが伝送される。
マスタ・プロキシ装置10Mで稼働するマスタプロキシ111は、これらのサービススキャン結果に基づいて、マスタプロキシ111とスレーブプロキシ161が受け持つサービスの担当範囲を決定する。図13の例では、スキャンされた放送サービスのうち、サービス1乃至4が、マスタプロキシ111のサービス担当範囲に割り当てられ、サービス5乃至7が、スレーブプロキシ161のサービス担当範囲に割り当てられている。
このようなサービス担当範囲の割り当てが、マスタプロキシ111からスレーブプロキシ161に対して通知される設定管理APIにより実現されるのは、先に述べた通りである。
以上、スレーブプロキシ161からの存在確認に応じたマスタプロキシ111による設定管理APIの通知の詳細を説明した。
(2)新規のスレーブ・プロキシ装置がさらに追加される場合の例
(サービス担当範囲の割り当て処理の流れ)
次に、図14のフローチャートを参照して、新規のスレーブ・プロキシ装置10Sがさらに追加される場合における、プロキシのサービス担当範囲の割り当て処理の流れを説明する。
次に、図14のフローチャートを参照して、新規のスレーブ・プロキシ装置10Sがさらに追加される場合における、プロキシのサービス担当範囲の割り当て処理の流れを説明する。
図14の説明では、マスタ・プロキシ装置10Mとスレーブ・プロキシ装置10S−1が存在するネットワーク30に対し、新規のスレーブ・プロキシ装置10S−2がさらに接続される場合を説明する。
ただし、以下の説明では、スレーブプロキシ161として、スレーブ・プロキシ装置10S−1で稼働するものを、スレーブプロキシ161−1(図中では「スレーブプロキシ1」と略記する)と称する一方で、スレーブ・プロキシ装置10S−2で稼働するものを、スレーブプロキシ161−2(図中では「スレーブプロキシ2」と略記する)と称して、区別するものとする。
また、図14において、ステップS191乃至S196の処理は、マスタ・プロキシ装置10Mにより実行される。一方で、ステップS201乃至S204の処理は、スレーブ・プロキシ装置10S−1により実行され、ステップS211乃至S216の処理は、スレーブ・プロキシ装置10S−2により実行される。
新規のスレーブ・プロキシ装置10S−2が、ネットワーク30に接続されると(S211)、ステップS212において、スレーブプロキシ161−2は、マスタプロキシ111の存在を確認するために、通信I/F152を介して、ネットワーク30に接続されたデバイスに対し、存在確認用のメッセージを、マルチキャストで送信する。
ステップS191,S192において、マスタプロキシ111は、マルチキャストで送信されてくるメッセージに応じて、設定管理APIを生成し、ネットワーク30を介して、スレーブ・プロキシ装置10S−1とスレーブ・プロキシ装置10S−2に通知(再通知)する。
ステップS213において、スレーブプロキシ161−2は、マスタ・プロキシ装置10Mからの通知に応じて、チューナ151を制御して、サービスのスキャンを行う。ここでは、例えば、チューナ151により初期スキャン処理が行われることで、LLSとして伝送されるSLTメタデータ等から、スレーブ・プロキシ装置10S−2により受信可能なサービスを示すサービススキャン結果が得られる。
このとき、スレーブプロキシ161−1が稼働するスレーブ・プロキシ装置10S−1では、マスタ・プロキシ装置10Mからの通知に応じて、サービスの再スキャンが行われ、サービススキャン結果が得られる(S201)。また、マスタプロキシ111が稼働するマスタ・プロキシ装置10Mにおいても、サービスの再スキャンが行われ、サービススキャン結果が得られる(S193)。
ただし、先に述べたように、スレーブ・プロキシ装置10S−2がサービススキャンを行うタイミングで、マスタ・プロキシ装置10Mとスレーブ・プロキシ装置10S−1によるサービススキャンを行うかどうかは、任意である。
スレーブプロキシ161−2は、サービスのスキャン(S213)が終了したとき、マスタプロキシ111に対し、当該サービススキャン結果の通知と、サービス担当範囲の要求を行う(S214,S215)。
同様に、スレーブプロキシ161−1は、サービスのスキャン(S201)が終了したとき、マスタプロキシ111に対し、当該サービススキャン結果の通知と、サービス担当範囲の要求を行う(S202,S203)。
スレーブ・プロキシ装置10S−1,10S−2により送信される、サービススキャン結果とサービス担当範囲リクエストは、マスタ・プロキシ装置10Mにより受信される。
ステップS194において、マスタプロキシ111は、サービススキャン結果に基づいて、サービス担当範囲を決定する。
ここでは、サービススキャン結果として、マスタ・プロキシ装置10M自身のサービススキャン結果、既存のスレーブ・プロキシ装置10S−1のサービススキャン結果、及び新規のスレーブ・プロキシ装置10S−2のサービススキャン結果が得られる。そして、マスタプロキシ111では、これらのサービススキャン結果を用いて、あらかじめ定められたポリシ(規則)に従い、各FWプロキシ装置10のサービス担当範囲を決定する。
ここでは、各FWプロキシ装置10(マスタプロキシ111やスレーブプロキシ161−1,161−2)と、サービス担当範囲とを対応付けたプロキシ−サービス担当範囲データベースが生成され、記憶部103に記憶される。なお、ポリシの詳細については、図21乃至図24を参照して後述する。
ステップS195において、マスタプロキシ111は、スレーブプロキシ161−1とスレーブプロキシ161−2に対し、ステップS194の処理で得られるサービス担当範囲を通知する。
スレーブプロキシ161−2が稼働するスレーブ・プロキシ装置10S−2では、マスタ・プロキシ装置10Mからのサービス担当範囲情報に基づいて、チューナ151を制御して、自身の担当範囲のサービスのチューニングの準備が行われる(S216)。
同様に、スレーブプロキシ161−2が稼働するスレーブ・プロキシ装置10S−1においても、マスタ・プロキシ装置10Mからのサービス担当範囲情報に応じた自身の担当範囲のサービスのチューニングの準備が行われる(S204)。さらに、マスタ・プロキシ装置10Mにおいても、自身の担当範囲のサービスのチューニングの準備が行われる(S196)。
このようにして、ネットワーク30に接続された各FWプロキシ装置10では、自身の担当範囲のサービスのチューニングの準備が完了して、クライアント装置20からのDASHセグメントのリクエストに対し、ネットワーク30内の適切なFWプロキシ装置10が対応することになる。
ここで、図15には、サービス担当範囲の割り当てのより具体的な例を示している。なお、図15のブロードキャストストリームと、サービスのストリームと、PLPのストリームとの関係は、図13と同様である。
図15の例では、スキャンされた放送サービスのうち、サービス1,2が、マスタプロキシ111のサービス担当範囲に割り当てられ、サービス3乃至6が、スレーブプロキシ161−1のサービス担当範囲に割り当てられ、サービス5乃至7が、スレーブプロキシ161−2のサービス担当範囲に割り当てられている。
この例では、サービス5,6が、スレーブプロキシ161−1とスレーブプロキシ161−2により重複して担当範囲となっているが、例えば、サービス5,6が選択(選局)される可能性が大きい場合などに、このような担当範囲の割り当てを行うことができる。ただし、図13の例のように、マスタプロキシ111やスレーブプロキシ161に対し、重複したサービスの担当範囲を持たせないようにしてもよい。
なお、セグメントリクエストのリダイレクションの処理は、図8に示した処理と同様であるため、ここでは、その説明は省略する。
以上、新規のスレーブ・プロキシ装置10Sがさらに追加された場合における、プロキシのサービス担当範囲の割り当て処理の流れを説明した。
(設定管理APIの再通知の詳細)
次に、図16のフローチャートを参照して、マスタプロキシ111による既存のスレーブプロキシ161−1に対する設定管理APIの再通知の詳細を説明する。すなわち、図16のフローチャートに示した処理は、上述の図14のステップS192の処理に対応したものとなる。
次に、図16のフローチャートを参照して、マスタプロキシ111による既存のスレーブプロキシ161−1に対する設定管理APIの再通知の詳細を説明する。すなわち、図16のフローチャートに示した処理は、上述の図14のステップS192の処理に対応したものとなる。
ステップS221において、UPnP/SSDPサーバ112は、スレーブ・プロキシ装置10S−2から受信したM-SEARCHリクエストに応じて、デバイスディスクリプションURLを生成し、NOTIFYメッセージとして、ネットワーク30を介してスレーブ・プロキシ装置10S−1に送信する。
図17は、NOTIFYメッセージの例を示す図である。
NOTIFYメッセージにおいて、LOCATIONには、デバイスディスクリプションURLとして、"http://192.168.1.1:12345/deviceDescription.xml"が指定される。このデバイスディスクリプションURLは、XML形式のファイルのURLである。
すなわち、マスタ・プロキシ装置10Mにおいて、このXML形式のファイルは、ローカルウェブサーバ114により処理されるので、デバイスディスクリプションURLには、マスタ・プロキシ装置10Mに割り当てられたIPアドレスである"192.168.1.1"と、ローカルウェブサーバ114に割り当てられたポート番号である"12345"が記述されている。
図16に戻り、ステップS231において、スレーブプロキシ161−1は、マスタ・プロキシ装置10MからのNOTIFYメッセージ(のデバイスディスクリプションURL)に基づいて、ネットワーク30に接続されたマスタ・プロキシ装置10Mで稼働するローカルウェブサーバ114に対し、デバイスディスクリプションを要求する。
このデバイスディスクリプションリクエストは、HTTPリクエストであって、GETメソッドの対象のリソースとして、NOTIFYメッセージのデバイスディスクリプションURLに応じた内容が記述される。
ステップS222において、ローカルウェブサーバ114は、スレーブ・プロキシ装置10S−1からのデバイスディスクリプションリクエストに応じて、デバイスディスクリプションを生成し、レスポンスとして、ネットワーク30を介してスレーブ・プロキシ装置10S−1に送信する。なお、このデバイスディスクリプションレスポンスの内容は、上述の図10に示した通りである。
そして、スレーブ・プロキシ装置10S−1では、マスタ・プロキシ装置10Mから受信したデバイスディスクリプションレスポンスに基づいて、マスタプロキシ111から、サービス担当範囲情報を取得することになる。
以上、マスタプロキシ111による既存のスレーブプロキシ161−1に対する設定管理APIの再通知の詳細を説明した。
(3)クライアント装置によるマスタプロキシの発見・接続の例
ところで、エンドユーザ宅2内のほか、ケーブルオペレータのヘッドエンドや、モバイル網の基地局などに設置される可能性のある、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111を発見・接続する方法としては、いくつかの方法が想定される。
例えば、クライアント装置20において、ブラウザ212のインターネット接続設定のメニューにて、手動でマスタプロキシ111のIPアドレスやポート番号などを入力する方法や、プロキシ設定スクリプトのURLを登録する方法、あるいは自動設定による方法などがある。
自動設定の方法としては、例えば、DHCP(Dynamic Host Configuration Protocol)サーバを用いる方法や、WPAD(Web Proxy Auto Discovery)を用いる方法などがある。また、プロキシ設定スクリプトによる自動設定は、JavaScript(登録商標)等のスクリプト言語で記述されたプロキシ自動構成スクリプトファイルを用意して、そのファイルをウェブサーバ上に配置する一方で、そのファイルのURLを、ブラウザ212の自動設定のスクリプトのURLに設定すればよい。
WPADを用いる場合には、ブラウザ212自身が、プロキシ設定用のスクリプトファイルの位置(URL)を自動的に検出してダウンロードすることで、設定を行うことができる。なお、WPADでは、一般には、DHCPサーバのDHCPINFORMメッセージを用いる方法と、DNS(Domain Name System)を用いた方法により、"wpad"という名前を持つエントリを探して、そこからプロキシ設定スクリプトをダウンロードする方法が実装されている。
マスタ・プロキシ装置10Mで稼働するマスタプロキシ111の発見においても、同様の方法を用いることができる。本技術では、クライアント装置20が、ネットワーク30において、マスタプロキシ111が稼働しているマスタ・プロキシ装置10Mを発見し、当該マスタプロキシ111がリクエストを待ち受けるIPアドレスとポート番号(以下、プロキシ待ち受けアドレス/ポートともいう)を取得する方式を提案する。
そのためには、クライアント装置20では、マスタプロキシ111に対し、プロキシ待ち受けアドレス/ポートを問い合わせるためのWeb APIを認識する必要がある。つまり、このWeb APIは、サービスを呼び出すためのインターフェースであると言える。
ここで、マスタプロキシ111の発見に、ユニバーサルプラグアンドプレイ(UPnP)を利用する場合、マスタプロキシ111の発見と、機能の公開には、SSDPが用いられる。
一般に、SSDPにおいては、公開されるサービスを発見する際にやりとりされるデバイスディスクリプションとして、デバイスが提供可能な機能や情報が記述されたXML形式のファイルが用いられる。このファイルには、対象のデバイスそのものについて記述したデバイスディスクリプションと、対象のデバイス上に実装された各サービスが持つアクションとしてのサービスディスクリプションとが記述される。
本技術では、マスタプロキシ111のディスクリプション(例えばサービスディスクリプション)に、当該マスタプロキシ111がリクエストを待ち受けるIPアドレスとポート番号(プロキシ待ち受けアドレス/ポート)を返答するWeb APIのURLを記述できるようにする。
また、本技術では、ATSC3.0サービス等の放送サービスに対応するマスタプロキシ111のサービスを発見するためのプロトコルを追加することにより、放送サービスを実装していない一般のクライアント装置20で、ブラウザ212のプロキシとして、プロキシ待ち受けアドレス/ポートを設定できるようにする。
すなわち、放送サービスを実装していない一般のクライアント装置20(スマートフォンやタブレット型コンピュータ等の一般エンドデバイス)のブラウザ212で、あるスクリプト(Web API)を立ち上げると、放送サービスに対応するサーバであるマスタ・プロキシ装置10Mを発見し、そこで稼働するマスタプロキシ111のプロキシ待ち受けアドレス/ポートを、当該ブラウザ212のプロキシとして設定できるようにする。
以下、このような、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111の発見と、マスタプロキシ111のプロキシ待ち受けアドレス/ポートの取得のシーケンス(プロキシの発見・接続処理)を説明する。
なお、ここでは、ネットワーク上のデバイスの探索や応答を行うプロトコルとして、SSDPを一例に説明したが、DIAL(Discovery and Launch)等の他のプロトコルを用いることでも、同様の機能を実現することができる。DIALは、ネットワーク上にあるDIAL対応のデバイスをUPnPにより発見し、指定されたアプリケーションを起動させるプロトコルである。
(マスタプロキシ設定処理)
図18は、図8のステップS102の処理に対応するマスタプロキシ設定処理の流れを説明するフローチャートである。
図18は、図8のステップS102の処理に対応するマスタプロキシ設定処理の流れを説明するフローチャートである。
なお、図18の説明では、ネットワーク30に接続されるマスタ・プロキシ装置10Mには、IPアドレスとして、"192.168.1.1"が割り当てられているものとする。また、このマスタ・プロキシ装置10Mで稼働するサービスのうち、UPnP/SSDPサーバ112には、"12345"であるポート番号、プロキシアプリマネージャ113には、"23456"であるポート番号、マスタプロキシ111には、"34567"であるポート番号がそれぞれ割り当てられているものとする。
また、図18において、ステップS281乃至S282の処理と、ステップS291の処理は、マスタ・プロキシ装置10Mにより実行される。一方で、ステップS271乃至S274の処理は、クライアント装置20により実行される。
ステップS271において、アプリケーション211は、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111の存在を確認するために、通信I/F201を介して、ネットワーク30に接続されたデバイス(サーバ)に対し、M-SEARCHリクエストを、マルチキャストで送信する。
ステップS271の処理で、クライアント装置20により送信されるM-SEARCHリクエストは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS281において、UPnP/SSDPサーバ112は、クライアント装置20から受信したM-SEARCHリクエストに応じて、デバイスディスクリプションURLを生成し、M-SEARCHレスポンスとして、ネットワーク30を介してクライアント装置20に送信する。
ステップS281の処理で、マスタ・プロキシ装置10Mにより送信されるM-SEARCHレスポンスは、M-SEARCHリクエストを送信したクライアント装置20により受信される。
ステップS272において、アプリケーション211は、マスタ・プロキシ装置10Mから受信したM-SEARCHレスポンス(のデバイスディスクリプションURL)に基づいて、UPnP/SSDPサーバ112に対し、デバイスディスクリプションを要求する。
ステップS272の処理で、クライアント装置20により送信されるデバイスディスクリプションリクエストは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS282において、UPnP/SSDPサーバ112(ローカルウェブサーバ114)は、クライアント装置20から受信したデバイスディスクリプションリクエストに応じて、デバイスディスクリプションを生成し、レスポンスとして、ネットワーク30を介してクライアント装置20に送信する。
このデバイスディスクリプションレスポンスには、図10に示したように、serviceList要素に記述された2つのservice要素のうち、1つ目のservice要素の内容が記述される。
すなわち、serviceType要素には、サービスのタイプとして、"urn:atsc:proxy"が記述され、ATSC3.0サービスのプロキシサービスであることを意味する。また、serviceId要素には、サービスIDとして、"urn:UPnP:serviceId:1234"が記述され、プロキシサービスのサービスIDを表している。
さらに、controlURL要素には、プロキシ待ち受けアドレス/ポート取得Web APIのURLとして、"http://192.168.1.1:23456/getATSC3.0ProxyAddressPort"が記述される。このURLは、マスタプロキシ111がリクエストを待ち受けるIPアドレスとポート番号を示すプロキシ待ち受けアドレス/ポートを取得するためのWeb APIを呼び出すための情報である。
ステップS282の処理で、マスタ・プロキシ装置10Mにより送信されるデバイスディスクリプションレスポンスは、デバイスディスクリプションリクエストを送信したクライアント装置20により受信される。
ステップS273において、アプリケーション211は、マスタ・プロキシ装置10Mから受信したデバイスディスクリプションレスポンス(のプロキシ待ち受けアドレス/ポート取得Web APIのURL)に基づいて、プロキシアプリマネージャ113に対し、プロキシ待ち受けアドレス/ポートを要求する。
図19は、プロキシ待ち受けアドレス/ポートリクエストの例を示す図である。
プロキシ待ち受けアドレス/ポートリクエストには、GETメソッドの対象のリソースとして、"getATSC3.0ProxyAddressPort"である対象のプロキシ待ち受けアドレス/ポートが記述される。また、HOSTには、ホスト名として、"192.168.1.1:23456"が記述される。
すなわち、プロキシ待ち受けアドレス/ポートリクエストでは、デバイスディスクリプションレスポンスに記述された内容(controlURL要素の内容)に応じて、GETメソッドの対象が、"getATSC3.0ProxyAddressPort"となる。さらに、プロキシ待ち受けアドレス/ポートリクエストには、HOSTとして、"192.168.1.1"であるマスタ・プロキシ装置10MのIPアドレスと、"23456"であるプロキシアプリマネージャ113のポート番号が記述される。
図18に戻り、ステップS273の処理で、クライアント装置20により送信されるプロキシ待ち受けアドレス/ポートリクエストは、ネットワーク30を介して、マスタ・プロキシ装置10Mにより受信される。
ステップS291において、プロキシアプリマネージャ113は、クライアント装置20から受信したプロキシ待ち受けアドレス/ポートリクエストに応じて、プロキシ待ち受けアドレス/ポートを生成し、レスポンスとして、ネットワーク30を介してクライアント装置20に送信する。
図20は、プロキシ待ち受けアドレス/ポートレスポンスの例を示す図である。
プロキシ待ち受けアドレス/ポートレスポンスのボディ部には、プロキシ待ち受けアドレス/ポートとして、"192.168.1.1:34567"が記述されている。
すなわち、マスタ・プロキシ装置10Mにおいて、当該レスポンスのボディ部には、マスタ・プロキシ装置10Mに割り当てられたIPアドレスである"192.168.1.1"と、マスタプロキシ111に割り当てられたポート番号である"34567"が記述される。
なお、この例では、Web APIへのリクエスト(プロキシ待ち受けアドレス/ポートリクエスト)を受け取るのが、プロキシアプリマネージャ113であるとして説明しているが、マスタプロキシ111本体が、当該リクエストを受け取って、処理するようにしてもよい。
図18に戻り、ステップS291の処理で、マスタ・プロキシ装置10Mにより送信されるプロキシ待ち受けアドレス/ポートレスポンスは、プロキシ待ち受けアドレス/ポートリクエストを送信したクライアント装置20により受信される。
ステップS274において、アプリケーション211は、マスタ・プロキシ装置10Mから受信したプロキシ待ち受けアドレス/ポートレスポンス(のIPアドレスとポート番号)に基づいて、プロキシ自動構成スクリプトの更新と、ブラウザ212の起動(再起動)による構成変更の反映を行う。
クライアント装置20において、アプリケーション211は、プロキシ待ち受けアドレス/ポートレスポンスから、プロキシ待ち受けアドレス/ポートとして得られるIPアドレスとポート番号(ATSC3.0ProxyAddressPort(192.168.1.1:34567))により、プロキシ自動構成スクリプトファイルを書き換える。
すなわち、クライアント装置20では、アプリケーション211により、プロキシ自動構成スクリプトファイルが、プロキシ待ち受けアドレス/ポートにより書き換えられ、ブラウザ212が、起動(再起動)される。そして、当該ブラウザ212が参照するプロキシ自動構成スクリプトファイルにより、マスタプロキシ111のIPアドレスとポート番号の設定(自動設定)が行われる。
これにより、クライアント装置20において、ブラウザ212は、ネットワーク30を介して、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111にアクセスすることが可能となる。
以上、マスタプロキシ設定処理の流れを説明した。
<4.マスタプロキシとスレーブプロキシの実装例>
まず、ここでは、マスタプロキシ111が、サービス担当範囲を決定する際のポリシ(規則)の詳細について説明する。
(1)機械的なサービス担当範囲の割り当ての例
図21は、機械的なサービス担当範囲の割り当ての例を示す図である。
図21においては、マスタ・プロキシ装置10Mと、スレーブ・プロキシ装置10S−1,10S−2で受信可能なサービスとして、サービス1乃至19の19個のサービスがスキャンされた場合を想定する。
ブロードキャストストリーム1(BS-1)においては、サービス1乃至4のストリームが伝送される。また、ブロードキャストストリーム2(BS-2)では、サービス5乃至7のストリームが伝送される。さらに、ブロードキャストストリーム3(BS-3)では、サービス8乃至10のストリームが伝送される。
また、ブロードキャストストリーム4(BS-4)においては、サービス11乃至14のストリームが伝送される。さらに、ブロードキャストストリーム5(BS-5)では、サービス15乃至19のストリームが伝送される。
マスタ・プロキシ装置10Mで稼働するマスタプロキシ111は、これらのサービススキャン結果に基づいて、あらかじめ定められたポリシに従い、マスタプロキシ111と、スレーブプロキシ161−1,161−2が受け持つサービスの担当範囲を決定する。
図21の例では、マスタプロキシ111と、スレーブプロキシ161−1,161−2に対し、ブロードキャストストリーム単位(例えば6MHzの周波数帯域の単位)で、機械的にサービス担当範囲が割り当てられている。
すなわち、スキャンされた放送サービスのうち、ブロードキャストストリーム1(BS-1)のサービス1乃至4が、マスタプロキシ111のサービス担当範囲に割り当てられる。また、ブロードキャストストリーム2(BS-2)のサービス5乃至7と、ブロードキャストストリーム3(BS-3)のサービス8乃至10が、スレーブプロキシ161−1のサービス担当範囲に割り当てられる。
また、ブロードキャストストリーム4(BS-4)のサービス11乃至14と、ブロードキャストストリーム5(BS-5)のサービス15乃至19が、スレーブプロキシ161−2のサービス担当範囲に割り当てられる。
なお、図21の例では、ブロードキャストストリーム単位で、機械的にサービス担当範囲を割り当てる場合を説明したが、機械的にサービス担当範囲を割り当てる単位としては、ブロードキャストストリーム単位に限らず、例えば、サービス単位などの他の単位であってもよい。
このように、マスタプロキシ111が、サービス担当範囲を決定する際のポリシとしては、マスタプロキシ111とスレーブプロキシ161に対し、ブロードキャストストリーム単位やサービス単位などの所定の単位で、機械的にサービス担当範囲を割り当てる規則を用いることができる。
(2)サービスのアクセス頻度に応じた担当範囲の割り当ての例
図22は、サービスのアクセス頻度に応じた担当範囲の割り当ての例を示す図である。
図22においては、図21と同様に、マスタ・プロキシ装置10Mと、スレーブ・プロキシ装置10S−1,10S−2で受信可能なサービスとして、サービス1乃至19の19個のサービスがスキャンされた場合を想定する。また、各ブロードキャストストリームで伝送されるサービスのストリームについても、図21と同様とされる。
マスタ・プロキシ装置10Mで稼働するマスタプロキシ111は、これらのサービススキャン結果に基づいて、あらかじめ定められたポリシに従い、マスタプロキシ111と、スレーブプロキシ161−1,161−2が受け持つサービスの担当範囲を決定する。
図22の例では、マスタプロキシ111と、スレーブプロキシ161−1,161−2に対し、エンドユーザのコンテンツの視聴履歴を考慮に入れて、サービス担当範囲が割り当てられている。
ここで、図22においては、サービスごとのアクセス頻度を表したグラフ(図中のハッチングが施された四角)が示されており、図中の横方向の幅が広いグラフのサービスほど、アクセスの頻度が高いサービスであることを表している。例えば、ブロードキャストストリーム1(BS-1)においては、サービス1,3のアクセス頻度が高く、サービス4のアクセス頻度が低くなる。また、サービス2のアクセス頻度は、それらのサービスの中間の頻度となる。
このようなサービスごとのアクセス頻度を考慮に入れることで、スキャンされた放送サービスのうち、ブロードキャストストリーム1(BS-1)のサービス1乃至4と、ブロードキャストストリーム2(BS-2)のサービス5,6は、マスタプロキシ111のサービス担当範囲に割り当てられる。
また、ブロードキャストストリーム2(BS-2)のサービス7と、ブロードキャストストリーム3(BS-3)のサービス8,10と、ブロードキャストストリーム4(BS-4)のサービス11,12と、ブロードキャストストリーム5(BS-5)のサービス15は、スレーブプロキシ161−1のサービス担当範囲に割り当てられる。
さらに、ブロードキャストストリーム3(BS-3)のサービス9と、ブロードキャストストリーム4(BS-4)のサービス13,14と、ブロードキャストストリーム5(BS-5)のサービス16乃至19は、スレーブプロキシ161−2のサービス担当範囲に割り当てられる。
この例では、ブロードキャストストリーム1のサービス1,3と、ブロードキャストストリーム2のサービス6と、ブロードキャストストリーム4のサービス11,12と、ブロードキャストストリーム5のサービス15,17,19などのアクセス頻度が高いサービスが、マスタプロキシ111と、スレーブプロキシ161−1,161−2に対し、ほぼ均等に割り当てられ、サービスのアクセス頻度に応じた負荷分散がなされている。
このように、マスタプロキシ111が、サービス担当範囲を決定する際のポリシとしては、マスタプロキシ111とスレーブプロキシ161に対し、アクセス頻度の高いサービスが、優先的に負荷分散されるように、サービス担当範囲を割り当てる規則を用いることができる。
(3)サービスのアクセス頻度に応じたBSごとの担当範囲の割り当ての例
図23は、サービスのアクセス頻度に応じたブロードキャストストリーム(BS)ごとの担当範囲の割り当ての例を示す図である。
図23においては、図21及び図22と同様に、マスタ・プロキシ装置10Mと、スレーブ・プロキシ装置10S−1,10S−2で受信可能なサービスとして、サービス1乃至19の19個のサービスがスキャンされた場合を想定する。また、各ブロードキャストストリームで伝送されるサービスのストリームについても、図21及び図22と同様とされる。
マスタ・プロキシ装置10Mで稼働するマスタプロキシ111は、これらのサービススキャン結果に基づいて、あらかじめ定められたポリシに従い、マスタプロキシ111と、スレーブプロキシ161−1,161−2が受け持つサービスの担当範囲を決定する。
図23の例では、マスタプロキシ111と、スレーブプロキシ161−1,161−2に対し、エンドユーザのコンテンツの視聴履歴を考慮に入れて、サービス担当範囲が割り当てられている。
ここで、図23においては、ブロードキャストストリーム(BS)ごとのアクセス頻度(サービスのアクセス頻度の合計)を表したグラフ(図中のハッチングが施された四角)が示されており、図中の横方向の幅が広いグラフのブロードキャストストリームほど、アクセスの頻度が高いブロードキャストストリームであることを表している。例えば、ブロードキャストストリーム1(BS-1)乃至5(BS-5)のうち、ブロードキャストストリーム5が最もアクセス頻度高くなり、ブロードキャストストリーム1,4,2,3の順に、アクセス頻度が低くなる。
このようなブロードキャストストリームごとのアクセス頻度を考慮に入れることで、スキャンされた放送サービスのうち、ブロードキャストストリーム2(BS-2)のサービス5乃至7と、ブロードキャストストリーム3(BS-3)のサービス8乃至10は、マスタプロキシ111のサービス担当範囲に割り当てられる。
また、ブロードキャストストリーム1(BS-1)のサービス1乃至4と、ブロードキャストストリーム4(BS-4)のサービス11乃至14は、スレーブプロキシ161−1のサービス担当範囲に割り当てられる。さらに、ブロードキャストストリーム5(BS-5)のサービス15乃至19は、スレーブプロキシ161−2のサービス担当範囲に割り当てられる。
この例では、アクセス頻度が最も高いブロードキャストストリーム5のみが、スレーブプロキシ161−2に対して割り当てられ、残りのブロードキャストストリーム1乃至4が、マスタプロキシ111とスレーブプロキシ161−1に対し、ほぼ均等に割り当てられ、ブロードキャストストリームのアクセス頻度に応じた負荷分散がなされている。
このように、マスタプロキシ111が、サービス担当範囲を決定する際のポリシとしては、マスタプロキシ111とスレーブプロキシ161に対し、アクセス頻度の高いブロードキャストストリームが、優先的に負荷分散されるように、サービス担当範囲を割り当てる規則を用いることができる。
すなわち、ここでは、同一のブロードキャストストリームIDのブロードキャストストリーム内で伝送されるサービス群のストリームのデータは、同時に処理(取得)できるため、ブロードキャストストリームのアクセス頻度に応じた負荷分散を行うことで、ストリームのデータを同時に取得できるサービスが集約されることになる。そして、ストリームのデータを同時に取得できるサービス群がまとめられることで、例えば、チャネルザッピングの高速化を図ることができる。
また、例えば、図24に示すように、特定のブロードキャストストリームのアクセス頻度が、突出して高い場合には、それに対応した適切な負荷分散がなされるようにしてもよい。
この例では、アクセス頻度が突出して高いブロードキャストストリーム5が、スレーブプロキシ161−1とスレーブプロキシ161−2(の2つのFWプロキシ装置10)に対して割り当てられ、残りのブロードキャストストリーム1乃至4が、マスタプロキシ111に対して割り当てられている。これにより、特定のブロードキャストストリームのアクセス頻度が、突出して高い場合でも、適切な負荷分散がなされている。
以上、サービス担当範囲を決定する際のポリシについて説明したが、これらのポリシは一例であって、最適な負荷分散を行うことが可能なサービス担当範囲を割り当てることができる規則であれば、他のポリシを用いるようにしてもよい。
また、これらのポリシのうち、どのポリシを使用するかは、エンドユーザが設定することができる。例えば、ポリシの設定画面が、FWプロキシ装置10又はクライアント装置20などに提示されるようにすることで、エンドユーザは、当該設定画面(のユーザインターフェース(UI:User Interface))を操作して、所望のポリシを設定することができる。なお、ポリシの設定は、エンドユーザの操作に限らず、例えば、過去のデータを蓄積しておき、機械学習などの手法を用いて設定されるようにしてもよい。
なお、各FWプロキシ装置10が近い位置に存在する場合には、FWプロキシ装置10ごとのサービススキャン結果は同一になる可能性が高いが、運用によっては、各FWプロキシ装置10が離れた位置に存在する場合もあり、そのような場合には、FWプロキシ装置10ごとのサービススキャン結果は同一にならない可能性もあるので、そのような位置関係を考慮に入れるようにしてもよい。
また、エンドユーザのコンテンツの視聴履歴情報は、マスタ・プロキシ装置10Mで管理するほか、スレーブ・プロキシ装置10Sや専用のサーバ(視聴履歴サーバ)を設置して、それらが管理するようにしてもよい。マスタ・プロキシ装置10M以外の他のサーバが管理する場合、マスタプロキシ111は、サービス担当範囲の決定時に、ネットワーク30に接続された他のサーバから、視聴履歴情報を取得することになる。
また、上述した説明では、マスタプロキシ111に対しても、サービス担当範囲を割り当てていたが、マスタプロキシ111にはサービス担当範囲を割り当てずに、サービス担当範囲の割り当て処理や、リクエストリダイレクション処理などの処理だけが行われるようにしてもよい。この場合、マスタプロキシ111が稼働するマスタ・プロキシ装置10Mでは、コンテンツのストリームを受信する必要がないため、チューナを有しない専用のサーバなどを用いることができる。
(4)マスタプロキシとスレーブプロキシのトポロジの例
次に、図25及び図26を参照して、ネットワーク30に接続されるFWプロキシ装置10とクライアント装置20のトポロジ(接続形態)を説明する。
(家庭内LAN等の場合のトポロジ)
図25は、ネットワーク30が、家庭内LAN等の場合におけるトポロジの例を示す図である。
図25は、ネットワーク30が、家庭内LAN等の場合におけるトポロジの例を示す図である。
図25においては、エンドユーザ宅2内の家庭内LAN等のネットワーク30に、マスタ・プロキシ装置10M、スレーブ・プロキシ装置10S−1、スレーブ・プロキシ装置10S−2、クライアント装置20−1、クライアント装置20−2、及びクライアント装置20−3が接続されている。
また、マスタ・プロキシ装置10Mで稼働するマスタプロキシ111によって、スレーブ・プロキシ装置10S−1で稼働するスレーブプロキシ161−1と、スレーブ・プロキシ装置10S−2で稼働するスレーブプロキシ161−2に対し、サービス担当範囲が割り当てられている。
すなわち、マスタプロキシ111には、サービス担当範囲として、サービス1乃至14が割り当てられている。同様に、サービス担当範囲として、スレーブプロキシ161−1には、サービス15乃至19が割り当てられ、スレーブプロキシ161−2には、サービス15乃至19が割り当てられている。なお、このサービス担当範囲の割り当ては、図24に示したブロードキャストストリームごとのアクセス頻度に応じた割り当てと同様である。
ここで、クライアント装置20−1において、サービス7で配信されるコンテンツの再生が指示された場合、サービス7のDASHセグメントのリクエストは、マスタ・プロキシ装置10Mに送信される。マスタプロキシ111は、プロキシ−サービス担当範囲データベースを参照して、サービス7のDASHセグメントのリクエストを、自身(マスタプロキシ111)が担当することを決定する。
そして、マスタ・プロキシ装置10Mでは、放送経由で配信される、サービス7のDASHセグメントファイルが処理され、クライアント装置20−1に送信される。これにより、クライアント装置20−1においては、サービス7で配信されるコンテンツが再生される。
また、クライアント装置20−2において、サービス15で配信されるコンテンツの再生が指示された場合、サービス15のDASHセグメントのリクエストは、マスタ・プロキシ装置10Mに送信される。マスタプロキシ111は、プロキシ−サービス担当範囲データベースを参照して、サービス15のDASHセグメントのリクエストを、スレーブプロキシ161−1(又はスレーブプロキシ161−2)が担当することを決定する。
そして、マスタプロキシ111は、スレーブプロキシ161−1に対し、サービス15のDASHセグメントのリクエストをリダイレクトする。スレーブ・プロキシ装置10S−1では、放送経由で配信される、サービス15のDASHセグメントファイルが処理され、クライアント装置20−2に送信される。これにより、クライアント装置20−2においては、サービス15で配信されるコンテンツが再生される。
また、クライアント装置20−3において、サービス15で配信されるコンテンツの再生が指示された場合、サービス15のDASHセグメントのリクエストは、マスタ・プロキシ装置10Mに送信される。マスタプロキシ111は、プロキシ−サービス担当範囲データベースを参照して、サービス15のDASHセグメントのリクエストを、スレーブプロキシ161−2(又はスレーブプロキシ161−1)が担当することを決定する。
そして、マスタプロキシ111は、スレーブプロキシ161−2に対し、サービス15のDASHセグメントのリクエストをリダイレクトする。スレーブ・プロキシ装置10S−2では、放送経由で配信される、サービス15のDASHセグメントファイルが処理され、クライアント装置20−3に送信される。これにより、クライアント装置20−3においては、サービス15で配信されるコンテンツが再生される。
なお、図25においては、ネットワーク30が、エンドユーザ宅2内の家庭内LANである場合を説明したが、上述したように、マスタ・プロキシ装置10Mやスレーブ・プロキシ装置10S−1,10S−2を、例えば、ケーブルオペレータのヘッドエンドや、モバイル網の基地局などに設置されるようにして、より広範囲は領域(広範囲なLANのセグメント)をカバーするようにしてもよい。
すなわち、例えば、マスタ・プロキシ装置10Mやスレーブ・プロキシ装置10S−1,10S−2が、ケーブルオペレータのヘッドエンドに設置される場合、テレビ受像機やパーソナルコンピュータ等のクライアント装置20−1乃至20−3は、同一のエンドユーザ宅内ではなく、ケーブルテレビのサービスを契約している各エンドユーザ宅内に設置されることになる。
また、例えば、マスタ・プロキシ装置10Mやスレーブ・プロキシ装置10S−1,10S−2が、モバイル網の基地局に設置される場合、スマートフォンやタブレット型コンピュータ等のクライアント装置20−1乃至20−3は、モバイルサービスを契約しているエンドユーザが、屋内又は屋外で所持しているデバイスとなる。
(車車間通信の場合のトポロジ)
図26は、ネットワーク30が、車両間の無線通信の場合におけるトポロジの例を示す図である。
図26は、ネットワーク30が、車両間の無線通信の場合におけるトポロジの例を示す図である。
図26においては、自動車間の無線通信によるネットワーク30に、各自動車に搭載された車載機器としてのマスタ・プロキシ装置10M、スレーブ・プロキシ装置10S−1、及びスレーブ・プロキシ装置10S−2が接続されている。また、このネットワーク30には、エンドユーザにより所持されている、スマートフォンやヘッドマウントディスプレイなどのクライアント装置20−4乃至20−12が接続されている。
なお、このような状況としては、例えば、あるイベント会場の駐車場に、多数の自動車が停車している場合に、イベントの参加者がデバイスを所持しているときなどが想定される。
また、ある自動車内のマスタ・プロキシ装置10Mで稼働するマスタプロキシ111によって、他の自動車内のスレーブ・プロキシ装置10S−1で稼働するスレーブプロキシ161−1と、さらに他の自動車内のスレーブ・プロキシ装置10S−2で稼働するスレーブプロキシ161−2に対し、サービス担当範囲が割り当てられている。
すなわち、マスタプロキシ111には、サービス担当範囲として、サービス1乃至4が割り当てられている。同様に、サービス担当範囲として、スレーブプロキシ161−1には、サービス5乃至10が割り当てられ、スレーブプロキシ161−2には、サービス11乃至19が割り当てられている。
ここで、クライアント装置20−5において、サービス1で配信されるコンテンツの再生が指示された場合、サービス1のDASHセグメントのリクエストは、マスタ・プロキシ装置10Mに送信される。マスタプロキシ111は、プロキシ−サービス担当範囲データベースを参照して、サービス1のDASHセグメントのリクエストを、自身(マスタプロキシ111)が担当することを決定する。
そして、マスタ・プロキシ装置10Mでは、放送経由で配信される、サービス1のDASHセグメントファイルが処理され、クライアント装置20−5に送信される。これにより、クライアント装置20−5においては、サービス1で配信されるコンテンツが再生される。
また、クライアント装置20−8において、サービス10で配信されるコンテンツの再生が指示された場合、サービス10のDASHセグメントのリクエストは、マスタ・プロキシ装置10Mに送信される。マスタプロキシ111は、プロキシ−サービス担当範囲データベースを参照して、サービス10のDASHセグメントのリクエストを、スレーブプロキシ161−1が担当することを決定する。
そして、マスタプロキシ111は、スレーブプロキシ161−1に対し、サービス10のDASHセグメントのリクエストをリダイレクトする。スレーブ・プロキシ装置10S−1では、放送経由で配信される、サービス10のDASHセグメントファイルが処理され、クライアント装置20−8に送信される。これにより、クライアント装置20−8においては、サービス10で配信されるコンテンツが再生される。
また、クライアント装置20−11において、サービス15で配信されるコンテンツの再生が指示された場合、サービス15のDASHセグメントのリクエストは、マスタ・プロキシ装置10Mに送信される。マスタプロキシ111は、プロキシ−サービス担当範囲データベースを参照して、サービス15のDASHセグメントのリクエストを、スレーブプロキシ161−2が担当することを決定する。
そして、マスタプロキシ111は、スレーブプロキシ161−2に対し、サービス15のDASHセグメントのリクエストをリダイレクトする。スレーブ・プロキシ装置10S−2では、放送経由で配信される、サービス15のDASHセグメントファイルが処理され、クライアント装置20−11に送信される。これにより、クライアント装置20−11においては、サービス15で配信されるコンテンツが再生される。
以上、マスタプロキシ111とスレーブプロキシ161の実装例について説明した。
<5.変形例>
(通信経由の配信)
上述した図1の伝送システム1においては、コンテンツのストリームが、放送伝送路60を介して放送経由で配信される場合を説明したが、コンテンツのストリームは、インターネット等の通信伝送路を介して通信経由で配信されるようにしてもよい。
上述した図1の伝送システム1においては、コンテンツのストリームが、放送伝送路60を介して放送経由で配信される場合を説明したが、コンテンツのストリームは、インターネット等の通信伝送路を介して通信経由で配信されるようにしてもよい。
図27には、伝送システムの他の構成例を示している。図27の伝送システム6においては、図1の伝送システム1と比べて、送信側に、放送系の放送サーバ40に加えて、通信系の通信サーバ70が設けられている点が異なっている。
FWプロキシ装置10は、放送伝送路60を介して送信される放送波を受信する受信機能とともに、インターネット80に接続可能な通信機能(通信I/F(不図示))も有している。これにより、FWプロキシ装置10は、インターネット80を介して、通信サーバ70と相互に接続され、通信を行うことが可能である。
FWプロキシ装置10は、ネットワーク30に接続されたクライアント装置20からのリクエストを、インターネット80に接続された通信サーバ70に送信する。また、FWプロキシ装置10は、インターネット80を介して、通信サーバ70から送信されてくるコンテンツのストリームを受信し、ネットワーク30に接続されたクライアント装置20に送信(転送)する。
ここで、上述したように、ネットワーク30に接続されるFWプロキシ装置10−1乃至10−Nにおいては、いずれかのFWプロキシ装置10が、マスタプロキシとして機能し、それ以外のFWプロキシ装置10が、スレーブプロキシとして機能するマスタ・スレーブ関係を有している。そして、FWプロキシ装置10−1乃至10−Nが、マスタ・スレーブ関係を有することで、マスタプロキシ111が稼働するマスタ・プロキシ装置10Mによって、各FWプロキシ装置10に対し、サービスの担当範囲が割り当てられるのは、先に述べた通りである。
これにより、ネットワーク30に接続されたクライアント装置20は、エンドユーザの操作などに応じて、FWプロキシ装置10(マスタ・プロキシ装置10M、又はスレーブ・プロキシ装置10S)を介して、放送経由又は通信経由で配信されるコンテンツを再生することができる。
通信サーバ70は、例えば、放送局などの放送事業者やその他の事業者により提供されるサーバであって、インターネット80に接続される。
通信サーバ70は、FWプロキシ装置10からのリクエストに応じて、番組やCM等のコンテンツのファイルや制御情報を処理し、その結果得られるデータを、インターネット80を介して送信(ストリーミング配信)する。
なお、放送サーバ40や通信サーバ70は、番組等のコンテンツだけでなく、例えば、アプリケーションなどを配信するようにしてもよい。すなわち、伝送システム6においては、アプリケーションが放送経由又は通信経由で配信され、FWプロキシ装置10を介して、クライアント装置20により受信される。
また、伝送システム1(図1)と、伝送システム6(図27)においては、FWプロキシ装置10により、少なくとも、放送経由で配信されるコンテンツのストリームが処理される構成を示したが、送信側に、通信系の通信サーバ70のみを設け、FWプロキシ装置10では、通信経由で配信されるコンテンツのストリームのみが処理されるようにしてもよい。この場合、クライアント装置20は、通信経由で配信されるコンテンツのみを再生することになる。
(他の放送規格への適用)
上述した説明としては、デジタル放送の規格として、米国等で採用されている方式であるATSC(特に、ATSC3.0)を説明したが、本技術は、日本等が採用する方式であるISDB(Integrated Services Digital Broadcasting)や、欧州の各国等が採用する方式であるDVB(Digital Video Broadcasting)などに適用するようにしてもよい。また、上述した説明では、IP伝送方式が採用されるATSC3.0を例にして説明したが、IP伝送方式に限らず、例えば、MPEG2-TS(Transport Stream)方式等の他の方式に適用するようにしてもよい。
上述した説明としては、デジタル放送の規格として、米国等で採用されている方式であるATSC(特に、ATSC3.0)を説明したが、本技術は、日本等が採用する方式であるISDB(Integrated Services Digital Broadcasting)や、欧州の各国等が採用する方式であるDVB(Digital Video Broadcasting)などに適用するようにしてもよい。また、上述した説明では、IP伝送方式が採用されるATSC3.0を例にして説明したが、IP伝送方式に限らず、例えば、MPEG2-TS(Transport Stream)方式等の他の方式に適用するようにしてもよい。
また、デジタル放送の規格としては、地上波放送のほか、放送衛星(BS:Broadcasting Satellite)や通信衛星(CS:Communications Satellite)等を利用した衛星放送や、ケーブルテレビ(CATV:Common Antenna TeleVision)等の有線放送などの規格に適用することができる。
(その他の変形例)
上述した制御情報(シグナリング)などの名称は、一例であって、他の名称が用いられる場合がある。ただし、これらの名称の違いは、形式的な違いであって、対象の制御情報やパケットなどの実質的な内容が異なるものではない。例えば、USBD(User Service Bundle Description)は、USD(User Service Description)と称される場合がある。また、例えば、NRT(Non Real Time)は、LCC(Locally Cached Content)などと称される場合がある。
上述した制御情報(シグナリング)などの名称は、一例であって、他の名称が用いられる場合がある。ただし、これらの名称の違いは、形式的な違いであって、対象の制御情報やパケットなどの実質的な内容が異なるものではない。例えば、USBD(User Service Bundle Description)は、USD(User Service Description)と称される場合がある。また、例えば、NRT(Non Real Time)は、LCC(Locally Cached Content)などと称される場合がある。
また、DASHプレーヤは、例えば、HTML5(HyperText Markup Language 5)などのマークアップ言語やJavaScript(登録商標)等のスクリプト言語で開発されたアプリケーションのほか、例えば、Java(登録商標)などのプログラミング言語で開発されたアプリケーションとすることができる。また、このアプリケーションは、ブラウザにより実行されるアプリケーションに限らず、いわゆるネイティブアプリケーションとして、オペレーティングシステム(OS:Operating System)環境などで実行されるようにしてもよい。
なお、アプリケーションは、何らかの情報を明示的に表示するだけでなく、非表示で(バックグラウンドで)動作されるようにしてもよい(エンドユーザに認識されずに起動するようにしてもよい)。また、コンテンツは、動画や音楽のほか、例えば、電子書籍やゲーム、広告など、あらゆるコンテンツを含めることができる。
<6.コンピュータの構成>
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。図28は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示す図である。
コンピュータ1000において、CPU(Central Processing Unit)1001、ROM(Read Only Memory)1002、RAM(Random Access Memory)1003は、バス1004により相互に接続されている。バス1004には、さらに、入出力インターフェース1005が接続されている。入出力インターフェース1005には、入力部1006、出力部1007、記録部1008、通信部1009、及び、ドライブ1010が接続されている。
入力部1006は、キーボード、マウス、マイクロフォンなどよりなる。出力部1007は、ディスプレイ、スピーカなどよりなる。記録部1008は、ハードディスクや不揮発性のメモリなどよりなる。通信部1009は、ネットワークインターフェースなどよりなる。ドライブ1010は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体1011を駆動する。
以上のように構成されるコンピュータ1000では、CPU1001が、ROM1002や記録部1008に記録されているプログラムを、入出力インターフェース1005及びバス1004を介して、RAM1003にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ1000(CPU1001)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体1011に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の伝送媒体を介して提供することができる。
コンピュータ1000では、プログラムは、リムーバブル記録媒体1011をドライブ1010に装着することにより、入出力インターフェース1005を介して、記録部1008にインストールすることができる。また、プログラムは、有線又は無線の伝送媒体を介して、通信部1009で受信し、記録部1008にインストールすることができる。その他、プログラムは、ROM1002や記録部1008に、あらかじめインストールしておくことができる。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであってもよいし、複数のコンピュータによって分散処理されるものであってもよい。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
また、本技術は、以下のような構成をとることができる。
(1)
複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備える
情報処理装置。
(2)
前記処理部は、各プロキシが稼働する情報処理装置にて受信可能なサービスを示すサービススキャン結果に基づいて、前記ポリシに応じたサービスの担当範囲を決定する
(1)に記載の情報処理装置。
(3)
前記処理部は、各プロキシが稼働する情報処理装置の能力属性に基づいて、前記ポリシに応じたサービスの担当範囲を決定する
(2)に記載の情報処理装置。
(4)
前記ポリシは、各プロキシに対し、ストリーム単位又はサービス単位で、サービスの担当範囲を割り当てる規則である
(2)又は(3)に記載の情報処理装置。
(5)
前記ポリシは、エンドユーザのコンテンツの視聴履歴に基づいて、サービスの担当範囲を割り当てる規則である
(2)乃至(4)のいずれかに記載の情報処理装置。
(6)
前記処理部は、アクセス頻度の高いサービスが、優先的に負荷分散されるように、サービスの担当範囲を決定する
(5)に記載の情報処理装置。
(7)
前記処理部は、コンテンツのストリームのデータを同時に取得できるサービスが集約されるように、サービスの担当範囲を決定する
(5)に記載の情報処理装置。
(8)
前記処理部は、アクセス頻度の高いストリームが、優先的に負荷分散されるように、サービスの担当範囲を決定する
(7)に記載の情報処理装置。
(9)
前記処理部は、前記スレーブプロキシごとに、各スレーブプロキシの担当するサービスを示す担当範囲情報を通知する
(2)乃至(8)のいずれかに記載の情報処理装置。
(10)
前記処理部は、前記スレーブプロキシにより、前記担当範囲情報を取得するためのAPI(Application Programming Interface)が実行された場合に、前記担当範囲情報を、前記スレーブプロキシに通知する
(9)に記載の情報処理装置。
(11)
前記処理部は、
各プロキシと、サービスの担当範囲とを対応付けたデータベースを生成し、
前記クライアント装置から、サービスのリクエストを受けた場合、前記データベースを参照して、当該サービスを担当するプロキシに対し、当該サービスのリクエストがリダイレクションされるようにする
(1)乃至(10)のいずれかに記載の情報処理装置。
(12)
前記ポリシは、エンドユーザにより設定される
(1)乃至(11)のいずれかに記載の情報処理装置。
(13)
前記マスタプロキシが稼働する情報処理装置と、前記スレーブプロキシが稼働する他の情報処理装置では、自身のサービスの担当範囲が決定した場合に、自身の担当範囲に応じたサービスを受信するための準備が行われる
(1)乃至(12)のいずれかに記載の情報処理装置。
(14)
前記スレーブプロキシが稼働する他の情報処理装置は、前記ネットワーク上に複数設置されている
(1)乃至(13)のいずれかに記載の情報処理装置。
(15)
放送波を受信する受信部をさらに備え、
前記処理部は、放送経由で配信される前記コンテンツのストリームを、前記ネットワークを介して前記クライアント装置に送信する
(1)乃至(14)のいずれかに記載の情報処理装置。
(16)
インターネット上のサーバと通信を行う通信部をさらに備え、
前記処理部は、通信経由で配信される前記コンテンツのストリームを、前記ネットワークを介して前記クライアント装置に送信する
(15)に記載の情報処理装置。
(17)
情報処理装置の情報処理方法において、
前記情報処理装置が、
複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定するステップを含む
情報処理方法。
(18)
マスタプロキシが稼働する第1の情報処理装置と、スレーブプロキシが稼働する1又は複数の第2の情報処理装置と、1又は複数のクライアント装置とが、ネットワークを介して接続された情報処理システムにおいて、
前記第1の情報処理装置は、
複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記スレーブプロキシに対する前記マスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備え、
前記第2の情報処理装置は、
複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記マスタプロキシに対する前記スレーブプロキシとして機能し、前記マスタプロキシにより決定された担当範囲に応じたサービスにより配信されるコンテンツのストリームを処理する処理部を備える
情報処理システム。
複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備える
情報処理装置。
(2)
前記処理部は、各プロキシが稼働する情報処理装置にて受信可能なサービスを示すサービススキャン結果に基づいて、前記ポリシに応じたサービスの担当範囲を決定する
(1)に記載の情報処理装置。
(3)
前記処理部は、各プロキシが稼働する情報処理装置の能力属性に基づいて、前記ポリシに応じたサービスの担当範囲を決定する
(2)に記載の情報処理装置。
(4)
前記ポリシは、各プロキシに対し、ストリーム単位又はサービス単位で、サービスの担当範囲を割り当てる規則である
(2)又は(3)に記載の情報処理装置。
(5)
前記ポリシは、エンドユーザのコンテンツの視聴履歴に基づいて、サービスの担当範囲を割り当てる規則である
(2)乃至(4)のいずれかに記載の情報処理装置。
(6)
前記処理部は、アクセス頻度の高いサービスが、優先的に負荷分散されるように、サービスの担当範囲を決定する
(5)に記載の情報処理装置。
(7)
前記処理部は、コンテンツのストリームのデータを同時に取得できるサービスが集約されるように、サービスの担当範囲を決定する
(5)に記載の情報処理装置。
(8)
前記処理部は、アクセス頻度の高いストリームが、優先的に負荷分散されるように、サービスの担当範囲を決定する
(7)に記載の情報処理装置。
(9)
前記処理部は、前記スレーブプロキシごとに、各スレーブプロキシの担当するサービスを示す担当範囲情報を通知する
(2)乃至(8)のいずれかに記載の情報処理装置。
(10)
前記処理部は、前記スレーブプロキシにより、前記担当範囲情報を取得するためのAPI(Application Programming Interface)が実行された場合に、前記担当範囲情報を、前記スレーブプロキシに通知する
(9)に記載の情報処理装置。
(11)
前記処理部は、
各プロキシと、サービスの担当範囲とを対応付けたデータベースを生成し、
前記クライアント装置から、サービスのリクエストを受けた場合、前記データベースを参照して、当該サービスを担当するプロキシに対し、当該サービスのリクエストがリダイレクションされるようにする
(1)乃至(10)のいずれかに記載の情報処理装置。
(12)
前記ポリシは、エンドユーザにより設定される
(1)乃至(11)のいずれかに記載の情報処理装置。
(13)
前記マスタプロキシが稼働する情報処理装置と、前記スレーブプロキシが稼働する他の情報処理装置では、自身のサービスの担当範囲が決定した場合に、自身の担当範囲に応じたサービスを受信するための準備が行われる
(1)乃至(12)のいずれかに記載の情報処理装置。
(14)
前記スレーブプロキシが稼働する他の情報処理装置は、前記ネットワーク上に複数設置されている
(1)乃至(13)のいずれかに記載の情報処理装置。
(15)
放送波を受信する受信部をさらに備え、
前記処理部は、放送経由で配信される前記コンテンツのストリームを、前記ネットワークを介して前記クライアント装置に送信する
(1)乃至(14)のいずれかに記載の情報処理装置。
(16)
インターネット上のサーバと通信を行う通信部をさらに備え、
前記処理部は、通信経由で配信される前記コンテンツのストリームを、前記ネットワークを介して前記クライアント装置に送信する
(15)に記載の情報処理装置。
(17)
情報処理装置の情報処理方法において、
前記情報処理装置が、
複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定するステップを含む
情報処理方法。
(18)
マスタプロキシが稼働する第1の情報処理装置と、スレーブプロキシが稼働する1又は複数の第2の情報処理装置と、1又は複数のクライアント装置とが、ネットワークを介して接続された情報処理システムにおいて、
前記第1の情報処理装置は、
複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記スレーブプロキシに対する前記マスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備え、
前記第2の情報処理装置は、
複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記マスタプロキシに対する前記スレーブプロキシとして機能し、前記マスタプロキシにより決定された担当範囲に応じたサービスにより配信されるコンテンツのストリームを処理する処理部を備える
情報処理システム。
1,6 伝送システム, 10−1乃至10−M,10 FWプロキシ装置,10M マスタ・プロキシ装置,10S スレーブ・プロキシ装置, 20−1乃至20−M,20 クライアント装置, 30 ネットワーク, 40 放送サーバ, 50 送信所, 60 放送伝送路, 70 通信サーバ, 80 インターネット, 100 処理部, 101 チューナ, 102 通信I/F, 103 記憶部, 111 マスタプロキシ, 112 UPnP/SSDPサーバ, 113 プロキシアプリマネージャ, 114 ローカルウェブサーバ, 115 SLS処理系, 150 処理部, 151 チューナ, 152 通信I/F, 153 記憶部, 161 スレーブプロキシ, 162 SLS処理系, 200 処理部, 201 通信I/F, 202 表示部, 203 スピーカ, 211 アプリケーション, 212 ブラウザ, 1000 コンピュータ, 1001 CPU
Claims (18)
- 複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備える
情報処理装置。 - 前記処理部は、各プロキシが稼働する情報処理装置にて受信可能なサービスを示すサービススキャン結果に基づいて、前記ポリシに応じたサービスの担当範囲を決定する
請求項1に記載の情報処理装置。 - 前記処理部は、各プロキシが稼働する情報処理装置の能力属性に基づいて、前記ポリシに応じたサービスの担当範囲を決定する
請求項2に記載の情報処理装置。 - 前記ポリシは、各プロキシに対し、ストリーム単位又はサービス単位で、サービスの担当範囲を割り当てる規則である
請求項2に記載の情報処理装置。 - 前記ポリシは、エンドユーザのコンテンツの視聴履歴に基づいて、サービスの担当範囲を割り当てる規則である
請求項2に記載の情報処理装置。 - 前記処理部は、アクセス頻度の高いサービスが、優先的に負荷分散されるように、サービスの担当範囲を決定する
請求項5に記載の情報処理装置。 - 前記処理部は、コンテンツのストリームのデータを同時に取得できるサービスが集約されるように、サービスの担当範囲を決定する
請求項5に記載の情報処理装置。 - 前記処理部は、アクセス頻度の高いストリームが、優先的に負荷分散されるように、サービスの担当範囲を決定する
請求項7に記載の情報処理装置。 - 前記処理部は、前記スレーブプロキシごとに、各スレーブプロキシの担当するサービスを示す担当範囲情報を通知する
請求項2に記載の情報処理装置。 - 前記処理部は、前記スレーブプロキシにより、前記担当範囲情報を取得するためのAPI(Application Programming Interface)が実行された場合に、前記担当範囲情報を、前記スレーブプロキシに通知する
請求項9に記載の情報処理装置。 - 前記処理部は、
各プロキシと、サービスの担当範囲とを対応付けたデータベースを生成し、
前記クライアント装置から、サービスのリクエストを受けた場合、前記データベースを参照して、当該サービスを担当するプロキシに対し、当該サービスのリクエストがリダイレクションされるようにする
請求項1に記載の情報処理装置。 - 前記ポリシは、エンドユーザにより設定される
請求項1に記載の情報処理装置。 - 前記マスタプロキシが稼働する情報処理装置と、前記スレーブプロキシが稼働する他の情報処理装置では、自身のサービスの担当範囲が決定した場合に、自身の担当範囲に応じたサービスを受信するための準備が行われる
請求項1に記載の情報処理装置。 - 前記スレーブプロキシが稼働する他の情報処理装置は、前記ネットワーク上に複数設置されている
請求項1に記載の情報処理装置。 - 放送波を受信する受信部をさらに備え、
前記処理部は、放送経由で配信される前記コンテンツのストリームを、前記ネットワークを介して前記クライアント装置に送信する
請求項1に記載の情報処理装置。 - インターネット上のサーバと通信を行う通信部をさらに備え、
前記処理部は、通信経由で配信される前記コンテンツのストリームを、前記ネットワークを介して前記クライアント装置に送信する
請求項15に記載の情報処理装置。 - 情報処理装置の情報処理方法において、
前記情報処理装置が、
複数のサービスごとに配信されるコンテンツのストリームを受信して、ネットワークに接続されたクライアント装置に送信するプロキシであって、スレーブプロキシに対するマスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定するステップを含む
情報処理方法。 - マスタプロキシが稼働する第1の情報処理装置と、スレーブプロキシが稼働する1又は複数の第2の情報処理装置と、1又は複数のクライアント装置とが、ネットワークを介して接続された情報処理システムにおいて、
前記第1の情報処理装置は、
複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記スレーブプロキシに対する前記マスタプロキシとして機能し、各プロキシに対して、あらかじめ定められたポリシに応じたサービスの担当範囲を決定する処理部を備え、
前記第2の情報処理装置は、
複数のサービスごとに配信されるコンテンツのストリームを受信して、前記ネットワークに接続された前記クライアント装置に送信するプロキシであって、前記マスタプロキシに対する前記スレーブプロキシとして機能し、前記マスタプロキシにより決定された担当範囲に応じたサービスにより配信されるコンテンツのストリームを処理する処理部を備える
情報処理システム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016166782 | 2016-08-29 | ||
JP2016166782 | 2016-08-29 | ||
PCT/JP2017/029340 WO2018043111A1 (ja) | 2016-08-29 | 2017-08-15 | 情報処理装置、情報処理方法、及び、情報処理システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2018043111A1 true JPWO2018043111A1 (ja) | 2019-06-24 |
Family
ID=61301896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018537100A Pending JPWO2018043111A1 (ja) | 2016-08-29 | 2017-08-15 | 情報処理装置、情報処理方法、及び、情報処理システム |
Country Status (8)
Country | Link |
---|---|
US (1) | US10979495B2 (ja) |
EP (1) | EP3506115B1 (ja) |
JP (1) | JPWO2018043111A1 (ja) |
KR (1) | KR102345869B1 (ja) |
BR (1) | BR112019003507A8 (ja) |
CA (1) | CA3034586A1 (ja) |
MX (1) | MX2019002343A (ja) |
WO (1) | WO2018043111A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11270115B2 (en) * | 2019-11-18 | 2022-03-08 | Lenovo (Singapore) Pte. Ltd. | Presentation of augmented reality content based on identification of trigger accompanying video content |
US20230370900A1 (en) * | 2022-05-11 | 2023-11-16 | Cisco Technology, Inc. | Cpri link-rate auto-negotiation based on available bandwidth in ethernet-based fronthaul network |
TWI806632B (zh) * | 2022-05-27 | 2023-06-21 | 新加坡商聯發科技(新加坡)私人有限公司 | 影音播放裝置及其影音信號資訊顯示方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061282A1 (en) | 2005-09-14 | 2007-03-15 | Nec Laboratories America, Inc. | Data network information distribution |
KR20090056836A (ko) * | 2007-11-30 | 2009-06-03 | 포스데이타 주식회사 | 무선 통신 시스템에서 mcbcs와 매크로 다이버시티를 위한 mcbcs 프락시 선정을 지원하는 장치 및 방법 |
US8635440B2 (en) * | 2007-12-13 | 2014-01-21 | Microsoft Corporation | Proxy with layer 3 security |
US20120072946A1 (en) * | 2010-09-16 | 2012-03-22 | Kevin Cranman | Customized barker channels for viewers of a cable system |
JP2014112768A (ja) | 2012-12-05 | 2014-06-19 | Hitachi Ltd | 自動障害対応キャッシュシステム及びキャッシュサーバの障害対応処理方法並びにキャッシュマネージャ |
US10015437B2 (en) | 2013-01-15 | 2018-07-03 | Qualcomm Incorporated | Supporting transport diversity and time-shifted buffers for media streaming over a network |
US9549000B2 (en) * | 2013-03-15 | 2017-01-17 | Arris Enterprises, Inc. | Streaming media from a server delivering individualized content streams to clients |
US9674251B2 (en) * | 2013-06-17 | 2017-06-06 | Qualcomm Incorporated | Mediating content delivery via one or more services |
JP2015049650A (ja) | 2013-08-30 | 2015-03-16 | ソニー株式会社 | サーバ装置、情報処理方法、プログラム、端末装置、およびコンテンツ供給システム |
US10567098B2 (en) | 2014-10-28 | 2020-02-18 | Sony Corporation | Reception apparatus, transmission apparatus, and data processing method |
KR101853670B1 (ko) * | 2015-03-01 | 2018-05-02 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
US9563514B2 (en) * | 2015-06-19 | 2017-02-07 | Commvault Systems, Inc. | Assignment of proxies for virtual-machine secondary copy operations including streaming backup jobs |
-
2017
- 2017-08-15 US US16/319,524 patent/US10979495B2/en active Active
- 2017-08-15 BR BR112019003507A patent/BR112019003507A8/pt unknown
- 2017-08-15 CA CA3034586A patent/CA3034586A1/en active Pending
- 2017-08-15 EP EP17846119.0A patent/EP3506115B1/en active Active
- 2017-08-15 KR KR1020197004682A patent/KR102345869B1/ko active IP Right Grant
- 2017-08-15 WO PCT/JP2017/029340 patent/WO2018043111A1/ja active Application Filing
- 2017-08-15 MX MX2019002343A patent/MX2019002343A/es unknown
- 2017-08-15 JP JP2018537100A patent/JPWO2018043111A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3506115B1 (en) | 2020-10-07 |
US20200244725A1 (en) | 2020-07-30 |
WO2018043111A1 (ja) | 2018-03-08 |
US10979495B2 (en) | 2021-04-13 |
CA3034586A1 (en) | 2018-03-08 |
BR112019003507A8 (pt) | 2023-02-07 |
EP3506115A1 (en) | 2019-07-03 |
KR102345869B1 (ko) | 2022-01-03 |
KR20190045169A (ko) | 2019-05-02 |
BR112019003507A2 (pt) | 2019-05-21 |
MX2019002343A (es) | 2019-07-04 |
EP3506115A4 (en) | 2019-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6396005B2 (ja) | アプリケーションを発見する方法 | |
CN101861729B (zh) | 通过使用会话初始化协议发现互联网协议电视服务iptv提供商和iptv服务的方法和设备 | |
US9883251B2 (en) | Method and apparatus for managing connection between broadcast receiving device and another device connected by network | |
KR102496890B1 (ko) | 정보 처리 장치, 클라이언트 장치, 및 데이터 처리 방법 | |
US8880695B2 (en) | Information processing apparatus and information processing method | |
US11374670B2 (en) | Receiving device, transmitting device, and data processing method | |
KR102443060B1 (ko) | 정보 처리 장치 및 정보 처리 방법 | |
CN105323628B (zh) | 基于dlna跨屏播放的方法及***、浏览器端装置和播放装置 | |
JP5567144B2 (ja) | メディアコンテンツ情報の提供 | |
KR101141163B1 (ko) | A/v 컨텐츠와 관련된 어플리케이션의 실행 방법 및 그 장치 | |
KR102345869B1 (ko) | 정보 처리 장치, 정보 처리 방법, 및 정보 처리 시스템 | |
US20110142212A1 (en) | Method and apparatus for providing service oriented common access network service | |
KR102460444B1 (ko) | 수신 장치, 송신 장치 및 데이터 처리 방법 | |
JP2010537559A (ja) | 大型ceデバイス実装のための階層化ネットワーク構造 | |
KR102611253B1 (ko) | 수신 장치, 송신 장치 및 데이터 처리 방법 | |
WO2011005051A2 (ko) | 원격 관리 및 펌웨어 업그레이드 방법 및 장치 | |
KR101329668B1 (ko) | 푸쉬 서버를 이용한 콘텐츠 공유 시스템 및 방법 | |
KR102052385B1 (ko) | 미디어 공유를 위한 협업 서비스 제공 방법 및 시스템 |