(57)【要約】【課題】ＮＷシステムの構築を簡略にする。【解決手段】送信側装置２と受信側装置３との通信を管理するメモリサーバ１は、送信側装置２から受信側装置３に送信されるデータを、ＫＶＳ（キーバリューストア）のデータ構造を持つデータとしてメモリ領域１４ａに格納するメモリ１４と、メモリ領域１４ａのうち、受信側装置３のために確保された受信側メモリ領域１４ａ１を、データのキーに対応させ、受信側メモリ領域１４ａ１にデータのバリューを格納する制御部と、を備える。【選択図】図１
2018036962.tif 000002
【特許請求の範囲】
【請求項１】
送信側装置と受信側装置との通信を管理する通信管理装置であって、
前記送信側装置から前記受信側装置に送信されるデータを、ＫＶＳ（キーバリューストア）のデータ構造を持つデータとしてメモリ領域に格納するメモリと、
前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納する制御部と、を備える、
ことを特徴とする通信管理装置。
【請求項２】
前記制御部は、
前記送信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域に書き込むことを許可する書き込み判定部を備える、
ことを特徴とする請求項１に記載の通信管理装置。
【請求項３】
前記制御部は、
前記受信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域から読み出すことを許可する読み出し判定部を備える、
ことを特徴とする請求項１または請求項２に記載の通信管理装置。
【請求項４】
前記キーは、前記受信側装置の受信側アドレス、および、前記受信側装置のポート番号を含み、
前記バリューは、前記送信側装置の送信側アドレス、および、前記データの本体を含む、
ことを特徴とする請求項１から請求項３のいずれか１項に記載の通信管理装置。
【請求項５】
前記制御部は、新規の受信側装置が追加される場合、
当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定する、
ことを特徴とする請求項１から請求項４のいずれか１項に記載の通信管理装置。
【請求項６】
前記送信側装置と前記受信側装置との通信は、ＰＵＬＬ通信、ＰＵＳＨ通信、または、マルチキャスト通信のいずれかである、
ことを特徴とする請求項１から請求項５のいずれか１項に記載の通信管理装置。
【請求項７】
送信側装置と受信側装置との通信を管理する通信管理装置における通信管理方法であって、
前記通信管理装置は、
前記送信側装置から前記受信側装置に送信されるデータを、ＫＶＳのデータ構造を持つデータとしてメモリ領域に格納するメモリを備えており、
前記通信管理装置の制御部が、
前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納するステップ、を実行する、
ことを特徴とする通信管理方法。
【請求項８】
送信側装置と受信側装置との通信を管理する通信管理装置としてのコンピュータを、
前記送信側装置から前記受信側装置に送信されるデータを、ＫＶＳのデータ構造を持つデータとしてメモリ領域に格納する記憶手段、
前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納する制御手段、
として機能させるための通信管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信管理装置、通信管理方法、および、通信管理プログラムに関する。説明の便宜上、「ネットワーク」という語は、「ＮＷ」と表記する場合がある。
【背景技術】
【０００２】
従来のＮＷシステムは、通信装置（例、サーバ、仮想マシン）とＮＷ装置（例：ルータ、スイッチ、ファイヤウォール）を組み合わせた多段構成をとっている。異なる通信装置間の通信を実現するためには、装置（通信装置およびＮＷ装置の総称）ごとに、矛盾のない物理設計および論理設計を行う必要がある。ＮＷシステムを拡大させるために装置を追加する場合には、追加のたびに上記の物理設計および論理設計を行う必要がある。
非特許文献１〜３には、ＮＷシステムを構築する技術に関する記載がある。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】塩本  公平、「学際的アプローチにより複雑化するネットワークの課題解決に向けて」、［online］、２０１５年７月、ＮＴＴ技術ジャーナル、［平成２８年８月１８日検索］、インターネット〈URL：http://www.ntt.co.jp/journal/1507/files/jn201507008.pdf〉
【非特許文献２】寺嶋  浩信、「ネットワークインフラの最新技術動向」、［online］、UNISYS  TECHNOLOGY REVIEW  第126号、DEC.2015、［平成２８年８月１８日検索］、インターネット〈URL：http://www.unisys.co.jp/tec_info/tr126/12601.pdf〉、p3-23
【非特許文献３】宇野  俊夫  著、「独習 TCP/IP IPネットワーキング編」、翔泳社、p221-222
【発明の概要】
【発明が解決しようとする課題】
【０００４】
大規模なＮＷシステムを構築する場合、装置ごとの物理設計および論理設計は非常に煩雑になり、ＮＷシステムの構築が煩雑になる、というデメリットがある。また従来のように多段構成をとる場合には、１つの通信に多くの装置が介在することになるため、伝送遅延が増大したり、盗聴、漏洩、改ざんなどのセキュリティリスクが増大したりする、というデメリットもある。
非特許文献１〜３には、これらのデメリットを解消するための記載も示唆もない。
【０００５】
このような事情に鑑みて、本発明は、ＮＷシステムの構築を簡略にすることを課題にする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するため、請求項１に記載の発明は、送信側装置と受信側装置との通信を管理する通信管理装置であって、前記送信側装置から前記受信側装置に送信されるデータを、ＫＶＳ（キーバリューストア）のデータ構造を持つデータとしてメモリ領域に格納するメモリと、前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納する制御部と、を備える、ことを特徴とする。
【０００７】
また、請求項７に記載の発明は、送信側装置と受信側装置との通信を管理する通信管理装置における通信管理方法であって、前記通信管理装置は、前記送信側装置から前記受信側装置に送信されるデータを、ＫＶＳのデータ構造を持つデータとしてメモリ領域に格納するメモリを備えており、前記通信管理装置の制御部が、前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納するステップ、を実行する、ことを特徴とする。
【０００８】
また、請求項８に記載の発明は、送信側装置と受信側装置との通信を管理する通信管理装置としてのコンピュータを、前記送信側装置から前記受信側装置に送信されるデータを、ＫＶＳのデータ構造を持つデータとしてメモリ領域に格納する記憶手段、前記メモリ領域のうち、前記受信側装置のために確保された受信側メモリ領域を、前記データのキーに対応させ、前記受信側メモリ領域に前記データのバリューを格納する制御手段、として機能させるための通信管理プログラムである。
【０００９】
請求項１，７，８の発明によれば、送信側装置と受信側装置との通信の管理を、ＫＶＳのデータ構造を持つデータの書き込みと読み出しとで実現することができる。よって、従来の煩雑な、装置ごとの物理設計および論理設計はもはや不要となる。また、従来のＮＷ装置間の物理配線の接続も不要となる。
したがって、ＮＷシステムの構築を簡略にすることができる。
また、従来のＮＷシステムのように多段構成を導入することがないため、送信側装置と受信側装置との通信は、１度の書き込みと１度の読み出しで済み、１つの通信に多くの装置が介在することによる伝送遅延は生じない。
【００１０】
また、請求項２に記載の発明は、請求項１に記載の通信管理装置であって、前記制御部は、前記送信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域に書き込むことを許可する書き込み判定部を備える、ことを特徴とする。
【００１１】
請求項２に記載の発明によれば、通信管理装置への不正アクセスの判定については、書き込み対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のＮＷシステムを構成する多くのＮＷ装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
【００１２】
また、請求項３に記載の発明は、請求項１または請求項２に記載の通信管理装置であって、前記制御部は、前記受信側装置から受信したデータのキーに対応する受信側メモリ領域が確保されているか否か判定し、確保されていれば前記データのバリューを前記受信側メモリ領域から読み出すことを許可する読み出し判定部を備える、ことを特徴とする。
【００１３】
請求項３に記載の発明によれば、メモリサーバへの不正アクセスの判定については、読み出し対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のＮＷシステムを構成する多くのＮＷ装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
【００１４】
また、請求項４に記載の発明は、請求項１から請求項３のいずれか１項に記載の通信管理装置であって、前記キーは、前記受信側装置の受信側アドレス、および、前記受信側装置のポート番号を含み、前記バリューは、前記送信側装置の送信側アドレス、および、前記データの本体を含む、ことを特徴とする。
【００１５】
請求項４に記載の発明によれば、データのキーに受信側装置の情報を含ませ、データのバリューに送信側装置の情報を含ませることで、通信管理を一元化することができる。
【００１６】
また、請求項５に記載の発明は、請求項１から請求項４のいずれか１項に記載の通信管理装置であって、前記制御部は、新規の受信側装置が追加される場合、当該新規の受信側装置の受信側アドレス、および、当該新規の受信側装置のポート番号に基づいて、当該新規の受信側装置の受信側メモリ領域のメモリ番地を決定する、ことを特徴とする。
【００１７】
請求項５に記載の発明によれば、新規の受信側装置を追加する場合には、メモリを増設するだけで済むので、ＮＷシステムの拡大を簡略にすることができる。
【００１８】
また、請求項６に記載の発明は、請求項１から請求項５のいずれか１項に記載の通信管理装置であって、前記送信側装置と前記受信側装置との通信は、ＰＵＬＬ通信、ＰＵＳＨ通信、または、マルチキャスト通信のいずれかである、ことを特徴とする。
【００１９】
請求項６に記載の発明によれば、受信側メモリ領域での書き込みや読み出しは自在に行うことができるため、ＰＵＬＬ通信、ＰＵＳＨ通信、または、マルチキャスト通信といった通信方式を容易に導入することができる。
【発明の効果】
【００２０】
本発明によれば、ＮＷシステムの構築を簡略にすることができる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態におけるＮＷシステムの機能構成図の例である。
【図２】ＰＵＬＬ通信の場合におけるデータ送信シーケンスの例（１／２）である。
【図３】ＰＵＬＬ通信の場合におけるデータ送信シーケンスの例（２／２）である。
【図４】ＰＵＳＨ通信の場合におけるデータ送信シーケンスの例（一部）である。
【図５】マルチキャスト通信の場合におけるデータ送信シーケンスの例（一部）である。
【図６】他の実施形態におけるＮＷシステムの機能構成図の例である。
【発明を実施するための形態】
【００２２】
≪構成≫
本発明の実施形態について、図面を参照しながら詳細に説明する。
図１に示すように、本実施形態のＮＷシステムは、メモリサーバ１と、送信側装置２と、受信側装置３とを備える。送信側装置２および受信側装置３は複数存在するが、図１中では１つのみ示す。メモリサーバ１と、送信側装置２と、受信側装置３とはバスないしＮＷで通信可能に接続されている。
【００２３】
メモリサーバ１は、インメモリＫＶＳ（Key-Value Store）を用いたデータベースサーバである。
送信側装置２は、受信側装置３との間で通信を行う装置である。
受信側装置３は、送信側装置２との間で通信を行う装置である。
【００２４】
メモリサーバ１、送信側装置２、受信側装置３はそれぞれ、ＣＰＵ（Central Processing Unit）と、記憶手段（記憶部）と、ネットワークインタフェースとを有するコンピュータとして構成される。
このコンピュータは、ＣＰＵが、記憶部上に読み込んだプログラム（通信管理プログラムを含む。）を実行することで、各機能部により構成される制御部（制御手段）を動作させる。
【００２５】
（送信側装置２）
送信側装置２は、送信プロセス部２１と、信号変換部２２と、送受信部２３とを備える。
送信プロセス部２１は、送信側装置２内の各種プロセスを実行する。
【００２６】
信号変換部２２は、送信プロセス部２１によるプロセス実行の結果をメモリサーバ１に送信する信号に変換する。
具体的には、信号変換部２２は、プロセスからソケットＡＰＩ（Application Programming Interface）を呼び出す。ソケットＡＰＩは、送信側装置２と受信側装置３との間の通信を確立するためのＡＰＩである。ソケットＡＰＩを用いることで、既存の通信ＡＰＩを流用できるように、送信側装置２および受信側装置３といった端末側の処理を階層化することができる。つまり、送信側装置２と受信側装置３とのプロセス間通信は、従来のＴＣＰ／ＩＰ通信と、本発明のＫＶＳを用いた通信とを組み合わせることができる。
また、信号変換部２２は、メモリサーバ１にアクセスする際のキーとバリュー格納部とを生成する。バリュー格納部は、ＫＶＳのデータ構造を持つデータのバリューを格納する格納用データとしてもよいし、バリューそのものとしてもよい。バリュー格納部の具体例については後記する。
また、信号変換部２２は、送受信部２３のキューに所定の情報を書き込む。
【００２７】
送受信部２３は、ＮＷ上の装置と情報をやり取りするためのインターフェースとなる。
具体的には、送受信部２３は、信号変換部２２によって情報が書き込まれたキューを保存する。
また、送受信部２３は、キューに書き込まれた情報をメモリサーバ１に送信する。
【００２８】
（メモリサーバ１）
メモリサーバ１は、接続可否判定部１１と、送受信部１２と、通知部１３と、メモリ１４（記憶手段）とを備える。メモリ１４は、メモリ領域１４ａを備える。
【００２９】
接続可否判定部１１は、メモリ領域１４ａの全体を管理する。具体的には、接続可否判定部１１は、キーに基づくメモリ領域１４ａの割当てを行う。接続可否判定部１１は、メモリサーバ１の制御部（制御手段）として機能することができる。
また、接続可否判定部１１は、送信側装置２と受信側装置３との接続可否の判定について定めた判定ルールを保持する。
また、接続可否判定部１１は、キーとバリュー格納部とに基づいて、送信側装置２と受信側装置３との接続可否を判定する。
また、接続可否判定部１１は、外部からのメモリ領域１４ａへのアクセスを制御する。
【００３０】
送受信部１２は、ＮＷ上の装置と情報をやり取りするためのインターフェースとなる。
具体的には、送受信部１２は、送信側装置２から受信したバリュー格納部をメモリ１４に書き込みできるか否かを、接続可否判定部１１に確認する。
また、送受信部１２は、接続可否判定部１１による判定結果に応じて、受信側装置３が利用可能なメモリ領域１４ａにバリュー格納部を書き込んだり、メモリ領域１４ａからバリュー格納部を読み出したりする。
また、送受信部１２は、ＰＵＬＬ通信の場合には、受信側装置３からの要求に対して、対象のバリュー格納部をメモリ領域１４ａから受信側装置３に送信する。
また、送受信部１２は、ＰＵＳＨ通信またはマルチキャスト通信の場合には、通知部１３による通知後、対象のバリュー格納部をメモリ領域１４ａから受信側装置３に送信する。
【００３１】
通知部１３は、ＰＵＳＨ通信またはマルチキャスト通信を行う場合には、受信側装置３に所定の到着通知を行う。この到着通知は、例えば、送信側装置２から情報を受信した旨の通知としてもよいし、ＫＶＳの更新があった旨の通知としてもよい。
【００３２】
メモリ１４は、送信側装置２と受信側装置３との間の通信でやり取りされる情報を保存する。具体的には、メモリ１４は、送信側装置２から受信した情報をメモリ領域１４ａに書き込み、保存する。
また、メモリ１４は、受信側装置３が取得完了した情報を、メモリ領域１４ａから削除する。
【００３３】
（受信側装置３）
受信側装置３は、受信プロセス部３１と、信号変換部３２と、送受信部３３とを備える。
受信プロセス部３１は、受信側装置３内の各種プロセスを実行する。
【００３４】
信号変換部３２は、受信プロセス部３１によるプロセス実行の結果をメモリサーバ１に送信する信号に変換する。
具体的には、信号変換部３２は、プロセスからソケットＡＰＩを呼び出す。
また、信号変換部３２は、メモリサーバ１にアクセスする際のキーとバリュー格納部とを生成する。
また、信号変換部３２は、ＰＵＬＬ通信の場合には、送受信部３３に情報の取得要求をする。
また、信号変換部３２は、送受信部３３のキューから情報を取り出し、取り出した情報を受信プロセス部３１に通知する。
【００３５】
送受信部３３は、ＮＷ上の装置と情報をやり取りするためのインターフェースとなる。
具体的には、送受信部３３は、ＰＵＬＬ通信の場合には、信号変換部３２からの情報の取得要求を受け、メモリサーバ１に対して該当の情報の有無を確認する。
また、送受信部３３は、ＰＵＳＨ通信またはマルチキャスト通信の場合には、メモリサーバ１の通知部１３からの到着通知を受信する。
また、送受信部３３は、信号変換部３２に対し、キーとバリュー格納部との生成を指示する。
また、送受信部３３は、メモリサーバ１から情報を受信し、受信した情報をキューに書き込む。
【００３６】
送信側装置２は、ＫＶＳのデータ構造を持つデータをメモリサーバ１に送信する。図１に示すように、メモリサーバ１に送信されるデータは、キーｋ１とバリューｖ１とからなる。キーｋ１には、例えば、受信側アドレスと、ポート番号とが含まれる。受信側アドレスは、例えば、受信側装置３のＩＰアドレスとすることができる。ポート番号は、受信側装置３が有するポートの識別番号である。
【００３７】
キーｋ１の形態としては、ＩＰアドレスとポート番号との組にＴＣＰ（Transmission Control Protocol）種別、または、ＵＤＰ種別を用いてもよい。キーの形態としてＭＡＣ（Media Access Control）アドレスなどのハードウェアアドレスを用いてもよいし、ＨＴＴＰ（HyperText Transfer Protocol）−ＵＲＬ（Uniform Resource Locator）やＳＩＰ（Session Initiation Protocol）−ＵＲＩ（Uniform Resource Identifier）などのＵＲＩを用いてもよい。
【００３８】
バリューｖ１には、例えば、送信側アドレスと、送信データとが含まれる。送信側アドレスは、例えば、送信側装置２のＩＰアドレスとすることができる。送信データは、送信側装置２から受信側装置３に送信されるデータの本体である。バリューｖ１は、送信側アドレスと送信データとを併せて格納するバリュー格納部として機能する。
【００３９】
メモリサーバ１は、接続可否判定部１１の機能に従い、送信側装置２から受信したキーｋ１に対応する受信側メモリ領域１４ａ１に、バリューｖ１に相当する送信側アドレスと送信データとを格納する。受信側メモリ領域１４ａ１は、メモリ領域１４ａ全体のうち、受信側装置３が利用可能な領域であり、受信側装置３のために確保される。接続可否判定部１１は、受信側装置３のキーｋ２を元にして受信側メモリ領域１４ａ１を割り当てることができる。キーｋ２には、例えば、受信側アドレスと、ポート番号とが含まれる。接続可否判定部１１は、例えば、受信側装置３の受信側アドレスと、受信側装置３のポート番号に基づいて、受信側メモリ領域１４ａ１のメモリ番地を決定することができる。
【００４０】
ＰＵＬＬ通信の場合、受信側装置３は、キーｋ２を用いてメモリサーバ１に要求すると、受信側メモリ領域１４ａ１に格納されている情報を、バリューｖ２として取得することができる。ＰＵＳＨ通信の場合およびマルチキャスト通信の場合、メモリサーバ１は、通知部１３の機能に従い、受信側メモリ領域１４ａ１に情報が格納されたことを受信側装置３に自動的に通知することができる。
【００４１】
上記のように、接続可否判定部１１は、送信側装置２から受信したデータのキーｋ１に対応する受信側メモリ領域１４ａ１が確保されているか否か判定する書き込み判定部として機能する。接続可否判定部１１は、受信側メモリ領域１４ａ１が確保されていれば、送信側装置２を接続可とし、データのバリューｖ１を受信側メモリ領域１４ａ１に書き込むことを許可する。受信側メモリ領域１４ａ１が確保されていない場合は、書き込みは許可されない。
【００４２】
また、接続可否判定部１１は、受信側装置３から受信したデータのキーｋ２に対応する受信側メモリ領域１４ａ１が確保されているか否か判定する読み出し判定部として機能する。受信側メモリ領域１４ａ１が確保されていればデータのバリューｖ２を受信側メモリ領域１４ａ１から読み出すことを許可する。受信側メモリ領域１４ａ１が確保されていない場合は、読み出しは許可されない。
【００４３】
≪処理≫
次に、本実施形態の処理として、送信側装置２から受信側装置３へデータが送信されるときの処理を、図２〜図５を参照して説明する。この処理は、（工程１）メモリサーバ１における受信側メモリ領域の割当、（工程２）送信側装置２のデータ送信、（工程３）受信側装置３へメモリ情報の更新通知、（工程４）受信側装置３のデータ受信、の４工程に分類することができる。工程１，２，４は、ＰＵＬＬ通信、ＰＵＳＨ通信、マルチキャスト通信の場合に実行される。工程３は、ＰＵＳＨ通信、マルチキャスト通信の場合に実行される。
【００４４】
［ＰＵＬＬ通信の場合］
図２，図３を参照して、ＰＵＬＬ通信の場合におけるデータ送信の処理について説明する。この処理では、工程１としてステップＡ１〜Ａ７が実行され、工程２としてステップＢ１〜Ｂ９が実行され、工程４としてステップＤ１〜Ｄ９が実行される。
【００４５】
まず、受信側装置３をＮＷシステムに登録する必要がある。このため、受信側装置３の受信プロセス部３１は、信号変換部３２にソケット生成要求を送信する（ステップＡ１）。ソケット生成要求は、送信側装置２と受信側装置３との通信接続用のソケットを生成するための要求であり、受信側装置３にメモリ領域１４ａを新規に割り当てるための要求でもある。
【００４６】
受信側装置３の信号変換部３２は、キーとバリュー格納部とを生成する（ステップＡ２）。工程１は、受信側装置３の登録用であるため、ステップＡ２で生成されるバリュー格納部は、所定の情報を含む必要はないが、例えば、プロセス間通信を許可する送信側装置２の送信側アドレスを含んでもよい。
【００４７】
信号変換部３２は、受信側装置３の送受信部３３、および、メモリサーバ１の送受信部１２を経由して、メモリサーバ１の接続可否判定部１１にメモリ領域割当要求を送信する（ステップＡ３）。メモリ領域割当要求には、生成されたキーが含まれており、信号変換部３２は、キーを指定する。
【００４８】
接続可否判定部１１は、メモリ領域割当要求に含まれるキーを用いて、受信側装置３に関するメモリ領域割当を行う（ステップＡ４）。具体的には、メモリ領域１４ａの一部を、受信側装置３の受信側メモリ領域１４ａ１とする。接続可否判定部１１は、この割当を示す情報を管理する。特に、接続可否判定部１１は、例えば、受信側装置３の受信側アドレスと、受信側装置３のポート番号に基づいて、受信側メモリ領域１４ａ１のメモリ番地を決定し、管理する。
【００４９】
受信側メモリ領域１４ａ１には、受信側装置３にデータを送信することができる送信側装置２の送信側アドレスが格納されている。この送信側アドレスは、バリュー（格納部）を構成しており、当該送信側装置２は、受信側装置３から受信側メモリ領域１４ａ１へのアクセスが許可されている。接続可否判定部１１は、メモリ領域１４ａ全体を管理しており、メモリ領域１４ａを利用する送信側装置２および受信側装置３間のデータ送受信の通信可否に関するセキュリティ確保を実現する。
【００５０】
接続可否判定部１１は、送受信部２３および送受信部１２を経由して、メモリ領域割当要求に対するメモリ領域割当応答を信号変換部３２に送信する（ステップＡ５）。信号変換部３２は、受信したメモリ領域割当応答に対して、キーバリューからソケットＡＰＩへの変換を実行する（ステップＡ６）。この変換処理により、受信側装置３は、ＫＶＳ（キーバリューストア）のデータ構造を持つデータに対して既存の通信ＡＰＩを流用することができる。また、信号変換部３２は、ソケット生成要求（ステップＡ１）に対するソケット生成応答を受信プロセス部３１に送信する（ステップＡ７）。
【００５１】
なお、ステップＡ１〜Ａ７からなる工程１に関しては、新規の受信側装置３がＮＷシステムに追加されるたびに実行することができる。メモリサーバ１については、受信側装置３の追加に伴いメモリ１４を増設し、メモリ領域１４ａを適宜拡大させればよい。また、メモリ領域１４ａの割当てを一元管理している接続可否判定部１１は、しばらく使用されていない受信側装置３のために確保されているメモリ領域１４ａ部分を、追加される新規の受信側装置３が利用可能とする領域としてもよい。このように、メモリ領域１４ａを再利用し、資源を有効活用することができる。
上記で説明した受信側装置３の新規追加は、送信側装置２の新規追加にもあてはまる。
【００５２】
一方、送信側装置２から受信側装置３にデータを送信する場合、まず、送信側装置２の送信プロセス部２１は、ソケットＡＰＩ経由で信号を信号変換部２２に送信する（ステップＢ１）。送信される信号は、送信プロセス部２１によるプロセスの実行の結果が含まれる。
【００５３】
信号変換部２２は、ソケットＡＰＩ経由で受信した信号を変換して、キーとバリュー格納部とを生成する（ステップＢ２）。
信号変換部２２は、送信側装置２の送受信部２３、および、メモリサーバ１の送受信部１２を経由して、メモリサーバ１の接続可否判定部１１に、ＫＶＳに対する書き込み要求を送信する（ステップＢ３）。この書き込み要求には、生成されたキーとバリュー格納部とが含まれている。
【００５４】
接続可否判定部１１は、書き込み要求に含まれているキーとバリュー格納部とを用いて、対象のメモリ領域１４ａへの接続可否判定を行う（ステップＢ４）。この接続可否判定では、送信側装置２から受信したキーと、接続可否判定部１１が既に管理している受信側メモリ領域１４ａ１とが対応しているか否かが判定される。具体的には、送信側装置２から受信したキーに含まれている受信側アドレスに対して割り当てられた受信側メモリ領域１４ａ１に格納されている送信側アドレスが、送信側装置２から受信したバリュー格納部内の送信側アドレスと一致するか否かが判定される。この判定は、接続可否判定部１１が保持する判定ルールに従う。
【００５５】
一致している場合、該当の受信側メモリ領域１４ａ１が確保されていることを意味し、接続可とし、接続可否判定部１１は、メモリ１４に、メモリ領域１４ａへの書き込みを許可する（ステップＢ５）。メモリ１４は、キーに対応したメモリ領域、つまり、受信側メモリ領域１４ａ１にバリュー格納部を書き込む（ステップＢ６）。具体的には、受信側メモリ領域１４ａ１には、送信側装置２から受信したバリュー格納部内の送信データが書き込まれる。一方、送信側アドレスに関する上記の一致が無い場合、該当の受信側メモリ領域１４ａ１が確保されていないことを意味し、接続不可となり、接続可否判定部１１は、送信側装置２に接続不可の通知をし、メモリ領域への書き込みは行わない。
【００５６】
メモリ１４は、ＫＶＳに対する書き込み応答を、接続可否判定部１１、送受信部１２および送受信部２３を経由して、信号変換部２２に送信する（ステップＢ７）。
信号変換部２２は、キーバリューからソケットＡＰＩへの変換を実行する（ステップＢ８）。この変換処理により、送信側装置２は、ＫＶＳのデータ構造を持つデータに対して既存の通信ＡＰＩを流用することができる。また、信号変換部２２は、ソケットＡＰＩ経由で信号送信結果通知を（ソケットＡＰＩ経由による信号の送信（ステップＢ１）に対応して）、送信プロセス部２１に送信する（ステップＢ９）。
【００５７】
ＰＵＬＬ通信の場合、メモリサーバ１にてデータが更新されたか否かを、受信側装置３がポーリングなどを利用して任意に確認する。
図３に示すように、受信側装置３の受信プロセス部３１は、信号変換部３２にソケット刈り取り要求を送信する（ステップＤ１）。ソケット刈り取り要求は、受信側装置３自身の受信側メモリ領域１４ａ１に格納されたデータの更新の有無を確認するための要求である。
【００５８】
信号変換部３２は、キーとバリュー格納部とを生成する（ステップＤ２）。ここで生成するキーは、受信側メモリ領域１４ａ１にアクセスするため、受信側を識別する情報、例えば、受信側装置３のＩＰアドレスであることが好ましい。また、工程４は、データ取得用であるため、ステップＤ２で生成されるバリュー格納部は、所定の情報を含む必要はないが、例えば、プロセス間通信を許可する送信側装置２の送信側アドレスを含んでもよい。
【００５９】
信号変換部３２は、受信側装置３の送受信部３３、および、メモリサーバ１の送受信部１２を経由して、メモリサーバ１の接続可否判定部１１にＫＶＳ読み取り要求を送信する（ステップＤ３）。ＫＶＳ読み取り要求には、生成されたキーとバリュー格納部とが含まれており、信号変換部３２は、キーを指定する。
【００６０】
接続可否判定部１１は、ＫＶＳ読み取り要求に含まれるキーとバリュー格納部とを用いて、受信側装置３の受信側メモリ領域１４ａ１への接続可否を判定する（ステップＤ４）。判定方法は、ステップＢ４と同様である。
【００６１】
接続可であると判定した場合、該当の受信側メモリ領域１４ａ１が確保されていることを意味しており、接続可否判定部１１は、メモリ１４に、メモリ領域１４ａの読み出しを許可する（ステップＤ５）。メモリ１４は、キーに対応したメモリ領域、つまり、受信側装置３の受信側メモリ領域１４ａ１から（バリューが含まれている）信号を読み出す（ステップＤ６）。なお、接続不可であると判定した場合、該当の受信側メモリ領域１４ａ１が確保されていないことを意味しており、接続可否判定部１１は、メモリ領域１４ａの読み出しを許可しない。
【００６２】
メモリ１４は、受信側メモリ領域１４ａ１から読み出した信号となるメモリ読み取り結果応答を、接続可否判定部１１、送受信部１２および送受信部３３を経由して、信号変換部３２に送信する（ステップＤ７）。
信号変換部３２は、キーバリューからソケットＡＰＩへの変換を実行する（ステップＤ８）。また、信号変換部３２は、ソケット刈り取り要求（ステップＤ１）に対するソケット刈り取り応答を受信プロセス部３１に送信する（ステップＤ９）。
【００６３】
メモリ１４は、メモリ領域１４ａの読み出しが完了した後、メモリ領域１４ａ内の情報を消去する（ステップＤ１０）。具体的には、受信側装置３に送信したデータ（メモリ読み取り結果応答）をメモリ領域１４ａから消去する。
上記のようにＰＵＬＬ通信では、工程１，２，４が実行されることで、送信側装置２から受信側装置３へのデータ送信が実現される。
【００６４】
［ＰＵＳＨ通信の場合］
図４を参照して、ＰＵＳＨ通信の場合におけるデータ送信の処理について説明する。説明の際、図２，図３の処理と重複する説明は省略し、主に相違点について説明する。図４の処理では、工程１としてステップＡ１〜Ａ７が実行され、工程２としてステップＢ１〜Ｂ９が実行され、工程３としてステップＣ１〜Ｃ６が実行され、工程４としてステップＤ１〜Ｄ９が実行される。工程１，２，４は、ＰＵＬＬ通信の場合と同様である。工程１，２については図示を省略する。工程３は、工程２の後段、かつ、工程４の前段に実行される。
【００６５】
ＰＵＳＨ通信（およびマルチキャスト通信）では、受信側装置３宛のデータがメモリサーバ１に存在することを、受信側装置３に知らせる必要がある。このため、メモリサーバ１の通知部１３による通知処理が実行される。なお、ＰＵＬＬ通信では、受信側装置３が任意にデータ取得を行うため、通知部１３による通知処理は不要である。
【００６６】
メモリサーバ１の接続可否判定部１１は、メモリ領域１４ａにデータが格納された場合、バリュー格納部が書き込まれたメモリ領域１４ａに対応したキーを検索し、メモリ領域１４ａから該当の受信側装置３を特定する（ステップＣ１）。
【００６７】
接続可否判定部１１は、メモリ領域１４ａの更新があったこと（メモリ領域１４ａにデータが格納されたこと）を通知部１３に通知する（ステップＣ２）。
通知部１３は、更新を通知するために、キーとバリュー格納部とを生成する（ステップＣ３）。
通知部１３は、メモリサーバ１の送受信部１２、および、受信側装置３の送受信部３３を経由して、信号変換部３２に、メモリ領域１４ａの更新があったことを示すＫＶＳ更新通知を送信する（ステップＣ４）。
【００６８】
信号変換部３２は、キーバリューからソケットＡＰＩへの変換を実行する（ステップＣ５）。また、信号変換部３２は、メモリ領域１４ａの更新があったことを受信プロセス部３１に通知する（ステップＣ６）。
【００６９】
工程４のステップＤ６〜Ｄ１０は、ＰＵＳＨ通信が終了するまで繰り返し実行される。
上記のようにＰＵＳＨ通信では、工程１〜４が実行されることで、送信側装置２から受信側装置３へのデータ送信が実現される。
【００７０】
［マルチキャスト通信の場合］
図５を参照して、マルチキャスト通信の場合におけるデータ送信の処理について説明する。説明の際、図２〜図４の処理と重複する説明は省略し、主に相違点について説明する。
【００７１】
図５の処理の際、工程１としてステップＡ１〜Ａ７がすでに実行されている。工程１については図示を省略する。ただし、マルチキャスト通信の場合、工程１は、同一マルチキャストグループに所属する受信側装置３のすべて（受信側装置３−１，３−２，・・・）に対して実行される。つまり、受信側装置３−１，３−２，・・・に対して、メモリサーバ１における受信側メモリ領域の割当が実行される。
【００７２】
また、図５の処理の際、工程２としてステップＢ１〜Ｂ９がすでに実行されている。工程２については図示を省略する。ただし、マルチキャスト通信の場合、工程２の接続可否判定部１１による接続可否判定（図２のステップＢ４参照）は、同一マルチキャストグループに所属する受信側装置３−１，３−２，・・・の各々に対して行われる。そして、結果的には、受信側装置３−１，３−２，・・・のすべての受信側メモリ領域にデータが書き込まれ（コピーされ）、格納される。
【００７３】
また、マルチキャスト通信の場合、工程３としてステップＣ１〜Ｃ６が実行される。このとき、図５に示すように、マルチキャスト通信の場合、工程３のステップＣ１〜Ｃ６は、マルチキャストグループの受信側分だけ、つまり、同一マルチキャストグループに所属する受信側装置３−１，３−２，・・・のすべてについて実施される。ステップＣ４のＫＶＳ更新通知は、当該マルチキャストグループに所属する受信側装置３−１，３−２，・・・の各々に対して実行される。
【００７４】
また、マルチキャスト通信の場合、工程４としてステップＤ１〜Ｄ１０が実行される。このとき、図５に示すように、マルチキャスト通信の場合、工程４のステップＤ１〜Ｄ１０は、マルチキャストグループの受信側分だけ実施される。
【００７５】
ステップＤ６において、マルチキャストグループに所属する受信側装置３−１，３−２，・・・の各々の受信側メモリ領域から信号が読み出される。このとき、読み出された信号を、マルチキャストグループに所属する最終の受信側装置３のメモリ領域にまとめてコピーしてもよい。すると、ステップＤ７において、メモリ読み取り結果応答を、最終の受信側装置３のメモリ領域のみから読み出せばよく、１度の読み出しで受信側装置３−１，３−２，・・・のすべてにメモリ読み取り結果応答を送信することができる。
【００７６】
工程４のステップＤ６〜Ｄ１０は、マルチキャスト通信が終了するまで繰り返し実行される。
上記のようにマルチキャスト通信では、工程１〜４が実行されることで、送信側装置２から受信側装置３−１，３−２，・・・のすべてへのデータ送信が実現される。
【００７７】
≪まとめ≫
本実施形態によれば、送信側装置２と受信側装置３との通信の管理を、ＫＶＳのデータ構造を持つデータの書き込みと読み出しとで実現することができる。よって、従来の煩雑な、装置ごとの物理設計および論理設計はもはや不要となる。また、従来のＮＷ装置間の物理配線の接続も不要となる。
したがって、ＮＷシステムの構築を簡略にすることができる。
また、従来のＮＷシステムのように多段構成を導入することがないため、送信側装置２と受信側装置３との通信は、１度の書き込みと１度の読み出しで済み、１つの通信に多くの装置が介在することによる伝送遅延は生じない。従来のような、ＤＮＳによる通信アドレスの解決や、ＴＣＰハンドシェークも不要であり、接続オーバヘッドが無くなることも伝送遅延の抑制に資する。
【００７８】
また、メモリサーバ１への不正アクセスの判定については、書き込み対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のＮＷシステムを構成する多くのＮＷ装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
【００７９】
また、メモリサーバ１への不正アクセスの判定については、読み出し対象の受信側メモリ領域の確保有無判定として簡略にすることができる。このため、従来のＮＷシステムを構成する多くのＮＷ装置への不正アクセスに起因する盗聴、漏洩、改ざんなどのセキュリティリスクを低減させることができる。
【００８０】
また、データのキーに受信側装置３の情報を含ませ、データのバリューに送信側装置２の情報を含ませることで、通信管理を一元化することができる。
【００８１】
また、新規の受信側装置３を追加する場合には、メモリ１４を増設するだけで済むので、ＮＷシステムの拡大を簡略にすることができる。
【００８２】
また、受信側メモリ領域での書き込みや読み出しは自在に行うことができるため、ＰＵＬＬ通信、ＰＵＳＨ通信、または、マルチキャスト通信といった通信方式を容易に導入することができる。
【００８３】
≪他の実施形態≫
他の実施形態におけるＮＷシステムとして、メモリサーバ１のような大規模ＤＢの代わりに、分散処理システムを用いることができる。具体的には、メモリサーバ１に代えて、図６に示すように、バランサ４と、ディスパッチャ５−１，５−２，５−３，・・・と、プロセッサ６−１，６−２，６−３，・・・と、ストレージ７−１，７−２，７−３，・・・、を導入する。
【００８４】
バランサ４は、例えば、ロードバランサであり、外部からの処理要求をディスパッチャ５−１，５−２，５−３，・・・に振り分ける。バランサ４は、送信側装置２からの情報をキューに書き込みつつ、その情報を受信側装置３に出力する。出力の方式は、すでに採り上げたＰＵＬＬ通信、ＰＵＳＨ通信、マルチキャスト通信のいずれを採用することができる。
【００８５】
ディスパッチャ５−１，５−２，５−３，・・・は、バランサ４からの処理要求を解析し、対応するプロセッサ６−１，６−２，６−３，・・・およびストレージ７−１，７−２，７−３，・・・に渡すか否か（他のディスパッチャに渡す）を確認する。ディスパッチャ５−１，５−２，５−３，・・・は、接続可否判定部１１（図１）と同等の機能を有しており、接続可否判定によって、送信側装置２からの送信データを、対応のプロセッサ６−１，６−２，６−３，・・・およびストレージ７−１，７−２，７−３，・・・に振り分けて書き込む。
【００８６】
プロセッサ６−１，６−２，６−３，・・・は、対応のディスパッチャ５−１，５−２，５−３，・・・からの処理要求に対する演算処理を行う。
ストレージ７−１，７−２，７−３，・・・は、対応のプロセッサ６−１，６−２，６−３，・・・による演算処理の処理結果を記憶する。ストレージ７−１，７−２，７−３，・・・は、ＫＶＳのデータ構造をとるデータを記憶し、ストレージ７−１，７−２，７−３，・・・が備える受信側メモリ領域に格納されるバリュー内には、最初の実施形態と同様、送信側アドレスと送信データとが含まれる（図６の符号１４ｂ参照）。
【００８７】
他の実施形態のＮＷシステムであっても、最初の実施形態のＮＷシステムが奏する効果と同様の効果を奏する。
【００８８】
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能であり、例えば、次の（ａ）、（ｂ）のようなものがある。
（ａ）：受信側装置３がメモリサーバ１から取得するデータが複数存在する場合、特定のデータを優先的に取得することを可能にする優先制御機能をメモリサーバ１に導入してもよい。具体的には、例えば、データの優先度の示すフラグをデータのキーまたはバリューに含ませる。そして、受信側装置３へのデータ送信の際（図２〜図５の処理の工程４参照）、当該フラグを読み出してデータ送信順番を決めるようにするとよい。
（ｂ）：図５で説明したマルチキャスト通信は、ＰＵＳＨ通信の方式に即して説明したが、ＰＵＬＬ通信の方式に適用することもできる。
【００８９】
また、本実施形態で説明した種々の技術を適宜組み合わせた技術を実現することもできる。
また、本実施形態で説明したソフトウェアをハードウェアとして実現することもでき、ハードウェアをソフトウェアとして実現することもできる。
その他、ハードウェア、ソフトウェア、処理手順などについて、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００９０】
１        メモリサーバ（通信管理装置）
２        送信側装置
３        受信側装置
１１      接続可否判定部（制御部：制御手段、書き込み判定部、読み出し判定部）
１２      送受信部
１３      通知部
１４      メモリ（記憶手段）
１４ａ    メモリ領域
１４ａ１  受信側メモリ領域
【図１】
2018036962.tif 000003
【図２】
2018036962.tif 000004
【図３】
2018036962.tif 000005
【図４】
2018036962.tif 000006
【図５】
2018036962.tif 000007
【図６】
2018036962.tif 000008