(57)【要約】【課題】  複数のユーザ閉域網に多重帰属する物理的に１台のサーバ装置が、各々のユーザ閉域網ごとに独立した動作を行うことを可能にして、多重帰属されたサーバ装置内部でのユーザ閉域網間の閉域性を確保すること。【解決手段】  サーバ装置内のアプリケーション層にユーザプロセスの実行環境がユーザ閉域網間ごとに独立して構築されており、異なるユーザ閉域網関でのアプリケーションやファイルの利用を排他的にする。これらの実行環境が各々専用の独立したネットワーク空間を前記サーバ装置内に有することによって、各実行環境で動くサーバプログラムのネットワーク通信経路と、ネットワーク上論理的に分離して、多重帰属されたサーバ装置内部でのユーザ閉域網関の閉域性が確保される。【選択図】      図１
2005100194.tif 000002
【特許請求の範囲】
【請求項１】
複数のユーザ閉域網と同時に接続を行い、ユーザプロセス層においてアプリケーションの仮想的な実行環境を前記ユーザ閉域網ごとに独立して有し、
異なる仮想実行環境間でのアプリケーションやファイルの取扱いが排他となる物理的に1台のサーバ装置であって、
前記仮想実行環境ごとに通信プロトコルスタックおよびその通信プロトコルスタックが有する通信機能を独立して提供することを特徴とするサーバ装置。
【請求項２】
前記仮想実行環境とプロトコルスタックとの間にあって、仮想実行環境とプロコトルスタックとの組み合わせを記憶し、サーバプログラムのユーザプロセス情報から前記サーバプログラムが属する仮想実行環境を認識して、サーバプログラムとプロトコルスタックとの間のリンクを前記記憶に従いリンク制御するリンク制御機構を具備することを特徴とする請求項1に記載のサーバ装置。
【請求項３】
前記仮想実行環境の各々が、複数のＩＰアドレスを同時利用することができ、かつ、異なる仮想実行環境間でのＩＰアドレスを重複利用できることを特徴とする請求項1または２に記載のサーバ装置。
【請求項４】
前記サーバプログラムのソースコードまたはバイナリを改造することなく使用できることを特徴とする請求項1〜３のいずれか１項に記載のサーバ装置。
【請求項５】
請求項１〜４のいずれか１項に記載のサーバ装置の動作をコンピュータ制御により実現させるためのサーバ装置用プログラム。
【請求項６】
請求項５に記載のサーバ装置用プログラムを格納したコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットやプライベートネットワークや事業者ＩＰ網を介して接続された複数の異なる閉域網に多重帰属型のサーバホスティングサービス（物理的に１台のサーバ装置を用いて複数のユーザ閉域網に仮想専用サーバとしてのサーバ機能を提供するサービス）や情報共有サーバサービス（サーバ装置を介してファイルやデータベースなどを複数のユーザ閉域網に共有化するサービス）などのサーバ装置に関する。
【背景技術】
【０００２】
複数の異なるユーザ網に対して、物理的に１台のサーバ装置を仮想的に各々の専用サーバであるかのように動作させる手法として、サーバ装置のユーザプロセス層にアプリケーションやユーザコマンドの実行空間として通常は１つだけ用意されている実行環境を複数用意し、各々のユーザ網ごとに専用の実行環境（以下、仮想実行環境という）を割り当てる手法がある。この手法は、アプリケーションやファイルの有効範囲が各仮想実行環境内に閉じられるため、アプリケーションやファイルの取扱いがユーザ網間で排他となることを利用している。この手法を用いたサーバ装置は、サーバ装置を利用するユーザ間のセキュリティと専有性とを高め、共有利用によってユーザコストを低くしている。
【０００３】
近年、通信コストを安く抑えかつ安全な通信を行うために閉域網の利用が多い。閉域網は企業だけでなく、ＳＯＨＯ（Ｓmall Ｏffice Ｈome Ｏffice）ユーザや個人ユーザでも用いられており、その数は増加している。また、企業内の部課ごとに閉域網を利用するなど、閉域網の利用形態は小規模多数化している。このような小規模型の閉域網にサーバ装置を提供する方法として、各閉域網ごとにサーバ装置を設置する方法があるが、設置に必要な稼動とコストの大きさの割には実際に使用量は少ないなど問題は多い。
【０００４】
そこで、物理的に１台のサーバ装置を用いて各閉域網にそれぞれ専用のサーバ装置があるかのように動作する多重帰属型の閉域網向け仮想サーバ装置を考える。閉域網では一般に、ローカルアドレスが用いられる。このようなユーザ閉域網に多重帰属するサーバ装置を考える場合、ユーザ閉域網間の閉域性を確保する必要がある。
ここに、ユーザ閉域網ＡとＢとがサーバ装置にそれぞれ接続しているとする。サーバ装置が複数備える仮想実行環境をＡとＢとに１つずつ割り当てることで、ＡとＢとはサーバ装置におけるお互いの存在を知ることなく、あたかも上記サーバ装置が専用サーバであるかのようにサーバプログラムの実行やファイルの操作が可能となる。
【０００５】
しかし、Ａが自らの仮想実行環境において実行するサーバプログラムに、Ｂはネットワーク通信によりアクセスすることができてしまい、ユーザ閉域網間の閉域性を失うという問題が生じる。通常、サーバ装置にはユーザ閉域網間ごとに異なるＩＰアドレスが１つずつ割り当てられており、ＩＰアドレスを重複して割り当てることは、ネットワーク上、論理的に不可能である。Ｂは、Ａが利用するサーバ装置のＩＰアドレスに接続することで、Ａのサーバプログラムを利用できてしまう。この問題の回避策として、自らのクライアントホストが利用するローカルアドレス空間以外からのＩＰ接続を拒否するように、Ａがサーバプログラムごとにアクセス可否の設定を行う方法がある。しかし、全てのサーバプログラムが設定可能であるとは限らず、完全な解決策には至らない。
【０００６】
さらに、ユーザ閉域網ＡとＢとが同一のローカルアドレス空間を使用していて、ＡのクライアントホストとＢのクライアントホストとでＩＰアドレスが衝突している場合、サーバ装置には同一のＩＰアドレスを持ったホストが複数存在するように見えてしまい、正常な通信を行うことができないという問題が生じる。この問題の回避策として、サーバ装置を利用するユーザ網ごとに異なるローカルアドレス空間を割り当てる方法が考えられる。しかし、サーバ装置を利用するユーザ網およびその数が動的に変化する場合に、ユーザ網管理者とサーバ装置管理者との双方に非常に煩雑なＩＰアドレスの管理が必要になるという問題が生じる。
【０００７】
ところで、インターネットにおいては、現在、ＴＣＰ／ＩＰプロトコル群がホストやルータなどといった機器の間での通信に使われている。そのＴＣＰ／ＩＰプロトコル群はインターネットプロトコルスタック（以下、単にプロトコルスタックという）と呼ばれる。このプロトコルスタックの役割としては、ＩＰアドレスの管理、パケット配送のための経路（ルーティング）情報の管理、各プロトコルパケットの処理などネットワーク通信に必要な役割を担う。
【０００８】
従来のサーバ装置やルータには、ユーザプロセス層の下位層にプロトコルスタックが１つだけ用意されており、サーバ装置やルータは、プロトコルスタックにおいては通信機能を、ユーザプロセス層においてはアプリケーションが実行できる環境を提供する。
従って、複数の異なるユーザ閉域網に対して多重帰属的にサーバ装置を提供する場合、サーバ装置の通信機能部とアプリケーション実行環境部とをユーザ閉域網ごとに仮想分離して、サーバ装置内部におけるユーア閉域網間の閉域性を確保する必要がある。
【０００９】
特許文献１に示されている通信機能部のみを仮想分離したサーバ装置では、ファイルおよびアプリケーションの取扱いが標準で共有状態であって、ユーザ閉域網間の複雑な排他処理が別途必要であり、アプリケーション実行環境部のみを仮想分離したサーバ装置（Ｆree ＢＳＤコミュニティにおけるjail 機能を用いたサーバ装置、Ｌinux コミュニティにおけるＵser Ｍode Ｌinux を導入したサーバ装置など）では、ユーザ閉域網の各個とサーバ装置との間の通信においてユーザ閉域網間の複雑な排他処理が別途必要となる。これらのサーバ装置は、サーバ装置管理者とユーザ閉域網管理者とによる閉域制の欠如を補完するための複雑な設定と運用制限とによって、複数の異なるユーザ閉域網に多重帰属する仮想サーバサービスの実用を難しくしている。
【００１０】
【特許文献１】特開２００３−１６７８０５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は上記事情に鑑みてなされたもので、その目的とするところは、複数のユーザ閉域網に多重帰属する物理的に１台のサーバ装置において、通信機能部とアプリケーション実行環境部とを各ユーザ閉域網間で共有することなく、各々のユーザ閉域網に独立した提供を可能にして、上記サーバ装置内部でのユーザ閉域網間の閉域性を容易に確保することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明は、ユーザプロセス層において仮想実行環境を複数装備したサーバ装置に対して、各々の仮想実効環境の下位層にプロトコルスタックを一つずつ用意することにより、サーバ装置内部における各ユーザ閉域網の仮想サーバ領域を共有することなく分断するように構成したことを特徴とする。
【００１３】
より具体的には、本発明は、複数のユーザ閉域網と同時に接続を行い、ユーザプロセス層においてアプリケーションの仮想的な実行環境を前記ユーザ閉域網ごとに独立して有し、異なる仮想実行環境間でのアプリケーションやファイルの取扱いが排他となる物理的に1台のサーバ装置であって、前記仮想実行環境ごとに通信プロトコルスタックおよびその通信プロトコルスタックが有する通信機能を独立して提供することを特徴とするサーバ装置を提供するものである。
【００１４】
ここで、前記仮想実行環境とプロトコルスタックとの間にあって、仮想実行環境とプロコトルスタックとの組み合わせを記憶し、サーバプログラムのユーザプロセス情報から前記サーバプログラムが属する仮想実行環境を認識して、サーバプログラムとプロトコルスタックとの間のリンクを前記記憶に従いリンク制御するリンク制御機構を具備することが好ましい。
【００１５】
また、前記仮想実行環境の各々が、複数のＩＰアドレスを同時利用することができ、かつ、異なる仮想実行環境間でのＩＰアドレスを重複利用できることが好ましい。さらに、前記サーバプログラムのソースコードまたはバイナリを改造することなく使用できることが好ましい。
【００１６】
なお、上述の各サーバ装置の動作は、これをコンピュータ制御により実現させることが好ましく、本発明の技術範囲は、このためのサーバ装置用プログラム、さらには、このサーバ装置用プログラムを格納したコンピュータにより読み取り可能な記憶媒体にも及ぶことはいうまでもない。
【発明の効果】
【００１７】
本発明によれば、複数のユーザ閉域網に多重帰属する物理的に１台のサーバ装置が、各々のユーザ閉域網に独立したサーバ機能の提供を可能にして、サーバ装置内部でのユーザ閉域網間の閉域性を容易に確保することが可能になる。
【００１８】
より具体的には、本発明によれば、共用型ＶＰＮ（Ｖirtual Ｐrivate Ｎetwork ）サーバホスティングであっても、専用サーバ同等の閉域性や機密性を有することが可能となる。加えて、今後増加していくと予想される、複数企業間でのデータ交換を必要とするプロジェクトの実施時や調達業務の実施時に必要となる、複数閉域網向けの仮想サーバの構築・運用などを提供するハウジングサービスへの展開が可能になる。
【００１９】
また、このサービスは自社の閉域網に手を加えることなく複数の他企業と情報の連携が可能になるので、ＩＳＰ（Ｉnternet Ｓervice Ｐrovider ）などが行っているＩＰ−ＶＰＮサービスの新しい付加サービスとしての展開が見込める。さらに、企業だけでなく、個人向けのポータルサイトサービスへの展開も可能になる。このように、本発明は閉域網向けの新しい情報流通プラットフォームを構築する手段としての利用が見込める。
【発明を実施するための最良の形態】
【００２０】
以下、添付の図面に示す好適実施形態に基づいて、本発明を詳細に説明する。
【００２１】
図１は、本発明の一実施形態に係るサーバ装置概要図である。従来のサーバ装置に対して、実環境部４，カーネル内の通信プロトコル部５，ファイルシステム部６，コア部７等に加えて、仮想実行環境部１ａ，１ｂ，……と、カーネル内のプロトコルスタック多重構成部２（この内部には、ＴＣＰ／ＩＰプロトコルスタック２ａ，２ｂ，……が備えられている）、並びにシステムコールインタフェース部のリンク制御部３とが新たに備えられている。
【００２２】
上述の、それぞれの仮想実行環境部１ａ，１ｂ，……には、オペレーションコマンドとサーバプログラム１１と、カーネルに対して特定の「仕事」を要求するコマンドでありサーバプログラムやオペレーションコマンドのＣ言語プログラムの中に関数として記述されるシステムコール１２と、サーバプログラム１１の実行によってサーバプログラムからロードされる共有ライブラリ１３とが備えられている。
【００２３】
上述の、プロトコルスタック多重構成部２は、図２に示される周知のＴＣＰ／ＩＰプロトコルスタックを複数備えているものである。リンク制御部３は、前述の仮想実行環境部１ａ，１ｂ，……とプロトコルスタック多重構成部内部のＴＣＰ／ＩＰ２ａ，２ｂ，……との間に位置し、仮想実行環境とＴＣＰ／ＩＰプロトコルスタックとの組み合わせを記憶するとともに、この記憶内容に基づいて仮想実行環境部中のサーバプログラムを所定のＴＣＰ／ＩＰプロトコルスタックに結合させる機能を備えている。
【００２４】
以下、上述のように構成される、本実施形態に係るサーバ装置の動作について、図３に示す動作フロー図をも参照して説明する。
【００２５】
ステップ２１、２２：仮想実行環境を構築する
仮想実行環境の初期化動作を決定するためのオペレーションコマンドによって、実環境同様、初期化シーケンスを実行し仮想実行環境をアクティブ状態にする。これは、前述の既存のＯＳであるＦree ＢＳＤのjail またはＬinux のＵＭＬ（Ｕser Ｍode Ｌinux ）を利用して仮想実行環境を構築することができる。ただし、jail およびＵＭＬは一つのプロトコルスタックを複数の仮想実行環境で共有して使用することを前提としているために、各々の仮想実行環境では他の仮想実行環境と異なる単一のＩＰアドレスを指定しての運用しかできない。
本実施形態に係る仮想実行環境は、ＩＰアドレスではなく任意のプロトコルスタックを指定してアクティブ状態にしたjail またはＵＭＬ相当の仮想実行環境である。そこで、この時点で、仮想実行環境内のサーバプログラムやファイルは他の仮想実行環境とは隔離される。
【００２６】
ステップ２３，２４：サーバプログラムの実行とテーブル書き込み
仮想実行環境をアクティブ状態にすると、この仮想実行環境が使用するプロトコルスタックの情報はリンク制御部３へ達する。仮想実行環境において実行されるオペレーションコマンドやサーバプログラムなどのユーザプロセスは、プロセスＩＤ（Ｉdentifier ）やグループＩＤなどの様々な情報が格納されているプロセステーブルの中に、自分が仮想実行環境の中で動作しているか否かの情報、さらに仮想実行環境の中で動作している場合には仮想実行環境を特定するための識別情報を有する。
【００２７】
仮想実行環境が使用するプロトコルスタックの情報を受け取ったリンク制御部３は、仮想実行環境とプロトコルスタックとの組み合わせを記憶し、サーバプログラムが起動されるとそのプロセステーブルからサーバプログラムが属する仮想実行環境を特定して、サーバプログラムを所定のプロトコルスタックに接続させる準備を整える。
【００２８】
なお、それぞれのユーザ閉域網が使用する仮想実行環境Ａ，Ｂ，Ｃでは、ローカルアドレスを自由に用いて、ここでは、サーバ装置にＩＰアドレスを割り当てている。ＡはＩＰアドレスａ(１９２．１６８.１．１)を、ＢはＩＰアドレスｂ(１９２．１６８.１．１)を、ＣはＩＰアドレスｃ(１９２．１６８.１．１)をそれぞれ割り当てているものとする。閉域網間ではローカルアドレス空間の衝突がしばしば見られるため、本実施形態においては、故意に衝突させている。
【００２９】
ステップ２５，２６：テーブルを参照してバインディング（接続）
各ユーザ閉域網は、サーバ装置をＷebサーバとして利用することを考える。仮想実行環境ＡにおいてＷebサーバ用のサーバプログラムが実行されると、リンク制御部３はサーバプログラムのプロセステーブルを参照して、サーバプログラムの母体となる仮想実行環境を特定する。リンク制御部３は、予め指示された仮想実行環境とプロトコルスタックとの組み合わせに基づいて、前述のサーバプログラムが所定のプロトコルスタックに接続できるように制御を行う。リンクが確立すると、前述のサーバプログラムがクローズされるまで、リンクは保持される。仮想実行環境Ｂ，Ｃについても同様である。
【００３０】
サーバ装置の外部側、すなわち、ユーザ閉域網側から受け取るパケットには、ＶＬＡＮ（Ｖirtual Ｌocal Ａrea Ｎetwork ）やＭＰＬＳ（Ｍulti Ｐrotocol Ｌabel Ｓwitching ）などのレイヤ２識別子がラベリングされる。ＶＬＡＮ−ＩＤ＃１番のパケットは、サーバ装置のネットワークインターフェースから仮想実行環境Ａのプロトコルスタックへ受け渡される。逆に、ユーザ閉域網側へ送信する場合は、仮想実行環境Ａのプロトコルスタックからネットワークインタフェースへパケットが受け渡されるときに、ＶＬＡＮ−ＩＤ＃１番をタグ付けして、仮想実行環境Ａを使用しているユーザ閉域網へ送信する。
【００３１】
上記動作は、仮想実行環境Ｂ，Ｃについても同様である。これにより、仮想実行環境Ａを使用しているユーザ閉域網側の端末および仮想実行環境Ａ内部からは、仮想実行環境ＢのＩＰアドレスさらにはＷebサーバにネットワーク上、アクセスすることが不可能となる。
【００３２】
以後の処理（パケットの送受処理等）については、ステップ２７〜２９に示した通りであり、この部分については、それぞれ通常の処理と同様であるので、詳細な説明は省略する。
【００３３】
以上、具体例を示して説明した通り、本実施形態に係るサーバ装置によれば、複数のユーザ閉域網に多重帰属する物理的に１台のサーバ装置において、通信機能部とアプリケーション実行環境部とを各ユーザ閉域網間で共有することなく、各々のユーザ閉域網に独立した提供を可能にして、サーバ装置内部でのユーザ閉域網間の閉域性を容易に確保することが可能となる。
【００３４】
なお、上記実施形態は、本発明の一例を示したもであり、本発明はこれに限定されるものではなく、本発明の趣旨を逸脱しない範囲内で、適宜の変更・改良を行ってもよいことはいうまでもない。
【００３５】
例えば、上述のサーバ装置の動作は、これをコンピュータ制御により実現させることが好ましく、本発明の技術範囲は、このためのサーバ装置用プログラム、さらには、このサーバ装置用プログラムを格納したコンピュータにより読み取り可能な記憶媒体にも及ぶことはいうまでもない。
【００３６】
上述のように、本発明によれば、共用型ＶＰＮサーバホスティングであっても、専用サーバ同等の閉域性や機密性を有することが可能となる。加えて、今後増加していくと予想される複数企業間でのデータ交換を必要とするプロジェクトの実施時や調達業務の実施時に必要となる複数閉域網向けの仮想サーバの構築・運用などを提供するハウジングサービスへの展開が可能になる。
【００３７】
また、このサービスは自社の閉域網に手を加えることなく複数の他企業と情報の連携が可能になるので、前述のＩＳＰなどが行っているＩＰ−ＶＰＮサービスの新しい付加サービスとしての展開が見込める。さらに、企業だけでなく個人向けのポータルサイトサービスへの展開も可能になる。このように、本発明は閉域網向けの新しい情報流通プラットフォームを構築する手段としての利用が見込める。
【図面の簡単な説明】
【００３８】
【図１】本発明の一実施形態に係るサーバ装置を示す概要図である。
【図２】ＴＣＰ／ＩＰプロトコルスタック単体の構成図である。
【図３】一実施形態に係るサーバ装置の動作フロー図である。
【符号の説明】
【００３９】
１ａ，１ｂ，……  仮想実行環境部
２  プロトコルスタック多重構成部
２ａ，２ｂ，……  ＴＣＰ／ＩＰプロトコルスタック
３  リンク制御部
４  実環境部
５  通信プロトコル部
６  ファイルシステム部
７  コア部
１１  サーバプログラム
１２  システムコール
１３  共有ライブラリ
【図１】
2005100194.tif 000003
【図２】
2005100194.tif 000004
【図３】
2005100194.tif 000005