JP2018509679A - Improved client-driven push of resources with server devices - Google Patents

Improved client-driven push of resources with server devices Download PDF

Info

Publication number
JP2018509679A
JP2018509679A JP2017537233A JP2017537233A JP2018509679A JP 2018509679 A JP2018509679 A JP 2018509679A JP 2017537233 A JP2017537233 A JP 2017537233A JP 2017537233 A JP2017537233 A JP 2017537233A JP 2018509679 A JP2018509679 A JP 2018509679A
Authority
JP
Japan
Prior art keywords
data
push
client
server
request
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.)
Granted
Application number
JP2017537233A
Other languages
Japanese (ja)
Other versions
JP2018509679A5 (en
JP6686029B2 (en
Inventor
ドゥヌアル フランク
ドゥヌアル フランク
ファブレ ユアン
ファブレ ユアン
ルーラン エルヴェ
ルーラン エルヴェ
マゼ フレデリック
マゼ フレデリック
ウエドラオゴ ナエル
ウエドラオゴ ナエル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Publication of JP2018509679A publication Critical patent/JP2018509679A/en
Publication of JP2018509679A5 publication Critical patent/JP2018509679A5/ja
Application granted granted Critical
Publication of JP6686029B2 publication Critical patent/JP6686029B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4722End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting additional data associated with the content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本発明は、HTTP通信ネットワークを通してのデータ送信、例えばデータストリーミング、に関する。サーバとクライアントとの間でデータを送信する方法は、サーバにおいて:第1データを得るHTTPリクエストをクライアントから受け取るステップであって、そのHTTPリクエストは、サーバ上の第1データの特定を可能にする第1データ特定情報を含むとともに、第2データをプッシュすることに関連する指示を含む1つまたは複数の追加ヘッダフィールドを含む、受け取るステップ;その第1データを取り出してクライアントに送るステップ;および、第2データをプッシュすることに関連するその指示を表す確認応答データをクライアントデバイスに送るステップ、を含む。【選択図】11aThe present invention relates to data transmission, eg data streaming, over an HTTP communication network. The method for transmitting data between the server and the client is at the server: receiving an HTTP request from the client to obtain the first data, the HTTP request enabling the identification of the first data on the server. Receiving, including one or more additional header fields including first data specific information and including instructions associated with pushing the second data; retrieving the first data and sending to the client; and Sending acknowledgment data representing the indication associated with pushing the second data to the client device. [Selection] 11a

Description

本発明は、HTTP(HyperText Transfer Protocolを表す)通信ネットワークを通してのデータ送信、例えばデータストリーミング、に関し、より正確にはサーバデバイスによるリソースのクライアント主導型プッシュに関する。   The present invention relates to data transmission, eg, data streaming, over an HTTP (representing HyperText Transfer Protocol) communication network, and more precisely to client-driven push of resources by a server device.

DASH(Dynamic Adaptive Streaming over HTTPの頭字語)メディアコンテンツストリーミングなどの、HTTPを通しての通信においては、クライアントデバイスによってサーバデバイスに対して大量のデータが要求されることがある。そうするために、クライアントデバイスは、普通、メソッド(例えば“GET”)と、場合によってはHTTPリクエスト内の1つまたは複数の追加のヘッダ(例えば、そのユニフォームリソースアイデンティファイア(URI:uniform resource identifier)により特定されるリソースの中のバイトレンジを提供するレンジ(Range)ヘッダ)と共に、サーバデバイス上の要求されたデータを特定して位置を示すURIとから成るリクエストラインを各々含むHTTPリクエストを送る。   In communication over HTTP, such as DASH (Dynamic Adaptive Streaming over HTTP) media content streaming, a client device may require a large amount of data from the server device. In order to do so, the client device typically has a method (eg, “GET”) and possibly one or more additional headers (eg, its uniform resource identifier (URI) in the HTTP request). Send an HTTP request, each containing a request line consisting of a URI indicating the location and location of the requested data on the server device, along with a Range header that provides the byte range in the resource specified by .

クライアントデバイスによってまだ要求されていないデータをサーバデバイスが自発的にプッシュできるようにするためにサーバプッシュフィーチャが開発されている。これは、ウェブリソースのローディング時間を短縮するために有益なフィーチャである。   Server push features have been developed to allow server devices to voluntarily push data that has not yet been requested by a client device. This is a useful feature to reduce web resource loading time.

サーバプッシュフィーチャは、請求されていないウェブリソースリプリゼンテーションをサーバデバイスがクライアントデバイスに送ることを可能にするためにHTTP/2(これは単一の現存するコネクションの中で数個のリクエスト/レスポンスを交換すること、すなわち数個のストリームを持つこと、をも可能にする)において導入されている。ウェブページなどのウェブリソースは一般的に他のリソースへのリンクを含んでおり、それら自身が他のリソースへのリンクを含むことがある。ウェブページを完全に表示するためには、一般的に、全てのリンクされているリソースおよびサブリンクされているリソースがクライアントデバイスにより取り出されなければならない。この増加する発見は、特にモバイルネットワークなどの大レイテンシのネットワーク上では、ウェブページの低速の表示につながる可能性がある。   The server push feature is HTTP / 2 (which allows several request / responses within a single existing connection to allow the server device to send unsolicited web resource representations to the client device. Is also introduced), ie, having several streams). Web resources, such as web pages, typically include links to other resources, and themselves may include links to other resources. In order to fully display a web page, typically all linked resources and sublinked resources must be retrieved by the client device. This increased discovery can lead to slow display of web pages, especially on high latency networks such as mobile networks.

所与のウェブページに対するリクエストを受け取るとき、サーバデバイスは、要求されているリソースの完全な処理のために他のどのリソースが必要かを判定することができる。要求されたリソースと、リンクされているリソースとを同時に送ることにより、サーバデバイスはそのウェブページのローディング時間を短縮することを可能にする。従って、プッシュフィーチャを使って、サーバデバイスは、所与のリソースを要求された時点で追加リソースのリプリゼンテーションを送ることができる。   When receiving a request for a given web page, the server device can determine which other resources are required for the complete processing of the requested resource. By sending the requested resource and the linked resource simultaneously, the server device can reduce the loading time of the web page. Thus, using the push feature, the server device can send a representation of additional resources when requested for a given resource.

データのプッシュは、DASHと関連して、例えば本出願人の、特許文献1として公開された出願においても提案されている。   Data push has also been proposed in connection with DASH, for example in an application published as US Pat.

この刊行物は、ユーザの経験を最適化するためにデータストリーミングを、特にDASHベースの通信と関連して、改善しようとしている。その理由は、在来のメカニズムにおいては、クライアントおよびサーバデバイスにとっては約束されたデータが所要の時に送られ受け取られるかどうか分からず、クライアントデバイスにとってはビデオセグメントが何時どんな順序で送られるか分からないかもしれないことにある。さらに、サーバデバイスによってプッシュまたはアナウンスされた約束のデータはクライアントデバイスのニーズに合わないかもしれず(これは時間が経つにつれて進化する可能性がある)、従って特にサーバエンドにおいてリソースが浪費される結果につながるかもしれない。従って特許文献1は、サーバデバイスとクライアントデバイスとがプッシュポリシーを共有することを提案している。   This publication seeks to improve data streaming to optimize the user experience, particularly in connection with DASH-based communications. The reason is that in conventional mechanisms, the client and server devices do not know if the promised data is sent and received when needed, and the client device does not know when and in what order the video segments are sent. It may be. Furthermore, the promised data pushed or announced by the server device may not meet the needs of the client device (this may evolve over time), thus resulting in wasted resources, especially at the server end. May lead. Therefore, Patent Document 1 proposes that a server device and a client device share a push policy.

この共有は、クライアントデバイスが、どのデータがプッシュされかけているかを前もって知り、その後、ネットワーク帯域幅の浪費を避けるためにそのようなプッシュのキャンセルを準備するために役立つ。   This sharing helps client devices know in advance what data is being pushed and then prepares to cancel such pushes to avoid wasting network bandwidth.

しかし、この刊行物において提案されているメカニズムは、特に、プッシュポリシーに従ってどのデータまたはリソースをプッシュするかを決定するためにXMLベースのDASH“メディアプレゼンテーション記述”ファイル(MPD:media presentation description)に対してプッシュポリシーを適用し得るように、サーバデバイスがDASHについての極めて複雑な知識を持つことを要求する。   However, the mechanism proposed in this publication is specifically for XML-based DASH “media presentation description” files (MPD) to determine what data or resources to push according to the push policy. The server device requires very complex knowledge about DASH so that the push policy can be applied.

MPDファイルはメディアコンテンツの構造をメディアセグメントに記述することに注意されたい。MPDファイルは、サーバデバイスとクライアントデバイスとの間で交換され、後者に、後者がメディアコンテンツのデリバリを制御することを可能にする、すなわち後者が各メディアセグメントを個別に要求することを可能にする、情報を与える。   Note that MPD files describe the structure of media content in media segments. MPD files are exchanged between the server device and the client device, which allows the latter to control the delivery of media content, i.e. allows the latter to request each media segment individually. Give information.

国際公開第2015/004276号International Publication No. 2015/004276

この文脈において、本発明はサーバデバイスとクライアントデバイスとの間でデータを送信する方法を提供し、この方法は、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストはサーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともに、第2データをプッシュすることに関連する指示を含む1つまたは複数の追加のヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;
第2データをプッシュすることに関連する指示を表す確認応答データをクライアントデバイスに送るステップ;および
1つまたは複数のヘッダフィールドだけ、および場合によってはさらに第1データ特定情報、を用いて、サーバデバイス上の第2データの特定を可能にする第2データ特定情報を決定するステップ;
を含む。
In this context, the present invention provides a method for transmitting data between a server device and a client device, the method being at the server device:
Receiving an HTTP request for obtaining first data from a client device, the HTTP request including first data identifying information enabling identification of the first data on the server device and pushing the second data; Receiving, including one or more additional header fields containing associated instructions;
Retrieving the first data and sending it to the client device;
Sending acknowledgment data representing instructions associated with pushing the second data to the client device; and using only one or more header fields and optionally further the first data identification information, the server device Determining second data identification information that enables identification of the second data above;
including.

従って、本発明の方法は、クライアントデバイスがサーバデバイスにより適用されるプッシュポリシーを考慮して自分の振る舞いを適合させることを可能にする。   Thus, the method of the present invention allows client devices to adapt their behavior in view of the push policy applied by the server device.

複数の実施形態において、この方法はさらに:
第2データのプッシュをアナウンスするプッシュ約束メッセージをクライアントデバイスに送るステップおよび/または第2データをクライアントデバイスにプッシュするステップを含む。
In embodiments, the method further includes:
Sending a push commitment message to announce the push of the second data to the client device and / or pushing the second data to the client device.

複数の実施形態において、確認応答データは、第2データをプッシュするための指示を表す。   In embodiments, the acknowledgment data represents an instruction to push the second data.

複数の実施形態において、確認応答データは、HTTPリクエストに応じての第2データのプッシュは行われないことを示す。   In some embodiments, the acknowledgment data indicates that the second data is not pushed in response to the HTTP request.

複数の実施形態において、第2データをプッシュすることに関連する指示は、第2データをプッシュすることに関連する少なくとも2つの異なる指示を含むリストを含む。   In embodiments, the instructions associated with pushing the second data include a list that includes at least two different instructions associated with pushing the second data.

複数の実施形態において、確認応答データは第2データをプッシュすることに関連する少なくとも2つの異なる指示のうちの1つを含み、第2データをプッシュすることに関連するその少なくとも2つの異なる指示のうちの前記の1つは、クライアントデバイスにプッシュされるべき第2データを特定するために使用される。   In embodiments, the acknowledgment data includes one of at least two different instructions associated with pushing the second data, and the at least two different instructions associated with pushing the second data. The one of them is used to identify the second data to be pushed to the client device.

複数の実施形態において、第2データをプッシュすることに関連する指示は第2データのデータのタイプと関連付けられ、そのデータのタイプは記述データタイプまたはコンテンツデータタイプを含み、第2データはコンテンツデータにまたは記述データに属する。   In embodiments, the instruction associated with pushing the second data is associated with a data type of the second data, the data type including a descriptive data type or a content data type, wherein the second data is the content data Or belong to descriptive data.

複数の実施形態において、第2データをプッシュすることに関連する指示は、メディアプレゼンテーション記述アップデートをプッシュすることに向けられる。   In embodiments, the instructions related to pushing the second data are directed to pushing the media presentation description update.

複数の実施形態において、確認応答データは、第2データをプッシュすることに関連する指示を含み、確認応答データ内の第2データをプッシュすることに関連する指示は、HTTPリクエスト内の第2データをプッシュすることに関連する指示とは異なる。   In embodiments, the acknowledgment data includes an indication associated with pushing the second data, and the indication associated with pushing the second data within the acknowledgment data is the second data within the HTTP request. Different from the instructions related to pushing.

複数の実施形態において、第2データをプッシュすることに関連する指示は、少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は、第2データをプッシュするためのディレクティブとプッシュされるべき第2データのアイデンティフィケーションとを表すかまたは第2データをプッシュしないためのディレクティブを表す。   In embodiments, the indication associated with pushing the second data includes at least one unique identifier, the at least one unique identifier being the directive to push the second data and the first to be pushed. Represents a two-data identification or a directive not to push the second data.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は、少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

本発明の他の1つの目的に応じて、サーバデバイスとクライアントデバイスとの間でデータを送信する方法が提供され、この方法は、クライアントデバイスにおいて:
サーバデバイスから得られるべきデータを特定するステップ;
特定されたデータから第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは、サーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともにサーバデバイスが第2データをプッシュするべきか第2データをプッシュするべきでないかに関する指示を含む1つまたは複数の追加のヘッダフィールドを含む、生成するステップ;
第1データを得るとともにサーバデバイスに第2データをプッシュさせまたはプッシュさせないためにHTTPリクエストをサーバデバイスに送るステップ;および
HTTPリクエストを送ることに応答して確認応答データをサーバデバイスから受け取るステップであって、確認応答データは第2データをプッシュすることに関連する指示を表す、受け取るステップ;を含み、
1つまたは複数の追加のヘッダフィールドは、1つまたは複数の追加のヘッダフィールドだけに、および場合によってはさらに第1データ特定情報に、基づいて、サーバデバイス上の特定されたデータから第2データの特定を可能にする第2データ特定情報を定義する。
In accordance with another object of the present invention, a method is provided for transmitting data between a server device and a client device, the method at the client device:
Identifying the data to be obtained from the server device;
Generating an HTTP request to obtain first data from the identified data, wherein the HTTP request includes first data identifying information that enables identification of the first data on the server device and the server device is configured to receive the second data Generating, including one or more additional header fields that include an indication as to whether to push data or not to push second data;
Sending an HTTP request to the server device to obtain the first data and cause the server device to push or not push the second data; and receiving acknowledgment data from the server device in response to sending the HTTP request. The acknowledgment data represents an instruction associated with pushing the second data, receiving;
The one or more additional header fields are the second data from the identified data on the server device based only on the one or more additional header fields, and possibly further on the first data identification information. 2nd data specific information which makes specification possible is defined.

従って、本発明の方法は、クライアントデバイスがサーバデバイスにより適用されるプッシュポリシーを考慮して自身の振る舞いを適合させることを可能にする   Thus, the method of the present invention allows a client device to adapt its behavior taking into account the push policy applied by the server device.

複数の実施形態において、確認応答データは、第2データをプッシュするための指示を表す。   In embodiments, the acknowledgment data represents an instruction to push the second data.

複数の実施形態において、確認応答データは、HTTPリクエストに応答しての第2データのプッシュは行われないことを示す。   In embodiments, the acknowledgment data indicates that the second data is not pushed in response to the HTTP request.

複数の実施形態において、第2データをプッシュすることに関連する指示は、第2データをプッシュすることに関連する少なくとも2つの異なる指示を含むリストを含む。   In embodiments, the instructions associated with pushing the second data include a list that includes at least two different instructions associated with pushing the second data.

複数の実施形態において、確認応答データは第2データをプッシュすることに関連する少なくとも2つの異なる指示のうちの1つを含み、第2データをプッシュすることに関連する少なくとも2つの異なる指示のうちの前記の1つは、クライアントデバイスにプッシュされるべき第2データを特定するためにサーバデバイスにより使用される。   In embodiments, the acknowledgment data includes one of at least two different instructions associated with pushing the second data, and among the at least two different instructions associated with pushing the second data. The one of is used by the server device to identify the second data to be pushed to the client device.

複数の実施形態において、第2データをプッシュすることに関連する指示は第2データのデータのタイプと関連付けられ、そのデータのタイプは記述データタイプまたはコンテンツデータタイプを含み、第2データはコンテンツデータにまたは記述データに属する。   In embodiments, the instruction associated with pushing the second data is associated with a data type of the second data, the data type including a descriptive data type or a content data type, wherein the second data is the content data Or belong to descriptive data.

複数の実施形態において、第2データをプッシュすることに関連する指示は、記述データアップデートをプッシュすることに向けられる。   In embodiments, the instructions related to pushing the second data are directed to pushing a descriptive data update.

複数の実施形態において、確認応答データは、第2データをプッシュすることに関連する指示を含み、確認応答データ内の第2データをプッシュすることに関連する指示は、HTTPリクエスト内の第2データをプッシュすることに関連する指示とは異なる。   In embodiments, the acknowledgment data includes an indication associated with pushing the second data, and the indication associated with pushing the second data within the acknowledgment data is the second data within the HTTP request. Different from the instructions related to pushing.

複数の実施形態において、第2データをプッシュすることに関連する指示は、少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は、第2データをプッシュするためのディレクティブとプッシュされるべき第2データのアイデンティフィケーションとを表すかまたは第2データをプッシュしないためのディレクティブを表す。   In embodiments, the indication associated with pushing the second data includes at least one unique identifier, the at least one unique identifier being the directive to push the second data and the first to be pushed. Represents a two-data identification or a directive not to push the second data.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は、少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

本発明の他の1つの目的に応じて、サーバデバイスとクライアントデバイスとの間でデータを送信する方法が提供され、この方法は、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストはサーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともに、1つまたは複数の追加のヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;および
1つまたは複数の追加のフィールドに含まれる第2データをプッシュすることに関連する指示の関数として第2データをクライアントデバイスにプッシュするかまたはプッシュしないステップ;
を含む。
In accordance with another object of the present invention, a method is provided for transmitting data between a server device and a client device, the method at the server device:
Receiving an HTTP request for obtaining first data from a client device, the HTTP request including first data identifying information that enables identification of the first data on the server device and one or more additional headers; Receiving, including fields;
Retrieving and sending the first data to the client device; and pushing or pushing the second data to the client device as a function of an indication associated with pushing the second data contained in the one or more additional fields. Don't step;
including.

従って、本発明の方法は、有益なデータをクライアントデバイスにプッシュするサーバデバイスの能力を改善する。   Thus, the method of the present invention improves the server device's ability to push useful data to the client device.

複数の実施形態において、第2データをプッシュすることに関連する指示は、第2データをプッシュすることに関連する少なくとも2つの異なる指示を含むリストを含む。   In embodiments, the instructions associated with pushing the second data include a list that includes at least two different instructions associated with pushing the second data.

複数の実施形態において、第2データをプッシュすることに関連する指示は第2データのデータのタイプと関連付けられ、そのデータのタイプは記述データタイプまたはコンテンツデータタイプを含み、第2データはコンテンツデータにまたは記述データに属する。   In embodiments, the instruction associated with pushing the second data is associated with a data type of the second data, the data type including a descriptive data type or a content data type, wherein the second data is the content data Or belong to descriptive data.

複数の実施形態において、第2データをプッシュすることに関連する指示は、記述データアップデートをプッシュすることに向けられる。   In embodiments, the instructions related to pushing the second data are directed to pushing a descriptive data update.

複数の実施形態において、第2データをプッシュすることに関連する指示は、少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は、第2データをプッシュするためのディレクティブとプッシュされるべき第2データのアイデンティフィケーションとを表すかまたは第2データをプッシュしないためのディレクティブを表す。   In embodiments, the indication associated with pushing the second data includes at least one unique identifier, the at least one unique identifier being the directive to push the second data and the first to be pushed. Represents a two-data identification or a directive not to push the second data.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は、少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

本発明の他の1つの目的に応じて、サーバデバイスとクライアントデバイスとの間でデータを送信する方法が提供され、この方法は、クライアントデバイスにおいて:
サーバデバイスから得られるべきデータを特定するステップ;
特定されたデータから第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは、サーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともにサーバデバイスが第2データをプッシュするべきか第2データをプッシュするべきでないかに関する指示を含む1つまたは複数の追加のヘッダフィールドを含む、生成するステップ;および
第1データを得るとともにサーバデバイスに第2データをプッシュさせまたはプッシュさせないためにHTTPリクエストをサーバデバイスに送るステップ;
を含む。
In accordance with another object of the present invention, a method is provided for transmitting data between a server device and a client device, the method at the client device:
Identifying the data to be obtained from the server device;
Generating an HTTP request to obtain first data from the identified data, wherein the HTTP request includes first data identifying information that enables identification of the first data on the server device and the server device is configured to receive the second data Generating, including one or more additional header fields including an indication as to whether to push data or not to push the second data; and obtaining the first data and pushing the second data to the server device Sending an HTTP request to the server device to prevent it from being pushed or pushed;
including.

従って、本発明の方法は、有益なデータをクライアントデバイスにプッシュするサーバデバイスの能力を改善する。   Thus, the method of the present invention improves the server device's ability to push useful data to the client device.

複数の実施形態において、第2データをプッシュすることに関連する指示は、第2データをプッシュすることに関連する少なくとも2つの異なる指示を含むリストを含む。   In embodiments, the instructions associated with pushing the second data include a list that includes at least two different instructions associated with pushing the second data.

複数の実施形態において、第2データをプッシュすることに関連する指示は第2データのデータのタイプと関連付けられ、そのデータのタイプは記述データタイプまたはコンテンツデータタイプを含み、第2データはコンテンツデータにまたは記述データに属する。   In embodiments, the instruction associated with pushing the second data is associated with a data type of the second data, the data type including a descriptive data type or a content data type, wherein the second data is the content data Or belong to descriptive data.

複数の実施形態において、第2データをプッシュすることに関連する指示は記述データアップデートをプッシュすることに向けられる。   In embodiments, the instructions associated with pushing the second data are directed to pushing a descriptive data update.

複数の実施形態において、第2データをプッシュすることに関連する指示は、少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は、第2データをプッシュするためのディレクティブとプッシュされるべき第2データのアイデンティフィケーションとを表すかまたは第2データをプッシュしないためのディレクティブを表す。   In embodiments, the indication associated with pushing the second data includes at least one unique identifier, the at least one unique identifier being the directive to push the second data and the first to be pushed. Represents a two-data identification or a directive not to push the second data.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は、少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

本発明の他の1つの目的に応じて、クライアントデバイスによりサーバデバイスからデータを受け取る方法が提供され、この方法は、クライアントデバイスにおいて:
第1データを得るHTTPリクエストを送るステップであって、HTTPリクエストは、サーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともに1つまたは複数の追加のヘッダフィールドを含む、送るステップ;
もしクライアントがサーバデバイスに第1データと異なる第2データをプッシュしてほしくないならば、クライアントはサーバにHTTPリクエストに応じて第2データをプッシュしてほしくないということを示す情報アイテムを1つまた複数の追加のヘッダフィールドのうちの少なくとも1つに挿入するステップ;および
HTTPリクエストをサーバデバイスに送るステップ;
を含む。
In accordance with another object of the present invention, a method is provided for receiving data from a server device by a client device, the method at the client device:
Sending an HTTP request to obtain first data, wherein the HTTP request includes first data identification information that enables identification of the first data on the server device and includes one or more additional header fields. Sending step;
If the client does not want the server device to push second data different from the first data, the client has one information item indicating that the client does not want the server to push the second data in response to the HTTP request. Inserting into at least one of a plurality of additional header fields; and sending an HTTP request to the server device;
including.

従って、本発明の方法は、サーバデバイスからクライアントデバイスにプッシュされる無駄なデータの送信を防止する。   Thus, the method of the present invention prevents the transmission of useless data that is pushed from the server device to the client device.

複数の実施形態において、クライアントはサーバに第2データをプッシュしてほしくないということを示す情報は少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は、第2データをプッシュさせないためのディレクティブを表す。   In embodiments, the information indicating that the client does not want the server to push the second data includes at least one unique identifier, the at least one unique identifier being a directive for preventing the second data from being pushed. Represents.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

本発明の他の1つの目的に応じて、データをサーバデバイスからクライアントデバイスに送る方法が提供され、この方法は、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストはサーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともに、1つまたは複数の追加のヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;および
サーバはHTTPリクエストに応じて第1データと異なる第2データをプッシュしないということを示す情報アイテムをクライアントに送るステップ;
を含む。
In accordance with another object of the present invention, a method is provided for sending data from a server device to a client device, the method at the server device:
Receiving an HTTP request for obtaining first data from a client device, the HTTP request including first data identifying information that enables identification of the first data on the server device and one or more additional headers; Receiving, including fields;
Retrieving the first data and sending it to the client device; and sending an information item to the client indicating that the server does not push second data different from the first data in response to the HTTP request;
including.

従って、本発明の方法は、サーバデバイスからクライアントデバイスにプッシュされる無駄なデータの送信を防止する。   Thus, the method of the present invention prevents the transmission of useless data that is pushed from the server device to the client device.

複数の実施形態において、サーバは第2データをプッシュしないということを示す情報は少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は第2データをプッシュさせないためのディレクティブを表す。   In embodiments, the information indicating that the server does not push the second data includes at least one unique identifier, and the at least one unique identifier represents a directive for preventing the second data from being pushed.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

本発明の他の1つの目的に応じて、クライアントデバイスによりサーバデバイスからデータを受け取る方法が提供され、この方法は、クライアントデバイスにおいて:
第1データを得るHTTPリクエストを送るステップであって、HTTPリクエストは、サーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともに1つまたは複数の追加のヘッダフィールドを含む、送るステップ;
もしクライアントがサーバデバイスに第1データと異なる第2データをプッシュしてほしくないならば、クライアントはサーバにHTTPリクエストに応じて第2データをプッシュしてほしくないということを示す情報アイテムを1つまた複数の追加のヘッダフィールドのうちの少なくとも1つに挿入するステップ;
HTTPリクエストをサーバデバイスに送るステップ;
HTTPリクエストを送ることに応答して、サーバデバイスから確認応答データを受け取るステップであって、確認応答データは、サーバは第1データと異なる第2データをプッシュしないということを示す情報アイテムを含む、受け取るステップ;
を含む。
In accordance with another object of the present invention, a method is provided for receiving data from a server device by a client device, the method at the client device:
Sending an HTTP request to obtain first data, wherein the HTTP request includes first data identification information that enables identification of the first data on the server device and includes one or more additional header fields. Sending step;
If the client does not want the server device to push second data different from the first data, the client has one information item indicating that the client does not want the server to push the second data in response to the HTTP request. Inserting into at least one of the plurality of additional header fields;
Sending an HTTP request to the server device;
Receiving acknowledgment data from the server device in response to sending an HTTP request, the acknowledgment data including an information item indicating that the server does not push second data different from the first data; Receiving step;
including.

従って、本発明の方法は、サーバデバイスからクライアントデバイスにプッシュされる無駄なデータの送信を防止する。   Thus, the method of the present invention prevents the transmission of useless data that is pushed from the server device to the client device.

複数の実施形態において、クライアントはサーバに第2データをプッシュしてほしくないということを示す情報は少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は、第2データをプッシュさせないためのディレクティブを表す。   In embodiments, the information indicating that the client does not want the server to push the second data includes at least one unique identifier, the at least one unique identifier being a directive for preventing the second data from being pushed. Represents.

複数の実施形態において、サーバは第2データをプッシュしないということを示す情報は少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は第2データをプッシュさせないためのディレクティブを表す。   In embodiments, the information indicating that the server does not push the second data includes at least one unique identifier, and the at least one unique identifier represents a directive for preventing the second data from being pushed.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

本発明の他の1つの目的に応じて、データをサーバデバイスからクライアントデバイスに送る方法が提供され、この方法は、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストはサーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともに、クライアントはHTTPリクエストに応じてサーバにより第2データをプッシュしてほしくないということを示す情報アイテムを含む1つまたは複数の追加のヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;および
HTTPリクエストに応じて、サーバは第1データと異なる第2データをクライアントにプッシュしないということを示す情報アイテムを送るステップ;
を含む。
In accordance with another object of the present invention, a method is provided for sending data from a server device to a client device, the method at the server device:
Receiving an HTTP request for obtaining first data from a client device, wherein the HTTP request includes first data identifying information that enables identification of the first data on the server device, and the client responds to the HTTP request by the server Receiving, including one or more additional header fields containing information items indicating that you do not want the second data to be pushed by
Retrieving the first data and sending it to the client device; and, in response to the HTTP request, sending an information item indicating that the server does not push the second data different from the first data to the client;
including.

従って、本発明の方法は、サーバデバイスからクライアントデバイスにプッシュされる無駄なデータの送信を防止する。   Thus, the method of the present invention prevents the transmission of useless data that is pushed from the server device to the client device.

複数の実施形態において、サーバは第2データをプッシュしないということを示す情報は少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は第2データをプッシュさせないためのディレクティブを表す。   In embodiments, the information indicating that the server does not push the second data includes at least one unique identifier, and the at least one unique identifier represents a directive for preventing the second data from being pushed.

複数の実施形態において、クライアントはサーバにより第2データをプッシュしてほしくないということを示す情報は少なくとも1つの一意識別子を含み、その少なくとも1つの一意識別子は第2データをプッシュさせないためのディレクティブを表す。   In embodiments, the information indicating that the client does not want the server to push the second data includes at least one unique identifier, and the at least one unique identifier includes a directive to prevent the second data from being pushed. Represent.

複数の実施形態において、一意識別子は集中リポジトリにおいて定義される。   In embodiments, the unique identifier is defined in the central repository.

複数の実施形態において、一意識別子は少なくとも1つのパラメータの関数としてセットされる。   In embodiments, the unique identifier is set as a function of at least one parameter.

複数の実施形態において、1つまたは複数の追加のヘッダフィールドは1つまたは複数の任意ヘッダフィールドである。   In embodiments, the one or more additional header fields are one or more optional header fields.

複数の実施形態において、第1および第2のデータ特定情報は、それぞれ、第1および第2のユニフォームリソースアイデンティファイア、URI、を含む。   In embodiments, the first and second data identification information includes first and second uniform resource identifiers, URIs, respectively.

複数の実施形態において、1つまたは複数の任意ヘッダフィールドは、HTTPリクエストの内容から第2URIを生成する少なくとも1つの構築ルールを含む。   In embodiments, the one or more optional header fields include at least one construction rule that generates a second URI from the contents of the HTTP request.

複数の実施形態において、1つまたは複数の任意ヘッダフィールドは変化部分情報および代入情報を含み、変化部分情報は参照URI内の少なくとも1つの変化サブパーツを特定し、代入情報は1つまたは複数の第2のURIを定義するために参照URIにおいて特定される変化サブパーツに取って代わる少なくとも1つの代入値を含む。   In embodiments, the one or more optional header fields include change portion information and substitution information, the change portion information identifies at least one change subpart in the reference URI, and the substitution information is one or more of It includes at least one substitution value that replaces the change subpart specified in the reference URI to define a second URI.

複数の実施形態において、参照URIは、受け取られたHTTPリクエストに含まれる第1URIを含む。   In embodiments, the reference URI includes a first URI included in the received HTTP request.

複数の実施形態において、変化部分情報は、代入情報に含まれるそれぞれの1つまたは複数の代入値を用いて置換されるべき参照URI内の2つ以上のサブパーツを特定する。   In embodiments, the changed portion information identifies two or more subparts in the reference URI to be replaced using each one or more substitution values included in the substitution information.

複数の実施形態において、変化部分情報は、2つ以上のサブパーツの代入値をそれらのそれぞれの優先レベルに応じて連続的に考慮するために参照URI内の2つ以上のサブパーツの各々をそれぞれの優先レベルと関連付ける。   In embodiments, the changed portion information includes each of two or more subparts in the reference URI to sequentially consider substitution values of two or more subparts according to their respective priority levels. Associate with each priority level.

複数の実施形態において、追加のヘッダフィールドは第2URIを明示的に含む。   In embodiments, the additional header field explicitly includes a second URI.

複数の実施形態において、第1データ特定情報は、サーバデバイス上のメインリソースを特定する第1ユニフォームリソースアイデンティファイア、URI、を含むとともに、メインリソースのサブパーツを第1データとして定義するサブパーツ情報を含み;および
任意ヘッダフィールドは、第2データ特定情報を定義するために第1データ特定情報内のサブパーツ情報に取って代わる代入サブパーツ情報を含む。
In some embodiments, the first data specifying information includes a first uniform resource identifier and URI that specify a main resource on the server device, and defines a sub part of the main resource as first data. And the optional header field includes substitution subpart information that replaces the subpart information in the first data identification information to define the second data identification information.

複数の実施形態において、サブパーツ情報は、メインリソースの中のバイトのレンジ値を含む。   In embodiments, the subpart information includes a range value of bytes in the main resource.

複数の実施形態において、第1および第2のデータは、それぞれ、DASHマニフェストプレゼンテーション記述内の第1および第2のデータ特定情報により特定されるメディアセグメントまたはメディアコンテンツサブパーツである。   In embodiments, the first and second data are media segments or media content subparts identified by first and second data identification information, respectively, in the DASH manifest presentation description.

本発明の他の1つの目的に応じて、サーバデバイスとクライアントデバイスとの間でデータを送信する方法が提供され、この方法は、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストは、サーバデバイス上の第1データを特定することを可能にする第1データ特定情報を含むとともに、第2データを特定することを可能にする1つまたは複数の任意ヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;および
もし任意ヘッダフィールドがHTTPリクエスト内に存在するならば:
任意ヘッダフィールドだけ、および場合によってはさらに第1データ特定情報、を用いて、サーバデバイス上の第2データを特定することを可能にする第2データ特定情報を決定するステップ、を含む。すなわちHTTPリクエストの内容だけを使用して;および
第2データのプッシュをアナウンスするプッシュ約束メッセージをクライアントデバイスに送るステップおよび/または第2データをクライアントデバイスにプッシュするステップ;
を含む。
In accordance with another object of the present invention, a method is provided for transmitting data between a server device and a client device, the method at the server device:
Receiving an HTTP request for obtaining first data from a client device, wherein the HTTP request includes first data specifying information that enables the first data on the server device to be specified and specifies the second data; Receiving, including one or more optional header fields that make it possible to:
Retrieving the first data and sending it to the client device; and if an optional header field is present in the HTTP request:
Determining the second data identification information that allows the identification of the second data on the server device using only the optional header field and optionally further the first data identification information. I.e. using only the content of the HTTP request; and sending a push commitment message to announce the push of the second data to the client device and / or pushing the second data to the client device;
including.

クライアントの視点から、本発明はサーバデバイスとクライアントデバイスとの間でデータを送信する方法を提供し、この方法は、クライアントデバイスにおいて:
サーバデバイスから得られるべきデータを特定するステップ;
その特定されたデータから第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは、サーバデバイス上の第1データを特定することを可能にする第1データ特定情報を含むとともに1つまたは複数の任意ヘッダフィールドを含み、任意ヘッダフィールドだけ、および場合によってはさらに第1データ特定情報(すなわち、HTTPリクエストの内容だけ)、に基づいて、サーバデバイス上の特定されたデータから第2データを特定することを可能にする第2データ特定情報を定義する、生成するステップ;
第1データを得るとともにサーバデバイスに第2データをプッシュさせるためにHTTPリクエストをサーバデバイスに送るステップ;
を含む。
From a client perspective, the present invention provides a method for transmitting data between a server device and a client device, the method at the client device:
Identifying the data to be obtained from the server device;
Generating an HTTP request to obtain first data from the identified data, wherein the HTTP request includes first data identifying information that allows the first data on the server device to be identified and one Or including a plurality of optional header fields, based only on the optional header fields, and possibly further on the first data identification information (ie, only the content of the HTTP request), from the identified data on the server device Defining and generating second data specifying information that enables specifying
Sending an HTTP request to the server device to obtain the first data and cause the server device to push the second data;
including.

相関して、本発明はクライアントデバイスとデータを交換するためのサーバデバイスを提供し、このデバイスは:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストは、サーバデバイス上の第1データを特定することを可能にする第1データ特定情報を含むとともに第2データを特定することを可能にする1つまたは複数の任意ヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;ならびに
もしHTTPリクエスト内に任意ヘッダフィールドが存在するならば:
任意ヘッダフィールドだけ、および場合によってはさらに第1データ特定情報、を用いて、サーバデバイス上の第2データを特定することを可能にする第2データ特定情報を決定するステップ;および
第2データのプッシュをアナウンスするプッシュ約束メッセージをクライアントデバイスに送るステップおよび/または第2データをクライアントデバイスにプッシュするステップ;
を実行するように構成された少なくとも1つのマイクロプロセッサを含む。
In correlation, the present invention provides a server device for exchanging data with a client device, which device:
Receiving an HTTP request for obtaining first data from a client device, wherein the HTTP request includes first data specifying information that enables the first data on the server device to be specified and specifies the second data; Receiving, including one or more optional header fields that allow
Retrieving the first data and sending it to the client device; and if an optional header field is present in the HTTP request:
Determining second data identification information that enables identification of second data on the server device using only an optional header field, and optionally further first data identification information; and Sending a push commitment message to announce the push to the client device and / or pushing the second data to the client device;
Including at least one microprocessor configured to execute.

さらに、本発明はサーバデバイスとデータを交換するためのクライアントデバイスを提供し、このデバイスは:
サーバデバイスから得られるべきデータを特定するステップ;
その特定されたデータから第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは、サーバデバイス上の第1データを特定することを可能にする第1データ特定情報を含むとともに1つまたは複数の任意ヘッダフィールドを含み、任意ヘッダフィールドだけ、および場合によってはさらに第1データ特定情報、に基づいて、サーバデバイス上の特定されたデータから第2データを特定することを可能にする第2データ特定情報を定義する、生成するステップ;
第1データを得るとともにサーバデバイスに第2データをプッシュさせるためにHTTPリクエストをサーバデバイスに送るステップ;
を実行するように構成された少なくとも1つのマイクロプロセッサを含む。
Furthermore, the present invention provides a client device for exchanging data with a server device, which device:
Identifying the data to be obtained from the server device;
Generating an HTTP request to obtain first data from the identified data, wherein the HTTP request includes first data identifying information that allows the first data on the server device to be identified and one Or including a plurality of optional header fields, wherein the second data can be identified from the identified data on the server device based only on the optional header fields and possibly further the first data identification information. 2 defining and generating data specific information;
Sending an HTTP request to the server device to obtain the first data and cause the server device to push the second data;
Including at least one microprocessor configured to execute.

HTTP/2においては、プッシュ約束メッセージは、対応するデータの実際のプッシュに先行する。他のプロトコル、特にウェブソケット(Web Sockets)またはSPDY(SpeeDYを表す)のような双方向プロトコル、は、先行するプッシュアナウンス無しに第2データを直ちにプッシュすることができる。   In HTTP / 2, the push promise message precedes the actual push of the corresponding data. Other protocols, particularly bi-directional protocols such as Web Sockets or SPDY (representing SpeedDY), can immediately push the second data without a prior push announcement.

本発明により、クライアントデバイスは、サーバデバイスによるプッシュメカニズムを効率的に制御し、同時に、下位互換性を可能にする。それは、プッシュされるデータとクライアントのニーズとの不一致を低減する。その理由は、クライアントデバイスがプッシュしてほしい第2データ(リソース、またはリソースの一部)は在来のHTTPリクエストの任意ヘッダフィールドを用いて定義されることにある。さらに、下位互換性は、もしサーバデバイスが在来のものであるならば、すなわち任意ヘッダフィールドをサポートしなければ、それは依然としてHTTPリクエストを処理エラー無しに在来の仕方で処理することができるという事実から生じる。   According to the present invention, the client device efficiently controls the push mechanism by the server device and at the same time allows backward compatibility. It reduces discrepancies between pushed data and client needs. The reason is that the second data (resource or part of the resource) that the client device wants to push is defined using the optional header field of the conventional HTTP request. Furthermore, backward compatibility means that if the server device is native, i.e. it does not support the optional header field, it can still handle HTTP requests in a conventional manner without processing errors. Stem from the facts.

任意ヘッダフィールドを理解するけれどもプッシュフィーチャをサポートしないサーバでは、そのサーバがコンテンツサーバではなくてリレーサーバである場合には、それは任意ヘッダフィールドからの情報を用いてリソースをプリフェッチすることができる。   On a server that understands the optional header field but does not support push features, if the server is a relay server rather than a content server, it can prefetch resources using information from the optional header field.

さらに、この発明は、低スキルのサーバ、例えばDASH知識を持たないサーバ、に依拠することを可能にする。その理由は、プッシュされるべき第2データの特定は、MPDファイルなどが処理されることを要求しないことにある。本発明によれば、そのような特定を実行するために任意ヘッダフィールドだけ、および場合によってはさらに第1データ特定情報、が使用される。   Furthermore, the present invention makes it possible to rely on low skill servers, such as servers that do not have DASH knowledge. The reason is that the identification of the second data to be pushed does not require the MPD file or the like to be processed. According to the present invention, only the optional header field, and possibly further the first data identification information, is used to perform such identification.

従って本発明の複数の実施形態は、クライアント主導型サーバプッシュアプローチを含む、サーバ案内型ストリーミングのための軽量なメカニズムを提供する。複数の実施形態はDASHネットワークと関連して実装され得る。   Accordingly, embodiments of the present invention provide a lightweight mechanism for server-guided streaming, including a client-driven server push approach. Multiple embodiments may be implemented in connection with a DASH network.

本発明の複数の実施形態は、現存するHTTP/2フィーチャと両立し得る。これらのフィーチャは、本発明の複数の実施形態を実装するために有利に使用され得る。   Embodiments of the present invention may be compatible with existing HTTP / 2 features. These features can be advantageously used to implement multiple embodiments of the present invention.

ネットワークの性能は一般的に高められる。   Network performance is generally enhanced.

方法およびデバイスの任意のフィーチャは、従属請求項において定義される。それらのうちの幾つかは、方法に関連して以下で説明される。しかし、それらは、対応するデバイスにも適用され得る。   Any features of the method and device are defined in the dependent claims. Some of them are described below in connection with the method. However, they can also be applied to corresponding devices.

一実施形態では、第1および第2のデータ特定情報は、それぞれ、第1および第2のユニフォームリソースアイデンティファイア、URI、を含む。   In one embodiment, the first and second data identification information includes first and second uniform resource identifiers, URIs, respectively.

1つの特定の実施形態では、1つまたは複数の任意ヘッダフィールドは、HTTPリクエストの内容から第2URIを生成する少なくとも1つの構築ルールを含む。換言すれば、任意ヘッダフィールドは、構築ルールを用いて、1つまたは複数の第2URIを暗に定義する。上記から推測されるように、構築ルールは、1つまたは複数の第2URIを得るために任意ヘッダフィールド、および場合によってはさらに第1URI、を用いるだけである。   In one particular embodiment, the one or more optional header fields include at least one construction rule that generates a second URI from the content of the HTTP request. In other words, the optional header field implicitly defines one or more second URIs using construction rules. As can be inferred from the above, the construction rule only uses an optional header field, and possibly even a first URI, to obtain one or more second URIs.

例えば、1つまたは複数の任意ヘッダフィールドは変化部分情報および代入情報を含み、変化部分情報は参照URI内の少なくとも1つの変化サブパーツを特定し、代入情報は1つまたは複数の第2のURIを定義するために参照URIにおいて特定される変化サブパーツに取って代わる少なくとも1つの代入値を含む。従って、この規定は、構築ルールがどのように使用され得るかを定義する。   For example, the one or more optional header fields include change part information and substitution information, the change part information identifies at least one change subpart in the reference URI, and the substitution information is one or more second URIs. Includes at least one substitution value to replace the change subpart identified in the reference URI. This convention thus defines how the construction rules can be used.

1つの特定のフィーチャによれば、参照URIは、受け取られたHTTPリクエストに含まれる第1URIを含む。換言すれば、構築ルール(代入プロセス)は、第1URIに、すなわち要求された第1データのURIに、適用される。それは、構築ルール(これは一般的なものであり得る)は、HTTPリクエストの内容だけを用いて、要求された第1データからプッシュされるべき第2データを推定することを意味する。   According to one particular feature, the reference URI includes a first URI included in the received HTTP request. In other words, the construction rule (substitution process) is applied to the first URI, i.e. to the URI of the requested first data. That means that the construction rule (which may be general) uses only the content of the HTTP request to infer the second data to be pushed from the requested first data.

他の1つの特定のフィーチャによれば、変化部分情報は、代入情報に含まれるそれぞれの1つまたは複数の代入値を用いて置換されるべき参照URI内の2つ以上のサブパーツを特定する。従って、第1URIから複雑な第2URIが生成され得る。   According to another particular feature, the changed portion information identifies two or more subparts in the reference URI to be replaced using each one or more substitution values included in the substitution information. . Therefore, a complicated second URI can be generated from the first URI.

さらに別の1つの特定のフィーチャによれば、変化部分情報は、2つ以上のサブパーツの代入値をそれらのそれぞれの優先レベルに応じて連続的に考慮するために参照URI内の2つ以上のサブパーツの各々をそれぞれの優先レベルと関連付ける。この規定により、クライアントデバイスは、複数の第2URIを順序付け、このように、第2データがサーバデバイスによりプッシュされる順序を主導する。   According to yet another particular feature, the change part information can be obtained by considering two or more subpart substitution values continuously in the reference URI in order to consider them sequentially according to their respective priority levels. Each of the subparts is associated with a respective priority level. With this definition, the client device orders multiple second URIs and thus leads the order in which the second data is pushed by the server device.

幾つかの実施形態では、任意ヘッダフィールドは、第2URIを明示的に含む。これは、例えば構築ルールを用いる1つまたは複数の第2URIの暗黙の定義とは反対である。   In some embodiments, the optional header field explicitly includes a second URI. This is contrary to the implicit definition of one or more second URIs, for example using construction rules.

他の複数の実施形態において、第1データ特定情報は、サーバデバイス上のメインリソースを特定する第1ユニフォームリソースアイデンティファイア、URI、を含むとともにメインリソースのサブパーツを第1データとして定義するサブパーツ情報を含み;および
任意ヘッダフィールドは、第2データ特定情報を定義するために第1データ特定情報内のサブパーツ情報に取って代わる代入サブパーツ情報を含む。
In other embodiments, the first data specifying information includes a first uniform resource identifier, a URI that specifies a main resource on the server device, and a sub part that defines a sub part of the main resource as the first data. And the optional header field includes substitution subpart information that replaces the subpart information in the first data identification information to define the second data identification information.

サブパーツ情報の一例は、DASHにおいて使用されるレンジパラメータである。この例では、サブパーツ情報はメインリソースの中のバイトのレンジ値を含む。   An example of the sub-part information is a range parameter used in DASH. In this example, the sub-part information includes a range value of bytes in the main resource.

複数の実施形態では、第1および第2のデータは、それぞれ、DASHマニフェストプレゼンテーション記述内の第1および第2のデータ特定情報により特定されるメディアセグメントまたはメディアコンテンツサブパーツである。DASHレンジパラメータの使用はメディアコンテンツ/セグメントサブパーツを特定することを可能にし、DASHにおけるURIは、普通、1つのメディアセグメント全体を特定するということに注意されたい。   In embodiments, the first and second data are media segments or media content subparts identified by first and second data identification information, respectively, in the DASH manifest presentation description. Note that the use of the DASH range parameter allows media content / segment subparts to be identified, and a URI in DASH typically identifies an entire media segment.

公知の従来技術と比べると、クライアントデバイスがサーバのプッシュフィーチャを主導または案内するのを助ける必要もある。これと関連して、本発明はサーバデバイスとクライアントデバイスとの間でデータを送信する方法をも提供し、この方法は、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;ならびに
もしその第1任意ヘッダフィールドがHTTPリクエスト内に存在するならば:
HTTPリクエストから得られるメインリソースを用いてデータのセットを特定するステップ;
第2データのリストを得るために1つまたは複数のフィルタリングパラメータを用いて、特定されたセットの各データをフィルタリングするステップ;および
第2データをクライアントデバイスにプッシュするステップ;
を含む。
Compared to the known prior art, there is also a need to help the client device to lead or guide the push feature of the server. In this context, the present invention also provides a method for transmitting data between a server device and a client device, the method being at the server device:
Receiving an HTTP request for obtaining first data from a client device, wherein the HTTP request includes a first optional header field including one or more filtering parameters;
Retrieving the first data and sending it to the client device; and if its first optional header field is present in the HTTP request:
Identifying a set of data using the main resource obtained from the HTTP request;
Filtering each identified set of data using one or more filtering parameters to obtain a list of second data; and pushing the second data to the client device;
including.

プッシュ約束フィーチャを含むプロトコルに関しては、この方法は、第2データをプッシュする前に、第2データのプッシュをアナウンスするプッシュ約束メッセージをクライアントデバイスに送るステップをさらに含む。   For protocols that include a push promise feature, the method further includes sending a push promise message to the client device that announces the push of the second data before pushing the second data.

クライアントの視点から、本発明はサーバデバイスとクライアントデバイスとの間でデータを送信する方法を提供し、この方法は、クライアントデバイスにおいて:
第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、生成するステップ;
第1データを得るとともにサーバデバイスに、HTTPリクエストから推定されるメインリソースにおいて参照される第2データを、フィルタリングパラメータに従って、プッシュさせるためにHTTPリクエストをサーバデバイスに送るステップ;
を含む。
From a client perspective, the present invention provides a method for transmitting data between a server device and a client device, the method at the client device:
Generating an HTTP request to obtain first data, wherein the HTTP request includes a first optional header field that includes one or more filtering parameters;
Obtaining the first data and sending the HTTP request to the server device to cause the server device to push the second data referenced in the main resource estimated from the HTTP request according to the filtering parameters;
including.

1つまたは複数のフィルタリングパラメータは:
− リソースタイプを定義し;その1つまたは複数のリソースタイプは、アプリケーションタイプ、テキストタイプ、イメージタイプ、ビデオタイプ、オーディオタイプからの1つまたは複数のタイプを含み;または
− DASHメディアプレゼンテーション記述内のエレメントの識別子を用いてデータの1つまたは複数のグループを特定し;または
− メインリソースのサブパーツを特定する時間レンジを用いて第1任意ヘッダフィールドにおいて定義される。
One or more filtering parameters are:
-Define a resource type; the one or more resource types include one or more types from application type, text type, image type, video type, audio type; or-in the DASH media presentation description The element identifier is used to identify one or more groups of data; or the first optional header field is defined using a time range that identifies a sub-part of the main resource.

さらに、プッシュ約束メッセージも受け取られ得る。   In addition, push promise messages may be received.

相関して、本発明はクライアントデバイスとデータを交換するためのサーバデバイスを提供し、このデバイスは:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;ならびに
もし第1任意ヘッダフィールドがHTTPリクエスト内に存在するならば:
HTTPリクエストから得られるメインリソースを用いてデータのセットを特定するステップ;
第2データのリストを得るために1つまたは複数のフィルタリングパラメータを用いて、特定されたセットの各データをフィルタリングするステップ;および
第2データをクライアントデバイスにプッシュするステップ;
を実行するように構成された少なくとも1つのマイクロプロセッサを含む。
In correlation, the present invention provides a server device for exchanging data with a client device, which device:
Receiving an HTTP request for obtaining first data from a client device, wherein the HTTP request includes a first optional header field including one or more filtering parameters;
Retrieving the first data and sending it to the client device; and if the first optional header field is present in the HTTP request:
Identifying a set of data using the main resource obtained from the HTTP request;
Filtering each identified set of data using one or more filtering parameters to obtain a list of second data; and pushing the second data to the client device;
Including at least one microprocessor configured to execute.

1つまたは複数のフィルタリングパラメータは:
− リソースタイプを定義し;その1つまたは複数のリソースタイプは、アプリケーションタイプ、テキストタイプ、イメージタイプ、ビデオタイプ、オーディオタイプからの1つまたは複数のタイプを含み;または
− DASHメディアプレゼンテーション記述内のエレメントの識別子を用いてデータの1つまたは複数のグループを特定し;または
− メインリソースのサブパーツを特定する時間レンジを用いて第1任意ヘッダフィールドにおいて定義される。
One or more filtering parameters are:
-Define a resource type; the one or more resource types include one or more types from application type, text type, image type, video type, audio type; or-in the DASH media presentation description The element identifier is used to identify one or more groups of data; or the first optional header field is defined using a time range that identifies a sub-part of the main resource.

さらに、本発明はサーバデバイスとデータを交換するためのクライアントデバイスを提供し、このデバイスは:
第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、生成するステップ;
第1データを得るとともにサーバデバイスに、HTTPリクエストから推定されるメインリソースにおいて参照される第2データを、フィルタリングパラメータに従って、プッシュさせるためにHTTPリクエストをサーバデバイスに送るステップ;
を実行するように構成された少なくとも1つのマクロプロセッサを含む。
Furthermore, the present invention provides a client device for exchanging data with a server device, which device:
Generating an HTTP request to obtain first data, wherein the HTTP request includes a first optional header field that includes one or more filtering parameters;
Obtaining the first data and sending the HTTP request to the server device to cause the server device to push the second data referenced in the main resource estimated from the HTTP request according to the filtering parameters;
Includes at least one macro processor configured to execute

このアプローチの1つの例証は、第1データとしてのメインHTMLウェブページの要求である。このとき任意ヘッダフィールドは、そのHTMLページにおいて参照されるどの1つまたは複数のタイプのサブリソースがプッシュされるべきかを定義することができる。従って、任意ヘッダフィールドはフィルタリングパラメータとして振る舞う。例えば、それは、jpgイメージのサブセットだけをプッシュしてもらうためにサブリソースをフィルタリングするフィルタリングパラメータ“images/*.jpg”を提供することができる。   One example of this approach is a request for a main HTML web page as the first data. The optional header field can then define which type or types of sub-resources referenced in the HTML page are to be pushed. Therefore, the optional header field behaves as a filtering parameter. For example, it can provide a filtering parameter “images / *. Jpg” that filters sub-resources to have only a subset of jpg images pushed.

クライアントデバイスによるサーバプッシュフィーチャの改善された制御は、任意ヘッダフィールドを通して、リクエストにより特定されるデータに対して適用されるフィルタリングパラメータの使用を通して得られる。   Improved control of the server push feature by the client device is obtained through the use of filtering parameters applied to the data specified by the request through an optional header field.

重ねて、そのような任意ヘッダフィールドの使用は、サーバのエンドにおける下位互換性を可能にする。   Again, the use of such an optional header field allows backward compatibility at the end of the server.

このように本発明の実施形態は、クライアント主導型サーバプッシュアプローチを含む、サーバ案内型ストリーミングのための軽量なメカニズムを提供する。複数の実施形態は、DASHネットワークと関連して実装され得る。   Thus, embodiments of the present invention provide a lightweight mechanism for server-guided streaming, including a client-driven server push approach. Multiple embodiments may be implemented in connection with a DASH network.

本発明の複数の実施形態は、現存するHTTP/2フィーチャと両立し得る。これらのフィーチャは、本発明の実施形態を実装するために有利に使用され得る。   Embodiments of the present invention may be compatible with existing HTTP / 2 features. These features can be advantageously used to implement embodiments of the present invention.

ネットワークの性能は一般的に高められる。   Network performance is generally enhanced.

方法およびデバイスの任意のフィーチャは、従属請求項において定義される。それらのうちの幾つかは、方法と関連して以下で説明される。しかし、それらは、対応するデバイスにも適用され得る。   Any features of the method and device are defined in the dependent claims. Some of them are described below in connection with the method. However, they can also be applied to corresponding devices.

複数の実施形態において、メインリソースは第1データである。それは、単独で利用されるHTTPリクエストは、サーバデバイスが、プッシュされるべき全ての第2データを効率的に特定することを可能にするということを意味する。サーバデバイスは、上で論じられた従来技術のためのDASH知識などの追加の知識を必要としない。従って低スキルのサーバデバイスが使用され得る。   In some embodiments, the main resource is the first data. That means that HTTP requests used alone allow the server device to efficiently identify all the second data to be pushed. The server device does not require additional knowledge, such as DASH knowledge for the prior art discussed above. Thus, a low skill server device can be used.

他の実施形態において、HTTPリクエストは、サーバデバイス上のメインリソースを特定するユニフォームリソースアイデンティファイア、URI、を定義する第2任意ヘッダフィールドを含む。そのような実施形態は、クライアントデバイスが初めにメインリソースを得、その後にそれを、メインリソースから適切な第2データを実際に選択するためにフィルタリングパラメータを特定する(および任意ヘッダフィールドを用いて定義する)ために分析する必要があるとき、実装され得る。実際、そのような場合、クライアントデバイスは、メインリソースを要求するとき、メインリソースの内容へのアクセスをまだ持っていないので、フィルタリングパラメータを定義することはできない。   In other embodiments, the HTTP request includes a second optional header field that defines a uniform resource identifier, URI, that identifies the main resource on the server device. Such an embodiment specifies that the client device first obtains the main resource and then specifies the filtering parameters to actually select the appropriate second data from the main resource (and using an optional header field) Can be implemented when it needs to be analyzed. In fact, in such a case, when the client device requests the main resource, it cannot define filtering parameters because it does not yet have access to the contents of the main resource.

この規定により、クライアントは、リソースタイプごとのリソースのリストを定義し得るサーバに格納されている静的設定ファイルを指定することができる。そのような静的設定ファイルを使用することは、サーバがリソースタイプフィルタリングパラメータに基づいてリソースを特定するために低スキルを必要とする。   This specification allows a client to specify a static configuration file stored on a server that can define a list of resources for each resource type. Using such a static configuration file requires low skill for the server to identify resources based on resource type filtering parameters.

さらに別の実施形態では、2つ(またはより多くの)フィルタリングパラメータがデータの2つ(またはより多くの)それぞれのグループおよび2つのそれぞれの優先レベルと関連付けられ;フィルタリングするステップは、第2データの順序リストを得るために、第2データを、それらがそれぞれデータするグループの優先レベルに応じて順序正しく配列し;プッシュするステップは、その順序リストに従って第2データをプッシュする。クライアントエンドにおいて、それは、2つのフィルタリングパラメータがデータの2つのグループおよび2つのそれぞれの優先レベルと関連付けられることを意味し;第2データは、それらがそれぞれ属するグループの優先レベルに応じた順序で受け取られる。このことは、クライアントデバイスが、プッシュされたデータを自身が受け取りたい順序を効率的に主導することを可能にする。   In yet another embodiment, two (or more) filtering parameters are associated with two (or more) respective groups of data and two respective priority levels; the step of filtering comprises second data In order to obtain the ordered list, the second data is arranged in order according to the priority level of the group to which each of the data is data; the step of pushing pushes the second data according to the ordered list. At the client end, it means that two filtering parameters are associated with two groups of data and two respective priority levels; the second data is received in an order according to the priority level of the group to which they belong respectively. It is. This allows the client device to efficiently lead the order in which it wants to receive the pushed data.

さらに別の実施形態では、各フィルタリングパラメータはリソースタイプを定義し;その1つまたは複数のリソースタイプは、アプリケーションタイプ(例えばjavascript(登録商標))、テキストタイプ(例えばcssまたはhtml)、イメージタイプ(例えばpngまたはjpg)ビデオタイプ(例えばmp4またはwebm)、オーディオタイプ(例えばmp3またはwav)からの1つまた複数のタイプを含む。   In yet another embodiment, each filtering parameter defines a resource type; the one or more resource types can be an application type (eg, javascript®), a text type (eg, css or html), an image type ( For example, one or more types from png or jpg) video type (eg mp4 or webm), audio type (eg mp3 or wav).

この規定は、特に、html、またはウェブページのロードのためのものなどの類似のエクスチェンジに適用される。もちろん、これらのリソースタイプのいずれの細区分も、特定のコンテンツ(例えば、イメージ、またはJavascriptファンクションのような組み込み型ファンクション)のロードを効率的に行わせるのに役立つであろう。   This rule applies in particular to similar exchanges such as for html or for loading web pages. Of course, any subdivision of these resource types may help to efficiently load specific content (eg, an image or a built-in function such as a JavaScript function).

さらに別の実施形態では、第1任意ヘッダフィールド内の1つまた複数のフィルタリングパラメータは、DASHメディアプレゼンテーション記述内のエレメントの識別子を用いてデータの1つまたは複数のグループを特定する。そのようなエレメントは、DASH MPDのAdaptationSetエレメント、PresentationエレメントまたはSegmentエレメントを含み得る。1つの実施形態では、HTTPリクエストにより要求される第1データはDASH MPDである。もちろん、1つの変化形では、DASH MPDは上記の第2任意ヘッダフィールドにおいて明示され得る。   In yet another embodiment, the one or more filtering parameters in the first optional header field identify one or more groups of data using an identifier of an element in the DASH media presentation description. Such an element may include a DASH MPD AdaptationSet element, a Presentation element, or a Segment element. In one embodiment, the first data requested by the HTTP request is DASH MPD. Of course, in one variation, the DASH MPD may be specified in the second optional header field above.

この規定は、クライアントデバイスが、MPDにより定義されるメディアコンテンツの幾つかの部分のプッシュを制御することを可能にする。   This definition allows the client device to control the push of some parts of the media content defined by MPD.

さらに別の実施形態では、1つまたは複数のフィルタリングパラメータは、メインリソースのサブパーツを特定する時間レンジ、例えばDASHリクエストにおいて使用される時間レンジ、を用いて第1任意ヘッダフィールドにおいて定義される。すぐ前の規定と同様に、この一つも、クライアントデバイスが、DASHを用いてストリーミングされるメディアコンテンツのサブパーツがサーバデバイスによってどのようにプッシュされるかを制御することを可能にする。   In yet another embodiment, the one or more filtering parameters are defined in the first optional header field with a time range that identifies subparts of the main resource, eg, a time range used in a DASH request. Similar to the previous convention, this one also allows the client device to control how subparts of media content streamed using DASH are pushed by the server device.

本発明の他の1つの面は、デバイス内のマイクロプロセッサまたはコンピュータシステムにより実行されたときそのデバイスに上で定義されたいずれかの方法を実行させるプログラムを格納する非一時的コンピュータ可読媒体に関連する。   Another aspect of the invention relates to a non-transitory computer readable medium that stores a program that, when executed by a microprocessor or computer system in a device, causes the device to perform any of the methods defined above. To do.

非一時的コンピュータ可読媒体は、方法およびデバイスに関連して上および下で記述されるものに類似するフィーチャおよび利点、特に、クライアントによるサーバプッシュフィーチャの制御を改善することおよび低スキルのサーバデバイスに依拠することについてのそれ、を有し得る。   Non-transitory computer readable media provide features and benefits similar to those described above and below in connection with methods and devices, particularly for improved control of server push features by clients and for low skill server devices. You can have that about relying.

本発明のさらに別の面は、上で定義されたいずれかの方法の各ステップを実行するようにされた手段を含むデバイスに関連する。   Yet another aspect of the invention relates to a device comprising means adapted to perform the steps of any of the methods defined above.

本発明のさらに別の面は、実質的に添付図面の図3aまたは3bまたは5aまたは5bまたは6aまたは7bまたは8と関連して上で記載されるとともにこれらに図示されている、サーバデバイスとクライアントデバイスとの間でリソースを送信する方法に関連する。   Yet another aspect of the present invention is the server device and client described and illustrated substantially in connection with FIGS. 3a or 3b or 5a or 5b or 6a or 7b or 8 of the accompanying drawings. Related to how resources are sent to and from the device.

本発明による方法の少なくとも幾つかの部分はコンピュータで実行され得る。従って、本発明は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)またはソフトウェア面と、全て本明細書において“回路”、“モジュール”または“システム”と一般的に称され得るハードウェア面とを組み合わせた実施形態の形をとることができる。さらに、本発明は、コンピュータ可用プログラムコードが媒体内に具体化されている任意の有形表現媒体において具体化されるコンピュータプログラム製品の形をとることができる。   At least some parts of the method according to the invention can be executed on a computer. Accordingly, the present invention encompasses completely hardware embodiments, fully software embodiments (including firmware, resident software, microcode, etc.) or software aspects, all herein referred to as “circuits”, “modules” or It can take the form of an embodiment that combines a hardware aspect, which can be generally referred to as a “system”. Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of representation in which computer usable program code is embodied in the medium.

本発明はソフトウェアを用いて実装され得るので、本発明は任意の適切な搬送媒体でプログラマブルな装置に供給されるコンピュータ可読コードとして具体化され得る。有形搬送媒体は、フロッピーディスク、CD−ROM、ハードディスクドライブ、磁気テープデバイスまたはソリッドステートメモリデバイスなどの記憶媒体を含み得る。一時的搬送媒体は電気信号、電子信号、光信号、音響信号、磁気信号または電磁信号、例えばマイクロウェーブもしくはRF信号、などの信号を含み得る。   Since the invention can be implemented using software, the invention can be embodied as computer readable code supplied to a programmable device on any suitable carrier medium. The tangible carrier medium may include a storage medium such as a floppy disk, CD-ROM, hard disk drive, magnetic tape device or solid state memory device. The temporary carrier medium may include signals such as electrical signals, electronic signals, optical signals, acoustic signals, magnetic signals or electromagnetic signals, such as microwave or RF signals.

本発明の他の特徴および利点は、添付図面と関連して、非限定的な例示的実施形態についての以下の記載から明らかになるであろう。   Other features and advantages of the present invention will become apparent from the following description of non-limiting exemplary embodiments, taken in conjunction with the accompanying drawings.

グラフを用いて、ウェブページなどの、メインリソースに連結されたリソースのセットを示す。A graph is used to show a set of resources linked to a main resource, such as a web page. プッシュフィーチャを用いない、図1aのメインリソースのロードを示す。Fig. 2 shows the loading of the main resource of Fig. Ia without using push features. プッシュフィーチャを用いる、図1aのメインリソースのロードを示す。Fig. 2 shows the loading of the main resource of Fig. Ia using push features. プッシュフィーチャが実装されたときのクライアントデバイスの在来のステップを、フローチャートを用いて、示す。The conventional steps of the client device when the push feature is implemented are shown using a flowchart. プッシュフィーチャが実装されたときのサーバデバイスの在来のステップを、フローチャートを用いて、示す。The conventional steps of the server device when the push feature is implemented are shown using a flowchart. ウェブページをロードするためのHTTPエクスチェンジを示す。Figure 2 shows an HTTP exchange for loading a web page. 従来技術によるDASH指向クライアント−サーバシステムを示す。1 shows a DASH-oriented client-server system according to the prior art. 本発明の実施形態が実装され得るクライアント−サーバシステムを示す。1 illustrates a client-server system in which embodiments of the present invention may be implemented. 本発明の実施形態が実装され得るDASH指向クライアント−サーバシステムを示す。1 illustrates a DASH-oriented client-server system in which embodiments of the present invention may be implemented. メディアプレゼンテーションの構築を示す。Shows the construction of a media presentation. DASHメディアプレゼンテーション記述、MPDファイルの構造を示す。The structure of a DASH media presentation description and MPD file is shown. 図3aのシステムにおけるクライアントの振る舞いを説明する主要ステップを示す。Fig. 3 shows the main steps describing the client behavior in the system of Fig. 3a. 図3bのシステムにおけるストリーミング指向クライアントの振る舞いを説明する主要ステップを示す。Fig. 3 shows the main steps describing the behavior of a streaming-oriented client in the system of Fig. 3b. 図3aまたは3bのシステムにおけるサーバの振る舞いを説明する主要ステップを示す。Fig. 4 shows the main steps describing the behavior of the server in the system of Fig. 3a or 3b. 本発明によるプッシュヘッダの例示的構造を説明する。An exemplary structure of a push header according to the present invention will be described. SegmentTemplateを有する例示的MPDファイルを示す。Fig. 4 shows an exemplary MPD file with SegmentTemplate. 図7aのMPDファイルに基づく、本発明を実装するクライアント−サーバエクスチェンジを示す。Fig. 7b shows a client-server exchange implementing the invention based on the MPD file of Fig. 7a. DASHストリーミングと関連する、本発明によるプッシュヘッダの例を示す。Fig. 4 shows an example of a push header according to the present invention, associated with DASH streaming. 実施形態によるデバイスの概略図である。FIG. 2 is a schematic diagram of a device according to an embodiment. 幾つかのレベルでのテンプレートURIの宣言を説明するMPDサンプルを示す。An MPD sample illustrating the declaration of a template URI at several levels is shown. サーバ内でのプッシュポリシー通知の確認応答の例を示す。An example of a push policy notification confirmation response in the server is shown. サーバ内でのプッシュポリシー通知の確認応答の例を示す。An example of a push policy notification confirmation response in the server is shown. サーバ内でのプッシュポリシー通知の確認応答の例を示す。An example of a push policy notification confirmation response in the server is shown. サーバ内でのプッシュポリシー通知の確認応答の例を示す。An example of a push policy notification confirmation response in the server is shown. サーバ内でのプッシュポリシー通知の確認応答の例を示す。An example of a push policy notification confirmation response in the server is shown. 一意識別子に基づくクライアントとサーバとの間でのプッシュポリシーに関連する情報の交換の例を示す。Fig. 5 illustrates an example of an exchange of information related to push policies between a client and a server based on a unique identifier. 一意識別子に基づくクライアントとサーバとの間でのプッシュポリシーに関連する情報の交換の例を示す。Fig. 5 illustrates an example of an exchange of information related to push policies between a client and a server based on a unique identifier.

上で簡潔に紹介されたように、本発明はHTTP通信ネットワークを通してのデータ送信に関する。1つの用例はDASHなどの適応データストリーミングである。   As briefly introduced above, the present invention relates to data transmission over an HTTP communication network. One example is adaptive data streaming such as DASH.

HTTPは、ウェブリソース、通例ウェブページ、を送るために用いられるプロトコルである。HTTPはクライアントおよびサーバに対して次のことを暗示する:
− クライアントはサーバにリクエストを送り、そのリクエストは様々な種類の“ヘッダ”が任意に後に続く“request_line”から構成される。“request−line”は、普通、場合によってはレンジヘッダなどを用いてサーバ上の要求されたリソースまたはデータを特定する“Request−URI”パラメータと共にメソッド(例えば“GET”)を含む;
− サーバは、そのウェブリソースのリプリゼンテーションを含むレスポンスを用いてクライアントのリクエストに応える。
HTTP is a protocol used to send web resources, typically web pages. HTTP implies the following for clients and servers:
The client sends a request to the server, which consists of a “request_line” optionally followed by various types of “headers”. “Request-line” typically includes a method (eg, “GET”) with a “Request-URI” parameter that identifies the requested resource or data on the server, possibly using a range header or the like;
-The server responds to the client's request with a response that includes a representation of the web resource.

リクエストおよびレスポンスは、様々なパーツ、特にHTTPヘッダ、を含むメッセージである。HTTPヘッダは、値とともに名を含む。例えば、“Host: en.wikipedia.org”を考察すると、“Host”はヘッダ名であり、それの値は“en.wikipedia.org”である。それは、クエリされたリソースをホストに示すために使用される(例えば、HTTPを説明するWikipedia(ウィキペディア)ページはHTTP://en.wikipedia.org/wiki/HTTPから入手できる)。HTTPヘッダは、クライアントのリクエストおよびサーバのレスポンスにおいて出現する。   Requests and responses are messages that contain various parts, especially HTTP headers. The HTTP header includes a name along with a value. For example, consider “Host: en.wikipedia.org” where “Host” is the header name and its value is “en.wikipedia.org”. It is used to show the queried resource to the host (eg, the Wikipedia page describing HTTP is available from HTTP://en.wikipedia.org/wiki/HTTP). HTTP headers appear in client requests and server responses.

HTTPの新しいバージョンであるHTTP/2は、ストリームを通してリクエスト/レスポンスを交換することを可能にする。ストリームは、どのHTTPリクエストおよびレスポンスの交換のためにもHTTP/2コネクションの内部で生成される。フレームは、リクエストおよびレスポンスの内容、疑似ヘッダおよびヘッダを伝えるためにストリーム内で交換される。   A new version of HTTP, HTTP / 2, allows exchanging requests / responses through a stream. A stream is generated inside an HTTP / 2 connection for the exchange of any HTTP request and response. Frames are exchanged within the stream to convey request and response content, pseudo headers and headers.

HTTP/2は:
− HEADERS:HTTPヘッダの送信のために提供される
○HTTP/2はヘッダ(任意である。すなわち処理側デバイスに理解されなければ無視される)をより厳しいルールに従う疑似ヘッダから区別する。後者は、HTTPメソッドおよびrequest−URIを示すために以前のHTTPバージョンで定義されているrequest−lineのマッピングに対応する。本文書においては、“HTTPヘッダ”または“ヘッダ”は、任意のヘッダを指定するべく意図されているのであり、明示的にそのようなものとして指定される疑似ヘッダを指定するべく意図されているのではない。
○さらに、本文書においてもなお、“Request−URI”は、RFC2616で定義されているRequest−URI(すなわち、“request−line”に用いられているサーバ上の要求されているリソースを特定するパラメータ)またはそれの同等物/HTTP/2疑似ヘッダへの変換を指定するべく意図されている。
− DATA:これは、HTTPメッセージ内容の送信のために提供される
− PUSH_PROMISE:これはプッシュされる内容をアナウンスするために提供される
− PRIORITY:これはストリームの優先順位をセットするために提供される
− WINDOW_UPDATE:これは制御フローウィンドウの値をアップデートするために提供される
− SETTINGS:これは設定パラメータを伝えるために提供される
− CONTINUATION:これはヘッダブロックフラグメントのシーケンスを継続させるために提供される
− RST_STREAM:これはストリームを終端させまたはキャンセルするために提供される
などの様々な意味を有するフレームの限られたセットを定義する。
HTTP / 2 is:
-HEADERS: provided for transmission of HTTP headers. HTTP / 2 distinguishes headers (optional, ie ignored if not understood by the processing device) from pseudo headers that follow stricter rules. The latter corresponds to the request-line mapping defined in previous HTTP versions to indicate HTTP methods and request-URIs. In this document, “HTTP header” or “header” is intended to specify an arbitrary header and is intended to specify a pseudo-header that is explicitly specified as such. Not.
○ Furthermore, in this document, “Request-URI” is a parameter that specifies the requested resource on the server used in the Request-URI defined in RFC2616 (that is, “request-line”). ) Or its equivalent / HTTP / 2 pseudo-header conversion.
-DATA: This is provided for the transmission of HTTP message content-PUSH_PROMISE: This is provided to announce the content to be pushed-PRIORITY: This is provided to set the priority of the stream -WINDOW_UPDATE: This is provided to update the value of the control flow window.-SETTINGS: This is provided to convey configuration parameters.-CONTINUATION: This is provided to continue the sequence of header block fragments. -RST_STREAM: This defines a limited set of frames with various meanings, such as provided to terminate or cancel a stream.

HTTP/2では、リクエストはそのとき第1HEADERフレームおよび1つまたは複数のDATAフレームに変換され、HTTP/1.xからのrequest−lineは、HTTP/2仕様に記載されているように疑似ヘッダフィールドに変換される。   In HTTP / 2, the request is then converted into a first HEADER frame and one or more DATA frames, and HTTP / 1. The request-line from x is converted into a pseudo header field as described in the HTTP / 2 specification.

本明細書は、クライアントからサーバへ送られるメッセージを示すために“リクエスト”または“HTTPリクエスト”を使用し、サーバからクライアントへのメッセージを示すために“レスポンス”または“HTTPレスポンス”を使用する。リクエストおよびレスポンスの他に、私たちは、サーバによりクライアントに対して開始されるメッセージに対応する通知またはサーバ通知についても語る。この用語は、HTTP/1.xおよびHTTP/2に準拠している。   This specification uses “request” or “HTTP request” to indicate a message sent from a client to a server, and uses “response” or “HTTP response” to indicate a message from the server to the client. In addition to requests and responses, we also talk about notifications or server notifications corresponding to messages initiated by the server to the client. The term is HTTP / 1. Conforms to x and HTTP / 2.

サーバによるプッシュは、サーバが請求されていないウェブリソースリプリゼンテーションをクライアントに送ることを可能にするためにHTTP/2に導入されている。ウェブページなどのウェブリソースは一般的に他のリソースへのリンクを含み、それら自身は他のリソースへのリンクを含み得る。ウェブページを完全に表示するためには、リンクされまたはサブリンクされているリソースの全てがクライアントにより取り出されなければならないことがある。このますます増加する発見はウェブページの低速な表示を、特にモバイルネットワークなどの大レイテンシのネットワークにおいて、もたらすであろう。   Server push has been introduced in HTTP / 2 to allow the server to send unsolicited web resource representations to clients. Web resources such as web pages typically include links to other resources, and themselves may include links to other resources. In order to fully display a web page, all of the linked or sublinked resources may have to be retrieved by the client. This increasing discovery will lead to slow display of web pages, especially in high latency networks such as mobile networks.

所与のウェブページに対するリクエストを受け取ると、サーバは、要求されたリソースの完全な処理のために他のどのリソースが必要かを知ることができる。要求されたリソースとリンクされているリソースとを同時に送ることにより、サーバは、そのウェブページのローディング時間を短縮することを可能にする。従って、プッシュフィーチャを用いて、サーバは、所与のリソースを要求された時に追加のリソースリプリゼンテーションを送ることができる。   Upon receiving a request for a given web page, the server can know which other resources are required for complete processing of the requested resource. By sending the requested resource and the linked resource at the same time, the server makes it possible to reduce the loading time of the web page. Thus, using push features, the server can send additional resource representations when requested for a given resource.

リンクされているリソースの例として、図1aは、サーバにより所有されているリソースのセットとそれらの関係とのグラフを示す。リソースのセットは絡み合っている:R、R、R、およびRは、クライアントにより適切に処理されるべく一緒にダウンロードされなければならないリソースである。さらに、サブリソースAからHが定義される。これらのサブリソースは1つ、2つまたは3つのリソースに関連付けられている。例えば、AはRにリンクされ、CはR、RおよびRにリンクされている。 As an example of linked resources, FIG. 1a shows a graph of a set of resources owned by a server and their relationships. The set of resources is intertwined: R 1 , R 2 , R 3 , and R 4 are resources that must be downloaded together to be properly processed by the client. Further, sub-resources A to H are defined. These sub-resources are associated with one, two or three resources. For example, A is linked to R 1 and C is linked to R 1 , R 2 and R 4 .

図1eのフローチャートを参照して、プッシュフィーチャを実装するサーバの例示的動作モードが記載される。   With reference to the flowchart of FIG. 1e, an exemplary mode of operation of a server implementing a push feature is described.

ステップ100の間に、サーバは最初のリクエストを受け取る。次に、サーバは、ステップ101の間にレスポンスの一部としてプッシュするリソースを特定し、ステップ102の間にプッシュ約束メッセージをクライアントに送る。その後、それはステップ103の間にコンテンツレスポンスを送り始める。プッシュ約束メッセージは、サーバが、例えば図1aに示されている依存性に基づいてプッシュしようとしている他のリソースを特定する。これらのメッセージは、どのプッシュされるリソースが送られるかを前もってクライアントに知らせるために送られる。特に、これは、同時にプッシュされつつあるかまたはまさにプッシュされようとしているリソースに対するリクエストをクライアントが送るリスクを減らす。このリスクをさらに減らすために、サーバは、プッシュ約束メッセージを、そのプッシュ約束に記載されているリソースに関連するレスポンスの部分を送る前に、送るべきである。これは、クライアントが、約束されたリソースのプッシュを、もしクライアントがそれらのリソースを欲しくなければ、キャンセルすることも可能にする。次に、ステップ104の間にレスポンスと全ての約束されたリソースとを送る。プロセスはステップ105の間に終了する。   During step 100, the server receives an initial request. Next, the server identifies the resource to push as part of the response during step 101 and sends a push promise message to the client during step 102. It then starts sending a content response during step 103. The push promise message identifies other resources that the server is trying to push based on, for example, the dependencies shown in FIG. 1a. These messages are sent to inform the client in advance which resources to be pushed are sent. In particular, this reduces the risk of a client sending a request for a resource that is being pushed at the same time or is about to be pushed. To further reduce this risk, the server should send a push commitment message before sending the portion of the response associated with the resource described in the push commitment. This also allows the client to cancel the promised resource push if the client does not want those resources. Next, during step 104, the response and all promised resources are sent. The process ends during step 105.

図1bおよび1cは、それぞれ、プッシュフィーチャを使用しないウェブページのロードおよびプッシュフィーチャを使用するウェブページのロードを示す。   FIGS. 1b and 1c show loading a web page without a push feature and loading a web page with a push feature, respectively.

図1bは、サーバのプッシュフィーチャを使用しないHTTPエクスチェンジを示す:クライアントはRを要求し、次にそれはR、A、B、CおよびDを発見してそれらを要求する。それらを受信した後、クライアントはR、R、FおよびGを要求する。最後にクライアントはHおよびIサブリソースを要求する。従って、必要とされるどのリソース:リソースRからRおよびサブリソースAからI、に対してもリクエストが送られなければならない。さらに、このプロセスは、リソースのセット全体を取り出すために4つのラウンドトリップを必要とする。 Figure 1b shows the HTTP exchange that does not use the push feature of the server: the client requests the R 1, then it requests them to discover R 2, A, B, C and D. After receiving them, the client requests R 3 , R 4 , F and G. Finally, the client requests H and I sub-resources. Thus, a request must be sent to any required resource: resources R 1 to R 4 and sub-resources A to I. In addition, this process requires four round trips to retrieve the entire set of resources.

図1cは、直接連結されているサブリソースのサーバによるプッシュのフィーチャを使用するHTTPエクスチェンジを示す。Rの要求後、サーバはRを送るとともにA、B、CおよびDをプッシュする。クライアントはRを特定し、それを要求する。サーバはRを送り、FおよびGをプッシュする。最後にクライアントはR、Rを特定し、これらのリソースを要求する。サーバはR、Rを送り、HおよびIをプッシュする。このように、リクエストの数はエレメントRからRに限定される。エレメントAからIは図1aに示されている依存性に基づいてサーバによりクライアントに“プッシュ”され、これにより、関連するリクエストを不要にする。このプロセスは、リソースのセット全体を取り出すために3つのラウンドトリップを必要とする。 FIG. 1c shows an HTTP exchange that uses the push feature by a server of directly linked sub-resources. After R 1 request, the server pushes A, B, C and D and sends an R 1. The client identifies the R 2, requests it. The server sends R 2 and pushes F and G. Finally, the client identifies R 3 and R 4 and requests these resources. The server sends R 3 , R 4 and pushes H and I. Thus, the number of requests is limited to elements R 1 to R 4 . Elements A through I are “pushed” by the server to the client based on the dependencies shown in FIG. 1a, thereby eliminating the associated request. This process requires three round trips to retrieve the entire set of resources.

このように、図1bおよび1cに示されているように、サーバがプッシュフィーチャを使用すると、リソースをそのサブリソースと共にロードするのに必要なHTTPラウンドトリップ(リクエスト+レスポンス)の数が減らされる。これは、モバイルネットワークなどの大レイテンシのネットワークのために特に興味あることである。   Thus, as shown in FIGS. 1b and 1c, when a server uses a push feature, the number of HTTP round trips (request + response) required to load a resource with its sub-resources is reduced. This is of particular interest for high latency networks such as mobile networks.

リソースのセット、典型的にはウェブページとそのサブリソース、のローディング時間を短縮するためにHTTP/2は複数のリクエストおよびレスポンス優先順位を並行して交換することを可能にする。図2に示されているように、ウェブページは、JavaScript、イメージなどの数個のリソースのダウンロードを必要とすることがある。最初のHTTPエクスチェンジ200の間に、クライアントはHTMLファイルを取り出す。このHTMLファイルは、2つのJavaScriptファイル(JS1、JS2)、2つのイメージ(IMG1、IMG2)、1つのCSSファイルおよび1つのHTMLファイルへのリンクを含む。エクスチェンジ201の間に、クライアントは各ファイルに対するリクエストを送る。図2のエクスチェンジ201において与えられる順序はウェブページの順序に基づき、クライアントはリンクが発見されると直ちにリクエストを送る。その後サーバは、JS1、CSS、IMG1、HTML、IMG2およびJS2に対するリクエストを受信し、これらのリクエストをその順序に従って処理する。その後、クライアントはこれらのリソースをその順序で取り出す。   In order to reduce the loading time of a set of resources, typically a web page and its sub-resources, HTTP / 2 allows multiple request and response priorities to be exchanged in parallel. As shown in FIG. 2, a web page may require the download of several resources, such as JavaScript and images. During the first HTTP exchange 200, the client retrieves the HTML file. This HTML file includes links to two JavaScript files (JS1, JS2), two images (IMG1, IMG2), one CSS file, and one HTML file. During exchange 201, the client sends a request for each file. The order given in the exchange 201 of FIG. 2 is based on the order of the web pages, and the client sends a request as soon as a link is found. The server then receives requests for JS1, CSS, IMG1, HTML, IMG2 and JS2 and processes these requests in that order. The client then retrieves these resources in that order.

クライアントは、ウェブページ記述(HTMLファイル)において挙げられているサブリソースをダウンロードするために自身の適切な順序を持つことを望むであろう。そのような場合、サーバにとっては、特にその順序を用いてプッシュフィーチャを実行するために、この情報を持つことは貴重なことであろう。   The client will want to have its proper order to download the sub-resources listed in the web page description (HTML file). In such cases, it may be valuable for the server to have this information, especially to perform push features using that order.

図1dのフローチャートは、プッシュフィーチャが実行されるときのクライアント側でのプロセスを示す。   The flowchart of FIG. 1d shows the client-side process when a push feature is performed.

クライアントは、サーバから取り出すリソースを特定すると、初めにステップ106の間に、対応するデータが自身のキャッシュメモリ内に既に存在するか否かをチェックする。そのリソースが既にキャッシュメモリ内に存在するならば(Yes)、それはステップ107の間にそれから取り出される。キャッシュされているデータは、以前のリクエストから取り出されたデータまたは以前にサーバによりプッシュされたデータであろう。それがキャッシュメモリ内に存在しない場合(No)、クライアントはステップ108の間にリクエストを送ってサーバのレスポンスを待つ。   When the client identifies a resource to retrieve from the server, it first checks during step 106 whether the corresponding data already exists in its cache memory. If the resource already exists in the cache memory (Yes), it is retrieved from it during step 107. The cached data may be data retrieved from previous requests or previously pushed by the server. If it does not exist in the cache memory (No), the client sends a request during step 108 and waits for a server response.

サーバからフレームを受け取ると、クライアントはステップ109の間にそのフレームがプッシュ約束に対応するフレームであるか否かをチェックする。もしそのデータフレームがプッシュ約束に対応するならば(Yes)、ステップ110の間に、クライアントはそのプッシュ約束を処理する。そうするために、クライアントは、プッシュされるべきリソースを特定する。クライアントがそのリソースを受け取ることを希望しなければ、クライアントはエラーメッセージをサーバに送ることができるのでサーバはそのリソースをプッシュしない。そうでなければ、クライアントは、対応するプッシュされたコンテンツを受け取るまでそのプッシュ約束を保存しておく。そのプッシュ約束は、約束されたリソースをサーバがプッシュしている間にクライアントがその約束されたリソースを要求しないように、使用される。   Upon receiving a frame from the server, the client checks during step 109 whether the frame is a frame corresponding to a push commitment. If the data frame corresponds to a push commitment (Yes), during step 110, the client processes the push commitment. To do so, the client identifies the resource to be pushed. If the client does not want to receive the resource, the server does not push the resource because the client can send an error message to the server. Otherwise, the client stores the push promise until it receives the corresponding pushed content. The push promise is used so that the client does not request the promised resource while the server is pushing the promised resource.

データフレームがプッシュ約束に対応しない場合(No)、ステップ111の間に、そのフレームがプッシュされたデータに関連するデータフレームであるか否かがチェックされる。それがプッシュされたデータに関連する場合(Yes)、クライアントはステップ112の間にそのプッシュされたデータを処理する。そのプッシュされたデータはクライアントのキャッシュの中に格納される。   If the data frame does not correspond to the push commitment (No), it is checked during step 111 whether the frame is a data frame associated with the pushed data. If it is related to pushed data (Yes), the client processes the pushed data during step 112. The pushed data is stored in the client's cache.

そのフレームがプッシュされたデータに関連するデータフレームでない場合(No)、ステップ113の間に、それがサーバから受信されたレスポンスに対応するか否かがチェックされる。そのフレームがサーバからのレスポンスに対応する場合(Yes)、そのレスポンスはステップ114の間に処理される(例えば、アプリケーションに送られる)。   If the frame is not a data frame associated with the pushed data (No), it is checked during step 113 whether it corresponds to a response received from the server. If the frame corresponds to a response from the server (Yes), the response is processed during step 114 (eg, sent to the application).

そうでない場合(No)、ステップ115の間に、そのフレームがレスポンスの終わりを特定するか(Yes)否かがチェックされる。この場合、プロセスはステップ116の間に終了される。そうでない場合、プロセスはステップ109に戻る。   If not (No), during step 115 it is checked whether the frame identifies the end of the response (Yes). In this case, the process is terminated during step 116. If not, the process returns to step 109.

このように、クライアントはレスポンスおよび約束されたリソースを受け取ると思われる。従って、取り出されたウェブページを表示するブラウザなどのアプリケーションによってレスポンスが使用されている間、約束されたリソースは一般的にクライアントのキャッシュに格納されている。プッシュされたリソースのうちの1つをクライアントアプリケーションが要求すると、そのリソースはネットワーク遅延を招くことなく直ちにクライアントのキャッシュから取り出される。   In this way, the client will receive the response and the promised resource. Thus, promised resources are typically stored in the client's cache while the response is being used by an application such as a browser that displays the retrieved web page. When a client application requests one of the pushed resources, that resource is immediately removed from the client's cache without incurring a network delay.

プッシュされたリソースのキャッシュにおける保存は、キャッシュ制御ディレクティブを使用して制御される。キャッシュ制御ディレクティブは、レスポンスの制御のためにも使用される。これらのディレクティブは特にプロキシに対して適用可能であり、リソースは、プッシュされたリソースであってもプッシュされたリソースでなくても、プロキシによりまたはクライアントのみにより、保存され得る。   The storage of pushed resources in the cache is controlled using cache control directives. Cache control directives are also used for response control. These directives are particularly applicable to proxies, where resources can be saved by the proxy or by the client alone, whether pushed or not.

上で言及されたように、クライアントは、ウェブページ記述(HTMLファイル)において挙げられているサブリソースをダウンロードする自身の適切な順序を持つことを望むであろうから、サーバのエンドにおけるプッシュフィーチャを主導するべきである。本発明は、この点での現下の状況を、例えばクライアントが第1リソースの要求後に希望することのある(サブ)リソースまたは(サブ)リソースの1つもしくは複数の部分の特定のセットをサーバに知らせるために、改善することを意図している。特に、本発明は、僅かのインテリジェンスしか持っていないサーバ、例えば、クライアントがそれらの(サブ)リソースを特定するための根拠としたウェブページ記述などを処理するための知識を持っていないサーバ、に適合しようとしている。   As mentioned above, the client will want to have its proper order of downloading the sub-resources listed in the web page description (HTML file), so it will push the push feature at the end of the server. Should lead. The present invention provides the server with a specific set of (sub) resources or one or more portions of (sub) resources that the client may desire after requesting the first resource, for example, in this respect Intended to improve to inform. In particular, the present invention applies to servers that have little intelligence, such as servers that do not have the knowledge to process web page descriptions as the basis for clients to identify their (sub) resources. Trying to fit.

本発明に対するそのようなニーズは、HTTPを通してのHTTPストリーミングに関して、例えば、プッシュフィーチャを使用するとき、DASHなどの適応HTTPストリーミングと関連して、大きくなる。   Such needs for the present invention are greater with respect to HTTP streaming over HTTP, for example, in connection with adaptive HTTP streaming such as DASH when using push features.

HTTPを通してのメディアストリーミングの一般的原理が図3に示されている。HTTPを通しての適応メディアストリーミングのための新しいプロトコルおよび標準規格のほとんどは、この原理に基づいている。これはDASHの場合であり、以下の説明はこれについて言及する。   The general principle of media streaming over HTTP is shown in FIG. Most new protocols and standards for adaptive media streaming over HTTP are based on this principle. This is the case for DASH, and the following description refers to this.

メディアサーバ300はクライアント310にデータをストリーミングする。メディアサーバはメディアプレゼンテーションを保存している。例えば、メディアプレゼンテーション301はオーディオおよびビデオデータを含む。オーディオおよびビデオは同じファイルにおいてインターリーブされ得る。メディアプレゼンテーションが構築される仕方は、以下で図4aと関連して記載される。メディアプレゼンテーションは、独立してアドレスされダウンロードされ得る小さな独立の連続的な、MP4セグメントなどの、一時的セグメント302a、302bおよび302cに時間的に分割される。これらの一時的セグメントの各々のためのメディアコンテンツのダウンロードアドレス(HTTP URL)は、クライアントに対してサーバによりセットされる。オーディオ/ビデオメディアコンテンツの各一時的セグメントは、1つのHTTPアドレスと関連付けられる。   The media server 300 streams data to the client 310. The media server stores media presentations. For example, the media presentation 301 includes audio and video data. Audio and video can be interleaved in the same file. The manner in which the media presentation is constructed is described below in connection with FIG. 4a. The media presentation is divided in time into temporary segments 302a, 302b and 302c, such as small independent continuous, MP4 segments that can be independently addressed and downloaded. The media content download address (HTTP URL) for each of these temporary segments is set by the server to the client. Each temporary segment of audio / video media content is associated with one HTTP address.

メディアサーバは、メディアコンテンツ特性(例えばメディアのタイプ:オーディオ、ビデオ、オーディオ−ビデオ、テキストなど)、符号化フォーマット(例えば、ビットレート、タイミング情報など)、一時的メディアセグメントおよび関連URLのリストを含むメディアプレゼンテーションの内容を記述するマニフェストファイルドキュメント304(その一例が図7aに示されている)をも保存している。あるいは、このドキュメントは、一時的メディアセグメントおよび関連URLの明示的リストを再構築することを可能にするテンプレート情報を含む。このドキュメントは、エクステンシブルマークアップランゲージ(XML:eXtensible Markup Language)を用いて書かれ得る。   The media server includes a list of media content characteristics (eg, media type: audio, video, audio-video, text, etc.), encoding format (eg, bit rate, timing information, etc.), temporary media segments, and associated URLs. A manifest file document 304 (an example of which is shown in FIG. 7a) that describes the contents of the media presentation is also saved. Alternatively, the document includes template information that allows an explicit list of temporary media segments and associated URLs to be reconstructed. This document can be written using the extensible markup language (XML).

マニフェストファイルはクライアントに送られる。ステップ305中にマニフェストファイルを受け取ると、クライアントはメディアコンテンツの一時的セグメントとHTTPアドレスとの関連を知らされる。さらに、マニフェストファイルは、メディアプレゼンテーションの内容(本例ではインターリーブされているオーディオ/ビデオ)に関する情報をクライアントに提供する。この情報は、解像度、ビットレートなどを含み得る。   The manifest file is sent to the client. Upon receipt of the manifest file during step 305, the client is informed of the association between the temporary segment of media content and the HTTP address. In addition, the manifest file provides the client with information regarding the content of the media presentation (in this example, interleaved audio / video). This information may include resolution, bit rate, and the like.

受信した情報に基づいて、クライアントのHTTPクライアントモジュール311は、マニフェストファイルに記載されているメディアコンテンツの一時的セグメントをダウンロードするためのHTTPリクエスト306を送ることができる。サーバのHTTPレスポンス307は、要求された一時的セグメントを伝える。HTTPクライアントモジュール311は、レスポンスから一時的メディアセグメントを抽出して、それらをメディアエンジン312の入力バッファ307に供給する。最後に、メディアセグメントは、それぞれのステップ308および309の間に復号されて表示され得る。   Based on the received information, the client's HTTP client module 311 can send an HTTP request 306 to download a temporary segment of the media content described in the manifest file. The server's HTTP response 307 conveys the requested temporary segment. The HTTP client module 311 extracts temporary media segments from the response and supplies them to the input buffer 307 of the media engine 312. Finally, the media segment can be decoded and displayed during respective steps 308 and 309.

メディアエンジン312は、次の一時的セグメントを適時に出させるためのリクエストを得るためにDASH制御エンジン313と相互に作用する。次のセグメントは、マニフェストファイルから特定される。そのリクエストが発せられる時は、受信バッファ307が満杯であるか否かに依存する。DASH制御エンジン313は、バッファがオーバーロードされたり完全に空になったりするのを防止するためにバッファを制御する。   Media engine 312 interacts with DASH control engine 313 to obtain a request to issue the next temporary segment in a timely manner. The next segment is identified from the manifest file. When that request is issued, it depends on whether the receive buffer 307 is full. The DASH control engine 313 controls the buffer to prevent the buffer from being overloaded or completely emptied.

メディアプレゼンテーションおよびマニフェストファイルの生成は、図4aと関連して記載される。ステップ400および401の間に、オーディオおよびビデオデータが取得される。次に、オーディオデータが402の間に圧縮される。例えば、MP3標準規格が使用され得る。さらに、ステップ403の間にビデオデータが並行して圧縮される。MPEG4、MPEG/AVC、SVC、HEVCまたはスケーラブルHEVCなどのビデオ圧縮アルゴリズムが使用され得る。オーディオおよびビデオデータの圧縮が行われたならば、オーディオおよびビデオ基本ストリーム404、405が利用可能になる。基本ストリームは、ステップ406の間にグローバルメディアプレゼンテーションにエンキャプシュレートされる。例えば、符号化されたオーディオおよびビデオ基本ストリームの内容をグローバルメディアプレゼンテーションとして記述するためにISO BMFF標準規格(または、ISO BMFF標準規格のAVCへのエクステンション、SVC、HEVC、HEVCのスケーラブルエクステンションなど)が使用され得る。これにより得られたエンキャプシュレートされたメディアプレゼンテーション407は、ステップ408の間に、XMLマニフェストファイル409を生成するために使用される。ビデオデータ401およびオーディオデータ400の数個のリプリゼンテーションが取得され、圧縮され、エンキャプシュレートされ、メディアプレゼンテーション407において記述され得る。   Media presentation and manifest file generation are described in connection with FIG. 4a. During steps 400 and 401, audio and video data is acquired. Next, the audio data is compressed during 402. For example, the MP3 standard can be used. Furthermore, the video data is compressed in parallel during step 403. Video compression algorithms such as MPEG4, MPEG / AVC, SVC, HEVC or scalable HEVC may be used. Once compression of audio and video data has been performed, audio and video elementary streams 404, 405 are available. The elementary stream is encapsulated into a global media presentation during step 406. For example, the ISO BMFF standard (or the ISO BMFF standard extension to AVC, SVC, HEVC, HEVC scalable extension, etc.) is used to describe the contents of encoded audio and video elementary streams as a global media presentation. Can be used. The resulting encapsulated media presentation 407 is used during step 408 to generate an XML manifest file 409. Several representations of video data 401 and audio data 400 can be obtained, compressed, encapsulated, and described in media presentation 407.

図4bに示されているMPEG/DASHストリーミングプロトコルの特別の場合については、マニフェストファイルは“メディアプレゼンテーション記述(Media Presentation Description)”(あるいは“MPD”ファイル)と呼ばれる。このファイルのルートエレメントは、全てのプレゼンテーションとプロファイルまたはスキーマのようなDASH情報とに適用される属性を含むMPDエレメントである。メディアプレゼンテーションは、ピリオドエレメントにより表示される一時的ピリオドに分割される。MPDファイル410は、各一時的ピリオドに関連する全てのデータを含む。この情報を受け取ることにより、クライアントは時間の各ピリオドのためのコンテンツを知る。各ピリオド411について、AdaptationSetエレメントが定義される。   For the special case of the MPEG / DASH streaming protocol shown in FIG. 4b, the manifest file is referred to as a “Media Presentation Description” (or “MPD” file). The root element of this file is an MPD element that contains attributes that apply to all presentations and DASH information such as profiles or schemas. The media presentation is divided into temporary periods displayed by a period element. The MPD file 410 contains all the data associated with each temporary period. By receiving this information, the client knows the content for each period of time. For each period 411, an AdaptationSet element is defined.

1つの可能な構成は、プレゼンテーションに含まれるメディアタイプごとに1つまたは複数のAdaptationSetを持つことである。ビデオに関連するAdaptationSet412は、サーバから入手し得る符号化されたビデオの様々な可能なリプリゼンテーションに関する情報を含む。各リプリゼンテーションは、リプリゼンテーションエレメントに記述される。例えば、第1リプリゼンテーションは、640×480の空間解像度で符号化され500kbits/sのビットレートで圧縮されたビデオであり得る。第2リプリゼンテーションは、同じではあるけれども250kbits/sのビットレートで圧縮されているビデオであり得る。   One possible configuration is to have one or more AdaptationSets for each media type included in the presentation. The AdaptationSet 412 associated with the video contains information regarding the various possible representations of the encoded video that can be obtained from the server. Each representation is described in a representation element. For example, the first representation may be a video encoded at a spatial resolution of 640 × 480 and compressed at a bit rate of 500 kbits / s. The second representation may be video that is the same but compressed at a bit rate of 250 kbits / s.

各ビデオは、その後、クライアントがそのビデオに関連するHTTPアドレスを知っているならば、HTTPリクエストによりダウンロードされ得る。各リプリゼンテーションの内容とHTTPアドレスとのアソシエーションは、追加のレベルの記述:一時的セグメントを用いて行われる。各ビデオリプリゼンテーションは一時的セグメント413(通例、数秒)に分割される。各一時的セグメントは、HTTPアドレス(URLまたは1バイトのレンジを有するURL)を介してアクセスし得るサーバに格納されているコンテンツを含む。MPDファイルに一時的セグメントを記述するために数個のエレメント:SegmentList、SegmentBaseまたはSegmentTemplate、が使用され得る。   Each video can then be downloaded with an HTTP request if the client knows the HTTP address associated with that video. The association between the content of each representation and the HTTP address is done using an additional level description: a temporary segment. Each video representation is divided into temporary segments 413 (typically a few seconds). Each temporary segment includes content stored on a server that can be accessed via an HTTP address (URL or URL having a range of 1 byte). Several elements can be used to describe temporary segments in the MPD file: SegmentList, SegmentBase or SegmentTemplate.

さらに、特定のセグメント:初期化セグメント、が利用可能である。初期化セグメントは、(もしビデオがISO BMFFまたはそのエクステンションを用いてエンキャプシュレートされているならば)そのエンキャプシュレートされているビデオストリームを記述するMP4初期化情報を含む。例えば、それは、クライアントがそのビデオに関連する復号アルゴリズムをインスタンス化するのを助ける。   In addition, a specific segment: initialization segment is available. The initialization segment contains MP4 initialization information that describes the encapsulated video stream (if the video is encapsulated using ISO BMFF or its extension). For example, it helps the client to instantiate a decoding algorithm associated with the video.

初期化セグメントおよびメディアセグメントのHTTPアドレスは、MPDファイルにおいて明示される。この説明において“セグメント”は一時的フラグメント(例:メディアがISO/IEC14496パート12およびパート15に従ってエンキャプシュレートされるときにはmp4ファイル内の1つまたは複数のmoof+mdatボックス)または一時的セグメント(例えば、“styp”指示から始まるmp4セグメント)を示すために使われることに留意しなければならない。   The initialization segment and media segment HTTP addresses are specified in the MPD file. In this description, a “segment” is a temporary fragment (eg, one or more moof + mdat boxes in an mp4 file when the media is encapsulated according to ISO / IEC 14496 part 12 and part 15) or a temporary segment (eg, It should be noted that it is used to indicate the mp4 segment (starting from the “styp” directive).

図7aに、例示的MPDファイルが示されている。示されているMPDファイルにおいて2つのビデオリプリゼンテーションが記述されている。第1のものは低解像度バージョン(“Representation id=“h264bl_low””)であり、第2のものはより大きな解像度のバージョン(“Representation id=“h264bl_full””)である。両方のビデオリプリゼンテーションが同じAdaptationSetに含まれ、各リプリゼンテーションの各セグメントがSegmentTemplate URLを通してアドレスされる(“media=“mp4−live−$RepresentationID$−$“Number$.m4s””。ここで$RepresentationID$は2つの可能なビデオリプリゼンテーションの間で変化し、$Number$はビデオの中での位置に沿って変化する)。   An exemplary MPD file is shown in FIG. 7a. Two video representations are described in the MPD file shown. The first is a low resolution version (“Representation id =“ h264bl_low ””) and the second is a higher resolution version (“Representation id =“ h264bl_full ””). Both video representations are included in the same AdaptationSet, and each segment of each representation is addressed through the SegmentTemplate URL (“media =“ mp4-live- $ RepresentationID $-$ “Number $ .m4s” ”, here. $ RepresentationID $ changes between two possible video representations, and $ Number $ changes along the position in the video).

明瞭性を得るために、存在することのある関連付けられているオーディオストリームは表示されておらず、それらは別のAdaptationSetにおいて、それぞれ代わりのバージョンと共に、記述され得る。   To gain clarity, the associated audio streams that may be present are not displayed, and they can be described in different AdaptationSets, each with an alternative version.

ストリーミングセッションを開始するとき、DASHクライアントはマニフェストファイルを要求する。受け取ると、クライアントはそのマニフェストファイルを分析し、その環境に適するAdaptationSetのセットを選択する。次に、クライアントは、MPDの中の各AdaptationSet内の、その帯域幅、復号およびレンダリングの能力に適合するリプリゼンテーションを選択する。次に、それは、要求されるべきセグメントのリストを前もって、まず第1にメディアデコーダのための初期化情報から、構築する(図7aの例ではSegmentTemplate@initialization URL)。初期化情報がデコーダにより受信されると、それらは初期化され、クライアントは第1メディアデータを要求して、実際に表示を開始する前に最小限の量のデータをバッファリングする。   When starting a streaming session, the DASH client requests a manifest file. Upon receipt, the client analyzes the manifest file and selects a set of AdaptationSets appropriate for the environment. The client then selects a representation that matches its bandwidth, decoding and rendering capabilities within each AdaptationSet in the MPD. It then builds in advance a list of segments to be requested, first from the initialization information for the media decoder (SegmentTemplate @ initialization URL in the example of FIG. 7a). When initialization information is received by the decoder, they are initialized and the client requests the first media data and buffers a minimum amount of data before actually starting the display.

これらの複数のリクエスト/レスポンスは、ストリーミングセッションのスタートアップ時に遅延をもたらし得る。リスクは、サービスプロバイダが自身のクライアントがそのビデオを見始めることなくサービスから去るという事態に遭遇することである。この、クライアントによって実行される第1メディアデータチャンクに対する最初のHTTPリクエストと、そのメディアデータチャンクが実際に再生しはじめるときとの間の時間をスタートアップ遅延と呼ぶのは普通のことである。それはネットワークのラウンドトリップ時間だけでなくメディアセグメントのサイズにも依存する:セグメントが長いほど、スタートアップ遅延は長くなる。   These multiple requests / responses can introduce delays during the startup of a streaming session. The risk is that the service provider encounters a situation where their client leaves the service without starting to watch the video. It is common to refer to this time between the initial HTTP request for the first media data chunk executed by the client and when the media data chunk actually begins to play as the startup delay. It depends not only on the network round trip time but also on the size of the media segment: the longer the segment, the longer the startup delay.

さらに、ライブストリーミングでは、クライアントがメディアセグメントを要求した時点で、このセグメントはサーバにおいて準備状態ではないかもしれない。レイテンシを小さくするために、セグメントの長さを小さくすることは有益であるかもしれない。しかし、そのようにセグメントの長さを小さくすると、リクエスト/レスポンスの数が劇的に増加して、かなりのネットワークトラフィックオーバーヘッドがもたらされるかもしれない。   Furthermore, in live streaming, when a client requests a media segment, this segment may not be ready at the server. To reduce latency, it may be beneficial to reduce the segment length. However, such a reduction in segment length may dramatically increase the number of requests / responses, resulting in significant network traffic overhead.

そのようなトラフィックオーバーヘッドの増加を低減するために、提案されるアプローチは、サーバの自発性だけに基づいてデータをクライアントにプッシュできるようにサーバにおいてHTTP/2のプッシュフィーチャを使用することである。より一般的にHTTPに関して、そのようなアプローチ(プッシュフィーチャの使用)は、リソースを多数のサブリソース(例えば、css、jscript、イメージを含むウェブページ;またはセグメントのリストを含むDASHマニフェスト)に編成し得るようにHTTPクライアントとHTTPサーバとの間でのラウンドトリップの数(および、次にレイテンシ)を減らすことを可能にする。   In order to reduce such an increase in traffic overhead, the proposed approach is to use HTTP / 2 push features at the server so that data can be pushed to the client based solely on the server's spontaneity. More generally for HTTP, such an approach (using push features) organizes resources into a number of sub-resources (eg, css, jscript, web pages containing images; or DASH manifests containing a list of segments). It makes it possible to reduce the number of round trips (and then the latency) between the HTTP client and the HTTP server.

上で言及されたように、HTTPを通してのDASHストリーミングと関連してプッシュフィーチャをそのように使用することは、特許文献1において既に提案されている。   As mentioned above, such use of push features in connection with DASH streaming over HTTP has already been proposed in US Pat.

この刊行物において提案されているメカニズムは、特に、プッシュポリシーに従ってどのデータまたはリソースをプッシュするかを決定するためにMPDファイルにプッシュポリシーを適用できるように、サーバデバイスがDASHについての高度に複雑な知識を持つことを要求する。   The mechanism proposed in this publication is a highly complex for DASH, especially where the server device can apply a push policy to the MPD file to determine what data or resources to push according to the push policy. Require knowledge.

これらのメカニズムは、HTTPを通しての適応ストリーミングの幾つかの有益な面に反する。   These mechanisms are contrary to some useful aspects of adaptive streaming over HTTP.

より正確には、HTTPを通しての適応ストリーミングは、クライアントが一般的に自身の目的のためにマルチメディアコンテンツの最良のバージョンを選択し得るのでクライアントがストリーミングを案内するという仮定に基づいている。例えば、クライアントは、自身のフォームファクタおよびスクリーン解像度に基づいてHDビデオを要求するべきかそれともSDビデオを要求するべきかを知るであろう。HTTPを通しての適応ストリーミングのためのプッシュフィーチャの使用は、そのような振る舞いを維持し、プッシュされるデータに関してクライアントがサーバを完全に主導できるようにするべきである。   More precisely, adaptive streaming over HTTP is based on the assumption that the client guides the streaming because the client can generally select the best version of multimedia content for his purposes. For example, the client will know whether to request HD video or SD video based on its form factor and screen resolution. The use of push features for adaptive streaming over HTTP should maintain such behavior and allow the client to fully drive the server with respect to the pushed data.

さらに、MPEG DASH標準規格のようなHTTPを通しての適応ストリーミングはサーバ側においてほとんど全くインテリジェンスを必要としない:クライアントにより送られるHTTPリクエストは単純なのでマニフェストおよびメディアセグメントにサービスをするために単純なHTTPサーバで十分である。このようにサーバが単純であるので、HTTPの標準的ウェブ使用法以外の追加のコストをサーバリソースに要求することなく多数のストリーミングクライアントを供給することが可能である。特に、多数のストリーミングクライアントは、標準的HTTP最適化技術を用いてコンテンツ配信ネットワークを通して管理され得る。HTTPを通しての適応ストリーミングのためのプッシュフィーチャの使用は、このサーバの単純性を維持するべきである。   Furthermore, adaptive streaming over HTTP, such as the MPEG DASH standard, requires little intelligence on the server side: the HTTP request sent by the client is simple, so with a simple HTTP server to serve the manifest and media segments. It is enough. Because of this simple server, it is possible to supply a large number of streaming clients without requiring additional costs for server resources other than the standard web usage of HTTP. In particular, a large number of streaming clients can be managed through a content distribution network using standard HTTP optimization techniques. The use of push features for adaptive streaming over HTTP should maintain the simplicity of this server.

本発明は、HTTPと一般的に関連してプッシュフィーチャの使用を改善することを目指している。それは特に、HTTPを通してのストリーミングとDASHなどのHTTPを通しての適応ストリーミングとに適用される。しかし、本発明は、好ましくは、HTTPを通しての適応ストリーミングの現存する有益なフィーチャをなるべく維持するべきである。これは、次の要件:
− 潜在的な無用の(クライアントにとって)データがサーバによりプッシュされるのを避けるためにクライアント制御の送信を維持すること;
− 上で言及されたスケーラビリティの利点を維持するためにサーバ側での特定のアプリケーション知識の使用を防止すること;
− レガシークライアントおよび/または本発明を実装しないサーバの間でのインタオペラビリティおよびキャッシュ能力を維持するためにリソースおよびサブリソースを在来の仕方で要求する仕方を維持すること。例えば、DASHセグメントの場合、これは、要求されたセグメントを処理するために特定の動作(例えばリクエスト−URIの変換など)を必要とするリクエストフォーマットの導入を避けるべきである;
− サーバ側の処理を少なく保つこと;
のうちのなるべく多くが満たされるべきであることを意味する。
The present invention seeks to improve the use of push features in general association with HTTP. It applies in particular to streaming over HTTP and adaptive streaming over HTTP such as DASH. However, the present invention should preferably preserve the existing beneficial features of adaptive streaming over HTTP as much as possible. This has the following requirements:
-Maintain client-controlled transmission to avoid potential useless (for client) data being pushed by the server;
-Preventing the use of specific application knowledge on the server side in order to maintain the scalability benefits mentioned above;
-Maintaining the way in which resources and sub-resources are requested in a conventional manner to maintain interoperability and caching capabilities between legacy clients and / or servers that do not implement the present invention. For example, in the case of a DASH segment, this should avoid the introduction of a request format that requires specific actions (eg, request-URI conversion, etc.) to process the requested segment;
-Keep server side processing low;
It means that as many as possible should be satisfied.

本発明のアイデアは、クライアントが(可能ならばプッシュメカニズムを用いて)受信したい追加のリソース/データまたは複数のリソースをサーバが判定するためのヒントを提供するか、あるいはクライアントが追加のリソースを受け取りたくないということをサーバが判断するためのヒントを提供する任意の情報を、第1データまたはリソースを要求する在来のHTTPリクエストに含めることである。特に、これらのヒントは、追加のリソース/データまたは複数のリソースの決定が文脈上の情報やリクエストの外側にある情報を使用しない仕方で定義される。HTTPリクエストは、追加のリソース/データまたは複数のリソースの定義に関して自動記述的リクエストと見られ得る。   The idea of the invention is to provide a hint for the server to determine additional resources / data or multiple resources that the client wishes to receive (if possible using a push mechanism) or the client receives additional resources Any information that provides a hint for the server to determine that it does not want to be included in a conventional HTTP request that requests the first data or resource. In particular, these hints are defined in such a way that the determination of additional resources / data or resources does not use contextual information or information outside the request. An HTTP request may be viewed as an automatic descriptive request with respect to additional resources / data or multiple resource definitions.

そのようなヒントの例は後述され、明示的なURI/URLもしくはURI/URLのリスト、自動記述的HTTPリクエストに基づく構築ルールおよびリソース/データのフィルタリングルールの使用を通しての暗黙のURI/URLを含む。   Examples of such hints are described below and include an implicit URI / URL through the use of an explicit URI / URL or list of URI / URLs, construction rules based on automatic descriptive HTTP requests, and resource / data filtering rules. .

本発明によるサーバ側方法は、サーバデバイスとクライアントデバイスとの間でデータを送信しようとするものであり、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、このHTTPリクエストは、サーバデバイス上の第1データを特定することを可能にする第1データ特定情報を含むとともに第2データを可能にする1つまたは複数の任意ヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;ならびに
もしその任意ヘッダフィールドがHTTPリクエスト内に存在するならば:
任意ヘッダフィールドだけ、および場合によってはさらに第1データ特定情報、を用いて、サーバデバイス上の第2データを特定することを可能にする第2データ特定情報を決定するステップ、を含む。すなわち、HTTPリクエストは第2リソースを決定するために自給自足的である、すなわち、自己記述的である;および
第2データをクライアントデバイスにプッシュするとアナウンスするプッシュ約束メッセージを送るおよび/または第2データをクライアントデバイスにプッシュするステップ;
を含む。
The server-side method according to the invention seeks to transmit data between a server device and a client device, at the server device:
Receiving an HTTP request for obtaining first data from a client device, the HTTP request including first data identifying information that enables identifying first data on the server device and allowing second data; Receiving, including one or more optional header fields
Retrieving the first data and sending it to the client device; and if its optional header field is present in the HTTP request:
Determining the second data identification information that allows the identification of the second data on the server device using only the optional header field and optionally further the first data identification information. That is, the HTTP request is self-sufficient, i.e., self-describing, to determine the second resource; and sends a push commitment message that announces when the second data is pushed to the client device and / or the second data Pushing to the client device;
including.

特定の実施形態では、クライアントにより要求された第2データまたは追加リソースをサーバがプッシュすることをクライアントに知らせるために、サーバが第2データまたは追加リソースをプッシュしないことを知らせるために、またはサーバが送信し得る第2データまたは追加リソース/データまたは複数のリソースをクライアントが決定するためのヒントを提供するために、確認応答データがクライアントに送られる。   In certain embodiments, to inform the client that the server will push the second data or additional resource requested by the client, to inform the server not to push the second data or additional resource, or Acknowledgment data is sent to the client to provide hints for the client to determine second data or additional resources / data or resources that may be sent.

本発明によるクライアント側方法は、サーバデバイスとクライアントデバイスとの間でデータを送信しようとするものであり、クライアントデバイスにおいて:
サーバデバイスから得られるべきデータを特定するステップ;
その特定されたデータから第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは、サーバデバイス上の第1データを特定することを可能にする第1データ特定情報を含むとともに1つまたは複数の任意ヘッダフィールドを含み、その任意ヘッダフィールドだけ、および場合によってはさらに第1データ特定情報(すなわち、HTTPリクエストの内容だけ)、に基づいて、サーバデバイス上の特定されたデータから第2データを特定することを可能にする第2データ特定情報を定義する、生成するステップ;
第1データを得るとともにサーバデバイスに第2データをプッシュさせるためにHTTPリクエストをサーバデバイスに送るステップ;
を含む。
The client-side method according to the present invention seeks to transmit data between a server device and a client device, at the client device:
Identifying the data to be obtained from the server device;
Generating an HTTP request to obtain first data from the identified data, wherein the HTTP request includes first data identifying information that allows the first data on the server device to be identified and one Or a plurality of optional header fields, based on the specified data on the server device based on only the optional header field and possibly further the first data specifying information (ie, only the content of the HTTP request). Defining and generating second data identification information that enables data identification;
Sending an HTTP request to the server device to obtain the first data and cause the server device to push the second data;
including.

特定の実施形態では、クライアントは、プッシュリクエストに関する確認応答データを受け取ると、第2データまたは追加リソースを得るために自身のストラテジーを適応させる。   In certain embodiments, when the client receives acknowledgment data regarding the push request, the client adapts its strategy to obtain second data or additional resources.

第1データ特定情報は、普通、HTTPリクエスト(またはそれの、HTTP/2疑似ヘッダへの変換)の“request−line”の一部を形成するリクエストURIに対応する。   The first data identification information usually corresponds to a request URI that forms part of the “request-line” of an HTTP request (or its conversion to an HTTP / 2 pseudo-header).

本発明により提案されるアプローチは、上記要件の全てまたは部分を満たす。   The approach proposed by the present invention satisfies all or part of the above requirements.

第1に、本発明の方法は、クライアントが、データを要求すると同時に、プッシュするべき1つまたは複数の追加のまたは関連するリソースをサーバに対して明示することを可能にする。クライアントはこれらのリソースを、これらに対する特別のリクエストを送ることなく、受け取るであろうから、ネットワークトラフィックおよびレイテンシが低減される。   First, the method of the present invention allows a client to specify one or more additional or related resources to push to the server at the same time as requesting data. Since the client will receive these resources without sending a special request for them, network traffic and latency are reduced.

さらに、それらは、(本発明による任意ヘッダの、サーバのサポートに依存して)クライアントが追加リソースを受け取るであるか、またはクライアントがそれらを要求しなければならないか、をクライアントが(プッシュ約束フレームを通じて)知らされることをも可能にする。このように現存するストリーミングサーバとの下位互換性は維持され、フィーチャの展開はより容易にされるはずである。   In addition, they can determine whether the client receives additional resources (depending on server support for optional headers according to the invention) or whether the client must request them (push commitment frame). It also makes it possible to be informed. Thus, backward compatibility with existing streaming servers is maintained and feature deployment should be made easier.

さらに、それらは、サーバがクライアントにプッシュされるべき次の1つまたは複数のリソースを、アプリケーション特有の知識を必要とすることなく、容易に特定することをも可能にする。従って、サーバ側での処理は限定され、多数のクライアントが同じサーバに要求することをオーソライズされ得る。   In addition, they also allow the server to easily identify the next resource or resources to be pushed to the client without requiring application specific knowledge. Thus, processing on the server side is limited and multiple clients can be authorized to request from the same server.

図3aは、本発明の実装のためのクライアント/サーバシステムの一般的説明図を示す。以下で、ビデオはメディアまたはコンテンツの特別の場合であることを分かった上で、リソースを示すために“ビデオ”、“メディア”または“コンテンツ”が差別されずに言及される。同様に、サーバからクライアントに送信されるべきメディアリソースの記述ファイルを示すために“MPD”または“マニフェスト”または“ストリーミングマニフェスト”または“HTMLページ”が差別されずに言及される。   FIG. 3a shows a general illustration of a client / server system for implementation of the present invention. In the following, “video”, “media” or “content” will be referred to indiscriminately to indicate resources with the knowledge that video is a special case of media or content. Similarly, “MPD” or “manifest” or “streaming manifest” or “HTML page” is referred to indiscriminately to indicate a description file of media resources to be sent from the server to the client.

本発明は、図3aに示されているようにクライアントとサーバとの間でのHTTP通信、特にデータストリーミング、を改善することを狙っており、より正確にはリソースのローディング時間およびネットワークトラフィックオーバーヘッドの両方を低減することを狙っている。   The present invention aims to improve HTTP communication between the client and server, particularly data streaming, as shown in FIG. 3a, and more precisely the resource loading time and network traffic overhead. It aims to reduce both.

サーバ350は、クライアント380がダウンロードできるリソースを保存している。サーバ上のリソースは、サブリソース(352a、b、c)を参照または包含するメインリソース351に分類される。   The server 350 stores resources that the client 380 can download. The resources on the server are classified into main resources 351 that refer to or include sub-resources (352a, b, c).

例えば、メインリソースはHTMLページであり得、サブリソースは、cssリソース、イメージおよび/またはメディアファイル、javaスクリプトコードまたはメインリソースにおいて参照される他のHTMLページであり得る。これらのリソースのアクセス権および編成は、静的設定ファイル355において記述され得る。   For example, the main resource can be an HTML page, and the sub-resource can be a css resource, image and / or media file, java script code or other HTML page referenced in the main resource. The access rights and organization of these resources can be described in the static configuration file 355.

クライアント380により発せられるHTTPリクエストはHTTPプロセッサ356により受信されて処理され、このプロセッサ356は、そのリクエストをリソース特定およびヘッダ処理に分解するリクエストパーサ357を含む。   HTTP requests issued by the client 380 are received and processed by the HTTP processor 356, which includes a request parser 357 that decomposes the request into resource identification and header processing.

本発明は、プッシュヘッダプロセッサ358により行われる1つの特定のヘッダ処理を考慮する。後者は、以下で記載されるようにHTTPリクエストにおいて任意的である1つまたは複数の特定のプッシュヘッダの処理を担当する。上で簡潔に紹介されたように、その1つまたは複数の特定のプッシュヘッダに基づき、HTTPリクエストだけを用いて、サーバは追加リソースへの1つまたは複数の参照を、それらをプッシュするために、生じさせることができる。   The present invention contemplates one particular header process performed by the push header processor 358. The latter is responsible for processing one or more specific push headers that are optional in the HTTP request as described below. As briefly introduced above, based on that one or more specific push headers, using only HTTP requests, the server can push one or more references to additional resources to push them. Can be generated.

リソースマネージャ360は、リソースの存在/不在/鮮度のチェックおよび要求されたリソースのHTTPプロセッサ356への供給を担当する。次に、レスポンスジェネレータ359は、これらの供給されたリソースを、クライアントに送られる1つまたは複数のHTTPレスポンス(HTTP/1.x)またはフレーム(HTTP/2において)にエンキャプシュレートする。   The resource manager 360 is responsible for checking the presence / absence / freshness of the resource and supplying the requested resource to the HTTP processor 356. The response generator 359 then encapsulates these supplied resources into one or more HTTP responses (HTTP / 1.x) or frames (in HTTP / 2) that are sent to the client.

クライアント380は、数個のクライアントモジュールにより処理されるコンテンツをユーザが選択し、それと相互作用しおよび見るためのユーザインターフェース381を有する。   The client 380 has a user interface 381 for the user to select, interact with and view content that is processed by several client modules.

ユーザインターフェース381は、ユーザのクリックを、HTTPクライアント382内のリクエストスケジューラ383により処理される追加コンテンツに対するリクエストに変換する。その追加コンテンツに対するリクエストは、ダウンロードされるべきリソースのリストとして変換され得る。HTTPクライアント382は、HTTPサーバ350との通信を処理する。   The user interface 381 converts the user's click into a request for additional content that is processed by the request scheduler 383 in the HTTP client 382. The request for the additional content can be translated as a list of resources to be downloaded. The HTTP client 382 processes communication with the HTTP server 350.

HTTPクライアントは、サーバ350に対してリソースを要求するためにHTTPリクエスト(HTTP1.x)またはフレーム(HTTP/2)を構築するリクエストジェネレータ384を含む。   The HTTP client includes a request generator 384 that constructs an HTTP request (HTTP1.x) or frame (HTTP / 2) to request resources from the server 350.

本発明により、HTTPクライアント382は、リクエストスケジューラ383内で待機している次の1つまたは複数のリソースを明示しおよび/またはプッシュポリシー、プッシュストラテジーまたはプッシュディレクティブを明示する上記の特定の(任意の)プッシュヘッダをHTTPリクエストに挿入することを担当する特定のモジュール、すなわちプッシュヘッダジェネレータ385、を含む。特定の実施形態では、プッシュヘッダは、プッシュタイプ、および場合によっては関連するパラメータ、を含み得る。   In accordance with the present invention, the HTTP client 382 specifies the next one or more resources waiting in the request scheduler 383 and / or specifies a push policy, push strategy or push directive as specified above (optional ) Includes a specific module responsible for inserting the push header into the HTTP request, namely the push header generator 385. In certain embodiments, the push header may include a push type and possibly associated parameters.

サーバから受信されたレスポンスまたは通知は、データを抽出してそれらをクライアントキャッシュ/メモリ387に格納するレスポンスパーサ386により処理される。レスポンスヘッダにより運ばれる情報も、HTTPクライアント311により受け取られて処理され、DASH制御エンジン313が利用できるようにされ得る(例えば、DASHアプリケーションがXmlHTTPRequestを用いてjavascriptコードで書かれているとき)。   Responses or notifications received from the server are processed by a response parser 386 that extracts data and stores them in the client cache / memory 387. The information carried in the response header can also be received and processed by the HTTP client 311 and made available to the DASH control engine 313 (eg, when a DASH application is written in javascript code using XmlHTTPRequest).

これらのデータはレンダリングエンジン388により使用され、このエンジンはデータをパース(389)してそれらを適切な復号モジュール390にディスパッチする。それらのデータに基づいて、後者は、復元されたデータを、ユーザインターフェース381でのレンダリングのために、ディスプレイ391に供給する。   These data are used by the rendering engine 388, which parses the data (389) and dispatches them to the appropriate decoding module 390. Based on those data, the latter supplies the recovered data to the display 391 for rendering at the user interface 381.

本発明により、パースモジュール389は、ユーザにとって潜在的に興味あるものである追加リソースを特定するために、受け取られたデータの内容を分析することができる。そのような場合、パースモジュール389は、それらの追加リソースをリクエストスケジューラ383において追加する。   In accordance with the present invention, the parsing module 389 can analyze the content of the received data to identify additional resources that are of potential interest to the user. In such a case, the parse module 389 adds those additional resources in the request scheduler 383.

クライアントの振る舞いは図5aに示され、サーバの振る舞いは図6aに示されている。   The client behavior is shown in FIG. 5a and the server behavior is shown in FIG. 6a.

図5aを参照すると、ステップ551において、クライアントは、HTTPリクエストを用いてメインリソース、例えばHTMLのウェブページまたはストリーミングマニフェスト、を要求する。そのウェブページのためのHTMLコードは、そのウェブページを構成するリソースを特定するためにステップ552で(モジュール389を用いて)パースされる。そのパースの結果を用いて、クライアントは、そのページ全体をレンダリングできるように、自身がダウンロードしなければならないリソースのリストを特定する。これはステップ553であり、そのリソースのリストはスケジューラ383に格納される。   Referring to FIG. 5a, in step 551, the client requests a main resource, eg, an HTML web page or a streaming manifest, using an HTTP request. The HTML code for the web page is parsed (using module 389) at step 552 to identify the resources that make up the web page. Using the parsed result, the client identifies a list of resources that it must download so that it can render the entire page. This is step 553 and the list of resources is stored in the scheduler 383.

ステップ554において、クライアントは、第1の特定されたリソースをサーバから得るために第1HTTPリクエストを生成して送る。本発明により、クライアント(モジュール385)は、特定のプッシュヘッダにおいて、自身がサーバにプッシュしてもらいたい追加の/関連するリソースのリストを明示することもできる。これはステップ555である。特定のプッシュヘッダのためのシンタックスの例が以下に与えられる。   In step 554, the client generates and sends a first HTTP request to obtain the first identified resource from the server. In accordance with the present invention, the client (module 385) can also specify a list of additional / related resources that it wants the server to push to in a particular push header. This is step 555. An example syntax for a particular push header is given below.

ステップ556においてサーバから1つまたは複数のレスポンスを受け取ると、クライアント(モジュール384)は、データのプッシュをアナウンスするサーバ通知(すなわちプッシュ約束)が受け取られたか否かチェックする(ステップ557)。このチェックは、第1リソースについてのデータが完全に受け取られたとき、止められ得る。その理由は、要求された第1リソースに対応するストリームの終結後には、特定のプッシュヘッダにより定義された追加の/関連するリソースに関連するプッシュ約束は送られることができないことである。ここで、特定のプッシュヘッダをサポートしないサーバは、このヘッダで定義された追加の/関連するリソースのためのプッシュ約束を送らないで単にこのヘッダを無視するであろうということが想起される。   Upon receipt of one or more responses from the server at step 556, the client (module 384) checks whether a server notification (ie, push promise) that announces the push of data has been received (step 557). This check may be stopped when the data for the first resource is completely received. The reason is that after the end of the stream corresponding to the requested first resource, push promises related to additional / related resources defined by a particular push header cannot be sent. It is recalled here that a server that does not support a specific push header will simply ignore this header without sending a push commitment for the additional / related resources defined in this header.

もしチェックが否定であれば、受け取られるデータは、要求された第1リソースのそれだけである。従って、それらはステップ560でモジュール384により処理されて、レンダリングエンジン388に供給される。プロセスはその後ステップ555に戻り、リクエストスケジューラ383に保存されているさらなるリソースを要求する(ステップ561)。   If the check is negative, the only data received is that of the requested first resource. Accordingly, they are processed by module 384 at step 560 and provided to the rendering engine 388. The process then returns to step 555 to request additional resources stored in the request scheduler 383 (step 561).

もしチェックが肯定で、サーバが特定のプッシュヘッダでクライアントにより示唆されたリソースのうちの幾つかをプッシュすることを意味するならば、クライアントはリクエストスケジューラ382内のダウンロードするべきリソースのリストをアップデートして、そのプッシュされるリソースをそこから撤回する。これはステップ558である。クライアントは、その後、ダウンロードするべきリソースがリクエストスケジューラ382に最早残っていなくなるまで反復する(ステップ561およびステップ555へのループ)前に、第1リソースのためのデータ(ステップ560)およびその他の追加の/関連するリソースのためのデータ(ステップ559)を処理する。   If the check is positive, meaning that the server pushes some of the resources suggested by the client in a particular push header, the client updates the list of resources to download in the request scheduler 382. Withdraw the pushed resource from it. This is step 558. The client then repeats until the resource to download no longer remains in the request scheduler 382 (loop to step 561 and step 555) before the data for the first resource (step 560) and other additional / Process data for associated resources (step 559).

ここで図6aに転じて、クライアント380によりHTTPリクエストに設けられる特定のプッシュヘッダを処理するためにサーバ350は専用の“プッシュヘッダ”プロセッサ358を使用するということが想起される。さらに、HTTPプロセッサ356は、HTTPリクエストをパースすること、および、要求された第1リソースのURIおよび任意の1つまたは複数のヘッダを含む、リクエストに含まれている種々のパラメータを抽出することを担当する。このように、HTTPプロセッサ358は、特定の(任意の)プッシュヘッダをその名前によって特定し、それを処理させるべくプッシュヘッダプロセッサ358に転送する。   Turning now to FIG. 6a, it is recalled that the server 350 uses a dedicated “push header” processor 358 to process a particular push header provided by the client 380 in the HTTP request. In addition, the HTTP processor 356 may parse the HTTP request and extract various parameters included in the request, including the requested first resource URI and any one or more headers. Handle. Thus, the HTTP processor 358 identifies a specific (optional) push header by its name and forwards it to the push header processor 358 for processing.

ステップ601において、サーバは、クライアント380からリクエストを受け取ってそれを、メインリソース、例えばストリーミングの文脈においてはストリーミングマニフェスト、を得るために処理する。それは、HTTPプロセッサ356により処理される。   In step 601, the server receives a request from client 380 and processes it to obtain a main resource, for example, a streaming manifest in the context of streaming. It is processed by the HTTP processor 356.

次にステップ602において、サーバはマニフェストデータを送ることで応答する。ステップ603において、サーバは第1リソース、普通はマニフェストデータにおいて参照されている第1リソース、を要求するクライアントからの新しいリクエストを受け取る。これは、メディアストリーミングの文脈においてはメディアセグメントであり得る。   Next, in step 602, the server responds by sending manifest data. In step 603, the server receives a new request from a client requesting a first resource, usually the first resource referenced in the manifest data. This can be a media segment in the context of media streaming.

このリクエストにおいて、クライアントは自身が関心を持っている追加のあるいは関連するリソースを、特定のプッシュヘッダを用いて、明示しているかもしれない。従って、ステップ604において、サーバは、そのような特定のプッシュヘッダがリクエストに含まれているか否かをチェックする。   In this request, the client may specify additional or related resources that it is interested in using specific push headers. Accordingly, in step 604, the server checks whether such a specific push header is included in the request.

もしそれが含まれていて書き込まれているならば、サーバはその特定のプッシュヘッダを特定プッシュヘッダプロセッサ358に供給する。後者は、クライアントにより明示された追加のあるいは関連するリソースへの1つまたは複数の参照を生成するために、以下で記載されるようにそのプッシュヘッダの様々な部分をパースする。これはステップ605である。   If it is included and written, the server supplies that particular push header to the particular push header processor 358. The latter parses various parts of its push header as described below to generate one or more references to additional or related resources specified by the client. This is step 605.

任意に、サーバは、自身が所有しているリソースのリストに属する各リソースについて、それをプッシュできるか否かを宣言する事前設定されたオーソライゼーションファイルを持つことができる。このオーソライゼーションファイルは、ステップ605で得られた幾つかの参照を有効にまたは無効にするためにステップ606で考察され得る。   Optionally, the server can have a pre-configured authorization file that declares whether each resource belonging to the list of resources it owns can be pushed or not. This authorization file can be considered at step 606 to validate or invalidate some of the references obtained at step 605.

サーバは、オーソライゼーションファイルに従ってそのプッシュがオーソライズされているリソースだけのためにプッシュアナウンスメントメッセージ(例えば、PUSH_PROMISEフレーム)でクライアントに通知する。これはステップ607である。HTTP/2では、PUSH PROMISEフレームは、クライアントのリクエストに対応するストリームで、ステップ605において特定されたリソースあたりに1つのPUSH PROMISEフレームが、送られる。ステップ607にステップ608が続き、このステップでサーバは、要求された第1リソース(すなわち、ストリーミングの文脈においては第1メディアセグメント)を、要求しているクライアントに送る。   The server notifies the client with a push announcement message (eg, PUSH_PROMISE frame) only for the resources for which the push is authorized according to the authorization file. This is step 607. In HTTP / 2, a PUSH PROMISE frame is a stream corresponding to a client request, and one PUSH PROMISE frame is sent per resource identified in step 605. Step 607 is followed by step 608, in which the server sends the requested first resource (ie, the first media segment in the context of streaming) to the requesting client.

もし特定プッシュヘッダが存在しないかまたはサポートされなければ(テスト604がフォールス)、あるいはもし特定されたリソースについてプッシュが全くオーソライズされなければ(テスト606がフォールス)、要求された第1リソースだけがステップ608でクライアントに送り返される。   If the specific push header does not exist or is not supported (test 604 is false), or if no push is authorized for the specified resource (test 606 is false), only the requested first resource is stepped At 608, it is sent back to the client.

要求された第1リソースを送ると、次にサーバは、対応するストリームを閉じるとともに、プッシュアナウンスメントメッセージ(PUSH PROMISEフレーム)でアナウンスされたストリームを、もしクライアントによりキャンセルされなければ、用いて、ステップ605で特定された追加のまたは関連するリソースのためのデータをプッシュする。これはステップ609であり、このステップで送ることは、1つまたは複数のデータフレームを送ることに依拠し得る。   Upon sending the requested first resource, the server then closes the corresponding stream and uses the stream announced in the push announcement message (PUSH PROMISE frame), if not canceled by the client, and steps Push data for additional or related resources identified at 605. This is step 609, and sending at this step may rely on sending one or more data frames.

上記のように、特定の実施形態では、クライアントにより要求された第2データまたは追加のリソースをサーバがプッシュするであろうことをクライアントに知らせるか、第2データも追加リソースもサーバはプッシュしないであろうことを知らせるか、あるいはサーバが送信できる第2データまたは追加リソース/データもしくは複数のリソースをクライアントが決定するためのヒントを提供するために確認応答データがクライアントに送られる。   As noted above, in certain embodiments, the server is informed that the server will push the second data or additional resources requested by the client, or the server does not push the second data or additional resources. Acknowledgment data is sent to the client to inform it or provide a hint for the client to determine the second data or additional resources / data or resources that the server can send.

従って、参照記号610で示されているように、サーバは、クライアントにより要求された第2データまたは追加のリソースをサーバがプッシュするであろうことをクライアントに知らせるか、第2データも追加リソースもサーバはプッシュしないであろうことを知らせるか、あるいはサーバが送信できる第2データまたは追加リソース/データもしくは複数のリソースをクライアントが決定するためのヒントを提供するために、受信されたリクエストに応答して送られるレスポンスに確認応答データを付け加えることができる。そのような確認応答データの例は、図11aから11eを参照することにより与えられる。   Thus, as indicated by reference numeral 610, the server informs the client that the server will push the second data or additional resources requested by the client, or neither the second data nor the additional resources. Respond to received requests to inform the server that it will not push or to provide a hint for the client to determine the second data or additional resources / data or resources that the server can send Acknowledgment data can be added to the response sent. An example of such acknowledgment data is given by referring to FIGS. 11a to 11e.

図3bは、データストリーミング、例えばDASH、と関連するクライアント−サーバシステムを示す。図3のそれと同じコンポーネントは同じ参照数字を有する。   FIG. 3b shows a client-server system associated with data streaming, eg DASH. Components that are the same as those in FIG. 3 have the same reference numerals.

第1に、ダウンロードするべきメディアセグメントの決定を担当するDASH制御エンジン313において、DASH制御エンジン313の中のリクエストスケジューリングモジュールにより推測されたダウンロードするべき次のセグメントのリストをHTTPクライアント311と通信するための追加モジュールが付け加えられている。   First, at the DASH control engine 313 responsible for determining the media segment to download, to communicate with the HTTP client 311 a list of the next segment to download as inferred by the request scheduling module in the DASH control engine 313. Additional modules have been added.

この情報は、HTTPクライアント311において特定の“プッシュヘッダ”ジェネレータ314により処理される。ダウンロードするべき次のセグメントのリストから、プッシュヘッダジェネレータ314は、例えばダウンロードするべき次のセグメントのリストを特定プッシュヘッダの様々な部分にマッピングすることによって、特定プッシュヘッダのための適切なシンタックスを生成することを担当する。   This information is processed in the HTTP client 311 by a specific “push header” generator 314. From the list of next segments to download, the push header generator 314 can generate an appropriate syntax for a particular push header, for example by mapping the list of next segments to download to various parts of the particular push header. Responsible for generating.

プッシュヘッダジェネレータ314により出力された特定プッシュヘッダは、現在のHTTPリクエストに挿入されるべくHTTPクライアント311に供給される。   The specific push header output by the push header generator 314 is supplied to the HTTP client 311 to be inserted into the current HTTP request.

サーバ側で、HTTPプロセッサ320およびプッシュヘッダプロセッサ321は、図3aに関連して上で記載されたHTTPプロセッサ356およびプッシュヘッダプロセッサ358に類似してはいるが、ストリーミングおよびDASH指向である。   On the server side, HTTP processor 320 and push header processor 321 are similar to HTTP processor 356 and push header processor 358 described above in connection with FIG. 3a, but are streaming and DASH oriented.

図5bは、図3bのシステムにおけるストリーミング指向クライアントの振る舞いを説明する主なステップを示す。   FIG. 5b shows the main steps describing the behavior of a streaming-oriented client in the system of FIG. 3b.

ステップ501において、クライアント310は、希望するメディアと関連付けられたストリーミングマニフェストをストリーミングサーバ300に要求する。ストリーミングマニフェストを受け取ると、クライアント310はステップ502でそれをパースし、次にステップ503でビデオリプリゼンテーションを選択する。   In step 501, the client 310 requests the streaming server 300 for a streaming manifest associated with the desired media. Upon receipt of the streaming manifest, client 310 parses it at step 502 and then selects a video representation at step 503.

反復してメディアのストリーミングの間に、クライアントはサーバに対してダウンロードするように要求する次のセグメントを選択する。これはステップ504である。   Iteratively during media streaming, the client selects the next segment requesting the server to download. This is step 504.

次に、ステップ505はクライアントが必要とするかもしれない将来のセグメントを特定することである。この決定は、DASH制御エンジン313内のリクエストスケジューラにとっては将来のセグメントを予想することであり:例えば、それがすぐに切り替えるかあるいは同じリプリゼンテーションレベルにとどまるかを決定する。   Next, step 505 is to identify future segments that the client may need. This decision is for the request scheduler in the DASH control engine 313 to anticipate a future segment: for example, whether it switches immediately or stays at the same representation level.

次の1つまたは複数のセグメントのダウンロードを予想するために、クライアントは、後のレンダリングに必要な将来のセグメントの数“K”(Kは、クライアントによりセットされる)を特定することができる。   To anticipate the download of the next segment or segments, the client can specify the number of future segments “K” (K is set by the client) needed for later rendering.

例えば、これは、現在の1つから次のK個のセグメントを取り出すためにMPD内のSegmentListをパースすることにより、またはMPDに設けられているSegmentTemplateを用いて次のK個のセグメントのためにセグメント番号を計算することにより、またはセグメントがバイトレンジを通してアドレスされるときにmp4ボックスから次のK個のバイトレンジを計算することによって、直接行われ得る。   For example, this can be done by parsing the SegmentList in the MPD to retrieve the next K segments from the current one, or for the next K segments using the SegmentTemplate provided in the MPD. This can be done directly by calculating the segment number or by calculating the next K byte ranges from the mp4 box when the segment is addressed through the byte range.

しかし、ステップ505の特定するプロセスに異なる選択基準が使用され得る。   However, different selection criteria may be used for the process identified in step 505.

適応ストリーミングと関連して、選択基準は、リプリゼンテーション間で切り替えを行うときクライアントの切り替えストラテジーを含み得る。例えば、クライアントが積極的な切り替えストラテジーを採用するとき、Kはより精細な切り替えグラニュラリティを可能にするためにローとして定義される(例えば、5秒未満をカバーするセグメントの数に対応する)。一方、クライアントが保守的なストラテジーを採用していてあまり頻繁には切り替えをしないときには、Kはより大きくセットされ得る(例えば、10秒以上をカバーするセグメントの数に)。   In connection with adaptive streaming, the selection criteria may include a client switching strategy when switching between representations. For example, when the client adopts an aggressive switching strategy, K is defined as low to allow finer switching granularity (eg, corresponding to the number of segments covering less than 5 seconds). On the other hand, when the client adopts a conservative strategy and does not switch too often, K may be set larger (eg, to the number of segments covering 10 seconds or more).

なお適応ストリーミングと関連して、別の選択基準はサーバのPUSH PROMISE能力を含み得る。例えば、もしサーバがクライアントにより提案されたのと同じ数のセグメントを適時に約束しまたは送ることができなければ、クライアントはこの情報を考慮してKの値を小さくすることができる。その結果、毎回、より少ないメディアセグメントがプッシュされるべく提案されることとなる。   Still in connection with adaptive streaming, another selection criterion may include the server's PUSH PROMISE capability. For example, if the server cannot promise or send the same number of segments in time as suggested by the client, the client can take this information into account and reduce the value of K. As a result, each time fewer media segments are proposed to be pushed.

なお適応ストリーミングと関連して、別の選択基準はクライアントのプリフェッチストラテジーを含み得る。例えば、クライアントは、様々な期間の初めに、高速シークを目的として最初のセグメントを選択することができる。あるいは、もしビデオアプリケーションがビデオ中の非常に人気のある部分に関する情報を提供するならば、その基準は、それらの非常に人気のある部分に対応する最初のセグメントを選択することを含み得る。   Still in connection with adaptive streaming, another selection criterion may include a client prefetch strategy. For example, the client can select the first segment for fast seeks at the beginning of various time periods. Alternatively, if the video application provides information about very popular parts in the video, the criteria may include selecting the first segment that corresponds to those very popular parts.

別のあり得るストリーミング指向の選択基準は、マニフェスト、MPD、の分析からもたらされ得る。例えば、クライアントは、選択されたリプリゼンテーションと関連付けられているセグメントをプッシュすることをサーバに提案することができる。これは、関連付けられているリプリゼンテーション間のassociationIDを用いて容易に決定され得る。この提案は、associationType情報に依拠することができる。さらに、従属リプリゼンテーションについては、エンハンスメントレイヤのためのセグメントがプッシュされるべく提案され得る。   Another possible streaming-oriented selection criterion can result from analysis of manifests, MPDs. For example, the client can suggest to the server to push the segment associated with the selected representation. This can be easily determined using the associationID between the associated representations. This proposal can rely on associationType information. Furthermore, for dependent representations, segments for the enhancement layer can be proposed to be pushed.

より一般的にHTTPを通してのリソースダウンロード、例えばウェブページ(図3aおよび5aを参照)、においては、クライアント(ウェブブラウザ、HTMLレンダラー)は、メインリソースを分析し、それにおいて参照されている、自身が急いでダウンロードしたい1つまたは複数のサブリソースを特定することができる。HTMLメインリソースをパースすることにより、クライアントは例えば:
− “プリフェッチ”または“次”を明示する“rel”値を有する<link>エレメント;
− 例えばCSSリソースを選択するスタイルシート関連リソースを明示する<link>エレメント;
− 例えばjavaスクリプトコードに対応するサブリソースを選択する<script>エレメント;
− <img>および/または<video>のようなメディアエレメント;
に依拠することができる。
More generally, in resource downloads over HTTP, eg web pages (see FIGS. 3a and 5a), the client (web browser, HTML renderer) analyzes the main resource and is referenced in it One or more sub-resources that you want to download quickly can be identified. By parsing the HTML main resource, the client can, for example:
A <link> element with a “rel” value specifying “prefetch” or “next”;
-A <link> element that specifies a resource associated with the style sheet that selects the CSS resource, for example;
A <script> element that selects, for example, a sub-resource corresponding to a Java script code;
-Media elements such as <img> and / or <video>;
You can rely on

HTMLページで宣言されていることのあるこれらのエレメントから、クライアントは、それらの“href”属性を通してURIのリストを選択することができる。URIのこのリストは、例えばリソースのタイプに応じて1つまたは複数の特定プッシュヘッダ内に置かれ、またはURIのリストとして単一のヘッダ内で連結され、または公知のAccept HTTPヘッダ内において“q”値に類似する優先順位付きリストとして編成され得る。   From those elements that may be declared in the HTML page, the client can select a list of URIs through their “href” attribute. This list of URIs is placed, for example, in one or more specific push headers depending on the type of resource, or concatenated in a single header as a list of URIs, or “q” in the well-known Accept HTTP header. “Can be organized as a prioritized list similar to values.

K個の追加のまたは関連するリソースを選択し特定するステップ505の後、クライアントはステップ504で特定された次のセグメントを得るHTTPリクエストを生成する。これはステップ506である。   After step 505 of selecting and identifying K additional or related resources, the client generates an HTTP request to obtain the next segment identified in step 504. This is step 506.

(リクエストラインを形成するHTTPメソッドの他に)HTTPリクエストを形成するために次のセグメントのURLまたは1つのバイトレンジを有するSegmentBase URLが使用される。   The URL of the next segment or the SegmentBase URL with one byte range is used to form an HTTP request (in addition to the HTTP method that forms the request line).

本発明により、追加のステップ507は、HTTPクライアント311のプッシュヘッダプロセッサ314に関してステップ505でDASH制御エンジン313により決定された将来のセグメント(すなわち追加のリソース)のリストを得ること、および、これらの将来のセグメントを定義するために特定プッシュヘッダをセットすることである。   In accordance with the present invention, the additional step 507 obtains a list of future segments (ie, additional resources) determined by the DASH control engine 313 at step 505 with respect to the push header processor 314 of the HTTP client 311 and these futures. Is to set a specific push header to define the segment.

クライアントがサーバにプッシュしてもらいたいこれらの将来セグメントを宣言する幾つかの仕方が、以下で記載されるように実装され得る。   Several ways of declaring these future segments that the client wants the server to push can be implemented as described below.

次のセグメントのためのリクエストラインを含むとともに追加セグメントのプッシュを提案するための特定プッシュヘッダを含むHTTPリクエストが準備状態になると、それはなおステップ507においてHTTPクライアント311によりサーバ300に送られる。   When an HTTP request containing a request line for the next segment and including a specific push header for proposing an additional segment push is ready, it is still sent to the server 300 by the HTTP client 311 in step 507.

ステップ508でサーバからレスポンスを受け取ると、クライアントは、特定プッシュヘッダで定義された追加セグメントをサーバが進んで送ることを示すプッシュアナウンスメント通知をサーバが送っているかどうかチェックする。このチェックはステップ509である。   Upon receiving a response from the server at step 508, the client checks whether the server is sending a push announcement notification indicating that the server is willing to send additional segments defined by the specific push header. This check is step 509.

プッシュアナウンスメント通知は、将来のセグメント1つあたりに1つずつ、1つまたは複数のPUSH_PROMISEフレームを用いて例えばHTTP/2で行われ得る。   Push announcement notifications can be made, for example, over HTTP / 2 using one or more PUSH_PROMISE frames, one for each future segment.

もしステップ504で選択されて要求された次のセグメントのためのデータが完全に受け取られ(対応するストリームはサーバにより閉じられる)プッシュアナウンスメント通知が受け取られていなければ(テスト509フォールス)、HTTPクライアント311は、要求する次のセグメントはその直後のセグメントであるということをDASH制御エンジンに知らせる。これはステップ510である。   If the data for the next segment selected and requested in step 504 has been completely received (the corresponding stream is closed by the server) and no push announcement notification has been received (test 509), the HTTP client 311 informs the DASH control engine that the next segment to request is the immediately following segment. This is step 510.

そうでなければ(テスト509トゥルー)、新しいHTTPリクエストを用いて要求する次のセグメントは、プッシュされると約束された最後のセグメントの直後のセグメントである。クライアント側でのアップデートはステップ511で行われる。その間に、ステップ512で、K個の将来のセグメントのためのデータがサーバからHTTPクライアントにより受け取られる。   Otherwise (test 509 true), the next segment to request with a new HTTP request is the segment immediately following the last segment promised to be pushed. Update on the client side is performed in step 511. Meanwhile, at step 512, data for K future segments is received by the HTTP client from the server.

ステップ510および512の次に、ストリーミングが終了するまでプロセスを反復するためにプロセスはステップ505にループバックする。   Following steps 510 and 512, the process loops back to step 505 to repeat the process until streaming is complete.

代わりに、クライアント310は、得るべきK個の将来のセグメントの処理をHTTPクライアント311において実装することができる。そのような実装では、ダウンロードするべき次の1つまたは複数のセグメントの決定を担当するのはHTTPクライアントである。次のセグメントを要求するときに、DASHアプリケーションレベルにおいて知覚されるレイテンシが低減されるように、HTTPクライアント311により受け取られたプッシュされたデータは、そのとき、DASH制御エンジン313のために予めクライアントキャッシュ(307)を満たすであろう。   Instead, the client 310 can implement processing of K future segments to obtain in the HTTP client 311. In such an implementation, it is the HTTP client that is responsible for determining the next segment or segments to download. The pushed data received by the HTTP client 311 is then pre-client cached for the DASH control engine 313 so that the latency perceived at the DASH application level is reduced when requesting the next segment. (307) will be satisfied.

特定の実施形態では、クライアントは、プッシュリクエストに関する確認応答データを受け取ると、例えば第2データまたは追加のリソースを得る自身のストラテジーを適合させるために、受け取った確認応答データを処理する(ステップ513)。そのような確認応答データの処理の例は、図11aから11eを参照することにより与えられる。   In certain embodiments, when the client receives the acknowledgment data for the push request, the client processes the received acknowledgment data, eg, to adapt its strategy of obtaining second data or additional resources (step 513). . An example of processing such acknowledgment data is given by referring to FIGS. 11a to 11e.

全てのHTTPヘッダとして、特定プッシュヘッダのシンタックスを見ると、それは{名前、値}ペアによって特定され、その名前と値とはコロン‘:’によって分離される。   Looking at the syntax of a specific push header as all HTTP headers, it is specified by a {name, value} pair, and the name and value are separated by a colon ':'.

ヘッダ名は、例えば“Push−Request”であり得、あるいはそれが他の既存のヘッダ名と衝突しなければ他の任意の名前であり得る。もしそれがアプリケーション専用ヘッダであるならば、名前はアプリケーション名から始まることができる:例えば様々なケースに釣り合う“DASH−Push−Request”または“HTML−Push−Request”。   The header name can be, for example, “Push-Request”, or any other name that does not conflict with other existing header names. If it is an application-specific header, the name can begin with the application name: for example, “DASH-Push-Request” or “HTML-Push-Request” that matches various cases.

以下で、アプリケーション関連のプレフィックス無しで一般的ヘッダが考察される。   In the following, generic headers are considered without application-related prefixes.

特定プッシュヘッダの目標は、1つまたは複数の一意リソース識別子(URI)またはロケータ(URL)などを定義して(サーバに)提供し、第1リソースを要求しているクライアントのために追加のリソースまたは関心の対象であるリソースの部分を特定することである。本発明により規定されるように、HTTPリクエストは、これらの追加リソースを決定するために自給自足的でなければならない、すなわち外部からのあるいは前後関係上の情報を用いずに決定しなければならない。   The specific push header goal is to define (provide to the server) one or more unique resource identifiers (URIs) or locators (URLs) and provide additional resources for the client requesting the first resource. Or identifying the part of the resource of interest. As specified by the present invention, HTTP requests must be self-sufficient to determine these additional resources, i.e., without external or contextual information.

追加リソースまたはリソースの部分を定義する種々の実施形態が考えられる。   Various embodiments are possible that define additional resources or portions of resources.

複数の実施形態において、特定プッシュヘッダは、これらの追加リソースを特定するためのURIまたはURLを明示的に含む。例えば:
<Push−Request:HTTP://server/path/segment−2.mp4>
In embodiments, the specific push header explicitly includes a URI or URL to identify these additional resources. For example:
<Push-Request: HTTP: // server / path / segment-2. mp4>

他の複数の実施形態では、それらは構築ルールを通して示され、そのルールは特定プッシュヘッダに挿入される。換言すれば、関心の対象である追加リソースのリストは構築ルールとして表現される。特定プッシュヘッダのシンタックスは、図6bに示されている通りであり得る。   In other embodiments, they are indicated through construction rules, which are inserted into specific push headers. In other words, the list of additional resources of interest is expressed as a construction rule. The syntax for a particular push header may be as shown in FIG. 6b.

ヘッダ650のヘッダ値は予約文字、例えば‘;’、により分離される3つの別々の部分から構成される。   The header value of the header 650 is composed of three separate parts separated by reserved characters, eg, ';'.

第1部分652は、2つの他の部分により定義される構築ルールがHTTPリクエストのどの部分に適用されなければならないかを定義する“サポート”である。特に、そのようなURIまたはURLは、HTTPリクエストにおいてセットされたリクエスト−URIの全部または一部であり得る。   The first part 652 is “support” that defines to which part of the HTTP request the construction rules defined by the two other parts must be applied. In particular, such a URI or URL may be all or part of the request-URI set in the HTTP request.

このように、“サポート”という語は、最初のリクエスト−URI自体を指すことができるし、HTTPリクエスト内に存在する別のHTTPヘッダを指すこともできる。   Thus, the term “support” can refer to the initial request-URI itself, or it can refer to another HTTP header present in the HTTP request.

第2部分653は、サポートからの抽出パターン、すなわちサポート部分652が指すURIまたはURLの変化部分、を定義する。   The second part 653 defines the extraction pattern from the support, ie the URI or URL changing part that the support part 652 points to.

例えば、リクエスト−URIなどの中の変化部分は、予約文字を用いて明示され得る。1つの変化形では、変化部分は、抽出して修正するべきリクエスト−URIなどの部分を示す正規表現として表現され得る。   For example, the change part in the request-URI or the like can be specified using a reserved character. In one variation, the variation portion may be expressed as a regular expression that indicates a portion such as a request-URI to be extracted and modified.

従って第2部分653は、変化部分情報を含んでいて、URIテンプレートの形をとることができる。   Accordingly, the second portion 653 includes changed portion information and can take the form of a URI template.

サポートが他の1つのHTTPヘッダであるときには、示すべき抽出パターンが無いことがあり、或いは、例880に関しては(以下を参照)、ヘッダ値全体が置換するべきパターンとして示される。   When the support is one other HTTP header, there may be no extraction pattern to show, or for example 880 (see below), the entire header value is shown as the pattern to replace.

最後の部分654は、第2部分653により定義される変化部分の後継者として適用するべき1つまたは複数の代入値を任意に含む。   The last part 654 optionally includes one or more substitution values to be applied as successors of the change part defined by the second part 653.

代入値は、値のコロン分離(または任意の専用セパレータ)リストを用いて、あるいは値のレンジを用いて、あるいはレンジのリストを用いても、定義され得る。そのような場合、プッシュヘッダプロセッサ321/358は、その値のリストまたは1つもしくは複数のレンジ全体を繰り返して代入値と同数のURLを推測するべきである。   An assigned value may be defined using a colon-separated list of values (or any dedicated separator), or using a range of values, or using a list of ranges. In such a case, the push header processor 321/358 should infer the same number of URLs as the substitution value by repeating the list of values or the entire range or ranges.

例えば、第1部分と第2部分とがマージされるとき:
<Push−Request:HTTP://server/path/segment−{1}.mp4;{2−5}>
ここで{1}は変化部分を定義し、{2−5}は代入値である。
For example, when the first part and the second part are merged:
<Push-Request: HTTP: // server / path / segment- {1}. mp4; {2-5}>
Here, {1} defines a change part and {2-5} is an assigned value.

3つの別々の部分を有する別の例は次の通りである:
<Push−Request:request−URI;segment−{1}.mp4;{2−5}>
ここで“request−URI”はサポートであり、“segment−{1}.mp4”は変化部分{1}を有するサポートにより定義されるURIの部分であり、{2−5}は代入値である。
Another example with three separate parts is as follows:
<Push-Request: request-URI; segment- {1}. mp4; {2-5}>
Here, “request-URI” is support, “segment- {1} .mp4” is the part of the URI defined by the support having the change part {1}, and {2-5} is an assigned value .

1つの問題は、構築ルールをなるべく一般的に構築することである。そのような構築のための例示的な重要な面は、適応ストリーミングと関連して提供される。   One problem is to build construction rules as generally as possible. An exemplary important aspect for such construction is provided in connection with adaptive streaming.

メディアセグメントまたはメディアコンテンツサブパーツを記述する種々の仕方:SegmentTemplate、SegmentBaseまたはSegmentList、がDASHで提供され、一度にこれら3つのうちの1つだけがRepresentation、AdaptationSetまたはPeriodエレメント内に存在する。   Various ways of describing media segments or media content subparts: SegmentTemplate, SegmentBase or SegmentList are provided in DASH, and only one of these three is present in the Representation, AdaptationSet or Period element at a time.

SegmentTemplateは、自身がダウンロードしたい次のセグメントに関してクライアントがサーバにヒントを提供するためのURIテンプレートを容易に構築する最も便利な方法である。その理由は、SegmentTemplateはマニフェストで定義されているセグメントURLのどの部分がまさに変化しようとしているかを、例えばリプリゼンテーションの一意識別子またはリプリゼンテーションの帯域幅などに依存して、明らかに示すことである。この場合、クライアントによるK個の将来のセグメントの特定は、DASH制御エンジン313で利用し得る、標準的テンプレート分解プロセス以外の能力を必要としない。   SegmentTemplate is the most convenient way to easily build a URI template for clients to provide hints to the server for the next segment that they want to download. The reason is that SegmentTemplate clearly indicates which part of the segment URL defined in the manifest is about to change, for example depending on the unique identifier of the representation or the bandwidth of the representation. is there. In this case, the identification of the K future segments by the client does not require any capabilities other than the standard template decomposition process that can be utilized by the DASH control engine 313.

これは図7aの例の場合である。URIテンプレート“mp4−live−$RepresentationID$−$Number$.m4s”から、同じRepresentation“h264bl_low”の現在のセグメントNの後のK個のセグメントを指定する構築ルールを定義するのは容易である。
<Push−Request:“mp4−live−h264bl_low−{1}.m4s”;{(N+1)−(N+K)}>
This is the case in the example of FIG. From the URI template “mp4-live- $ RepresentationID $-$ Number $ .m4s”, it is easy to define a construction rule that specifies K segments after the current segment N of the same Representation “h264bl_low”.
<Push-Request: “mp4-live-h264bl_low- {1} .m4s”; {(N + 1) − (N + K)}>

SegmentListアプローチに関しては、クライアントは、リストされているセグメントのURI間の繰り返すパターンを特定するためにMPDファイルを前処理し、次にセグメントURLのリストを表す一般的ルールを推測することができる。   With respect to the SegmentList approach, the client can preprocess the MPD file to identify a repeating pattern between the URIs of the listed segments, and then infer general rules that represent a list of segment URLs.

代わりに、MPDアナライザは、この作業をオフラインで行い、使用され得るURIテンプレートを提供するためにSegmentListに新しいエレメント、属性またはディスクリプタを付けることができる。これは、クライアント側での処理を促進するためである。エレメントまたは属性として、URIテンプレートはSegmentListエレメントの中で定義され得るであろう。ディスクリプタとして、それはSegmentListの親エレメントにおいて定義され得るであろう(例えばRepresentationエレメントのレベルで)。   Instead, the MPD analyzer can do this work offline and attach a new element, attribute or descriptor to the SegmentList to provide a URI template that can be used. This is to facilitate processing on the client side. As an element or attribute, a URI template could be defined within a SegmentList element. As a descriptor, it could be defined in the parent element of the SegmentList (eg at the level of the Representation element).

図10は、セグメントの記述のためにSegmentListエレメントを使用するMPDサンプル1000を提供する。SegmentListは、SegmentURLエレメントの列挙を含む。このMPDサンプルにおいて、同じビデオコンテンツのための2つの二者択一リプリゼンテーション1002、1003が同じAdaptationSet1001の中に記載されている。   FIG. 10 provides an MPD sample 1000 that uses a SegmentList element for segment description. SegmentList contains an enumeration of SegmentURL elements. In this MPD sample, two alternative representations 1002, 1003 for the same video content are described in the same AdaptationSet 1001.

各Representation内のSegmentURLのリストをパースすることにより、クライアントは、URLが、セグメントインデックスを除いて、大部分は一定であることを容易に判定することができる。   By parsing the list of SegmentURLs in each representation, the client can easily determine that the URL is largely constant except for the segment index.

次に、1005および1006に設けられている例示的URIテンプレートのような注釈が親Representationエレメントに付け加えられ得る(Representationあたりにせいぜい1つのSegmentListであるため)。(@templateURI属性内の)この注釈のおかげで、リスト内の1つまたは複数のセグメントをプッシュされるべきものとして示したいクライアントは、@templateURI値を特定プッシュヘッダ内にコピーアンドペーストするだけで良いであろう。   Next, annotations such as the exemplary URI templates provided at 1005 and 1006 can be added to the parent Representation element (since there is at most one SegmentList per Representation). Thanks to this annotation (in the @templateURI attribute), clients that want to indicate one or more segments in the list as to be pushed need only copy and paste the @templateURI value into the specific push header. Will.

クライアントのためのURIテンプレートの使用をさらに簡単化するために、得られた@templateURI1005および1006のどの部分が一方のRepresentationと他方のRepresentationとで異なっているかをチェックすることができる。その理由は、この例1000では、同じAdaptationSet内に複数のRepresentationがあることである。これは、今度は複数の変数または変化部分を伴うAdaptationSetレベルにおいて、他の1つのテンプレート属性の生成をもたらす(1007を参照)。   To further simplify the use of the URI template for the client, it is possible to check which portions of the resulting @templateURIs 1005 and 1006 are different for one representation and the other. The reason is that in this example 1000, there are multiple representations within the same AdaptationSet. This in turn leads to the generation of another template attribute at the AdaptationSet level with multiple variables or changing parts (see 1007).

従って、1つのレベルから次のレベルへと、@templateURI属性を漸次一般化してゆくことが可能である。従って、その一般化プロセスは、segmentURL値が完全に同様のままとなるまで、1つまたは複数の親セグメントにわたって反復され得る。   Therefore, it is possible to gradually generalize the @templateURI attribute from one level to the next level. Thus, the generalization process can be repeated over one or more parent segments until the segmentURL value remains completely similar.

@templateURI注釈1007に関しては、URIテンプレートが偶然に複数の変数または変化部分を含むことがあり得る。そのような場合、それらの変化部分をそれらのそれぞれの代入値との置換のためにどの順序で考察してゆかなければならないかを決定するのはクライアントである。従ってクライアントは、サーバがこれらの変化部分を考察するときにサーバを所定の順序に従わせるために、各変化部分を優先レベルと関連付けることができる。   With respect to the @templateURI annotation 1007, it is possible that a URI template happens to contain multiple variables or changes. In such a case, it is the client that decides in which order these changes must be considered for replacement with their respective assigned values. Thus, the client can associate each change portion with a priority level to cause the server to follow a predetermined order when the server considers these change portions.

任意に、@templateURI属性の他に、@templateURI属性の1つまたは複数の変化部分のために可能な値のレンジを示すために@templateValue属性も設けられ得る。可能な値のレンジは、MPDに基づいて、すなわち図10の例ではSegmentURLのリストに基づいて、決定される。   Optionally, in addition to the @templateURI attribute, an @templateValue attribute may also be provided to indicate a range of possible values for one or more variable portions of the @templateURI attribute. The range of possible values is determined based on the MPD, ie in the example of FIG. 10, based on the list of SegmentURLs.

例えば、注釈1005および1006の他に、同じ値のレンジ:@templateValue=“{1−6}”を定義するために注釈1005および1006の各々と共に@templateValue属性が宣言され得るであろう。   For example, in addition to annotations 1005 and 1006, the @templateValue attribute could be declared with each of annotations 1005 and 1006 to define the same value range: @templateValue = “{1-6}”.

AdaptationSetレベルに加えられた@templateURIに関して、@templateValue属性は次の値を取るであろう:@templateValue=“low:hd;{1−6}”。‘low’および‘hd’文字列はリプリゼンテーション識別子に対応する第1変数“level”のための可能な値をリストし、レンジ{1−6}はセグメントインデックスに対応する第2変数“nb”のための可能な値をリストする。   For @templateURI added to the AdaptationSet level, the @templateValue attribute will take the following values: @ templateValue = “low: hd; {1-6}”. The 'low' and 'hd' strings list possible values for the first variable “level” corresponding to the representation identifier, and the range {1-6} is the second variable “nb” corresponding to the segment index. List possible values for "".

図6bに示されている特定プッシュヘッダのシンタックスに戻り、一実施形態は、特定プッシュヘッダを記述するとき1つまたは複数の抽出パターン653を表現するために次の文法とURIテンプレートに関するRFC6570とを使用する。   Returning to the syntax of the specific push header shown in FIG. 6b, one embodiment describes an RFC 6570 for the following grammar and URI template to represent one or more extraction patterns 653 when describing a specific push header: Is used.

“プッシュヘッダ”は次のように定義され得る:
push_request=“Push−Request:“header_name”;“uri_template(“;”definition)
header_name=“URI”|HeaderName
A “push header” can be defined as follows:
push_request = “Push-Request:“ header_name ”;“ uri_template * (“;” definition)
header_name = “URI” | HeaderName

HeaderNameは、様々なHTTPバージョンの仕様の中の所定のヘッダ名に対応する。   HeaderName corresponds to a predetermined header name in the specifications of various HTTP versions.

uri_templateパラメータは、潜在的にエクステンションを伴ってRFC6570において定義されているURIテンプレートである。このテンプレートは、中括弧の間に定義される、その名前が数である変数または変化部分を含み得る。例えば:/server/video{1}.mp4は1つの変化するパラメータを有するuri_templateであり、/server/{1}/image{2}.jpgは2つの変化するパラメータを有する別のuri_templateである。   The uri_template parameter is a URI template that is defined in RFC 6570 with potential extensions. This template may contain variables or variable parts whose names are numbers, defined between curly braces. For example: / server / video {1}. mp4 is uri_template with one changing parameter, / server / {1} / image {2}. jpg is another uri_template with two changing parameters.

最も単純な場合は、サポート全体がが宣言された定義、すなわち代入値、に置き換えられるべきであることを意味する{1}に等しいuri_templateに対応する。さらに、宣言された変数を持たないuri_templateは、サポート652全体がuri_template値に取って代わられるべきであることを意味する。例えば、support=“URI”でuri_template=“/server/resource2.ext”であるならば、特定プッシュヘッダは、それ以上の処理無しで、クライアントにより提案されたリソースのためのURIが/server/resource2.ext“であることを示す。   The simplest case corresponds to a uri_template equal to {1} which means that the entire support should be replaced with the declared definition, ie the assigned value. Furthermore, uri_template without a declared variable means that the entire support 652 should be replaced by the uri_template value. For example, if support = “URI” and uri_template = “/ server / resource2.ext”, the URI for the resource proposed by the client is / server / resource2 without any further processing. . “ext”.

最後の任意定義パラメータは、1つまたは複数の代入値を宣言する。第1定義はuri_templateの第1変数のための1つまたは複数の代入値に対応し、第2定義は第2変数に対応する、などである。uri_templateパラメータ(すなわち、抽出パターン)と同数の定義パラメータ(すなわち、代入値のセット)があらねばならない。   The last optional parameter declares one or more assigned values. The first definition corresponds to one or more substitution values for the first variable of uri_template, the second definition corresponds to the second variable, and so on. There must be as many definition parameters (ie, sets of substitution values) as there are uri_template parameters (ie, extraction patterns).

従って、このような“定義”は1つまたは複数の値および/または1つまたは複数のリストおよび/または1つまたは複数のレンジを含む:
定義=値|リスト|レンジ
ここで値は、代入値を文字の列として表現する第1の可能性である;
リスト=値|レンジ(“:”値|レンジ)は、代入値を値(または値のレンジ)のコロン分離リストとして表現する第2の可能性である。コンマ文字は慣習的に同じヘッダのための数個の値を分離するために使用されるので、コンマ文字よりもコロン文字の方が選択されていることに注意されたい。
レンジ=“{“スタート”−“エンド”}”は、代入値をレンジとして表現する第3の可能性である。これは、‘スタート’と‘エンド’との間の、‘スタート’と‘エンド’との両方を含む、全ての値のリストと解釈されるべきである。これは、整数である値のためにだけ可能である。
Thus, such a “definition” includes one or more values and / or one or more lists and / or one or more ranges:
Definition = value | list | range where the value is the first possibility to represent the substitution value as a string of characters;
List = value | range * (“:” value | range) is the second possibility to represent the substitution value as a colon-separated list of values (or range of values). Note that the colon character is selected over the comma character because the comma character is conventionally used to separate several values for the same header.
Range = “{“ start ”−“ end ”}” is a third possibility to express the substitution value as a range. This should be interpreted as a list of all values between 'start' and 'end', including both 'start' and 'end'. This is only possible for values that are integers.

定義パラメータの中の可変値のフォーマッティングは、デフォルトのものである。値のレンジに関するフォーマッティング問題を防止するために、レンジ内の値のフォーマッティングは、特に先行するゼロに関して、スタート値およびエンド値のフォーマッティングに従うべきである。例えば、レンジが‘{8−10}’として明示されたならば、生成される値は:‘8、9、10’である。レンジが‘{08−10}’として明示されたならば、生成される値は:‘08、09、10’である。   The formatting of variable values in the definition parameters is the default. In order to prevent formatting problems with a range of values, the formatting of values within the range should follow the formatting of the start and end values, especially with respect to leading zeros. For example, if the range is specified as '{8-10}', the generated values are: '8, 9, 10'. If the range is specified as' {08-10} ', the generated value is: '08, 09, 10'.

注釈1007と関連して上で手短に紹介されたように、特定プッシュヘッダは、2つ以上の変化部分(すなわち、変数)を有するURIテンプレートを含み得る。特定プッシュヘッダにより定義された追加リソースがサーバによりプッシュされる順序は、その2つ以上の変化部分がサーバによりどのように連続して考察されるか(すなわち拡張されるか)に直接依存する。従って、この順序は特定プッシュヘッダから推測されるべきである。   As briefly introduced above in connection with annotation 1007, a particular push header may include a URI template having two or more change parts (ie, variables). The order in which additional resources defined by a particular push header are pushed by the server depends directly on how two or more of its changes are considered (ie, expanded) sequentially by the server. Therefore, this order should be inferred from the specific push header.

uri_templateルールにおいて変数を拡張するための例示的アルゴリズムは、変数の順序が提供されると仮定して、次の通りである:
1.uri_templateのリストの入手
− 第1変数拡張(提供された順序での第1)のために、特定プッシュヘッダで定義されているuri_templateが使用される。
− 次の1つまたは複数の変数拡張(提供された順序での)のために、先行する1つまたは複数の変数の拡張からもたらされるuri_templateのリストが使用される。
2.得られたリストの中の各uri_templateは、次のようにして得られたuri_templateのリストに置き換えられる:
− 拡張ステップで考察された変数の各値のために、uri_templateが複製され、URIテンプレートの中の変数は代入値のうちの1つに置き換えられる。
An exemplary algorithm for extending variables in uri_template rules is as follows, assuming that an order of variables is provided:
1. Get list of uri_template-For the first variable extension (first in the order provided), the uri_template defined in the specific push header is used.
-For the next one or more variable extensions (in the order provided), the list of uri_template resulting from the extension of the preceding one or more variables is used.
2. Each uri_template in the resulting list is replaced with a list of uri_template obtained as follows:
-For each value of the variable considered in the extension step, the uri_template is duplicated and the variable in the URI template is replaced with one of the assigned values.

これは、URIの(または、ヘッダ値の)最終リストにおいて、その順序において第1の変数(例えば‘1’により定義される)が最もゆっくり変化し、その順序において最後の(すなわち、最大の数により定義される)変数が最も急速に変化するということを意味する。 This is because in the final list of URIs (or header values), the first variable in that order (eg, defined by '1') changes most slowly, and the last (ie, the largest number) in that order Means that the variable changes most rapidly.

例えば、構築ルール<‘Push−Request:URI;{1}−{2};a:b;1:2’>は次の順序リストをもたらす:
− ‘a−1’
− ‘a−2’
− ‘b−1’
− ‘b−2’
For example, the construction rule <'Push-Request: URI; {1}-{2}; a: b; 1: 2'> yields the following ordered list:
-'A-1'
-'A-2'
-'B-1'
-'B-2'

構築ルール<‘PushRequest:URI;{2}−{1};a:b;{1−3}’>は下記の順序リストをもたらす:
− ‘a−1’
− ‘b−1’
− ‘a−2’
− ‘b−2’
− ‘a−3’
− ‘b−3’
The construction rule <'PushRequest: URI; {2}-{1}; a: b; {1-3}'> yields the following ordered list:
-'A-1'
-'B-1'
-'A-2'
-'B-2'
-'A-3'
-'B-3'

代わりに、複数の変数のための処理および置換順序は特定のオペレータとして表現され得る。RFC6570は、オペレータ拡張のために幾つかの文字を確保している。一実施形態では、‘@’文字は順序を示すために使用され得る:オペレータの値が大きいほど、処理順序は大きくなる。この代替実施形態において、上の2つの例は次のようになる:   Alternatively, the processing and replacement order for multiple variables can be expressed as a specific operator. RFC 6570 reserves several characters for operator expansion. In one embodiment, the '@' character may be used to indicate the order: the greater the operator value, the greater the processing order. In this alternative embodiment, the above two examples are as follows:

構築ルール<Push−Request:URI;{foo@1}−{bar@2};a:b;1:2>、“foo”および“bar”は次の順序で値“a”および“b”ならびに“1”および“2”にそれぞれ置き換えられる変数名である:
− ‘a−1’
− ‘a−2’
− ‘b−1’
− ‘b−2’
Construction rule <Push-Request: URI; {foo @ 1}-{bar @ 2}; a: b; 1: 2>, “foo” and “bar” are values “a” and “b” in the following order: And variable names that are replaced by "1" and "2" respectively:
-'A-1'
-'A-2'
-'B-1'
-'B-2'

構築ルール<Push−Request:URI;{foo@2}−{bar@1};a:b;{1−3}>は次の順序リストをもたらすであろう:
− ‘a−1’
− ‘b−1’
− ‘a−2’
− ‘b−2’
− ‘a−3’
− ‘b−3’
The construction rule <Push-Request: URI; {foo @ 2}-{bar @ 1}; a: b; {1-3}> will yield the following ordered list:
-'A-1'
-'B-1'
-'A-2'
-'B-2'
-'A-3'
-'B-3'

上の例はHTTPヘッダにおいて単一の特定プッシュヘッダを用いるけれども、他の実施形態は2つ以上のプッシュヘッダを用いることができる。   Although the above example uses a single specific push header in the HTTP header, other embodiments can use more than one push header.

例えば、クライアントが様々なタイプの数個のリソースに関心を持つときおよび/または構築ルールを設けることがあまりに困難であるとき、それは特定プッシュヘッダの複数のインスタンスを用いると決定することができる。   For example, when a client is interested in several resources of various types and / or when it is too difficult to provide construction rules, it can be determined to use multiple instances of a particular push header.

一例として、もしウェブページのダウンロードを加速することが求められているならば、クライアントはそのウェブページを構成するサブリソースの種類ごとに1つのプッシュヘッダを生成することができる:イメージに1つ、スタイルシートに1つ、スクリプトコードに1つ、など。   As an example, if it is desired to accelerate the download of a web page, the client can generate one push header for each type of sub-resource that makes up the web page: one for the image, One for the style sheet, one for the script code, etc.

そのような状況において、各特定プッシュヘッダの値は、幾つかのタイプのサブリソースをフィルタリングするフィルタリングパラメータのように振る舞う。サブリソースが参照されるメインリソースはHTTPリクエストによって明示的に要求されたリソース(すなわち、request−URIのリソース)であり得るということに留意されたい。   In such a situation, the value of each specific push header behaves like a filtering parameter that filters several types of sub-resources. Note that the main resource to which the sub-resource is referenced may be a resource explicitly requested by the HTTP request (ie, a request-URI resource).

プッシュヘッダの複数のインスタンスを持てばURI/URLの付加的なリストがもたらされ、各インスタンスが、プッシュするべきリソースの別々のセットを定義するであろう。   Having multiple instances of the push header will result in an additional list of URI / URLs, each instance defining a separate set of resources to push.

特定プッシュヘッダの複数のインスタンスを正当化する他の1つの場合は、クライアントが最初のリクエスト内の様々なサポートからの部分、例えばリクエスト−URIの一部分およびレンジヘッダ内のバイトレンジ値、を改変したいとき、あるいは2つの異なるヘッダの改変を示すとき、を含む。そのような状況では、クライアントは2つ(あるいはもっと多く)の特定プッシュヘッダを、一方はURI改変のためにおよび他方はレンジ改変のために、置くことができる。処理されたヘッダは、新しいURIと関連する新しいバイトレンジとを有する1つの複合インスタンスに帰着するであろう。   In one other case that justifies multiple instances of a particular push header, the client wants to modify the parts from the various supports in the initial request, eg the request-URI part and the byte range value in the range header Or when indicating two different header modifications. In such a situation, the client can place two (or more) specific push headers, one for URI modification and the other for range modification. The processed header will result in one composite instance with a new URI and a new byte range associated with it.

複数のプッシュヘッダに基づく複数ヘッダ改変については、各プッシュヘッダ処理は、対応する代入値に対応するURI/ヘッダのセットを生成し、リソースの最終のリストは生成されたセットの全ての可能な組み合わせを、すなわちヘッダの各URI/セットのための代入値同士の全ての可能な組み合わせを設けることにより得られるということに留意するべきである。   For multiple header modifications based on multiple push headers, each push header process generates a set of URI / headers corresponding to the corresponding substitution value, and the final list of resources is all possible combinations of the generated sets Note that by providing all possible combinations of substitution values for each URI / set of the header.

複数の実施形態において、特定プッシュヘッダはuri_template仕様に代わるもののために使用され得る。   In embodiments, a specific push header may be used for an alternative to the uri_template specification.

uri_templateパラメータが相対URIを示すとき、プッシュヘッダプロセッサは原リクエスト−URIからの相対パスを考慮して絶対URIを構築しなければならない。   When the uri_template parameter indicates a relative URI, the push header processor must construct an absolute URI taking into account the relative path from the original request-URI.

しかし、複数の実施形態において、ベースURIまたは別のベースURIは、別の特定ヘッダにおいてまたはPush−Requestヘッダの中のパラメータとして明示され得るであろう。これは、例えば、複数のBaseURLがマニフェストにおいて宣言されるDASHにおいて有益であり得る。それゆえ、もしクライアントが幾つかのリソースをプッシュしてもらいたければ、それは特定プッシュヘッダと共に第1ベースURLを用いて第1サーバを試験することができ、もしプッシュ約束が受け取られなければ、それは第2サーバがその特定プッシュヘッダをサポートするかどうかを試験するために次のリクエストでベースURLを変えることができる。   However, in embodiments, the base URI or another base URI could be specified in another specific header or as a parameter in the Push-Request header. This can be useful, for example, in DASH where multiple BaseURLs are declared in the manifest. Therefore, if the client wants to push some resources, it can test the first server using the first base URL with a specific push header, and if no push commitment is received, it The base URL can be changed in the next request to test whether the second server supports that particular push header.

特定プッシュヘッダにおいてベースURIの変更を示す例示的な仕方はuri_templateパラメータの後にセットされる追加のパラメータ、“var_base”、を含む。var_baseパラメータは、新しいベースURI値を宣言する。   An exemplary way of indicating a base URI change in a specific push header includes an additional parameter, “var_base”, set after the uri_template parameter. The var_base parameter declares a new base URI value.

例えば、HTTPリクエストのリクエストラインが
GET/server1/video/segment−1.mp4
であるならば、特定プッシュヘッダは次のようであり得る
<Push−Request:URI;segment−{1}.mp4;{2−4};var_base=/AnotherServer/video/>
For example, the request line of the HTTP request is GET / server1 / video / segment-1. mp4
If so, the specific push header may be: <Push-Request: URI; segment- {1}. mp4; {2-4}; var_base = / AnotherServer / video />

この構築ルールは追加リソースの次のリストを生成する:
http://AnotherServer/video/segment−2.mp4
http://AnotherServer/video/segment−3.mp4
http://AnotherServer/video/segment−4.mp4
This construction rule generates the following list of additional resources:
http: // AnotherServer / video / segment-2. mp4
http: // AnotherServer / video / segment-3. mp4
http: // AnotherServer / video / segment-4. mp4

あるいは、URI−template RFC6570を用いてuri_templateパラメータを宣言する代わりに、正規表現が代わりに設けられ得る。   Alternatively, instead of declaring the uri_template parameter using URI-template RFC 6570, a regular expression may be provided instead.

インタオペラビリティ目的を処理する複数の実施形態においては、特定プッシュヘッダは2つの別々のヘッダに分割される:
− 第1のものはクライアントの興味の対象であるリソースを示す。これは、上に記載された特定プッシュヘッダである;
− 第2のものは、クライアントがサーバプッシュを受け入れることをサーバに示す。これは接続セットアップ時に取り決められ得るのであるが、クライアントにとっては、プッシュされたデータをそれが何時受け入れ得るかということとプッシュをキャンセルするより大きなリスクが何時存在するか(例えばクライアントが頻繁な切り替えを伴うよく確立されていないビデオモードを経験する時)ということとをサーバに告げることは有益であろう。
In embodiments that handle interoperability purposes, the specific push header is split into two separate headers:
The first indicates the resource that the client is interested in. This is the specific push header described above;
-The second indicates to the server that the client accepts the server push. This can be negotiated during connection setup, but for the client, when it can accept the pushed data and when there is a greater risk of canceling the push (e.g. the client switches frequently It would be beneficial to tell the server that it is (when experiencing a well-established video mode).

この第2ヘッダは、プッシュをサポートしないネットワークインターメディアリのためにも有益であろう(例えばCDNにおいて):それらは、依然として第1プッシュヘッダをネットワークのエッジに近い何らかのリソースをプリフェッチするためのヒントとして解釈することができるであろう。   This second header may also be useful for network intermediaries that do not support push (eg, in a CDN): they are still a hint for prefetching some resource close to the edge of the network with the first push header. Could be interpreted as

本発明の特定プッシュヘッダは、ストリーミングクライアントが様々なDASH状況を改善するのに役立つであろう:
− 例えば、クライアントが次のセグメントを予想したいとき;
− あるいはクライアントがビデオにおける時間オフセットを探したいとき;
− あるいは所与の期間にサーバが次のセグメントを送るとクライアントが信頼しているとき;
− あるいはクライアントが切り替えを予想しているとき;
− あるいはクライアントが関連付けられているリソースに関心を持っているとき;
− あるいはクライアントが多重化されていないオーディオ−ビデオセグメントを要求するとき。そのような場合、ビデオセグメントを要求するとき、それは対応するオーディオセグメントに対する関心を示し得る。
The specific push header of the present invention will help streaming clients to improve various DASH situations:
-For example, when the client wants to predict the next segment;
-Or when the client wants to find a time offset in the video;
-Or when the client trusts that the server will send the next segment in a given period of time;
-Or when the client expects to switch;
-Or when the client is interested in the associated resource;
Or alternatively when the client requests an unmultiplexed audio-video segment. In such cases, when requesting a video segment, it may indicate interest in the corresponding audio segment.

別の実施形態では、代入値は他の専用ヘッダ(下記の“Push−Values”)に置かれることができ、そのときにはヘッダの下記のセット(ここでのヘッダ名は単なる例である)をもたらすであろう:
Push−Request:header_name“;”uri_template
Push−Values:definition[(“;”definition)]
この別の実施形態に関しては、下記の例850は次のように書き換えられるであろう:
GET/server/video/Rep−R1/segment−01.mp4
Push−Request:URI;segment−{1}.mp4;
Push−Values:02:10
さらに、下記の例865は次のようになるであろう:
GET/server/video/Rep−R1/segment−01.mp4
Push−Request:URI;Rep−{1}/segment−{2}.mp4
Push−Values:R1:R2;{01−03}
In another embodiment, the substitution value can be placed in other dedicated headers (“Push-Values” below), which results in the following set of headers (header names here are just examples) Will:
Push-Request: header_name “;” uri_template
Push-Values: definition [ * (“;” definition)]
For this alternative embodiment, Example 850 below would be rewritten as follows:
GET / server / video / Rep-R1 / segment-01. mp4
Push-Request: URI; segment- {1}. mp4;
Push-Values: 02:10
Further, Example 865 below would be as follows:
GET / server / video / Rep-R1 / segment-01. mp4
Push-Request: URI; Rep- {1} / segment- {2}. mp4
Push-Values: R1: R2; {01-03}

あるいは、プッシュ特定ヘッダにおいて2つ以上の変数パラメータが宣言されているとき、各変数パラメータのための代入値はそれ自身の“Push−Values”ヘッダにおいて宣言され得る。そのような場合、“Push−Values”ヘッダは、値もしくは値のリストもしくは値のレンジが後に続く変数パラメータ名を含むべきである。例えば:
GET/server/video/Rep−R1/segment−01.mp4
Push−Request:URI;Rep−{var1}/segment−{var2}.mp4
Push−Values:var1=R1:R2
Push−Values:var2={01−03}
Alternatively, when more than one variable parameter is declared in the push specific header, the assigned value for each variable parameter may be declared in its own “Push-Values” header. In such a case, the “Push-Values” header should include a variable parameter name followed by a value or a list of values or a range of values. For example:
GET / server / video / Rep-R1 / segment-01. mp4
Push-Request: URI; Rep- {var1} / segment- {var2}. mp4
Push-Values: var1 = R1: R2
Push-Values: var2 = {01-03}

他の例示的書き換えは、上の書き換え例から容易に推測され得る。   Other exemplary rewrites can be easily inferred from the above rewrite example.

別の代案では、図6bに示されているプッシュ特定ヘッダの各部分は対応する別々のヘッダ内に置かれ得る;例えば(ヘッダ名は単なる例である):
Push−Support:URI
Push−Pattern:segment−{var}.mp4
Push−Values:var=02:10
In another alternative, each portion of the push specific header shown in FIG. 6b may be placed in a corresponding separate header; for example (header names are just examples):
Push-Support: URI
Push-Pattern: segment- {var}. mp4
Push-Values: var = 0: 10

図7a、7bおよび8と関連して、つぎに、URIテンプレートを使用するDASHのための特定プッシュヘッダの例が記載される。   In conjunction with FIGS. 7a, 7b and 8, an example of a specific push header for DASH using a URI template will now be described.

図7aおよび7bは、DASH標準規格を使用するHTTPを通しての適応ストリーミングの文脈における本発明の使用の例を提供する。図7aは、各メディアセグメントをどこ(すなわちURI)でダウンロードするべきかをストリーミングクライアントに示すSegmentTemplateエレメント701を含む例としてのMPD700である。クライアントは、希望されたまたは可能な空間解像度および帯域幅に依存して2つの代替ビデオリプリゼンテーション702および703のいずれかを選択することができる。   Figures 7a and 7b provide an example of the use of the invention in the context of adaptive streaming over HTTP using the DASH standard. FIG. 7a is an example MPD 700 that includes a SegmentTemplate element 701 that indicates to the streaming client where each media segment should be downloaded (ie, a URI). The client can select one of two alternative video representations 702 and 703 depending on the desired or possible spatial resolution and bandwidth.

図7bは、本発明が実装されるときの、クライアントおよびサーバがHTTP/2を用いて通信すると仮定する、クライアント−サーバのエクスチェンジを記述する。   FIG. 7b describes a client-server exchange assuming that the client and server communicate using HTTP / 2 when the present invention is implemented.

クライアント750は初めにステップ752でHTTP GETリクエストを介してサーバ751にMPD、ストリーミングマニフェスト、を要求する。サーバはステップ753でMPDファイルをクライアントに返すためにHTTPレスポンスを送る。   The client 750 first requests an MPD and a streaming manifest from the server 751 via an HTTP GET request in step 752. In step 753, the server sends an HTTP response to return the MPD file to the client.

MPDを受け取ると、クライアントは、自身のメディアデコーダをセットアップするための初期化情報を特定するためにステップ754でそれをパースする。   Upon receiving the MPD, the client parses it at step 754 to identify initialization information for setting up its media decoder.

次にステップ755で、クライアントは、この初期化セグメントを得るために別のHTTP GETリクエストを送る。サーバは、HTTPレスポンスにおいて、要求された初期化セグメントファイルを提供する。これはステップ756である。   Next, in step 755, the client sends another HTTP GET request to obtain this initialization segment. The server provides the requested initialization segment file in the HTTP response. This is step 756.

その間にまたは連続して(ステップ757)、クライアントは自身の好み/特性に応じて適切なリプリゼンテーションを特定する。このステップは、クライアントが、ビデオを読み始めるのに必要な第1メディアセグメントだけではなくてビデオを読み続けるためにダウンロードするべき次のセグメント、(もしリプリゼンテーション切り替え決定が行われなければ)普通は同じリプリゼンテーションからの後続のメディアセグメント、をも特定することを可能にする。クライアントは、この/これらの後続の1つまたは複数のセグメントのための1つまたは複数のURIを、マニフェストを用いて、推測することができる。   During or in succession (step 757), the client identifies an appropriate representation according to its preference / characteristics. This step is not only the first media segment the client needs to start reading the video, but the next segment to download to continue reading the video, usually (if no representation switch decision is made) Allows to identify subsequent media segments from the same representation. The client can infer one or more URIs for this / these subsequent one or more segments using the manifest.

次にステップ758で、クライアントは、ビデオを表示し始めるために第1メディアセグメントをサーバに要求する。   Next, at step 758, the client requests the first media segment from the server to begin displaying the video.

本発明を用いて、クライアントは、リクエスト758に、ダウンロードするべき次のメディアセグメントのための1つまたは複数のURIを挿入する。この挿入は専用のHTTPプッシュヘッダ(例えばリクエスト758内の“Push−Request”ヘッダ)に行われる。この特定のHTTPヘッダのための値の例は、図8と関連して以下で提供される。   Using the present invention, the client inserts in request 758 one or more URIs for the next media segment to be downloaded. This insertion is performed in a dedicated HTTP push header (eg, “Push-Request” header in request 758). An example value for this particular HTTP header is provided below in connection with FIG.

リクエスト758に応答して、本発明をサポートし、従って特定プッシュヘッダを理解するサーバは、自身がプッシュヘッダを理解することをクライアントに知らせることができるとともにそれ(サーバ)がクライアントへのデータのプッシュを主導することをアナウンスする。これは、サーバ開始ストリーム識別子をクライアントに提供するサーバにより送られるPUSH PROMISEフレーム759の目的である。   In response to request 758, a server that supports the present invention and thus understands the specific push header can inform the client that it understands the push header and it (the server) pushes data to the client. Announce to lead. This is the purpose of the PUSH PROMISE frame 759 sent by the server that provides the server start stream identifier to the client.

サーバは、さらに、ストリーム識別子としてのGETリクエスト758のストリーム識別子と共に、GETリクエストの目的である要求された第1セグメントを1つまたは複数のDATAフレーム760で送る。   The server further sends the requested first segment, which is the purpose of the GET request, in one or more DATA frames 760 along with the stream identifier of the GET request 758 as a stream identifier.

最後に、ステップ759で交換されるサーバ開始ストリーム識別子と関連して、サーバは、1つまたは複数のDATAフレーム761を通して、リクエスト758の特定ヘッダにおいて示されているメディアセグメントに対応するデータをプッシュする。   Finally, in conjunction with the server start stream identifier exchanged in step 759, the server pushes data corresponding to the media segment indicated in the specific header of request 758 through one or more DATA frames 761. .

特定の実施形態では、サーバは、クライアントからのプッシュリクエスト、すなわち特定された追加リソースをプッシュすることを求める要求、特定されたプッシュポリシー、ストラテジー、もしくはディレクティブを使用することを求めるリクエスト、または追加のリソースをプッシュしないことを求めるリクエスト、の受信を確認する。そのような確認応答はプッシュ約束メッセージのHTTPヘッダで送信され得る。それは、DASHレスポンスヘッダプロセッサ386がサーバにより用いられるプッシュポリシーをDASH制御エンジン313に知らせることを可能にする。   In certain embodiments, the server requests a push request from a client, i.e., a request to push specified additional resources, a request to use a specified push policy, strategy, or directive, or an additional request. Confirm receipt of a request that does not push the resource. Such an acknowledgment may be sent in the HTTP header of the push commitment message. It allows the DASH response header processor 386 to inform the DASH control engine 313 of the push policy used by the server.

図11aから11eは、サーバ1101がクライアント1100から受け取られたプッシュポリシーの受信を確認して自身が適用しようとするかまたは適用できるプッシュポリシーを後者に知らせることを可能にする、サーバ1101およびクライアント1100の間のプッシュポリシー管理の幾つかの例を示す。これらの例は、MPEG DASHのような、HTTPでの適応ストリーミングに基づく(ストリーミングマニフェストに基づく方法)。   FIGS. 11a to 11e allow server 1101 and client 1100 to confirm receipt of a push policy received from client 1100 and inform the latter of the push policy that it is trying to apply or can apply. Some examples of push policy management during These examples are based on adaptive streaming over HTTP, such as MPEG DASH (streaming manifest based method).

図11aは、ストリーミングマニフェスト(DASHの場合にはMPD)に対する最初のリクエスト1102でのプッシュポリシーの指示のクライアント1100による送信を示す。前述のように、この指示は専用のHTTPプッシュヘッダを介して伝えられ得る。   FIG. 11a shows the transmission by the client 1100 of the push policy indication in the initial request 1102 for the streaming manifest (MPD in the case of DASH). As mentioned above, this indication can be conveyed via a dedicated HTTP push header.

受け取ると、サーバ1101はそのリクエストをステップ1103で処理する、すなわちサーバはクライアント1100に提供されるべきリソース(MPD)を特定する。次に、サーバ1101は、参照番号1102の最初のリクエストのためのリターンコードを伴う自身のレスポンスをステップ1104で準備する。従って、もし要求されたリソースが利用できるならば、リターンコードはHTTPコード200である。   Upon receipt, server 1101 processes the request at step 1103, ie, the server identifies a resource (MPD) to be provided to client 1100. Next, server 1101 prepares its response with a return code for the first request with reference number 1102 at step 1104. Thus, if the requested resource is available, the return code is the HTTP code 200.

並行して、サーバ1101は、専用HTTPプッシュヘッダに含まれるプッシュポリシー指示を処理する。もしサーバがこのヘッダを理解できて、提案されたプッシュポリシーを処理できるならば、それは、クライアントにより提案されたプッシュポリシーの受信を確認する。これは、参照番号1104のレスポンスに確認応答データを加えることにより、例えば参照番号1102のリクエストと同じポリシー値を有する同じ専用HTTPプッシュヘッダを加えることにより、行われ得る(そのような場合、プッシュ確認応答データはプッシュポリシーデータと同じである)。   In parallel, the server 1101 processes the push policy instruction included in the dedicated HTTP push header. If the server understands this header and can process the proposed push policy, it confirms receipt of the proposed push policy by the client. This can be done by adding acknowledgment data to the response of reference number 1104, eg by adding the same dedicated HTTP push header having the same policy value as the request of reference number 1102 (in such a case, push confirmation Response data is the same as push policy data).

これは、クライアントに対して、提案されたプッシュポリシーをサーバが進んで使用することを示す。   This indicates to the client that the server is willing to use the proposed push policy.

従って、そのような場合、参照番号1104の応答でのプッシュポリシー確認の後、サーバは自身がクライアントにプッシュしようとしている追加データをアナウンスし始める。これは、例えば、HTTP/2からのPUSH_PROMISEフレームを用いることにより、行われ得る(DASHの場合、セグメントあたりに1つのPUSH_PROMISEフレーム)。   Thus, in such a case, after confirming the push policy in response to reference number 1104, the server begins to announce additional data that it is about to push to the client. This can be done, for example, by using a PUSH_PROMISE frame from HTTP / 2 (one PUSH_PROMISE frame per segment for DASH).

標準規格ベースで、サーバは、好ましくは、参照番号1102のリクエストでクライアントにより要求されたデータ(すなわち、MPDファイル)を自身の参照番号1104のレスポンスに含めるということに留意するべきである。   It should be noted that on a standards basis, the server preferably includes the data requested by the client in the request with reference number 1102 (ie, the MPD file) in its reference number 1104 response.

そのように生成された参照番号1104のHTTPレスポンスがステップ1105でクライアントに送り返されてクライアントにより処理されるのと同時に、サーバは、アナウンスされた追加データをクライアントに送るために使用されるデータストリームを準備し始める(ステップ1106)(通例、HTTP/2では、約束されたリソースあたりに1データフレーム、すなわちDASHの場合には1セグメント)。   At the same time as the HTTP response so generated with reference number 1104 is sent back to the client in step 1105 and processed by the client, the server sends the data stream used to send the announced additional data to the client. Start preparing (step 1106) (typically in HTTP / 2 one data frame per promised resource, ie one segment in the case of DASH).

最後に、クライアントはステップ1107の間にメディアプレゼンテーションのために第1セグメントを受け取り始め、同時に参照番号1102のリクエストに応じて送られたMPDを処理し、このようにしてネットワークトラフィックを節約し送信遅延を小さくする。   Finally, the client starts receiving the first segment for media presentation during step 1107 and simultaneously processes the MPD sent in response to the request with reference number 1102, thus saving network traffic and transmission delay Make it smaller.

代わりに、サーバにより送られる確認応答データは例えば“OK”のような単純な値を有する別の専用HTTPプッシュヘッダを通してシグナリングされ得るということに留意するべきである。   Instead, it should be noted that the acknowledgment data sent by the server may be signaled through another dedicated HTTP push header having a simple value such as “OK”.

本発明の実施形態を実装するサーバに関しては、クライアントにより提案されたプッシュポリシーの受信を、サーバがそれをサポートしてそれを適用するときに、確認することが推薦され得る。実際、これは、クライアントにとっては、サーバにより送られたPUSH_PROMISEフレームを受け入れるか否かを容易に決定するために適切な情報である。   For a server implementing an embodiment of the present invention, it may be recommended to confirm receipt of a push policy proposed by a client when the server supports it and applies it. In fact, this is appropriate information for the client to easily decide whether to accept the PUSH_PROMISE frame sent by the server.

クライアントとサーバとの間のこの第1ラウンドトリップの後で、クライアントは、例えばステップ1106および1107の間にプッシュされたセグメントの次のセグメントに対するリクエストを用いて、メディアプレゼンテーションのストリーミングを続けるためにリクエストを提出し続ける(ステップ1108)。このリクエストの中で、クライアントは、前のリクエストと同じプッシュポリシー指示を有する専用HTTPプッシュヘッダを参照番号1108のリクエストに加えることによって自身が同じプッシュポリシーを維持していることを確認することができる。   After this first round trip between the client and server, the client requests to continue streaming the media presentation, for example using a request for the next segment of the segment pushed during steps 1106 and 1107. (Step 1108). Within this request, the client can verify that it maintains the same push policy by adding a dedicated HTTP push header with the same push policy indication as the previous request to the request with reference number 1108. .

サーバエンドにおいて、受け取られたリクエストの処理(ステップ1109)は、要求されたリソースが利用し得るか否かを確認する(例えばHTTPステータスコード200OK)とともに専用HTTPプッシュヘッダを用いて自身が適用しているプッシュポリシーを確認するレスポンスに帰着するとともに、プッシュされるべき追加データのアナウンスおよび要求されたセグメントデータの送信に帰着する(データの実際のプッシュは表されていないがレスポンス1109の後に続く)。   At the server end, the processing of the received request (step 1109) confirms whether or not the requested resource is available (for example, HTTP status code 200OK) and applies itself using a dedicated HTTP push header. Result in a response confirming the push policy that is being sent, and an announcement of additional data to be pushed and transmission of the requested segment data (the actual push of data is not represented but follows response 1109).

図11bはプッシュポリシー通知の確認応答の例を示し、これによりサーバはクライアントにより提案されたプッシュポリシーを自身が実行できないことをクライアントに知らせる。   FIG. 11b shows an example of an acknowledgment of a push policy notification, whereby the server informs the client that it cannot execute the push policy proposed by the client.

クライアントにより提案されたプッシュポリシー指示をサーバがサポートしない場合、それは単にそれを無視することができる。   If the server does not support the push policy indication proposed by the client, it can simply ignore it.

しかし、サーバは、自身がいかなるプッシュポリシーも使用しないとクライアントに警告するのが有益であろう。これはクライアントにとっては自身の将来のリクエストを予定するために有益な情報である。実際、クライアントは全てのセグメントを順々に要求しなければならないであろう。   However, it may be beneficial for the server to alert the client that it does not use any push policy. This is useful information for clients to schedule their future requests. In fact, the client will have to request all segments in turn.

その目的のために、サーバは、プッシュが行われないということを示す特定のプッシュディレクティブ、例えばタイプ“push−none”の、値を伴わないプッシュポリシー(または、図12bで参照番号1231として記載されているもの)、を使用することができる。   For that purpose, the server is described with a specific push directive indicating that no push will take place, for example a push policy without a value of type “push-none” (or as reference number 1231 in FIG. 12b). Can be used).

図示されているように、第1ステップは、ストリーミングマニフェスト(DASHの場合にはMPD)に対する最初の要求1111におけるプッシュポリシーの指示のクライアント1100による送信に向けられている。前述されたように、この指示は専用HTTPプッシュヘッダを介して伝えられ得る。   As shown, the first step is directed to the client 1100 sending a push policy indication in the first request 1111 for the streaming manifest (MPD in the case of DASH). As described above, this indication can be conveyed via a dedicated HTTP push header.

受け取ると、サーバ1101は、ステップ1112でそのリクエストを処理する、すなわちサーバはクライアント1100に提供されるべきリソース(MPD)を特定する。次に、サーバ1101は、参照番号1102の最初のリクエストに対するリターンコードを伴う自身のレスポンスをステップ1113で準備する。従って、もしその要求されたリソースが利用できるならば、リターンコードはHTTPコード200である。   Upon receipt, server 1101 processes the request at step 1112, ie, the server identifies a resource (MPD) to be provided to client 1100. Next, the server 1101 prepares its own response with a return code for the first request with the reference number 1102 in step 1113. Thus, if the requested resource is available, the return code is the HTTP code 200.

この例ではサーバ1101はクライアントにより提案されたプッシュポリシーを実行できないと仮定されているので、サーバ1101はクライアントに対してその提案されたプッシュポリシーを使用しないことを示す。これは、図11bに示されているように(参照番号1113)プッシュが行われないことを示す特定のプッシュディレクティブを使用することによって行われ得る。   In this example, it is assumed that server 1101 cannot execute the push policy proposed by the client, thus indicating that server 1101 does not use the proposed push policy for the client. This can be done by using a specific push directive that indicates that no push is performed (reference numeral 1113) as shown in FIG. 11b.

そのような情報を受け取ると(ステップ1114)、クライアント1100は全てのセグメントを1つずつステップ1115から要求しなければならないことを知る。   Upon receiving such information (step 1114), client 1100 knows that all segments must be requested from step 1115 one by one.

任意に、それは、自身のリクエストにおいて同じ“無プッシュ”ポリシー指示を専用HTTPプッシュヘッダにセットすることによっても(1115で示されているように)、サーバからリソースがプッシュされることを自身が期待していないことを確認することができる。   Optionally, it expects the resource to be pushed from the server by setting the same “no push” policy indication in its own request in the dedicated HTTP push header (as indicated by 1115). You can confirm that you have not.

次に、サーバ1101はステップ1116で受け取ったリクエストを処理し、ステップ1117でそのリクエストに対して、“無プッシュ”ポリシーを確認するとともにリクエストに対応するデータを送信することによって、応答する。これらの2つのステップは、ストリーミングセッションの終了まで反復される。   Next, the server 1101 processes the request received at step 1116 and responds to the request by confirming the “no push” policy and transmitting data corresponding to the request at step 1117. These two steps are repeated until the end of the streaming session.

代わりに、サーバは、確保されている情報コード(例えば103、“非サポートプッシュポリシーモード”をクライアントに知らせる)を伴う別の専用HTTPプッシュヘッダを使用することができるであろう。   Instead, the server could use another dedicated HTTP push header with a reserved information code (eg, 103, informing the client of “unsupported push policy mode”).

なお、代わりに、クライアントは、HTTP Expectヘッダを通して自身のプッシュポリシーを示すことができ、その場合サーバは“期待フェイル”のための417コードを示すか、あるいはもっと明瞭に、クライアントが希望しているプッシュモードをサーバがサポートしないことに対して専用される、確保されている4xxコードを示すであろう。   Note that instead, the client can indicate its push policy through the HTTP Expect header, in which case the server will either indicate a 417 code for “expected fail” or, more clearly, the client wants Will show reserved 4xx code dedicated to the server not supporting push mode.

別の実施形態では、本発明の実施形態を実装するクライアントは、サーバが本発明をサポートするか否かを知らない。クライアントが完全なコントロールを維持すると決定して“無プッシュ”プッシュポリシーをサーバに送っても、サーバはそのヘッダを理解しないので確認応答は送り返されない。   In another embodiment, a client implementing an embodiment of the present invention does not know whether a server supports the present invention. If the client decides to maintain full control and sends a “no push” push policy to the server, no acknowledgment is sent back because the server does not understand the header.

サーバは本発明を実装するけれどもクライアントがそれをサポートしない別の実施形態では、クライアントのリクエストで専用HTTPプッシュヘッダを受信しないサーバは、何もプッシュされないことをクライアントに警告するために“無プッシュ”ポリシー指示を用いて確認応答をすることができる(サーバは、クライアントが本発明をサポートするか否かを知らないか、あるいは単に自身の好みを示し忘れたので)。そのようにすることにより、サーバは無用なデータを送るリスクを冒さない。   In another embodiment where the server implements the present invention, but the client does not support it, a server that does not receive a dedicated HTTP push header in the client's request is “no push” to alert the client that nothing will be pushed. A policy indication can be used to acknowledge (because the server does not know whether the client supports the present invention or simply forgot to indicate its own preference). By doing so, the server does not take the risk of sending useless data.

そのような特定の“無プッシュ”ポリシーの目的は、特に、下記を示すために使用され得る:
− クライアントがプッシュに関心を持っていないこと;あるいは
− クライアントが、幾つかのリクエストのためのプッシュを中断させたがっていること。
The purpose of such a specific “no push” policy can be used in particular to indicate:
-The client is not interested in pushing; or-The client wants to interrupt the push for some requests.

これは、サーバプッシュの使用が許されるかどうかをサーバに示すためにクライアントによって使用され得る、HTTP/2により定義されている既存のSETTINGS_ENABLE_PUSHセッティングパラメータよりも満足のいくコントロールを提供する。このセッティングパラメータは、サーバプッシュに関してきめ細かなネゴシエーションや制御メカニズムを提供しない。実際、そのようなネゴシエーション手段を持つことはクライアントおよびサーバにとって有益であろう。例えば、SETTINGS_ENABLE_PUSHセッティングパラメータの値はサーバがサーバプッシュを使用することを可能にするけれども、クライアントはストリーミングセッションの中の幾つかのまたは全てのリクエストのためにサーバプッシュを禁止することを望み得る。例えば、これはクライアントにとっては、ビデオエレメントを埋め込むウェブページをロードするとき、有益であり得る。クライアントは、メディアセグメントではなくて、そのウェブページに関連付けられたリソース(CSS、イメージ、JavaScript)をプッシュしてもらうことに興味があるかもしれない。そのような場合、特定のDASHコンテンツを除いてコネクション全体にわたってデータのプッシュが可能にされ、クライアントは自身がデータプッシュ無しを選択することをメディアサーバに示すであろう。   This provides more satisfactory control than the existing SETTINGS_ENABLE_PUSH setting parameter defined by HTTP / 2, which can be used by the client to indicate to the server whether server push usage is allowed. This setting parameter does not provide a fine-grained negotiation or control mechanism for server push. In fact, it would be beneficial for clients and servers to have such negotiation means. For example, the value of the SETTINGS_ENABLE_PUSH setting parameter allows the server to use server push, but the client may want to prohibit server push for some or all requests in the streaming session. For example, this can be beneficial for a client when loading a web page that embeds a video element. The client may be interested in having the resources (CSS, images, JavaScript) associated with the web page pushed instead of the media segment. In such a case, data can be pushed across the connection except for specific DASH content, and the client will indicate to the media server that it chooses no data push.

図11cはプッシュポリシー通知の受け取りを確認する例を示し、この例ではクライアントはストリーミングマニフェストに対する最初のリクエストにおいて幾つかのプッシュポリシーを提案する。換言すれば、図11aおよび11bに関連して記載されたように単一のプッシュポリシーを提案する代わりに、クライアントは自身がサポートするプッシュポリシーのリストを送信する。   FIG. 11c shows an example of confirming receipt of a push policy notification, in which the client proposes several push policies in the initial request for the streaming manifest. In other words, instead of proposing a single push policy as described in connection with FIGS. 11a and 11b, the client sends a list of push policies it supports.

図示されているように、第1ステップは、ストリーミングマニフェスト(DASHの場合にはMPD)に対する最初のリクエスト1119におけるクライアント1100による自身がサポートするプッシュポリシーのリストの送信に向けられている。そのようなリストは好ましくは順序リストである(好みの順序、図11cには表されていない)。   As shown, the first step is directed to the client 1100 sending a list of push policies it supports in the first request 1119 to the streaming manifest (MPD in the case of DASH). Such a list is preferably an ordered list (preferred order, not represented in FIG. 11c).

その目的のために、ポリシーのタイプと好みの順序のための任意のパラメータとを伝える専用HTTPプッシュヘッダが作成される。例えば、専用HTTPプッシュヘッダは既存のAccept HTTPヘッダと同様に“Accept−Push−Policy”HTTPヘッダとして定義される(https://tools.ietf.org/html/rfc7231#section−5.3.2を参照)。   To that end, a dedicated HTTP push header is created that conveys the type of policy and any parameters for the order of preference. For example, the dedicated HTTP push header is defined as an “Accept-Push-Policy” HTTP header similar to the existing Accept HTTP header (https://tools.ietf.org/html/rfc7231#section-5.3.2). See).

Acceptヘッダは、所与のmedia−typeが:
(ゼロまたはそれ以上)個の特定media−typeパラメータ(例えば:charset);これは例えば、リクエスト:.jpg、.pngを発行するクライアントによりサポートされるメディアタイプのリストであり得る
0−1個の“q”パラメータ(相対的重さを示すための)
個の拡張パラメータ(拡張パラメータが存在するならばセパレータとして“q”パラメータは必須である)
を持つことを許す。
The Accept header has a given media-type:
0 * (zero or more) pieces of specific media-type parameters (for example: charset); This example, request: *. jpg, * . Can be a list of media types supported by the client issuing png 0-1 "q" parameters (to indicate relative weight)
0 * extended parameters ("q" parameter is required as a separator if extended parameters exist)
Allow to have.

これは専用HTTPプッシュヘッダに関して:
Accept−Push−Policy:<urn>[‘:’<urn−specific−param>];q=<N>
に帰着し、この“q”パラメータは、何らかのグローバルパラメータが存在するならば、必須である。
This is for a dedicated HTTP push header:
Accept-Push-Policy: <urn>[':'<urn-specific-param> * ]; q = <N>
This “q” parameter is mandatory if any global parameter exists.

“q”パラメータは、1つまたは複数のポリシーパラメータ、上の式の中の<urn−specific−param>、を、もし存在するならば、ポリシータイプ(上の式の中の<urn>により示される)から分離するQ係数である。   The “q” parameter indicates one or more policy parameters, <urn-specific-param> in the above expression, if present, by the policy type (<urn> in the above expression). Q factor to be separated from

Q係数は、ユーザまたはユーザエージェントが、0から1のq値スケールを用いて、ポリシータイプおよび/またはポリシー値についての相対的優先度を示すことを可能にする。デフォルト値はq=1(より大きなQ係数または好ましいもの)である。   The Q factor allows a user or user agent to indicate a relative priority for a policy type and / or policy value using a q-value scale from 0 to 1. The default value is q = 1 (greater Q factor or preferred).

説明のために、クライアントは、プッシュヘッダ内の下記の通知:
Accept−Push−Policy:urn:mpeg:dash:fdh:push−next;5
を用いて、1つの要求されたセグメントに続く次の5つのセグメントをプッシュするようにサーバに求めることができ、ここで第1部分、URN、はプッシュディレクティブまたは使用するプッシュポリシーのタイプを一意的に特定する。‘;’セパレータの次の第2パラメータ(任意の)は、このプッシュポリシーにおいて適用するパラメータに対応する。
For illustration purposes, the client notifies the following in the push header:
Accept-Push-Policy: urn: mpeg: dash: fdh: push-next; 5
Can ask the server to push the next 5 segments following one requested segment, where the first part, URN, uniquely identifies the type of push directive or push policy to use To be specific. The second parameter (optional) following the ';' separator corresponds to the parameter applied in this push policy.

代わりに、ポリシータイプと値パラメータとの間の他のセパレータがHTTPヘッダ値におけるセパレータとして使用され得る(RFC2616を参照)。   Alternatively, other separators between policy type and value parameters can be used as separators in HTTP header values (see RFC 2616).

クライアントが自身の好みに応じたプッシュポリシーの順序リストを示すことを可能にする代替実施形態は、例えばライブシナリオにおいてサーバに幾つかの次のセグメントを、それらがサーバ上で準備状態になったならば直ちに、好ましくは3セグメント、さもなければ5セグメント、プッシュするように(図12bにおいて参照番号1230に従って登録された標準的プッシュポリシー)サーバに示すために“q”パラメータを使用することであり、次のように表現され得る:
Accept−Push−Policy:urn:mpeg:dash:fdh:push−next;3、
urn:mpeg:dash:fdh:push−next;5;q=0.5
An alternative embodiment that allows the client to show an ordered list of push policies according to their preferences is, for example, in a live scenario, if the server has several next segments, if they are ready on the server Using the “q” parameter to indicate to the server to immediately push, preferably 3 segments, otherwise 5 segments (standard push policy registered according to reference number 1230 in FIG. 12b); It can be expressed as:
Accept-Push-Policy: urn: mpeg: dash: fdh: push-next;
urn: mpeg: dash: fdh: push-next; 5; q = 0.5

好みの順序として品質レベルを用いて、ビデオの急速スタート(すなわちMPDリクエストから、初期化および第1ビデオセグメントをプッシュする)を可能にする(ここでは所有者のプッシュポリシーから。場合によっては図12bの1230に従って登録もされる)プッシュポリシーをクライアントが示す別の例として、プッシュポリシーの順序リストが次のように表現され得る:
Accept−Push−Policy:urn:canon:dash:fdh:push−fast−start;high、
urn:canon:dash:fdh:push−fast−start;mid;q=0.7
urn:canon:dash:fdh:push−fast−start;low;q=0.3
あるいは解像度の方を選んで:
Accept−Push−Policy:urn:canon:dash:fdh:push−fast−start;HD、
urn:canon:dash:fdh:push−fast−start;SD;q=0.7
Using the quality level as the order of preference, allows for a fast start of the video (ie, pushing the initialization and first video segment from the MPD request) (here from the owner's push policy, in some cases FIG. 12b). As another example where a client presents a push policy (which is also registered according to 1230), an ordered list of push policies can be expressed as:
Accept-Push-Policy: urn: canon: dash: fdh: push-fast-start; high,
urn: canon: dash: fdh: push-fast-start; mid; q = 0.7
urn: canon: dash: fdh: push-fast-start; low; q = 0.3
Or choose the resolution:
Accept-Push-Policy: urn: canon: dash: fdh: push-fast-start; HD,
urn: canon: dash: fdh: push-fast-start; SD; q = 0.7

クライアントがサーバに種々のデータをプッシュするように示すために、それは、qのための同じ値を有する2つの異なるプッシュポリシーに対する指示をリクエスト内に置くことができる。これは、サーバにより、そのリクエストに応じて適用されるべき2つのポリシーと解釈されるべきである。   To indicate that the client pushes various data to the server, it can place in the request instructions for two different push policies with the same value for q. This should be interpreted by the server as two policies to be applied in response to the request.

もしサーバが両方を適用できるならば、それは、そのクライアントの受け取りを、自身のレスポンスの中に、専用HTTPプッシュヘッダの中に、同じq値を有するこれら2つのプッシュポリシーを置くことによって、確認する。   If the server can apply both, it confirms receipt of the client by placing these two push policies with the same q value in its response, in a dedicated HTTP push header. .

ところが、もしその2つのうちの1つだけが適用され得るならば、それは、専用HTTPプッシュヘッダのための値として使用されるプッシュポリシーを用いてクライアントの提案を受け取ったことを確認する。   However, if only one of the two can be applied, it confirms that the client's proposal has been received with a push policy that is used as the value for the dedicated HTTP push header.

もしその2つの提案されたプッシュポリシーのいずれもが適用され得なければ、サーバは、無プッシュポリシーの識別子(例えば、登録された値1231、またはこの目的のために特に定義されている任意のプッシュポリシータイプ)を専用HTTPプッシュヘッダの中に加えることによって、クライアントの提案を受け取ったことを確認する。   If neither of the two proposed push policies can be applied, the server can identify the identifier of the no-push policy (eg, the registered value 1231, or any push specifically defined for this purpose). Confirm that the client's proposal has been received by adding the policy type) into the dedicated HTTP push header.

図11cに戻って、サーバ1101は、ステップ1120において、急速スタートに向けられているかもしれない受け取ったリクエスト1119を処理する。   Returning to FIG. 11c, the server 1101 processes the received request 1119, which may be directed to a rapid start, at step 1120.

そのリクエストに応答して、サーバ1101は、最初のリクエストのためのリターンコードを伴う自身のレスポンスをステップ1121で準備する。従って、要求されたリソースが利用可能であれば、リターンコードはHTTPコード200である。   In response to the request, server 1101 prepares its response with a return code for the first request at step 1121. Therefore, if the requested resource is available, the return code is the HTTP code 200.

さらに、サーバ1101は、場合によっては自身の好みに合うように順序を再考して同じAccept−Push−Policy専用HTTPプッシュヘッダを用いることにより(そのような場合には、第1のものは、自身がプッシュしようとしている次のデータをアナウンスするために使用されるものである)、あるいは好ましくはリスト中の自身が使用する実際のプッシュポリシーだけを伝える別の専用HTTPプッシュヘッダを使用することにより、クライアント1100により提案されたプッシュポリシーのうちの1つを承認する。   In addition, the server 1101 may use the same Accept-Push-Policy dedicated HTTP push header in some cases, rethinking the order to suit its preference (in such a case, the first By using a separate dedicated HTTP push header that only conveys the actual push policy used by itself in the list, or Approve one of the push policies proposed by the client 1100.

例えば、そのような専用HTTPプッシュヘッダは、“DASH−PUSH”:urn:canon:dash:fdh:push−fast−start;lowであり得(ここでヘッダの名前(“DASH−PUSH”)は例として与えられている)、あるいはパラメータの正確な値を提供せずにポリシーのタイプだけ、例えば“DASH−PUSH”:urn:canon:dash:fdh:push−fast−start、(この場合、サーバにプッシュするメディアのバージョンを選択させる)であり得る。   For example, such a dedicated HTTP push header may be “DASH-PUSH”: urn: canon: dash: fdh: push-fast-start; low (where the header name (“DASH-PUSH”) is an example) Or only the type of policy without providing the exact value of the parameter, eg “DASH-PUSH”: urn: canon: dash: fdh: push-fast-start, (in this case the server To select the version of the media to push.

そのような確認応答データはステップ1122でクライアント1100により受け取られる。   Such acknowledgment data is received by client 1100 at step 1122.

並行して、サーバ1101は、アナウンスされた追加データをクライアントに送るために使用されるデータストリームの準備を開始して(ステップ1123)、対応するデータを送る。   In parallel, server 1101 begins preparing a data stream that is used to send the announced additional data to the client (step 1123) and sends the corresponding data.

プッシュされたデータの受け取られた(ステップ1124)後にクライアント1100により送られる次のリクエストは、再びプッシュポリシー指示、例えばサーバにより承認された好ましいもの、を含み得る。   The next request sent by client 1100 after receipt of the pushed data (step 1124) may again include push policy indications, such as preferred approved by the server.

サーバ1101がMPDリクエストの中で受け取られた提案されているプッシュポリシーのいずれをもサポートしない場合(ステップ1120)、それは、専用HTTPプッシュヘッダを“無プッシュ”ポリシーにセットすることによってクライアントの提案の受け取りを確認することができる(例えば、図12bの参照番号1231の登録されたURN、urn:mpeg:dash:fdh:push−none、またはその目的のために特に定義されている任意のプッシュポリシータイプ、を通して)。   If the server 1101 does not support any of the proposed push policies received in the MPD request (step 1120), it sets the client's proposal by setting the dedicated HTTP push header to the “no push” policy. Receipt can be confirmed (eg, registered URN, urn: mpeg: dash: fdh: push-none, or any push policy type specifically defined for that purpose, with reference number 1231 in FIG. 12b) , Through).

図11dはプッシュポリシー通知の受け取りを確認する例を示し、この例ではクライアントはストリーミングマニフェストに対する最初のリクエストで“無プッシュ”ポリシーを提案する。換言すれば、図11dは、クライアントが初めにリプリゼンテーション選択に関するコントロールを維持することを望んでいる場合を示す。   FIG. 11d shows an example of confirming receipt of a push policy notification, in which the client proposes a “no push” policy in the first request for the streaming manifest. In other words, FIG. 11d shows the case where the client initially wants to maintain control over the representation selection.

図示されているように、第1ステップは、ストリーミングマニフェスト(DASHの場合にはMPD)に対する最初のリクエスト1131における“無プッシュ”ポリシー指示のクライアント1100による送信に向けられている。   As shown, the first step is directed to the client 1100 sending a “no push” policy indication in the first request 1131 for the streaming manifest (MPD in the case of DASH).

従って、最初のリクエスト1131は、クライアントがサーバに何かをプッシュすることを望んでいないということを明らかに示す。説明のために、そのような“無プッシュ”ポリシーは、図12bにおいて参照番号1230に登録されているように、次の通りであり得る:urn:mpeg:dash:fdh:push−none。   Thus, the initial request 1131 clearly indicates that the client does not want to push anything to the server. For purposes of illustration, such a “no push” policy, as registered at reference number 1230 in FIG. 12b, may be: urn: mpeg: dash: fdh: push-none.

このような例は、クライアントがセッションの初めに急速スタートに興味を持っておらず、従ってサーバからのプッシュを阻止する場合に対応する(デフォルトでは、HTTP/2サーバは、適切でない何かをクライアントに送る危険を伴ってプッシュを主導し得る)。   Such an example corresponds to the case where the client is not interested in a quick start at the beginning of the session and thus prevents pushes from the server (by default, the HTTP / 2 server does not do anything appropriate to the client Can lead a push with the risk of sending to)).

図11dに示されているように、サーバ1101は、この無プッシュポリシーを、参照番号1133の自身のレスポンスで確認する。   As shown in FIG. 11 d, the server 1101 confirms this no-push policy with its own response with the reference number 1133.

セグメントを要求するために、クライアントは自身が何を頼もうとしているのかをより良く知るためにそのMPDを分析し(ステップ1134)、その分析の結果として、1つまたは数個のプッシュポリシーをサーバに提案する(ステップ1135)。   To request a segment, the client analyzes its MPD to better know what it is trying to ask (step 1134) and, as a result of the analysis, the server can submit one or several push policies. (Step 1135).

応答して、サーバ1101は、約束されたデータ(表されていない)をプッシュするために図11aまたは図11cと関連して記載されるようにプッシュポリシーを確認する。   In response, server 1101 checks the push policy as described in connection with FIG. 11a or 11c to push the promised data (not represented).

当然に、ストリーミングセッションの急速スタートのためのプッシュポリシーは他の目的のためにも使用され得る。例えば、クライアントはMPDリクエスト時にプッシュポリシーを指示し(ステップ1131)、次にサーバは(図11aまたは図11cと関連して前に記載されたように)肯定的にまたは否定的に確認し、結局、第1セグメントをクライアントにプッシュすると約束する。次に、セグメントに対する連続するリクエストのために、クライアントは、自身の選んだプッシュポリシーを示すことによって自身がサーバを信頼してプッシュを続行させるか、それとも特定の“無プッシュ”ポリシーを用いることにより自身が送信に対する完全なコントロールを維持することを望むのかを決定することができる。   Of course, the push policy for rapid start of the streaming session can also be used for other purposes. For example, the client indicates a push policy upon MPD request (step 1131), and then the server confirms positively or negatively (as described previously in connection with FIG. 11a or 11c) and eventually , Promises to push the first segment to the client. Next, for successive requests for a segment, the client either makes itself trusted by the server by indicating its preferred push policy, or by using a specific “no push” policy You can decide if you want to maintain full control over the transmission.

どんなプッシュポリシーがクライアントにより示されても、もしサーバがクライアントにより提案されたプッシュポリシーを処理できないかおよび/または対応する特定HTTPヘッダを処理できなければ(例えば図6aのテスト604がフォールスである)、それはどのような種類の確認応答も送ることができず、従ってクライアントからのヒントを単に無視するであろう、ということに留意するべきである。   Whatever push policy is indicated by the client, if the server cannot process the push policy proposed by the client and / or does not process the corresponding specific HTTP header (eg test 604 in FIG. 6a is false) It should be noted that it cannot send any kind of acknowledgment, so it will simply ignore the hint from the client.

反対に、クライアントにより提案されたプッシュポリシー(またはディレクティブ)を処理するように構成されてそれを適用すると決定するDASHサーバは、自身のレスポンスにおいて容認されるパラメータ値を伴う(もしあれば)プッシュポリシー(またはディレクティブ)のURNを用いることによってクライアントのリクエストを確認するべきである。クライアントにより複数のプッシュポリシーが示されサーバがクライアントにより提案されたプッシュポリシーのリストのうちのプッシュポリシーの1つをサポートする場合、自身が使用しようとしているプッシュポリシーを、適用されるプッシュポリシーのURNを専用HTTPプッシュヘッダ内に置くことによって、確認するべきである。   Conversely, a DASH server that is configured to process a push policy (or directive) proposed by the client and decides to apply it, push parameter (if any) with an acceptable parameter value in its response. The client request should be confirmed by using the (or directive) URN. If the client indicates multiple push policies and the server supports one of the push policy lists proposed by the client, the push policy that it is trying to use is the URN of the applied push policy Should be confirmed by placing in a dedicated HTTP push header.

任意に、以下で説明されて図11eに示されているようにサーバは自身が実行する代替プッシュポリシーのリストを種々の仕方で宣伝することもできる。   Optionally, as described below and shown in FIG. 11e, the server may advertise the list of alternative push policies it performs in various ways.

サーバがクライアントにより提案されたプッシュポリシーをサポートしない場合、それは“無プッシュ”ストラテジーのためのURL、すなわちurn:mpeg:dash:fdh:push−none、を用いてクライアントに知らせるべきである。“無プッシュ”ポリシーでの確認応答の他に、それは、自身がサポートする1つのプッシュポリシーまたはプッシュポリシーのリストを別の専用HTTPプッシュヘッダで公表することができる。確認応答レスポンスからあいまいさを無くすために、サーバは好ましくは別の専用HTTPプッシュヘッダを使用する。それは、自身が1つのプッシュポリシーを公表するのかそれともプッシュポリシーのリストを公表するのかにより、Accept−Push−Policyヘッダにおいて与えられるシンタックスを使用することができる。   If the server does not support the push policy proposed by the client, it should inform the client using the URL for the “no push” strategy, ie urn: mpeg: dash: fdh: push-none. In addition to acknowledgment with a “no push” policy, it can publish one push policy or a list of push policies that it supports in another dedicated HTTP push header. In order to eliminate ambiguity from the acknowledgment response, the server preferably uses another dedicated HTTP push header. It can use the syntax given in the Accept-Push-Policy header depending on whether it publishes one push policy or a list of push policies.

無プッシュケイパブルサーバ(すなわち、どのクライアントからのどのプッシュポリシーも理解しないサーバ。例えば図6aのテスト604がフォールスである)に対してプッシュポリシーがアドレスされたときにはどんな種類の確認応答も無く、どんなプッシュポリシーの宣伝もクライアントに対してシグナリングされ得ないであろうということに留意するべきである。   When a push policy is addressed to a non-push capable server (ie a server that does not understand any push policy from any client, eg test 604 in FIG. 6a is false) It should be noted that push policy promotions may also not be signaled to the client.

クライアントがプッシュポリシーを提案するのを助けるために、サーバは、自身がサポートするプッシュポリシーのリストをクライアントに送信することができる。これは幾つかの仕方で行われ得る。   To help the client propose a push policy, the server can send a list of push policies it supports to the client. This can be done in several ways.

例のために、サーバによりサポートされるプッシュポリシーのリストは、MPD内のコンテンツを作成するときに決定されることができて後者に1つまたは数個のDASHディスクリプタとして加えられることができる。それらは、オリジンサーバによりまたはコンテンツデリバリーネットワーク(Content Delivery Network)内のサーバによりサポートされるプッシュポリシーの指示を提供する。   For example, the list of push policies supported by the server can be determined when creating content in the MPD and can be added to the latter as one or several DASH descriptors. They provide indications of push policies that are supported by the origin server or by a server in the Content Delivery Network.

これも、ネットワークインターメディアリによって、もしそれらがDASHアウェアであるならば、行われ得る。   This can also be done by network intermediary if they are DASH aware.

そのようなディスクリプタは、特定のscheme_id_uri属性(例えば“urn:mpeg:dash:fdh:pushDirective”)により特定され得る。そのようなディスクリプタのための値属性はプッシュポリシーのタイプを含む(例えば:“urn:mpeg:dash:fdh:push−next”または“urn:mpeg:dash:fdh:push−none”)。   Such a descriptor may be identified by a specific scheme_id_uri attribute (eg, “urn: mpeg: dash: fdh: pushDirective”). The value attribute for such a descriptor includes the type of push policy (eg: “urn: mpeg: dash: fdh: push-next” or “urn: mpeg: dash: fdh: push-none”).

任意に、他の属性(例えばparam)は、プッシュする次のセグメントの数のようなポリシーパラメータを含み得る。これは次のように書かれるであろう:<SupplementalProperty scheme_id_uri=“urn:mpeg:dash:fdh:pushDirective” value=“urn:mpeg:dash:fdh:push−next” param=“5”/>。scheme_id_uriおよび値属性のための値は、DASH標準規格によりまたは少なくとも1230のように登録機関により定義されると想定される。これは、例えば、scheme_id_urisを通してのDASH、DASH産業フォーラム、あるいは対応するプッシュストラテジーを利用するクライアントおよびサーバの振る舞いに関する関連ガイドラインを有するIANAであり得る。   Optionally, other attributes (eg, param) may include policy parameters such as the number of next segments to push. This would be written as follows: <SupplementalProperty scheme_id_uri = “urn: mpeg: dash: fdh: pushDirective” value = “urn: mpeg: dash: fdh: push-next” 5 ”. The values for scheme_id_uri and value attributes are assumed to be defined by the DASH standard or by at least a registration authority as at 1230. This may be, for example, IANA with DASH through the scheme_id_uris, DASH industry forum, or related guidelines on client and server behavior utilizing the corresponding push strategy.

別の例では、特定HTTPヘッダフィールド、例えば“Supported−Push−Policies”、が、サーバによりサポートされるプッシュポリシーを記述するために使用され得る。基本的な実装では、このヘッダフィールドの値は、サポートされるプッシュポリシーの識別子のコンマ分離リストである。   In another example, a specific HTTP header field, such as “Supported-Push-Policies”, may be used to describe a push policy supported by the server. In the basic implementation, the value of this header field is a comma separated list of supported push policy identifiers.

そのような特定HTTPヘッダフィールドは、例えば、次の通りであり得る:
Supported−Push−Policies:urn:dash:adobe:k−push、urn:dash:canon:fast−start
Such a specific HTTP header field can be, for example:
Supported-Push-Policies: urn: dash: adobe: k-push, urn: dash: canon: fast-start

より豊かな実装では、各ポリシーのためにサポートされるパラメータ値は、“,”分離リスト、またはレンジとして記述され得るであろう。   In richer implementations, the parameter values supported for each policy could be described as a “,” separate list, or range.

そのような特定HTTPヘッダフィールドは、例えば(ポリシータイプとそのパラメータとの間のセパレータとして‘;’を用いて)、次の通りであり得る:
Supported−Push−Policies: urn:dash:adobe:k−push;0−100、urn:dash:canon:fast−start;low:medium
Such a specific HTTP header field can be, for example (using ';' as a separator between the policy type and its parameters):
Supported-Push-Policies: urn: dash: adobe: k-push; 0-100, urn: dash: canon: fast-start; low: medium

サーバは、各ポリシーのために“q”パラメータを加えることにより各ポリシーに対する自身の好みを示すこともできるであろう。   The server could also indicate its own preference for each policy by adding a “q” parameter for each policy.

そのような特定HTTPヘッダフィールドは、例えば、次の通りであり得る:
Supported−Push−Policies: urn:dash:adobe:k−push;0−100;q=0.4、urn:dash:canon:fast−start;low:medium;q=0.9
Such a specific HTTP header field can be, for example:
Supported-Push-Policies: urn: dash: adobe: k-push; 0-100; q = 0.4, urn: dash: canon: fast-start; low: medium; q = 0.9

アプリケーションコードにおいて、例えばウェブページにおいて、HTMLメタタグは、送信を改善するためにクライアントが使用し得る幾つかのポリシーをリストすることができるであろう。   In application code, such as a web page, an HTML meta tag could list several policies that a client can use to improve transmission.

そのようなHTMLメタタグは、例えば、次の通りであり得る:
<meta name=<<dash:fdh:pushDirective >> content= << urn:one_push_directive_ID>> />
ここで名前属性に許される新しい“dash:fdh:pushDirective”値は既存のエクステンションリスト:https://wiki.whatwg.org/wiki/MetaExtensionsに登録され得るであろう。そのような登録は、メディア配信を最適化するストラテジーをアプリケーションサーバが考慮し、メディアが例えば<video>エレメントとしてウェブページに埋め込まれるということをウェブクライアントが知らされることを可能にする。コンテンツ属性に置く値は、図12bの参照番号1230の登録された値のうちの1つであり得る。
Such HTML meta tags can be, for example:
<Meta name = << dash: fdh : pushDirective >> content = << urn: one_push_directive_ID >>/>
The new “dash: fdh: pushDirective” value allowed for the name attribute here is the existing extension list: https: // wiki. whatwg. could be registered with org / wiki / MetaExtensions . Such registration allows a web client to be informed that the application server considers a strategy for optimizing media delivery and that the media is embedded in the web page, for example as a <video> element. The value placed in the content attribute can be one of the registered values of reference number 1230 in FIG. 12b.

図8は、DASHを伴う適応ストリーミングの場合に関してプッシュヘッダの種々の例を提供する。メディア(ビデオ)は2つの別々のリプリゼンテーションR1 810およびR2 820として利用可能であり、その両方が時間的に整列しているビデオセグメント811および821を含む。   FIG. 8 provides various examples of push headers for the case of adaptive streaming with DASH. The media (video) is available as two separate representations R1 810 and R2 820, both of which include video segments 811 and 821 that are temporally aligned.

第1例830は、リプリゼンテーションR1の第1セグメントに対するクライアントのリクエストを示す。このリクエストは、プッシュヘッダ“Push−Request”を通して、クライアントが将来のセグメントとしてセグメントナンバー2に関心を持っているということも示す。そのようにするために、プッシュ特定ヘッダは、サーバがrequest−URIの中括弧入りパターン(ヘッダの第1パラメータ:“URI”により示される)、すなわちrequest−URIの中の文字列“01”、を最後のパラメータにおいて提供される値(例830においては“02”)を用いて改変しなければならないことを示す。1つの代案は、Push−Request:URI;−\(\d\+\),−\(%02d:\1+1\)のような正規表現を介して置換ルールを示すことだったであろう。   The first example 830 shows a client request for the first segment of the representation R1. This request also indicates through the push header “Push-Request” that the client is interested in segment number 2 as a future segment. To do so, the push specific header is sent by the server in a request-URI curly bracketed pattern (indicated by the first parameter of the header: “URI”), ie the string “01” in the request-URI, Indicates that it should be modified using the value provided in the last parameter (“02” in Example 830). One alternative would have been to show replacement rules via regular expressions such as Push-Request: URI;-\ (\ d \ + \),-\ (% 02d: \ 1 + 1 \).

第2例840は、リプリゼンテーションR1の第1セグメントに対するクライアントのリクエストを示す。このリクエストも、プッシュヘッダ“Push−Request”を通して、クライアントが将来のセグメントとしてセグメントナンバー02、03、04および05に関心があることを示す。将来のセグメントのこのリストは、ここではコンパクト性および簡潔さを目的としてレンジとして表現されている。重ねて、中括弧同士の間のパターンは、4つのURLの対応するリストを構築するために、最初のrequest−URIの中で、提供されたレンジでセットされている値によって繰り返し取って代わられなければならない。   The second example 840 shows a client request for the first segment of the representation R1. This request also indicates through the push header “Push-Request” that the client is interested in segment numbers 02, 03, 04 and 05 as future segments. This list of future segments is represented here as a range for purposes of compactness and simplicity. Again, the pattern between the curly braces is repeatedly overridden by the value set in the provided range in the first request-URI to build the corresponding list of four URLs. There must be.

第3例850は、リプリゼンテーションR1の第1セグメントに対するクライアントのリクエストを示す。このリクエストも、プッシュヘッダ“Push−Request”を通して、クライアントが将来のセグメントとしてセグメントナンバー02および10に関心を持っていることを示す。セグメントナンバーでの関心は、クライアントがビデオを急いでブラウズすることを可能にするであろう。そのとき、代入値は、コロンで分離された値のリストとして与えられる。クライアントがもっと多くのセグメント(ナンバー02から04、および10から13)に関心を持っていた場合、これらは次のようにレンジのリストを通してシグナリングされ得たであろう:
Push−Request:segment−{1}.mp4;{02−04}:{10−13}
A third example 850 shows a client request for the first segment of the representation R1. This request also indicates through the push header “Push-Request” that the client is interested in segment numbers 02 and 10 as future segments. Interest in segment numbers will allow clients to browse videos on the fly. The assigned values are then given as a list of values separated by colons. If the client was interested in more segments (numbers 02 to 04 and 10 to 13), these could have been signaled through the list of ranges as follows:
Push-Request: segment- {1}. mp4; {02-04}: {10-13}

第4例860は、リプリゼンテーションR1の第1セグメントに対するクライアントのリクエストを示す。このリクエストも、プッシュヘッダ“Push−Request”を通して、クライアントが将来のセグメントとして、リプリゼンテーションR2内の、セグメントナンバー01に関心を持っていることを示す。これは、リプリゼンテーションR2がベースバージョンR1のエンハンストバージョンであるとき、スケーラブルなビデオのために有益であり得る。この例は、request−URIに代入する2つのパターン(中括弧の間の)の存在によって示されるrequest−URIの中の複数のパターンにおける変化を示す。   The fourth example 860 shows a client request for the first segment of the representation R1. This request also indicates through the push header “Push-Request” that the client is interested in the segment number 01 in the representation R2 as a future segment. This can be beneficial for scalable video when the representation R2 is an enhanced version of the base version R1. This example shows the changes in multiple patterns in the request-URI indicated by the presence of two patterns (between the curly braces) that are assigned to the request-URI.

第5例865は、リプリゼンテーションR1の第1セグメントに対するクライアントのリクエストを示す。このリクエストも、プッシュヘッダ“Push−Request”を通して、クライアントが、将来のセグメントとして、初めにリプリゼンテーションR2のセグメントナンバー01および両方のリプリゼンテーションR1、および次にR2、のセグメント02に、最後に両方のリプリゼンテーション“R1”および“R2”のセグメント03に関心を持っていることを示す。これは、代入の順序を各々示す2つの(中括弧の間の)パターンの存在により示される。この例では、値“R1”および“R2”の第1のセットを有するリプリゼンテーション識別子が初めに考慮され、次に、01から03を含むレンジ内の値を有するセグメントインデックスが考慮される。   The fifth example 865 shows a client request for the first segment of the representation R1. This request is also sent through the push header “Push-Request” to the client as the future segment, first in segment number 01 of representation R2, both in representation R1, and then in segment 02 of R2, and finally Shows interest in segment 03 of both representations “R1” and “R2”. This is indicated by the presence of two patterns (between curly braces) that each indicate the order of substitution. In this example, representation identifiers having a first set of values “R1” and “R2” are considered first, and then segment indices having values in the range including 01 to 03 are considered.

複数のパラメータ(2つのリプリゼンテーションのセグメント01から03)にわたって繰り返すという特別の場合に関しては、リプリゼンテーションR1の第1セグメントは2回提供される(1回は要求された第1セグメントとして−request−URIを見よ;そして1回はプッシュされるデータとして)ことに留意しなければならない。従って、サーバは、最初のrequest−URIに対応するURLを削除するために、得られたURLのリストをフィルタリングすることができる。   For the special case of repeating over multiple parameters (two representation segments 01 to 03), the first segment of the representation R1 is provided twice (once as the requested first segment- Note that see request-URI; and once as data to be pushed). Thus, the server can filter the resulting list of URLs to delete the URL corresponding to the first request-URI.

第6例870および第7例880は、メディアセグメントがバイトレンジを通してアドレスされるときのヘッダの使用を示し、例えばMPDにおいてはメディアセグメントはそれらのセグメントのバイトレンジを提供するSegmentURLsを含むSegmentBaseエレメントとして記述される。   The sixth example 870 and the seventh example 880 illustrate the use of headers when media segments are addressed through byte ranges, for example in MPD the media segments are as SegmentBase elements containing SegmentURLs that provide the byte range of those segments. Described.

例870は、リプリゼンテーションR1の初めのバイトに対するクライアントのレンジリクエストを示す。このリクエストも、プッシュヘッダ“Push−Request”を通して、クライアントが、リソースの将来の部分として、“Rep−R1.mp4”ファイル内の2001バイトオフセットから始まって3000バイトオフセットで終わるバイトレンジに関心を持っていることを示す。   Example 870 shows a client range request for the first byte of representation R1. This request is also via the push header “Push-Request” where the client is interested in the byte range starting from the 2001 byte offset in the “Rep-R1.mp4” file and ending at the 3000 byte offset as a future part of the resource. Indicates that

第7例880は、リプリゼンテーションR1の初めのバイトに対するクライアントのレンジリクエストを示す。このリクエストも、プッシュヘッダ“Push−Request”を通して、クライアントが、リソースの将来の部分として、“Rep−R1.mp4”ファイル内の、バイトレンジ、初めは2001から3000包含のバイトレンジ、次に3001から4000包含のバイトレンジ、のリストに関心があることを示す。   A seventh example 880 shows a client range request for the first byte of the representation R1. This request is also sent via the push header “Push-Request” as the future part of the resource by the client in the byte range in the “Rep-R1.mp4” file, initially including the byte range 2001 to 3000, then 3001. Indicates that you are interested in the list of byte ranges from to 4000.

図8の第8且つ最後の例890は、初期化セグメントに対するクライアントのリクエストを示す。このリクエストも、プッシュヘッダ“Push−Request”を通して、クライアントが、将来のセグメントとして、所与のセグメントに関心を持っていることを示す:ここで、パターンアイデンティフィケーションも代入値も無しに、明示的で絶対的なURIが提供される。   The eighth and final example 890 of FIG. 8 shows a client request for an initialization segment. This request also indicates through the push header “Push-Request” that the client is interested in a given segment as a future segment: where there is no pattern identification or assignment value, An explicit absolute URI is provided.

上の記述は、主に、場合によっては構築ルールを通して、プッシュされるべき特定リソースを定義する特定プッシュヘッダに集中している。   The above description focuses mainly on specific push headers that define specific resources to be pushed, possibly through construction rules.

リソースタイプをリソースフォルダにマッピングする静的設定ファイルをサーバが含む幾つかの実施形態では、クライアントは、クライアントが関心を持っているリソースをフィルタリングするために特定プッシュヘッダを使用することができる。そのようなフィルタリングは、例えば上記のステップ606の間に行われ得る。   In some embodiments where the server includes a static configuration file that maps resource types to resource folders, the client can use specific push headers to filter the resources that the client is interested in. Such filtering can be performed, for example, during step 606 above.

このフィルタリングアプローチは、クライアントが特定プッシュヘッダにおいて特定のリソースではなくてリソースの種類を、あるいは少なくともこれらの特定リソースを特定するルールを、示すときに、有益であり得る。   This filtering approach may be beneficial when the client indicates a resource type rather than a specific resource in a specific push header, or at least rules that specify these specific resources.

例えば、図12aおよび12bに関連して記載されたように、プッシュポリシーまたはプッシュディレクティブを明確に指定する一意識別子(例えばURN)の使用のような、代案が存在する。   Alternatives exist, such as the use of a unique identifier (eg, URN) that specifically specifies a push policy or push directive, as described in connection with FIGS. 12a and 12b.

図12aはストリーミングマニフェスト(DASHの場合にはMPD)に対する最初のリクエスト1201でのプッシュポリシーの指示のクライアント1200による送信を示し、その指示はそのプッシュポリシーと関連付けられた一意識別子である。前述されたように、この指示は、専用HTTPプッシュヘッダを介して伝えられ得る。   FIG. 12a shows the transmission by the client 1200 of a push policy indication in the initial request 1201 to the streaming manifest (MPD in the case of DASH), which is a unique identifier associated with that push policy. As described above, this indication can be conveyed via a dedicated HTTP push header.

受け取ると、サーバ1210はステップ1203でリクエストを処理する、すなわちサーバはクライアント1200に提供されるべきリソース(MPD)を特定する。次に、サーバ1210は、最初のリクエストのためのリターンコードを有する自身のレスポンスを準備する。従って、要求されたリソースが利用可能であるならば、そのリターンコードはHTTPコード200である。   Upon receipt, server 1210 processes the request at step 1203, i.e., the server identifies a resource (MPD) to be provided to client 1200. The server 1210 then prepares its response with a return code for the initial request. Therefore, if the requested resource is available, the return code is the HTTP code 200.

並行して、サーバ1210は、専用HTTPプッシュヘッダに含まれている一意識別子の関数として提案されたプッシュポリシーを特定する。もしサーバがそのヘッダを理解することができて自身が提案されたプッシュポリシーを処理できるならば、それは次に、クライアントにより提案されたプッシュポリシーの受け取りを確認する。これは、その一意識別子をレスポンス1204に加えることによって行われ得る。   In parallel, the server 1210 identifies the proposed push policy as a function of the unique identifier contained in the dedicated HTTP push header. If the server can understand the header and can process the proposed push policy, it then confirms receipt of the proposed push policy by the client. This can be done by adding that unique identifier to the response 1204.

これは、クライアントに、サーバがその提案されたプッシュポリシーを進んで使用することを示す。   This indicates to the client that the server is willing to use the proposed push policy.

プッシュポリシーと関連付けられる一意識別子は、集中レジストリ、例えば図12bに示されている集中レジストリ1230、において定義され得る。URNは、プッシュポリシー(またはディレクティブ)の一意特定を可能にする。プッシュポリシー(またはディレクティブ)がパラメータを必要とするとき、これらは、プッシュポリシーが明示されるように、上のレジストリからリンクされた仕様において定義されなければならない。   The unique identifier associated with the push policy may be defined in a centralized registry, such as the centralized registry 1230 shown in FIG. 12b. URN allows for the unique identification of push policies (or directives). When push policies (or directives) require parameters, these must be defined in the specification linked from the above registry so that the push policy is specified.

集中レジストリが定義されていなければ、専用HTTPプッシュヘッダはプッシュポリシーのタイプを伝えることができる(例えば、プッシュされるべきセグメントの数、セグメントがプッシュされているべき継続時間、またはMPDアップデートをプッシュするための指示)。   If no central registry is defined, the dedicated HTTP push header can convey the type of push policy (eg, push the number of segments to be pushed, the duration that the segments should be pushed, or MPD updates) Instructions for).

説明のために、専用HTTPプッシュヘッダで伝えられ得るプッシュポリシーのタイプは次の通りであり得る(“Push−Request”は、この例では、専用HTTPプッシュヘッダの名前である):
Push−Request:push−next
Push−Request:push−time
Push−Request:fast−start
Push−Request:mpd−update
For illustration purposes, the types of push policies that can be conveyed in a dedicated HTTP push header can be as follows ("Push-Request" is the name of the dedicated HTTP push header in this example):
Push-Request: push-next
Push-Request: push-time
Push-Request: fast-start
Push-Request: mpd-update

任意に、専用HTTPプッシュヘッダは、プッシュポリシーのタイプと、提案されたプッシュポリシーのためのパラメータとを伝えることができる(例えば、セグメントの数とプッシュする継続時間(秒単位))。従って、専用HTTPプッシュヘッダで伝えられる得るプッシュポリシーのタイプと、関連付けられているパラメータとは次の通りであり得る(ここでポリシーのタイプとパラメータとの間のセパレータとして‘;’を使用する):
Push−Request:push−next;5
Push−Request:push−time;2
Push−Request:fast−start;2
Push−Request:mpd−update;patch
Push−Request:push−next;
Optionally, a dedicated HTTP push header can convey the type of push policy and parameters for the proposed push policy (eg, number of segments and duration to push (in seconds)). Thus, the type of push policy that can be conveyed in a dedicated HTTP push header and the associated parameter can be as follows (here using ';' as a separator between the policy type and the parameter): :
Push-Request: push-next; 5
Push-Request: push-time; 2
Push-Request: fast-start; 2
Push-Request: mpd-update; patch
Push-Request: push-next;

より一般的に専用HTTPプッシュヘッダは:
Push−Request:URN[‘;’<urn−specific−params>]
として表現され得る。
More generally, dedicated HTTP push headers are:
Push-Request: URN * [';'<urn-specific-params>]
Can be expressed as

最後の例は、具体的で、所与のセグメントから全ての次のものをプッシュし続けるようにサーバに示すことを狙っている(すなわち、クライアントからサーバ主導モードへの一種の切り替え)。   The last example is specific and aims to show the server to keep pushing all the next from a given segment (ie a kind of switch from client to server driven mode).

少数の可能な値と関連付けられた幾つかのポリシータイプに関しては、タイプとパラメータとを1つのURN、例えば:
urn:mpeg:dash:fdh:2015:push−next−
または
urn:mpeg:dash:fdh:2015:push−time−2
として登録するのが有利であり得るということに留意するべきである。
For some policy types that are associated with a small number of possible values, the type and parameter must be one URN, eg:
urn: mpeg: dash: fdh: 2015: push-next- *
Or urn: mpeg: dash: fdh: 2015: push-time-2
It should be noted that it may be advantageous to register as

特定の実施形態により、プッシュするデータのタイプの関数としてプッシュポリシーを提案するためにクライアントがプッシュするデータに関する自身の希望を明確に表現するオプションがクライアントに与えられる。従って、図12bの集中レジストリ1230に示されているように、ユーザはセグメントに関連するプッシュストラテジーのためのセットと、MPDアップデートに関連するプッシュストラテジーのための別のセットとを定義することができる。   Certain embodiments give the client the option of clearly expressing their wishes for the data that the client pushes to propose a push policy as a function of the type of data to push. Thus, as shown in the centralized registry 1230 of FIG. 12b, the user can define a set for the push strategy associated with the segment and another set for the push strategy associated with the MPD update. .

そのような実施形態は、特定MPDアップデートプッシュポリシーを持つために有益であることが判明し得、これはクライアントがアップデートプロセスを自動化するためである。実際、MPDアップデートをプッシュすることを提案し承認することは、MPD失効日を示すために特別のメタデータボックスをメディアセグメントに加えることを回避することを可能にする(通例、MPDがアップデートされるときにサーバによって行われる)。   Such an embodiment may prove beneficial for having a specific MPD update push policy because the client automates the update process. In fact, proposing and approving to push MPD updates makes it possible to avoid adding a special metadata box to the media segment to indicate the MPD expiration date (typically the MPD is updated). Sometimes done by the server).

例えば、ストリーミングセッションの間のどこかの時点で承認されたMPDアップデートのためのプッシュポリシーは、サーバがMPDアップデートをプッシュすると約束しているとクライアントに知らせるであろう。   For example, a push policy for an MPD update approved at some point during a streaming session will inform the client that the server has promised to push the MPD update.

さらにさまざまな種類のMPDアップデートポリシーを持てば、クライアントは、サーバがMPD全体(例えばURN:urn:mpeg:dash:fdh:push−mpd−fullと共に)を再送するかそれともパッチだけを再送するか(urn:mpeg:dash:fdh:push−mpd−patch)を知らされ得るであろう。代わりに、MPDアップデートのために1つのプッシュポリシーだけが定義され得、全体モードまたはパッチモードはパラメータとなる。   In addition, with different types of MPD update policies, the client can either retransmit the entire MPD (eg, with URN: urn: mpeg: dash: fdh: push-mpd-full) or just the patch ( urn: mpeg: dash: fdh: push-mpd-patch). Instead, only one push policy can be defined for the MPD update, and the whole mode or patch mode is a parameter.

図11aから11eは、これらの2種類のプッシュポリシーの使用を示す。図11aから11eと関連して記載されたように、クライアントは、初めにMPDを要求する。その間に、それは、MPDアップデートとセグメントとの両方のプッシュに関心があるのか、それともこれらの2種類のデータのうちの一方だけに関心があるのかを示すことができる。同様に、セグメントに対するリクエストを準備するとき、それはMPDアップデートとセグメントとの両方に対する関心またはこれらの2種類のデータのうちの一方だけに対する関心を示すことができる。   Figures 11a to 11e illustrate the use of these two types of push policies. As described in connection with FIGS. 11a through 11e, the client first requests an MPD. In the meantime, it can indicate whether we are interested in pushing both MPD updates and segments, or just one of these two types of data. Similarly, when preparing a request for a segment, it can indicate interest in both MPD updates and segments, or interest in only one of these two types of data.

実際、任意の時点でMPDアップデートに対する希望を示すためにセグメントに対するリクエストにおいてMPD特有ポリシーの使用が許されるべきである。同様に、MPDを要求するときにセグメント関連プッシュポリシーを使用することは、クライアントが高速開始ストリーミングセッションを持つことを可能にする。   In fact, the use of MPD specific policies should be allowed in requests for segments to indicate hope for MPD updates at any point in time. Similarly, using a segment-related push policy when requesting an MPD allows a client to have a fast-start streaming session.

ストリーミングアプリケーションに向けられた与えられた例は説明のためにHTTP/2プロトコルに基づいているが、WebSocketなどの他の双方向プロトコルも使用され得ることに留意するべきである。特に、専用HTTPプッシュヘッダはWebSocketのためのバインディングにおいて次のように取って代わられ得る:
− URL:要求されたリソースのURLを示す。対応するJSONパラメータは“url”である。
− PushDirective:クライアント選択されたPushDirectiveのURNを示し、JSON名“PushDirective”を有する。
− pushDirectiveに特有であるとともにpushDirectiveにより定義される値を示す任意のpushParams。
It should be noted that although the examples given for streaming applications are based on the HTTP / 2 protocol for illustration, other bi-directional protocols such as WebSocket can also be used. In particular, the dedicated HTTP push header can be replaced in the binding for WebSockets as follows:
-URL: Indicates the URL of the requested resource. The corresponding JSON parameter is “url”.
-PushDirective: indicates the PushDirect URN selected by the client and has the JSON name "PushDirective".
-Any pushParams that are unique to pushDirective and indicate a value defined by pushDirective.

同様に、確認応答メカニズムは、幾つかの専用WebSocketフレームにおいてJSONパラメータを使用することができる。   Similarly, the acknowledgment mechanism can use JSON parameters in some dedicated WebSocket frames.

例えば、サーバは様々なフォルダにデータをホストすることができる。そのとき、‘path’はメインリソースに到達するサーバ上のパスであると仮定して、‘path/image’はイメージリソースを含むであろう、‘path/code’はコード、例えばjavascriptコード、を含むであろう、‘path/style’はcssリソースを含むであろう、等々である。このような文脈において、クライアントがウェブページで宣言されている全ての種類のイメージを望むのか(image/)それとも所与のタイプの全てのイメージを望むのか(image/.jpg)を特定プッシュヘッダにおいて示すとき、サーバ上の設定ファイルは、どのリソースディレクトリのためにもプッシュされ得るイメージのリストをリストするべきである。 For example, the server can host data in various folders. Then, assuming that 'path' is the path on the server to reach the main resource, 'path / image' will contain the image resource, 'path / code' is a code, eg a javascript code, Will contain, 'path / style' will contain css resources, and so on. In this context, the specific push whether the client wants all types of images declared on the web page (image / * ) or all images of a given type (image / *. Jpg) When indicated in the header, the configuration file on the server should list a list of images that can be pushed for any resource directory.

ウェブページは、リクエストのrequest−URIにおいて要求されているデータであり得る。1つの変化形では、ウェブページは、リクエスト内の別の任意ヘッダを用いて特定され得る。   The web page may be the data being requested in the request-URI of the request. In one variation, the web page may be identified using another optional header in the request.

フィルタリングアプローチにより、本発明はサーバデバイスとクライアントデバイスとの間でデータを送信する方法を提供し、この方法は、サーバデバイスにおいて:
第1データを得るHTTPリクエストをクライアントデバイスから受け取るステップであって、HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、受け取るステップ;
第1データを取り出してクライアントデバイスに送るステップ;ならびに
もし第1任意ヘッダフィールドがHTTPリクエスト内に存在するならば:
HTTPリクエストから得られたメインリソースを用いてデータのセットを特定するステップ;
第2データのリストを得るために1つまたは複数のフィルタリングパラメータを用いて、特定されたセットの各データをフィルタリングするステップ;および
第2データをクライアントデバイスにプッシュするステップ;
を含む。
With a filtering approach, the present invention provides a method for transmitting data between a server device and a client device, which method at the server device:
Receiving an HTTP request for obtaining first data from a client device, wherein the HTTP request includes a first optional header field including one or more filtering parameters;
Retrieving the first data and sending it to the client device; and if the first optional header field is present in the HTTP request:
Identifying a set of data using the main resource obtained from the HTTP request;
Filtering each identified set of data using one or more filtering parameters to obtain a list of second data; and pushing the second data to the client device;
including.

クライアントの視点からは、本発明はサーバデバイスとクライアントデバイスとの間でデータを送信する方法を提供し、この方法は、クライアントデバイスにおいて:
第1データを得るHTTPリクエストを生成するステップであって、HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、生成するステップ;
第1データを得るとともにサーバデバイスに、HTTPリクエストから推定されるメインリソースにおいて参照される第2データを、フィルタリングパラメータに従って、プッシュさせるためにHTTPリクエストをサーバデバイスに送るステップ;
を含む。
From a client point of view, the present invention provides a method for transmitting data between a server device and a client device, the method at the client device:
Generating an HTTP request to obtain first data, wherein the HTTP request includes a first optional header field that includes one or more filtering parameters;
Obtaining the first data and sending the HTTP request to the server device to cause the server device to push the second data referenced in the main resource estimated from the HTTP request according to the filtering parameters;
including.

フィルタリングアプローチとしてのプッシュ特定ヘッダの使用の幾つかの例が次に記載される。   Some examples of the use of push specific headers as a filtering approach will now be described.

第1の例は、クライアントが、それらのタイプに応じてプッシュされるべきサブリソースの優先順位付きリストをサーバに対して示したいときのウェブページのローディング、例えばjssおよびcssならびにその後にhtmlおよびimgをロードするためのローディング、に関連する。その、メインリソースと呼ばれるウェブリソースは、リクエストのrequest−URIにおいて定義されている要求されたものである。特定プッシュヘッダは、次のように定義され得る:
Push−Request: application/javascript;q=1、text/css;q=0.8、text/html;q=0.7、image/png;q=0.6、image/;q=0.4
The first example is the loading of web pages when the client wants to show the server a prioritized list of subresources to be pushed according to their type, eg jss and css and then html and img For loading, related to. The web resource, called the main resource, is the requested one defined in the request-URI of the request. A specific push header can be defined as follows:
Push-Request: application / javascript; q = 1, text / css; q = 0.8, text / html; q = 0.7, image / png; q = 0.6, image / * ; q = 0. 4

これは、クライアントがそれらのタイプ(例えばそれらのMIMEタイプ、コンテンツタイプ、フォーマットタイプまたはコーデックタイプ)に応じてプッシュされるべきリソース(例えば、メインリソースで宣言されているサブリソース)のセットを望んでいるというサーバに対する指示である。   This wants a set of resources (eg sub-resources declared in the main resource) that the client should be pushed according to their type (eg their MIME type, content type, format type or codec type) This is an instruction to the server.

ここで、クライアントによる好みの相対的程度を示すAcceptヘッダの‘q’パラメータと類似する仕方で‘q’パラメータを使用して各リソースタイプに優先レベルが提供される。q=0は幾つかのリソースタイプをサーバによるプッシュから除外することを可能にするということに留意されたい。   Here, a priority level is provided for each resource type using the 'q' parameter in a manner similar to the 'q' parameter in the Accept header indicating the relative degree of preference by the client. Note that q = 0 allows some resource types to be excluded from being pushed by the server.

この例では、優先順位‘q’は、サブリソースがサーバによりプッシュされなければならないクライアントの好む順序またはバージョン(例えば、好まれる解像度に応じた)を定義することを可能にする。結果として、サーバは、プッシュされるデータの順序リストを提供するためにサブリソースをフィルタリングしなければならない。   In this example, the priority 'q' allows to define the preferred order or version (eg, depending on the preferred resolution) of the clients that the sub-resource should be pushed by the server. As a result, the server must filter sub-resources to provide an ordered list of pushed data.

第2の例は、ウェブページのためのイメージのローディングに関し、このときそのウェブページはリクエストのrequest−URIにおいて定義されている要求されたデータではない。そのような状況では、特定プッシュヘッダのサポート部分は、HTTP“Referer”ヘッダを明示的に示す。これは、クライアントが望んでいる追加リソースがRefererヘッダの値で示されるメインリソースのサブリソースであるという、サーバに対する指示である。任意に、下記のヘッダは、.pngイメージフォーマットのイメージに対する優先順位を用いて、“Referer”HTTPヘッダにおいて示されているウェブページの全てのイメージのローディングを行わせる:
Push−Request:Referer;image/png;q=0.6,image/;q=0.4
Referer:the_url_to−web−page
The second example relates to loading an image for a web page, where the web page is not the requested data as defined in the request-URI of the request. In such a situation, the support part of the specific push header explicitly indicates the HTTP “Referer” header. This is an instruction to the server that the additional resource desired by the client is a sub-resource of the main resource indicated by the value of the Referer header. Optionally, the header below is. Use the priority for images in the png image format to cause all images on the web page shown in the “Referer” HTTP header to be loaded:
Push-Request: Referer; image / png; q = 0.6, image / * ; q = 0.4
Referer: the_url_to-web-page

第3の例はDASHストリーミング、特にMPDローディングおよび急速スタートに関連する。プッシュヘッダは次の通りであり得、MPDはリクエストのrequest−URIにおいて定義されている要求されたデータである:
Push−Request:video/mp4;q=1、video/webm;q=0.4
A third example relates to DASH streaming, particularly MPD loading and rapid start. The push header can be: MPD is the requested data as defined in the request-URI of the request:
Push-Request: video / mp4; q = 1, video / webm; q = 0.4

これは、“video/webm”MIMEタイプを有するセグメントではなくて“video/mp4”MIMEタイプを有するメディアセグメントからスタートするというクライアントからの好みを示す。同等の例は:
Push−Request:URI;video.{1};{video/.mp4;q=1,video/webm;q=0.4}
を書くことであり得る。
This indicates the client's preference to start with a media segment having a “video / mp4” MIME type rather than a segment having a “video / webm” MIME type. An equivalent example is:
Push-Request: URI; video. {1}; {video / * . mp4; q = 1, video / webm; q = 0.4}
Can be written.

上の例においては、メインリソース、すなわちMPD、のためのURIに基づいて、サーバは、クライアントにプッシュするmp4フォーマットの全てのビデオセグメントを推論することができる。このワイルドカード代入値に関しては、例えば所与のマニフェストのための静的設定情報に基づいてあるいはMPD分析から、プッシュするセグメントのリストを決定することはサーバの義務である。   In the above example, based on the URI for the main resource, ie MPD, the server can infer all video segments in mp4 format to push to the client. For this wildcard substitution value, it is the server's duty to determine the list of segments to push, for example based on static configuration information for a given manifest or from MPD analysis.

より一般的に、これは、例えばjavascriptコードのピースまたはCSSサブリソースをダウンロードするクライアントが、自身が同じリクエストのためにそれぞれそのjavascriptコードおよびCSSサブリソースにおいて参照されているサブリソースをも入手したいということをウェブページにおいて宣言するとともにサーバに対して示すときに有益であり得る。   More generally, this means that, for example, a client that downloads a piece of javascript code or a CSS subresource wants to also get the subresource that is referenced in the javascript code and CSS subresource respectively for the same request. This can be useful when declaring this in a web page and showing it to the server.

第4の例は、ビデオストリーミング、より具体的にはバイトレンジ単位でシークすることに関連する。もしHTTPリクエストにおいてSegmentBase URLおよびバイトレンジを用いてメディアコンテンツのサブパートが要求されるならば、その同じリクエスト内の次のプッシュヘッダは、バイトレンジ[1400−4000]のプッシュ、およびその後により低い優先順位でバイトレンジ[4000−6000]のプッシュを行わせることを可能にする:
Push−Request:Range;{1};[1400−4000];q=1:[4000−6000];q=0.8
The fourth example relates to video streaming, more specifically seeking in byte range units. If a media content subpart is requested using a SegmentBase URL and byte range in an HTTP request, the next push header in that same request will be pushed in byte range [1400-4000] and then lower priority Allows to push the byte range [4000-6000]:
Push-Request: Range; {1}; [1400-4000]; q = 1: [4000-6000]; q = 0.8

第5の例は、DASHアプリケーションに関して、プッシュされるべきリソースのセットをメインリソース、すなわちマニフェスト、に関連するものとして記述する。これは、値“Referer”を有する特定プッシュヘッダのサポート部分を通して示される。パターン部分はビデオリソースのセットを示し、ワイルドカード代入値はビデオセグメントのタイプ、ここではmp4、に基づくフィルタリングルールを示す:
Push−Request:Referer;video.{1};video/.mp4
Referer:the_url_to−MPD
The fifth example describes a set of resources to be pushed as related to the main resource, ie the manifest, for the DASH application. This is indicated through the support part of the specific push header with the value “Referer”. The pattern portion indicates a set of video resources, and the wildcard substitution value indicates a filtering rule based on the type of video segment, here mp4:
Push-Request: Referer; video. {1}; video / * . mp4
Referer: the_url_to-MPD

これは、クライアントが特定プッシュヘッダにおいてワイルドカード値を使用することを可能にする。   This allows the client to use wildcard values in specific push headers.

Refererヘッダは、任意のものであるけれども、インテリジェントなサーバ(MPDアウェア)の場合には、それの値は、サーバがクライアントにより示されたセグメント(より一般的には(サブ−)リソース)のセットをフィルタリングするのを助けることができる。   Although the Referer header is optional, in the case of an intelligent server (MPD aware), its value is the set of segments (more generally (sub-) resources) the server has pointed to by the client. Can help to filter.

図9は、複数の実施形態によるデバイスの略図である。このデバイスはサーバ、クライアントまたはプロキシであり得る。このデバイスは、複数の実施形態による方法を実行するために構成された制御ユニット901のための作業メモリとして使用され得るRAMメモリ902を含む。例えば、制御ユニットは、ROMメモリ903からロードされたコンピュータプログラムの命令を実行するように構成され得る。プログラムは、ハードドライブ906からもロードされ得る。   FIG. 9 is a schematic diagram of a device according to embodiments. This device may be a server, client or proxy. The device includes a RAM memory 902 that can be used as a working memory for a control unit 901 configured to perform methods according to embodiments. For example, the control unit may be configured to execute instructions of a computer program loaded from ROM memory 903. The program can also be loaded from the hard drive 906.

デバイスは、単一のネットワークインターフェースであり得るネットワークインターフェース904も含み、あるいはネットワークインターフェースのセット(例えば、数個の無線インターフェース、または数タイプの有線もしくは無線インターフェース)を含む。デバイスは、ユーザに対して情報を表示するとともにユーザから入力を受け取るためのユーザインターフェース905を含むことができる。   The device also includes a network interface 904, which can be a single network interface, or includes a set of network interfaces (eg, several wireless interfaces, or several types of wired or wireless interfaces). The device can include a user interface 905 for displaying information to the user and receiving input from the user.

デバイスは、外部デバイスからデータを受け取りおよび/または外部デバイスにデータを送るための入力/出力モジュール907をも含むことができる。   The device may also include an input / output module 907 for receiving data from and / or sending data to the external device.

本発明は図面に詳しく図示されるとともに叙上において詳しく記載されているが、そのような図示および記載は例示的もしくは代表的なものであって制限的なものではないと見なされるべきであり、本発明は、開示された実施形態に限定されない。開示された実施形態に対する他の改変は、請求項に記載された発明を実施するにあたって図面、明細書および添付されている請求項の検討から、当業者に理解され実施され得る。   While the invention has been illustrated in detail in the drawings and described in detail above, such illustration and description are to be considered illustrative or exemplary and not restrictive; The invention is not limited to the disclosed embodiments. Other modifications to the disclosed embodiments can be understood and implemented by those skilled in the art from consideration of the drawings, specification, and appended claims in practicing the claimed invention.

そのような改変は、特に、発明の概要および/または添付されている請求項において明らかにされている実施形態を組み合わせることから派生し得る。   Such modifications may be derived, inter alia, from the combination of embodiments set forth in the summary of the invention and / or the appended claims.

請求項において、“含む”という語は他のエレメントやステップを除外せず、不定冠詞“a”もしくは“an”は複数を除外しない。単一のプロセッサまたは他のユニットは、請求項に記載されている数個のアイテムの機能を遂行することができる。互いに異なる従属請求項において様々な特徴が述べられているという単なる事実は、これらの特徴の組み合わせが有利に使用され得ないということを示すものではない。請求項における参照符号は、本発明の範囲を限定するものと見なされるべきではない。   In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that various features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be used to advantage. Any reference signs in the claims should not be construed as limiting the scope of the invention.

Claims (29)

サーバデバイスとクライアントデバイスとの間でデータを送信する方法であって、この方法は、前記サーバデバイスにおいて:
第1データを得るHTTPリクエストを前記クライアントデバイスから受け取るステップであって、前記HTTPリクエストは前記サーバデバイス上の前記第1データの特定を可能にする第1データ特定情報を含むとともに、第2データをプッシュすることに関連する指示を含む1つまたは複数の追加のヘッダフィールドを含む、前記受け取るステップ;
前記第1データを取り出して前記クライアントデバイスに送るステップ;
第2データをプッシュすることに関連する前記指示を表す確認応答データを前記クライアントデバイスに送るステップ;および
前記1つまたは複数のヘッダフィールドだけ、および場合によってはさらに前記第1データ特定情報、を用いて、前記サーバデバイス上の前記第2データの特定を可能にする第2データ特定情報を決定するステップ;
を含む、方法。
A method for transmitting data between a server device and a client device, the method comprising:
Receiving an HTTP request for obtaining first data from the client device, wherein the HTTP request includes first data specifying information that enables the first data on the server device to be specified; Said receiving step including one or more additional header fields containing instructions related to pushing;
Retrieving the first data and sending it to the client device;
Sending acknowledgment data representative of the indication associated with pushing second data to the client device; and using only the one or more header fields and possibly further the first data identification information. Determining second data identification information that enables identification of the second data on the server device;
Including a method.
前記第2データの前記プッシュをアナウンスするプッシュ約束メッセージを前記クライアントデバイスに送るステップおよび/または前記第2データを前記クライアントデバイスにプッシュするステップ、
をさらに含む、請求項1に記載の方法。
Sending a push commitment message to the client device that announces the push of the second data and / or pushing the second data to the client device;
The method of claim 1, further comprising:
前記確認応答データは前記第2データをプッシュするための指示を表す、請求項1に記載の方法。   The method of claim 1, wherein the acknowledgment data represents an instruction to push the second data. 第2データをプッシュすることに関連する前記指示は、第2データをプッシュすることに関連する少なくとも2つの異なる指示を含むリストを含む、請求項1に記載の方法。   The method of claim 1, wherein the instructions associated with pushing second data include a list including at least two different instructions associated with pushing second data. 前記確認応答データは第2データをプッシュすることに関連する前記少なくとも2つの異なる指示のうちの1つを含み、第2データをプッシュすることに関連する前記少なくとも2つの異なる指示のうちの前記の1つは、前記クライアントデバイスにプッシュされるべき前記第2データを特定するために使用される、請求項4に記載の方法。   The acknowledgment data includes one of the at least two different instructions associated with pushing second data, and the acknowledgment data includes the one of the at least two different instructions associated with pushing second data. The method of claim 4, wherein one is used to identify the second data to be pushed to the client device. 第2データをプッシュすることに関連する前記指示は前記第2データのデータのタイプと関連付けられ、前記データのタイプは記述データタイプまたはコンテンツデータタイプを含み、前記第2データはコンテンツデータにまたは記述データに属する、請求項1に記載の方法。   The instruction associated with pushing second data is associated with a data type of the second data, the data type including a descriptive data type or a content data type, and the second data is in or described in the content data The method of claim 1, belonging to data. 前記確認応答データは、第2データをプッシュすることに関連する指示を含み、前記確認応答データ内の第2データをプッシュすることに関連する前記指示は、前記HTTPリクエスト内の第2データをプッシュすることに関連する前記指示とは異なる、請求項1に記載の方法。   The acknowledgment data includes instructions associated with pushing second data, and the instructions associated with pushing second data within the acknowledgment data push second data within the HTTP request. The method of claim 1, wherein the method is different from the instructions related to doing. 第2データをプッシュすることに関連する前記指示は、少なくとも1つの一意識別子を含み、前記少なくとも1つの一意識別子は、第2データをプッシュするためのディレクティブとプッシュされるべき前記第2データのアイデンティフィケーションとを表すかまたは第2データをプッシュしないためのディレクティブを表す、請求項1に記載の方法。   The indication related to pushing second data includes at least one unique identifier, the at least one unique identifier being a directive for pushing second data and an identifier of the second data to be pushed. The method of claim 1, wherein the method represents a directive or represents a directive not to push the second data. 前記1つまたは複数の追加ヘッダフィールドは1つまたは複数の任意ヘッダフィールドである、請求項1に記載の方法。   The method of claim 1, wherein the one or more additional header fields are one or more optional header fields. 前記第1および第2のデータ特定情報は、それぞれ、第1および第2のユニフォームリソースアイデンティファイア、URI、を含む、請求項1に記載の方法。   The method of claim 1, wherein the first and second data identification information includes first and second uniform resource identifiers, URIs, respectively. 前記1つまたは複数の任意ヘッダフィールドは、前記HTTPリクエストの前記内容から前記第2URIを生成する少なくとも1つの構築ルールを含む、請求項10に記載の方法。   The method of claim 10, wherein the one or more optional header fields include at least one construction rule that generates the second URI from the content of the HTTP request. 前記1つまたは複数の任意ヘッダフィールドは変化部分情報および代入情報を含み、前記変化部分情報は参照URI内の少なくとも1つの変化サブパーツを特定し、前記代入情報は1つまたは複数の前記第2のURIを定義するために前記参照URIにおいて特定される前記変化サブパーツに取って代わる少なくとも1つの代入値を含む、請求項10に記載の方法。   The one or more optional header fields include change part information and substitution information, the change part information identifying at least one change subpart in a reference URI, wherein the substitution information is one or more of the second ones. The method of claim 10, comprising at least one substitution value that replaces the change subpart identified in the reference URI to define a URI of the reference URI. 前記第1データ特定情報は、前記サーバデバイス上のメインリソースを特定する第1ユニフォームリソースアイデンティファイア、URI、を含むとともに、前記メインリソースのサブパーツを前記第1データとして定義するサブパーツ情報を含み;および
前記任意ヘッダフィールドは、前記第2データ特定情報を定義するために前記第1データ特定情報内の前記サブパーツ情報に取って代わる代入サブパーツ情報を含む、
請求項11に記載の方法。
The first data specifying information includes a first uniform resource identifier, URI that specifies a main resource on the server device, and subpart information that defines a subpart of the main resource as the first data. And the optional header field includes substitution subpart information that replaces the subpart information in the first data identification information to define the second data identification information;
The method of claim 11.
前記サブパーツ情報は、前記メインリソースの中のバイトのレンジ値を含む、請求項13に記載の方法。   The method of claim 13, wherein the sub-part information includes a range value of bytes in the main resource. 前記1つまたは複数の任意ヘッダフィールドは変化部分情報および代入情報を含み、前記変化部分情報は参照URI内の少なくとも1つの変化サブパーツを特定し、前記代入情報は1つまたは複数の前記第2のURIを定義するために前記参照URIにおいて特定される前記変化サブパーツに取って代わる少なくとも1つの代入値を含む、請求項10に記載の方法。   The one or more optional header fields include change part information and substitution information, the change part information identifying at least one change subpart in a reference URI, wherein the substitution information is one or more of the second ones. The method of claim 10, comprising at least one substitution value that replaces the change subpart identified in the reference URI to define a URI of the reference URI. 前記変化部分情報は、前記代入情報に含まれるそれぞれの1つまたは複数の代入値を用いて置換されるべき前記参照URI内の2つ以上のサブパーツを特定する、請求項15に記載の方法。   16. The method of claim 15, wherein the changed portion information identifies two or more subparts in the reference URI that are to be replaced using each one or more substitution values included in the substitution information. . サーバデバイスとクライアントデバイスとの間でデータを送信する方法であって、前記方法は、クライアントデバイスにおいて:
前記サーバデバイスから得られるべきデータを特定するステップ;
前記特定されたデータから第1データを得るHTTPリクエストを生成するステップであって、前記HTTPリクエストは、前記サーバデバイス上の前記第1データの特定を可能にする第1データ特定情報を含むとともに前記サーバデバイスが第2データをプッシュするべきか第2データをプッシュするべきでないかに関する指示を含む1つまたは複数の追加のヘッダフィールドを含む、前記生成するステップ;
前記第1データを得るとともに前記サーバデバイスに第2データをプッシュさせまたはプッシュさせないために前記HTTPリクエストを前記サーバデバイスに送るステップ;および
前記HTTPリクエストを送ることに応答して確認応答データを前記サーバデバイスから受け取るステップであって、前記確認応答データは第2データをプッシュすることに関連する前記指示を表す、前記受け取るステップ;を含み、
前記1つまたは複数の追加のヘッダフィールドは、前記1つまたは複数の追加のヘッダフィールドだけに、および場合によってはさらに前記第1データ特定情報に、基づいて、前記サーバデバイス上の前記特定されたデータから第2データの特定を可能にする第2データ特定情報を定義する、
方法。
A method for transmitting data between a server device and a client device, said method at a client device:
Identifying data to be obtained from the server device;
Generating an HTTP request to obtain first data from the identified data, wherein the HTTP request includes first data identifying information enabling identification of the first data on the server device, and Said generating step including one or more additional header fields including an indication as to whether the server device should or should not push the second data;
Sending the HTTP request to the server device to obtain the first data and prevent the server device from pushing or pushing second data; and in response to sending the HTTP request, acknowledgment data is sent to the server Receiving from the device, wherein the acknowledgment data represents the instruction associated with pushing second data, the receiving step;
The one or more additional header fields are identified on the server device based solely on the one or more additional header fields, and possibly further based on the first data identification information. Defining second data identification information that allows identification of the second data from the data;
Method.
サーバデバイスからクライアントデバイスによりデータを受け取る方法であって、前記方法は、前記クライアントデバイスにおいて:
第1データを得るHTTPリクエストを送るステップであって、前記HTTPリクエストは、前記サーバデバイス上の前記第1データの特定を可能にする第1データ特定情報を含むとともに1つまたは複数の追加のヘッダフィールドを含む、前記送るステップ;
もし前記第1データと異なる第2データを前記サーバデバイスがプッシュすることを前記クライアントが希望しなければ、前記HTTPリクエストに応答して第2データが前記サーバによりプッシュされることを前記クライアントが希望しないことを示す情報アイテムを前記1つまたは複数の追加ヘッダフィールドのうちの少なくとも1つに挿入するステップ;および
前記HTTPリクエストを前記サーバデバイスに送るステップ;
を含む、方法。
A method of receiving data from a server device by a client device, the method at the client device:
Sending an HTTP request to obtain first data, the HTTP request including first data identification information enabling identification of the first data on the server device and one or more additional headers Said sending step including a field;
If the client does not want the server device to push second data different from the first data, the client wants the second data to be pushed by the server in response to the HTTP request. Inserting an information item indicating no to into at least one of the one or more additional header fields; and sending the HTTP request to the server device;
Including a method.
データをサーバデバイスからクライアントデバイスに送る方法であって、前記方法は、前記サーバデバイスにおいて:
第1データを得るHTTPリクエストを前記クライアントデバイスから受け取るステップであって、前記HTTPリクエストは前記サーバデバイス上の第1データの特定を可能にする第1データ特定情報を含むとともに、1つまたは複数の追加のヘッダフィールドを含む、前記受け取るステップ;
前記第1データを取り出して前記クライアントデバイスに送るステップ;および
前記サーバは前記HTTPリクエストに応じて前記第1データと異なる第2データを前記クライアントにプッシュしないということを示す情報アイテムを送るステップ;
を含む、方法。
A method of sending data from a server device to a client device, the method at the server device:
Receiving an HTTP request for obtaining first data from the client device, wherein the HTTP request includes first data identification information that enables identification of the first data on the server device and includes one or more Said receiving step including an additional header field;
Retrieving the first data and sending it to the client device; and sending an information item indicating that the server does not push second data different from the first data to the client in response to the HTTP request;
Including a method.
前記サーバは第2データをプッシュしないということを示す前記情報は少なくとも1つの一意識別子を含み、前記少なくとも1つの一意識別子は第2データをプッシュさせないためのディレクティブを表す、請求項19に記載の方法。   20. The method of claim 19, wherein the information indicating that the server does not push second data includes at least one unique identifier, and the at least one unique identifier represents a directive to prevent second data from being pushed. . 前記HTTPリクエストを送ることに応答して、前記サーバデバイスから確認応答データを受け取るステップをさらに含み、前記確認応答データは、前記第1データと異なる第2データを前記サーバがプッシュしないということを示す情報アイテムを含む、請求項18に記載の方法。   In response to sending the HTTP request, further comprising receiving acknowledgment data from the server device, wherein the acknowledgment data indicates that the server does not push second data different from the first data. The method of claim 18, comprising an information item. 前記第1データを取り出して前記クライアントデバイスに送るステップ;および
前記サーバは、前記HTTPリクエストに応答して、前記第1データと異なる第2データを前記クライアントに送らないということを示す情報アイテムを前記クライアントに送るステップ;
をさらに含む、請求項19に記載の方法。
Retrieving the first data and sending it to the client device; and in response to the HTTP request, the server sends an information item indicating that no second data different from the first data is sent to the client. Sending to the client;
20. The method of claim 19, further comprising:
前記サーバが第2データをプッシュしないということを示す前記情報は少なくとも1つの一意識別子を含み、前記少なくとも1つの一意識別子は第2データをプッシュしないためのディレクティブを表す、請求項19に記載の方法。   20. The method of claim 19, wherein the information indicating that the server does not push second data includes at least one unique identifier, and the at least one unique identifier represents a directive for not pushing second data. . 前記サーバにより第2データがプッシュされることを前記クライアントが希望しないということを示す前記情報は少なくとも1つの一意識別子を含み、前記少なくとも1つの一意識別子は第2データをプッシュしないためのディレクティブを表す、請求項19に記載の方法。   The information indicating that the client does not want second data to be pushed by the server includes at least one unique identifier, and the at least one unique identifier represents a directive for not pushing second data. The method of claim 19. サーバデバイスとクライアントデバイスとの間でデータを送信する方法であって、前記方法は、前記サーバデバイスにおいて:
第1データを得るHTTPリクエストを前記クライアントデバイスから受け取るステップであって、前記HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、前記受け取るステップ;
前記第1データを取り出して前記クライアントデバイスに送るステップ;ならびに
もし前記第1任意ヘッダフィールドが前記HTTPリクエスト内に存在するならば:
前記HTTPリクエストから得られたメインリソースを用いてデータのセットを特定するステップ;
第2データのリストを得るために前記1つまたは複数のフィルタリングパラメータを用いて、前記特定されたセットの各データをフィルタリングするステップ;および
前記第2データを前記クライアントデバイスにプッシュするステップ;
を含み、前記1つまたは複数のフィルタリングパラメータは:
− リソースタイプを定義し;前記1つまたは複数のリソースタイプはアプリケーションタイプ、テキストタイプ、イメージタイプ、ビデオタイプ、オーディオタイプからの1つまたは複数のタイプを含み;または
− DASHメディアプレゼンテーション記述内のエレメントの識別子を用いてデータの1つまたは複数のグループを特定し;または
− 前記メインリソースのサブパーツを特定する時間レンジを用いて前記第1任意ヘッダフィールドにおいて定義される;
方法。
A method for transmitting data between a server device and a client device, said method comprising:
Receiving an HTTP request to obtain first data from the client device, wherein the HTTP request includes a first optional header field including one or more filtering parameters;
Retrieving the first data and sending it to the client device; and if the first optional header field is present in the HTTP request:
Identifying a set of data using a main resource obtained from the HTTP request;
Filtering each of the identified sets of data using the one or more filtering parameters to obtain a list of second data; and pushing the second data to the client device;
And the one or more filtering parameters include:
Defining a resource type; the one or more resource types include one or more of an application type, a text type, an image type, a video type, an audio type; or an element in a DASH media presentation description Identifying one or more groups of data using identifiers of: or-defined in the first optional header field using a time range identifying subparts of the main resource;
Method.
サーバデバイスとクライアントデバイスとの間でデータを送信する方法であって、前記方法は、前記クライアントデバイスにおいて:
第1データを得るHTTPリクエストを生成するステップであって、前記HTTPリクエストは1つまたは複数のフィルタリングパラメータを含む第1任意ヘッダフィールドを含む、前記生成するステップ;
前記第1データを得るとともに前記サーバデバイスに、前記HTTPリクエストから推定されるメインリソースにおいて参照される第2データを、前記フィルタリングパラメータに従って、プッシュさせるために前記HTTPリクエストを前記サーバデバイスに送るステップ;
を含み、
前記1つまたは複数のフィルタリングパラメータは:
− リソースタイプを定義し;前記1つまたは複数のリソースタイプは、アプリケーションタイプ、テキストタイプ、イメージタイプ、ビデオタイプ、オーディオタイプからの1つまたは複数のタイプを含み;または
− DASHメディアプレゼンテーション記述内のエレメントの識別子を用いてデータの1つまたは複数のグループを特定し;または
− 前記メインリソースのサブパーツを特定する時間レンジを用いて前記第1任意ヘッダフィールドにおいて定義される;
方法。
A method for transmitting data between a server device and a client device, said method comprising:
Generating an HTTP request for obtaining first data, wherein the HTTP request includes a first optional header field including one or more filtering parameters;
Obtaining the first data and sending the HTTP request to the server device to cause the server device to push the second data referenced in the main resource estimated from the HTTP request according to the filtering parameters;
Including
The one or more filtering parameters are:
Defining a resource type; the one or more resource types include one or more types from application type, text type, image type, video type, audio type; or-in a DASH media presentation description Identifying one or more groups of data using an identifier of the element; or-defined in the first optional header field using a time range identifying a sub-part of the main resource;
Method.
プログラマブルな装置のためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、前記プログラムがプログラマブルな装置によってロードされて実行されたとき請求項1、17、18、19、25および26のうちのいずれか1つに記載の方法の各ステップを実行するための命令を含む、コンピュータプログラム製品。   27. A computer program product for a programmable device, wherein the computer program product is loaded and executed by a programmable device according to any of claims 1, 17, 18, 19, 25 and 26. A computer program product comprising instructions for performing the steps of the method according to claim 1. 請求項1、17、18、19、25および26のうちのいずれか1つに記載の方法を実行するためのコンピュータプログラムの命令を記憶しているコンピュータ可読記憶媒体。   27. A computer readable storage medium storing instructions of a computer program for performing the method of any one of claims 1, 17, 18, 19, 25 and 26. 請求項1、17、18、19、25および26のうちのいずれか1つに記載の方法の各ステップを実行するようになされている手段を含むデバイス。   27. A device comprising means adapted to carry out the steps of the method according to any one of claims 1, 17, 18, 19, 25 and 26.
JP2017537233A 2015-01-28 2016-01-15 Improved client-driven push of resources by server devices Active JP6686029B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1501437.6 2015-01-28
GB1501437.6A GB2534849A (en) 2015-01-28 2015-01-28 Client-driven push of resources by a server device
GB1509094.7A GB2534617A (en) 2015-01-28 2015-05-27 Improved client-driven push of resources by a server device
GB1509094.7 2015-05-27
PCT/EP2016/050713 WO2016120089A1 (en) 2015-01-28 2016-01-15 Improved client-driven push of resources by a server device

Publications (3)

Publication Number Publication Date
JP2018509679A true JP2018509679A (en) 2018-04-05
JP2018509679A5 JP2018509679A5 (en) 2019-02-21
JP6686029B2 JP6686029B2 (en) 2020-04-22

Family

ID=52674078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017537233A Active JP6686029B2 (en) 2015-01-28 2016-01-15 Improved client-driven push of resources by server devices

Country Status (7)

Country Link
US (2) US10348846B2 (en)
EP (1) EP3251322B1 (en)
JP (1) JP6686029B2 (en)
KR (1) KR102007105B1 (en)
CN (1) CN107211022B (en)
GB (3) GB2534849A (en)
WO (1) WO2016120089A1 (en)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2953313A1 (en) * 2014-06-05 2015-12-09 Thomson Licensing Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache
US11917002B2 (en) 2014-10-14 2024-02-27 Comcast Cable Communications, Llc Manipulation and recording of content transmissions
US11943289B2 (en) 2014-10-14 2024-03-26 Comcast Cable Communications, Llc Manipulation of content transmissions
US10880357B2 (en) * 2014-12-23 2020-12-29 Adobe Inc. Reducing requests for media segments in streaming of multimedia content
GB2534849A (en) * 2015-01-28 2016-08-10 Canon Kk Client-driven push of resources by a server device
GB2540632B (en) * 2015-07-24 2018-05-16 Canon Kk Methods, devices and computer programs for pushing data in a network environment comprising cache servers
US10152080B2 (en) * 2015-09-23 2018-12-11 Adobe Systems Incorporated Power efficient multimedia content streaming based on media segment duration
US10158682B2 (en) 2015-09-23 2018-12-18 Adobe Systems Incorporated Power efficient multimedia content streaming based on a server push
CN106604077B (en) * 2015-10-14 2020-09-29 中兴通讯股份有限公司 Self-adaptive streaming media transmission method and device
US20180109577A1 (en) * 2016-10-13 2018-04-19 Sharp Laboratories Of America, Inc. Systems and methods for enabling communications associated with digital media distribution
CN107959667B (en) * 2016-10-18 2020-10-09 华为技术有限公司 Media fragment pushing method, server and client
US20180176325A1 (en) * 2016-12-15 2018-06-21 Huawei Technologies Co., Ltd. Data pre-fetching in mobile networks
CN108512876B (en) * 2017-02-27 2020-11-10 腾讯科技(深圳)有限公司 Data pushing method and device
US11659057B2 (en) 2017-04-19 2023-05-23 Comcast Cable Communications, Llc Methods and systems for content delivery using server push
KR102307447B1 (en) * 2017-05-02 2021-09-30 삼성전자주식회사 Server, method, and client terminal for http adaptive streaming based on network environment mornitoring
US11477305B2 (en) * 2017-05-03 2022-10-18 Comcast Cable Communications, Llc Local cache bandwidth matching
US20190020734A1 (en) * 2017-07-14 2019-01-17 Comcast Cable Communications, Llc Reduced content manifest size
US11622020B2 (en) * 2017-08-31 2023-04-04 Micro Focus Llc Push control
JP6950408B2 (en) * 2017-09-28 2021-10-13 京セラドキュメントソリューションズ株式会社 Information processing system, image forming device, and information processing method
US10461884B2 (en) 2017-10-05 2019-10-29 Comcast Cable Communications, Llc Server selected variable bitrate streaming
GB2567665B (en) * 2017-10-19 2022-06-22 Arm Ip Ltd Asset update service
US20190141075A1 (en) * 2017-11-09 2019-05-09 Monarx, Inc. Method and system for a protection mechanism to improve server security
CN109981695B (en) * 2017-12-27 2021-03-26 Oppo广东移动通信有限公司 Content pushing method, device and equipment
CN109063142B (en) * 2018-08-06 2021-03-05 网宿科技股份有限公司 Webpage resource pushing method, server and storage medium
US11716264B2 (en) * 2018-08-13 2023-08-01 Cisco Technology, Inc. In situ triggered function as a service within a service mesh
US11290757B2 (en) 2018-09-28 2022-03-29 Comcast Cable Communications, Llc Per-segment parameters for content
CN109151492B (en) * 2018-09-29 2021-02-02 网宿科技股份有限公司 Quick start method and device for live video
CN109359215B (en) * 2018-12-03 2023-08-22 江苏曲速教育科技有限公司 Video intelligent pushing method and system
US11159635B2 (en) * 2019-05-07 2021-10-26 Hulu, LLC Soft server push in video streaming
US11212368B2 (en) * 2019-05-17 2021-12-28 Netflix, Inc. Fire-and-forget offload mechanism for network-based services
CN110730206A (en) * 2019-09-06 2020-01-24 浪潮金融信息技术有限公司 Data service scheme applied to data display of new retail platform
US11425187B2 (en) * 2019-09-30 2022-08-23 Tencent America Llc. Session-based information for dynamic adaptive streaming over HTTP
CN111427850A (en) * 2019-11-06 2020-07-17 杭州海康威视数字技术股份有限公司 Method, device and system for displaying alarm file
CN111586100B (en) * 2020-04-01 2022-04-22 富途网络科技(深圳)有限公司 Target object message sending device and method
CN111988235B (en) * 2020-08-13 2023-05-09 暨南大学 Parallel transmission method based on multiple HTTP/3 connections
US20220078261A1 (en) * 2020-09-10 2022-03-10 Microsoft Technology Licensing, Llc Controlling client/server interaction based upon indications of future client requests
CN112600823A (en) * 2020-12-09 2021-04-02 上海牙木通讯技术有限公司 Handle identifier analysis caching method, query method and handle identifier analysis system
US11451602B2 (en) * 2021-01-06 2022-09-20 Tencent America LLC Methods and apparatuses for dynamic adaptive streaming over HTTP
US11816177B2 (en) * 2021-07-21 2023-11-14 Yext, Inc. Streaming static web page generation
CN114553947B (en) * 2022-01-29 2024-01-19 北京金堤科技有限公司 Method and device for processing message
US12034789B2 (en) * 2022-04-19 2024-07-09 Tencent America LLC Extensible request signaling for adaptive streaming parameterization
CN115022280B (en) * 2022-06-16 2023-07-14 杭州楷知科技有限公司 NAT detection method, client and system
CN114827633B (en) * 2022-06-17 2022-09-13 浙江华创视讯科技有限公司 Media stream disaster tolerance method, device and related equipment
KR102663914B1 (en) * 2022-07-13 2024-05-13 주식회사 시큐다임 Electronic apparatus and method for analyzing http traffic thereby
US11824745B1 (en) * 2022-12-15 2023-11-21 Amazon Technologies, Inc. Reverse engineering computer network system functionality
US20240214449A1 (en) * 2022-12-23 2024-06-27 Akamai Technologies, Inc. Ensuring Coherency Across Responses When Handling A Series Of Client Requests

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130246583A1 (en) * 2012-03-14 2013-09-19 Canon Kabushiki Kaisha Method, system and server device for transmitting a digital resource in a client-server communication system
KR20140055340A (en) * 2012-10-31 2014-05-09 삼성전자주식회사 Method and apparatus for transmitting and receiving media segment using adaptive streaming
WO2015004276A2 (en) * 2013-07-12 2015-01-15 Canon Kabushiki Kaisha Adaptive data streaming method with push messages control

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1461741A4 (en) * 2001-12-06 2006-03-29 Access Co Ltd System and method for providing subscription content services to mobile devices
CN1881242A (en) * 2005-06-14 2006-12-20 张晓东 Trans-enterprise supply chain system WEB application platform for automobile industry
US7873710B2 (en) * 2007-02-06 2011-01-18 5O9, Inc. Contextual data communication platform
CN101350820A (en) * 2008-08-29 2009-01-21 中兴通讯股份有限公司 Safety authentication method for service-feeding proxy gateway to service-feeding initiator
CN101370033B (en) * 2008-09-26 2011-09-14 成都市华为赛门铁克科技有限公司 Method and equipment for propelling message
CN102232298B (en) * 2011-04-07 2013-10-09 华为技术有限公司 Method, device and system for transmitting and processing media content
CN103036960A (en) * 2012-12-07 2013-04-10 中国联合网络通信集团有限公司 Information push method and information push device and information push system
GB2516112B (en) 2013-07-12 2016-10-26 Canon Kk Methods for providing media data, method for receiving media data and corresponding devices
WO2015121342A1 (en) * 2014-02-13 2015-08-20 Koninklijke Kpn N.V. Requesting multiple chunks from a network node on the basis of a single request message
GB2534849A (en) * 2015-01-28 2016-08-10 Canon Kk Client-driven push of resources by a server device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130246583A1 (en) * 2012-03-14 2013-09-19 Canon Kabushiki Kaisha Method, system and server device for transmitting a digital resource in a client-server communication system
KR20140055340A (en) * 2012-10-31 2014-05-09 삼성전자주식회사 Method and apparatus for transmitting and receiving media segment using adaptive streaming
WO2015004276A2 (en) * 2013-07-12 2015-01-15 Canon Kabushiki Kaisha Adaptive data streaming method with push messages control

Also Published As

Publication number Publication date
EP3251322B1 (en) 2021-11-24
US20170230442A1 (en) 2017-08-10
KR20170106426A (en) 2017-09-20
GB2534617A (en) 2016-08-03
CN107211022B (en) 2020-10-27
US10348846B2 (en) 2019-07-09
GB201501437D0 (en) 2015-03-11
GB2538832A (en) 2016-11-30
GB201602333D0 (en) 2016-03-23
US20180013845A1 (en) 2018-01-11
JP6686029B2 (en) 2020-04-22
GB201509094D0 (en) 2015-07-08
EP3251322A1 (en) 2017-12-06
GB2534849A (en) 2016-08-10
KR102007105B1 (en) 2019-08-02
WO2016120089A1 (en) 2016-08-04
GB2538832B (en) 2019-10-09
CN107211022A (en) 2017-09-26

Similar Documents

Publication Publication Date Title
JP6686029B2 (en) Improved client-driven push of resources by server devices
US11375031B2 (en) Adaptive data streaming method with push messages control
JP5658820B2 (en) Media presentation description delta file for HTTP streaming
JP2016531466A5 (en)
WO2012083296A2 (en) Proxy server with byte-based include interpreter
GB2534057A (en) Methods for providing media data, method for receiving media data and corresponding devices
GB2517060A (en) Adaptive data streaming method with push messages control
GB2575189A (en) Adaptive client-driven push of resources by a server device
GB2543279A (en) Methods, devices and computer programs for optimizing use of bandwidth when pushing data in a network environment comprising cache servers

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190108

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200110

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200303

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200401

R151 Written notification of patent or utility model registration

Ref document number: 6686029

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151