(57)【要約】クライアント装置１１−ｎと演算機能部４３との間の通信の確立を、ファイアウォール機能部３１を介したクライアント装置１１−ｎとフロントエンドサーバ機能部３３との間のＨＴＴＰによる通信によって得た通信情報を基に行う。そして、クライアント装置１１−ｎはファイアウォールを介さずに演算機能部４３から暗号化されたコンテンツデータをＰ２Ｐでダウンロードする。
2008146328.tif 000002
【特許請求の範囲】
【請求項１】
ファイアウォールと、
前記ファイアウォールを介してクライアント装置と接続する第１のサーバと、
前記ファイアウォールを介さずに前記クライアント装置と接続する第２のサーバと
を有し、
前記第１のサーバが前記ファイアウォールを介して前記クライアント装置と通信を行い、前記第２のサーバとの通信に用いられる通信情報を前記クライアント装置に送信し、
前記クライアント装置が、受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記第２のサーバと通信を行う
サーバシステム。
【請求項２】
前記第１のサーバは、前記第２のサーバのネットワーク上のアドレスを示す前記通信情報を前記クライアント装置に送信する
請求項１に記載のサーバシステム。
【請求項３】
前記第１のサーバは、前記クライアント装置にダウンロードされたクライアントアプリケーションプログラムを起動し、
前記第２のサーバは、前記クライアント装置の前記起動されたクライアントアプリケーションプログラムと通信を行う
請求項１に記載のサーバシステム。
【請求項４】
前記第２のサーバは、前記クライアント装置が実行する前記クライアントアプリケーションプログラムに対応したサーバアプリケーションプログラムを実行する
請求項３に記載のサーバシステム。
【請求項５】
前記第２のサーバは、少なくとも一つの管理プロセッサと、複数の計算実行プロセッサとで前記サーバアプリケーションプログラムを実行する
請求項１に記載のサーバシステム。
【請求項６】
前記第２のサーバは、ネットワーク上のアプリケーション情報を取得し、当該情報を前記クライアント装置に送信し、
前記クライアント装置は、前記第２のサーバから取得した情報を基に、前記クライアントアプリケーションプログラムを取得する
請求項４に記載のサーバシステム。
【請求項７】
前記第１のサーバおよび前記第２のサーバの機能は、同一の回路あるいは異なる処理回路によって実現されている
請求項１に記載のサーバシステム。
【請求項８】
前記クライアント装置と前記第２のサーバとの間の通信時に、ネットワーク上でグローバルに前記第２のサーバを特定するグロバールアドレスと、前記第１のサーバおよび前記第２のサーバ側でローカルに前記第２のサーバを特定するローカルアドレスとの間でアドレス変換を行うアドレス変換手段
をさらに有する請求項１〜７のいずれかに記載のサーバシステム。
【請求項９】
前記第２のサーバは、複数の演算機能モジュールを有し、各演算機能モジュールがアプリケーションプログラムを個別に実行し、
前記第１のサーバは、前記演算機能モジュールの各々に固有のグローバルアドレスおよびポートの組み合わせを割り当て、
前記演算機能モジュールは、自らが実行するアプリケーションプログラムに対応する、グローバルアドレスおよびポートの組み合わせ情報を基に、前記クライアント装置との通信を行う
請求項１〜８のいずれかに記載のサーバシステム。
【請求項１０】
第１のサーバがサーバ側のファイアウォールを介してクライアント装置と通信を行い、前記クライアント装置が第２のサーバとの通信に用いる通信情報を前記クライアント装置に送信し、
前記クライアント装置が、受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さずに前記第２のサーバと通信を行う
通信方法。
【請求項１１】
第１のサーバとのサーバ側のファイアウォールを介した通信に用いられるデータと、第２のサーバとの前記ファイアウォールを介さない通信に用いられるデータとを送受信するインタフェースと、
前記インタフェースを介して、前記第２のサーバとの通信に用いられる通信情報を、前記ファイアウォールを介した通信により前記第１のサーバから受信した場合に、当該受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さない前記第２のサーバとの通信処理を行う処理回路と
を有するコンピュータ。
【請求項１２】
前記処理回路は、同一の回路あるいは異なる回路によって実現されている前記第１のサーバおよび前記第２のサーバと前記通信処理を行う
請求項１１に記載のコンピュータ。
【請求項１３】
サーバ側のファイアウォールを介した第１のサーバとの通信により、第２のサーバとの通信に用いられる通信情報を受信する受信工程と、
前記受信工程で受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さないで前記第２のサーバとの通信を行う通信工程と
をコンピュータに実行させるプログラム。
【請求項１４】
サーバ側のファイアウォールを介した第１のサーバとの通信により、第２のサーバとの通信に用いられる通信情報を受信する受信工程と、
前記受信工程で受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さないで前記第２のサーバとの通信を行う通信工程と
をコンピュータに実行させるプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバとクライアント装置との間で通信を行う場合に用いられるサーバシステム、通信方法、コンピュータ、プログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
例えば、ネットワーク上のコンテンツの販売サイトなどのサーバに端末からアクセスし、購入するコンテンツを指定して電子決済を行った後に、コンテンツデータをダウンロードする場合がある。
このようなシステムにおいて、サーバ側には、単数または複数のファイアウォールが構築されており、サーバと端末との間の通信は全てファイアウォールを介して行われる。
これにより、サーバをネットワーク上のコンピュータからの不正な攻撃から防御している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来のシステムでは、ネットワーク上のコンピュータからの不正な攻撃からサーバを防御できる反面、正当なクライアント装置がサーバからコンテンツデータ等をダウンロードする場合に、ファイアウォールを介すことで応答性が悪いという問題がある。
また、クライアント装置とサーバ間でのアプリケーション構築と実行の柔軟性に欠けるという問題がある。【０００４】
本発明はかかる事情に鑑みてなされたものであり、その目的は、高い安全性と応答性とを兼ね備えたサーバシステム、通信方法、コンピュータ、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【０００５】
上述した従来技術の問題を解決し、上述した目的を達成するために、第１の観点の発明のサーバシステムは、ファイアウォールと、前記ファイアウォールを介してクライアント装置と接続する第１のサーバと、前記ファイアウォールを介さずに前記クライアント装置と接続する第２のサーバとを有し、前記第１のサーバが前記ファイアウォールを介して前記クライアント装置と通信を行い、前記第２のサーバとの通信に用いられる通信情報を前記クライアント装置に送信し、前記クライアント装置が、受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記第２のサーバと通信を行う。
本発明のサーバシステムでは、先ず、第１のサーバが前記ファイアウォールを介してクライアント装置と通信を行い、第２のサーバとの通信に用いられる通信情報を前記クライアント装置に送信する。
そして、前記クライアント装置は、受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記第２のサーバと通信を行う。【０００６】
第２の観点の通信方法は、第１のサーバがサーバ側のファイアウォールを介してクライアント装置と通信を行い、前記クライアント装置が第２のサーバとの通信に用いる通信情報を前記クライアント装置に送信し、前記クライアント装置が、受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さずに前記第２のサーバと通信を行う。【０００７】
第３の観点の発明のコンピュータは、第１のサーバとのサーバ側のファイアウォールを介した通信に用いられるデータと、第２のサーバとの前記ファイアウォールを介さない通信に用いられるデータとを送受信するインタフェースと、前記インタフェースを介して、前記第２のサーバとの通信に用いられる通信情報を、前記ファイアウォールを介した通信により前記第１のサーバから受信した場合に、当該受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さない前記第２のサーバとの通信処理を行う処理回路とを有する。【０００８】
第４の観点の発明のプログラムは、サーバ側のファイアウォールを介した第１のサーバとの通信により、第２のサーバとの通信に用いられる通信情報を受信する受信工程と、前記受信工程で受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さないで前記第２のサーバとの通信を行う通信工程とをコンピュータに実行させる。【０００９】
第５の観点の発明の記録媒体は、サーバ側のファイアウォールを介した第１のサーバとの通信により、第２のサーバとの通信に用いられる通信情報を受信する受信工程と、前記受信工程で受信した前記通信情報を基に、前記第１のサーバとの間の通信プロトコルとは異なる通信プロトコルを基に、前記ファイアウォールを介さないで前記第２のサーバとの通信を行う通信工程とをコンピュータに実行させるプログラムを記録している。
【発明の効果】
【００１０】
本発明によれば、高い安全性と応答性とを兼ね備えたサーバシステム、通信方法、コンピュータ、プログラムおよび記録媒体を提供することにある。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態に係わるネットワークシステム１について説明する。
図１は、本実施形態に係わるネットワークシステム１の全体構成図である。
図１に示すように、ネットワークシステム１は、例えば、クライアント装置１１−ｎ、サーバセンタ２１を有する。ここで、ｎは「１≦ｎ≦Ｎ」の整数である。
本実施形態において、フロントエンドサーバ機能部３３が本発明に用いられる第１のサーバの一例であり、演算機能部４３が本発明に用いられる第２のサーバの一例である。【００１２】
クライアント装置１１−ｎは、例えば、演算機能およびＮＡＴ機能を有する。【００１３】
サーバセンタ２１は、例えば、ファイアウォール機能部３１、フロントエンドサーバ機能部３３、ファイアウォール機能部３５、バックエンドサーバ機能部３７、ファイアウォール機能部３９、ＮＡＴ(Network Address Translation)機能部４１、メディエータ４２および演算機能部４３を有する。【００１４】
ファイアウォール機能部３１は、ネットワーク９を介したクライアント装置１１−ｎとの間の通信においてファイアウォール機能を発揮する。
本実施形態において、ファイアウォール機能とは、ファイアウォールを通過する全ての通信に、予め規定したポリシー（ルール）を適用（強制）する機能を示す。
ファイアウォール機能には、例えば、アクセス制限、アドレス変換、ユーザ認証、ログ収集／解析、コンテンツフィルタリングおよびルーティング等の機能がある。
ファイアウォール機能は、ＯＳ(Operation System)およびアプリケーションの少なくとも一方で実現される。【００１５】
フロントエンドサーバ機能部３３は、ＳＴＵＮ(Simple Traversal of UDP Through NATs)サーバ機能を発揮する。
すなわち、フロントエンドサーバ機能部３３は、ネットワーク９内でユニークなアドレス（グローバルＩＰアドレス）を持つ。
フロントエンドサーバ機能部３３は、ＳＴＵＮ機能により、グローバルＩＰアドレスが割り当てられていない演算機能部４３とサーバセンタ２１内の通信回線を介して通信を行うことで、演算機能部４３に対してグローバルＩＰアドレスを割り当てる。グローバルＩＰアドレスは、例えば、１２８ビットデータである。
フロントエンドサーバ機能部３３は、演算機能部４３に割り当てた上記グローバルＩＰアドレスを接続情報として、クライアント装置１１−ｎに送信する。
演算機能部４３に割り当てた上記グローバルＩＰアドレスは、クライアント装置１１−ｎと演算機能部４３の通信時にＮＡＴ機能部４１によるＮＡＴ機能によって、通信対象の演算機能部４３を特定する内部アドレスとの間で相互に変換される。
なお、フロントエンドサーバ機能部３３と演算機能部４３との間のＳＴＵＮ機能に基づく通信は、サーバシステム２１内のパスを介して行われる。
また、好適には、クライアント装置１１−ｎに対しても、ＮＡＴ機能部４１によるＮＡＴ機能を用いてグローバルＩＰアドレスが適宜割り当てられ、通信に用いられる。
本実施形態において、クライアント装置１１−ｎとフロントエンドサーバ機能部３３との間の通信には、ＨＴＴＰ(HyperText Transfer Protocol)等のプロトコルが用いられる。
本実施形態において、クライアント装置１１−ｎとフロントエンドサーバ機能部３３との間の通信は、クレジット決済等の高いセキュリティが要求される処理に用いられる。【００１６】
ファイアウォール機能部３５は、フロントエンドサーバ機能部３３とバックエンドサーバ機能部３７との間の通信においてファイアウォール機能を発揮する。
バックエンドサーバ機能部３７は、ＳＱＬ等を基にしたデータベースアクセス処理、ＮＦＳ等のファイルシステム共有関連処理等のプログラムを実行する。
バックエンドサーバ機能部３７は、上記プログラムに基づいて、例えば、コンテンツデータや所定のコンテンツ空間データ等を演算機能部４３に送信する。
ファイアウォール機能部３９は、バックエンドサーバ機能部３７と演算機能部４３との間の通信においてファイアウォール機能を発揮する。【００１７】
メディエータ４２は、クライアント装置１１−ｎにアプリケーション情報を提供する。【００１８】
演算機能部４３は、複数の演算機能モジュール４５−１〜４５−ｍを有し、それぞれがアプリケーションプログラムＡＰ−Ｓを実行する。
演算機能部４３は、アプリケーションプログラムＡＰ−Ｓに基づいて、楽曲等のオーディオデータ、アルバムジャケット画像等イメージデータ等のコンテンツデータをクライアント装置１１−ｎに送信する。
また、演算機能部４３は、例えば、所定の空間内での各コンテンツの座標や、書誌事項を示すテキストデータ等をクライアント装置１１−ｎに送信する。
このとき、演算機能部４３からクライアント装置１１−ｎへの送信は、送信データを暗号化して行われる。クライアント装置１１−ｎは、例えば、ファイアウォール機能部３１との間の通信よって暗号鍵を取得し、その暗号鍵を用いて、演算機能部４３との間の通信を行う。
本実施形態において、クライアント装置１１−ｎと演算機能部４３との間の通信には、クライアント装置１１−ｎとファイアウォール機能部３１との通信とは異なるＰ２Ｐ型の通信プロトコルが用いられる。すなわち、演算機能部４３に割り当てた上記グローバルＩＰアドレスを用いて、クライアント装置１１−ｎとの間で直接の通信が行われる。
この直接のＰ２Ｐ通信は、複数のクライアント装置１１−ｎあるいは複数の演算機能部４３に対しても可能である。その場合、相互のアドレス参照は、例えば、相互に全ての参照を保持するＦＣＧ(Fully Connected Graph)方式を用いる。参照をハッシュテーブルに管理しそれを当該ノードに分散させるＤＨＴ(Distributed Hash Table)によるＣｈｏｒｄ方式など，他の方法でももちろん構わない。
演算機能部４３は、ファイアウォール機能部３９を介して、バックエンドサーバ機能部３７が提供するデータベースアクセス処理およびファイルシステム共有関連処理により、コンテンツデータ等を受信する。【００１９】
［クライアント装置１１−ｎ］
クライアント装置１１−ｎは、ゲーム機、パーソナルコンピュータあるいは携帯電話機等の電子機器である。
図２は、図１に示すクライアント装置１１−ｎの機能ブロック図である。
図２に示すように、クライアント装置１１−ｎは、例えば、インタフェース６１、ディスプレイ６２、操作部６３、メモリ６４および処理回路６５を有する。【００２０】
インタフェース６１は、ネットワーク９を介したデータの送受信のためのインタフェースである。
ディスプレイ６２は、処理回路６５が生成した画面情報に応じた画像を表示する。
操作部６３は、キーボードやコントローラなどの操作手段であり、ユーザの操作に応じた操作信号を処理回路６５に出力する。
メモリ６４は、処理回路６５が実行するクライアントアプリケーションプログラムＰＲＧ−Ｔを記憶する。メモリ６４は、半導体メモリの他、光メモリ、光磁気メモリ等のその他の記録媒体でもよい。
処理回路６５は、クライアントアプリケーションプログラムＰＲＧ−Ｔを実行して本実施形態で説明するクライアント装置１１−ｎの処理を統括的に制御する。【００２１】
［フロントエンドサーバ機能部３３］
図３は、図１に示すフロントエンドサーバ機能部３３の機能ブロック図である。
図３に示すように、フロントエンドサーバ機能部３３は、例えば、インタフェース７１、メモリ７４および処理回路７５を有する。【００２２】
インタフェース７１は、ネットワーク９を介したデータの送受信のためのインタフェースである。
メモリ７４は、処理回路７５が実行するサーバアプリケーションプログラムＰＲＧ−ＳＦを記憶する。メモリ７４は、半導体メモリの他、光メモリ、光磁気メモリ等のその他の記録媒体でもよい。
処理回路７５は、サーバアプリケーションプログラムＰＲＧ−ＳＦを実行して本実施形態で説明するフロントエンドサーバ機能部３３の処理を統括的に制御する。
処理回路７５は、サーバアプリケーションプログラムＰＲＧ−ＳＦを実行してフロントエンドサーバ機能部３３の動作を統括的に制御する。【００２３】
［演算機能部４３］
図４は、図１に示す演算機能部４３に複数存在する演算機能モジュール４５−１〜４５−ｍのそれぞれの機能ブロック図である。
図４に示すように、演算機能モジュール４５−１〜４５−ｍは、例えば、インタフェース８１、メモリ８４および処理回路８５を有する。
演算機能モジュール４５−１〜４５−ｍの処理回路８５は、少なくとも一つの管理プロセッサと、複数の計算実行プロセッサとで構成される。上記複数の計算実行プロセッサの処理は、例えば、上記管理プロセッサによって管理される。
ここで、クライアント装置１１−ｎとフロントエンドサーバ機能部３３との間の通信プロトコルとしては、例えば、ＨＴＴＰ等のサーバ主導型のものが用いられる。これに対して、クライアント装置１１−ｎと演算機能部４３との間の通信プロトコルとしては、前述のように、Ｐ２Ｐ型の通信プロトコル等が用いられる。【００２４】
演算機能部４３が例えば複数のクライアント装置１１−ｎのクライアントアプリケーションプログラムＰＲＧ−Ｔと通信しながら処理を行う場合に、上記複数の計算実行プロセッサの各々に、上記複数のクライアントアプリケーションプログラムＰＲＧ−Ｔのうち対応するクライアントアプリケーションプログラムＰＲＧ−Ｔと通信を行うサーバアプリケーションプログラムＰＲＧ−ＳＡを実行させる。
処理回路８５は、例えば、クライアント装置１１−ｎにコンテンツデータ等を送信する場合に、当該コンテンツデータを所定の暗号化鍵で暗号化する。
処理回路８５は、当該暗号化鍵として、例えば、クライアント装置１１−ｎとフロントエンドサーバ機能部３３との間の通信によって特定された暗号鍵を用いる。このようにコンテンツデータを暗号化することで、クライアント装置１１−ｎと演算機能部４３との間の通信が傍受された場合でも、コンテンツデータを保護できる。【００２５】
インタフェース８１は、ネットワーク９を介したデータの送受信のためのインタフェースである。
メモリ８４は、処理回路８５が実行するサーバアプリケーションプログラムＰＲＧ−ＳＡを記憶する。メモリ８４は、半導体メモリの他、光メモリ、光磁気メモリ等のその他の記録媒体でもよい。
処理回路８５は、サーバアプリケーションプログラムＰＲＧ−ＳＡを実行して本実施形態で説明する演算機能部４３の動作を統括的に制御する。【００２６】
［クアイアント・サーバの接続動作］
図５は、クアイアント・サーバの接続動作を説明するためのフローチャートである。
以下、図５に示す各ステップについて説明する。
ステップＳＴ１１：
クライアント装置１１−ｎの処理回路６５は、例えば、ポータルサイトから、ネットワーク９およびファイアウォール機能部３１を介して、フロントエンドサーバ機能部３３と通信を行い、フロントエンドサーバ機能部３３のＳＴＵＮサーバ機能により、メディエータ４２との接続情報を取得する。
当該接続情報は、例えば、メディエータ４２に割り当てられたグローバルＩＰアドレスやポート等の情報である。
上記通信は、ＨＴＴＰ等の通信プロトコルを基に、ファイアウォール機能部３１を介してセキュアな状態で行われる。【００２７】
ステップＳＴ１２：
クライアント装置１１−ｎの処理回路６５は、ステップＳＴ１１で取得した接続情報を基に、ＮＡＴ機能部４１を介して、メディエータ４２にアクセスを行い、メディエータ４２からアプリケーション情報を受信する。
なお、メディエータ４２は、演算機能部４３が実行するサーバアプリケーションプログラムに対応したアプリケーション情報をクライアント装置１１−ｎに送信する。当該アプリケーション情報は、クライアント装置１１−ｎが利用可能なアプリケーションの内容の紹介等である。
ステップＳＴ１３：
クライアント装置１１−ｎの処理回路６５は、ステップＳＴ１２で取得したアプリケーション情報を基に、所定のサイトからクライアントアプリケーションプログラムＰＲＧ−Ｔをダウンロードする。
なお、クライアント装置１１−ｎは、フロントエンドサーバ機能部３３あるいはメディエータ４２からクライアントアプリケーションプログラムＰＲＧ−Ｔをダウンロードしてもよい。【００２８】
ステップＳＴ１４：
クライアント装置１１−ｎの処理回路６５は、ステップＳＴ１３でダウンロードしたクライアントアプリケーションプログラムＰＲＧ−Ｔを実行する。
クライアント装置１１−ｎの処理回路６５は、上記実行するクライアントアプリケーションプログラムＰＲＧ−Ｔに基づいて、ネットワーク９およびファイアウォール機能部３１を介して、フロントエンドサーバ機能部３３にアクセスを行う。
そして、クライアント装置１１−ｎの処理回路６５は、フロントエンドサーバ機能部３３のＳＴＵＮサーバ機能により、演算機能部４３のグローバルＩＰアドレスおよびポート情報を取得して、演算機能部４３との間の接続を確立する。
なお、演算機能部４３は、複数の演算機能モジュール４５−１〜４５−ｍを有し、各演算機能モジュール４５−１〜４５−ｍがサーバアプリケーションプログラムを個別に実行する。このとき、上記ＳＴＵＮ機能により、各演算機能モジュール４５−１〜４５−ｍに固有のＩＰアドレスおよびポートの組み合わせを割り当て、演算機能モジュール４５−１〜４５−ｍが自らが実行するアプリケーションプログラムに対応する、ＩＰアドレスおよびポートの組み合わせ情報を基に，クライアント装置１１−ｎとの通信を行う。
なお、クライアント装置１１−ｎおよびそれと通信を行う演算機能部４３は、当該ステップＳＴ１４の通信により、クライアント装置１１−ｎと演算機能部４３との間の通信に用いる暗号鍵を取得あるいは特定する。【００２９】
ステップＳＴ１５：
クライアント装置１１−ｎの処理回路６５は、ステップＳＴ１４で確立した接続を基に、演算機能部４３と通信を行う。当該通信では、前述のように、ＨＴＴＰ以外のＰ２Ｐ型の通信プロトコルが用いられる。
このとき、演算機能部４３は、クライアント装置１１−ｎに対応したサーバアプリケーションプログラムＰＲＧ−ＳＡを実行する。当該サーバアプリケーションプログラムＰＲＧ−ＳＡは、例えば、フロントエンドサーバ機能部３３によって起動される。当該起動されるタイミングは、クライアント装置１１−ｎがクライアントアプリケーションプログラムＰＲＧ−Ｔをダウンロードしたタイミング、あるいは起動したタイミングである。
クライアント装置１１−ｎは、当該通信により、演算機能部４３から暗号化されたコンテンツデータをダウロードし、キャッシュメモリに書き込む。
クライアント装置１１−ｎは、ダウンロード時あるいは使用時に、フロントエンドサーバ機能部３３との間の通信で取得した暗号鍵を用いて、コンテンツデータを復号する。【００３０】
［オート（自動）クルーズ動作例］
以下、上述したコンテンツデータのダウンロードが採用されるオートクルーズ動作例について説明する。
オートクルーズ動作とは、例えば、所定の空間内にコンテンツデータの属性を基に当該コンテンツデータの座標を規定し、当該空間内でユーザ座標（後述するカメラ位置）を自動移動させ、ユーザ座標に対応したコンテンツデータを再生等する動作である。当該オートクルーズ動作においては、空間内でのユーザ座標の移動に伴い、その座標に対応したコンテンツデータをダウンロードするものである。なお、空間内におけるユーザ座標の移動は、オートクルーズ（自動）および手動を切り換えてもよいし、何れか一方のみでもよい。
図６は、図１に示すネットワークシステム１において、オートクルーズ動作をする場合の機能ブロック図である。
図６に示すように、クライアント装置１１−ｎは、例えば、クルーズ管理部１０１、キャッシュ管理部１０３、ローカルキャッシュ１０５、自動クルーズ処理部１０７、ビューア１０９、オーディオ管理部１１１およびレンダリング部１１３を機能として有する。
図６に示すクライアント装置１１−ｎの上記機能は、図２に示す処理回路６５がクライアントアプリケーションプログラムＰＲＧ−Ｔを実行して実現される。
また、サーバセンタ２１内の演算機能部４３は、例えば、空間サーバ機能１２１、空間データベース１２２およびコンテンツデータベース１２３を機能として有する。
図６に示す演算機能部４３の上記機能は、図４に示す処理回路８５がサーバアプリケーションプログラムＰＲＧ−ＳＡを実行して実現される。【００３１】
図７は、上記オートクルーズ動作を説明するためのフローチャートである。
ステップＳＴ２１：
クライアント装置１１−ｎの処理回路６５は、例えば、図５を用いて前述した処理により、サーバセンタ２１内の演算機能部４３との間に接続が確立したか否かを判断し、確立したと判断した場合にはステップＳＴ２２に進む。【００３２】
ステップＳＴ２２：
クライアント装置１１−ｎの処理回路６５は、図５に示すステップＳＴ１３でダウンロードしたクライアントアプリケーションプログラムＰＲＧ−Ｔを起動する。
処理回路６５によるクライアントアプリケーションプログラムＰＲＧ−Ｔの起動は、例えば、フロントエンドサーバ機能部３３からの命令によって行われてもよい。
これにより、図６に示すクライアント装置１１−ｎ内の各機能ブロックが起動される。
ステップＳＴ２３：
図６に示すクルーズ管理部１０１が、空間サーバ１２１から空間データおよびコンテンツデータを受信する。空間サーバ１２１は、空間データベース１２２から空間データを取得し、コンテンツデータベース１２３からコンテンツデータを取得する。
具体的には、図４に示す演算機能部４３の処理回路８５が、サーバアプリケーションプログラムＰＲＧ−ＳＡに基づいて、バックエンドサーバ機能部３７からファイアウォール機能部３９を介して、空間データおよびコンテンツデータを受信し、これを暗号化する。
そして、処理回路８５は、上記暗号化したコンテンツデータを、図５のステップＳＴ１４で確立した接続を基に、クライアント装置１１−ｎに送信する。
クライアント装置１１−ｎのクルーズ管理部１０１は、受信した空間データおよびコンテンツデータを、キャッシュ管理部１０３の機能を基にローカルキャッシュ１０５に書き込む。【００３３】
ステップＳＴ２４：
クライアント装置１１−ｎのビューア１０９が、ローカルキャッシュ１０５から空間データおよびコンテンツデータを読み出して、それに応じたビュー（画面）をディスプレイ６２に表示する。
ステップＳＴ２５：
クライアント装置１１−ｎのクルーズ管理部１０１は、次に使用する空間データおよびコンテンツデータを、空間サーバ機能１２１から取得し、これをローカルキャッシュ１０５に書き込む。【００３４】
ステップＳＴ２６：
クライアント装置１１−ｎのクルーズ管理部１０１は、図２に示す操作部６３から一定期間、操作信号を発生していない（ユーザによる操作が一定期間行われていない）と判断するとステップＳＴ２７に進み、そうでない場合はステップＳＴ２８に進む。
ステップＳＴ２７：
クルーズ管理部１０１は、自動クルーズ処理部１０７による制御に切り換える。【００３５】
ステップＳＴ２８：
クライアント装置１１−ｎのビューア１０９は、自動クルーズ処理部１０７によって決定されたカメラ位置（ビューとして表示するコンテンツ空間内の対象）に対応したコンテンツデータをローカルキャッシュ１０５から読み出してレンダリング部１１３でイメージ再生する。
オーディオ管理部１１１は、上記カメラ位置に対応したコンテンツデータのオーディオデータの再生を行う。【００３６】
ステップＳＴ２９：
クライアント装置１１−ｎのクルーズ管理部１０１は、移動したカメラ位置に応じて、次に使用する空間データおよびコンテンツデータを、空間サーバ機能１２１から取得し、これをローカルキャッシュ１０５に書き込む。
その後、クルーズ管理部１０１は、ステップＳＴ２４の処理に戻る。【００３７】
［クライアント追加時の動作例］
図８は、図１に示すネットワークシステム１に新たなクライアント装置１１−ｎが追加された場合の動作例を説明するためのフローチャートである。
ステップＳＴ３１：
フロントエンドサーバ機能部３３の処理回路７５は、クライアント装置１１−ｎからの要求により、新たなクライアント装置１１−ｎが追加されたと判断すると、ステップＳＴ３２に進む。【００３８】
ステップＳＴ３２：
フロントエンドサーバ機能部３３の処理回路７５は、追加されたクライアント装置１１−ｎが実行するクライアントアプリケーションプログラムＰＲＧ−Ｃに対応したサーバアプリケーションプログラムＰＲＧ−ＳＦを特定する。
そして、処理回路７５は、上記特定したサーバアプリケーションプログラムＰＲＧ−ＳＦを演算機能部４３に起動させる。【００３９】
ステップＳＴ３３：
演算機能部４３は、ステップＳＴ３２で起動したサーバアプリケーションプログラムＰＲＧ−ＳＦを基に、クライアント装置１１−ｎと通信を行う。【００４０】
［通信の切り換え動作例］
クライアント装置１１−ｎと演算機能部４３とがＰ２Ｐで通信中に例えば決済等の処理が発生すると、通信がファイアウォール３１を介したクライアント装置１１−ｎとフロントエンドサーバ機能部３３との間の通信に切り換わる。
そして、クライアント装置１１−ｎとフロントエンドサーバ機能部３３との間のセキュアな通信により決済が終了すると、再びクライアント装置１１−ｎと演算機能部４３との間のＰ２Ｐ通信に切り替わり、決済済みの暗号化されたコンテンツデータを演算機能部４３からクライアント装置１１−ｎにダウンロードする。【００４１】
以上説明したように、ネットワークシステム１によれば、クライアント装置１１−ｎはファイアウォールを介さずに演算機能部４３から暗号化されたコンテンツデータをダウンロードするため、応答性がよい。
また、ネットワークシステム１によれば、クライアント装置１１−ｎと演算機能部４３との間の通信の確立を、ファイアウォール機能部３１を介したクライアント装置１１−ｎと演算機能部４３との間の通信によって得た通信情報を基に行うため、手続きの安全性を高めることができる。
また、ネットワークシステム１によれば、クライアント装置１１−ｎが実行するクライアントアプリケーションプログラムＰＲＧ−Ｔに対応したサーバアプリケーションプログラムＰＲＧ−ＳＡを演算機能部４３が実行するため、アプリケーション構成の柔軟性が高まる。【００４２】
また、ネットワークシステム１によれば、フロントエンドサーバ機能部３３と演算機能部４３とを個別に機能させることで、複数のクライアント装置１１−ｎとサーバを含めたネットワークとしてのアプリケーションの構築が容易になる。すなわち、独立のノードとその機能があってそれらが接続されるというのではなく、クライアント装置１１−ｎ上の機能とサーバ上の機能を含めたアプリケーションが組み易い。【００４３】
なお、ネットワークシステム１は、ネットワークＯＳあるいはネットワークミドルウェアとして機能するサーバ装置としてサーバセンタ２１を実現できる。
サーバセンタ２１は、内部プロセッサ間のネットワーク接続と，従来型サーバネットワーク接続を組み合わせて，内部プロセッサネットワークを効果的に実現したものである。【００４４】
本発明は上述した実施形態には限定されない。
すなわち、当業者は、本発明の技術的範囲またはその均等の範囲内において、上述した実施形態の構成要素に関し、様々な変更、コンビネーション、サブコンビネーション、並びに代替を行ってもよい。
例えば、上述した実施形態では、ファイアウォール機能部３１がＳＴＵＮ機能により演算機能部４３にグローバルＩＰアドレスを割り当てる場合を例示したが、ＳＴＵＮ機能以外の機能により割り当てを行ってもよい。
上述した実施形態では、演算機能部４３がバックエンドサーバ機能部３７からファイアウォール機能部３９を介してコンテンツデータを受信する場合を例示したが、ファイアウォール機能部３９は設けなくてもよいし、あるいはサーバセンタ２１以外のサーバからコンテンツデータをダウンロードしてもよい。【００４５】
また、図１に示すサーバセンタ２１の各機能は、機能モジュールとしてそれぞれが存在すれば、それらの機能が同一あるいは異なるハードウェアの何れで実現されているかは問わない。例えば、図９に示すように、図３に示すフロントエンドサーバ機能部３３および図４に示す演算機能部４３の双方の機能を実現するサーバ機能部２００を設けてもよい。この場合には、サーバ機能部２００のメモリ２７４に前述したプログラムＰＲＧ−ＳＦ，ＰＲＧ−ＳＡを記憶し、これらのプログラムを処理回路２７５が実行することで、インタフェース２７１を介してクライアント装置１１−１と通信を行い、前述したフロントエンドサーバ機能部３３および演算機能部４３の双方の機能を発揮する。
【産業上の利用可能性】
【００４６】
本発明は、ファイアウォールを介した通信を行う通信システムに適用可能である。
【図面の簡単な説明】
【００４７】
【図１】図１は、本実施形態に係わるネットワークシステムの全体構成図である。
【図２】図２は、図１に示すクライアント装置の機能ブロック図である。
【図３】図３は、図１に示すフロントエンドサーバ機能部の機能ブロック図である。
【図４】図４は、図１に示す演算機能部に複数存在する演算機能モジュールそれぞれの機能ブロック図である。
【図５】図５は、図１に示すクライアント・サーバの接続動作を説明するためのフローチャートである。
【図６】図６は、図１に示すネットワークシステにおいて、オートクルーズ動作をする場合の機能ブロック図である。
【図７】図７は、オートクルーズ動作を説明するためのフローチャートである。
【図８】図８は、図１に示すネットワークシステムに新たなクライアント装置が追加された場合の動作例を説明するためのフローチャートである。
【図９】図９は、図１に示すネットワークシステムのサーバ機能の変形例を説明するための図である。
【符号の説明】
【００４８】
１１−ｎ…クライアント装置、２１…サーバセンタ、３１…ファイアウォール機能部、３３…フロントエンドサーバ機能部、３５…ファイアウォール機能部、３７…バックエンドサーバ機能部、３９…ファイアウォール機能部、４１…ＮＡＴ機能部、４２…メディエータ、４３…演算機能部、４５−１〜４５−ｍ…演算機能モジュール、６１…インタフェース、６２…ディスプレイ、６３…操作部、６４…メモリ、６５…処理回路、７１…インタフェース、７４…メモリ、７５…処理回路、８１…インタフェース、８４…メモリ、８５…処理回路、１０１…クルーズ管理部、１０３…キャッシュ管理部、１０５…ローカルキャッシュ、１０７…自動クルーズ処理部、１０９…ビューア、１１１…オーディオ管理部、１１３…レンダリング部
【図１】
2008146328.tif 000003
【図２】
2008146328.tif 000004
【図３】
2008146328.tif 000005
【図４】
2008146328.tif 000006
【図５】
2008146328.tif 000007
【図６】
2008146328.tif 000008
【図７】
2008146328.tif 000009
【図８】
2008146328.tif 000010
【図９】
2008146328.tif 000011
【国際調査報告】
2008146328.tif 000012
2008146328.tif 000013
2008146328.tif 000014