JP2014165743A - Distribution server and program therefor - Google Patents

Distribution server and program therefor Download PDF

Info

Publication number
JP2014165743A
JP2014165743A JP2013035947A JP2013035947A JP2014165743A JP 2014165743 A JP2014165743 A JP 2014165743A JP 2013035947 A JP2013035947 A JP 2013035947A JP 2013035947 A JP2013035947 A JP 2013035947A JP 2014165743 A JP2014165743 A JP 2014165743A
Authority
JP
Japan
Prior art keywords
transport layer
packet data
unit
connection
packet
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
JP2013035947A
Other languages
Japanese (ja)
Other versions
JP5758934B2 (en
Inventor
Masashi Kaneko
雅志 金子
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013035947A priority Critical patent/JP5758934B2/en
Publication of JP2014165743A publication Critical patent/JP2014165743A/en
Application granted granted Critical
Publication of JP5758934B2 publication Critical patent/JP5758934B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a signal processing technique easily compatible with a multiprotocol by efficiently executing distribution processing in a scale-out type network server system.SOLUTION: A distribution server 20 includes in a transport layer: an external transport layer receiver 222 for receiving a packet to determine whether or not there is an existing external connection 223 that stores the packet data; a distribution destination determination unit 221 for referring to connection information 226 having the external connection 223 associated with an internal connection 225, acquiring the internal connection 225 associated with the existing external connection 223, and handing over the packet data stored in the existing external connection 223 to the internal connection 225; and a transport layer transfer unit 224 for transmitting the packet data, handed over to the internal connection 225, to a processing server 30 of a transfer destination, associated with the internal connection 225.

Description

本発明は、スケールアウト型のネットワークサーバシステムにおける分散処理を効率良く実行する技術に関する。   The present invention relates to a technique for efficiently executing distributed processing in a scale-out type network server system.

近年、通信制御を実行するネットワークサーバシステムについて、Webサーバ等で従来使用されてきたスケールアウト型のシステムを採用するための検討が行われている(非特許文献1参照)。非特許文献1では、コンシステントハッシュ法を用いたスケールアウト型のサーバクラスタ構成法が開示されている。このサーバクラスタ構成法では、サーバクラスタをロードバランサ、振分けサーバ、処理サーバの3要素で構成することによって、サーバの動的な増減設によるシステム構成の柔軟化と、ネットワークサーバシステム(非特許文献1では、セッション制御サーバと記載されている。)としての高い可用性との双方を両立させる技術が開示されている。   In recent years, studies have been conducted on adopting a scale-out type system that has been conventionally used in Web servers and the like for network server systems that execute communication control (see Non-Patent Document 1). Non-Patent Document 1 discloses a scale-out type server cluster configuration method using a consistent hash method. In this server cluster configuration method, a server cluster is configured by three elements of a load balancer, a distribution server, and a processing server, so that the system configuration can be flexibly increased by dynamically increasing and decreasing the number of servers, and a network server system (Non-Patent Document 1). Is described as a session control server), and a technology that achieves both high availability is disclosed.

ロードバランサは、任意の振分けサーバに対して、ラウンドロビン等の単純な法則に従ってパケットを振り分ける。振分けサーバは、ロードバランサから受信したパケットのセッションデータ(セッション管理等に用いられるデータ)がどの処理サーバに管理されているかを判別し、当該セッションデータの管理を担当する処理サーバにパケットを転送する。処理サーバは、受信したパケットに応じて信号処理を実行し、その処理結果を応答情報として返信する。   The load balancer distributes packets to an arbitrary distribution server according to a simple rule such as round robin. The distribution server determines to which processing server the session data (data used for session management etc.) of the packet received from the load balancer is managed, and forwards the packet to the processing server in charge of managing the session data . The processing server performs signal processing according to the received packet, and returns the processing result as response information.

入江道生、外4名、「スケールアウト型セッション制御サーバにおける動的構成変更に関する一検討」、信学技報、社団法人電子情報通信学会、2011年3月、NS2010−236、p.407−410Michio Irie, 4 others, “A study on dynamic configuration change in a scale-out type session control server”, IEICE Technical Report, The Institute of Electronics, Information and Communication Engineers, March 2011, NS2010-236, p. 407-410

非特許文献1では、スケールアウト型のサーバクラスタ構成法を、ネットワークサーバシステムの1つであるSIP(Session Initiation Protocol)サーバに適用した場合について開示している。しかしながら、ネットワークサーバシステムには、様々なサーバ(例えば、セッション制御サーバ、DNS(Domain Name System)サーバ、認証サーバ等)が存在し、それらのプロトコルは多様である。その多様なプロトコル(マルチプロトコル)に対して、分散処理化に伴う処理オーバヘッドや処理遅延の増加を抑制しつつ、容易に対応可能な信号処理技術については開示されていない。   Non-Patent Document 1 discloses a case where the scale-out type server cluster configuration method is applied to an SIP (Session Initiation Protocol) server which is one of network server systems. However, various servers (for example, a session control server, a DNS (Domain Name System) server, an authentication server, etc.) exist in the network server system, and their protocols are various. No signal processing technology that can easily cope with the various protocols (multiprotocols) while suppressing an increase in processing overhead and processing delay associated with distributed processing is not disclosed.

そこで、本発明は、スケールアウト型のネットワークサーバシステムにおいて、分散処理を効率良く実行し、マルチプロトコルに容易に対応可能な信号処理技術を提供することを課題とする。   Therefore, an object of the present invention is to provide a signal processing technique that can efficiently execute distributed processing and can easily cope with multi-protocols in a scale-out type network server system.

本発明は、受信したパケットの転送先の処理サーバを決定し、前記パケットを前記転送先の処理サーバに送信する1以上の振分けサーバおよび受信した前記パケットの応答情報を生成して返信する複数の前記処理サーバを有するネットワークサーバシステムにおける前記振分けサーバであって、外部コネクションと内部コネクションとを関連付けたコネクション情報が記憶される記憶部と、パケットを受信して、そのパケットデータを記憶する既存の外部コネクションがあるか否かを判定するトランスポート層の外部トランスポート層受信部と、前記外部トランスポート層受信部によって前記既存の外部コネクションがあると判定された場合、前記コネクション情報を参照して、当該既存の外部コネクションに記憶されているパケットデータを当該既存の外部コネクションに関連付けられた内部コネクションに引渡すトランスポート層の振分け先決定部と、前記内部コネクションに引渡された前記パケットデータを、当該内部コネクションに関連付けられた前記転送先の処理サーバに送信するトランスポート層のトランスポート層転送部と、を備えることを特徴とする。   The present invention determines a transfer destination processing server for a received packet, generates at least one distribution server for transmitting the packet to the transfer destination processing server, and generates and returns response information for the received packet. The distribution server in the network server system having the processing server, a storage unit storing connection information in which an external connection and an internal connection are associated with each other, and an existing external device that receives the packet and stores the packet data When it is determined by the external transport layer receiving unit of the transport layer that determines whether there is a connection, and the existing external connection by the external transport layer receiving unit, with reference to the connection information, Packet data stored in the existing external connection A transport layer distribution destination determination unit to be transferred to the internal connection associated with the existing external connection, and the packet data transferred to the internal connection to the transfer destination processing server associated with the internal connection And a transport layer transfer unit of the transport layer.

このような構成によれば、スケールアウト型のネットワークサーバシステムに備わる振分けサーバは、トランスポート層において、受信したパケットを、外部コネクションから転送先の処理サーバに関連付けられた内部コネクションに引渡すこと(すなわち、宛先アドレスやポートを修正すること)によって、転送先を設定し直して転送することができる。つまり、振分けサーバは、プロトコルの違いに依存せずに、転送処理を含む分散処理を効率良く実行することができるので、マルチプロトコルに容易に対応することができる。   According to such a configuration, the distribution server provided in the scale-out type network server system transfers the received packet from the external connection to the internal connection associated with the transfer destination processing server in the transport layer (that is, By modifying the destination address and port), the transfer destination can be reset and transferred. In other words, the distribution server can efficiently execute distributed processing including transfer processing without depending on the difference in protocols, and can easily cope with multi-protocols.

また、本発明の前記振分けサーバは、前記パケットデータの集合を示すパケットデータ群を解析し、転送先の決定に用いるキー情報を抽出するアプリケーション層のキー抽出部、および、前記キー情報から求められる変換値と前記転送先の処理サーバとを関連付けた転送先情報が記憶される記憶部をさらに備え、前記外部トランスポート層受信部が、前記既存の外部コネクションがないと判定した場合、新たに外部コネクションを生成し、前記生成した外部コネクションのバッファに、受信した前記パケットのパケットデータを記憶し、前記振分け先決定部が、前記バッファからパケットデータ群を取り出し、当該パケットデータ群を前記キー抽出部に引渡し、前記キー抽出部から前記キー情報を取得し、前記転送先情報を参照して、前記取得したキー情報から求められる変換値に関連付けられた転送先の処理サーバを決定し、前記生成した外部コネクションと当該転送先の処理サーバに関連付けられている内部コネクションとを関連付けて、当該内部コネクションに当該バッファのパケットデータ群を引渡し、前記トランスポート層転送部が、当該パケットデータ群を当該転送先の処理サーバに転送することを特徴とする。   The distribution server according to the present invention is obtained from the key information of the application layer that analyzes a packet data group indicating the set of packet data and extracts key information used for determining a transfer destination, and the key information. A storage unit that stores transfer destination information that associates a conversion value with the processing server of the transfer destination; and when the external transport layer reception unit determines that there is no existing external connection, a new external Generating a connection, storing the packet data of the received packet in a buffer of the generated external connection, the distribution destination determining unit taking out the packet data group from the buffer, and the packet data group being the key extracting unit The key information is acquired from the key extraction unit, and the transfer destination information is referred to to obtain the key information. Determining a transfer destination processing server associated with the converted value obtained from the key information, and associating the generated external connection with the internal connection associated with the transfer destination processing server, The packet data group of the buffer is delivered, and the transport layer transfer unit transfers the packet data group to the transfer destination processing server.

このような構成によれば、プロトコルの相違に対して処理の異なるアプリケーション層のキー抽出部は、キー情報を抽出する処理だけを実行する。つまり、アプリケーション層では、キー抽出部がキー情報を抽出するだけなので、プロトコルが異なったとしても、ブロトコル処理の処理オーバヘッドやMTU(Maximum Transmission Unit)超過問題は起きない。また、トランスポート層では、抽出されたキー情報に基づいて、パケットデータの転送処理が実行される。したがって、振分けサーバは、分散処理を効率良く実行し、マルチプロトコルに容易に対応することができる。   According to such a configuration, the key extraction unit of the application layer having a different process with respect to the protocol difference executes only the process of extracting the key information. That is, in the application layer, the key extraction unit only extracts the key information, so even if the protocol is different, the processing overhead of the protocol processing and the MTU (Maximum Transmission Unit) excess problem do not occur. In the transport layer, packet data transfer processing is executed based on the extracted key information. Therefore, the distribution server can efficiently execute distributed processing and easily cope with multi-protocols.

なお、プログラムに係る発明については、前記した振分けサーバと同様の技術的特徴を備えており、前記振分けサーバ装置と同様の効果を有しているので、記載を省略する。     Note that the invention relating to the program has the same technical features as the above-described distribution server, and has the same effect as the distribution server device, and thus description thereof is omitted.

本発明によれば、スケールアウト型のネットワークサーバシステムにおいて、分散処理を効率良く実行し、マルチプロトコルに容易に対応可能な信号処理技術を提供することができる。   According to the present invention, in a scale-out type network server system, it is possible to efficiently perform distributed processing and provide a signal processing technique that can easily cope with multi-protocols.

スケールアウト型のネットワークサーバシステムの構成例を示す図である。It is a figure which shows the structural example of a scale-out type network server system. 振分けサーバの機能例を示す図である。It is a figure which shows the function example of a distribution server. 振分けサーバの処理フロー例を示す図である。It is a figure which shows the example of a processing flow of a distribution server. 処理サーバの機能例を示す図である。It is a figure which shows the function example of a processing server. 処理サーバの処理フロー例を示す図である。It is a figure which shows the example of a processing flow of a processing server. 振分けサーバおよび処理サーバの機能例をソフトウェア構造で示した図であり、(a)は振分けサーバの場合を表し、(b)は処理サーバの場合を表す。It is the figure which showed the function example of the distribution server and the processing server by the software structure, (a) represents the case of a distribution server, (b) represents the case of a processing server. ネットワークサーバシステムの種別、セッションデータおよびキー情報の一例を示す図である。It is a figure which shows an example of the classification of network server system, session data, and key information.

本発明を実施するための形態(以降、「本実施形態」と称す。)について、適宜図面を参照しながら詳細に説明する。   A mode for carrying out the present invention (hereinafter referred to as “the present embodiment”) will be described in detail with reference to the drawings as appropriate.

はじめに、スケールアウト型のネットワークサーバシステムの構成例について、図1を用いて説明する。
スケールアウト型のネットワークサーバシステム800は、クライアント装置40からネットワーク50を経由してサービス要求のパケットを受信し、そのサービス要求に対応する応答情報を生成し、ネットワーク50を経由してその応答情報を返信するサービスを提供する機能を有する。
First, a configuration example of a scale-out type network server system will be described with reference to FIG.
The scale-out type network server system 800 receives a service request packet from the client device 40 via the network 50, generates response information corresponding to the service request, and sends the response information via the network 50. It has a function to provide a service for replying.

図1では、ネットワークサーバシステム800は、1台のロードバランサ10、複数台の振分けサーバ20、複数台の処理サーバ30を備えている。なお、振分けサーバ20の台数および処理サーバ30の台数は、受信するパケット数の多少に応じて、適宜変更されるものとし、振分けサーバ20は1台であっても構わない。   In FIG. 1, the network server system 800 includes one load balancer 10, a plurality of distribution servers 20, and a plurality of processing servers 30. Note that the number of distribution servers 20 and the number of processing servers 30 may be changed as appropriate according to the number of received packets, and the number of distribution servers 20 may be one.

ロードバランサ10は、パケットをネットワーク50を介して受信し、任意の振分けサーバ20に対して、ラウンドロビン等の単純な法則に従って当該パケットを振り分ける。   The load balancer 10 receives a packet via the network 50 and distributes the packet to an arbitrary distribution server 20 according to a simple rule such as round robin.

振分けサーバ20は、ロードバランサ10から受信したパケットに関するセッションデータ(セッション状態や処理途中の結果等)がどの処理サーバ30に管理されているかを判別し、当該セッションデータの管理を担当する処理サーバ30を転送先として決定し、その転送先の処理サーバ30にパケットを送信する。   The distribution server 20 determines which processing server 30 is managing session data (session state, results during processing, etc.) relating to a packet received from the load balancer 10, and the processing server 30 in charge of managing the session data. Is determined as a transfer destination, and the packet is transmitted to the processing server 30 of the transfer destination.

例えば、振分けサーバ20は、コンシステントハッシュ法を用いてセッションデータ等が管理されている場合、パケットに含まれるキー情報(例えば、SIP(Session Initiation Protocol)ではCall−IDヘッダに記載される情報)から生成されるハッシュ値と、各処理サーバ30に割り当てられたID空間の値とを用いて、パケットの転送先の処理サーバ30を決定する。そして、振分けサーバ20は、決定した転送先の処理サーバ30に、当該パケットを送信する。なお、振分けサーバ20は、処理サーバ30が増減設された場合、その増減設に合わせて処理サーバ30に割り当てるID空間の値を更新する。   For example, when session data or the like is managed using the consistent hash method, the distribution server 20 includes key information included in a packet (for example, information described in a Call-ID header in SIP (Session Initiation Protocol)). The processing server 30 to which the packet is to be transferred is determined using the hash value generated from the above and the ID space value assigned to each processing server 30. Then, the distribution server 20 transmits the packet to the determined transfer destination processing server 30. In addition, when the processing server 30 is increased / decreased, the distribution server 20 updates the value of the ID space assigned to the processing server 30 in accordance with the increased / decreased setting.

処理サーバ30は、受信したパケットの信号処理に用いるセッションデータ等を記憶しているので、そのセッションデータ等を用いて当該パケットに対して信号処理を実行し、その処理結果を応答情報として返信する。   Since the processing server 30 stores session data and the like used for signal processing of the received packet, the processing server 30 executes signal processing on the packet using the session data and returns the processing result as response information. .

次に、振分けサーバ20の機能例について、図2を用いて説明する。
振分けサーバ20は、アプリケーション部200、API(Application Programming Interface)210、振分け処理部220、クラスタ構成管理部230を備える。
Next, a function example of the distribution server 20 will be described with reference to FIG.
The distribution server 20 includes an application unit 200, an API (Application Programming Interface) 210, a distribution processing unit 220, and a cluster configuration management unit 230.

アプリケーション部200は、アプリケーション層以上の階層の処理を実行する機能を有し、キー抽出部201を備える。キー抽出部201は、API210を介して振分け処理部220からパケットデータ群を取得し、パケットデータ群を解析して、転送先の決定に用いるキー情報を抽出し、抽出したキー情報をAPI210の戻り値として振分け処理部220に返信する機能を有する。ここで、パケットデータ群とは、1つの送信データのサイズが大きいために、断片化されて複数のパケットで送信された場合を考慮して、元の送信データを復元可能なパケットデータの集合のことを意味している。つまり、本実施形態では、パケットデータ群と記載している場合には、1つ以上のパケットのパケットデータを指している。それに対して、パケットデータと記載している場合には、1つのパケットのパケットデータを意味している。   The application unit 200 has a function of executing processing at a level higher than the application layer, and includes a key extraction unit 201. The key extraction unit 201 acquires a packet data group from the distribution processing unit 220 via the API 210, analyzes the packet data group, extracts key information used to determine a transfer destination, and returns the extracted key information to the return of the API 210. It has a function of returning a value to the distribution processing unit 220 as a value. Here, the packet data group is a set of packet data in which the original transmission data can be restored in consideration of the case where the size of one transmission data is large and fragmented and transmitted in a plurality of packets. It means that. That is, in this embodiment, when it is described as a packet data group, it indicates packet data of one or more packets. On the other hand, when it is described as packet data, it means packet data of one packet.

API210は、振分け処理部220からパケットデータ群を引数で受け取り、キー抽出部201の抽出したキー情報を戻し値として返す機能を有している。当該API210は、Java(登録商標)で表現した場合には、例えば、下記のように表される。
String getKey(Array<byte[]> packets);
The API 210 has a function of receiving a packet data group from the distribution processing unit 220 as an argument and returning the key information extracted by the key extraction unit 201 as a return value. When the API 210 is expressed in Java (registered trademark), for example, it is expressed as follows.
String getKey (Array <byte []>packets);

振分け処理部220は、振分け先決定部221、外部トランスポート層受信部222、トランスポート層転送部224を備える。なお、クライアント装置40からパケットを受信するのは外部トランスポート層受信部222であり、クラスタ内の処理サーバ30にパケットを送信するのはトランスポート層転送部224である。   The distribution processing unit 220 includes a distribution destination determination unit 221, an external transport layer reception unit 222, and a transport layer transfer unit 224. Note that the external transport layer receiving unit 222 receives a packet from the client device 40, and the transport layer transferring unit 224 transmits the packet to the processing server 30 in the cluster.

外部トランスポート層受信部222は、外部コネクション223を制御する機能を有する。具体的には、外部トランスポート層受信部222は、クライアント装置40からパケットを受信し、新規の外部コネクション223へのパケットか否かを判定する機能を有する。新規である場合、外部トランスポート層受信部222は、新たに外部コネクション223を生成する。新規でない場合(つまり、既設の場合)、外部トランスポート層受信部222は、既設の外部コネクション223にパケットデータを記憶し、外部コネクション223を振分け先決定部221に引渡す。なお、引渡すとは、プログラムの引数のように扱うことを意味している。具体的には、外部トランスポート層受信部222は、外部コネクション223に記憶されているパケットデータを振分け先決定部221に引渡す。   The external transport layer receiving unit 222 has a function of controlling the external connection 223. Specifically, the external transport layer receiving unit 222 has a function of receiving a packet from the client device 40 and determining whether the packet is for a new external connection 223. If it is new, the external transport layer receiving unit 222 newly creates an external connection 223. If not new (that is, existing), the external transport layer receiving unit 222 stores the packet data in the existing external connection 223 and delivers the external connection 223 to the distribution destination determining unit 221. In addition, handing over means handling like a program argument. Specifically, the external transport layer receiving unit 222 delivers the packet data stored in the external connection 223 to the distribution destination determining unit 221.

ここで、外部コネクション223は、クライアント装置40とのトランスポート層プロトコルレベルのコネクション状態を表している。また、内部コネクション225は、処理サーバ30とのトランスポート層プロトコルレベルのコネクション状態を表している。外部トランスポート層受信部222およびトランスポート層転送部224は、例えば、TCP(Transmission Control Protocol)の場合には、対向システムとの接続状態情報やアドレス/ポート情報等を管理している。それに対して、外部トランスポート層受信部222およびトランスポート層転送部224は、UDP(User Datagram Protocol)の場合には、コネクションレスプロトコルであるため、対向システムとの接続状態情報は管理しない。   Here, the external connection 223 represents a connection state at the transport layer protocol level with the client device 40. The internal connection 225 represents a connection state at the transport layer protocol level with the processing server 30. For example, in the case of TCP (Transmission Control Protocol), the external transport layer receiving unit 222 and the transport layer transfer unit 224 manage connection state information, address / port information, and the like with the opposite system. On the other hand, the external transport layer receiving unit 222 and the transport layer transfer unit 224 are connectionless protocols in the case of UDP (User Datagram Protocol), and therefore do not manage connection state information with the opposite system.

振分け先決定部221は、外部トランスポート層受信部222から外部コネクション223のパケットデータ群を取得したとき、その外部コネクション223のパケットデータ群をAPI210を介してキー抽出部201へ引き渡す機能を有する。そして、振分け先決定部221は、API210を介してキー抽出部201から抽出されたキー情報を受信し、クラスタ構成管理部230によって管理されている転送先情報231(例えば、コンシステントハッシュ法におけるID空間に相当)を参照して、転送先の処理サーバ30に関連付けられた内部コネクション225を決定する機能を有する。つまり、振分け先決定部221は、外部コネクション223と内部コネクション225との関連付け(すなわち、宛先アドレスやポートの修正)を行う機能を有している。また、振分け先決定部221は、関連付けが既に出来ている既設の外部コネクション223から内部コネクション225へパケットデータを引渡す機能を有する。   The distribution destination determination unit 221 has a function of delivering the packet data group of the external connection 223 to the key extraction unit 201 via the API 210 when acquiring the packet data group of the external connection 223 from the external transport layer reception unit 222. The distribution destination determination unit 221 receives the key information extracted from the key extraction unit 201 via the API 210, and transfers the transfer destination information 231 (for example, an ID in the consistent hash method) managed by the cluster configuration management unit 230. The internal connection 225 associated with the transfer destination processing server 30 is determined with reference to the space). That is, the distribution destination determination unit 221 has a function of associating the external connection 223 and the internal connection 225 (that is, correcting the destination address and port). Further, the distribution destination determination unit 221 has a function of delivering packet data from the existing external connection 223 that has already been associated to the internal connection 225.

トランスポート層転送部224は、クラスタ内の処理サーバ30に関連付けられた内部コネクション225を制御する機能を有する。また、トランスポート層転送部224は、内部コネクション225に引渡されたパケットデータを転送先の処理サーバ30に送信する機能を有する。   The transport layer transfer unit 224 has a function of controlling the internal connection 225 associated with the processing server 30 in the cluster. Further, the transport layer transfer unit 224 has a function of transmitting the packet data delivered to the internal connection 225 to the transfer destination processing server 30.

クラスタ構成管理部230は、クラスタ内の処理サーバ30の構成に増減設が発生した場合、増減設後(変更後)の構成に対応するように転送先情報231を更新する機能を有する。転送先情報231には、キー情報から求められる変換値とその変換値に関連付けられている処理サーバ30との関係が記憶される。具体例として、コンシステントハッシュ法の場合であれば、転送先情報231はID空間に相当する。   The cluster configuration management unit 230 has a function of updating the transfer destination information 231 so as to correspond to the configuration after the increase / decrease (after change) when the increase / decrease occurs in the configuration of the processing server 30 in the cluster. The transfer destination information 231 stores the relationship between the conversion value obtained from the key information and the processing server 30 associated with the conversion value. As a specific example, in the case of the consistent hash method, the transfer destination information 231 corresponds to an ID space.

ここで、振分けサーバ20の処理フロー例について、図3を用いて説明する(適宜、図2参照)。図3中で、破線の矩形で表示した箇所は、アプリケーション部200で処理する箇所であることを示している。   Here, an example of the processing flow of the distribution server 20 will be described with reference to FIG. 3 (see FIG. 2 as appropriate). In FIG. 3, a portion indicated by a broken-line rectangle indicates a portion processed by the application unit 200.

ステップS301では、外部トランスポート層受信部222は、パケットを受信する。   In step S301, the external transport layer receiving unit 222 receives a packet.

ステップS302では、外部トランスポート層受信部222は、受信したパケットが、既存の外部コネクション223へのパケットか否かを判定する。この判定には、例えば、パケットのヘッダに含まれる宛先アドレス、ポート番号、フラグメンテーション等の情報が用いられる。受信したパケットのパケットデータは、そのパケットのヘッダに含まれる前記情報に関連付けられた外部コネクション223に記憶される。なお、外部トランスポート層受信部222によって新しく生成される新規の外部コネクション223は、後記するステップS306において生成され、生成後は既存の外部コネクション223として扱われる。   In step S <b> 302, the external transport layer reception unit 222 determines whether the received packet is a packet for the existing external connection 223. For this determination, for example, information such as a destination address, a port number, and fragmentation included in the header of the packet is used. The packet data of the received packet is stored in the external connection 223 associated with the information included in the packet header. A new external connection 223 newly generated by the external transport layer receiving unit 222 is generated in step S306 described later, and is treated as an existing external connection 223 after generation.

既存の外部コネクション223へのパケットであると判定した場合(ステップS302でYes)、処理はステップS303へ進み、既存の外部コネクション223へのパケットでないと判定した場合(ステップS302でNo)、処理はステップS306へ進む。   If it is determined that the packet is for the existing external connection 223 (Yes in step S302), the process proceeds to step S303. If it is determined that the packet is not for the existing external connection 223 (No in step S302), the process is as follows. Proceed to step S306.

ステップS303では、振分け先決定部221は、外部コネクション223が既に内部コネクション225に関連付けられているか否かを判定する。なお、振分け先決定部221は、外部コネクション223と内部コネクション225とを関連付けた情報を示すコネクション情報226を不図示の記憶部に記憶しており、コネクション情報226を参照して、ステップS303の判定を実行する。
内部コネクション225に関連付けられていると判定した場合(ステップS303でYes)、処理はステップS304へ進み、内部コネクション225に関連付けられていないと判定した場合(ステップS303でNo)、処理はステップS307へ進む。
In step S <b> 303, the distribution destination determination unit 221 determines whether the external connection 223 is already associated with the internal connection 225. The distribution destination determination unit 221 stores connection information 226 indicating information relating the external connection 223 and the internal connection 225 in a storage unit (not illustrated), and refers to the connection information 226 to determine in step S303. Execute.
If it is determined that it is associated with the internal connection 225 (Yes in step S303), the process proceeds to step S304. If it is determined that it is not associated with the internal connection 225 (No in step S303), the process proceeds to step S307. move on.

ステップS304では、振分け先決定部221は、コネクション情報226を参照して、パケットデータを外部コネクション223から内部コネクション225に引渡す。
ステップS305では、トランスポート層転送部224は、内部コネクション225に引き渡されたパケットデータを、当該内部コネクション225に関連付けられている転送先の処理サーバ30に送信する。
In step S <b> 304, the distribution destination determination unit 221 refers to the connection information 226 and delivers the packet data from the external connection 223 to the internal connection 225.
In step S <b> 305, the transport layer transfer unit 224 transmits the packet data transferred to the internal connection 225 to the transfer destination processing server 30 associated with the internal connection 225.

ステップS306では、外部トランスポート層受信部222は、新たに外部コネクション223を生成する。
ステップS307では、外部トランスポート層受信部222は、外部コネクション223の不図示のバッファにパケットデータ群を記憶する。
In step S306, the external transport layer receiving unit 222 newly creates an external connection 223.
In step S307, the external transport layer reception unit 222 stores the packet data group in a buffer (not shown) of the external connection 223.

ステップS308では、アプリケーション部200のキー抽出部201は、キー情報の抽出処理を実行する。
具体的には、まず、外部トランスポート層受信部222は、振分け先決定部221に外部コネクション223を引渡す。振分け先決定部221は、外部コネクション223を取得し、API210を介して、アプリケーション部200のキー抽出部201にパケットデータ群を引渡す。このとき、振分けサーバ20においては、アプリケーション層のアプリケーション部200とトランスポート層の振分け処理部220との境界にAPI210を規定して、そのAPI210によってパケットデータ群が引渡される。
In step S308, the key extraction unit 201 of the application unit 200 executes key information extraction processing.
Specifically, first, the external transport layer receiving unit 222 delivers the external connection 223 to the distribution destination determining unit 221. The distribution destination determination unit 221 acquires the external connection 223 and delivers the packet data group to the key extraction unit 201 of the application unit 200 via the API 210. At this time, the distribution server 20 defines an API 210 at the boundary between the application unit 200 in the application layer and the distribution processing unit 220 in the transport layer, and a packet data group is delivered by the API 210.

次に、キー抽出部201は、受信したパケットデータ群を解析し、転送先の決定に用いるキー情報をAPI210を介して振分け先決定部221に返す処理を実行する。なお、キー抽出部201は、受信したパケットデータにキー情報が含まれていない場合、後続のパケットデータを受信するために戻り値としてnullを返す。このキー情報抽出処理において、アプリケーション層のアプリケーション部200(キー抽出部201)は、クラスタの構成等を意識する必要はない。   Next, the key extraction unit 201 analyzes the received packet data group and executes a process of returning key information used for determining the transfer destination to the distribution destination determination unit 221 via the API 210. Note that if the received packet data does not include key information, the key extraction unit 201 returns null as a return value in order to receive subsequent packet data. In this key information extraction process, the application unit 200 (key extraction unit 201) in the application layer does not need to be aware of the cluster configuration or the like.

ステップS309では、振分け先決定部221は、キー情報が抽出されたか否かを判定する。具体的には、振分け先決定部221は、アプリケーション部200からAPI210の戻り値としてキー情報が返ってきたか否かを判定する。つまり、振分け先決定部221は、キー情報が返ってきたと判定した場合には、キー情報が抽出されたと判定する。
キー情報が抽出されたと判定した場合(ステップS309でYes)、処理はステップS310へ進み、キー情報が抽出されていないと判定した場合(ステップS309でNo)、処理は終了する。
In step S309, the distribution destination determination unit 221 determines whether key information has been extracted. Specifically, the distribution destination determination unit 221 determines whether key information has been returned from the application unit 200 as a return value of the API 210. That is, the distribution destination determination unit 221 determines that the key information has been extracted when it is determined that the key information has been returned.
If it is determined that the key information has been extracted (Yes in step S309), the process proceeds to step S310. If it is determined that the key information has not been extracted (No in step S309), the process ends.

ステップS310では、振分け先決定部221は、クラスタ構成管理部230によって管理されている転送先情報231を参照して、返ってきたキー情報から求められる変換値に関連付けられた転送先の処理サーバ30を決定する(図3中では、「転送先を決定」)。例えば、コンシステントハッシュ法が用いられている場合、振分け先決定部221は、転送先情報231に相当するID空間を参照して、返ってきたキー情報のハッシュ値(前記変換値に相当)に対応する転送先の処理サーバ30を決定する。   In step S310, the distribution destination determination unit 221 refers to the transfer destination information 231 managed by the cluster configuration management unit 230, and the transfer destination processing server 30 associated with the conversion value obtained from the returned key information. ("Determine transfer destination" in FIG. 3). For example, when the consistent hash method is used, the distribution destination determination unit 221 refers to the ID space corresponding to the transfer destination information 231 and uses the hash value (corresponding to the converted value) of the returned key information. A corresponding transfer destination processing server 30 is determined.

ステップS311では、振分け先決定部221は、転送先の処理サーバ30に関連付けられている内部コネクション225を取得し、取得した内部コネクション225と外部コネクション223との関連付けを実行する。その関連付けされた関係は、振分け先決定部221によって、コネクション情報226に記憶される。   In step S311, the distribution destination determination unit 221 acquires the internal connection 225 associated with the transfer destination processing server 30, and executes association between the acquired internal connection 225 and the external connection 223. The associated relationship is stored in the connection information 226 by the distribution destination determination unit 221.

ステップS312では、振分け先決定部221は、コネクション情報226を参照して、パケットデータ群を外部コネクション223のバッファから内部コネクション225に引渡す。
ステップS313では、トランスポート層転送部224は、内部コネクション225に引き渡されたパケットデータ群を処理サーバ30に送信する。
In step S312, the distribution destination determination unit 221 refers to the connection information 226 and delivers the packet data group from the buffer of the external connection 223 to the internal connection 225.
In step S <b> 313, the transport layer transfer unit 224 transmits the packet data group delivered to the internal connection 225 to the processing server 30.

なお、振分けサーバ20では、一度関連付けられた外部コネクションと内部コネクションとの間のパケットデータの引渡しは、コネクション情報226に基づいて実行されるため、後続のパケット処理にアプリケーション部200が介在することはない。つまり、振分けサーバ20は、転送先を決定するために必要なキー情報の抽出のみをアプリケーション層のアプリケーション部200で実行する。また、パケットデータの転送は、振分け先決定部221によってトランスポート層の転送処理(宛先アドレスやポートの修正)として実行される。   In the distribution server 20, since the transfer of the packet data between the external connection and the internal connection once associated is executed based on the connection information 226, the application unit 200 is not involved in subsequent packet processing. Absent. That is, the distribution server 20 executes only the extraction of key information necessary for determining the transfer destination in the application unit 200 of the application layer. The packet data transfer is executed as a transport layer transfer process (destination address or port correction) by the distribution destination determination unit 221.

したがって、本実施形態の振分けサーバ20は、振分け処理すべてをアプリケーション層のアプリケーション部200によって実行した場合に比較して、アプリケーション層プロトコル処理に伴う処理オーバヘッドや、ヘッダ追加に伴うMTU超過等は発生しない。また、SIPによるパケット送信がUDPで実行される時において、処理サーバ30からクライアント装置40へ応答情報を送信する場合には、振分けサーバ20を経由する必要がなく、応答時間を短縮することが可能になる。   Therefore, the distribution server 20 of this embodiment does not cause processing overhead associated with application layer protocol processing, MTU excess associated with header addition, or the like, as compared with the case where all distribution processing is executed by the application unit 200 of the application layer. . Further, when response information is transmitted from the processing server 30 to the client device 40 when packet transmission by SIP is executed by UDP, there is no need to go through the distribution server 20, and the response time can be shortened. become.

次に、処理サーバ30の機能例について、図4を用いて説明する。
処理サーバ30は、アプリケーション部300、第1のAPI310、第2のAPI311、プロトコル処理部320、分散データ管理部330を備える。
Next, a function example of the processing server 30 will be described with reference to FIG.
The processing server 30 includes an application unit 300, a first API 310, a second API 311, a protocol processing unit 320, and a distributed data management unit 330.

アプリケーション部300は、アプリケーション層以上の階層の処理を実行する機能を有し、キー抽出部301および信号処理部302を備える。キー抽出部201は、第1のAPI310を介して、アプリケーション駆動部321からパケットデータ群を取得し、パケットデータ群に含まれているキー情報を抽出し、抽出したキー情報をアプリケーション駆動部321に返信する機能を有する。信号処理部302は、アプリケーション駆動部321および第2のAPI311を介して、内部コネクション323のパケットデータ群を取得して、アプリケーション層プロトコルによる信号処理を実行する機能を有する。   The application unit 300 has a function of executing processing at a level higher than the application layer, and includes a key extraction unit 301 and a signal processing unit 302. The key extraction unit 201 acquires a packet data group from the application driving unit 321 via the first API 310, extracts key information included in the packet data group, and sends the extracted key information to the application driving unit 321. Has a function to reply. The signal processing unit 302 has a function of acquiring a packet data group of the internal connection 323 via the application driving unit 321 and the second API 311 and executing signal processing using an application layer protocol.

第1のAPI310は、プロトコル処理部320から内部コネクション323をキー抽出部301に引渡し、キー抽出部301の抽出したキー情報を戻し値として返す機能を有している。つまり、第1のAIP310は、前記したAPI210(図2参照)と同様の入出力形式を備えている。
また、第2のAPI311は、アプリケーション駆動部321から内部コネクション323を信号処理部302に引渡し、信号処理結果を応答情報として返す機能を有している。
The first API 310 has a function of delivering the internal connection 323 from the protocol processing unit 320 to the key extraction unit 301 and returning the key information extracted by the key extraction unit 301 as a return value. That is, the first AIP 310 has an input / output format similar to that of the API 210 (see FIG. 2).
The second API 311 has a function of delivering the internal connection 323 from the application driving unit 321 to the signal processing unit 302 and returning a signal processing result as response information.

プロトコル処理部320は、アプリケーション駆動部321および内部トランスポート層受信部322を備える。アプリケーション駆動部321は、内部コネクション323のバッファに記憶されたパケットデータ群を第1のAPI310を介してキー抽出部301に引渡し、キー情報を戻り値として受信する機能を有する。また、アプリケーション駆動部321は、戻り値のキー情報に関連付けられたセッションデータをデータ記憶部331から取得し、内部コネクション323と関連付ける機能を有する。そして、アプリケーション駆動部321は、内部コネクション323と当該セッションデータとを、第2のAPI311を介して、信号処理部302に引渡し、応答情報を受信する機能を有する。   The protocol processing unit 320 includes an application driving unit 321 and an internal transport layer receiving unit 322. The application driving unit 321 has a function of delivering the packet data group stored in the buffer of the internal connection 323 to the key extracting unit 301 via the first API 310 and receiving key information as a return value. Further, the application driving unit 321 has a function of acquiring session data associated with the return key information from the data storage unit 331 and associating it with the internal connection 323. Then, the application driving unit 321 has a function of delivering the internal connection 323 and the session data to the signal processing unit 302 via the second API 311 and receiving response information.

内部トランスポート層受信部322は、振分けサーバ20から送信されてくるパケットデータを受信し、新規のコネクション323へのパケットか否かを判定する機能を有する。次に、内部トランスポート層受信部322は、新規であると判定した場合、新たに内部コネクション323を生成する。そして、内部トランスポート層受信部322は、受信したパケットデータを内部コネクション323の不図示のバッファに記憶し、その内部コネクション323をアプリケーション駆動部321に引渡す機能を有する。   The internal transport layer receiving unit 322 has a function of receiving packet data transmitted from the distribution server 20 and determining whether the packet is a new connection 323. Next, when it is determined that the internal transport layer receiving unit 322 is new, the internal transport layer receiving unit 322 newly generates an internal connection 323. The internal transport layer receiving unit 322 has a function of storing the received packet data in a buffer (not shown) of the internal connection 323 and delivering the internal connection 323 to the application driving unit 321.

分散データ管理部330は、キー情報に関連付けられたセッションデータが記憶されるデータ記憶部331の情報を更新する機能を有する。データ記憶部331には、セッションの状態や処理途中の結果等を示すセッションデータ、内部コネクション323およびキー情報が関連付けて記憶されている。なお、図4中に示すデータA、データBは、セッションデータを表している。データ記憶部331に記憶されている各データは、アプリケーション駆動部321によって、内部コネクション323に関連付けられる。   The distributed data management unit 330 has a function of updating information in the data storage unit 331 in which session data associated with key information is stored. The data storage unit 331 stores session data indicating the session status, results during processing, the internal connection 323, and key information in association with each other. Note that data A and data B shown in FIG. 4 represent session data. Each data stored in the data storage unit 331 is associated with the internal connection 323 by the application driving unit 321.

ここで、処理サーバ30の処理フロー例について、図5を用いて説明する(適宜、図4参照)。図5中で、破線の矩形で表示した箇所は、アプリケーション部300で処理する箇所であることを示している。   Here, a processing flow example of the processing server 30 will be described with reference to FIG. 5 (see FIG. 4 as appropriate). In FIG. 5, a portion indicated by a broken-line rectangle indicates a portion processed by the application unit 300.

ステップS501では、内部トランスポート層受信部322は、振分けサーバ20からパケットを受信する。   In step S <b> 501, the internal transport layer receiving unit 322 receives a packet from the distribution server 20.

ステップS502では、内部トランスポート層受信部322は、既存の内部コネクション323へのパケットか否かを判定する。
既存の内部コネクション323へのパケットであると判定した場合(ステップS502でYes)、処理はステップS504へ進み、既存の内部コネクション323へのパケットでないと判定した場合(ステップS502でNo)、処理はステップS503へ進む。
In step S <b> 502, the internal transport layer receiving unit 322 determines whether the packet is for the existing internal connection 323.
If it is determined that the packet is for the existing internal connection 323 (Yes in step S502), the process proceeds to step S504. If it is determined that the packet is not for the existing internal connection 323 (No in step S502), the process is as follows. It progresses to step S503.

ステップS503では、内部トランスポート層受信部322は、新たに内部コネクション323を生成する。
ステップS504では、内部トランスポート層受信部322は、内部コネクション323の不図示のバッファにパケットデータ群を記憶する。そして、内部トランスポート層受信部322は、内部コネクション323をアプリケーション駆動部321に引渡す。
In step S503, the internal transport layer receiving unit 322 newly generates an internal connection 323.
In step S <b> 504, the internal transport layer receiving unit 322 stores the packet data group in a buffer (not shown) of the internal connection 323. Then, the internal transport layer receiving unit 322 delivers the internal connection 323 to the application driving unit 321.

ステップS505では、アプリケーション駆動部321は、分散データ管理部330によって管理されているデータ記憶部331を参照して、内部コネクション323にセッションデータが関連付けられているか否かを判定する。
セッションデータが関連付けられていると判定した場合(ステップS505でYes)、処理はステップS509へ進み、セッションデータが関連付けられていないと判定した場合(ステップS505でNo)、処理はステップS506へ進む。
In step S <b> 505, the application driving unit 321 refers to the data storage unit 331 managed by the distributed data management unit 330 and determines whether session data is associated with the internal connection 323.
If it is determined that session data is associated (Yes in step S505), the process proceeds to step S509. If it is determined that session data is not associated (No in step S505), the process proceeds to step S506.

ステップS506では、キー抽出部301は、キー情報の抽出処理を実行する。具体的には、まず、アプリケーション駆動部321が、キー抽出部301に、第1のAPI310を介して、パケットデータ群を引渡す。そして、キー抽出部301が、キー情報の抽出処理を実行し、キー情報を抽出した場合、戻り値としてキー情報を、第1のAPI310を介してアプリケーション駆動部321に戻す。   In step S506, the key extraction unit 301 executes key information extraction processing. Specifically, first, the application drive unit 321 delivers a packet data group to the key extraction unit 301 via the first API 310. When the key extraction unit 301 executes key information extraction processing and extracts key information, the key extraction unit 301 returns the key information as a return value to the application driving unit 321 via the first API 310.

ステップS507では、アプリケーション駆動部321は、キー情報が抽出されたか否かを判定する。
キー情報が抽出されたと判定した場合(ステップS507でYes)、処理はステップS508へ進み、キー情報が抽出されていないと判定した場合(ステップS507でNo)、処理はステップS510へ進む。
In step S507, the application driving unit 321 determines whether key information has been extracted.
If it is determined that key information has been extracted (Yes in step S507), the process proceeds to step S508. If it is determined that key information has not been extracted (No in step S507), the process proceeds to step S510.

ステップS508では、アプリケーション駆動部321は、データ記憶部331を参照して、キー情報に関連付けられたセションデータを取得し、セッションデータが無い場合はセッションデータを新規に作成する。   In step S508, the application driving unit 321 refers to the data storage unit 331, acquires session data associated with the key information, and newly creates session data when there is no session data.

ステップS509では、アプリケーション駆動部321は、内部コネクション323と前記ステップS508で取得したセッションデータとを第2のAPI311を介して、信号処理部302に引渡す。   In step S509, the application driving unit 321 delivers the internal connection 323 and the session data acquired in step S508 to the signal processing unit 302 via the second API 311.

ステップS510では、アプリケーション駆動部321は、内部コネクション323を第2のAPI311を介して、信号処理部302に引渡す。   In step S <b> 510, the application driving unit 321 delivers the internal connection 323 to the signal processing unit 302 via the second API 311.

ステップS511では、信号処理部302は、信号処理を実行する。そして、信号処理部302は、信号処理によって、応答情報を生成する。   In step S511, the signal processing unit 302 executes signal processing. Then, the signal processing unit 302 generates response information by signal processing.

なお、内部コネクション323は、対向システム(例えば、クライアント装置40)に対して応答情報のパケットを送信する機能(例えば、送信先のアドレスやポート番号等を用いて送信する機能)を有している。アプリケーション層のアプリケーション部300の信号処理部302は、第2のAPI311を介して内部コネクション323やセッションデータを取得して、信号処理を実行し、その結果をアプリケーション駆動部321に引渡すだけでよい。つまり、アプリケーション層のアプリケーション部300は、転送処理やクラスタ構造に係わる必要はない。そして、応答情報は、TCPの場合には、確立されたコネクションの経路通りに振分けサーバ20を経由して、対向システムに送信される。また、応答情報は、コネクションレスのUDPの場合には、振分けサーバ20を迂回してロードバランサ10を介して対向システムに送信される。したがって、UDPの場合には、応答時間が短縮される可能性がある。   The internal connection 323 has a function of transmitting a response information packet to the opposite system (for example, the client device 40) (for example, a function of transmitting using a destination address, a port number, or the like). . The signal processing unit 302 of the application unit 300 in the application layer only needs to acquire the internal connection 323 and session data via the second API 311, execute signal processing, and deliver the result to the application driving unit 321. That is, the application unit 300 in the application layer does not need to be involved in transfer processing or the cluster structure. In the case of TCP, the response information is transmitted to the opposite system via the distribution server 20 along the path of the established connection. In the case of connectionless UDP, the response information bypasses the distribution server 20 and is transmitted to the opposite system via the load balancer 10. Therefore, in the case of UDP, the response time may be shortened.

ここで、振分けサーバ20および処理サーバ30の機能例をソフトウェア構造で表した場合について、図6を用いて説明する(適宜、図2,4参照)。   Here, a case where the function examples of the distribution server 20 and the processing server 30 are represented by a software structure will be described with reference to FIG. 6 (see FIGS. 2 and 4 as appropriate).

図6(a)は、図2に示す振分けサーバ20の機能例を、ソフトウェア構造で表現した場合を示している。振分けサーバ20は、アプリケーション層プロトコル処理部600、API610、トランスポート層プロトコル処理部620およびクラスタ構成管理部630で構成される。   FIG. 6A shows a case where the function example of the distribution server 20 shown in FIG. 2 is expressed by a software structure. The distribution server 20 includes an application layer protocol processing unit 600, an API 610, a transport layer protocol processing unit 620, and a cluster configuration management unit 630.

アプリケーション層プロトコル処理部600は、図2に示すアプリケーション部200と同様の機能を有しており、キー情報の抽出処理を実行する。
API610は、図2に示すAPI210と同様の機能を有し、パケットデータ群をトランスポート層プロトコル処理部620からアプリケーション層プロトコル処理部600に引渡し、アプリケーション層プロトコル処理部600が抽出したキー情報をトランスポート層プロトコル処理部620に戻す。
The application layer protocol processing unit 600 has the same function as the application unit 200 shown in FIG. 2, and executes key information extraction processing.
The API 610 has the same function as the API 210 shown in FIG. 2, transfers a packet data group from the transport layer protocol processing unit 620 to the application layer protocol processing unit 600, and transmits the key information extracted by the application layer protocol processing unit 600. Return to the port layer protocol processing unit 620.

トランスポート層プロトコル処理部620は、図2に示す振分け処理部220と同様の機能を有し、転送先を決定し、トランスポート層の転送処理(宛先アドレスやポートの修正)を実行して、転送先の処理サーバ30にパケットを送信する。
クラスタ構成管理部630は、図2に示すクラスタ構成管理部230と同様の機能を有し、クラスタ内の処理サーバ30の構成に増減設が発生した場合、増減設後(変更後)の構成に対応するように、キー情報から求められる変換値とその変換値に関連付けられている転送先の処理サーバ30との関係を更新する。
The transport layer protocol processing unit 620 has the same function as the distribution processing unit 220 shown in FIG. 2, determines a transfer destination, and executes transport layer transfer processing (correction of destination address and port), The packet is transmitted to the transfer destination processing server 30.
The cluster configuration management unit 630 has the same function as the cluster configuration management unit 230 shown in FIG. 2, and when an increase / decrease occurs in the configuration of the processing server 30 in the cluster, the cluster configuration management unit 630 has a configuration after the increase / decrease (change) Correspondingly, the relationship between the conversion value obtained from the key information and the transfer destination processing server 30 associated with the conversion value is updated.

このような構成を採ることにより、アプリケーション層プロトコル処理部600は、API610によってトランスポート層プロトコル処理部620およびクラスタ構成管理部630と分割されるので、アプリケーション層以上の処理(キー抽出処理)だけを実行すればよい。したがって、アプリケーション層プロトコル処理部600は、振分けサーバ20の振分け処理すべてをアプリケーション層の処理で実行した場合に比較して、様々なプロトコル(マルチプロトコル)への対応が簡単になる。   By adopting such a configuration, the application layer protocol processing unit 600 is divided from the transport layer protocol processing unit 620 and the cluster configuration management unit 630 by the API 610, so only processing (key extraction processing) higher than the application layer is performed. Just do it. Therefore, the application layer protocol processing unit 600 can easily cope with various protocols (multi-protocols) as compared with the case where all the distribution processes of the distribution server 20 are executed by the application layer processes.

同様に、図6(b)は、図4に示す処理サーバ30の機能例を、ソフトウェア構造で表現した場合を示している。処理サーバ30は、アプリケーション層プロトコル処理部700、API710、トランスポート層プロトコル処理部720および分散データ管理部730で構成される。   Similarly, FIG. 6B shows a case where the function example of the processing server 30 shown in FIG. 4 is expressed by a software structure. The processing server 30 includes an application layer protocol processing unit 700, an API 710, a transport layer protocol processing unit 720, and a distributed data management unit 730.

アプリケーション層プロトコル処理部700は、図4に示すアプリケーション部300と同様の機能を有しており、キー情報の抽出処理や応答情報を生成するための信号処理を実行する。
API710は、図4に示す第1のAPI310および第2のAPI311と同様の機能を表したものである。API710は、パケットデータ群やセッションデータをトランスポート層プロトコル処理部720からアプリケーション層プロトコル処理部700に引渡し、キー情報や応答情報をトランスポート層プロトコル処理部720に戻す。
The application layer protocol processing unit 700 has the same function as that of the application unit 300 shown in FIG. 4, and executes key information extraction processing and signal processing for generating response information.
The API 710 represents the same function as the first API 310 and the second API 311 shown in FIG. The API 710 delivers the packet data group and session data from the transport layer protocol processing unit 720 to the application layer protocol processing unit 700, and returns key information and response information to the transport layer protocol processing unit 720.

トランスポート層プロトコル処理部720は、図4に示すプロトコル処理部320と同様の機能を有し、アプリケーション層プロトコル処理部700から取得した応答情報を対向システムに返信する。
分散データ管理部730は、図4に示す分散データ管理部330と同様の機能を有し、クラスタ内の処理サーバ30の構成に増減設が発生した場合、増減設後(変更後)の構成に対応するようにセッションデータのデータを更新する。
The transport layer protocol processing unit 720 has the same function as the protocol processing unit 320 shown in FIG. 4, and returns response information acquired from the application layer protocol processing unit 700 to the opposite system.
The distributed data management unit 730 has the same function as that of the distributed data management unit 330 shown in FIG. 4. Update the session data so that it corresponds.

このような構成を採ることにより、アプリケーション層プロトコル処理部700は、API710によってトランスポート層プロトコル処理部720および分散データ管理部730と分割されるので、アプリケーション層以上の処理(キー抽出処理および信号処理)だけを実行すればよい。したがって、アプリケーション層プロトコル処理部700は、振分けサーバ20の振分け処理すべてをアプリケーション層の処理で実行した場合に比較して、様々なプロトコル(マルチプロトコル)への対応が簡単になる。   By adopting such a configuration, the application layer protocol processing unit 700 is divided into the transport layer protocol processing unit 720 and the distributed data management unit 730 by the API 710, and therefore processing higher than the application layer (key extraction processing and signal processing) ) Only need to be executed. Therefore, the application layer protocol processing unit 700 can easily deal with various protocols (multi-protocols) as compared with the case where all of the distribution processing of the distribution server 20 is executed by application layer processing.

ここで、ネットワークサーバシステム800の扱うプロトコルの種類が異なることによって、セッションデータおよびキー情報が異なることを示す一例について、図7を用いて説明する。
図7に示すように、ネットワークサーバシステム800の種別が「SIP(プロキシ)サーバ」の場合、セッションデータが「SIPセッション状態」であり、キー情報が「Call−IDヘッダの値」となる。
また、ネットワークサーバシステム800の種別が「SIP(B2BUA)サーバ」の場合、セッションデータが「B2BUAセッション状態」であり、キー情報が「RouteヘッダやViaヘッダにパラメータ設定されたセッションID」となる。ここで、B2BUAとは、Back-To-Back User Agentの略である。
Here, an example showing that the session data and the key information differ depending on the type of protocol handled by the network server system 800 will be described with reference to FIG.
As shown in FIG. 7, when the type of the network server system 800 is “SIP (proxy) server”, the session data is “SIP session state” and the key information is “value of Call-ID header”.
When the type of the network server system 800 is “SIP (B2BUA) server”, the session data is “B2BUA session state”, and the key information is “session ID set as a parameter in the Route header or Via header”. Here, B2BUA is an abbreviation for Back-To-Back User Agent.

また、ネットワークサーバシステム800の種別が「Webアプリケーションサーバ」の場合、セッションデータが「HTTPセッション状態」であり、キー情報が「Cookieに設定されるセッションID」となる。ここで、HTTPは、Hypertext Transfer Protocolの略である。
また、ネットワークサーバシステム800の種別が「XCAPサーバ」の場合、セッションデータが「XMLドキュメント」であり、キー情報が「HTTPのリクエスト行に設定されるドキュメントセレクタ」となる。ここで、XCAPおよびXMLとは、それぞれXML Configuration Access ProtocolおよびExtensible Markup Languageの略である。
When the type of the network server system 800 is “Web application server”, the session data is “HTTP session state”, and the key information is “session ID set in Cookie”. Here, HTTP is an abbreviation for Hypertext Transfer Protocol.
Further, when the type of the network server system 800 is “XCAP server”, the session data is “XML document” and the key information is “document selector set in the HTTP request line”. Here, XCAP and XML are abbreviations for XML Configuration Access Protocol and Extensible Markup Language, respectively.

図7に示すように、ネットワークサーバシステム800の種別が異なると、セッションデータもキー情報も異なる。しかし、アプリケーション層プロトコル処理部600(700)は、キー情報(キー情報および応答情報)だけに対応するソフトウェアを作成すれば良いので、マルチプロトコルにも容易に対応することができる。   As shown in FIG. 7, when the type of the network server system 800 is different, the session data and the key information are also different. However, since the application layer protocol processing unit 600 (700) only needs to create software corresponding to only the key information (key information and response information), it can easily cope with multi-protocols.

以上、本実施形態のスケールアウト型のネットワークサーバシステム800の振分けサーバ20では、トランスポート層において、まず、外部トランスポート層受信部222が、パケットを受信して、そのパケットデータを記憶する既存の外部コネクション223があるか否かを判定する。次に、振分け先決定部221が、外部コネクション223と内部コネクション225とを関連付けたコネクション情報226を参照して、既存の外部コネクション223に関連付けられた内部コネクション225を取得し、当該既存の外部コネクション223に記憶されているパケットデータを当該内部コネクション225に引渡す。そして、トランスポート層転送部224が、内部コネクション225に引渡されたパケットデータを、当該内部コネクション225に関連付けられた転送先の処理サーバ30に送信する。   As described above, in the distribution server 20 of the scale-out type network server system 800 of the present embodiment, in the transport layer, first, the external transport layer receiving unit 222 receives a packet and stores the packet data. It is determined whether there is an external connection 223. Next, the distribution destination determination unit 221 refers to the connection information 226 that associates the external connection 223 and the internal connection 225, acquires the internal connection 225 associated with the existing external connection 223, and the existing external connection The packet data stored in the H.223 is transferred to the internal connection 225. Then, the transport layer transfer unit 224 transmits the packet data delivered to the internal connection 225 to the transfer destination processing server 30 associated with the internal connection 225.

また、振分けサーバ20は、パケットデータの集合を示すパケットデータ群を解析し、転送先の決定に用いるキー情報を抽出するアプリケーション層のキー抽出部201、および、キー情報から求められる変換値と転送先の処理サーバとを関連付けた転送先情報231を備えている。そして、外部トランスポート層受信部222が、既存の外部コネクション223がないと判定した場合、新たに外部コネクション223を生成し、生成した外部コネクション223のバッファに、受信したパケットのパケットデータを記憶する。次に、振分け先決定部221が、バッファからパケットデータ群を取り出し、当該パケットデータ群をキー抽出部201に引渡し、キー抽出部201からキー情報を取得し、転送先情報231を参照して、取得したキー情報から求められる変換値に関連付けられた転送先の処理サーバ30を決定し、生成した外部コネクション223と当該転送先の処理サーバ30に関連付けられている内部コネクション225とを関連付けて、当該内部コネクション225に当該バッファのパケットデータ群を引渡す。そして、トランスポート層転送部224が、当該パケットデータ群を当該転送先の処理サーバ30に転送する。
したがって、スケールアウト型のネットワークサーバシステム800において、分散処理を効率良く実行し、マルチプロトコルに容易に対応可能な信号処理技術を提供することができる。
In addition, the distribution server 20 analyzes a packet data group indicating a set of packet data, extracts a key information used for determining a transfer destination, a key extraction unit 201 in the application layer, and a conversion value and transfer obtained from the key information. Transfer destination information 231 associated with a previous processing server is provided. If the external transport layer receiving unit 222 determines that there is no existing external connection 223, the external transport layer receiving unit 222 newly generates an external connection 223 and stores the packet data of the received packet in the buffer of the generated external connection 223. . Next, the distribution destination determination unit 221 takes out the packet data group from the buffer, delivers the packet data group to the key extraction unit 201, acquires key information from the key extraction unit 201, and refers to the transfer destination information 231. The transfer destination processing server 30 associated with the conversion value obtained from the acquired key information is determined, and the generated external connection 223 and the internal connection 225 associated with the transfer destination processing server 30 are associated with each other. The packet data group of the buffer is delivered to the internal connection 225. Then, the transport layer transfer unit 224 transfers the packet data group to the transfer destination processing server 30.
Therefore, in the scale-out type network server system 800, it is possible to efficiently perform distributed processing and provide a signal processing technique that can easily cope with multi-protocols.

10 ロードバランサ
20 振分けサーバ
30 処理サーバ
40 クライアント装置
200 アプリケーション部
201 キー抽出部
210 API
220 振分け処理部
221 振分け先決定部
222 外部トランスポート層受信部
223 外部コネクション
224 トランスポート層転送部
225 内部コネクジョン
226 コネクション情報
230 クラスタ構成管理部
231 転送先情報
300 アプリケーション部
301 キー抽出部
302 信号処理部
310 第1のAPI
311 第2のAPI
320 プロトコル処理部
321 アプリケーション駆動部
322 内部トランスポート層受信部
323 内部コネクション
330 分散データ管理部
331 データ記憶部
600,700 アプリケーション層プロトコル処理部
610,710 API
620,720 トランスポート層プロトコル処理部
630 クラスタ構成管理部
730 分散データ管理部
800 ネットワークサーバシステム
DESCRIPTION OF SYMBOLS 10 Load balancer 20 Distribution server 30 Processing server 40 Client apparatus 200 Application part 201 Key extraction part 210 API
220 distribution processing unit 221 distribution destination determination unit 222 external transport layer reception unit 223 external connection 224 transport layer transfer unit 225 internal connection 226 connection information 230 cluster configuration management unit 231 transfer destination information 300 application unit 301 key extraction unit 302 signal processing Part 310 First API
311 Second API
320 Protocol processing unit 321 Application driving unit 322 Internal transport layer receiving unit 323 Internal connection 330 Distributed data management unit 331 Data storage unit 600,700 Application layer protocol processing unit 610, 710 API
620, 720 Transport layer protocol processing unit 630 Cluster configuration management unit 730 Distributed data management unit 800 Network server system

Claims (4)

受信したパケットの転送先の処理サーバを決定し、前記パケットを前記転送先の処理サーバに送信する1以上の振分けサーバおよび受信した前記パケットの応答情報を生成して返信する複数の前記処理サーバを有するネットワークサーバシステムにおける前記振分けサーバであって、
外部コネクションと内部コネクションとを関連付けたコネクション情報が記憶される記憶部と、
パケットを受信して、そのパケットデータを記憶する既存の外部コネクションがあるか否かを判定するトランスポート層の外部トランスポート層受信部と、
前記外部トランスポート層受信部によって前記既存の外部コネクションがあると判定された場合、前記コネクション情報を参照して、当該既存の外部コネクションに記憶されているパケットデータを当該既存の外部コネクションに関連付けられた内部コネクションに引渡すトランスポート層の振分け先決定部と、
前記内部コネクションに引渡された前記パケットデータを、当該内部コネクションに関連付けられた前記転送先の処理サーバに送信するトランスポート層のトランスポート層転送部と、
を備えることを特徴とする振分けサーバ。
One or more distribution servers for determining a transfer destination processing server for the received packet, transmitting the packet to the transfer destination processing server, and a plurality of the processing servers for generating response information of the received packet and returning the response information The distribution server in a network server system having:
A storage unit for storing connection information in which an external connection and an internal connection are associated;
An external transport layer receiver of the transport layer that receives the packet and determines whether there is an existing external connection that stores the packet data;
When the external transport layer receiving unit determines that there is the existing external connection, the packet data stored in the existing external connection is associated with the existing external connection with reference to the connection information. A transport layer distribution destination determination unit that delivers to the internal connection,
A transport layer transport unit of a transport layer that transmits the packet data delivered to the internal connection to the transfer destination processing server associated with the internal connection;
A distribution server comprising:
前記振分けサーバは、前記パケットデータの集合を示すパケットデータ群を解析し、転送先の決定に用いるキー情報を抽出するアプリケーション層のキー抽出部、および、前記キー情報から求められる変換値と前記転送先の処理サーバとを関連付けた転送先情報が記憶される記憶部をさらに備え、
前記外部トランスポート層受信部は、前記既存の外部コネクションがないと判定した場合、新たに外部コネクションを生成し、前記生成した外部コネクションのバッファに、受信した前記パケットのパケットデータを記憶し、
前記振分け先決定部は、前記バッファからパケットデータ群を取り出し、当該パケットデータ群を前記キー抽出部に引渡し、前記キー抽出部から前記キー情報を取得し、前記転送先情報を参照して、前記取得したキー情報から求められる変換値に関連付けられた転送先の処理サーバを決定し、前記生成した外部コネクションと当該転送先の処理サーバに関連付けられている内部コネクションとを関連付けて、当該内部コネクションに当該バッファのパケットデータ群を引渡し、
前記トランスポート層転送部は、当該パケットデータ群を当該転送先の処理サーバに転送する
ことを特徴とする請求項1に記載の振分けサーバ。
The distribution server analyzes a packet data group indicating the set of packet data and extracts key information used to determine a transfer destination, a key extraction unit of an application layer, and a conversion value obtained from the key information and the transfer A storage unit for storing transfer destination information associated with a previous processing server;
When the external transport layer receiving unit determines that there is no existing external connection, it newly generates an external connection, and stores the packet data of the received packet in the buffer of the generated external connection,
The distribution destination determination unit takes out a packet data group from the buffer, passes the packet data group to the key extraction unit, acquires the key information from the key extraction unit, refers to the transfer destination information, and A transfer destination processing server associated with the conversion value obtained from the acquired key information is determined, and the generated external connection is associated with the internal connection associated with the transfer destination processing server. Deliver the packet data group of the buffer,
The distribution server according to claim 1, wherein the transport layer transfer unit transfers the packet data group to the transfer destination processing server.
受信したパケットの転送先の処理サーバを決定し、前記パケットを前記転送先の処理サーバに送信する1以上の振分けサーバおよび受信した前記パケットの応答情報を生成して返信する複数の前記処理サーバを有するネットワークサーバシステムにおける前記振分けサーバが、外部コネクションと内部コネクションとを関連付けたコネクション情報が記憶される記憶部を備え、
前記振分けサーバに、
パケットを受信して、そのパケットデータを記憶する既存の外部コネクションがあるか否かを判定するトランスポート層の外部トランスポート層受信手順と、
前記外部トランスポート層受信手順において前記既存の外部コネクションがあると判定された場合、前記コネクション情報を参照して、当該既存の外部コネクションに記憶されているパケットデータを当該既存の外部コネクションに関連付けられた内部コネクションに引渡すトランスポート層の振分け先決定手順と、
前記内部コネクションに引渡された前記パケットデータを、当該内部コネクションに関連付けられた前記転送先の処理サーバに送信するトランスポート層のトランスポート層転送手順と、
を実行させるためのプログラム。
One or more distribution servers for determining a transfer destination processing server for the received packet, transmitting the packet to the transfer destination processing server, and a plurality of the processing servers for generating response information of the received packet and returning the response information The distribution server in the network server system includes a storage unit that stores connection information in which an external connection and an internal connection are associated with each other.
In the distribution server,
An external transport layer reception procedure of the transport layer that receives the packet and determines whether there is an existing external connection that stores the packet data;
When it is determined in the external transport layer reception procedure that the existing external connection exists, the packet information stored in the existing external connection is associated with the existing external connection with reference to the connection information. The transport layer distribution destination decision procedure to be delivered to the internal connection,
A transport layer transfer procedure of a transport layer for transmitting the packet data delivered to the internal connection to the processing server of the transfer destination associated with the internal connection;
A program for running
前記振分けサーバは、前記パケットデータの集合を示すパケットデータ群を解析し、転送先の決定に用いるキー情報を抽出するアプリケーション層のキー抽出部、および、前記キー情報から求められる変換値と前記転送先の処理サーバとを関連付けた転送先情報が記憶される記憶部をさらに備え、
前記振分けサーバに、
前記外部トランスポート層受信手順において前記既存の外部コネクションがないと判定した場合、新たに外部コネクションを生成し、前記生成した外部コネクションのバッファに、受信した前記パケットのパケットデータを記憶させ、
前記振分け先決定手順において、前記バッファからパケットデータ群を取り出し、当該パケットデータ群を前記キー抽出部に引渡し、前記キー抽出部から前記キー情報を取得し、前記転送先情報を参照して、前記取得したキー情報から求められる変換値に関連付けられた転送先の処理サーバを決定し、前記生成した外部コネクションと当該転送先の処理サーバに関連付けられている内部コネクションとを関連付けて、当該内部コネクションに当該バッファのパケットデータ群を引渡させ、
前記トランスポート層転送手順において、当該パケットデータ群を当該転送先の処理サーバに転送させる
ことを実行するための請求項3に記載のプログラム。
The distribution server analyzes a packet data group indicating the set of packet data and extracts key information used to determine a transfer destination, a key extraction unit of an application layer, and a conversion value obtained from the key information and the transfer A storage unit for storing transfer destination information associated with a previous processing server;
In the distribution server,
When it is determined in the external transport layer reception procedure that there is no existing external connection, a new external connection is generated, and the packet data of the received packet is stored in the generated external connection buffer.
In the distribution destination determination procedure, a packet data group is extracted from the buffer, the packet data group is transferred to the key extraction unit, the key information is acquired from the key extraction unit, and the transfer destination information is referred to, A transfer destination processing server associated with the conversion value obtained from the acquired key information is determined, and the generated external connection is associated with the internal connection associated with the transfer destination processing server. Deliver the packet data group of the buffer,
The program according to claim 3, for executing the transfer of the packet data group to the transfer destination processing server in the transport layer transfer procedure.
JP2013035947A 2013-02-26 2013-02-26 Distribution server and its program Active JP5758934B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013035947A JP5758934B2 (en) 2013-02-26 2013-02-26 Distribution server and its program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013035947A JP5758934B2 (en) 2013-02-26 2013-02-26 Distribution server and its program

Publications (2)

Publication Number Publication Date
JP2014165743A true JP2014165743A (en) 2014-09-08
JP5758934B2 JP5758934B2 (en) 2015-08-05

Family

ID=51615964

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013035947A Active JP5758934B2 (en) 2013-02-26 2013-02-26 Distribution server and its program

Country Status (1)

Country Link
JP (1) JP5758934B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018501681A (en) * 2014-10-17 2018-01-18 華為技術有限公司Huawei Technologies Co.,Ltd. Data stream distribution method and apparatus

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003174473A (en) * 2001-12-06 2003-06-20 Fujitsu Ltd Server load distribution system
JP2011041006A (en) * 2009-08-11 2011-02-24 Fujitsu Ltd Load balancing device, load balancing method and load balancing program
JP2012222402A (en) * 2011-04-04 2012-11-12 Fujitsu Ltd Relay device, relay program, and relay method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003174473A (en) * 2001-12-06 2003-06-20 Fujitsu Ltd Server load distribution system
JP2011041006A (en) * 2009-08-11 2011-02-24 Fujitsu Ltd Load balancing device, load balancing method and load balancing program
JP2012222402A (en) * 2011-04-04 2012-11-12 Fujitsu Ltd Relay device, relay program, and relay method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG201100192060; 入江道生、外4名: 'スケールアウト型セッション制御サーバにおける動的構成変更に関する一検討' 信学技報 第110巻、第448号, 20110224, 407〜410, 社団法人電子情報通信学会 *
JPN6014051998; 入江道生、外4名: 'スケールアウト型セッション制御サーバにおける動的構成変更に関する一検討' 信学技報 第110巻、第448号, 20110224, 407〜410, 社団法人電子情報通信学会 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018501681A (en) * 2014-10-17 2018-01-18 華為技術有限公司Huawei Technologies Co.,Ltd. Data stream distribution method and apparatus
US10715589B2 (en) 2014-10-17 2020-07-14 Huawei Technologies Co., Ltd. Data stream distribution method and apparatus

Also Published As

Publication number Publication date
JP5758934B2 (en) 2015-08-05

Similar Documents

Publication Publication Date Title
US10110429B2 (en) Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9762494B1 (en) Flow distribution table for packet flow load balancing
US9246844B2 (en) Method for activating and deactivating client-side services from a remote server
US8892768B2 (en) Load balancing apparatus and load balancing method
US9058213B2 (en) Cloud-based mainframe integration system and method
EP2870735B1 (en) Method for adding client capability data to a sip message
US20060015647A1 (en) System and method for communication between heterogeneous networks
JP2015130199A (en) Enterprise client-server system and methods for providing web application support through distributed emulation of websocket communications
US20080195753A1 (en) Relay apparatus, recording medium containing relay program, and communication system
KR102345473B1 (en) Method and apparatus for data transmission using quic-proxy to provide internet of things service
EP3142306A1 (en) Openflow communication method, system, controller, and service gateway
US20160127241A1 (en) Apparatus and method for flow control
US8443057B1 (en) System, method, and/or apparatus for establishing peer-to-peer communication
US20140310429A1 (en) Server-side http translator
US20120284417A1 (en) Endpoint Discriminator in Network Transport Protocol Startup Packets
CN113014499B (en) Data transmission method and device, electronic equipment and storage medium
JP5758934B2 (en) Distribution server and its program
US20150189004A1 (en) Method and farm load balancing device for establishing a bi-directional server to server communication and computer program thereof
CN105812443A (en) P2P system and P2P system business access method
US20080250152A1 (en) Communication method having firewall network tunnel and location transparency
US11706290B2 (en) Direct server reply for infrastructure services
JP2008065611A (en) Software update method and software update program
US9781075B1 (en) Increased port address space
JP6413543B2 (en) Load balancing device, server, load balancing system, load balancing program
US8219610B2 (en) Content providing system, monitoring server, and SIP proxy server

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140529

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150515

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: 20150602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150604

R150 Certificate of patent or registration of utility model

Ref document number: 5758934

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150