JP6653230B2 - 通信管理装置、通信管理方法、および、通信管理プログラム - Google Patents

通信管理装置、通信管理方法、および、通信管理プログラム Download PDF

Info

Publication number
JP6653230B2
JP6653230B2 JP2016171114A JP2016171114A JP6653230B2 JP 6653230 B2 JP6653230 B2 JP 6653230B2 JP 2016171114 A JP2016171114 A JP 2016171114A JP 2016171114 A JP2016171114 A JP 2016171114A JP 6653230 B2 JP6653230 B2 JP 6653230B2
Authority
JP
Japan
Prior art keywords
receiving
memory area
data
communication
memory
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
Application number
JP2016171114A
Other languages
English (en)
Other versions
JP2018036962A (ja
Inventor
貴之 秋山
貴之 秋山
彰則 白神
彰則 白神
石橋 宏純
宏純 石橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2016171114A priority Critical patent/JP6653230B2/ja
Publication of JP2018036962A publication Critical patent/JP2018036962A/ja
Application granted granted Critical
Publication of JP6653230B2 publication Critical patent/JP6653230B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、通信管理装置、通信管理方法、および、通信管理プログラムに関する。説明の便宜上、「ネットワーク」という語は、「NW」と表記する場合がある。
従来のNWシステムは、通信装置(例、サーバ、仮想マシン)とNW装置(例:ルータ、スイッチ、ファイヤウォール)を組み合わせた多段構成をとっている。異なる通信装置間の通信を実現するためには、装置(通信装置およびNW装置の総称)ごとに、矛盾のない物理設計および論理設計を行う必要がある。NWシステムを拡大させるために装置を追加する場合には、追加のたびに上記の物理設計および論理設計を行う必要がある。
非特許文献1〜3には、NWシステムを構築する技術に関する記載がある。
塩本 公平、「学際的アプローチにより複雑化するネットワークの課題解決に向けて」、[online]、2015年7月、NTT技術ジャーナル、[平成28年8月18日検索]、インターネット〈URL:http://www.ntt.co.jp/journal/1507/files/jn201507008.pdf〉 寺嶋 浩信、「ネットワークインフラの最新技術動向」、[online]、UNISYS TECHNOLOGY REVIEW 第126号、DEC.2015、[平成28年8月18日検索]、インターネット〈URL:http://www.unisys.co.jp/tec_info/tr126/12601.pdf〉、p3-23 宇野 俊夫 著、「独習 TCP/IP IPネットワーキング編」、翔泳社、p221-222
大規模なNWシステムを構築する場合、装置ごとの物理設計および論理設計は非常に煩雑になり、NWシステムの構築が煩雑になる、というデメリットがある。また従来のように多段構成をとる場合には、1つの通信に多くの装置が介在することになるため、伝送遅延が増大したり、盗聴、漏洩、改ざんなどのセキュリティリスクが増大したりする、というデメリットもある。
非特許文献1〜3には、これらのデメリットを解消するための記載も示唆もない。
このような事情に鑑みて、本発明は、NWシステムの構築を簡略にすることを課題にする。
前記した課題を解決するため、請求項1に記載の発明は、送信側装置と受信側装置との通信を管理する通信管理装置であって、前記送信側装置から前記受信側装置に送信されるデータを、KVS(キーバリューストア)のデータ構造を持つデータとしてメモリ領域に格納するメモリと、前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納する制御部と、を備え、前記制御部は、新規の受信側装置が追加される場合、当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定する、ことを特徴とする。
また、請求項に記載の発明は、送信側装置と受信側装置との通信を管理する通信管理装置における通信管理方法であって、前記通信管理装置は、前記送信側装置から前記受信側装置に送信されるデータを、KVSのデータ構造を持つデータとしてメモリ領域に格納するメモリを備えており、前記通信管理装置の制御部が、前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納するステップ、を実行新規の受信側装置が追加される場合、当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定するステップを実行する、ことを特徴とする。
また、請求項に記載の発明は、送信側装置と受信側装置との通信を管理する通信管理装置としてのコンピュータを、前記送信側装置から前記受信側装置に送信されるデータを、KVSのデータ構造を持つデータとしてメモリ領域に格納する記憶手段、前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納し、新規の受信側装置が追加される場合、当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定する制御手段、として機能させるための通信管理プログラムである。
請求項1,の発明によれば、送信側装置と受信側装置との通信の管理を、KVSのデータ構造を持つデータの書き込みと読み出しとで実現することができる。よって、従来の煩雑な、装置ごとの物理設計および論理設計はもはや不要となる。また、従来のNW装置間の物理配線の接続も不要となる。
したがって、NWシステムの構築を簡略にすることができる。
また、従来のNWシステムのように多段構成を導入することがないため、送信側装置と受信側装置との通信は、1度の書き込みと1度の読み出しで済み、1つの通信に多くの装置が介在することによる伝送遅延は生じない。
また、新規の受信側装置を追加する場合には、メモリを増設するだけで済むので、NWシステムの拡大を簡略にすることができる。
また、請求項2に記載の発明は、請求項1に記載の通信管理装置であって、前記制御部は、前記送信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域に書き込むことを許可する書き込み判定部を備える、ことを特徴とする。
請求項2に記載の発明によれば、通信管理装置への不正アクセスの判定については、書き込み対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のNWシステムを構成する多くのNW装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
また、請求項3に記載の発明は、請求項1または請求項2に記載の通信管理装置であって、前記制御部は、前記受信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域から読み出すことを許可する読み出し判定部を備える、ことを特徴とする。
請求項3に記載の発明によれば、メモリサーバへの不正アクセスの判定については、読み出し対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のNWシステムを構成する多くのNW装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
また、請求項4に記載の発明は、請求項1から請求項3のいずれか1項に記載の通信管理装置であって、前記キーは、前記受信側装置の受信側アドレス、および、前記受信側装置のポート番号を含み、前記バリューは、前記送信側装置の送信側アドレス、および、前記データの本体を含む、ことを特徴とする。
請求項4に記載の発明によれば、データのキーに受信側装置の情報を含ませ、データのバリューに送信側装置の情報を含ませることで、通信管理を一元化することができる。
また、請求項に記載の発明は、請求項1から請求項のいずれか1項に記載の通信管理装置であって、前記送信側装置と前記受信側装置との通信は、PULL通信、PUSH通信、または、マルチキャスト通信のいずれかである、ことを特徴とする。
請求項に記載の発明によれば、受信側メモリ領域での書き込みや読み出しは自在に行うことができるため、PULL通信、PUSH通信、または、マルチキャスト通信といった通信方式を容易に導入することができる。
本発明によれば、NWシステムの構築を簡略にすることができる。
本実施形態におけるNWシステムの機能構成図の例である。 PULL通信の場合におけるデータ送信シーケンスの例(1/2)である。 PULL通信の場合におけるデータ送信シーケンスの例(2/2)である。 PUSH通信の場合におけるデータ送信シーケンスの例(一部)である。 マルチキャスト通信の場合におけるデータ送信シーケンスの例(一部)である。 他の実施形態におけるNWシステムの機能構成図の例である。
≪構成≫
本発明の実施形態について、図面を参照しながら詳細に説明する。
図1に示すように、本実施形態のNWシステムは、メモリサーバ1と、送信側装置2と、受信側装置3とを備える。送信側装置2および受信側装置3は複数存在するが、図1中では1つのみ示す。メモリサーバ1と、送信側装置2と、受信側装置3とはバスないしNWで通信可能に接続されている。
メモリサーバ1は、インメモリKVS(Key-Value Store)を用いたデータベースサーバである。
送信側装置2は、受信側装置3との間で通信を行う装置である。
受信側装置3は、送信側装置2との間で通信を行う装置である。
メモリサーバ1、送信側装置2、受信側装置3はそれぞれ、CPU(Central Processing Unit)と、記憶手段(記憶部)と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、CPUが、記憶部上に読み込んだプログラム(通信管理プログラムを含む。)を実行することで、各機能部により構成される制御部(制御手段)を動作させる。
(送信側装置2)
送信側装置2は、送信プロセス部21と、信号変換部22と、送受信部23とを備える。
送信プロセス部21は、送信側装置2内の各種プロセスを実行する。
信号変換部22は、送信プロセス部21によるプロセス実行の結果をメモリサーバ1に送信する信号に変換する。
具体的には、信号変換部22は、プロセスからソケットAPI(Application Programming Interface)を呼び出す。ソケットAPIは、送信側装置2と受信側装置3との間の通信を確立するためのAPIである。ソケットAPIを用いることで、既存の通信APIを流用できるように、送信側装置2および受信側装置3といった端末側の処理を階層化することができる。つまり、送信側装置2と受信側装置3とのプロセス間通信は、従来のTCP/IP通信と、本発明のKVSを用いた通信とを組み合わせることができる。
また、信号変換部22は、メモリサーバ1にアクセスする際のキーとバリュー格納部とを生成する。バリュー格納部は、KVSのデータ構造を持つデータのバリューを格納する格納用データとしてもよいし、バリューそのものとしてもよい。バリュー格納部の具体例については後記する。
また、信号変換部22は、送受信部23のキューに所定の情報を書き込む。
送受信部23は、NW上の装置と情報をやり取りするためのインターフェースとなる。
具体的には、送受信部23は、信号変換部22によって情報が書き込まれたキューを保存する。
また、送受信部23は、キューに書き込まれた情報をメモリサーバ1に送信する。
(メモリサーバ1)
メモリサーバ1は、接続可否判定部11と、送受信部12と、通知部13と、メモリ14(記憶手段)とを備える。メモリ14は、メモリ領域14aを備える。
接続可否判定部11は、メモリ領域14aの全体を管理する。具体的には、接続可否判定部11は、キーに基づくメモリ領域14aの割当てを行う。接続可否判定部11は、メモリサーバ1の制御部(制御手段)として機能することができる。
また、接続可否判定部11は、送信側装置2と受信側装置3との接続可否の判定について定めた判定ルールを保持する。
また、接続可否判定部11は、キーとバリュー格納部とに基づいて、送信側装置2と受信側装置3との接続可否を判定する。
また、接続可否判定部11は、外部からのメモリ領域14aへのアクセスを制御する。
送受信部12は、NW上の装置と情報をやり取りするためのインターフェースとなる。
具体的には、送受信部12は、送信側装置2から受信したバリュー格納部をメモリ14に書き込みできるか否かを、接続可否判定部11に確認する。
また、送受信部12は、接続可否判定部11による判定結果に応じて、受信側装置3が利用可能なメモリ領域14aにバリュー格納部を書き込んだり、メモリ領域14aからバリュー格納部を読み出したりする。
また、送受信部12は、PULL通信の場合には、受信側装置3からの要求に対して、対象のバリュー格納部をメモリ領域14aから受信側装置3に送信する。
また、送受信部12は、PUSH通信またはマルチキャスト通信の場合には、通知部13による通知後、対象のバリュー格納部をメモリ領域14aから受信側装置3に送信する。
通知部13は、PUSH通信またはマルチキャスト通信を行う場合には、受信側装置3に所定の到着通知を行う。この到着通知は、例えば、送信側装置2から情報を受信した旨の通知としてもよいし、KVSの更新があった旨の通知としてもよい。
メモリ14は、送信側装置2と受信側装置3との間の通信でやり取りされる情報を保存する。具体的には、メモリ14は、送信側装置2から受信した情報をメモリ領域14aに書き込み、保存する。
また、メモリ14は、受信側装置3が取得完了した情報を、メモリ領域14aから削除する。
(受信側装置3)
受信側装置3は、受信プロセス部31と、信号変換部32と、送受信部33とを備える。
受信プロセス部31は、受信側装置3内の各種プロセスを実行する。
信号変換部32は、受信プロセス部31によるプロセス実行の結果をメモリサーバ1に送信する信号に変換する。
具体的には、信号変換部32は、プロセスからソケットAPIを呼び出す。
また、信号変換部32は、メモリサーバ1にアクセスする際のキーとバリュー格納部とを生成する。
また、信号変換部32は、PULL通信の場合には、送受信部33に情報の取得要求をする。
また、信号変換部32は、送受信部33のキューから情報を取り出し、取り出した情報を受信プロセス部31に通知する。
送受信部33は、NW上の装置と情報をやり取りするためのインターフェースとなる。
具体的には、送受信部33は、PULL通信の場合には、信号変換部32からの情報の取得要求を受け、メモリサーバ1に対して該当の情報の有無を確認する。
また、送受信部33は、PUSH通信またはマルチキャスト通信の場合には、メモリサーバ1の通知部13からの到着通知を受信する。
また、送受信部33は、信号変換部32に対し、キーとバリュー格納部との生成を指示する。
また、送受信部33は、メモリサーバ1から情報を受信し、受信した情報をキューに書き込む。
送信側装置2は、KVSのデータ構造を持つデータをメモリサーバ1に送信する。図1に示すように、メモリサーバ1に送信されるデータは、キーk1とバリューv1とからなる。キーk1には、例えば、受信側アドレスと、ポート番号とが含まれる。受信側アドレスは、例えば、受信側装置3のIPアドレスとすることができる。ポート番号は、受信側装置3が有するポートの識別番号である。
キーk1の形態としては、IPアドレスとポート番号との組にTCP(Transmission Control Protocol)種別、または、UDP種別を用いてもよい。キーの形態としてMAC(Media Access Control)アドレスなどのハードウェアアドレスを用いてもよいし、HTTP(HyperText Transfer Protocol)−URL(Uniform Resource Locator)やSIP(Session Initiation Protocol)−URI(Uniform Resource Identifier)などのURIを用いてもよい。
バリューv1には、例えば、送信側アドレスと、送信データとが含まれる。送信側アドレスは、例えば、送信側装置2のIPアドレスとすることができる。送信データは、送信側装置2から受信側装置3に送信されるデータの本体である。バリューv1は、送信側アドレスと送信データとを併せて格納するバリュー格納部として機能する。
メモリサーバ1は、接続可否判定部11の機能に従い、送信側装置2から受信したキーk1に対応する受信側メモリ領域14a1に、バリューv1に相当する送信側アドレスと送信データとを格納する。受信側メモリ領域14a1は、メモリ領域14a全体のうち、受信側装置3が利用可能な領域であり、受信側装置3のために確保される。接続可否判定部11は、受信側装置3のキーk2を元にして受信側メモリ領域14a1を割り当てることができる。キーk2には、例えば、受信側アドレスと、ポート番号とが含まれる。接続可否判定部11は、例えば、受信側装置3の受信側アドレスと、受信側装置3のポート番号に基づいて、受信側メモリ領域14a1のメモリ番地を決定することができる。
PULL通信の場合、受信側装置3は、キーk2を用いてメモリサーバ1に要求すると、受信側メモリ領域14a1に格納されている情報を、バリューv2として取得することができる。PUSH通信の場合およびマルチキャスト通信の場合、メモリサーバ1は、通知部13の機能に従い、受信側メモリ領域14a1に情報が格納されたことを受信側装置3に自動的に通知することができる。
上記のように、接続可否判定部11は、送信側装置2から受信したデータのキーk1に対応する受信側メモリ領域14a1が確保されているか否か判定する書き込み判定部として機能する。接続可否判定部11は、受信側メモリ領域14a1が確保されていれば、送信側装置2を接続可とし、データのバリューv1を受信側メモリ領域14a1に書き込むことを許可する。受信側メモリ領域14a1が確保されていない場合は、書き込みは許可されない。
また、接続可否判定部11は、受信側装置3から受信したデータのキーk2に対応する受信側メモリ領域14a1が確保されているか否か判定する読み出し判定部として機能する。受信側メモリ領域14a1が確保されていればデータのバリューv2を受信側メモリ領域14a1から読み出すことを許可する。受信側メモリ領域14a1が確保されていない場合は、読み出しは許可されない。
≪処理≫
次に、本実施形態の処理として、送信側装置2から受信側装置3へデータが送信されるときの処理を、図2〜図5を参照して説明する。この処理は、(工程1)メモリサーバ1における受信側メモリ領域の割当、(工程2)送信側装置2のデータ送信、(工程3)受信側装置3へメモリ情報の更新通知、(工程4)受信側装置3のデータ受信、の4工程に分類することができる。工程1,2,4は、PULL通信、PUSH通信、マルチキャスト通信の場合に実行される。工程3は、PUSH通信、マルチキャスト通信の場合に実行される。
[PULL通信の場合]
図2,図3を参照して、PULL通信の場合におけるデータ送信の処理について説明する。この処理では、工程1としてステップA1〜A7が実行され、工程2としてステップB1〜B9が実行され、工程4としてステップD1〜D9が実行される。
まず、受信側装置3をNWシステムに登録する必要がある。このため、受信側装置3の受信プロセス部31は、信号変換部32にソケット生成要求を送信する(ステップA1)。ソケット生成要求は、送信側装置2と受信側装置3との通信接続用のソケットを生成するための要求であり、受信側装置3にメモリ領域14aを新規に割り当てるための要求でもある。
受信側装置3の信号変換部32は、キーとバリュー格納部とを生成する(ステップA2)。工程1は、受信側装置3の登録用であるため、ステップA2で生成されるバリュー格納部は、所定の情報を含む必要はないが、例えば、プロセス間通信を許可する送信側装置2の送信側アドレスを含んでもよい。
信号変換部32は、受信側装置3の送受信部33、および、メモリサーバ1の送受信部12を経由して、メモリサーバ1の接続可否判定部11にメモリ領域割当要求を送信する(ステップA3)。メモリ領域割当要求には、生成されたキーが含まれており、信号変換部32は、キーを指定する。
接続可否判定部11は、メモリ領域割当要求に含まれるキーを用いて、受信側装置3に関するメモリ領域割当を行う(ステップA4)。具体的には、メモリ領域14aの一部を、受信側装置3の受信側メモリ領域14a1とする。接続可否判定部11は、この割当を示す情報を管理する。特に、接続可否判定部11は、例えば、受信側装置3の受信側アドレスと、受信側装置3のポート番号に基づいて、受信側メモリ領域14a1のメモリ番地を決定し、管理する。
受信側メモリ領域14a1には、受信側装置3にデータを送信することができる送信側装置2の送信側アドレスが格納されている。この送信側アドレスは、バリュー(格納部)を構成しており、当該送信側装置2は、受信側装置3から受信側メモリ領域14a1へのアクセスが許可されている。接続可否判定部11は、メモリ領域14a全体を管理しており、メモリ領域14aを利用する送信側装置2および受信側装置3間のデータ送受信の通信可否に関するセキュリティ確保を実現する。
接続可否判定部11は、送受信部23および送受信部12を経由して、メモリ領域割当要求に対するメモリ領域割当応答を信号変換部32に送信する(ステップA5)。信号変換部32は、受信したメモリ領域割当応答に対して、キーバリューからソケットAPIへの変換を実行する(ステップA6)。この変換処理により、受信側装置3は、KVS(キーバリューストア)のデータ構造を持つデータに対して既存の通信APIを流用することができる。また、信号変換部32は、ソケット生成要求(ステップA1)に対するソケット生成応答を受信プロセス部31に送信する(ステップA7)。
なお、ステップA1〜A7からなる工程1に関しては、新規の受信側装置3がNWシステムに追加されるたびに実行することができる。メモリサーバ1については、受信側装置3の追加に伴いメモリ14を増設し、メモリ領域14aを適宜拡大させればよい。また、メモリ領域14aの割当てを一元管理している接続可否判定部11は、しばらく使用されていない受信側装置3のために確保されているメモリ領域14a部分を、追加される新規の受信側装置3が利用可能とする領域としてもよい。このように、メモリ領域14aを再利用し、資源を有効活用することができる。
上記で説明した受信側装置3の新規追加は、送信側装置2の新規追加にもあてはまる。
一方、送信側装置2から受信側装置3にデータを送信する場合、まず、送信側装置2の送信プロセス部21は、ソケットAPI経由で信号を信号変換部22に送信する(ステップB1)。送信される信号は、送信プロセス部21によるプロセスの実行の結果が含まれる。
信号変換部22は、ソケットAPI経由で受信した信号を変換して、キーとバリュー格納部とを生成する(ステップB2)。
信号変換部22は、送信側装置2の送受信部23、および、メモリサーバ1の送受信部12を経由して、メモリサーバ1の接続可否判定部11に、KVSに対する書き込み要求を送信する(ステップB3)。この書き込み要求には、生成されたキーとバリュー格納部とが含まれている。
接続可否判定部11は、書き込み要求に含まれているキーとバリュー格納部とを用いて、対象のメモリ領域14aへの接続可否判定を行う(ステップB4)。この接続可否判定では、送信側装置2から受信したキーと、接続可否判定部11が既に管理している受信側メモリ領域14a1とが対応しているか否かが判定される。具体的には、送信側装置2から受信したキーに含まれている受信側アドレスに対して割り当てられた受信側メモリ領域14a1に格納されている送信側アドレスが、送信側装置2から受信したバリュー格納部内の送信側アドレスと一致するか否かが判定される。この判定は、接続可否判定部11が保持する判定ルールに従う。
一致している場合、該当の受信側メモリ領域14a1が確保されていることを意味し、接続可とし、接続可否判定部11は、メモリ14に、メモリ領域14aへの書き込みを許可する(ステップB5)。メモリ14は、キーに対応したメモリ領域、つまり、受信側メモリ領域14a1にバリュー格納部を書き込む(ステップB6)。具体的には、受信側メモリ領域14a1には、送信側装置2から受信したバリュー格納部内の送信データが書き込まれる。一方、送信側アドレスに関する上記の一致が無い場合、該当の受信側メモリ領域14a1が確保されていないことを意味し、接続不可となり、接続可否判定部11は、送信側装置2に接続不可の通知をし、メモリ領域への書き込みは行わない。
メモリ14は、KVSに対する書き込み応答を、接続可否判定部11、送受信部12および送受信部23を経由して、信号変換部22に送信する(ステップB7)。
信号変換部22は、キーバリューからソケットAPIへの変換を実行する(ステップB8)。この変換処理により、送信側装置2は、KVSのデータ構造を持つデータに対して既存の通信APIを流用することができる。また、信号変換部22は、ソケットAPI経由で信号送信結果通知を(ソケットAPI経由による信号の送信(ステップB1)に対応して)、送信プロセス部21に送信する(ステップB9)。
PULL通信の場合、メモリサーバ1にてデータが更新されたか否かを、受信側装置3がポーリングなどを利用して任意に確認する。
図3に示すように、受信側装置3の受信プロセス部31は、信号変換部32にソケット刈り取り要求を送信する(ステップD1)。ソケット刈り取り要求は、受信側装置3自身の受信側メモリ領域14a1に格納されたデータの更新の有無を確認するための要求である。
信号変換部32は、キーとバリュー格納部とを生成する(ステップD2)。ここで生成するキーは、受信側メモリ領域14a1にアクセスするため、受信側を識別する情報、例えば、受信側装置3のIPアドレスであることが好ましい。また、工程4は、データ取得用であるため、ステップD2で生成されるバリュー格納部は、所定の情報を含む必要はないが、例えば、プロセス間通信を許可する送信側装置2の送信側アドレスを含んでもよい。
信号変換部32は、受信側装置3の送受信部33、および、メモリサーバ1の送受信部12を経由して、メモリサーバ1の接続可否判定部11にKVS読み取り要求を送信する(ステップD3)。KVS読み取り要求には、生成されたキーとバリュー格納部とが含まれており、信号変換部32は、キーを指定する。
接続可否判定部11は、KVS読み取り要求に含まれるキーとバリュー格納部とを用いて、受信側装置3の受信側メモリ領域14a1への接続可否を判定する(ステップD4)。判定方法は、ステップB4と同様である。
接続可であると判定した場合、該当の受信側メモリ領域14a1が確保されていることを意味しており、接続可否判定部11は、メモリ14に、メモリ領域14aの読み出しを許可する(ステップD5)。メモリ14は、キーに対応したメモリ領域、つまり、受信側装置3の受信側メモリ領域14a1から(バリューが含まれている)信号を読み出す(ステップD6)。なお、接続不可であると判定した場合、該当の受信側メモリ領域14a1が確保されていないことを意味しており、接続可否判定部11は、メモリ領域14aの読み出しを許可しない。
メモリ14は、受信側メモリ領域14a1から読み出した信号となるメモリ読み取り結果応答を、接続可否判定部11、送受信部12および送受信部33を経由して、信号変換部32に送信する(ステップD7)。
信号変換部32は、キーバリューからソケットAPIへの変換を実行する(ステップD8)。また、信号変換部32は、ソケット刈り取り要求(ステップD1)に対するソケット刈り取り応答を受信プロセス部31に送信する(ステップD9)。
メモリ14は、メモリ領域14aの読み出しが完了した後、メモリ領域14a内の情報を消去する(ステップD10)。具体的には、受信側装置3に送信したデータ(メモリ読み取り結果応答)をメモリ領域14aから消去する。
上記のようにPULL通信では、工程1,2,4が実行されることで、送信側装置2から受信側装置3へのデータ送信が実現される。
[PUSH通信の場合]
図4を参照して、PUSH通信の場合におけるデータ送信の処理について説明する。説明の際、図2,図3の処理と重複する説明は省略し、主に相違点について説明する。図4の処理では、工程1としてステップA1〜A7が実行され、工程2としてステップB1〜B9が実行され、工程3としてステップC1〜C6が実行され、工程4としてステップD1〜D9が実行される。工程1,2,4は、PULL通信の場合と同様である。工程1,2については図示を省略する。工程3は、工程2の後段、かつ、工程4の前段に実行される。
PUSH通信(およびマルチキャスト通信)では、受信側装置3宛のデータがメモリサーバ1に存在することを、受信側装置3に知らせる必要がある。このため、メモリサーバ1の通知部13による通知処理が実行される。なお、PULL通信では、受信側装置3が任意にデータ取得を行うため、通知部13による通知処理は不要である。
メモリサーバ1の接続可否判定部11は、メモリ領域14aにデータが格納された場合、バリュー格納部が書き込まれたメモリ領域14aに対応したキーを検索し、メモリ領域14aから該当の受信側装置3を特定する(ステップC1)。
接続可否判定部11は、メモリ領域14aの更新があったこと(メモリ領域14aにデータが格納されたこと)を通知部13に通知する(ステップC2)。
通知部13は、更新を通知するために、キーとバリュー格納部とを生成する(ステップC3)。
通知部13は、メモリサーバ1の送受信部12、および、受信側装置3の送受信部33を経由して、信号変換部32に、メモリ領域14aの更新があったことを示すKVS更新通知を送信する(ステップC4)。
信号変換部32は、キーバリューからソケットAPIへの変換を実行する(ステップC5)。また、信号変換部32は、メモリ領域14aの更新があったことを受信プロセス部31に通知する(ステップC6)。
工程4のステップD6〜D10は、PUSH通信が終了するまで繰り返し実行される。
上記のようにPUSH通信では、工程1〜4が実行されることで、送信側装置2から受信側装置3へのデータ送信が実現される。
[マルチキャスト通信の場合]
図5を参照して、マルチキャスト通信の場合におけるデータ送信の処理について説明する。説明の際、図2〜図4の処理と重複する説明は省略し、主に相違点について説明する。
図5の処理の際、工程1としてステップA1〜A7がすでに実行されている。工程1については図示を省略する。ただし、マルチキャスト通信の場合、工程1は、同一マルチキャストグループに所属する受信側装置3のすべて(受信側装置3−1,3−2,・・・)に対して実行される。つまり、受信側装置3−1,3−2,・・・に対して、メモリサーバ1における受信側メモリ領域の割当が実行される。
また、図5の処理の際、工程2としてステップB1〜B9がすでに実行されている。工程2については図示を省略する。ただし、マルチキャスト通信の場合、工程2の接続可否判定部11による接続可否判定(図2のステップB4参照)は、同一マルチキャストグループに所属する受信側装置3−1,3−2,・・・の各々に対して行われる。そして、結果的には、受信側装置3−1,3−2,・・・のすべての受信側メモリ領域にデータが書き込まれ(コピーされ)、格納される。
また、マルチキャスト通信の場合、工程3としてステップC1〜C6が実行される。このとき、図5に示すように、マルチキャスト通信の場合、工程3のステップC1〜C6は、マルチキャストグループの受信側分だけ、つまり、同一マルチキャストグループに所属する受信側装置3−1,3−2,・・・のすべてについて実施される。ステップC4のKVS更新通知は、当該マルチキャストグループに所属する受信側装置3−1,3−2,・・・の各々に対して実行される。
また、マルチキャスト通信の場合、工程4としてステップD1〜D10が実行される。このとき、図5に示すように、マルチキャスト通信の場合、工程4のステップD1〜D10は、マルチキャストグループの受信側分だけ実施される。
ステップD6において、マルチキャストグループに所属する受信側装置3−1,3−2,・・・の各々の受信側メモリ領域から信号が読み出される。このとき、読み出された信号を、マルチキャストグループに所属する最終の受信側装置3のメモリ領域にまとめてコピーしてもよい。すると、ステップD7において、メモリ読み取り結果応答を、最終の受信側装置3のメモリ領域のみから読み出せばよく、1度の読み出しで受信側装置3−1,3−2,・・・のすべてにメモリ読み取り結果応答を送信することができる。
工程4のステップD6〜D10は、マルチキャスト通信が終了するまで繰り返し実行される。
上記のようにマルチキャスト通信では、工程1〜4が実行されることで、送信側装置2から受信側装置3−1,3−2,・・・のすべてへのデータ送信が実現される。
≪まとめ≫
本実施形態によれば、送信側装置2と受信側装置3との通信の管理を、KVSのデータ構造を持つデータの書き込みと読み出しとで実現することができる。よって、従来の煩雑な、装置ごとの物理設計および論理設計はもはや不要となる。また、従来のNW装置間の物理配線の接続も不要となる。
したがって、NWシステムの構築を簡略にすることができる。
また、従来のNWシステムのように多段構成を導入することがないため、送信側装置2と受信側装置3との通信は、1度の書き込みと1度の読み出しで済み、1つの通信に多くの装置が介在することによる伝送遅延は生じない。従来のような、DNSによる通信アドレスの解決や、TCPハンドシェークも不要であり、接続オーバヘッドが無くなることも伝送遅延の抑制に資する。
また、メモリサーバ1への不正アクセスの判定については、書き込み対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のNWシステムを構成する多くのNW装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
また、メモリサーバ1への不正アクセスの判定については、読み出し対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のNWシステムを構成する多くのNW装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
また、データのキーに受信側装置3の情報を含ませ、データのバリューに送信側装置2の情報を含ませることで、通信管理を一元化することができる。
また、新規の受信側装置3を追加する場合には、メモリ14を増設するだけで済むので、NWシステムの拡大を簡略にすることができる。
また、受信側メモリ領域での書き込みや読み出しは自在に行うことができるため、PULL通信、PUSH通信、または、マルチキャスト通信といった通信方式を容易に導入することができる。
≪他の実施形態≫
他の実施形態におけるNWシステムとして、メモリサーバ1のような大規模DBの代わりに、分散処理システムを用いることができる。具体的には、メモリサーバ1に代えて、図6に示すように、バランサ4と、ディスパッチャ5−1,5−2,5−3,・・・と、プロセッサ6−1,6−2,6−3,・・・と、ストレージ7−1,7−2,7−3,・・・、を導入する。
バランサ4は、例えば、ロードバランサであり、外部からの処理要求をディスパッチャ5−1,5−2,5−3,・・・に振り分ける。バランサ4は、送信側装置2からの情報をキューに書き込みつつ、その情報を受信側装置3に出力する。出力の方式は、すでに採り上げたPULL通信、PUSH通信、マルチキャスト通信のいずれを採用することができる。
ディスパッチャ5−1,5−2,5−3,・・・は、バランサ4からの処理要求を解析し、対応するプロセッサ6−1,6−2,6−3,・・・およびストレージ7−1,7−2,7−3,・・・に渡すか否か(他のディスパッチャに渡す)を確認する。ディスパッチャ5−1,5−2,5−3,・・・は、接続可否判定部11(図1)と同等の機能を有しており、接続可否判定によって、送信側装置2からの送信データを、対応のプロセッサ6−1,6−2,6−3,・・・およびストレージ7−1,7−2,7−3,・・・に振り分けて書き込む。
プロセッサ6−1,6−2,6−3,・・・は、対応のディスパッチャ5−1,5−2,5−3,・・・からの処理要求に対する演算処理を行う。
ストレージ7−1,7−2,7−3,・・・は、対応のプロセッサ6−1,6−2,6−3,・・・による演算処理の処理結果を記憶する。ストレージ7−1,7−2,7−3,・・・は、KVSのデータ構造をとるデータを記憶し、ストレージ7−1,7−2,7−3,・・・が備える受信側メモリ領域に格納されるバリュー内には、最初の実施形態と同様、送信側アドレスと送信データとが含まれる(図6の符号14b参照)。
他の実施形態のNWシステムであっても、最初の実施形態のNWシステムが奏する効果と同様の効果を奏する。
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の(a)、(b)のようなものがある。
(a):受信側装置3がメモリサーバ1から取得するデータが複数存在する場合、特定のデータを優先的に取得することを可能にする優先制御機能をメモリサーバ1に導入してもよい。具体的には、例えば、データの優先度の示すフラグをデータのキーまたはバリューに含ませる。そして、受信側装置3へのデータ送信の際(図2〜図5の処理の工程4参照)、当該フラグを読み出してデータ送信順番を決めるようにするとよい。
(b):図5で説明したマルチキャスト通信は、PUSH通信の方式に即して説明したが、PULL通信の方式に適用することもできる。
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
また、本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、処理手順などについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
1 メモリサーバ(通信管理装置)
2 送信側装置
3 受信側装置
11 接続可否判定部(制御部:制御手段、書き込み判定部、読み出し判定部)
12 送受信部
13 通知部
14 メモリ(記憶手段)
14a メモリ領域
14a1 受信側メモリ領域

Claims (7)

  1. 送信側装置と受信側装置との通信を管理する通信管理装置であって、
    前記送信側装置から前記受信側装置に送信されるデータを、KVS(キーバリューストア)のデータ構造を持つデータとしてメモリ領域に格納するメモリと、
    前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納する制御部と、を備え、
    前記制御部は、新規の受信側装置が追加される場合、
    当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定する、
    ことを特徴とする通信管理装置。
  2. 前記制御部は、
    前記送信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域に書き込むことを許可する書き込み判定部を備える、
    ことを特徴とする請求項1に記載の通信管理装置。
  3. 前記制御部は、
    前記受信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域から読み出すことを許可する読み出し判定部を備える、
    ことを特徴とする請求項1または請求項2に記載の通信管理装置。
  4. 前記キーは、前記受信側装置の受信側アドレス、および、前記受信側装置のポート番号を含み、
    前記バリューは、前記送信側装置の送信側アドレス、および、前記データの本体を含む、
    ことを特徴とする請求項1から請求項3のいずれか1項に記載の通信管理装置。
  5. 前記送信側装置と前記受信側装置との通信は、PULL通信、PUSH通信、または、マルチキャスト通信のいずれかである、
    ことを特徴とする請求項1から請求項のいずれか1項に記載の通信管理装置。
  6. 送信側装置と受信側装置との通信を管理する通信管理装置における通信管理方法であって、
    前記通信管理装置は、
    前記送信側装置から前記受信側装置に送信されるデータを、KVSのデータ構造を持つデータとしてメモリ領域に格納するメモリを備えており、
    前記通信管理装置の制御部が、
    前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納するステップ、を実行
    新規の受信側装置が追加される場合、
    当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定するステップを実行する、
    ことを特徴とする通信管理方法。
  7. 送信側装置と受信側装置との通信を管理する通信管理装置としてのコンピュータを、
    前記送信側装置から前記受信側装置に送信されるデータを、KVSのデータ構造を持つデータとしてメモリ領域に格納する記憶手段、
    前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納し、
    新規の受信側装置が追加される場合、
    当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定する制御手段、
    として機能させるための通信管理プログラム。
JP2016171114A 2016-09-01 2016-09-01 通信管理装置、通信管理方法、および、通信管理プログラム Active JP6653230B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016171114A JP6653230B2 (ja) 2016-09-01 2016-09-01 通信管理装置、通信管理方法、および、通信管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016171114A JP6653230B2 (ja) 2016-09-01 2016-09-01 通信管理装置、通信管理方法、および、通信管理プログラム

Publications (2)

Publication Number Publication Date
JP2018036962A JP2018036962A (ja) 2018-03-08
JP6653230B2 true JP6653230B2 (ja) 2020-02-26

Family

ID=61565891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016171114A Active JP6653230B2 (ja) 2016-09-01 2016-09-01 通信管理装置、通信管理方法、および、通信管理プログラム

Country Status (1)

Country Link
JP (1) JP6653230B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005301455A (ja) * 2004-04-07 2005-10-27 Ntt Docomo Inc 通信装置、サーバ装置およびメモリ管理方法
JP4413121B2 (ja) * 2004-10-05 2010-02-10 ソフトバンクモバイル株式会社 Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法
JP2007189383A (ja) * 2006-01-12 2007-07-26 Matsushita Electric Ind Co Ltd Tcp/ip通信中継方法及びtcp/ip通信中継装置
JP2007249829A (ja) * 2006-03-17 2007-09-27 Hitachi Electronics Service Co Ltd 内部ネットワーク間通信システム及び情報処理装置及び中継情報処理装置及び通信制御プログラム及び内部ネットワーク間における通信制御方法及び遠隔障害管理システム及び被管理装置及び管理装置
KR20080006253A (ko) * 2006-07-12 2008-01-16 삼성전자주식회사 전송 효율을 개선한 블루투스 마스터 및 이를 이용한데이터 전송 방법
US8111707B2 (en) * 2007-12-20 2012-02-07 Packeteer, Inc. Compression mechanisms for control plane—data plane processing architectures
US8171494B2 (en) * 2007-12-05 2012-05-01 Cisco Technology, Inc. Providing identity to a portal with a redirect
JP5811703B2 (ja) * 2011-09-02 2015-11-11 富士通株式会社 分散制御プログラム、分散制御方法、および情報処理装置
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置

Also Published As

Publication number Publication date
JP2018036962A (ja) 2018-03-08

Similar Documents

Publication Publication Date Title
US10148493B1 (en) API gateway for network policy and configuration management with public cloud
CN109510846A (zh) Api调用系统、方法、装置、电子设备及存储介质
US9854045B2 (en) Generic cloud enabling of stateful applications
CN114025021B (zh) 一种跨Kubernetes集群的通信方法、系统、介质和电子设备
CN103562882A (zh) 用于提供消息传送应用程序接口的系统和方法
CN112910685B (zh) 实现对容器网络统一管理的方法及装置
US20110228725A1 (en) Field communication system and field communication method
WO2015196815A1 (zh) Ip硬盘与存储系统,及其数据操作方法
JP6749281B2 (ja) IoTデバイス、シグナリングサーバ、メッセージバス管理サーバ、コネクション形成方法、及びプログラム
JP2015197874A (ja) 仮想通信路構築システム、仮想通信路構築方法、及び仮想通信路構築プログラム
US20150063161A1 (en) Relay device, communication system, and method of acquiring node setting information
CN108287894A (zh) 数据处理方法、装置、计算设备及存储介质
CN110430478B (zh) 组网通信方法、装置、终端设备及存储介质
JP2016208503A (ja) Plcシステムのプロトコル自動設定方法
WO2018188607A1 (zh) 流处理方法及装置
CN113760447A (zh) 服务管理方法、装置、设备、存储介质及程序产品
JP6653230B2 (ja) 通信管理装置、通信管理方法、および、通信管理プログラム
WO2013111532A1 (ja) 管理システム、管理方法およびプログラム
JP2017102777A (ja) 負荷分散処理サーバ、負荷分散処理方法、及び、システム
US9823944B2 (en) Deployment control device and deployment control method for deploying virtual machine for allowing access
JP2010146246A (ja) マルチエージェントシステム用フレームワークコンピュータプログラム、ネットワークシステム、及びエージェント間通信方法
JP2007226822A (ja) 情報処理装置の割り当て方法、及びこの方法を実行する管理サーバ
KR20200054838A (ko) 모드버스 프로토콜 변환과 연동 방법, 및 이를 수행하는 장치들
JP7011271B1 (ja) 情報処理方法、情報処理システム及びコンピュータプログラム
JP7524563B2 (ja) Ipアドレス割付方法、ipアドレス割付装置、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190723

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200127

R150 Certificate of patent or registration of utility model

Ref document number: 6653230

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150