(57)【要約】【課題】ネットワーク媒体やネットワーク装置および端末装置を共有した環境において、各サービス同志がお互いを意識することなく、端末装置およびサーバ装置側のプログラムに対して安全かつ排他独立性を確保し、サーバ装置と端末装置の双方向から通信を開始かつ実行可能なプログラム間通信方法およびシステムを提供する。【解決手段】ネットワーク２１７を仮想的に分離する方法と、端末装置２８、２９、２１０内のプログラムに対し、特定のネットワークアドレスを用いてのみ通信を可能とする方法との組み合わせにより、異なる複数のサービスをネットワーク２１７および端末装置２８、２９、２１０上でお互いに干渉なく実行させる。【選択図】図２
2007282088.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで相互に接続されたサーバおよび端末装置においてそれぞれ実行中のプログラム間で通信を行うためのプログラム間通信方法において、
仮想ネットワーク構成手段において、前記プログラム間を接続するための論理的に独立した仮想ネットワークを前記ネットワークに構成するステップと、
アドレス設定手段において、前記サーバと前記端末装置のそれぞれにおいて前記仮想ネットワークに対応するアドレスを設定するステップと、
通信アドレス制限手段において、前記アドレスを前記プログラム間の通信に用いる前記仮想ネットワークに対して一対一対応で割り付け、前記仮想ネットワークと前記アドレスを用いることのみで前記通信を可能にする制限を行うステップと、
を有することを特徴とするプログラム間通信方法。
【請求項２】
ネットワークで相互に接続されたサーバおよび端末装置においてそれぞれ実行中のプログラム間で通信を行うためのプログラム間通信システムにおいて、
前記プログラム間を接続するための論理的に独立した仮想ネットワークを前記ネットワークに構成するための仮想ネットワーク構成手段と、
前記サーバと前記端末装置のそれぞれにおいて前記仮想ネットワークに対応するアドレスを設定するためのアドレス設定手段と、
前記アドレスを前記プログラム間の通信に用いる前記仮想ネットワークに対して一対一対応で割り付け、前記仮想ネットワークと前記アドレスを用いることのみで前記通信を可能にする制限を行うための通信アドレス制限手段と、
を備えることを特徴とするプログラム間通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して複数のサーバと通信する端末装置において、端末装置で動作するプログラム毎に通信可能なネットワークを互いに分離独立するためのプログラム間通信方法およびシステムに関するものである。
【背景技術】
【０００２】
サーバ装置がネットワークを介して複数の端末装置と通信を行ないながらサービスを行う形態がインターネット上には多々存在する。また、端末装置側もこのようなサービスを複数同時に利用している形態が一般的であり、異なるサービスを提供する複数のサーバと同時に通信を行っている状況にある。
【０００３】
通常このようなサービスは、端末装置側で予め用意されているウェブブラウザ等のウェブページ閲覧用のソフトウェアを共通的に用いる場合が多いが、より高度なサービスを提供することを考えると、端末装置上での、各サービスに対応した特別なプログラムを動作させる状況が考えられる。
【０００４】
このような状況では、端末装置上では複数のサービスに対応した複数のプログラムが独立して動作を行い、各プログラムは対応するサーバ装置と通信をしてサービスを実行する。
【０００５】
ここで、複数のサービスが互いに独立であるものとすると、異なるサービスのためのプログラムはお互いに独立性を保たなければならない。
【０００６】
また、プログラムは自らが属するサービスのサーバ装置以外の他のサーバ装置と通信可能であってもならない。
【０００７】
さらに、サーバ装置側でも、自らに関連するプログラム以外からの通信要求を受け付けないようにする必要がある。
【０００８】
すなわち、サーバ装置、ネットワーク媒体、ネットワーク装置、端末装置、および端末内で動作する当該サービスを実行する為のプログラムがあるサービスを実現している系において、ネットワーク媒体、ネットワーク装置および端末装置を共有した上で、独立に実行させるための方法が知られている。
【０００９】
その方法としては、プログラムを作成時に特定のサーバにしか通信できないように固定的に作成しておく（特許文献１参照）、あるいは、サーバ側で指定したプログラムしか通信できないようにプログラムのレベルで認証を行う（特許文献２参照）というものである。
【特許文献１】特開２００３−１６７８０５号公報
【特許文献２】特開２００５−１００１９４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら従来の技術においては、プログラム作成時に通信相手となるサーバ装置のアドレス等の情報を固定的に設定する必要があり、他サーバの存在およびアドレスを意識する必要があった。
【００１１】
また、この方法はあくまでプログラム作成者の良心に委ねられており、悪意のあるプログラム作成者が、他サーバ装置との通信を試みるプログラムを作成することを積極的に防御することは難しかった。
【００１２】
また、予め取り決めた認証方式、例えばＳＳＬ／ＴＬＳ等でプログラムをサーバ側で認証し、認証が許可されないプログラムとは通信を行わないようにするものであるが、認証を開始する通信を防御することが難しく、悪意のある第三者のプログラムが、何度も認証の開始を要求するような妨害行為を行った場合、サーバ装置側に負荷がかかる可能性があった。
【００１３】
また、一般にこのような認証を行う通信の設定には計算負荷がかかるため、サーバ側で対応できる端末装置の数に制限が生じてしまっていた。
【００１４】
また、従来の端末装置側にはネットワークアドレスが１つしか割り当てられないのが普通であり、端末装置側の複数のプログラムは、この１つの端末ネットワークアドレスを共有して通信することになる。よって、サーバ側から端末装置側に対して通信を開始する場合は、ネットワークアドレスだけで対応するプログラムを区別することはできず、インターネットプロトコルであるＴＣＰやＵＤＰによる通信では、ポート番号をサービス毎、すなわちプログラム毎に分けておいて、サーバ装置側から開始される通信を特定のプログラムに反応させ、通信を実行させる必要があった。
【００１５】
また、このためには、予めサービスの提供者側で自分がどのポート番号を使用するかを取り決めておかなければならず、他サービス提供者のサーバ装置の存在を意識しておく必要があった。
【００１６】
本発明は上記課題に鑑みてなされたものであり、その目的は、ネットワーク媒体やネットワーク装置および端末装置を共有した環境において、各サービス同志がお互いを意識することなく、端末装置およびサーバ装置側のプログラムに対して安全かつ排他独立性を確保し、サーバ装置と端末装置の双方向から通信を開始かつ実行可能なプログラム間通信方法およびシステムを提供することにある。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、請求項１に記載の本発明は、ネットワークで相互に接続されたサーバおよび端末装置においてそれぞれ実行中のプログラム間で通信を行うためのプログラム間通信方法において、仮想ネットワーク構成手段において、前記プログラム間を接続するための論理的に独立した仮想ネットワークを前記ネットワークに構成するステップと、アドレス設定手段において、前記サーバと前記端末装置のそれぞれにおいて前記仮想ネットワークに対応するアドレスを設定するステップと、通信アドレス制限手段において、前記アドレスを前記プログラム間の通信に用いる前記仮想ネットワークに対して一対一対応で割り付け、前記仮想ネットワークと前記アドレスを用いることのみで前記通信を可能にする制限を行うステップと、を有する。
【００１８】
また、請求項２に記載の本発明は、ネットワークで相互に接続されたサーバおよび端末装置においてそれぞれ実行中のプログラム間で通信を行うためのプログラム間通信システムにおいて、前記プログラム間を接続するための論理的に独立した仮想ネットワークを前記ネットワークに構成するための仮想ネットワーク構成手段と、前記サーバと前記端末装置のそれぞれにおいて前記仮想ネットワークに対応するアドレスを設定するためのアドレス設定手段と、前記アドレスを前記プログラム間の通信に用いる前記仮想ネットワークに対して一対一対応で割り付け、前記仮想ネットワークと前記アドレスを用いることのみで前記通信を可能にする制限を行うための通信アドレス制限手段と、を備える。
【発明の効果】
【００１９】
本発明によれば、ネットワーク媒体やネットワーク装置および端末装置を共有した環境において、各サービス同志がお互いを意識することなく、端末装置およびサーバ装置側のプログラムに対して安全かつ排他独立性を確保し、サーバ装置と端末装置の双方向から通信を開始かつ実行可能なプログラム間通信方法およびシステムを提供することができる。
【発明を実施するための最良の形態】
【００２０】
＜第１の実施の形態＞
本実施の形態においては、(1)ネットワークがお互いに分離されていること、(2)端末装置上のアプリケーション（プログラム）が分離された個々のネットワークのみに通信を可能にし、もしくは制限をする装置および方法が端末装置上に存在すること、(3)前記(1)および前記(2)を管理・制御するための装置および方法が存在することである。本実施の形態では、これらに対応する形で具体的な構成を以下に説明する。
【００２１】
図１に、第１の実施の形態に係る全体構成図を示す。
【００２２】
まず、全体システムの構成および前提条件として、ネットワーク１１７を介して端末装置１８、１９、１１０と通信を行って、何らかのサービスアプリケーションを実行しているサーバ装置Ａ１１、サーバ装置Ｂ１２、サーバ装置Ｃ１３が備わる。そして、サーバ装置Ａ１１と通信を行うプログラムＡ１１１、１１５が端末装置１８、１１０にインストールされている。また、サーバ装置Ｂ１２と通信を行うプログラムＢ１１２、１１３が端末装置１８、１９にインストールされており、さらにサーバ装置Ｃ１３と通信を行うプログラムＣ１１４、１１６が端末装置１９、１１０にインストールされている。
【００２３】
このような図１に示す構成においては、たとえば、端末装置１８ではプログラムＡ１１１とプログラムＢ１１２が動作し、それぞれがサーバ装置Ａ１１およびサーバ装置Ｂ１２と通信を行って、端末装置１８上でサービスアプリケーション（プログラム）を実行している。
【００２４】
また、ネットワーク装置１４はサーバ装置側に接続されるルータ等のネットワーク装置で実現することができ、ネットワーク装置１５、１６、１７は各々端末装置１８、１９、１１０が設置されるＬＡＮとＷＡＮ側ネットワーク１１７を接続するルータ（ホームルータなど）等により実現することができる。
【００２５】
次の図２は、図１に示す構成において管理サーバ２１８を備えた構成を示している。この図２において、ネットワーク２２２、２２３、２２４はインターネットなどのネットワーク２１７上に構成された仮想ネットワークである。このネットワーク２１７に接続しているサーバ装置Ａ２１はネットワーク２２２上のアドレスを持ち、自身と通信をするプログラムＡ２１１が動作する端末装置２８と端末装置２１０もネットワーク２２２上のアドレスを持つ（アドレス設定手段）。
【００２６】
そして、サーバ装置Ｂ２２はネットワーク２２３上のアドレスを持ち、自身と通信するプログラムＢが動作する端末装置２８および２９もネットワーク２２３上のアドレスを持つ（アドレス設定手段）。
【００２７】
また、サーバ装置Ｃ２３は、ネットワーク２２４上のアドレスを持ち、自身と通信するプログラムＣが動作する端末装置２９および２１０もネットワーク２２４上のアドレスを持つ（アドレス設定手段）。
【００２８】
また、管理サーバ２１８は、ネットワーク装置２４および各端末装置を収容するネットワークのゲートウェイとなるネットワーク装置２５、２６、２７に対してネットワーク２２２、２２３、２２４を設定して構築する。モジュール２１９、２２０、２２１は各々のプログラムＡ２１１、プログラムＢ２１２、プログラムＣ２１６がそれぞれ属するネットワーク以外への通信を制限するソフトウェアモジュールであり、各々は端末装置２８、２９、２１０において動作し、通信の制限の設定は管理サーバ２１８からの指示によってなされる（仮想ネットワーク構成手段、通信アドレス制限手段）。
【００２９】
そして、管理サーバ２１８からの指示によって、ネットワーク装置２４において、サーバ装置Ａ２１がネットワーク２２２上にアドレスを持ち、このネットワーク２２２でのみ通信を可能とする設定を行う。
【００３０】
同様に、サーバ装置Ｂ２２がネットワーク２２３上にアドレスを持ち、このネットワーク２２３でのみ通信を可能とする設定を行う。
【００３１】
同様に、サーバ装置Ｃ２３がネットワーク２２４上にアドレスを持ち、このネットワーク２２４でのみ通信を可能とする設定を行う。
【００３２】
さらに、管理サーバ２１８は、ネットワーク装置２５において、ネットワーク２２２とネットワーク２２３のみをルーティング可能とし、端末装置２８においてネットワーク２２２、２２３上のアドレスを配布もしくは設定可能とする設定を行い、各仮想ネットワークのそれぞれについて一対一対応するアドレスを設定する。
【００３３】
同様に、ネットワーク装置２９において、ネットワーク２２３とネットワーク２２４のみをルーティング可能とし、端末装置２９においてネットワーク２２３、２２４上のアドレスを配布もしくは設定可能とする設定を行う。
【００３４】
同様に、ネットワーク装置２１０において、ネットワーク２２２および２２４をルーティング可能とし、端末装置２１０においてネットワーク２２３および２２４上のアドレスを配布もしくは設定可能とする設定を行う。
【００３５】
このような構成により、プログラムＡ２１１、プログラムＢ２１３、プログラムＣ２１６は、互いに異なるネットワークで各々排他的にネットワーク通信を行うことが可能となる。すなわち、ネットワーク媒体やネットワーク装置および端末装置を共有した環境において、各サービス同志がお互いを意識することなく、端末装置およびサーバ装置側のプログラムに対して安全かつ排他独立性を確保し、サーバ装置と端末装置の双方向から通信を開始かつ実行可能にすることができる。
【００３６】
＜第２の実施の形態＞
図３に、ＶＰＮ（Virtual Private Network）を用いた第２の実施の形態を説明するための構成図を示す。
【００３７】
この図３は、ネットワーク装置８１と端末装置３４間で２つのＶＰＮを設定し、各々をネットワーク３９、３１０として設定する構成を示している。端末装置３４では、ＩＰアドレスとして「１９２．１６８．１．１０１」と「１９２．１６８．２．１０１」のアドレスを設定する。同様に、端末装置３５にもＶＰＮとしてネットワーク３９、３１０を設定し、端末装置３５には、ＩＰアドレスとして「１９２．１６８．１．１０２」と「１９２．１６８．２．１０２」のアドレスを設定する。またネットワーク装置３２、３３にはＶＰＮを通過させる設定を行う。ＶＰＮを終端するネットワーク装置３１では、ＶＰＮ３９はサーバ装置Ａ３６とのみ通信可能とし、ＶＰＮ３１０はサーバ装置Ｂ３７とのみ通信可能とする。
【００３８】
＜第３の実施の形態＞
ＩＰｖ６アドレスを用いるネットワークでは、図４に示すように、ＩＰｖ６アドレス全体４１を、ネットワークのアドレス部４２、４３、４４と、端末固有のアドレス４５によって構成する。
【００３９】
また、図５に示されるＩＰｖ６ネットワークにおいて、管理サーバ５８によってネットワーク装置５１は、ＤＨＣＰｖ６等のプロトコルを用いて、ネットワーク装置５２および５３各々に対して、Ｎ＋Ｔ１のアドレスプリフィックス５９およびＮ＋Ｔ２のアドレスプリフィックス５１０を付与する。
【００４０】
ＩＰｖ６ネットワークの規約により、ネットワーク装置５２、５３は各々与えられたアドレスプリフィックス５９、５１０以下のアドレス空間を自由に使って良いことになるため、管理サーバ５８の指示によってネットワーク装置５２は端末装置５４に対してＮＤＰ等のプロトコルにより、Ｎ＋Ｔ１＋ＡおよびＮ＋Ｔ１＋Ｂのアドレスプリフィックスを持つＩＰｖ６アドレス５１１、５１２を付与する。
【００４１】
同様に、管理サーバ５８の指示によってネットワーク装置５３は、端末装置５５に対してＮＤＰ等のプロトコルにより、Ｎ＋Ｔ２＋ＡおよびＮ＋Ｔ２＋Ｂのアドレスプリフィックスを持つＩＰｖ６アドレス５１３、５１４を付与する。
【００４２】
ここで、Ｎは図４におけるアドレス部４２を、Ｔ１およびＴ２は図４におけるアドレス部４３を、ＡおよびＢは図４におけるアドレス部４４を示すものとする。ネットワーク装置５１では、ＩＰアドレスのフィルタ機能により、サーバ装置Ａ５６はＩＰｖ６アドレスのアドレス部４３がＡであるもののみサーバ装置Ａとの通信を可能とする。また、ＩＰｖ６アドレスのアドレス部４３がＢであるもののみサーバ装置Ｂ５７との通信を可能とする設定を、管理サーバ５８の指示によって実施する。
【００４３】
以上の構成および手順によって、図５に示されるＩＰｖ６のネットワークは、図４におけるアドレス部４３の差異によって２つのネットワークに仮想的に分離されたことになる。
【００４４】
以上に示した第２および第３の実施の形態によって、端末装置側に２つのアドレスが付与されそれぞれ仮想的に別のネットワークに属し、あるアドレスから特定のサーバ装置に対してのみ通信が可能となる。すなわち、端末装置側のプログラムが通信に用いるインタフェースもしくはネットワークアドレスをプログラム（群）毎に複数個設定し、対応するプログラムには、対応するインタフェースもしくはネットワークアドレスを用いて通信を実行させるようにし、サーバ装置側では、対応するネットワークもしくは仮想ネットワークのみを使って端末装置と通信を行えるようにネットワーク媒体およびネットワーク装置を設定することで、あるサービスに用いられるサーバ側および端末装置側プログラムから見れば、自サービス専用のネットワークを占有しているように見えることから、他サービスの存在を意識することなく、他サービスとは独立に通信動作をすることが可能となる。
【００４５】
＜第４の実施の形態＞
図６に、第４の実施の形態に係る、端末装置内でのプログラム分離を説明するための説明図を示す。
【００４６】
図６において、端末装置内で動作するプログラムＡ６１、プログラムＢ６２、プログラムＣ６３は各々Java（登録商標）のプログラムとして作成、動作を行うものとし、Java Virtual Machine（登録商標）６７上で動作するものとする。
【００４７】
各プログラムはネットワークを介した通信のために、ソケット６４、６５、６６を設定する。Java Virtual Machine（登録商標）６７は、これらJava（登録商標）上での各ソケットをＯＳレベルのソケット６８、６９、６１０に接続するが、このときの設定により、Java（登録商標）上でのソケット６４は同じ接続先アドレスおよびポート番号であるＯＳレベルのソケット６８のみに接続可能とし、他のＯＳレベルでのソケットには各々ＯＳレベルのソケット６８、６９、６１０にのみ接続可能とすることができる。
【００４８】
よってＯＳレベルのソケット６８、６９、６１０はその別々のネットワークへの接続とすることで、プログラムＡ６１、プログラムＢ６２、プログラムＣ６３は別々のネットワークに接続された通信相手としか通信ができなくなる。このような構成により、プログラムＡ６１、プログラムＢ６２、プログラムＣ６３は互いに独立するネットワーク上の通信相手とのみ通信可能となり、ネットワーク的に排他的にすることができる。
【００４９】
以上説明した第１〜４の実施の形態においては、サーバ装置および端末装置側で動作するプログラムは他サービスを提供するサーバ装置および端末装置側プログラムの存在を意識せず、従来と同様に制約なく作成するものとしており、その詳細は以下の（１）〜（５）に記載された内容である。
【００５０】
（１）端末装置側に１つもしくは複数のサービスに対応する（１つもしくは複数のプログラムに対応する）１つもしくは複数の仮想インタフェースもしくはネットワークアドレスを設定するオペレーティングシステム、プログラムモジュールもしくはハードウエア装置を設ける。
【００５１】
（２）端末装置側において、特定のプログラム（群）が通信のために特定のインタフェースもしくはネットワークアドレスのみを利用可能なソフトウェアモジュールを設ける。
【００５２】
（３）端末装置は複数のネットワークに属する装置もしくは複数の仮想ネットワークに属する装置となるため、端末装置とサーバ装置の間に位置するネットワーク媒体およびネットワーク装置では、この複数のネットワークもしくは複数の仮想ネットワークを互いに独立に分離し、対応するサーバ装置までルーティングするソフトウェアモジュールもしくはハードウエア装置を設ける。
【００５３】
（４）上記（１）の端末に対する複数のインタフェースもしくはネットワークアドレスの設定および管理を行い、上記（２）のプログラムに対する特定のインタフェースもしくはネットワークアドレス以外を利用した通信を制限するための設定および管理を実行する管理ソフトウェアモジュールを端末装置に配置する。
【００５４】
（５）上記（３）のネットワーク媒体およびネットワーク装置上でのネットワークもしくは仮想ネットワークの分離を設定および管理するネットワーク管理サーバを配置し、管理プログラムを実行し、そのプログラムの動作と上記（４）の端末装置上の管理ソフトウェアモジュール間を安全な通信路で通信を行うことで連動させる。
【００５５】
そして、ネットワークを仮想的に分離する方法と、端末内のプログラムに対し、特定のネットワークアドレスを用いてのみ通信を可能とする方法との組み合わせにより、異なる複数のサービスをネットワークおよび端末上でお互いに干渉なく実行することができる方法とシステムを構築することができる。
【図面の簡単な説明】
【００５６】
【図１】第１の実施の形態に係る全体構成図を示す。
【図２】図１に示す構成において管理サーバを備えた構成を示す。
【図３】ＶＰＮ（Virtual Private Network）を用いた第２の実施の形態を説明するための構成図を示す。
【図４】第３の実施の形態に係るＩＰｖ６アドレスを説明するための説明図を示す。
【図５】第３の実施の形態に係るＩＰｖ６ネットワークの構成図を示す。
【図６】第４の実施の形態に係る、端末装置内でのプログラム分離を説明するための説明図を示す。
【符号の説明】
【００５７】
１１、２１、３６、５６…サーバ装置Ａ
１２、２２、３７、５７…サーバ装置Ｂ
１３、２３…サーバ装置Ｃ
１４、１５、１６、１７、２４、２５、２６、２７、３１、３２、３３、５１、５２、５３…ネットワーク装置
１８、１９、２８、２９、３４、３５、５４、５５、１１０、２１０…端末装置
３９、２２２、２２３、２２４、３１０…ネットワーク
４１…ＩＰｖ６アドレス
４２、４３、４４…アドレス部
４５…端末固有のアドレス部
６１、１１１、１１５、２１１、２１５…プログラムＡ
６２、１１２、１１３、２１２、２１３…プログラムＢ
６３、１１４、１１６、２１４、２１６…プログラムＣ
６４、６５、６６…Java（登録商標）ソケット
６７…Java Virtual Machine（登録商標）
６８、６９、６１０…ＯＳのソケット
５８、２１８…管理サーバ
５９、５１０…ネットワークアドレス
２１７…ネットワーク
２１９、２２０、２２１…モジュール
５１１、５１２、５１３、５１４…端末アドレス
５１５、５１６…サーバアドレス
【図１】
2007282088.tif 000003
【図２】
2007282088.tif 000004
【図３】
2007282088.tif 000005
【図４】
2007282088.tif 000006
【図５】
2007282088.tif 000007
【図６】
2007282088.tif 000008