JP6404915B2 - Automatic data compression - Google Patents
Automatic data compression Download PDFInfo
- Publication number
- JP6404915B2 JP6404915B2 JP2016520362A JP2016520362A JP6404915B2 JP 6404915 B2 JP6404915 B2 JP 6404915B2 JP 2016520362 A JP2016520362 A JP 2016520362A JP 2016520362 A JP2016520362 A JP 2016520362A JP 6404915 B2 JP6404915 B2 JP 6404915B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- processing
- component
- communication channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/765—Media network packet handling intermediate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
- H04L12/1827—Network arrangements for conference optimisation or adaptation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本文書は、特にアプリケーションの分散処理の文脈において、データが符号化された様式で転送されるかを自動的に決定する制御ユニットおよびシステムに関する。 This document relates to control units and systems that automatically determine whether data is transferred in an encoded manner, particularly in the context of distributed processing of applications.
近年、データ、コンピュータプログラムおよびアプリケーションは益々、ネットワーク中心のデータセンター(「クラウド」)において格納され実行されるようになっている。しかしながら、特に、クラウドにおけるメディアデータの分散リアルタイム処理の技術分野において、帯域幅およびエンドツーエンド遅延制約のために、リアルタイムメディアの処理は、ネットワークリンクを横断した伝送データに関する敏感さを特に必要とする。 In recent years, data, computer programs and applications are increasingly stored and executed in network-centric data centers (“clouds”). However, especially in the technical field of distributed real-time processing of media data in the cloud, due to bandwidth and end-to-end delay constraints, processing of real-time media particularly requires sensitivity with respect to transmission data across network links. .
サービス型プラットフォーム(PaaS:Platform−as−a−Service)手法において、ネットワークの異なる部分に配置された処理ノード上に分離可能なソフトウェアコンポーネントから構成されるアプリケーションを自動的に配布する機能が提供される。共有データの局所性を利用して伝送ネットワーク内のトラフィックを最小化し、処理ノードのリソース利用を最適化し、ネットワーク内のユーザ一の位置に近い遅延に敏感なタスクを処理することでユーザ体験を改良するために、この配布は利用される。クラウドベースの処理環境において、別個の処理ノード上で実行される別々のソフトウェアタスクの間の異なるデータ伝送シナリオが適用され得る。典型的なシナリオは、エンドデバイスへの、およびエンドデバイスからネットワークの向こう側のメディア処理ノードへのメディアデータ伝送、単一のデータセンター内の処理ノード間のメディアデータ伝送、および異なるデータセンター内に配置された処理ノード間のメディアデータ伝送である。 In a service-type platform (PaaS) approach, a function is provided for automatically distributing an application composed of separable software components on processing nodes arranged in different parts of a network. . Utilize shared data locality to minimize traffic in the transmission network, optimize processing node resource utilization, and improve user experience by processing delay sensitive tasks close to the user's location in the network This distribution is used to do this. In a cloud-based processing environment, different data transmission scenarios between different software tasks executed on separate processing nodes can be applied. Typical scenarios are media data transmission to and from end devices to media processing nodes across the network, media data transmission between processing nodes within a single data center, and within different data centers. Media data transmission between arranged processing nodes.
サービスプラットフォーム上の分散処理から利益を得る典型的なアプリケーションシナリオは、たとえばビデオチャットである。ビデオチャットのシナリオでは、たとえば、人々のグループが、仮想の共有されたビデオ環境/ビデオチャットルームに参加する。各個人は、自身のカメラのビデオデータをクラウドにストリーミングする。ビデオチャットサービスは、そのような共有環境内に集まっているユーザの全てのメディアストリームを結合し、各参加者に対する仮想ルームの個人用ビューを生成する(すなわち、処理する)。したがって、仮想ルーム内の各個人は、全ての(他の)参加者の個人用のレンダリングされたビューを受信する。 A typical application scenario that benefits from distributed processing on a service platform is, for example, video chat. In a video chat scenario, for example, a group of people participate in a virtual shared video environment / video chat room. Each individual streams their camera video data to the cloud. The video chat service combines all media streams of users gathering in such a shared environment and generates (ie, processes) a personal view of the virtual room for each participant. Thus, each individual in the virtual room receives a personalized rendered view of all (other) participants.
ビデオチャットなどのアプリケーションが、クラウド内の異なる処理ノードを横断して実行される別個の処理部分(すなわち、処理コンポーネント)に分割できると仮定される。典型的なシナリオは、以下を含む:
− データ発生源の近くに位置する処理リソース上に配置されることが好ましい、カメラ信号の前処理、たとえば背景減算、顔または行動検出、たとえば「誰が話しているか」の機能。
− 仮想カメラのパン/チルトおよびズーム要素を選択することで高解像度を有する現実のカメラの信号から抽出されるべきビデオの特定の部分を決定するためのユーザのインタラクションにより制御されるモジュール。
− 全ての参加者に対して「遅延の中心」に配置されることが好ましい、クラウド内の処理リソース上のチャットルーム内の人々の異なるビデオ信号の全てをマージさせるビデオ混合機能。
− エンドユーザの対話型ジェスチャまたは他の手段などにより制御される、このユーザの近くに配置された処理リソース上に配置されることが好ましい、個人視点レンダリング。
It is assumed that an application such as a video chat can be divided into separate processing parts (ie processing components) that are executed across different processing nodes in the cloud. A typical scenario includes the following:
-Camera signal preprocessing, eg background subtraction, face or action detection, eg “who is talking” function, which is preferably located on a processing resource located near the data source.
A module controlled by user interaction to determine a specific part of the video to be extracted from the real camera signal with high resolution by selecting the pan / tilt and zoom elements of the virtual camera.
A video mixing function that merges all of the different video signals of people in a chat room on a processing resource in the cloud, preferably placed in the “center of delay” for all participants.
-Personal viewpoint rendering, preferably located on processing resources located near this user, controlled by end-user interactive gestures or other means.
たとえば、ビデオチャットアプリケーション内の処理部分は、背景抽出とすることができる。この部分は、色変換、実際のフレームの背景モデルとの比較、背景モデルの統計的更新、前景マスク生成などの別個のタスクを行ういくつかの処理コンポーネントから構築および構成されることがある。 For example, the processing portion within the video chat application can be background extraction. This part may be constructed and composed of several processing components that perform separate tasks such as color conversion, comparison of the actual frame with the background model, statistical update of the background model, and foreground mask generation.
たとえばプラットフォームシナリオでは、コンポーネントは、送信コンポーネントの出力ポートを1つまたは複数の受信コンポーネントの入力ポートに接続するメッセージパッシングインターフェースを介して通信することができる。開発者は、自身のアプリケーションの実行インスタンスを、そのアプリケーションを構成する異なる処理要素から構成される動的サービス論理グラフを編成することで、作成し維持することができる。 For example, in a platform scenario, the components can communicate via a message passing interface that connects the output port of the sending component to the input port of one or more receiving components. Developers can create and maintain running instances of their applications by organizing a dynamic service logic graph composed of different processing elements that make up the application.
グラフの操作には、コンポーネントの作成、修正または除去、および動的な方式でコンポーネント間の接続の確立または解放が含まれる。開発者の視点からは、プラットフォームは単一の仮想処理リソースのように振る舞い、前述のように物理的な基盤リソース上へ適切にアプリケーションの異なるコンポーネントを配備するのはプラットフォームの仕事である。 Manipulating the graph includes creating, modifying or removing components and establishing or releasing connections between components in a dynamic manner. From the developer's perspective, the platform behaves like a single virtual processing resource, and it is the platform's job to properly deploy the different components of the application onto the physical infrastructure resources as described above.
典型的には、特定のタスクごとに必要な処理能力は、異なるメディアパラメータに依存する。パラメータは、画像解像度、フレームレート、参加者数などとすることができる。さらに、所望の機能を実行するのに必要なリソースの数は、リソース能力と、(すぐに変動し得る)個々の処理ノードの現在の負荷状況とに依存することがある。 Typically, the processing power required for a particular task depends on different media parameters. The parameters can be image resolution, frame rate, number of participants, and the like. Furthermore, the number of resources required to perform a desired function may depend on the resource capacity and the current load status of the individual processing nodes (which may vary quickly).
したがって、どのようにアプリケーションの異なるコンポーネントが、異なる処理ノードを横断して最も効率良く配布されるかをアプリケーション開発者が予測することは一般的には困難である。プラットフォームのみが必要な情報を有するので、リソース上のサービス実行時に出現するリソースボトルネックを、このリソース上で現在実行中のいくつかの処理部分/コンポーネントを現在あまり利用されていない他のリソースへ再配布することにより解消する方法を決定するのはプラットフォームの仕事である。 Thus, it is generally difficult for application developers to predict how different components of an application will be distributed most efficiently across different processing nodes. Since only the platform has the necessary information, the resource bottleneck that appears when the service on the resource is executed is re-assigned to some other processing resource / component that is currently not being used. It is the platform's job to decide how to resolve it by distributing it.
しかしながら、ビデオチャットサービスなどのビデオアプリケーションのコンポーネントを配布するための根本的な問題は、多数のメディア処理コンポーネントが主に一連の画素値(すなわち、単一のビデオフレーム)に作用するので、コンポーネント間で交換されるデータの量が大量であることである。このように、コンポーネントは通常、画素値の完全なフレーム、すなわち非圧縮のビデオフレーム(生データ)をその出力ポートに送信する。これにより、生の「ビデオ」トラフィックが、異なる処理ノードを接続するネットワーク上で伝送、すなわち交換される必要があるので、アプリケーションコンポーネントを異なる処理ノードにわたって分割することが困難となり、したがって、ネットワークの輻輳をもたらすことがある。したがって、異なる処理リソース上で実行されるコンポーネント間で交換されるメディアデータは、有意義な方法で圧縮される必要がある。 However, the fundamental problem for distributing components of a video application such as a video chat service is that many media processing components primarily operate on a series of pixel values (ie, a single video frame), so The amount of data exchanged at is large. Thus, the component typically sends a complete frame of pixel values, ie an uncompressed video frame (raw data), to its output port. This makes it difficult to divide application components across different processing nodes as raw “video” traffic needs to be transmitted or exchanged over networks that connect different processing nodes, and thus network congestion. May bring. Thus, media data exchanged between components executing on different processing resources needs to be compressed in a meaningful way.
開発時のサービスグラフの開発者は、どのようにプラットフォームがサービス実行時に異なるサービスコンポーネントを処理リソースにわたって分割することになるかを知らないので、必要に応じて通信経路内に圧縮(すなわち、符号化/復号)を自動的に含むプラットフォーム機能が必要である。 Developers in the service graph during development do not know how the platform will split different service components across processing resources during service execution, so compression (ie encoding) in the communication path as needed / Platform functions that automatically include
本文書は、特に、ネットワーク中心のデータセンターにおいて互いに接続された処理ノードなどの前記処理ノードのうちの少なくとも2つを有するシステムにおいて使用可能な制御ユニット、システムおよび方法を提供する技術的問題に対処する。制御ユニット、システムおよび方法により、データの符号化および復号が必要かを自動的に決定し、送信および受信コンポーネントの間のデータ依存圧縮メカニズムを動的にインスタンス化することが可能となる。 This document addresses, among other things, the technical problem of providing a control unit, system and method usable in a system having at least two of said processing nodes, such as processing nodes connected to each other in a network-centric data center. To do. The control unit, system and method can automatically determine whether data encoding and decoding is necessary and dynamically instantiate a data dependent compression mechanism between the transmitting and receiving components.
ヘッダおよび転送されるデータ(ペイロード)を備え、外部ネットワークインターフェースを通過する、メッセージのデータ形式を分析することで、本明細書に記載の態様は、送信機側にデータ形式依存エンコーダを挿入することと、圧縮形式(すなわちデータ形式)を示す制御メッセージを受信機側に送信することと、圧縮器のインスタンスを用いて各後続のメッセージを動的に圧縮することとを可能にする。さらに、メッセージで転送されるデータは、遠隔側で復号することができ、復号後に受信コンポーネントに配信することができる。 By analyzing the data format of the message, including the header and data to be transferred (payload) and passing through the external network interface, the aspects described herein insert a data format dependent encoder at the transmitter side. And sending a control message indicating the compression format (ie, data format) to the receiver, and dynamically compressing each subsequent message using an instance of the compressor. Furthermore, the data transferred in the message can be decrypted remotely and delivered to the receiving component after decryption.
これら全てがそのようなサービスの開発者に透過的に実行できることに留意されたいが、その理由は、コンポーネントが同一または別個のリソース上で実行される場合にサービス論理フローからは注意が払われる必要がないためである。メディア圧縮は、基本となるプラットフォームにより自律的に、および必要な場合にのみ、コンポーネントの通信経路に含まれる。 Note that all of this can be done transparently to developers of such services, because the service logic flow needs to be paid attention when the components are run on the same or separate resources Because there is no. Media compression is included in the component's communication path autonomously by the underlying platform and only when necessary.
さらに、逆の部分もカバーされていることに留意されたい。異なるリソース上で以前に動作していた2つのコンポーネントが何らかの理由でサービス実行時に同一のリソース上に配置された場合に、以前に外部であった通信経路は内部になるので、メディア符号化および復号機能はプラットフォームにより通信経路から自動的に除去されることになる。 Note that the reverse is also covered. If two components that were previously operating on different resources are placed on the same resource at the time of service execution for some reason, the previously external communication path will be internal, so media encoding and decoding The function will be automatically removed from the communication path by the platform.
したがって、本明細書で提示された制御ユニットおよびシステムは、通信チャネルを介して接続されたコンポーネントが、データが受信されたのはローカルのコンポーネントからか遠隔のコンポーネントからかの違いに気付かず、同時に、ネットワークリンク上のデータレートが低減されるという技術的利点を有する。したがって、圧縮方式全体が開発者から隠されており、開発者はコンポーネントのみに注意を払い、コンポーネントは、それらの接続内で圧縮が生じたことに気付かない。 Thus, the control units and systems presented herein do not allow components connected via a communication channel to be aware of the difference in whether data is received from a local component or a remote component, and at the same time Has the technical advantage that the data rate on the network link is reduced. Thus, the entire compression scheme is hidden from the developer, the developer pays attention only to the components, and the components are unaware that compression has occurred within their connections.
具体的には、本文書は、詳細にはコンポーネント間の通信チャネルが何らかの理由でノード内部の通信チャネルの代わりに外部伝送ネットワークを使用することを検出することで、送信および受信コンポーネントの間のデータ依存圧縮メカニズムを動的にインスタンス化することができる、特にネットワーク中心のデータセンター、すなわちクラウド環境のための制御ユニット、自律システムおよび方法を提供する。 Specifically, this document specifically detects data between transmitting and receiving components by detecting that the communication channel between components uses an external transmission network for some reason instead of the communication channel inside the node. A control unit, autonomous system and method for a network-centric data center, i.e. a cloud environment, is provided that can dynamically instantiate dependent compression mechanisms.
一態様によれば、制御ユニットは、2つの処理ノードの間の通信チャネルが処理ノードの境界を横断するかを判定するように構成することができる。通信チャネルが処理ノードのうちの1つの境界を横断する場合に、制御ユニットは、通信チャネルを経由して転送されるデータの符号化/復号が必要かを決定するようにさらに構成することができる。制御ユニットは、たとえば送信処理ノードまたは受信処理ノードなどの処理ノードの一部とすることができる。あるいは、またはこれに加えて、制御ユニットは、異なるデータセンターに配置された異なる処理ノードを備えるシステムの別個のエンティティにより提供することができる。 According to one aspect, the control unit can be configured to determine whether a communication channel between two processing nodes crosses a processing node boundary. When the communication channel crosses the boundary of one of the processing nodes, the control unit can be further configured to determine whether encoding / decoding of data transferred via the communication channel is necessary. . The control unit can be part of a processing node, for example a transmission processing node or a reception processing node. Alternatively or in addition, the control unit can be provided by a separate entity of the system with different processing nodes located in different data centers.
さらなる態様によれば、ネットワークにより接続された少なくとも2つの処理ノードを備え得るシステムが提供される。各ノードは、実行環境および少なくとも1つの処理コンポーネントを備えることができる。各実行環境は、データを送信するコンポーネントの発信ポートを、データを受信するコンポーネントの着信ポートに、通信チャネルを介して接続するための手段を含むことができる。システム、好ましくはシステムの制御ユニットは、上述のように、通信チャネルがノードの境界を横断するかを判定するように構成することができる。さらにシステム、好ましくはシステムの制御ユニットは、通信チャネルがノードの境界を横断する場合に、通信チャネルを経由して転送されるデータの符号化/復号が必要かを決定するように構成することができる。 According to a further aspect, a system is provided that can comprise at least two processing nodes connected by a network. Each node may comprise an execution environment and at least one processing component. Each execution environment may include means for connecting an outgoing port of a component transmitting data to an incoming port of a component receiving data via a communication channel. The system, preferably the control unit of the system, can be configured to determine whether the communication channel crosses a node boundary, as described above. Further, the system, preferably the control unit of the system, may be configured to determine if the data transferred via the communication channel needs to be encoded / decoded when the communication channel crosses a node boundary. it can.
ノードの境界の横断は、通信チャネルが外部伝送ネットワーク、たとえばローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を使用する場合に、検出することができる。たとえば、ノードが、プロセッサ、記憶手段およびネットワークインターフェースを備えるユニットである場合に、外部伝送ネットワークは、ノードを、より具体的にはノードのネットワークインターフェースを互いに接続するネットワークであると定義することができる。ノードの境界の横断は、ネットワークリンクの横断と定義することができる。ノードの境界の横断は、ネットワークプロトコル、たとえばRTP、UDP、TCP、IPが通信チャネルを経由してデータを送信するために使用される場合に検出できることが好ましい。たとえば、ある処理コンポーネントがあるネットワークノード上で動作し、最初のコンポーネントと通信する他の処理コンポーネントが他のネットワークノード上で動作する場合に、ネットワーク境界は横断される。 Node border crossings can be detected when the communication channel uses an external transmission network, such as a local area network (LAN) or a wide area network (WAN). For example, if the node is a unit comprising a processor, storage means and a network interface, the external transmission network can be defined as a network that connects the nodes, more specifically, the network interfaces of the nodes to each other. . Crossing a node boundary can be defined as crossing a network link. Preferably, node crossing can be detected when network protocols such as RTP, UDP, TCP, IP are used to send data over the communication channel. For example, a network boundary is traversed when one processing component operates on one network node and another processing component that communicates with the first component operates on another network node.
以下、「システム」という用語が「プラットフォーム」という単語と交換できることに留意されたい。「データ」という用語は、システムの部分/ノード/コンポーネントの間で交換/転送される情報を示すことができる。「メッセージ」という用語は、メッセージのヘッダと、送信すべきデータ(ペイロード)とを実質的に意味する。 Note that hereinafter the term “system” can be interchanged with the word “platform”. The term “data” can refer to information exchanged / transferred between parts / nodes / components of the system. The term “message” substantially means the header of the message and the data (payload) to be transmitted.
「符号化/復号」という用語は、符号化および/または復号を示す。具体的には、メッセージ/データがそこから送信される一方の側において、データが符号化(圧縮)され、他方側すなわち受信側において、データが復号されることを意味する符号化および復号を示す。 The term “encoding / decoding” refers to encoding and / or decoding. Specifically, encoding and decoding means that the data is encoded (compressed) on one side from which the message / data is transmitted and the data is decoded on the other side or the receiving side. .
以下では、第1のコンポーネントがデータを送信するコンポーネント、すなわち「送信コンポーネント」であること、また、第2のコンポーネントがデータを受信するコンポーネント、すなわち「受信コンポーネント」であることが仮定されることになる。 In the following, it is assumed that the first component is the component that transmits data, i.e. the "sending component", and that the second component is the component that receives data, i.e. the "receiving component". Become.
しかしながら、システムが3つ以上のノードおよび3つ以上のコンポーネントを備えることができることに留意されたい。さらに、複数の異なる通信チャネルを、2つ以上のノード間に確立することができる。具体的には、送信コンポーネントは、1つまたは複数の通信チャネルを介して少なくとも1つの受信コンポーネントに接続されるように構成することができる。 However, it should be noted that the system can comprise more than two nodes and more than two components. In addition, a plurality of different communication channels can be established between two or more nodes. In particular, the transmitting component can be configured to be connected to at least one receiving component via one or more communication channels.
「受信ノード」および「送信ノード」という用語は、受信/送信コンポーネントを備えるノードを示す。ノードという用語は、少なくとも1つのプロセッサと、少なくとも1つの記憶デバイスと、少なくとも1つのネットワークアダプタとを好ましくは備えるコンピューティングリソースまたはホストを示すことができる。言い換えれば、ノードは、ネットワークにおいて他のノードと接続された完全に動作可能なスタンドアローンの処理ユニットであることが好ましい。 The terms “receiving node” and “transmitting node” refer to a node comprising receiving / transmitting components. The term node may refer to a computing resource or host that preferably comprises at least one processor, at least one storage device, and at least one network adapter. In other words, the node is preferably a fully operational stand-alone processing unit connected to other nodes in the network.
さらなる態様によれば、送信コンポーネントは、1つまたは複数の通信チャネルを介して少なくとも1つの受信コンポーネントに接続されるように構成することができる。(1つまたは複数の)コンポーネントの間に1つまたは複数の通信チャネルを確立することで、アプリケーションコンポーネントを柔軟に配布することができる。 According to a further aspect, the transmitting component can be configured to be connected to at least one receiving component via one or more communication channels. Application components can be flexibly distributed by establishing one or more communication channels between the component (s).
さらに、システムは、各確立された通信チャネルに関する情報を含むテーブルを備えることができる。前記情報は、各通信チャネルに対して、その通信チャネルの送信コンポーネントおよび受信コンポーネントのポートを含むことができる。さらに、前記情報は、受信コンポーネントが送信コンポーネントと異なるノード内に配置されている場合に識別子を含むことができる。識別子は、遠隔の受信ノードのネットワーク位置を識別することができる。テーブルは、特定の(専用の)処理ノード内に配置し格納することができ、場合によりローカルコピーが各処理ノードで利用可能であることが好ましい。さらに、各処理ノードは、たとえば前記ノード上で動作する処理コンポーネントに関する情報のみを含む、テーブルの部分的なコピーを有することができる。 Further, the system can comprise a table that includes information about each established communication channel. The information may include, for each communication channel, the ports of the transmission component and the reception component of that communication channel. Further, the information can include an identifier when the receiving component is located in a different node than the transmitting component. The identifier can identify the network location of the remote receiving node. The table can be located and stored in a specific (dedicated) processing node, and preferably a local copy is available at each processing node. In addition, each processing node may have a partial copy of the table that includes only information about processing components running on the node, for example.
テーブルにより、概観を維持することができ、および、複数のコンポーネント間の接続に関して最も関連性が高い情報に素早くアクセスすることが可能となる。識別子は、ノードの境界の横断の判定が、より素早くより少ないコンピューティングリソースを用いて実行できることを支援する。 The table allows an overview to be maintained and allows quick access to the most relevant information regarding connections between multiple components. The identifier helps that the determination of crossing a node boundary can be performed faster and with fewer computing resources.
システム、特に、対応する送信コンポーネントをホストする制御ユニットおよび/または実行環境は、前記テーブル内の検索操作により通信チャネルがノードの境界を横断するかを検出するように構成することができる。検索操作は、コンポーネントが移動されたこと、すなわち処理コンポーネントの再割当を示すことができ、または、遠隔ホスト上のコンポーネントとの接続の作成を示すことができるエントリが設定されているかを検出するように構成することができる。エントリは、前記テーブルに設定される第1のフラグなどとすることができる。あるいは、またはこれに加えて、検索操作は、受信コンポーネントのノードの位置を発見するために前記識別子を読み出すように構成することができる。検索操作により、通信チャネルがノードの境界を通過するかの判定が、ほぼ即時に、コンピューティングリソースを使用し過ぎることなく実行できるようになる。 The system, in particular the control unit that hosts the corresponding sending component and / or the execution environment, can be configured to detect if the communication channel crosses the boundary of the node by a search operation in the table. The search operation will detect whether the component has been moved, ie, the reassignment of the processing component, or whether an entry has been set that can indicate the creation of a connection with the component on the remote host. Can be configured. The entry may be a first flag set in the table. Alternatively, or in addition, a search operation can be configured to retrieve the identifier to find the location of the receiving component's node. The search operation allows the determination of whether the communication channel crosses the node boundary to be performed almost immediately without using too much computing resources.
さらに、たとえば、通信チャネルが2つのコンポーネントの間に確立されているときに、送信および/または受信コンポーネントがその後あるノードから他のノードへ移動された場合に、システム、特に実行環境は、前記テーブル内の前記情報に前記エントリを追加するようにさらに構成することができる。エントリはコンポーネント移動を明示することができ、これにより、通信チャネル、特に既存の通信チャネルがノードの境界を横断するかをより素早く判定できるようにする。 Further, for example, when a transmission and / or reception component is subsequently moved from one node to another when a communication channel is established between the two components, the system, particularly the execution environment, may It may be further configured to add the entry to the information within. An entry can specify component movement, which allows a faster determination of whether a communication channel, especially an existing communication channel, crosses a node boundary.
さらに、システムは、転送されるデータが所定のサイズを超過した場合に符号化/復号が必要であると決定することができ得る。具体的には、送信または受信側でのデータストリームのサイズまたはボリューム(ネットワークインターフェース容量)、および/または、物理ネットワークチャネルの容量制限が、関心の対象である。典型的には、ビデオ関連データまたは高音質音声データが、符号化/復号要件をトリガする。 Further, the system may be able to determine that encoding / decoding is necessary if the data to be transferred exceeds a predetermined size. In particular, the size or volume (network interface capacity) of the data stream at the transmitting or receiving side and / or the capacity limitation of the physical network channel are of interest. Typically, video related data or high quality audio data triggers the encoding / decoding requirements.
システムは、転送されるデータが所定のデータ形式を有する場合に、すなわちデータタイプの形式に基づいて、符号化/復号が必要であると決定することができ得る。所定のデータ形式は、たとえばメディア形式を含むことができる。これは、システムが、一般的にはメディアデータ、たとえば画像データ形式、音声データ形式、および/またはビデオデータ形式を有するデータが、あるノードから遠隔ノードへ転送される場合に、符号化された/復号するように構成することができることを意味する。 The system may be able to determine that encoding / decoding is necessary if the data to be transferred has a predetermined data format, ie based on the format of the data type. The predetermined data format can include, for example, a media format. This is encoded when the system transfers data from one node to a remote node, typically data having media data, eg, image data format, audio data format, and / or video data format. It means that it can be configured to decrypt.
さらに、データが、フレーム単位で送信されるビデオデータである場合に、符号化/復号が必要である場合がある。コンポーネントが画素値の完全なフレーム、すなわち非圧縮ビデオフレーム(生データ)をその出力ポートに送信する場合、大量のデータがコンポーネント間で通信チャネルを介して交換される。これにより、アプリケーションコンポーネントを異なる処理ノードにわたって分割することが困難になる場合がある。しかしながら、本明細書に記載のデータの自動圧縮によって、ビデオフレームの送信も可能となるので、ビデオデータアプリケーションのコンポーネントの自動配布が可能となる。 Further, when the data is video data transmitted in units of frames, encoding / decoding may be necessary. When a component sends a complete frame of pixel values, i.e. an uncompressed video frame (raw data), to its output port, a large amount of data is exchanged between the components via a communication channel. This can make it difficult to divide application components across different processing nodes. However, automatic compression of the data described herein also allows video frames to be transmitted, thus enabling automatic distribution of video data application components.
システムは、送信および受信ノードの一方または両方が所定の作業負荷で動作する場合に符号化/復号が必要であると決定することができ得る。これは、ノードが既に高い作業負荷で動作しているときに、符号化/復号に関する追加の作業負荷が、ノードのうちの少なくとも1つのノードの過負荷をもたらすことになる場合に、符号化/符号化が初期化されないケースを含むことができる。 The system may be able to determine that encoding / decoding is necessary when one or both of the sending and receiving nodes operate at a given workload. This is because the encoding / decoding additional workload will lead to overloading at least one of the nodes when the node is already operating at a high workload. Cases where the encoding is not initialized can be included.
一態様によれば、送信処理ノードは、少なくとも1つの実行環境と、少なくとも1つの処理コンポーネントと、通信チャネルを経由してデータを送信するために受信処理ノードと通信チャネルを介して接続可能な少なくとも1つの発信ポートとを備えることができる。実行環境は、通信チャネルを確立するように構成することができる。受信処理ノードは、制御ユニットを備えることができる。さらに、送信処理ノードは、符号化が必要であると決定された場合に、エンコーダをインスタンス化し、インスタンス化されたエンコーダのタイプに関して受信処理ノードに知らせるように構成することができる。さらに、受信処理ノードは、少なくとも1つの処理コンポーネントと、通信チャネルを経由してデータを受信するために送信ノードと通信チャネルを介して接続可能な少なくとも1つの着信ポートとを備えることができる。送信処理ノードは、制御ユニットを備えることができる。受信処理ノードは、符号化が必要であると決定された場合に、送信処理ノードにおいてインスタンス化されたエンコーダのタイプに関する情報に基づいて、デコーダをインスタンス化するようにさらに構成することができる。 According to one aspect, the transmission processing node is at least one execution environment, at least one processing component, and at least connectable via the communication channel to the reception processing node to transmit data via the communication channel. One outgoing port can be provided. The execution environment can be configured to establish a communication channel. The reception processing node can comprise a control unit. Further, the transmit processing node can be configured to instantiate an encoder and inform the receive processing node about the type of encoder instantiated when it is determined that encoding is required. Further, the receiving processing node can comprise at least one processing component and at least one incoming port connectable via the communication channel to the transmitting node for receiving data via the communication channel. The transmission processing node may comprise a control unit. The receiving processing node may be further configured to instantiate the decoder based on information regarding the type of encoder instantiated at the transmitting processing node when it is determined that encoding is required.
さらに、実行環境および少なくとも1つの処理コンポーネントを備え得る(処理)ノードを提供することができる。実行環境は、データを送信するコンポーネントの発信ポートを、異なるノードに配置され得るデータを受信するコンポーネントの着信ポートと、通信チャネルを介して接続するための手段を含むことができる。ノード(たとえば、ノードの制御ユニット)は、通信チャネルがノードの境界を横断するかを判定するように構成することができる。さらに、ノードは、通信チャネルがノードの境界を横断する場合に、外部通信チャネル、たとえばノードを接続する通信ネットワーク上のトラフィックを削減するために、通信チャネルを経由して転送されるデータの符号化/復号が必要であるかを決定するように構成することができる。 Furthermore, a (processing) node may be provided that may comprise an execution environment and at least one processing component. The execution environment may include means for connecting the outgoing port of the component transmitting data with the incoming port of the component receiving data that may be located at different nodes via a communication channel. A node (eg, the control unit of the node) can be configured to determine if the communication channel crosses a node boundary. In addition, a node may encode data transferred over a communication channel to reduce traffic on an external communication channel, eg, a communication network connecting the nodes, when the communication channel crosses a node boundary. / Can be configured to determine if decoding is necessary.
ノードは、さらなる処理ノードを備えるネットワークの一部とすることができる。ノードは、ネットワーク内で互いに接続することができる。上記で説明されたノードの利点は、データが符号化された様式で通信チャネルを経由して転送されるべきであるかをノードが自動的に決定できることである。たとえば、ノードが、少なくとも1つのプロセッサ、少なくとも1つの記憶手段、およびネットワークインターフェースを有するユニットであると仮定すると、ノードは、通信チャネルが前記インターフェースを介して前記ユニットの外部に接続する場合に、通信チャネルが前記ノードの境界を横断すると判定することができる。言い換えれば、ノードは、通信チャネルが前記ノードのネットワークインターフェースを異なるノードの異なるネットワークインターフェースに接続する場合に、前記ノードの境界が横断されると判定することができる。ノードは、通信チャネルを経由して送信されるデータのタイプが特定のタイプ、たとえば音声、画像またはビデオデータなどのメディアデータタイプである場合に、符号化が必要であるとさらに決定することができる。 The node can be part of a network with further processing nodes. Nodes can be connected to each other in the network. The advantage of the node described above is that the node can automatically determine whether data should be transferred over the communication channel in an encoded manner. For example, assuming that a node is a unit having at least one processor, at least one storage means, and a network interface, the node communicates when a communication channel connects outside the unit via the interface. It can be determined that the channel crosses the boundary of the node. In other words, a node can determine that a node boundary is traversed when a communication channel connects the node's network interface to a different network interface of a different node. The node can further determine that encoding is necessary when the type of data transmitted via the communication channel is a specific type, for example, a media data type such as voice, image or video data. .
上記のシステムの機能および態様を各ノードに組み込むことができることに留意されたい。たとえば、通信チャネルがノードの境界を横断するか、および符号化/復号が必要であるかの決定は、送信または受信ノードの一方、特にその実行環境により実行することができる。テーブルは、ノードの機能により取り扱うことができ、検索操作は、送信ノードなどの機能により実行することができる。あるいは、ネットワーク全体の制御インスタンスを、これらの機能を実装するために提供することができる。 Note that the functionality and aspects of the above system can be incorporated into each node. For example, the determination of whether a communication channel crosses a node boundary and whether encoding / decoding is required can be performed by either the transmitting or receiving node, particularly its execution environment. The table can be handled by the function of the node, and the search operation can be executed by the function of the transmission node or the like. Alternatively, a control instance of the entire network can be provided to implement these functions.
さらに、システムは、各(処理)コンポーネントが個別に/別々にノードにより処理可能となるように、ノードにわたってアプリケーションの処理コンポーネントを自動的に配布できるアプリケーション配布機能を備えることができる。典型的なアプリケーションは、たとえばビデオチャット、音声チャット、ビデオストリーミングなどのマルチメディアアプリケーションの処理に関連する。 In addition, the system can include an application distribution function that can automatically distribute the processing components of the application across the nodes so that each (processing) component can be processed by the node individually / separately. Typical applications relate to the processing of multimedia applications such as video chat, voice chat, and video streaming.
したがって、システムは、ネットワークリンクの横断(すなわち、2つのコンポーネント間の処理ノード外部通信)が検出された際に随時、サービスコンポーネント間でビデオデータまたは任意の他のメディアデータなどのデータを伝送する通信チャネルのデータストリームにおいて、動的に圧縮機能をインスタンス化し含められるようにすると有利である。 Thus, the system communicates to transmit data such as video data or any other media data between service components whenever a network link crossing (ie processing node external communication between two components) is detected. It would be advantageous to be able to dynamically instantiate and include compression functionality in the channel data stream.
たとえば、プラットフォーム、たとえばマルチメディアコンテンツクラウドにおいて、アプリケーション開発者は、いつメッセージが2つのコンポーネント間に確立された通信チャネル上のネットワークリンクを横断するかを知らず、その理由は、コンポーネント配置決定がプラットフォームにより実行時に動的に実行されるためである。提案されたシステムでは、処理ノード境界(すなわち、外部ネットワークインターフェースまたはネットワークリンク)が通信チャネルにより通過され、および/または、予想データサイズまたはデータレートがネットワークリンクに過負荷を導入し得る場合に随時、実行環境は圧縮機能をインスタンス化する(すなわち、送信コンポーネントをホストするリソース上のエンコーダ、および受信コンポーネントをホストするリソース上のデコーダをインスタンス化する)。 For example, in a platform such as a multimedia content cloud, an application developer does not know when a message traverses a network link on a communication channel established between two components because the component placement decision depends on the platform This is because it is executed dynamically at runtime. In the proposed system, whenever a processing node boundary (ie, an external network interface or network link) is traversed by a communication channel and / or the expected data size or data rate can introduce overload on the network link, The execution environment instantiates the compression function (ie instantiates an encoder on the resource hosting the transmitting component and a decoder on the resource hosting the receiving component).
そのような場合、実施形態によれば、実行環境は、基本コーデック(コーダおよびデコーダ)形式を決定し、メッセージパッシングインターフェースの一部として送信側のエンコーダおよび受信側のデコーダを自動的にインスタンス化する。たとえば、プラットフォームシナリオでは、コンポーネントは、送信コンポーネントの出力ポートを1つまたは複数の受信コンポーネントの入力ポートに接続するメッセージパッシングインターフェースを介して通信することができる。コーデックのインスタンス化は、たとえば、ローカルコンポーネントおよび遠隔コンポーネントの間の新しい通信チャネルが確立された場合、または、プラットフォームリソース管理アルゴリズムがコンポーネントの1つを他の処理リソース/ノードに移動させることを決定した際に既存のローカル接続が遠隔接続となった場合に、生じることがある。 In such a case, according to an embodiment, the execution environment determines the basic codec (coder and decoder) format and automatically instantiates the transmitting encoder and the receiving decoder as part of the message passing interface. . For example, in a platform scenario, the components can communicate via a message passing interface that connects the output port of the sending component to the input port of one or more receiving components. Codec instantiation, for example, when a new communication channel between a local component and a remote component is established, or the platform resource management algorithm decides to move one of the components to another processing resource / node This can happen if an existing local connection becomes a remote connection.
コーデック形式は、受信コンポーネントの着信ポートまたは送信コンポーネントの出力ポートのメッセージタイプ、2つのコンポーネント間のデータ交換に使用される論理リンクの特定の(アプリケーション開発者による所定の)プロパティまたは接続に沿って通過するメッセージのタイプにより、決定することができる。 The codec format passes along the message type of the incoming port of the receiving component or the outgoing port of the sending component, the specific (specified by the application developer) or connection of the logical link used to exchange data between the two components This can be determined by the type of message to be performed.
接続、すなわち通信チャネルを横断したメッセージを送信した時に、プラットフォーム機能は、データをエンコーダに渡して圧縮し、外部ネットワーク上で標準的なネットワークプロトコル(たとえばRTP、UDP、TCP、IP)を用いて送信し、遠隔側で復号し、最後に受信コンポーネントに元の非圧縮形式で渡す。データの伝送は、アプリケーションの分散処理を容易化するために行われる。アプリケーションのコンポーネントの処理は、ネットワークにおいて互いに接続された処理ノードにより行われる。 When sending a message across a connection, ie communication channel, the platform function passes the data to the encoder, compresses it, and sends it over the external network using standard network protocols (eg RTP, UDP, TCP, IP) And then decrypt it remotely and finally pass it to the receiving component in its original uncompressed form. Data transmission is performed to facilitate distributed processing of applications. Processing of application components is performed by processing nodes connected to each other in the network.
さらなる態様は、システム内のデータ通信のための方法に関する。システムは、少なくとも2つのノードを有することができる。ノードは、実行環境および処理コンポーネントを有することができる。実行環境は、データを送信可能な処理コンポーネントの発信/アウトバウンドポートをデータを受信可能な処理コンポーネントの着信ポートと通信チャネルを介して接続するための手段を含むことができる。方法は、通信チャネルがノードの境界を横断するかを判定するステップを備えることができる。これは、送信ノードおよび受信ノードの間の通信チャネルを確立した時などに、行うことができる。さらに、方法は、特にノードの境界が横断されると判定された場合に、通信チャネルを経由して転送されるデータの符号化/復号が必要であるかを決定することを備えることができる。方法は、符号化/復号が必要であると決定された場合に、送信コンポーネントのノード内のエンコーダと、受信コンポーネントのノード内のデコーダとを初期化することを備えることができる。方法は、転送されるデータを送信コンポーネントからエンコーダに提供し、エンコーダ内でデータを符号化することをさらに含むことができる。符号化されたデータを通信チャネルを経由して受信ノードに送信することができる。 A further aspect relates to a method for data communication in a system. The system can have at least two nodes. A node can have an execution environment and processing components. The execution environment can include means for connecting the outgoing / outbound port of a processing component capable of transmitting data with the incoming port of the processing component capable of receiving data via a communication channel. The method may comprise determining whether the communication channel crosses a node boundary. This can be done, for example, when establishing a communication channel between the sending node and the receiving node. Further, the method can comprise determining whether encoding / decoding of data transferred via the communication channel is necessary, particularly if it is determined that a node boundary is crossed. The method may comprise initializing an encoder in the node of the transmitting component and a decoder in the node of the receiving component if it is determined that encoding / decoding is necessary. The method can further include providing the data to be transferred from the transmitting component to the encoder and encoding the data within the encoder. The encoded data can be transmitted to the receiving node via the communication channel.
この方法には、アプリケーションを分散的に処理する、すなわちアプリケーションが相異なる処理ノードにより処理されるシステムなどに生じるデータトラフィックを柔軟に削減できるように、通信チャネルを経由して送信されるデータを自動的に符号化/復号できるという利点がある。 This method automatically processes the data transmitted through the communication channel so that the data traffic generated in a system in which the application is distributedly processed, that is, the application is processed by different processing nodes can be flexibly reduced. There is an advantage that encoding / decoding can be performed.
さらに、エンコーダが送信コンポーネントのノード内でインスタンス化された後に、インスタンス化されたエンコーダのタイプに関する情報を含み得る制御メッセージ(情報)が、送信コンポーネントのノードの実行環境などから受信コンポーネントのノードの実行環境などに送信することができる。デコーダは、制御メッセージに含まれる情報に基づいてインスタンス化されることができる。デコーダをインスタンス化した時に、転送されるデータを送信ノードから受信ノードへ通信チャネルを経由して送信できることが好ましい。あるいは、制御情報を、転送されるデータと共に送信することができ、たとえば、転送されるデータを、送信側で適用される符号化/圧縮機能に関する制御情報も含むメッセージ内で送信することができる。制御情報および転送されるデータを1つのメッセージ内で送信することで、ネットワークトラフィックをさらに削減することができる。 Further, after the encoder is instantiated in the transmitting component node, a control message (information) that may include information on the type of the instantiated encoder is executed from the execution environment of the transmitting component node, etc. It can be sent to the environment. The decoder can be instantiated based on information included in the control message. Preferably, when the decoder is instantiated, the transferred data can be transmitted from the transmitting node to the receiving node via the communication channel. Alternatively, the control information can be transmitted along with the transferred data, for example, the transferred data can be transmitted in a message that also includes control information regarding the encoding / compression function applied at the transmitting side. By sending the control information and the data to be transferred in one message, the network traffic can be further reduced.
したがって、コーデックをインスタンス化するための、および、ノード境界を横断する通信チャネルを経由してデータを送信するためのいくつかの代替の選択肢が存在する。エンコーダが送信側でインスタンス化された後に、制御メッセージを受信ノードに送信することができる。制御メッセージは、エンコーダタイプなどに関する情報を受信側に提出して、対応するデコーダをインスタンス化できるようにする。さらなる選択肢は、エンコーダをインスタンス化でき、転送されるデータを送信側で符号化できることでもよい。この選択肢によれば、続いて、符号化されたデータを含むメッセージであって、たとえばメッセージのヘッダ部分に符号化/圧縮に関する制御情報を含むメッセージを、受信側に転送することができる。したがって、制御情報および転送されるデータの両方は、同時に受信側に到着する。デコーダは、転送された符号化されたデータを復号する前に、メッセージ内の制御メッセージに従ってインスタンス化されることができる。さらに別の選択肢は、通信チャネルを確立した時などに、通信チャネルに対して固定的にインスタンス化され得る所定のコーデックを使用することでもよい。所定のコーデックは、通信チャネルを経由してメッセージ/データを送信する前に、インスタンス化されることができる。たとえば固定的に設定された符号化/復号が、通信チャネルを経由して転送される全てのデータに対して使用されるものとする場合に、所定のコーデックをインスタンス化する選択肢が好ましいことがある。 Thus, there are several alternative options for instantiating codecs and for transmitting data via communication channels that cross node boundaries. After the encoder is instantiated at the sender, the control message can be sent to the receiving node. The control message submits information about the encoder type etc. to the receiver so that the corresponding decoder can be instantiated. A further option may be that the encoder can be instantiated and the transferred data can be encoded at the sender. According to this option, subsequently, a message including encoded data, for example, a message including control information regarding encoding / compression in the header portion of the message can be transferred to the reception side. Therefore, both control information and transferred data arrive at the receiving side at the same time. The decoder can be instantiated according to the control message in the message before decoding the transferred encoded data. Yet another option may be to use a predetermined codec that can be fixedly instantiated for the communication channel, such as when the communication channel is established. A given codec can be instantiated prior to sending the message / data via the communication channel. For example, the option of instantiating a given codec may be preferred if fixedly configured encoding / decoding is to be used for all data transferred over the communication channel .
第2のフラグを転送されるデータに付加することができ、これは、データが圧縮されたデータである場合に、たとえば第2のフラグをデータメッセージのヘッダに設定することで行われる。これは、復号が必要であることを受信コンポーネントのノードに示して復号が必要であることを受信側で素早く検出できるようにするために、行うことができる。さらに、第2のフラグは、送信側のエンコーダにより使用された符号化タイプ形式を受信側に示すために使用することもできる。 A second flag can be added to the data to be transferred, which is done, for example, by setting the second flag in the header of the data message when the data is compressed data. This can be done to indicate to the receiving component node that decoding is necessary so that the receiving side can quickly detect that decoding is necessary. Furthermore, the second flag can also be used to indicate to the receiving side the encoding type format used by the transmitting side encoder.
方法は、送信側のエンコーダおよび受信側のデコーダが、通信チャネルの確立時に、および通信チャネルを経由してデータを送信する前に、インスタンス化されることを備えることができる。さらに、符号化/復号のタイプは、予想されるデータタイプ、たとえば音声データまたはビデオデータ、および/または通信チャネルを経由して転送されるデータのサイズに基づいて、通信チャネルに対して固定的に事前設定することができる。したがって、開発者は、特定の通信チャネルに対して、前記通信チャネルを経由して送信されるものとするデータなどに関する自身の知識に基づいて、好適なコーデック形式を設定することができる。たとえば、開発者は、ビデオデータのみが転送されると予想して、ビデオコーデックを指定することがある。このようにして、高速なセットアップ時間を達成することができる。 The method may comprise the transmitting encoder and the receiving decoder being instantiated upon establishment of the communication channel and before transmitting data via the communication channel. Furthermore, the type of encoding / decoding is fixed for the communication channel based on the expected data type, eg audio or video data, and / or the size of the data transferred over the communication channel. Can be preset. Therefore, the developer can set a suitable codec format for a specific communication channel based on his / her knowledge about data to be transmitted via the communication channel. For example, a developer may specify a video codec in the expectation that only video data will be transferred. In this way, a fast setup time can be achieved.
まとめると、アプリケーション開発者が詳細なコンポーネント制御に取り組む必要がなく、さらに高い柔軟性がアプリケーション設計に与えられることが、本明細書で提示された態様の利点である。利用可能なリソース上でのコンポーネントの最適なインスタンス化を発見する責任があるのはプラットフォームであり、サービスの開発者ではない。これにより、開発者は、サービス実行時に変化することさえある、リソース上へのコンポーネントの配置にもはや注意を払う必要がないので、分散クラウド中心メディアサービスを構築するための開発労力が削減される。 In summary, it is an advantage of the aspects presented herein that application developers do not have to work on detailed component control and still provide greater flexibility in application design. It is the platform, not the service developer, who is responsible for finding the optimal instantiation of components on the available resources. This reduces the development effort to build a distributed cloud-centric media service because developers no longer need to pay attention to the placement of components on resources that may even change during service execution.
上記で概説された態様が、プロセッサを備えるデータ処理装置において実施可能であることに留意されたい。コンピュータメモリに記憶されたコンピュータプログラム命令は、プロセッサにより実行された場合に、態様を実施することができる。以下では、添付の図面を参照して実施形態がさらに説明される。 Note that the aspects outlined above can be implemented in a data processing apparatus comprising a processor. Computer program instructions stored in a computer memory can implement aspects when executed by a processor. Embodiments are further described below with reference to the accompanying drawings.
実施形態が、配布可能なビデオおよび他のマルチメディアアプリケーションをホストするクラウドサーバ、エンドデバイスたとえば携帯電話、ビデオおよびマルチメディアコンテンツを記録または表示可能なネットワークカメラおよび他のエンティティ、実際の規格に準拠したネットワークデバイスと提案された符号化形式を組み込んだプラットフォームサービスとの間の接続点として機能するインターネットゲートウェイにおいて技術的に実装可能であることに留意されたい。 Embodiments conform to actual standards, cloud servers hosting distributable video and other multimedia applications, end devices such as mobile phones, network cameras and other entities capable of recording or displaying video and multimedia content Note that it can be technically implemented in an Internet gateway that serves as a connection point between a network device and a platform service incorporating the proposed encoding format.
プロプライエタリなクラウド環境への提案された解決方法の基本的な組み込みは、標準化なしで可能なはずであるが、同様の問題が、モバイル端末が計算負荷が高いビデオ処理タスクをネットワーク中心のクラウド環境にオフロードする場合の環境などで当てはまるので、ITU/ISO(MPEG)による潜在的な採用はあり得る。 The basic integration of the proposed solution into a proprietary cloud environment should be possible without standardization, but a similar problem is moving mobile computing-intensive video processing tasks into a network-centric cloud environment. Since it applies in the environment when offloading, there is a potential adoption by ITU / ISO (MPEG).
クラウドベースの処理環境において、特に、別個の処理ノード上で実行される別々のソフトウェアタスクの間の以下のデータ伝送シナリオが適用され得る。1)エンドデバイス(たとえばカメラ、ディスプレイ、スマートフォン)への、およびエンドデバイスから公衆インターネットなどのネットワークの向こう側のメディア処理ノードへのメディアデータ伝送。2)単一のデータセンター内の処理ノード間のメディアデータ伝送。メディア処理は計算が複雑(すなわち高度な処理)であるためにメディア処理タスクが単一の処理ノードから外へ簡単に拡大(scale)するので、このセットアップは行われる。3)たとえばネットワーク内でリソースを伝送して全体のリソース消費を最適化し、たとえばユーザがいる場所の近くに処理を配置してマンマシンインタラクションに関する遅延を制限するために、異なるデータセンター内に配置された処理ノード間のメディアデータ伝送。 In a cloud-based processing environment, in particular, the following data transmission scenarios between separate software tasks running on separate processing nodes may be applied. 1) Media data transmission to end devices (eg, cameras, displays, smartphones) and from end devices to media processing nodes across networks such as the public Internet. 2) Media data transmission between processing nodes in a single data center. This setup is done because media processing is computationally complex (ie, advanced processing), so media processing tasks can easily scale out of a single processing node. 3) deployed in different data centers, for example to transmit resources within the network to optimize overall resource consumption, eg to place processing close to where the user is and to limit delays related to man-machine interaction Media data transmission between different processing nodes.
本実施形態が、特にケース2)および3)に対処し、エンドデバイスおよびクラウドノードの間の伝送の制御が、たとえばデバイス上で専用のソフトウェアを実行する能力を有することで提供されると仮定したケース1)もカバーすることをここでは留意されたい。 This embodiment specifically addresses cases 2) and 3) and assumes that control of transmission between the end device and the cloud node is provided by having the ability to run dedicated software on the device, for example. It should be noted here that case 1) is also covered.
たとえば、サービスプラットフォーム上の分散処理から利益を得る典型的なアプリケーションシナリオは、たとえばビデオチャットである。ビデオチャットのシナリオでは、たとえば、人々のグループが、仮想の共有されたビデオ環境/ビデオチャットルームに参加する。各個人は、自身のカメラのビデオデータをクラウドにストリーミングする。ビデオチャットサービスは、そのような共有環境内に集まっているユーザの全てのメディアストリームを結合し、各参加者に対する仮想ルームの個人用ビューを生成する(すなわち、処理する)。したがって、仮想ルーム内の各個人は、他の参加者の個人用のレンダリングされたビューを受信する。 For example, a typical application scenario that benefits from distributed processing on a service platform is, for example, video chat. In a video chat scenario, for example, a group of people participate in a virtual shared video environment / video chat room. Each individual streams their camera video data to the cloud. The video chat service combines all media streams of users gathering in such a shared environment and generates (ie, processes) a personal view of the virtual room for each participant. Thus, each individual in the virtual room receives a personalized rendered view of the other participants.
図1および図2は、コーデック(コーダ(符号化)5およびデコーダ(復号)6)を含む分散コンピューティングノード1への処理コンポーネント3の可能な配布を表す例である。具体的には、図1では、たとえばビデオチャットアプリケーションに関して、どのようにサービス論理およびリソースが、論理的に依存した機能に分割できるかが示されている。可能な配備では、図示されたサービス論理ブロックの各々は、最終的に異なるリソースになり得る。
1 and 2 are examples illustrating possible distribution of
図2に、パイプライン指向メディアフレームワークを、独立したパイプラインの例示的な詳細と共に示し、各パイプラインは、データ受信機およびエンコーダ/デコーダコンポーネントを、可能な転送ポイントにおいてそれぞれ有している。図2は、具体的には、たとえばカメラ処理、仮想パン/チルト/ズーム、背景抽出、ビデオ混合、および個人用ビューレンダリングなどのコンポーネントなどの異なるアプリケーションタスクを含むサービス論理インスタンス化を示す。 FIG. 2 shows a pipeline-oriented media framework with exemplary details of independent pipelines, each pipeline having a data receiver and encoder / decoder component at each possible transfer point. FIG. 2 specifically illustrates service logic instantiation including different application tasks such as components such as camera processing, virtual pan / tilt / zoom, background extraction, video blending, and personal view rendering.
図3に、実施形態によるシステム(プラットフォーム)の主要な設計を示す。好ましい実施形態では、IPベースのインターネット、イーサネット(登録商標)などのネットワークにより接続された少なくとも2つの処理ノード1が、システムに含まれる。システムにより処理されるものとするアプリケーションの処理コンポーネント3は、たとえば、図3の2つの図示のノード1に配布される。言い換えれば、アプリケーションは、複数の部分、たとえば処理コンポーネントまたはサブアプリケーションに分割される。アプリケーション配布機能は、システムのノード1、ここではたとえば、第1のノード1aおよび第2のノード1bに、コンポーネント3を配布する。ノード1の間のデータ交換は、通信チャネル4により可能となる。データ伝送は、たとえば、あるノードから他のノードへメッセージを渡すことで実行されることが好ましい。メッセージは、ヘッダと、ペイロードすなわち送信されるデータとを備えることができる。
FIG. 3 shows the main design of the system (platform) according to the embodiment. In a preferred embodiment, the system includes at least two
より具体的には、メディア処理コンポーネント3をインスタンス化し、修正し、削除するために、各ノード1上で分散処理プラットフォームが実行される。処理コンポーネント(コンポーネント)3は、前記異なるコンポーネント3に分割されるアプリケーションの処理部分である。各コンポーネント3は、プラットフォーム全体で一意の識別子を有する。
More specifically, a distributed processing platform is executed on each
たとえば、ビデオチャットアプリケーションは、カメラ信号の前処理、たとえば背景減算、顔または行動検出、たとえば「誰が話しているか」の機能、ユーザが高解像度であり得る現実のカメラのビデオ信号の中を仮想カメラのパン、チルトおよびズーム要素を制御して移動できるようにして低解像度であり得る個人用ビューを生成する対話型モジュール、などのコンポーネントに分割することができる。さらに、コンポーネントは、(全ての参加者に対して「遅延の中心」に配置されることが好ましい)クラウド内の処理リソース上のチャットルーム内の人々の異なるビデオ信号をマージさせるビデオ混合機能、および、エンドユーザの対話型ジェスチャにより制御される、(このユーザの近くに配置された処理リソース上に配置されることが好ましい)個人視点レンダリングとすることができる。 For example, a video chat application may pre-process camera signals such as background subtraction, face or behavior detection, eg “who is talking” functions, virtual cameras in real camera video signals where the user may be high resolution Can be divided into components such as an interactive module that generates a personal view that can be controlled by moving the pan, tilt, and zoom elements of the camera, and that can be of low resolution. In addition, the component has a video mixing function that merges the different video signals of people in the chat room on the processing resource in the cloud (preferably placed in “center of delay” for all participants), and Can be a personal viewpoint rendering (preferably located on a processing resource located near this user), controlled by the end user's interactive gestures.
図3は、具体的には、各ノード1が実行環境2を有することを示す。実行環境2は、少なくとも2つのコンポーネント3を、第1のコンポーネント3aの発信すなわちアウトバウンドポートと第2のコンポーネント3bの着信ポートとの間に通信チャネル4をインスタンス化することで接続する手段を有する。そのような接続4は、サービス論理データフローを確立し、ノード上で動作するコンポーネント3の全ての通信チャネル4を記述したテーブルを維持することで、分散された方法で実現することができる。
Specifically, FIG. 3 shows that each
実施形態では、2つのコンポーネント3の間の新しい接続が、テーブルにエントリを追加することでインスタンス化される。エントリは、どの後続のコンポーネント3が、送信コンポーネント3の発信ポートにより送信される転送データ(たとえばメディアストリーム)の受信コンポーネント3(およびそのポート)であるかを示す。前記テーブルは、プラットフォームにより制御することができる。
In an embodiment, a new connection between two
さらに、受信コンポーネントが遠隔ノード1に配置されている場合、これは通信チャネル4がノード境界を横断することを意味するが、プラットフォームは、遠隔ホスト(ノード)の識別子を、これはIPアドレスであり得るが、テーブルエントリに追加する。
Furthermore, if the receiving component is located at the
図3はさらに、2つの可能なシナリオを示す。第1のシナリオは、図3の上部に示されており、ここではアプリケーションの2つのコンポーネント3が両方とも同一のノード1に配置されることが示されている。したがって、実行環境2は、エンコーダ5および/またはデコーダ6をインスタンス化することなく、2つのコンポーネント3の間にローカルな通信チャネル4をインスタンス化する。つまり、送信コンポーネント3aから受信コンポーネント3bに転送されるデータ(ペイロード)は、通信チャネル4を経由して符号化されずに送信されることが好ましい。これにより、コンピューティングリソースが維持される。たとえばヘッダとデータであるメッセージの受け渡しは、メモリ参照により実行することができる。
FIG. 3 further illustrates two possible scenarios. The first scenario is shown in the upper part of FIG. 3, where the two
図3の下部に、受信コンポーネント3bがノード1b内に配置され、ノード1bが、送信コンポーネント3aを含む他のノード1aに対して遠隔で配置されることが図示されている。したがって、通信チャネル4を経由したデータ転送は、たとえばネットワークプロトコルを必要とする。2つのコンポーネント3を遠隔配置する理由は、たとえば、プラットフォームが最初にコンポーネント3を異なるノード1上に配置したこと、または、受信コンポーネント3bが処理中に、あるノード1から他のノード1に移動されたことであり得る。通信チャネル4が確立された後にコンポーネント3を遠隔ノード1に移動させる一例が、図3の上部に示されている。受信コンポーネント3a、3bの再配置は、「コンポーネント移動」の矢印で示されている。
In the lower part of FIG. 3, it is illustrated that the receiving
一般的に、送信コンポーネント3aから受信コンポーネント3bへデータが転送されるものとする場合、送信コンポーネント3aは、メッセージタイプ、ペイロード、および、転送されるデータの送信ポートを指定するプラットフォーム機能を呼び出す。
In general, when data is to be transferred from the sending
続いて、受信機コンポーネント3bの識別子およびそのポートが、テーブルに対する検索操作を用いて検索される。検索操作は、転送されるメッセージの1つまたは複数の受信者が遠隔ホストに配置されているかを決定するように構成される。メッセージの受信機が送信機と同じホストに配置されている場合、メッセージはノード内部のキューに格納され、最後に対象受信コンポーネントに配信される。メッセージの受信機が遠隔ホストに配置されている場合、メッセージは送信され、遠隔ノード上のキューに格納され、最後に受信コンポーネントメッセージハンドラに渡される。このとき、送信機のポートインデックスは、受信機のポートインデックスと置換され、2つのコンポーネント3が完全に切り離される。したがって、送信コンポーネント3aは、対応するエンドポイント、すなわちメッセージの受信機が配置されている場所を知らず、その理由は、両方のコンポーネント間の唯一のつながりが、実行環境などにより操作されコンポーネント自体がアクセスできないことがあるテーブルに格納された情報により実現されるためである。
Subsequently, the identifier of the
プラットフォーム(たとえば、(図3に示されていない)システムの制御ユニット)は、検索操作から、コンポーネント3の間の接続/通信チャネル4がネットワークリンク(2つのノード1の間の境界)を横断するかを認識する。さらに、具体的にはメッセージタイプまたはペイロードサイズを分析することで、データレートによってネットワークリンクの輻輳が生じ得るかを決定することができる。自動圧縮のこの態様は、以下で、特に図3の下部に関してさらに説明される。
The platform (eg, the control unit of the system (not shown in FIG. 3)), from the search operation, the connection /
最初に、対応するコンポーネント3が遠隔地の処理リソース上で既にインスタンス化されているために接続が確立される場合、または、たとえば負荷分散もしくは他の性能上の理由で、プラットフォームがコンポーネント3を他の処理ノード1に移動させると決定した場合(たとえば図3参照)に、接続が外部となり得ることにさらに留意されたい。
Initially, if the connection is established because the
一態様によれば、2つのコンポーネント3の間の通信チャネル4の作成の後、または遠隔ノード1へのコンポーネント3の移動(「コンポーネント移動」)の後に、それぞれのテーブルエントリに関連付けられた第1のフラグが設定される。次のメッセージが通信チャネル4を介して送信され、導入された第1のフラグが設定されている場合、プラットフォームは、メッセージヘッダを解析して、メッセージタイプを決定し、ネットワークへの潜在的な負荷を決定し、対応するメッセージタイプに対する適切なエンコーダを決定するようにする。メッセージヘッダの解析は、具体的には、以下の例示的なシナリオで実行される:通信チャネル4は、同一のノード1上に配置された2つのコンポーネント3の間に既に確立されている。そして、2つのコンポーネント3のうちの少なくとも1つが遠隔ノード1に移動され、第1のフラグがコンポーネント移動を示すために設定される。次のメッセージが通信チャネル4を経由して送信される前に、システムは、設定された第1のフラグにより、通信チャネル4がノード1の境界を通過すること、および、ペイロードデータの符号化が必要となり得ることを検出する。
According to one aspect, after the creation of the
メッセージが、圧縮モジュールが存在する特定のタイプのものであり、および/または、データが特性のサイズを有する場合に、プラットフォーム(たとえば、システムの制御ユニット)は、符号化/復号が通信チャネル4に対して必要であると決定することができる。さらに、通信チャネル4により接続された2つのノード1のうちの1つ、または2つのノード1のうちの少なくとも1つが特定の作業負荷で動作する場合に、符号化/復号が必要であると決定することができる。
If the message is of a particular type for which a compression module is present and / or the data has a characteristic size, the platform (eg, the control unit of the system) may encode / decode to the
具体的な例は、データがメディアデータ、たとえばビデオまたは音声形式データである場合に、システム(たとえば、システムの制御ユニット)が常にコーデックを初期化することでもよい。 A specific example may be that the system (eg the control unit of the system) always initializes the codec when the data is media data, eg video or audio format data.
符号化/復号が必要な場合に、および、好ましくはコーデックが転送されるデータのタイプに関して利用可能である場合に、対応するエンコーダ5が初期化され、コーデックをインスタンス化する1つの選択肢に従って、対応するデコーダ6が受信コンポーネント3をホストする遠隔リソース(ノード)1上で通信チャネル4に関して初期化される必要があることを示す制御メッセージが、受信ノード3に送信される。そして、転送される(ペイロード)データは、送信コンポーネント3からエンコーダ5に渡され、符号化される。続いて、符号化されたデータは、エンコーダ5から遠隔側に送信される。転送されるデータを備えるメッセージは、転送データが圧縮されることを示す第2のフラグをさらに備えることができる。受信コンポーネント3を含むノード1において、着信/転送データが符号化されているかを確認することができ、データが符号化されている場合、デコーダ6がインスタンス化され、デコーダ6は、データを復号した後、復号されたデータを受信コンポーネント3に転送する。可能なコーデックは、MPEG−1、MPEG−4、VPS、H.264、H.265、MELP、SILKなどを含むことができる。
If encoding / decoding is required, and preferably when the codec is available with respect to the type of data being transferred, the corresponding
上記により、転送されるデータを受信コンポーネント3に適切に渡すために元のデータタイプを維持することができる。たとえば、処理コンポーネントの間のデータ交換用に用いられる元のメッセージタイプのメッセージは、符号化され、それぞれのノードの実行環境の間で交換される新しいメッセージ内にカプセル化される。受信ノードの実行環境は、このメッセージを受信し、含まれている符号化された元のペイロードデータをデコーダへ渡し、元のメッセージタイプのメッセージを生成して受信コンポーネントに転送する。したがって、データ(メッセージ)符号化/復号操作は、処理コンポーネントにとって透過的である。任意選択で、必要なデコーダ6に関する情報を含み、デコーダ6をインスタンス化する必要性を示す制御情報を、符号化された転送されるデータをさらに含むメッセージに挿入することができる。これにより、エンコーダ6が正しく初期化されることを保証するための処理ノード1の間の追加の通信、たとえば別個の制御メッセージの送信などを要求しないようにすることができる。
As described above, the original data type can be maintained in order to appropriately transfer the transferred data to the receiving
さらなる態様によれば、エンコーダ5およびデコーダ6は、遠隔接続が確立された場合に(最初のメッセージが送信される前であっても)、初期化される。これを行うことができるのは、アプリケーション開発者が圧縮形式の性質について事前に知っており、これが接続作成システムコールによって示される場合か、または、コンポーネントの形式的記述が、予想されるメッセージタイプおよびトラフィックレートを決定するために分析される場合である。たとえば、ビデオデータのみが特定の通信チャネルを経由して転送されるので、ビデオコーデックたとえばMPEG−4、VP8、H.264またはH.265がこの特定の通信チャネルに関して初期化されるかもしれないことをアプリケーション開発者が予想する、または知っていることがある。結果として、コーデックをインスタンス化するいくつかの代替の選択肢が、本明細書で開示されており、これらは上記でより詳細に説明されている。
According to a further aspect, the
図4に、たとえばビデオチャットサービスなどの配備されたアプリケーションの結果を示し、これは、アプリケーションの最適化された分割およびデータの自動符号化、すなわち、上記で説明されたように、データを異なるノード1の間で自動的に符号化して交換できることによって、プラットフォームの極力少数のリソースを使用する。たとえば、図4は、ビデオチャットアプリケーションのパン/チルト/ズーム(PTZ)コンポーネント3が、2つの異なるノード1’、1’’に配布されていることを示す。2つのノードのうちの一方1’は、複雑なコーデックたとえばH.264と、低解像度たとえばVGAとを有するビデオデータを処理する。他方のノード1’’は、高解像度たとえば720pと、単純なコーデックたとえばMP4Vとを有するビデオデータに対するPTZを処理する。両方のPTZ処理ノード1’、1’’は、さらなる別のノード1’’上に配置された背景抽出(BG:background extraction)コンポーネントとの通信チャネル4を確立することができる。さらに、図4の両方のPTZ処理ノード1’、1’’は、通信チャネル4を介して個人用ビュー(PV:personal view)レンダリングを処理するノードにデータを送信することもできる。図4のこの例では、ノード1’’’’は高解像度PVレンダリングを処理するために使用され、さらなるノード1’’’’’は低解像度PVレンダリングを処理するために使用される。低解像度PVレンダリングは多くのコンピューティングリソースを要求しないので、プラットフォームは、図4のこの例では、低解像度PVレンダリングと同一のノード1’’’’’上にビデオ混合コンポーネント3を配置するように決定している。まとめると、図4は、自動的に配布されたビデオチャットアプリケーションの一例を示している。処理コンポーネント3の間のデータ転送は、通信チャネル4を介して実行することができる。たとえば、PTZ処理ノード1’、1’’およびBG処理ノード1’’’の間の、または、PTZ処理ノード1’、1’’およびPVレンダリング処理ノード1’’’’、1’’’’’の間の通信チャネル4について図4に示されるように、通信チャネル4がノード1の境界を通過する場合、システムは、データトラフィックを削減するためにコーデックを自動的にインスタンス化することができる。
FIG. 4 shows the result of a deployed application such as a video chat service, which is an optimized partitioning of the application and automatic encoding of the data, i.e., as described above, the data on different nodes By being able to automatically encode and exchange between ones, it uses as few resources as possible on the platform. For example, FIG. 4 shows that the pan / tilt / zoom (PTZ)
まとめると、提案されたノード、システムおよび方法は、分散(クラウドベースの)実行環境におけるメディアアプリケーションの柔軟な配備を可能にする。アプリケーション開発者は、リソース制約を覚えておく必要がなく、サービス論理のみを管理することができる。これは、クラウドが仮想的に単一のリソースとなることを意味する。提案方法およびこの方法を実装するシステムを適用することにより、より粒度の粗い手法、たとえば仮想マシン、またはアプリケーション開発者によって導入される専用のサービスコンポーネントすらを配備することによって実現される手法などに比べて、さらにいっそう効率的にコンピューティングリソースの間でアプリケーションのサービス論理をプラットフォームが分割できるようになるので、全体のリソース利用を改善することができる。これは、既存の解決方法に比べて約30−40%のより高い利用率を実現すると考えられる。サービスおよびアプリケーション開発が簡単化され、その結果、基本となるクラウドプラットフォームが広く採用されることになる。 In summary, the proposed nodes, systems and methods allow for flexible deployment of media applications in a distributed (cloud-based) execution environment. Application developers do not need to remember resource constraints and can only manage service logic. This means that the cloud is virtually a single resource. By applying the proposed method and the system that implements this method, compared to a more granular method, such as a virtual machine or a method realized by deploying even dedicated service components introduced by application developers Thus, the platform can divide application service logic among computing resources even more efficiently, thus improving the overall resource utilization. This is thought to achieve a higher utilization of about 30-40% compared to existing solutions. Service and application development is simplified, resulting in wide adoption of the underlying cloud platform.
上記では特定の実施形態により実行される特定の順序の動作を説明しているが、代替的実施形態が、異なる順序で動作を実行する、特定の動作を組み合わせる、特定の動作を重複させるなどしてもよいので、そのような順序が例示的であることは理解されたい。所与の実施形態への本明細書における言及は、記載の実施形態が特定の機能、構造または特徴を含み得ることを示すが、全ての実施形態が特定の機能、構造または特徴を必ずしも含まないことがある。 While the above describes a particular sequence of operations performed by a particular embodiment, alternative embodiments perform the operations in a different order, combine certain operations, duplicate certain operations, etc. It should be understood that such an order is exemplary. References herein to a given embodiment indicate that the described embodiment can include a particular function, structure, or feature, but not all embodiments necessarily include a particular function, structure, or feature. Sometimes.
記述および図面が提案方法およびシステムの原理を例示するものにすぎないことに留意されたい。したがって、本明細書には明示的に説明または図示されていないが、様々な構成を当業者が考案できるであろうことは理解されよう。さらに、本明細書に列挙された全ての例は、主に、提案方法およびシステムの原理と、発明者により当技術の発展に捧げられた概念とを理解する際に読者を補助する教育上の目的のためのものにすぎないことが明らかに意図されており、そのような具体的に列挙された例および条件に限定されないものと解釈されたい。さらに、原理、態様、および実施形態、ならびにこれらの具体例を列挙した本明細書の全ての記述は、それらの均等物を含むものとする。 Note that the description and drawings are merely illustrative of the principles of the proposed method and system. Accordingly, although not explicitly described or illustrated herein, it will be understood that various configurations may be devised by those skilled in the art. In addition, all examples listed herein are primarily educational to assist the reader in understanding the principles of the proposed method and system and the concepts devoted to the development of the art by the inventors. It is expressly intended to be for purposes only and should not be construed as limited to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments, as well as specific examples thereof, are intended to include equivalents thereof.
さらに、様々な上述の方法のステップおよび記載のシステムのコンポーネントが、プログラムされたコンピュータにより実施可能であることに留意されたい。本明細書では、いくつかの実施形態はまた、機械可読またはコンピュータ可読であり機械実行可能またはコンピュータ実行可能な命令のプログラムを符号化するものであって、前記命令が前記上述の方法のステップの一部または全部を実施する、デジタルデータ記憶媒体などのプログラム記憶デバイスを含むものとする。プログラム記憶デバイスは、たとえば、デジタルメモリ、磁気記憶媒体たとえば磁気ディスクおよび磁気テープ、ハードドライブ、または光学的可読デジタルデータ記憶媒体とすることができる。実施形態はまた、上述の方法の前記ステップを実施するようにプログラムされたコンピュータを含むものとする。 It is further noted that the various method steps described above and the components of the described system can be implemented by a programmed computer. As used herein, some embodiments also encode a program of machine-readable or computer-readable and machine-executable or computer-executable instructions, said instructions being the steps of the above-described method. It is intended to include a program storage device, such as a digital data storage medium, that implements part or all. The program storage device can be, for example, a digital memory, a magnetic storage medium such as a magnetic disk and magnetic tape, a hard drive, or an optically readable digital data storage medium. Embodiments also include a computer programmed to perform the steps of the method described above.
加えて、本特許文書に記載の様々な要素の機能を、専用ハードウェア、ならびに適切なソフトウェアと関連してソフトウェアを実行可能なハードウェアを用いて提供できることに留意されたい。これらの機能は、プロセッサにより提供する場合、単一の専用プロセッサ、単一の共有プロセッサ、または一部が共有され得る複数の個別プロセッサにより提供することができる。さらに、「プロセッサ」または「コントローラ」という用語の明示的な使用は、ソフトウェアを実行可能なハードウェアを排他的に指すように解釈されるべきではなく、暗黙的に、限定はしないが、デジタル信号プロセッサ(DSP)ハードウェア、ネットワークプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ソフトウェアを記憶するための読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、および不揮発性記憶装置を含むことができる。他のハードウェアも、従来型および/またはカスタム型にかかわらず、同様に含むことができる。 In addition, it should be noted that the functionality of the various elements described in this patent document can be provided using dedicated hardware as well as hardware capable of executing software in conjunction with appropriate software. These functions, when provided by a processor, can be provided by a single dedicated processor, a single shared processor, or multiple individual processors, some of which can be shared. Furthermore, the explicit use of the terms “processor” or “controller” should not be construed to refer exclusively to hardware capable of executing software, but implicitly, but not limited to, digital signals Processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non-volatile A storage device may be included. Other hardware can be included as well, whether conventional and / or custom.
最後に、本明細書の任意のブロック図が概念図を表すことは理解されたい。同様に、任意のフローチャート、流れ図、状態遷移図、疑似コードなどが、実質的にコンピュータ可読媒体に表現可能であって、したがってコンピュータまたはプロセッサにより、そのようなコンピュータまたはプロセッサが明示的に示されていようといまいと、実行可能である様々な処理を表すことは理解されよう。 Finally, it should be understood that any block diagram herein represents a conceptual diagram. Similarly, any flowchart, flowchart, state transition diagram, pseudocode, etc. can be substantially represented on a computer-readable medium, and thus such computer or processor is explicitly indicated by the computer or processor. Anyway, it will be understood that it represents various processes that can be performed.
Claims (15)
2つの処理コンポーネント(3)の間の通信チャネル(4)が処理ノード(1)の境界を横断するかを判定するように構成され、通信チャネル(4)が処理ノード(1)のうちの1つの境界を横断すると判定された場合に、通信チャネル(4)を経由して転送されるデータの符号化および/または復号が必要かを判定するようにさらに構成された、制御ユニット。 A control unit comprising an application distribution unit configured to automatically distribute processing components (3) of an application across processing nodes (1) of a distributed processing service platform ,
It is configured to determine if the communication channel (4) between the two processing components (3) crosses the boundary of the processing node (1), the communication channel (4) being one of the processing nodes (1) one of the case where it is determined to cross the border, which is further configured to encode and / or decode the data transferred via communication channel (4) to determine whether the required control unit.
少なくとも1つのノード(1)が、実行環境(2)および少なくとも1つの処理コンポーネント(3)を備え、
前記実行環境(2)が、処理コンポーネント(3)の発信ポートおよび異なる処理コンポーネント(3)の着信ポートの間に通信チャネル(4)を確立するための手段を含み、
前記実行環境(2)が、それぞれノード(1)上で配布された処理コンポーネント(3)をインスタンス化し、修正し、削除するようにさらに構成され、
システムが、請求項1に記載の制御ユニットをさらに備える、
システム。 A system comprising at least two processing nodes (1),
At least one node (1) comprises an execution environment (2) and at least one processing component (3);
Said execution environment (2) comprises means for establishing a communication channel (4) between an outgoing port of a processing component (3) and an incoming port of a different processing component (3);
Said execution environment (2) is further configured to instantiate, modify and delete processing components (3) respectively distributed on node (1);
The system further comprises a control unit according to claim 1,
system.
前記情報が、通信チャネルの送信コンポーネント(3)および受信コンポーネント(3)のポートを含み、前記情報が、受信コンポーネント(3)が送信コンポーネント(3)と異なるノード(1)内に配置されている場合に識別子をさらに含み、
識別子が、受信ノード(1)のネットワーク位置を識別する、
請求項2に記載のシステム。 The system further comprises a table containing information on said established communication channel (4);
Wherein the information comprises a port of the transmission component (3) and receiving components of communication channels (3), said information, receiving component (3) is arranged to transmit the component (3) and different nodes (1) in Further includes an identifier,
The identifier identifies the network location of the receiving node (1);
The system according to claim 2.
検索操作が、コンポーネント(3)の再割当を示すエントリが前記テーブルに設定されているかを検出し、および/または、受信コンポーネント(3)のノード(1)の位置を発見するために前記識別子を読み出すように構成された、
請求項2または3に記載のシステム。 The system is configured to detect whether the communication channel (4) crosses the boundary of the node (1) by a search operation in the table;
A search operation detects whether an entry indicating reassignment of component (3) is set in the table and / or uses the identifier to find the location of node (1) of receiving component (3) Configured to read,
The system according to claim 2 or 3.
ノード(1)上でアプリケーションの配布された処理コンポーネント(3)をインスタンス化し、修正し、削除するように構成された少なくとも1つの実行環境(2)と、
ノード(1)上で動作する少なくとも1つの配布された処理コンポーネント(3)とを備え、
処理コンポーネント(3)の少なくとも1つの発信ポートが、通信チャネル(4)を経由してデータを送信するために受信処理ノード(1)と通信チャネル(4)を介して接続可能であり、実行環境(2)が、通信チャネル(4)を確立するように構成され、
送信処理ノード(1)が、請求項1に記載の制御ユニットを備え、
符号化が必要であると判定された場合に、エンコーダ(5)をインスタンス化し、インスタンス化されたエンコーダ(5)のタイプに関して受信処理ノード(1)に知らせるように構成された、送信処理ノード。 A transmission processing node (1),
At least one execution environment (2) configured to instantiate, modify and delete the distributed processing component (3) of the application on the node (1);
Comprising at least one distributed processing component (3) and operating on the node (1),
At least one outgoing port of the processing component (3) is, receiving processing nodes to transmit data via a communication channel (4) (1) and can be connected via a communication channel (4), the execution environment (2) is configured to establish a communication channel (4);
The transmission processing node (1) comprises a control unit according to claim 1,
A transmission processing node configured to instantiate the encoder (5) and inform the reception processing node (1) about the type of the instantiated encoder (5) if it is determined that encoding is necessary.
ノード(1)上でアプリケーションの配布された処理コンポーネント(3)をインスタンス化し、修正し、削除するように構成された少なくとも1つの実行環境(2)と、
ノード(1)上で動作する少なくとも1つの配布された処理コンポーネント(3)とを備え、
通信チャネル(4)を経由してデータを受信するために送信処理ノード(1)と通信チャネル(4)を介して接続可能であり、
受信処理ノード(1)が、請求項1に記載の制御ユニットを備え、
符号化が必要であると判定された場合に、送信処理ノード(1)においてインスタンス化されたエンコーダ(5)のタイプに関しての、送信処理ノード(1)から受信された情報に基づいて、デコーダ(6)をインスタンス化するように構成された、受信処理ノード。 A reception processing node (1),
At least one execution environment (2) configured to instantiate, modify and delete the distributed processing component (3) of the application on the node (1);
Comprising at least one distributed processing component (3) and operating on the node (1),
A communication channel (4) through a communication channel (4) Transmission processing node (1) for receiving data via a connectable,
The reception processing node (1) comprises a control unit according to claim 1,
Based on the information received from the transmission processing node (1) regarding the type of encoder (5) instantiated in the transmission processing node (1) when it is determined that encoding is necessary, the decoder ( A receive processing node configured to instantiate 6).
少なくとも1つのノード(1)が、それぞれのノード(1)上で配布された処理コンポーネント(3)をインスタンス化し、修正し、削除する実行環境(2)を有し、
前記実行環境(2)が、データを送信する処理コンポーネント(3)の発信ポートをデータを受信する処理コンポーネント(3)の着信ポートと通信チャネル(4)を介して接続するための手段を含み、
アプリケーションの処理コンポーネントをノード(1)上に自動的に配布するステップと、
送信処理コンポーネント(3)と受信処理コンポーネント(3)の間の通信チャネル(4)を確立するステップと、
通信チャネル(4)がノード(1)の境界を横断するかを判定するステップと、
ノード(1)の境界が横断されると判定された場合に、通信チャネル(4)を経由して転送されるデータの符号化/復号が必要であるかを判定するステップと、
符号化/復号が必要であると判定された場合に、送信コンポーネント(3)のノード内のエンコーダ(5)と、受信コンポーネント(3)のノード内のデコーダ(6)とを初期化するステップと、
転送されるデータを送信コンポーネント(3)からエンコーダ(5)に提供し、エンコーダ(5)内でデータを符号化するステップと、
符号化されたデータを通信チャネル(4)を経由して受信ノードに送信するステップと
を備える、方法。 A method for data communication in a system having at least two processing nodes (1), comprising:
At least one node (1) has an execution environment (2 ) for instantiating, modifying and deleting processing components (3) distributed on each node (1);
Said execution environment (2) comprises means for connecting an outgoing port of a processing component (3) for transmitting data with an incoming port of a processing component (3) for receiving data via a communication channel (4);
Automatically distributing the processing components of the application on node (1);
Establishing a communication channel (4) between the transmission processing component (3) and the reception processing component (3);
Determining whether the communication channel (4) crosses the boundary of the node (1);
If the boundary of the node (1) is determined to be traversed, the steps of the encoding / decoding of data transferred via communication channel (4) to determine whether it is necessary,
Initializing the encoder (5) in the node of the transmitting component (3) and the decoder (6) in the node of the receiving component (3) if it is determined that encoding / decoding is necessary; ,
Providing the data to be transferred from the transmission component (3) to the encoder (5) and encoding the data in the encoder (5);
Transmitting the encoded data to the receiving node via the communication channel (4).
デコーダ(6)が、メッセージに含まれる前記制御情報に基づいてインスタンス化される、
請求項11に記載の方法。 After the encoder (5) is instantiated by the node of the sending component (3), a message containing control information regarding the type of the instantiated encoder (5) is sent to the execution environment (2) of the node of the sending component (3). To the execution environment (2) of the node of the receiving component (3),
A decoder (6) is instantiated based on the control information included in the message.
The method of claim 11.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP13305864.4A EP2819012B1 (en) | 2013-06-24 | 2013-06-24 | Automated compression of data |
| EP13305864.4 | 2013-06-24 | ||
| PCT/EP2014/061679 WO2014206703A1 (en) | 2013-06-24 | 2014-06-05 | Automated compression of data |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2016528591A JP2016528591A (en) | 2016-09-15 |
| JP6404915B2 true JP6404915B2 (en) | 2018-10-17 |
Family
ID=48874972
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016520362A Active JP6404915B2 (en) | 2013-06-24 | 2014-06-05 | Automatic data compression |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US10536501B2 (en) |
| EP (1) | EP2819012B1 (en) |
| JP (1) | JP6404915B2 (en) |
| WO (1) | WO2014206703A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP2819013B1 (en) * | 2013-06-24 | 2019-11-27 | Alcatel Lucent | Automated adaption of a Codec |
Family Cites Families (42)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2746092B2 (en) | 1993-12-20 | 1998-04-28 | 日本電気株式会社 | File transfer method |
| EP1256210A2 (en) * | 2000-02-04 | 2002-11-13 | HRL Laboratories, LLC | System and method for pricing-based quality of service |
| US7418470B2 (en) * | 2000-06-26 | 2008-08-26 | Massively Parallel Technologies, Inc. | Parallel processing systems and method |
| JP2003174486A (en) * | 2001-12-04 | 2003-06-20 | Pioneer Electronic Corp | Information communication device, information communication method and information communication processing program |
| WO2005020471A1 (en) * | 2003-08-21 | 2005-03-03 | Ntt Docomo, Inc. | Mobile communication system, mobile station, and radio control device |
| KR20050082333A (en) * | 2004-02-18 | 2005-08-23 | 삼성전자주식회사 | Apparatus and method for transmission of on-demand cqi in communication system using high speed downlink packet access scheme |
| WO2005120071A2 (en) | 2004-06-01 | 2005-12-15 | L-3 Communications Corporation | Method and system for performing video flashlight |
| US7839775B2 (en) * | 2005-03-15 | 2010-11-23 | Cornell Research Foundation, Inc. | Methods and systems for channel sensing multiple access communications with multipacket reception |
| US7965733B2 (en) * | 2005-03-15 | 2011-06-21 | Cornell University | Systems and methods to detect and avoid collisions in channel sense multiple access communications with multipacket reception |
| US8429630B2 (en) * | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
| FR2893475B1 (en) * | 2005-11-14 | 2007-12-28 | Radiotelephone Sfr | METHOD AND SYSTEM FOR SIMULATION AND RESOURCE MANAGEMENT OF A MOBILE TELEPHONE NETWORK |
| US8424020B2 (en) * | 2006-01-31 | 2013-04-16 | Microsoft Corporation | Annotating portions of a message with state properties |
| US7697529B2 (en) * | 2006-02-28 | 2010-04-13 | Cisco Technology, Inc. | Fabric channel control apparatus and method |
| US20080165896A1 (en) * | 2007-01-05 | 2008-07-10 | Apple Inc. | Self-configuring media devices and methods |
| JP2007188523A (en) | 2007-03-15 | 2007-07-26 | Toshiba Corp | Task execution method and multiprocessor system |
| JP2009049905A (en) | 2007-08-22 | 2009-03-05 | Nippon Telegr & Teleph Corp <Ntt> | Stream processing server apparatus, stream filter type graph setting apparatus, stream filter type graph setting system, stream processing method, stream filter type graph setting method, and computer program |
| US8000708B1 (en) * | 2007-09-11 | 2011-08-16 | Sprint Communications Company L.P. | Seamless inter-network handoff |
| US9413632B2 (en) * | 2007-10-05 | 2016-08-09 | Entropic Communications, Llc | Method for extended rate/range communication over a communication network |
| US8351368B2 (en) * | 2007-10-05 | 2013-01-08 | Entropic Communications, Inc. | Method for extended rate/range communication over a communication network |
| US9521554B2 (en) * | 2008-08-15 | 2016-12-13 | Qualcomm Incorporated | Adaptive clustering framework in frequency-time for network MIMO systems |
| CA2736131A1 (en) * | 2008-09-05 | 2010-03-11 | Aegis Mobility, Inc. | Bypassing enhanced services |
| US10642794B2 (en) * | 2008-09-11 | 2020-05-05 | Vmware, Inc. | Computer storage deduplication |
| US8429299B2 (en) | 2008-10-03 | 2013-04-23 | Advanced Micro Devices, Inc. | Distributed audio and video processing |
| US8838824B2 (en) * | 2009-03-16 | 2014-09-16 | Onmobile Global Limited | Method and apparatus for delivery of adapted media |
| US8214645B2 (en) * | 2009-04-08 | 2012-07-03 | Research In Motion Limited | Systems, devices, and methods for securely transmitting a security parameter to a computing device |
| US9197736B2 (en) * | 2009-12-31 | 2015-11-24 | Digimarc Corporation | Intuitive computing methods and systems |
| KR101606803B1 (en) * | 2010-04-29 | 2016-03-28 | 엘지전자 주식회사 | A method and a base station for transmitting control information, and a method and a user equipment for receiving control information |
| US9781477B2 (en) * | 2010-05-05 | 2017-10-03 | Cavium, Inc. | System and method for low-latency multimedia streaming |
| US20110282949A1 (en) * | 2010-05-11 | 2011-11-17 | Leon Rivkin | Unified message management method and system |
| JP5378298B2 (en) | 2010-05-18 | 2013-12-25 | 日立コンシューマエレクトロニクス株式会社 | Storage with information exchange function between devices |
| EP2400389B1 (en) * | 2010-06-24 | 2016-05-25 | Alcatel Lucent | A method, a system, a server, a device, a computer program and a computer program product for transmitting data in a computer network |
| FR2963861B1 (en) * | 2010-08-10 | 2014-09-12 | Thales Sa | METHOD AND ARCHITECTURE OF CHANNEL OPENING SYSTEM ON LIGHT-MODE VOLP COMMUNICATION ESTABLISHMENT P BGAN, SWIFTBROAD AND FLEETBROADBAND |
| US8838830B2 (en) * | 2010-10-12 | 2014-09-16 | Sap Portals Israel Ltd | Optimizing distributed computer networks |
| US8934493B2 (en) * | 2011-02-24 | 2015-01-13 | Broadcom Corporation | Aggregating communication channels |
| US8891699B2 (en) * | 2011-03-25 | 2014-11-18 | Broadcom Corporation | Characterization and assessment of communication channel average group delay variation |
| WO2012130269A1 (en) * | 2011-03-29 | 2012-10-04 | Nokia Siemens Networks Oy | Distributed control of channel selection in a communication system |
| US8615263B2 (en) * | 2011-05-02 | 2013-12-24 | Telcordia Technologies, Inc. | Systems and methods for efficient radio frequency spectrum management in a scenario involving multiple mobile vehicles |
| CN103650426B (en) * | 2011-05-06 | 2016-10-05 | 思杰系统有限公司 | System and method for cloud bridging between public cloud and private cloud |
| US8972983B2 (en) * | 2012-04-26 | 2015-03-03 | International Business Machines Corporation | Efficient execution of jobs in a shared pool of resources |
| US20140067758A1 (en) * | 2012-08-28 | 2014-03-06 | Nokia Corporation | Method and apparatus for providing edge-based interoperability for data and computations |
| CN105190557B (en) * | 2012-10-16 | 2018-09-14 | 思杰系统有限公司 | For by multistage API set in the public system and method bridged between private clound |
| FR3016987B1 (en) * | 2014-01-29 | 2017-07-21 | Morpho | SCALE OF MONTGOMERY DESEQUILIBREE |
-
2013
- 2013-06-24 EP EP13305864.4A patent/EP2819012B1/en active Active
-
2014
- 2014-06-05 WO PCT/EP2014/061679 patent/WO2014206703A1/en not_active Ceased
- 2014-06-05 JP JP2016520362A patent/JP6404915B2/en active Active
- 2014-06-05 US US14/392,286 patent/US10536501B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2016528591A (en) | 2016-09-15 |
| EP2819012A1 (en) | 2014-12-31 |
| WO2014206703A1 (en) | 2014-12-31 |
| US10536501B2 (en) | 2020-01-14 |
| US20160182591A1 (en) | 2016-06-23 |
| EP2819012B1 (en) | 2020-11-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12108097B2 (en) | Combining video streams in composite video stream with metadata | |
| US10356365B2 (en) | Framework to support a hybrid of meshed endpoints with non-meshed endpoints | |
| US9021062B2 (en) | Sharing audio and video device on a client endpoint device between local use and hosted virtual desktop use | |
| US11450104B1 (en) | Identification and obfuscation of objectionable content from video stream | |
| US11539919B1 (en) | Dynamic cloud video composition | |
| US20150181165A1 (en) | Method and system for resource load balancing in a conferencing session | |
| KR20230006495A (en) | Multi-grouping for immersive teleconferencing and telepresence | |
| CN113973052A (en) | Cloud network system, data transmission method, computing node and storage medium | |
| WO2022048255A1 (en) | Data processing method and system, cloud terminal, server, and computing device | |
| US12063271B2 (en) | Migration of remote data processing between servers | |
| JP6404915B2 (en) | Automatic data compression | |
| US20220070229A1 (en) | Dynamic voice over internet protocol proxy for network bandwidth optimization | |
| JP6216046B2 (en) | Automatic codec adaptation | |
| US11985181B2 (en) | Orchestrating a multidevice video session | |
| CN118200625A (en) | A multimedia processing system, a multimedia processing method and related equipment | |
| US10306021B1 (en) | Streaming content to multiple clients | |
| Tamm et al. | Plugin free remote visualization in the browser | |
| CN103905775B (en) | Switching method and system, the conference terminal of conference terminal in remote presentation conference | |
| US9288436B2 (en) | Systems and methods for using split endpoints in video communication systems |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160212 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170313 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170321 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180109 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180405 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180705 |
|
| 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: 20180821 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180913 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6404915 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |