(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2022-01-18
(45)【発行日】2022-01-26
(54)【発明の名称】情報処理方法、情報処理システム及びコンピュータプログラム
(51)【国際特許分類】
H04L 61/2592 20220101AFI20220119BHJP
【FI】
H04L61/2592
(21)【出願番号】P 2020181480
(22)【出願日】2020-10-29
【審査請求日】2020-10-29
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】519117499
【氏名又は名称】株式会社C-RISE
(73)【特許権者】
【識別番号】591275481
【氏名又は名称】株式会社アイ・オー・データ機器
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】村井 将則
(72)【発明者】
【氏名】畑野 篤
【審査官】野元 久道
(56)【参考文献】
【文献】国際公開第2009/093308(WO,A1)
【文献】特開2015-231225(JP,A)
【文献】特開2009-010606(JP,A)
【文献】国際公開第2017/150642(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00
(57)【特許請求の範囲】
【請求項1】
グローバルネットワークに接続され、第1通信装置から受け付けた通信を転送する第1転送装置と、プライベートネットワークに接続される第2通信装置との通信を、前記プライベートネットワークに接続される第2転送装置を介して転送する情報処理方法であって、
前記第1転送装置は、
前記第2転送装置からコネクションの確立要求を取得し、
取得した前記コネクションの確立要求に応じて前記第1転送装置と前記第2転送装置との間のコネクションを確立し、
確立された前記コネクションを用いて、前記第2通信装置の特定ポートを転送先として指定するための転送先情報と、前記第1通信装置からの通信を受け付ける前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの
マッピングにより前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する通信トンネルを形成するための通信トンネル要求と、を含む転送要求を前記第2転送装置へ送信し、
送信した前記転送要求に応じて
前記第2転送装置から送信される応答を受信することにより、前記第1転送装置の受付ポートと
前記転送先情報にて指定される前記第2通信装置の特定ポートとをマッピングする前記通信トンネルを形成し、
形成した前記通信トンネルを通じて、前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する
ことにより、前記第1通信装置は、前記通信トンネルにより前記第2通信装置の特定ポートとマッピングされている前記第1転送装置の受付ポートにアクセスすることにより前記第1転送装置及び前記第2転送装置を介して前記第2通信装置の特定ポートにアクセスする
情報処理方法。
【請求項2】
前記第2転送装置は、前記第2通信装置を識別するための識別情報を記憶しており、
前記第1転送装置は、前記第2通信装置を識別するための前記識別情報と、
前記第2通信装置の特定ポートを含む前記第2通信装置の特定ポートを転送先として指定するための転送先情報と
、前記通信トンネルにより前記第2通信装置の特定ポートとマッピングされる前記第1転送装置の受付ポートとを関連付けて記憶しており、
前記第1転送装置は、前記第2転送装置から前記コネクションの確立要求と前記第2通信装置を識別するための前記識別情報とを関連付けて取得し、
取得した前記識別情報に関連付けられる前記転送先情報
の前記第2通信装置の特定ポートと、前記第1転送装置の受付ポートとに基づき、
前記通信トンネル要求を含む前記第2通信装置の特定ポートを転送先として指定する前記転送要求を前記第2転送装置へ送信
し、
前記通信トンネルを確立する際前記第1転送装置の受付ポートを開放する
請求項1に記載の情報処理方法。
【請求項3】
前記識別情報は、前記第2通信装置のサービス毎に異なる識別キーを含む
請求項2に記載の情報処理方法。
【請求項4】
前記転送先情報は、前記第2通信装置を指定するためのIPアドレス又はホスト名と、
前記第2通信装置におけるサービスを指定するためのポート番号又はプロトコルとを含み、
前記転送先情報に基づき、転送先の前記第2通信装置及び前記第2通信装置におけるサービスを指定する前記転送要求を前記第2転送装置へ送信する
請求項2
又は請求項3に記載の情報処理方法。
【請求項5】
前記転送先として指定される前記第2通信装置又は前記第2通信装置における特定ポートへの転送可否を判定するための可否情報を記憶し、
記憶した前記可否情報による判定結果に基づき、前記転送要求に対する許可応答を出力し、
出力した前記許可応答に応じて前記通信トンネルを形成する
請求項1から請求項
4のいずれか1項に記載の情報処理方法。
【請求項6】
前記第1転送装置は、複数の前記第1通信装置と通信可能に接続され、
複数の前記第1通信装置から前記受付ポートに対する通信をそれぞれ受け付け、
単一の前記通信トンネルを通じて、複数の前記第1通信装置から受け付けた通信をそれぞれ転送する
請求項1から請求項
5のいずれか1項に記載の情報処理方法。
【請求項7】
前記第1転送装置は、複数の前記第1通信装置と通信可能に接続され、
複数の前記第1通信装置から前記受付ポートに対する通信をそれぞれ受け付け、
受け付けた複数の前記第1通信装置から前記受付ポートに対する通信それぞれに応じて、単一の前記コネクションを用いて複数の前記転送要求を前記第2転送装置へ送信し、
複数の前記転送要求に応じてそれぞれ形成される各通信トンネルを通じて、前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信をそれぞれ転送する
請求項1から請求項
6のいずれか1項に記載の情報処理方法。
【請求項8】
前記コネクションは第1コネクション及び第2コネクションを含み、
前記第1コネクションは、前記転送要求を送信する前記第1転送装置と前記第2転送装置との間で確立され、
前記第2コネクションは、前記通信トンネルを形成する前記第1転送装置と前記第2転送装置との間で確立され、
前記第1コネクションを用いて前記転送要求を送信する前記第1転送装置から前記第2転送装置へ前記転送要求を送信し、
前記第2コネクションを用いて、前記通信トンネルを形成する前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する前記通信トンネルを形成する
請求項1から請求項
7のいずれか1項に記載の情報処理方法。
【請求項9】
前記第1転送装置はブラウザを備える前記第1通信装置と通信可能に接続され、
前記第2通信装置はウェブサーバと通信可能に接続されるプロキシサーバであって、
前記第1転送装置は、前記ウェブサーバにアクセスする前記ブラウザの通信を受信し、
前記通信トンネルを通じて前記ブラウザの通信を前記プロキシサーバに転送し、前記プロキシサーバを介して前記ウェブサーバにアクセスする
請求項1から請求項
8のいずれか1項に記載の情報処理方法。
【請求項10】
前記コネクションは、Websocketによるものである
請求項1から請求項
9のいずれか1項に記載の情報処理方法。
【請求項11】
複数の前記第1転送装置と複数の前記第2転送装置との間で複数の前記コネクションがそれぞれ確立され、
各コネクションを確立する前記第1転送装置と前記第2転送装置とを対応付けて記憶する接続情報を複数の前記第1転送装置間で共有し、
複数の前記第1転送装置の内いずれか1つの第1転送装置が、複数の前記第2転送装置の内いずれか1つの第2転送装置に接続される前記第2通信装置の特定ポートを宛先とする接続要求を前記第1通信装置から受け付け、
受け付けた前記接続要求に基づき、前記接続情報を参照して前記接続要求に係る第2通信装置と接続される前記いずれか1つの第2転送装置とコネクションを確立する他の第1転送装置を特定し、
特定した前記他の第1転送装置へ前記第1通信装置をリダイレクトする
請求項1から請求項
10のいずれか1項に記載の情報処理方法。
【請求項12】
前記第2通信装置は、ネットワークストレージ又はウェブカメラである
請求項1から請求項
11のいずれか1項に記載の情報処理方法。
【請求項13】
グローバルネットワークに接続され、第1通信装置から受け付けた通信を転送する第1転送装置と、プライベートネットワークに接続される第2転送装置とを含み、前記第1転送装置と前記プライベートネットワークに接続される第2通信装置との通信を、前記第2転送装置を介して転送する情報処理システムであって、
前記第1転送装置は、
前記第2転送装置からコネクションの確立要求を取得する取得部と、
前記取得部が取得した前記コネクションの確立要求に応じて前記第1転送装置と前記第2転送装置との間のコネクションを確立する確立部と、
前記確立部が確立した前記コネクションを用いて、前記第2通信装置の特定ポートを転送先として指定するための転送先情報と、前記第1通信装置からの通信を受け付ける前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの
マッピングにより前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する通信トンネルを形成するための通信トンネル要求と、を含む転送要求を前記第2転送装置へ送信する送信部と、
前記送信部が送信した前記転送要求に応じて
前記第2転送装置から送信される応答を受信することにより、前記第1転送装置の受付ポートと
前記転送先情報にて指定される前記第2通信装置の特定ポートとをマッピングする前記通信トンネルを形成する形成部と、
前記形成部が形成した前記通信トンネルを通じて、前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する転送部とを備え、
前記第1通信装置は、前記通信トンネルにより前記第2通信装置の特定ポートとマッピングされている前記第1転送装置の受付ポートにアクセスすることにより前記第1転送装置及び前記第2転送装置を介して前記第2通信装置の特定ポートにアクセスする
情報処理システム。
【請求項14】
グローバルネットワークに接続されるコンピュータに、
プライベートネットワークに接続される転送装置からコネクションの確立要求を取得し、
取得した前記コネクションの確立要求に応じて前記コンピュータと前記転送装置との間のコネクションを確立し、
確立した前記コネクションを用いて、前記プライベートネットワークに接続される第2通信装置の特定ポートを転送先として指定するための転送先情報と、第1通信装置からの通信を受け付ける前記コンピュータの受付ポートと前記第2通信装置の特定ポートとの
マッピングにより前記コンピュータの受付ポートと前記第2通信装置の特定ポートとの通信を転送する通信トンネルを形成するための通信トンネル要求と、を含む転送要求を前記転送装置へ送信し、
送信した前記転送要求に応じて
前記転送装置から送信される応答を受信することにより、前記コンピュータの受付ポートと
前記転送先情報にて指定される前記第2通信装置の特定ポートとをマッピングする前記通信トンネルを形成し、
形成した前記通信トンネルを通じて、前記コンピュータの受付ポートと前記第2通信装置の特定ポートとの通信を転送する
ことにより、前記第1通信装置は、前記通信トンネルにより前記第2通信装置の特定ポートとマッピングされている前記コンピュータの受付ポートにアクセスすることにより前記コンピュータ及び前記転送装置を介して前記第2通信装置の特定ポートにアクセスする
処理を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、情報処理方法、情報処理システム及びコンピュータプログラムに関する。
【背景技術】
【0002】
通常、インターネット等のグローバルネットワークと、オフィスや宅内等のプライベートネットワークとの間にはルータ等の中継機器が設置され、中継機器によりグローバルネットワークへ接続する際に用いられるグローバルIPアドレスからプライベートネットワーク側で用いられるプライベートIPアドレスへのネットワークアドレス変換(Network Address Translation :NAT)が行なわれている。このため、グローバルネットワーク上の装置がプライベートネットワーク内の装置に接続する場合においては、いわゆるNAT越えを行う必要がある。
【0003】
NAT越えを行う技術として、従来、静的IPマスカレードによるポートフォワーディング(例えば、特許文献1参照)が使用されている。ポートフォワーディングでは、トンネル機能等を使う事により、グローバルネットワーク上のグローバルサーバの特定ポートと、プライベートネットワーク内のローカルサーバの特定ポートとをマッピングする。これにより、グローバルサーバのポートに届いたデータをトンネル経由でローカルサーバのマッピングされたポートに転送することができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ポートフォワーディングでは、プライベートネットワーク側でポートマッピングの設定を行う必要があり、複雑な手順が必要とされるという問題がある。
【0006】
本開示の目的は、容易な方法でグローバルネットワーク上の装置からプライベートネットワーク内の特定の装置に通信することが可能な情報処理方法等を提供することにある。
【課題を解決するための手段】
【0007】
本開示の一態様に係る情報処理方法は、グローバルネットワークに接続され、第1通信装置から受け付けた通信を転送する第1転送装置と、プライベートネットワークに接続される第2通信装置との通信を、前記プライベートネットワークに接続される第2転送装置を介して転送する情報処理方法であって、前記第1転送装置は、前記第2転送装置からコネクションの確立要求を取得し、取得した前記コネクションの確立要求に応じて前記第1転送装置と前記第2転送装置との間のコネクションを確立し、確立された前記コネクションを用いて、前記第2通信装置の特定ポートを転送先として指定する転送要求を前記第2転送装置へ送信し、送信した前記転送要求に応じて、前記第1通信装置からの通信を受け付ける前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する通信トンネルを形成し、形成した前記通信トンネルを通じて、前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する。
【発明の効果】
【0008】
本開示によれば、容易な方法でグローバルネットワーク上の装置からプライベートネットワーク内の特定の装置に通信することができる。
【図面の簡単な説明】
【0009】
【
図1】第1実施形態における情報処理システムの概要を示す図である。
【
図2】第1実施形態における情報処理システムの各装置の内部構成を示すブロック図である。
【
図3】転送情報DBのレコードレイアウトを示す概念図である。
【
図4】識別情報DBのレコードレイアウトを示す概念図である。
【
図5】情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【
図6】第2実施形態における情報処理システムの各装置の内部構成を示すブロック図である。
【
図7】可否情報DBのレコードレイアウトを例示する説明図である。
【
図8】第2実施形態における情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【
図9】第3実施形態における情報処理システムの概要を示す図である。
【
図10】第3実施形態における情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【
図11】第3実施形態における情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【
図12】第4実施形態における情報処理システムの概要を示す図である。
【
図13】接続情報DBのレコードレイアウトを示す概念図である。
【
図14】第4実施形態における情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【
図15】第4実施形態における情報処理システムにおいて実行される操作処理の手順の一例を示すシーケンス図である。
【
図16】第5実施形態における情報処理システムの概要を示す図である。
【
図17】第6実施形態における情報処理システムの概要を示す図である。
【
図18】第7実施形態における情報処理システムの概要を示す図である。
【発明を実施するための形態】
【0010】
本発明をその実施の形態を示す図面を参照して具体的に説明する。
【0011】
(第1実施形態)
図1は、第1実施形態における情報処理システム100の概要を示す図である。情報処理システム100は、転送サーバ1と転送クライアント2とを含む。転送サーバ1は、グローバルIPアドレスによる通信ネットワークであるグローバルネットワークN1に接続されるよう構成されている。グローバルネットワークN1は、例えばインターネットである。転送サーバ1は、当該グローバルネットワークN1に接続されるクライアント装置3と通信可能に接続され、クライアント装置3との間でデータの送受信が可能である。転送クライアント2は、プライベートIPアドレスによるLAN(Local Area Network)等のプライベートネットワークN2に接続されるよう構成されている。転送クライアント2は、プライベートネットワークN2に接続されるサーバ4と通信可能に接続され、サーバ4との間でデータの送受信が可能である。転送クライアント2及びサーバ4は、中継装置5を介してグローバルネットワークN1に接続される。
【0012】
転送サーバ1は、例えばサーバコンピュータである。転送サーバ1は、クライアント装置3から送信される通信データを受信し、受信した通信データをプライベートネットワークN2内の転送クライアント2を介してサーバ4へ転送する第1転送装置に相当する。クライアント装置3は、例えばサーバコンピュータ又はパーソナルコンピュータ等の情報処理装置である。クライアント装置3は、スマートフォン又はタブレット端末等であってもよい。クライアント装置3は、転送サーバ1及び転送クライアント2を介してサーバ4と通信する第1通信装置に相当する。
【0013】
転送クライアント2は、中継装置5を介して転送サーバ1から通信データを受信し、受信した通信データをプライベートネットワークN2を介してサーバ4へ転送する第2転送装置に相当する。転送クライアント2は、例えばサーバコンピュータである。サーバ4は、クライアント装置3から送信される通信データを受信し、クライアント装置3の要求への応答を出力する。サーバ4は、転送サーバ1及び転送クライアント2を介してクライアント装置3と通信する第2通信装置に相当する。サーバ4は、例えばウェブサーバ、ファイルサーバ、APIサーバ、プロキシサーバ等であり、ウェブコンテンツ提供、ファイル転送、API提供、通信中継等のサービスを提供する。
【0014】
中継装置5は、プライベートネットワークN2とグローバルネットワークN1との間の通信を中継する中継装置5であり、例えばルータ、ゲートウェイ等である。中継装置5は、プライベートネットワークN2でのみ通用するプライベートIPアドレスと、グローバルネットワークN1で使用されるグローバルIPアドレスとを相互に変換するNAT(Network Address Translation )又はNAPT(Network Address Port Translation)機能を備える。
【0015】
なお、転送クライアント2とサーバ4とが接続されるプライベートネットワークN2は同一セグメント内であるものに限定されない。例えば、プライベートネットワークN2は、異なるセグメントのネットワークであってもよく、VPN(Virtual Private Network )で接続された別拠点のプライベートネットワークであってもよい。
【0016】
第1実施形態における情報処理システム100の転送方法の概要を説明する。情報処理システム100では、初めに転送クライアント2からの要求に応じて、転送クライアント2と転送サーバ1との間での通信のためのコネクション6が確立される。転送サーバ1は、コネクション6を用いて、プライベートネットワークN2内のサーバ4の特定ポートを転送先として指定する転送要求を転送クライアント2へ送信する。転送要求に応じて、転送サーバ1の受付ポートと、指定されたサーバ4の特定ポートとをマッピングする通信回路、すなわち通信トンネルが確立される。以降、クライアント装置3から転送サーバ1の受付ポートへ送信された通信データは、通信トンネルを用いて、転送クライアント2を介してプライベートネットワークN2内のサーバ4の特定ポートへ転送される。グローバルネットワークN1上のクライアント装置3は、プライベートネットワークN2内の特定サーバ4に対して、任意のタイミングでアクセスすることができる。
【0017】
このような情報処理システム100の構成及び詳細な処理内容について以下に説明する。
【0018】
図2は、第1実施形態における情報処理システム100の各装置の内部構成を示すブロック図である。転送サーバ1は、制御部10、記憶部11及び通信部12を備える。転送サーバ1は複数のコンピュータからなるマルチコンピュータであってもよく、ソフトウェアによって仮想的に構築された仮想マシンであってもよい。
【0019】
制御部10は、一又は複数のCPU(Central Processing Unit )又はGPU(Graphics Processing Unit)を用いたプロセッサであり、内蔵するROM(Read Only Memory)及びRAM(Random Access Memory)等のメモリを用い、各構成部を制御して処理を実行する。記憶部11は、ハードディスク、SSD(Solid State Drive )等の記憶装置を含む。記憶部11には、プログラム1Pを含む制御部10が参照するプログラム及びデータが記憶されている。制御部10は、プログラム1Pに基づき、後述する通信データの転送に関する処理を実行する。通信部12は、グローバルネットワークN1を介した通信を実現する通信デバイスである。
【0020】
記憶部11に記憶されるプログラム1Pは、当該プログラム1Pを読み取り可能に記録した非一時的な記録媒体1Aにより提供されてもよい。記録媒体1Aは、例えば、CD-ROM、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、マイクロSDカード、コンパクトフラッシュ(登録商標)などの可搬型メモリである。この場合、制御部10は、不図示の読取装置を用いて記録媒体1Aからプログラム1Pを読み取り、読み取ったプログラム1Pを記憶部11に記憶する。また、記憶部11に記憶されるプログラム1Pは、通信部12を介した通信により提供されてもよい。この場合、制御部10は、通信部12を通じてプログラム1Pを取得し、取得したプログラム1Pを記憶部11に記憶する。なお記憶部11は、複数の記憶装置により構成されていてもよく、転送サーバ1に接続された外部記憶装置であってもよい。
【0021】
また、記憶部11には、転送情報DB(Data Base :データベース)111が記憶されている。
図3は、転送情報DB111のレコードレイアウトを示す概念図である。転送情報DB111は、通信データの転送を実行管理するための情報を格納するデータベースである。転送情報DB111は、例えばRDBMS(Relational DataBase Management System )、NoSQL(Not only SQL)等のデータストレージシステムにより構成されてよい。転送情報DB111は、キャッシュメモリ、ファイル保存、プログラム1Pのプロセス内メモリ領域に記憶されてもよい。
【0022】
例えば、転送情報DB111には、転送情報を識別するID、転送クライアント2のグローバルIPアドレス、識別情報、転送先情報、受付ポート番号等の情報が対応付けられて格納されている。転送クライアント2のグローバルIPアドレスとは、転送クライアント2のグローバルネットワークN1を介した通信の際に使用されるアドレスである。転送クライアント2のグローバルIPアドレスは、中継装置5によって転送クライアント2のプライベートIPアドレスから中継装置5の保持するグローバルIPアドレスに変換されたものである。
【0023】
識別情報とは、転送先となるサーバ4のサービスを識別(特定)するための情報であり、例えば識別キーが含まれる。識別キーとは、転送先となるサーバ4のサービス毎に発行される一意のデータであり、転送先を識別するデータである。識別情報には、サーバ4のサービスにアクセスするユーザを識別するユーザアカウントが含まれてもよい。ユーザアカウントには、例えばユーザID及びパスワードが含まれる。ユーザアカウントにはサーバ4の装置IDが含まれてもよい。
【0024】
転送先情報とは、通信データの転送先となるサーバ4及び当該サーバ4の提供するサービスを指定する情報である。転送先情報には、例えばサーバ4のプライベートIPアドレス及びポート番号(特定ポート)が含まれる。プライベートIPアドレスは、サーバ4のプライベートネットワークN2における通信の際に使用されるアドレスであり、プライベートネットワークN2におけるサーバ4を特定する固定のIPアドレスである。ポート番号(特定ポート)とは、コンピュータが通信を行う際に通信先のプログラムを特定するための番号のことである。転送先情報は、プライベートIPアドレス及びポート番号に限定されない。転送先情報は、転送先のサーバ4を指定するためのホスト名、NetBIOS名、サーバ4のサービスを指定するためのプロトコル名等が含まれてもよい。なお、転送先情報は、上述のIPアドレス及びポート番号等を対応付けた転送先IDを用いて記憶されていてもよい。
【0025】
受付ポート番号とは、転送サーバ1がクライアント装置3から転送のための通信データを受け付ける際に使用するポート番号である。転送先の特定ポートと転送サーバ1のポート(受付ポート)との間で通信トンネルが確立された場合、通信トンネルの使用に割り当てられたポート番号が受付ポート番号列に格納される。
【0026】
転送クライアント2は、制御部20、記憶部21及び通信部22を備える。制御部20は、一又は複数のCPU又はGPUを用いたプロセッサであり、内蔵するROM及びRAM等のメモリを用い、各構成部を制御して処理を実行する。記憶部21は、ハードディスク、SSD等の記憶装置を含む。記憶部21には、プログラム2Pを含む制御部20が参照するプログラム及びデータが記憶されている。制御部20は、プログラム2Pに基づき、後述する通信データの転送に関する処理を実行する。通信部12は、プライベートネットワークN2を介した通信を実現する通信デバイスである。
【0027】
また、記憶部21には、識別情報DB211が記憶されている。
図4は、識別情報DB211のレコードレイアウトを示す概念図である。識別情報DB211は、転送先となるサーバ4のサービスを識別(特定)するための識別情報を格納するデータベースである。例えば、識別情報DB211には、識別キー、ユーザID及びパスワード等の情報が対応付けられて格納されている。識別情報にはサーバ4の装置IDが含まれてもよい。識別情報DB211に記憶されている識別情報の詳細は、転送情報DB111の識別情報を同様である。すなわち、識別情報は転送サーバ1と転送クライアント2との間で共有される。
【0028】
クライアント装置3は、制御部30、記憶部31及び通信部32を備える。制御部30は、一又は複数のCPU又はGPUを用いたプロセッサであり、内蔵するROM及びRAM等のメモリを用い、各構成部を制御して処理を実行する。記憶部31は、ハードディスク、SSD等の記憶装置を含む。記憶部31には、制御部30が参照するプログラム及びデータが記憶されている。通信部32は、グローバルネットワークN1を介した通信を実現する通信デバイスである。
【0029】
サーバ4は、制御部40、記憶部41及び通信部42を備える。制御部40は、一又は複数のCPU又はGPUを用いたプロセッサであり、内蔵するROM及びRAM等のメモリを用い、各構成部を制御して処理を実行する。記憶部41は、ハードディスク、SSD等の記憶装置を含む。記憶部41には、制御部40が参照するプログラム及びデータが記憶されている。通信部42は、プライベートネットワークN2を介した通信を実現する通信デバイスである。
【0030】
上記の各装置は、個別に構成されるものに限定されない。例えば転送クライアント2及びサーバ4を含む1個のデバイスとして構成されてもよい。上記の各装置は、ソフトウェアにより実現されてもよい。
【0031】
図5は、情報処理システム100において実行される操作処理の手順の一例を示すシーケンス図である。以下、ステップをSと略す。
【0032】
転送サーバ1の制御部10は、識別情報及び転送先情報等を含む転送情報を取得し転送情報DB111に記憶する(S101)。また転送クライアント2の制御部20は、識別情報を取得し識別情報DB211に記憶する(S201)。転送先情報及び識別情報の取得方法はそれぞれ限定されるものではないが、一例として以下の手順を実行する。
【0033】
転送クライアント2の制御部20は、プライベートネットワークN2を介してサーバ4のサービスにアクセスするためのサーバ4のプライベートIPアドレス及びポート番号を予め記憶している。制御部20は、転送サーバ1に通信要求を送信する。転送サーバ1の制御部10は、転送クライアント2から通信要求を受信し、サーバ4のサービス(転送先)を識別する識別キーを転送クライアント2に送信する。識別キーは、サーバ4のサービス毎に発行されるユニークキーである。
【0034】
転送クライアント2の制御部20は、転送サーバ1から識別キーを受信し、識別情報DB211に記憶する。この場合において、制御部20は、識別キーに対応するユーザを識別するユーザID及びパスワード等のユーザアカウントを生成し、生成したユーザアカウントを識別キーに対応付けて登録してよい。制御部20は、識別キーに、ユーザアカウント、サーバ4のプライベートIPアドレス及びポート番号を関連付けて中継装置5を介して転送サーバ1へ送信する。転送サーバ1の制御部10は、中継装置5を介して転送クライアント2のグローバルIPアドレス、識別キー、ユーザアカウント、サーバ4のプライベートIPアドレス及びポート番号等を受信し、転送情報DB111に記憶する。以上の手順により転送先情報及び識別情報がそれぞれ記憶される。
【0035】
転送クライアント2の制御部20は、グローバルネットワークN1を介して転送サーバ1にコネクション6の確立要求を送信する(S202)。転送クライアント2は、通信データを転送するサーバ4の識別キーを識別情報DB211から読み出し、確立要求に関連付けて送信する。グローバルネットワークN1を介する通信プロトコルは、例えばTCP(Transmission Control Protocol )/IP(Internet Protocol )及びHTTPSを使用する。
【0036】
転送サーバ1の制御部10は、コネクション6の確立要求を受信し(S102)、応答を転送クライアント2へ送信する(S103)。
【0037】
転送クライアント2の制御部20は、応答を受信する(S203)。制御部20が応答を受信することにより、転送サーバ1と転送クライアント2との間でコネクション6が確立される。以降、転送サーバ1と転送クライアント2とは、例えばポーリング、ロングポーリング等によりコネクション6を継続することで、転送サーバ1から転送クライアント2への通信が可能となる。例えば転送クライアント2は、ポーリングを用いることにより、所定間隔にて定期的又は定常的に転送サーバ1に問合せを行い、当該問合せに対し転送サーバ1からプッシュ送信される返答を取得する。
【0038】
コネクション6の確立後、転送サーバ1の制御部10は、転送サーバ1のグローバルIPアドレスを含む転送要求を転送クライアント2へ送信する(S104)。転送サーバ1と転送クライアント2との間では、コネクション6が確立されているため、NATを超えた転送サーバ1からの転送クライアント2への情報の送信が可能である。転送要求には、転送先を指定(識別)するための転送先情報が関連付けられている。転送先情報には、転送先のサーバ4を指定するためのプライベートIPアドレスと、サーバ4におけるサービスを指定するためのポート番号とが含まれる。転送先情報は、上述のIPアドレス及びポート番号を対応付けた転送先ID等を用いてもよい。転送先情報には、転送先のサーバ4を識別するためのホスト名、又は、サーバ4のサービスを識別するためのプロトコル名等が含まれてもよい。制御部10は、コネクション6の確立要求に係る識別情報に基づき、転送情報DB111を参照して識別情報に対応する転送先であるサーバ4のサービスを特定し、特定した転送先のサーバ4のIPアドレス及びポート番号を含む転送先情報を取得する。
【0039】
また、転送要求には、通信トンネル要求に関する情報が関連付けられている。通信トンネル要求に関する情報には、転送先のサーバ4のプライベートIPアドレス及びポート番号と、転送サーバ1のグローバルIPアドレス及び受付ポート番号とが含まれる。受付ポート番号は、任意のポート番号を指定してもよく、自動で割り当てられるものであってもよい。通信トンネル要求に関する情報には、ユーザアカウント及び認証キー等が含まれてよい。
【0040】
転送クライアント2の制御部20は、転送サーバ1から転送要求を受信する(S204)。制御部20は、受信した転送要求に対する応答を転送サーバ1へ送信する(S205)。
【0041】
転送サーバ1の制御部10は、応答を受信する(S105)。制御部10が応答を受信することにより、転送サーバ1の受付ポートと転送先として指定したサーバ4の特定ポートとがマッピングされ、転送サーバ1の受付ポートと転送先として指定したサーバ4との間で通信トンネルが形成(確立)される。制御部10は、通信トンネル要求時に指定した受付ポートを開放し(S106)、クライアント装置3からの通信を待ち受ける。
【0042】
クライアント装置3の制御部30は、転送サーバ1の受付ポートに通信接続し、サーバ4の特定ポートにアクセスするための通信要求を送信する(S301)。通信要求には、例えばユーザアカウント等の識別情報が含まれる。転送サーバ1の制御部10は、受信した通信要求のユーザアカウントに基づき、クライアント装置3からの通信データの転送先となるサーバ4の特定ポートを特定する。
【0043】
通信が開始され、通信トンネルを通して転送サーバ1の受付ポートとサーバ4の特定ポートとの間で通信が転送される。具体例には、クライアント装置3から転送サーバ1の受付ポートへ送信されるサーバ4宛の通信データは、転送サーバ1を介して転送クライアント2へ転送される。転送クライアント2は、転送サーバ1の受付ポートから受信した通信データを、サーバ4の特定ポートへ転送する。通信データには、例えば転送先のサーバ4のIPアドレス及びポート番号、総送信データサイズ、総受信データサイズ等が含まれる。同様に、サーバ4の指定ポートから送信されるクライアント装置3宛の通信データは、転送クライアント2を介して転送サーバ1の受付ポートへ転送される。転送サーバ1は、受信した通信データをクライアント装置3へ転送する。
【0044】
転送サーバ1の制御部10は、例えばクライアント装置3から終了通知を取得し通信を終了する。制御部10は、通信トンネルを切断し、一連の処理を終了する。サーバ4が起動している場合は常時クライアント装置3との情報の送受信を可能にするため、通信トンネルの切断以降もコネクション6は継続されてよい。
【0045】
上述の処理において、制御部10は、外部から取得した要求に基づき転送要求を送信してもよい。例えば制御部10は、クライアント装置3からユーザアカウント等の識別情報を含む要求を受信する。制御部10は、識別情報に基づき、コネクション6を確立する転送クライアント2及び転送先情報を特定し、特定した転送クライアント2へ、コネクション6を用いて転送要求を送信する。
【0046】
上述の処理において、転送要求は転送サーバ1から転送クライアント2へ送信されるものに限定されず、転送クライアント2から転送サーバ1へ送信されてもよい。
【0047】
本実施形態によれば、転送サーバ1と転送クライアント2との間に確立されるコネクション6を用いて、グローバルネットワークN1側の転送サーバ1からプライベートネットワークN2内の転送クライアント2に対して、サーバ4の特定ポートを指定して転送要求を送信することができる。転送サーバ1の転送情報及び転送クライアント2の識別情報を用いて容易に通信トンネルが確立されるため、プライベートネットワーク側でのポートマッピングのための複雑な設定等の負担を軽減することができる。通信データの転送はTCP/IPによりトランスポート層にて行われるため、通信転送時のセキュリティを向上し得る。
【0048】
上記では、ポーリングによるコネクション6が確立される例を説明したが、本実施形態における通信方法は限定されるものではない。コネクション6は、例えばWebsocketによるものであってもよい。転送クライアント2は、HTTPSプロトコルを用いた通信により、転送サーバ1へ確立要求を送信する。確立要求には、Websocketへのプロトコルのアップグレードを示す情報及びサーバ4に係る識別情報等が含まれる。転送サーバ1は受信したコネクション6の確立要求への応答を送信し、転送クライアント2が応答を受信することにより、転送サーバ1と転送クライアント2との間でWebsocketプロトコルによるコネクション6が確立される。以降、転送サーバ1と転送クライアント2との通信はコネクション6を用いてWebsocketプロトコルに準拠する電文を用いて行われる。これにより双方向通信、すなわちプッシュ型の相互通信が可能となる。
【0049】
上述の処理によれば、Websocketにより、アプリケーション層にてコネクション6が確立されるため、通信時のセキュリティのさらなる向上を図ることが可能となる。また、サービスの提供を受けるユーザ側のネットワーク環境のセキュリティ設定条件により、グローバルネットワークN1上の装置からプライベートネットワークN2へのアクセスにおいて、HTTPSプロトコル以外のプロトコルは不正アクセスとして遮断される場合であっても、HTTPSプロトコルの拡張規格として規定されるWebsocketプロトコルを用いることでコネクション6の確立を容易に実現し得る。
【0050】
コネクション6は、CONNECTメソッドによるものであってもよい。CONNECTメソッドはプロキシサーバを通してHTTPS通信を行う場合に使用するメソッドである。転送クライアント2は、HTTPSプロトコルを用いた通信により、転送サーバ1へ確立要求を送信する。確立要求には、CONNECTメソッドを用いたトンネル開始要求を示す情報が含まれる。転送サーバ1は受信したコネクション6の確立要求への応答を送信し、転送クライアント2が応答を受信することにより、転送サーバ1と転送クライアント2との間でCONNECTメソッドによるコネクション6が確立される。以降、転送サーバ1と転送クライアント2との通信はコネクション6を用いてTCPコネクションをトンネリングする事が可能となる。これにより双方向通信、すなわちプッシュ型の相互通信が可能となる。
【0051】
本実施形態の具体的な適用例を説明する。サーバ4は、ウェブサーバである。クライアント装置3は、ウェブサーバにアクセスするブラウザを備え、ブラウザの操作処理を実行する。クライアント装置3は、ユーザからの実行指示を受けて、サーバ4に対するブラウザの操作処理を自動実行するクラウド型サービスを提供する。クライアント装置3は、手順DBを備える。手順DBは、手順データを記憶する。手順データは、クライアント装置3のブラウザにおける複数の操作処理の手順を含む。当該手順は、例えばブラウザ画面上におけるデータの入力操作、エレメントの選択操作、ブラウザのリサイズ操作、ブラウザのスクロール操作、タブの切替操作等を含む。手順データは、クライアント装置3に操作処理の自動実行を指示するユーザの外部装置によって予め生成され、生成された手順データがクライアント装置3の手順DBに記憶される。クライアント装置3は、手順DBから手順データを読み出し、読み出した手順データに従ってブラウザの操作処理を実行する。
【0052】
クライアント装置3は、例えばユーザ企業の販売管理システム、売上管理システム等へのデータ入力のためのブラウザの操作処理を実行する。クライアント装置3の制御部30は、ユーザから取得した実行指示に応じて手順DBから手順データを読み出し、ブラウザを起動する。制御部30は、転送サーバ1の受付ポートにアクセスし、サーバ4へのブラウザの操作処理を自動実行するためのHTTPSリクエストを送信する。HTTPSリクエストは、通信トンネルを通じてサーバ4へ転送される。クライアント装置3は、通信トンネルを通じてサーバ4から送信されるHTTPSレスポンスを取得する。クライアント装置3は、手順データに基づく一連の操作処理を自動実行し、サーバ4から受信した実行結果データをユーザの外部装置へ送信する。このように、クライアント装置3によるブラウザの操作処理の自動実行サービスが行われる。
【0053】
(第2実施形態)
第2実施形態では、可否情報に基づき転送先への転送可否を判定する構成を説明する。以下では、第2実施形態について、第1実施形態と異なる点を説明する。後述する構成を除く他の構成については第1実施形態の情報処理システム100と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
【0054】
図6は、第2実施形態における情報処理システム200の各装置の内部構成を示すブロック図である。第2実施形態の転送クライアント2の記憶部21は、可否情報DB212をさらに記憶している。可否情報DB212は、可否情報を記録したデータベースである。可否情報とは、転送先として指定されるサーバ4の特定ポートへの転送の可否を判定するための情報であり、具体的には転送を許可する転送先のサーバ又はサービスを識別するデータが含まれる。
【0055】
図7は、可否情報DB212のレコードレイアウトを例示する説明図である。例えば、可否情報DB212には、可否情報を識別する識別ID、転送を許可するサーバを識別するためのサーバ4のプライベートIPアドレス、転送を許可するサーバ4のサービスを識別するためのポート番号等の情報が対応付けられて格納されている。IPアドレス又はポート番号は、単一のデータに限定されず、例えば転送を許可するIPアドレス帯又はポート番号帯など、転送を許可する範囲帯を示すデータであってよい。可否情報は、ホスト名、ドメイン名、プロトコル名等が記憶されていてもよい。可否情報は、IPアドレス及びポート番号等を対応付けた転送先IDにて管理されていてもよい。
【0056】
転送クライアント2は、可否情報に基づき、転送先として指定されるサーバ4への転送を許可するか否かを判定する。又は、転送クライアント2は、可否情報に基づき、転送先として指定されるサーバ4のサービスへの転送を許可するか否かを判定する。転送クライアント2は、可否情報DB212に記録されるサーバ4のサービスの範囲内に限定して、転送要求を許可する。なお、可否情報は転送を許可するサーバ4の範囲を記録するものに限定されず、転送を不許可、すなわち転送を拒否するサーバ4の範囲を記録するものであってもよい。この場合、転送クライアント2は、可否情報に基づき、転送先として指定されるサーバ4のサービスへの転送を拒否するか否かを判定する。可否情報には、さらにユーザアカウント等の識別情報が関連付けられていてもよい。すなわち、ユーザアカウント毎に転送を許可又は不許可する範囲が設定されていてもよい。
【0057】
図8は、第2実施形態における情報処理システム200において実行される操作処理の手順の一例を示すシーケンス図である。第1実施形態の
図5と共通する処理については同一の番号を付してその詳細な説明を省略する。
【0058】
転送サーバ1の制御部10は、転送情報を取得し転送情報DB111に記憶する(S101)。転送クライアント2の制御部20は、識別情報を取得し識別情報DB211に記憶する(S201)。制御部20はまた、転送を許可するサーバ4のIPアドレス及びポート番号等を含む可否情報を取得し、取得した可否情報を可否情報DB212に記憶する(S211)。可否情報の取得方法は限定されるものではないが、例えば外部の管理サーバと通信することにより取得してよい。
【0059】
転送クライアント2の制御部20は、転送サーバ1にコネクション6の確立要求を送信する(S202)。転送クライアント2は、サーバ4の識別情報を識別情報DB211から読み出し、確立要求に関連付けて送信する。転送サーバ1の制御部10は、コネクション6の確立要求を受信し(S102)、応答を転送クライアント2へ送信する(S103)。転送クライアント2の制御部20は、応答を受信する(S203)。制御部20が応答を受信することにより、転送サーバ1と転送クライアント2との間でコネクション6が確立される。
【0060】
コネクション6の確立後、転送サーバ1の制御部10は、通信トンネルを形成するための転送要求を転送クライアント2へ送信する(S104)。転送要求には、転送先を指定するためのサーバ4のIPアドレス及びポート番号を含む転送先情報と、通信トンネル要求に関する情報とが関連付けられている。転送要求には、ユーザアカウント等の識別情報が関連付けられていてもよい。
【0061】
転送クライアント2の制御部20は、転送要求を受信する(S204)。制御部20は、受信した転送要求に関連付けられる転送先情報の宛先IPアドレス及びポート番号と、可否情報のIPアドレス及びポート番号とを比較することにより、転送要求に係る転送先への転送を許可するか否かを判定する(S212)。制御部20は、転送要求時に取得するユーザアカウントに基づき、当該ユーザアカウントに対し許可される転送先であるか否かを判定してもよい。
【0062】
転送先情報の宛先IPアドレス及びポート番号が可否情報に含まれないことにより、転送を許可しないと判定した場合(S212:NO)、制御部20は、転送不許可を示す応答を転送サーバ1へ送信し、処理を終了する。制御部20は、処理をS204に戻しコネクション6の確立状態を維持してもよい。
【0063】
転送先情報の宛先IPアドレス及びポート番号が許可情報に含まれることにより、転送を許可すると判定した場合(S212:YES)、制御部20は、転送許可を示す応答を転送サーバ1へ送信する(S213)。
【0064】
転送サーバ1の制御部10は、転送許可を示す応答を受信する(S111)。制御部10が転送許可を示す応答を受信することにより、転送サーバ1の受付ポートと、転送クライアント2に接続するサーバ4の特定ポートとの間で通信トンネルが形成される。制御部10は、受付ポートを開放する(S106)。クライアント装置3の制御部30は、転送サーバ1の受付ポートにサーバ4の特定ポート宛先の通信要求を送信する(S301)。通信が開始され、通信トンネルを通して転送サーバ1の受付ポートとサーバ4の特定ポートとの間で通信データが転送される。
【0065】
本実施形態によれば、転送を許可又は不許可する宛先の範囲を設定した可否情報に基づき、転送の可否が判定される。予め設定される範囲を超えたサーバ4又はサーバ4のポートへの通信は転送が拒否されるため、プライベートネットワークN2内のサーバ4に対する不正なアクセスを防止し、通信の安全性を向上させることができる。
【0066】
上記では、転送クライアント2が可否情報を保持し、転送可否を判定する例を説明したが本実施形態は限定されるものではなく、転送サーバ1が転送可否を判定する構成であってもよい。この場合、転送サーバ1は、例えばクライアント装置3等の外部装置から転送先のサーバ4のIPアドレス及びポート番号を含む転送要求を受信する。転送サーバ1は、記憶する可否情報に基づき、受信した転送要求のIPアドレス及びポート番号への転送を許可するか否かを判定する。転送を許可すると判定した場合にのみ、S104の転送要求の送信処理を実行する。転送サーバ1は、ユーザアカウント等の識別情報及び転送先を受信し、受信したユーザアカウントに許可される転送先であるか否かを判定してもよい。すなわち、転送サーバ1は、取得した転送要求を許可するか否かを判定する転送許可サーバとして機能する。
【0067】
(第3実施形態)
第3実施形態では、転送サーバ1と転送クライアント2との間で複数のコネクションを確立する構成を説明する。以下では、第3実施形態について、第1実施形態と異なる点を説明する。後述する構成を除く他の構成については第1実施形態の情報処理システム100と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
【0068】
図9は、第3実施形態における情報処理システム300の概要を示す図である。第3実施形態では、転送サーバ1と転送クライアント2との間で、転送要求の通信に係る第1コネクション61と、通信データの転送に係る第2コネクション62とを確立する。
【0069】
図10及び
図11は、第3実施形態における情報処理システム300において実行される操作処理の手順の一例を示すシーケンス図である。
【0070】
転送サーバ1の制御部10は、転送情報を取得し転送情報DB111に記憶する(S121)。転送クライアント2の制御部20は、識別情報を取得し識別情報DB211に記憶する(S221)。制御部20はまた、可否情報を取得し可否情報DB212に記憶する(S222)。
【0071】
転送クライアント2の制御部20は、グローバルネットワークN1を介して転送サーバ1に第1コネクション61の確立要求を送信する(S223)。転送クライアント2は、サーバ4の識別情報を識別情報DB211から読み出し、確立要求に関連付けて送信する。転送サーバ1の制御部10は、第1コネクション61の確立要求を受信し(S122)、応答を転送クライアント2へ送信する(S123)。転送クライアント2の制御部20は、応答を受信する(S224)。制御部20が応答を受信することにより、転送サーバ1と転送クライアント2との間で第1コネクション61が確立される。
【0072】
第1コネクション61の確立後、転送サーバ1の制御部10は、転送要求を転送クライアント2へ送信する(S124)。転送要求には、転送先を指定するための転送先情報が関連付けられている。転送クライアント2の制御部20は、転送要求を受信する(S225)。
【0073】
制御部20は、受信した転送要求を許可するか否かを判定する(S226)。転送を許可しないと判定した場合(S226:NO)、制御部20は処理を終了する。転送を許可すると判定した場合(S226:YES)、制御部20は転送許可を示す応答を転送サーバ1へ送信する(S227)。転送サーバ1の制御部10は、転送許可を示す応答を受信する(S125)。なお転送許可に係る判定処理は省略されてもよい。
【0074】
転送クライアント2の制御部20は、グローバルネットワークN1を介して第1転送サーバ1aに第2コネクション62の確立要求を送信する(S228)。転送クライアント2は、サーバ4の識別情報を識別情報DB211から読み出し、確立要求に関連付けて送信する。転送サーバ1の制御部10は、第2コネクション62の確立要求を受信し(S126)、応答を転送クライアント2へ送信する(S127)。転送クライアント2の制御部20は、応答を受信する(S229)。制御部20が応答を受信することにより、転送サーバ1と転送クライアント2との間で第2コネクション62が確立される。
【0075】
第2コネクション62の確立後、転送サーバ1の制御部10は、通信トンネル要求を転送クライアント2へ送信する(S128)。通信トンネル要求には、転送先のサーバ4のプライベートIPアドレス及びポート番号と、転送サーバ1のグローバルIPアドレス及び受付ポート番号とが含まれる。転送クライアント2の制御部20は、通信トンネル要求を受信する(S230)。制御部20は、受信した通信トンネル要求に対する応答を転送サーバ1へ送信する(S231)。転送サーバ1の制御部10は、応答を受信する(S129)。制御部10が応答を受信することにより、転送サーバ1の受付ポートと、転送先として指定したサーバ4の特定ポートとの間で通信トンネルが形成される。制御部10は、受付ポートを開放する(S130)。クライアント装置3の制御部30は、転送サーバ1の受付ポートにサーバ4の特定ポートを宛先とする通信要求を送信する(S321)。通信が開始され、通信トンネルを通して転送サーバ1の受付ポートとサーバ4の特定ポートとの間で通信データが転送される。第2コネクション62及び通信トンネルは、転送終了後切断されてよい。
【0076】
本実施形態によれば、転送要求のための第1コネクション61と、通信データの転送のための第2コネクション62とを確立することにより、各コネクションを用いて効率的に通信が行われる。
【0077】
上記では、転送サーバ1と転送クライアント2との間で2個のコネクションが確立される例を説明したが、本実施形態は限定されるものではない。例えば、転送サーバ1は、第1転送サーバ及び第2転送サーバを含み、第1転送サーバと転送クライアント2との間で第1コネクション61が確立され、第2転送サーバと転送クライアント2との間で第2コネクション62が確立されてもよい。この場合、第1転送サーバは、転送要求を許可するか否かを判定する転送許可サーバとして機能し、第2転送サーバは通信データを転送する通信転送サーバとして機能する。プライベートネットワーク内の1個の転送クライアント2を介してグローバルネットワーク上の複数の転送サーバ1から効率的に通信することができ、各転送サーバ1で処理又は機能を分散することができる。
【0078】
(第4実施形態)
第4実施形態では、複数の転送サーバ間で接続情報を共有する構成を説明する。以下では、第4実施形態について、第1実施形態と異なる点を説明する。後述する構成を除く他の構成については第1実施形態の情報処理システム100と同様であるので、共通する構成については同一の符号を付してその詳細な説明を省略する。
【0079】
図12は、第4実施形態における情報処理システム400の概要を示す図である。
図12では、中継装置5及びグローバルネットワークN1の図示を省略する。第4実施形態の転送サーバ1は、第1転送サーバ1a及び第2転送サーバ1bを含む。転送サーバ1は2個のサーバを含むものに限定されず、3個以上のサーバを含んでよい。第1転送サーバ1a及び第2転送サーバ1bはそれぞれ、グローバルネットワークN1及び中継装置5を介して、異なるプライベートネットワークN2に接続される転送クライアント2と通信接続されている。
【0080】
例えば、プライベートネットワークN2はそれぞれユーザの家庭やオフィスに設置されるLANであり、サーバ4は、家庭やオフィスにて利用されるウェブカメラ又はネットワークストレージ(NAS:Network Attached Storage)である。サーバ4のユーザは、外部ネットワークに接続されるクライアント装置3を用いて転送サーバ1へ通信接続することにより、転送クライアント2を介して自宅外から自宅内のサーバ4へアクセス可能である。ユーザは、自宅外からウェブカメラへアクセスすることでウェブカメラが撮影した自宅内の画像を取得したり、自宅外からNASへアクセスすることで自宅内のNASに保存されるファイルを取得したりすることができる。本実施形態において、サーバ4は転送クライアント2の機能を含む1つのデバイスとして構成されてもよい。
【0081】
第1転送サーバ1aは、制御部10a、記憶部11a及び通信部12aを備える。第2転送サーバ1bは、制御部10b、記憶部11b及び通信部12bを備える。第1転送サーバ1a及び第2転送サーバ1bのハードウェア構成は第1実施形態の転送サーバ1と同様であるため図示及び詳細な説明を省略する。
【0082】
第1転送サーバ1a及び第2転送サーバ1bはそれぞれ、接続情報DB112に対して情報を読み書きすることが可能である。接続情報DB112は、接続情報を記録したデータベースである。接続情報とは、第1転送サーバ1a及び第2転送サーバ1bそれぞれと転送クライアント2とのコネクションの接続(確立)状態に関する情報であり、各コネクションを確立する転送サーバと転送クライアント2との対応関係を示す情報である。
【0083】
図13は、接続情報DB112のレコードレイアウトを示す概念図である。例えば、接続情報DB112には、識別ID、転送サーバのグローバルIPアドレス及びポート番号、転送サーバと第1コネクション61を確立している転送クライアント2のグローバルIPアドレス、転送クライアント2に接続するサーバ4の識別情報(
図13の例ではPINコード)、サーバ4のIPアドレス及びポート番号を含む転送先情報等の情報が対応付けられて格納されている。第1転送サーバ1a及び第2転送サーバ1bは、転送クライアント2と第1コネクション61が確立される都度、当該第1コネクション61に関する接続情報を接続情報DB112に記録する。第1転送サーバ1a及び第2転送サーバ1bは、共有する接続情報に基づき、クライアント装置3から受信した通信データを他の転送サーバへリダイレクトする。なお接続情報DB112は、第1転送サーバ1aの記憶部11a及び第2転送サーバ1bの記憶部11bにそれぞれ記憶されており、第1転送サーバ1a及び第2転送サーバ1b間で接続情報を共有する構成であってもよい。
【0084】
図14及び
図15は、第4実施形態における情報処理システム400において実行される操作処理の手順の一例を示すシーケンス図である。
【0085】
第1転送サーバ1aの制御部10aは、転送情報を取得し転送情報DB111に記憶する(S141)。転送クライアント2の制御部20は、識別情報を取得し識別情報DB211に記憶する(S241)。本実施形態では、識別情報として、各サーバ4に固有のPINコードが用いられる。なお、処理順序は限定されるものでなく、第1転送サーバ1aの制御部10aは、後述するS142においてサーバ4のIPアドレス及びポート番号を含む転送先情報を転送クライアント2から受信し、転送情報DB111に記憶してもよい。
【0086】
転送クライアント2の制御部20は、グローバルネットワークN1を介して第1転送サーバ1aに第1コネクション61の確立要求を送信する(S242)。転送クライアント2は、サーバ4の識別情報(PINコード)を識別情報DB211から読み出し、確立要求に関連付けて送信する。第1転送サーバ1aの制御部10aは、第1コネクション61の確立要求を受信し(S142)、応答を転送クライアント2へ送信する(S143)。転送クライアント2の制御部20は、応答を受信する(S243)。制御部20が応答を受信することにより、第1転送サーバ1aと転送クライアント2との間で第1コネクション61が確立される。すなわち、プライベートネットワーク内の転送クライアント2を介して、ウェブカメラ又はNASと、グローバルネットワークの転送サーバ1とのセッションが確立される。制御部20は、所定のポート番号を開き、クライアント装置3からの通信を待ち受ける。
【0087】
第1転送サーバ1aの制御部10aは、新たなコネクションの確立状態に関する接続情報を接続情報DB112に記憶する(S144)。接続情報には、例えば自装置とコネクションを確立する転送クライアント2のIPアドレス、コネクションの確立要求に関連付けられる識別情報、対応する転送先情報等が含まれる。
【0088】
第2転送サーバ1bと第2の転送クライアント2との間でも上述の処理が実行され、第2転送サーバと第2の転送クライアント2との間で第1コネクション61が確立される。各転送サーバと転送クライアント2とのコネクションの確立状態は、随時、接続情報DB112に記録される。これにより、各転送サーバ間で他の転送サーバにおける接続状態を示す接続情報が共有される。
【0089】
第1コネクション61の確立後、ユーザはクライアント装置3を用いて、ウェブカメラの画像データや、NASのファイルを取得するため、転送サーバ1へアクセスする。クライアント装置3の制御部30は、転送サーバ1へ転送要求を送信する(S341)。クライアント装置3が転送要求を送信するサーバは、転送サーバ1の内のいずれのサーバであってもよく、すなわち第1転送サーバ1a又は第2転送サーバ1bのいずれかに転送要求を送信する。以下の処理は、一例として、クライアント装置3の転送要求に係る転送先とは接続されていない第2転送サーバ1bに転送要求が送信された場合の処理の手順である。
【0090】
転送要求には、転送先のサーバ4及びサービスを指定するための情報が関連付けられており、例えば識別情報及び転送情報等が関連付けられている。クライアント装置3がブラウザを用いて第2転送サーバ1bへアクセスする場合には、例えば第2転送サーバ1bのホスト名及びポート番号、自装置のホスト名及びポート番号、パスにPINコード及びプロトコル名を含むURLにより、転送先のサーバ4及びサービスを指定して転送要求を行ってよい。
【0091】
第2転送サーバ1bの制御部10bは、転送要求を受信する(S441)。制御部10bは、接続情報DB112を参照して接続情報を取得する(S442)。制御部10bは、取得した接続情報に基づき、クライアント装置3の指定する転送先と第1コネクション61を確立している転送サーバを特定する(S443)。具体的には、制御部10bは、PINコードに基づき、当該PINコードにて識別されるサーバ4と接続する転送クライアント2と第1コネクション61を確立中の転送サーバ(第1転送サーバ1a)を特定する。制御部10bは、特定した第1転送サーバ1aにアクセスするためのURL又は第1転送サーバ1aのグローバルIPアドレス等のリダイレクト情報をクライアント装置3へ送信する(S444)。制御部10bは、転送先情報に基づき転送サーバを特定してもよい。
【0092】
クライアント装置3の制御部30は、リダイレクト情報を受信する(S342)。制御部30は、リダイレクト情報に基づき、第1転送サーバ1aへ転送要求を送信する(S343)。このように、第1転送サーバ1a及び第2転送サーバ1bで接続情報を共有することで、クライアント装置3からコネクションを確立していない第2転送サーバ1bへ接続された場合であっても、クライアント装置3を第1転送サーバ1aへリダイレクトすることができる。なお、第2転送サーバ1bの制御部10bは、クライアント装置3を介することなく転送サーバ間で通信データを中継することにより、クライアント装置3から受信した転送要求を直接第1転送サーバ1aへ転送してもよい。
【0093】
第1転送サーバ1aの制御部10aは、転送要求を受信する(S145)。制御部10aは、転送要求に関連付けられるPINコード及びプロトコルと、転送情報DB111に保持する情報とに基づき、転送先のIPアドレス及びポート番号等を含む転送先を特定し、特定した転送先の転送先情報を取得する。この場合において、制御部10aは、自装置の待ち受けポートにより、サーバ4のサービスを特定してもよい。制御部10aは、取得した転送先情報を関連付けた転送要求を転送クライアント2へ送信する(S146)。
【0094】
転送クライアント2の制御部20は、転送要求を受信する(S244)。制御部20は、受信した転送要求に対する応答を第1転送サーバ1aへ送信する(S245)。転送クライアント2の制御部20は、転送要求を許可するか否かの判定処理を実行してもよい。第1転送サーバ1aの制御部10aは、応答を受信する(S147)。
【0095】
転送クライアント2の制御部20は、転送要求に応じて、グローバルネットワークN1を介して第1転送サーバ1aに第2コネクション62の確立要求を送信する(S246)。転送クライアント2は、サーバ4の識別情報を識別情報DB211から読み出し、確立要求に関連付けて送信する。第1転送サーバ1aの制御部10aは、第2コネクション62の確立要求を受信し(S148)、応答を転送クライアント2へ送信する(S149)。転送クライアント2の制御部20は、応答を受信する(S247)。制御部20が応答を受信することにより、第1転送サーバ1aと転送クライアント2との間で第2コネクション62が確立される。
【0096】
第2コネクション62の確立後、第1転送サーバ1aの制御部10aは、通信トンネル要求を転送クライアント2へ送信する(S150)。通信トンネル要求には、転送先のサーバ4のIPアドレス及びポート番号と、第1転送サーバ1aのグローバルIPアドレス及び受付ポート番号とが含まれている。転送クライアント2の制御部20は、通信トンネル要求を受信する(S248)。制御部20は、受信した通信トンネル要求に対する応答を第1転送サーバ1aへ送信する(S249)。第1転送サーバ1aの制御部10aは、応答を受信する(S151)。制御部10aが応答を受信することにより、第1転送サーバ1aの受付ポートと、転送先として指定したサーバ4の特定ポートとの間で通信トンネルが形成される。制御部10aは、受付ポートを開放する(S152)。
【0097】
クライアント装置3の制御部30は、第1転送サーバ1aの受付ポートにサーバ4の特定ポートを宛先とする通信要求を送信する(S345)。通信が開始され、通信トンネルを通して第1転送サーバ1aの受付ポートとサーバ4の特定ポートとの間で通信データが転送される。例えばサーバ4がウェブカメラの場合、クライアント装置3の制御部30は、サーバ4からRTSP(Real Time Streaming Protocol)等のストリーム配信のプロトコルによるデータの配信を受ける。サーバ4がNASの場合、クライアント装置3の制御部30は、サーバ4からHTTPS等のプロトコルによるデータを受信する。なおサーバ4がファイル共有などのファイルサービスを提供する場合には、TCP/IPの上位プロトコルとしてSMBプロトコルを用いてよい。
【0098】
上述の処理において、クライアント装置3の制御部30は、PINコードのみを関連付けた要求を転送サーバ1へ送信することで、サーバ4の特定ポートに対する通信経路をあらかじめ形成してもよい。制御部30は、転送サーバ1から例えば接続情報又は転送情報等を受信することにより、サーバ4のポートの接続状態を取得する。制御部30は、取得したサーバ4のポートの接続状態に応じて、各サーバ4のポートに対応する数の自装置のポートを待ち受け状態にする。その後、制御部30は、待ち受け状態のいずれか1つのポートを用いて転送サーバ1にアクセスし、PINコード及びプロトコルを指定して転送要求を送信する。この場合、制御部30は、例えばブラウザ等の汎用アプリケーションではなく、サービス専用のアプリケーションプログラムに基づき処理を実行することが好ましい。
【0099】
上記では、クライアント装置3から第2転送サーバ1bへの転送要求を第1転送サーバ1aにリダイレクトする処理を説明したが、本実施形態は限定されない。転送要求を受け付けた第2転送サーバ1bは、自サーバが転送要求に係る転送先と接続されている転送サーバであると特定した場合には、上述のリダイレクト処理を行わず、S145以降の転送処理を実行してよい。
【0100】
本実施形態によれば、第1転送サーバ1a及び第2転送サーバ1bを含む複数の転送サーバと複数の転送クライアント2とがそれぞれ異なるコネクションを確立している場合であっても、接続情報を共有することで、クライアント装置3から特定のサーバ4に対する通信が可能となる。転送サーバ1と転送クライアント2とは、転送要求に関する通信のための第1コネクションと、クライアント装置3からの転送要求に応じて確立されるデータ通信のための第2コネクションとを用いて、効率的に通信することができる。
【0101】
(第5実施形態)
第5実施形態では、複数のクライアント装置3からの要求に応じて、単一のコネクション6を用いて複数の通信データが転送される。
図16は、第5実施形態における情報処理システム500の概要を示す図である。
図16では、中継装置5及びグローバルネットワークN1の図示を省略する。第5実施形態の転送サーバ1は、第1のクライアント装置3及び第2のクライアント装置3それぞれと通信接続されている。
【0102】
転送サーバ1は、第1のクライアント装置3及び第2のクライアント装置3それぞれから、受付ポートに対する通信を受信する。転送サーバ1の制御部10は、第1のクライアント装置3から受付ポートにアクセスされた場合、第1のクライアント装置3からのアクセスに応じてサーバ4の特定ポートを転送先とする転送要求をコネクション6を用いて転送クライアント2へ送信する。転送クライアント2からの応答に応じて、転送サーバ1の受付ポートとサーバ4の特定ポートとの間で通信トンネルが形成される。制御部10は、コネクション6を用いて形成された通信トンネルを通して、第1のクライアント装置3からの通信データを転送する。この場合において制御部10は、当該第1のクライアント装置3からの通信であることを示す情報を関連付けて、転送クライアント2へ通信データを転送する。転送クライアント2は、サーバ4の特定ポートへ通信データを転送する。サーバ4は、通信データを受信し、第1のクライアント装置3への通信であることを示す情報を関連付けて、転送クライアント2を介して転送サーバ1へHTTPSレスポンスを送信する。転送サーバ1は、HTTPSレスポンスに関連付けられた第1のクライアント装置3への通信であることを示す情報に基づき、当該HTTPSレスポンスを第1のクライアント装置3へ送信する。
【0103】
転送サーバ1の制御部10は、第2のクライアント装置3から受付ポートにアクセスされた場合、同一の通信トンネルを通して通信データを転送する。この場合において、制御部10は、上記と同様に第2のクライアント装置3からの通信であることを示す情報を関連付けて、通信データを転送する。このように、宛先を示す情報を通信データにタグ付けすることで、1つの通信トンネルを通して複数の通信データを識別しながら転送することができる。本実施形態によれば、1つのコネクション及び通信トンネルを用いて、グローバルネットワーク側の異なる送信元からの複数の通信データを効率的にプライベートネットワーク内へ送信することができる。
【0104】
(第6実施形態)
第6実施形態では、複数のクライアント装置3からの要求に応じて、プライベートネットワーク内の複数のサーバ4への通信データが転送される。
図17は、第6実施形態における情報処理システム600の概要を示す図である。
図17では、中継装置5及びグローバルネットワークN1の図示を省略する。第6実施形態の転送サーバ1は、第1のクライアント装置3及び第2のクライアント装置3それぞれと通信接続されている。転送クライアント2は、第1のサーバ4及び第2のサーバ4それぞれと通信接続されている。
【0105】
転送サーバ1は、第1のクライアント装置3及び第2のクライアント装置3それぞれから、自装置の異なる受付ポートに対する通信データを受信する。転送サーバ1は、転送クライアント2との間で確立される単一のコネクション6を用いて、各通信に応じた転送要求をそれぞれ送信することにより、自装置の複数の受付ポートと、サーバ4の複数の特定ポートとの間でそれぞれ通信トンネルを形成する。転送サーバ1は、第1の通信トンネルを用いて、第1のクライアント装置3から第1のサーバ4の特定ポートに対する通信データを転送する。転送サーバ1は、第2の通信トンネルを用いて、第2のクライアント装置3から第2のサーバ4の特定ポートに対する通信データを転送する。
【0106】
本実施形態によれば、転送サーバ1は、転送クライアント2に接続する複数のサーバ4に対する複数の通信データを、単一のコネクション6を用いて形成された複数の通信トンネルを用いて効率的に転送することができる。本実施形態において、転送サーバ1にサーバ4が接続され、転送クライアント2にクライアント装置3が接続されるものであってもよい。すなわち、グローバルネットワーク側とプライベートネットワーク側の双方にクライアント及びサーバがそれぞれ設置されるものであってもよい。
【0107】
(第7実施形態)
第7実施形態では、サーバ4はプロキシサーバとして機能する。
図18は、第7実施形態における情報処理システム700の概要を示す図である。
図18では、中継装置5及びグローバルネットワークN1の図示を省略する。第7実施形態のサーバ4は、プライベートネットワークN2に接続される複数のウェブサーバと通信可能に接続されるよう構成されている。サーバ4は、各ウェブサーバへの通信を中継し各ウェブサーバに代理でアクセスするプロキシサーバである。クライアント装置3から送信される通信データは、転送サーバ1及び転送クライアント2を介してプロキシサーバ4の特定ポートへ転送される。通信データには、クライアント装置3のアクセス先であるウェブサーバのURLが含まれる。プロキシサーバ4は、受信した通信データに基づきアクセス先のウェブサーバを特定し、特定したウェブサーバへ通信データを送信する。なお、複数のウェブサーバはプライベートネットワークN2内に設けられるものに限定されない。各ウェブサーバは、プライベートネットワークN2を介して、グローバルネットワーク上に設けられてもよい。
【0108】
本実施形態によれば、クライアント装置3は、ブラウザ上で、プライベートネットワーク内のウェブサーバのURLを直接指定して通信することができる。クライアント装置3から送信される通信データは、通信トンネルを介してプロキシサーバ4へ転送される。プロキシサーバ4は、通信データに基づきURLで指定される各ウェブサーバへアクセスする。プライベートネットワーク内の各ウェブサーバに対し個別の通信トンネルを形成することなく、転送サーバ1とプロキシサーバ4との間に形成される1つの通信トンネルを用いて、プロキシサーバ4の先にある各ウェブサーバ4に対する複数の通信データを転送することができるため、効率的な通信が可能となる。
【0109】
第1実施形態から第7実施形態に示した例は、各実施形態に示した構成の全部又は一部を組み合わせて他の実施の形態を実現することが可能である。各実施形態に示したシーケンスは限定されるものではなく、各処理手順はその順序を変更して実行されてもよく、また並行して複数の処理が実行されてもよい。
【0110】
今回開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。
【符号の説明】
【0111】
1 転送サーバ(第1転送装置)
10 制御部
11 記憶部
12 通信部
1Pプログラム
111 転送情報DB
112 接続情報DB
2 転送クライアント(第2転送装置)
20 制御部
21 記憶部
2P プログラム
211 識別情報DB
212 可否情報DB
3 クライアント装置(第1通信装置)
4 サーバ(第2通信装置)
5 中継装置
6 コネクション
61 第1コネクション
62 第2コネクション
100,200,300,400,500,600,700 情報処理システム
【要約】
【課題】容易な方法でグローバルネットワーク上の装置からプライベートネットワーク内の特定の装置に通信することができる情報処理方法等を提供する。
【解決手段】情報処理方法は、第1転送装置は、第2転送装置からコネクションの確立要求を取得し、取得した前記コネクションの確立要求に応じて前記第1転送装置と前記第2転送装置との間のコネクションを確立し、確立された前記コネクションを用いて、第2通信装置の特定ポートを転送先として指定する転送要求を前記第2転送装置へ送信し、送信した前記転送要求に応じて、前記第1通信装置からの通信を受け付ける前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する通信トンネルを形成し、形成した前記通信トンネルを通じて、前記第1転送装置の受付ポートと前記第2通信装置の特定ポートとの通信を転送する。
【選択図】
図5