JPWO2011141993A1 - 双方向通信システムおよびこれに用いるサーバ装置 - Google Patents

双方向通信システムおよびこれに用いるサーバ装置 Download PDF

Info

Publication number
JPWO2011141993A1
JPWO2011141993A1 JP2012514625A JP2012514625A JPWO2011141993A1 JP WO2011141993 A1 JPWO2011141993 A1 JP WO2011141993A1 JP 2012514625 A JP2012514625 A JP 2012514625A JP 2012514625 A JP2012514625 A JP 2012514625A JP WO2011141993 A1 JPWO2011141993 A1 JP WO2011141993A1
Authority
JP
Japan
Prior art keywords
address
client
access
server
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012514625A
Other languages
English (en)
Other versions
JP5326045B2 (ja
Inventor
玲二 福田
玲二 福田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHEPRO CO Ltd
Original Assignee
CHEPRO CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CHEPRO CO Ltd filed Critical CHEPRO CO Ltd
Publication of JPWO2011141993A1 publication Critical patent/JPWO2011141993A1/ja
Application granted granted Critical
Publication of JP5326045B2 publication Critical patent/JP5326045B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

クライアント10からルータ40,50を介してサーバ20にアクセスが行われたときに、サーバ20において、アクセス時に使用されたIPアドレスを承継しつつ任意のシステムIDを付与することによって新たな接続アドレスを生成する。そして、そのシステムIDをクライアント10に通知するとともに、クライアント10と通信するための通信プロセスを生成する。その後のクライアント10とサーバ20との通信は、通信プロセスが新たな接続アドレスに基づいて行う。サーバ20の通信プロセスとクライアント10との通信のために新たに生成される接続アドレスは、最初のアクセス時に使用されたIPアドレスと同じものを含んでいるので、ルータ40,50のNAT機能を問題なく使用することができる。

Description

本発明は、双方向通信システムおよびこれに用いるサーバ装置に関し、特に、クライアントがインターネット上のルータを介してサーバに接続可能に構成され、サーバがクライアントからの要求に応じたサービスを提供するように成された双方向通信システムに関するものである。
インターネットにおいて一般的に用いられるHTTP(HyperText Transfer Protocol)は、HTML(HyperText Markup Language)やXML(Extensible Markup Language) によって記述されたコンテンツをクライアント(Webブラウザ)とサーバとの間で送受信するのに用いられる通信プロトコルである。HTTPは、ハイパーテキスト形式のデータを送受信することを主目的としており、画像や音声などのバイナリデータのやり取りが簡単にはできない。現在は、AJAXやSilverlightなどの特殊技術を利用することで、バイナリデータの送受信が部分的にできる程度である。
また、HTTPは、いわゆるリクエスト−レスポンス型の単一方向通信プロトコルである。すなわち、HTTPでは、クライアントがサーバにリクエストを送信し、サーバがそのレスポンスとしてリクエストに応じたデータを返信する。レスポンスを返した時点で基本的にサーバは初期状態に戻る。つまり、サーバはクライアントの状態を保存しておらず、サーバからの能動的なアクションでクライアントへデータを送信することはできない。
ところで、最近ではSaaS(Software as a Service)と呼ばれる技術がインターネット上で広がりを見せている。SaaSとは、必要な機能を必要な分だけサービスとして利用できるようにしたソフトウェア(主にアプリケーションソフトウェア)のことである。一般にはクライアントがインターネット経由でサーバにアクセスして必要な機能を利用できるようにした仕組みで、ユーザが求めるサービスをオンデマンドで利用することが可能である。
このSaaSも、基本的にはHTTPに従って動作する。そのため、サービスの内容によってはサーバからのアクションでクライアントへデータを送信することが望まれるが、通常はこれを行うことができない。また、サーバのサービス(アプリケーションソフトウェア)からクライアントへのコールバックがセキュリティ上できない仕組みになっている。そのため、サーバの状態をルータやファイアウォールを透過してクライアントへ送信することもできない。
これに対して、マイクロソフト社から提供されている.NET Remotingというフレームワークは、サーバからクライアントへコールバックする機能を有している。よって、.NET Remotingを用いれば、HTTPによる双方向通信が可能であり、クライアントからのアクションに応じてデータを送受信することに加え、サーバからのアクションに応じてデータを送受信することもできる。また、.NET Remotingはバイナリ形式でのデータ通信機能も有しているため、HTTPと.NET Remotingとの組み合わせで、バイナリ形式でのデータ通信を簡単に実現することもできる。
しかしながら、.NET Remotingには、SaaSのように複数のユーザが求めるサービスを個々に提供しようとする場合、ルータのNAT(Network Address Translation)超えができないという欠点がある。NATとは、拠点内のLANでのみ通用するローカルアドレスとインターネット上のグローバルアドレスとを1対1の関係で相互変換する技術のことである。拠点内の端末からインターネット上のサーバにアクセスしてSaaSのサービスを利用する際には、NATによるアドレス変換(NAT越え)を行うことが必要になる。ところが、SaaS環境で.NET Remotingを使うと、このNAT越えができないという問題があった。
すなわち、図4に示すように、クライアント100からインターネット300を介してサーバ200にアクセスし、クライアント100がサーバ200に対して所望のサービス201の利用をリクエストする場合、クライアント100とインターネット300との間に設置されたルータ400において、NAT機能によりローカルアドレスからグローバルアドレスへの変換が行われる。また、インターネット300とサーバ200との間に設置されたルータ500において、NAT機能によりグローバルアドレスからローカルアドレスへの変換が行われる。しかし、サービス201の結果をサーバ200からクライアント100に返信する際に、ルータ500においてローカルアドレスからグローバルアドレスへの逆変換ができなくなってしまうのである。それは以下の理由による。
SaaSの場合、サーバ200は、複数のクライアント100からのリクエストに応じて同じサービス201を提供する必要がある。そこで、複数のクライアント100からの接続待ちを可能とするために、サービス201のアプリケーションソフトウェアは、一度接続されたクライアント100に対応する通信プロセス202を生成する。このとき生成する通信プロセス202には、新たなIPアドレスが設定される。すなわち、サーバ200にアクセスしてくるクライアント100毎に通信プロセス202を生成し、当該通信プロセス202に各クライアント100との通信を担当させることにより、複数のクライアント100からのリクエストに応じてサービス201を提供できるようにしている。
これにより、通信プロセス202が使うローカルアドレスは、クライアント100から接続されたときのローカルアドレス(ルータ500によりグローバルアドレスから変換されたもの)とは異なるIPアドレスとなる。そのため、通信プロセス202からクライアント100に対してレスポンスを返そうとしても、ルータ500のNAT機能では通信プロセス202のローカルアドレスをインターネット300上のグローバルアドレスに変換することができない。その結果、クライアント100への返信ができなくなってしまう。
なお、HTTPの代わりに、SOAPやメタフレームなどの専用プロトコルを使えば、.NET Remotingを使う必要がないので、NAT越えの問題は解消できる。しかしながら、専用プロトコルであるが故に汎用性がなく、バイナリデータの通信も行うことができない。また、HTTPに比べて処理速度が遅いという問題もある。
また、NAT越えを解決するための別の手段として、ルータのNAT機能により変換されるIPアドレスを特定するとともに、ルータのNAT機能により変換されるポート番号を予測し、NAT越えのための交換情報として中継サーバに登録するようにした技術も提案されている(例えば、特許文献1参照)。
特開2005−151142号公報
しかしながら、特許文献1に記載の技術は、特定端末と通信するためにIPアドレスにポート番号を組み合わせて識別するものである。このポート番号は中継サーバに登録されており、端末間の通信時にはNAT機能によるアドレス変換と同時にポート番号も変換されて常に変動する。そのため、SaaSのように多数のクライアントと通信するためには、多数のポート番号が必要となる。ところが、通常、ポート番号は他の用途にも使われており、NAT越えのために使えるポート番号の数には限界がある。その結果、同時にサービスを提供可能なクライアント数が少なくなってしまうという問題があった。
本発明は、このような問題を解決するために成されたものであり、インターネット上で汎用的に使えるHTTPにより、ハイパーテキスト形式に加えてバイナリ形式のデータ通信を使って、NAT越えの問題もなく多数のクライアントに対してSaaS型のサービスを提供できるようにすることを目的とする。
上記した課題を解決するために、本発明では、クライアントからルータを介してサーバにアクセスが行われたときに、サーバにおいて、ルータによりグローバルアドレスからローカルアドレスに変換されて届けられたIPアドレスに対して任意の識別情報を付与することにより新たな接続アドレスを生成し、その識別情報をクライアントに通知する。また、クライアントと通信を行うための通信プロセスを生成して、以降のクライアントとの通信は当該通信プロセスが新たな接続アドレスに基づいて行うようにしている。
上記のように構成した本発明によれば、クライアントからサーバに対してアクセスが行われたときに、その後の通信のために通信プロセスが生成され、当該通信プロセスで使用すべき新たな接続アドレスが設定される。このとき設定される新たな接続アドレスは、クライアントからサーバへのアクセス時に使用されたIPアドレスがそのまま承継され、任意の識別情報が付与される形で設定される。
そのため、IPアドレスそのものに変更はないので、グローバルアドレスとローカルアドレスとを1対1の関係で対応させたルータのNAT機能を問題なく使用することができる。また、使用可能な数に制限のあるポート番号ではなく、任意の識別情報を付与する形で新たな接続アドレスが設定されるので、NAT越えをして同時にサービス提供可能なクライアントの数を多くすることもできる。
さらに、NAT越えのために専用プロトコルを用いる必要もなく、HTTPのプロトコルを使いつつ本発明によるNAT越えの仕組みを適用することができる。このHTTPに.NET Remotingを組み合わせることにより、バイナリ形式でのデータ通信を簡単に実現することもできる。
以上のように、本発明によれば、インターネット上で汎用的に使えるHTTPにより、ハイパーテキスト形式に加えてバイナリ形式のデータ通信を使って、NAT越えの問題もなく多数のクライアントに対してSaaS型のサービスを提供することができる。
本実施形態による双方向通信システムの構成例を示すブロック図である。 インターネットとサーバとの間における接続アドレスの変換例を示す図である。 本実施形態によるサーバの動作例を示すフローチャートである。 従来の通信システムの構成例を示すブロック図である。
以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態による双方向通信システムの構成例を示すブロック図である。本実施形態の双方向通信システムは、クライアント10がインターネット30上のルータ40,50を介してサーバ20に接続可能に構成され、サーバ20上のアプリケーションソフトウェアによりクライアント10からの要求に応じたサービスを提供するように成されている。
クライアント10からインターネット30を介してサーバ20にアクセスし、クライアント10がサーバ20に対して所望のサービスの利用を要求する場合、クライアント10とインターネット30との間に設置されたルータ40において、NAT機能によりローカルアドレスからグローバルアドレスへの変換が行われる。また、インターネット30とサーバ20との間に設置されたルータ50において、NAT機能によりグローバルアドレスからローカルアドレスへの変換が行われる。
サーバ20は、以上のようなアクセスを通じてクライアント10から要求されたサービスを提供するために、当該サービスに対応するアプリケーションソフトウェア(図示せず)を実行する。そして、その実行結果をクライアント10に返信する。
このときサーバ20のアプリケーションソフトウェアは、SaaS型で複数のクライアント10に対してサービスを提供できるようにするために、一度接続されたクライアント10に対応する通信プロセスを生成し、それ以降のクライアント10との通信を当該通信プロセスに委託する。このとき生成する通信プロセスには、新たな接続アドレスが設定される。本実施形態は、この接続アドレスの設定方法に特徴がある。これに関して以下に詳しく説明する。
本実施形態のクライアント10は、その機能構成として、第1の通信処理部11および第2の通信処理部12を備えている。ここでは説明の便宜上、第1の通信処理部11および第2の通信処理部12を分けて図示しているが、これらは共通の通信IF(DLL:Dynamic Link Library)で構成されている。
また、本実施形態のサーバ20は、その機能構成として、アクセス受付部21、アドレス生成部22、識別情報通知部23、および通信プロセス生成部24を備えている。このうち、アクセス受付部21、アドレス生成部22および識別情報通知部23の各機能構成は、クライアント10に対してサービスを提供するためのアプリケーションソフトウェアにより実現される。
クライアント10の第1の通信処理部11は、サーバ20のアクセス受付部21に対してアクセスを行う。このアクセスは、所望のサービスの提供をサーバ20に要求するためにクライアント10が最初に行うアクセスである。本実施形態では、このアクセスの際に使用する接続アドレスとして、IPアドレスに対してシステムID(本発明の識別情報に相当する)およびポート番号を付加したものを用いる。システムIDは、本実施形態の双方向通信システムに固有の符号であり、あらかじめ決められている(例えば、「WAO」)。ポート番号は、あらかじめ決められた固定の番号である(例えば、「9000」)。
サーバ20のアクセス受付部21は、第1の通信処理部11からサービス要求のためにインターネット30およびルータ40,50を介して行われるアクセスを受け付ける。
アドレス生成部22は、アクセス受付部21によりアクセスが受け付けられたときに、ルータ50によりグローバルアドレスからローカルアドレスに変換されて届けられたIPアドレス(接続アドレスの一部)に対して任意のシステムIDを付与することにより、新たな接続アドレスを生成する。
具体的には、アドレス生成部22は、ルータ50によりグローバルアドレスからローカルアドレスに変換されて届けられたIPアドレスおよびポート番号をそのまま承継しつつ、当該IPアドレスに付与されている所定のシステムID(「WAO」)を任意のシステムIDに置換することによって、新たな接続アドレスを生成する。アドレス生成部22は、アクセス受付部21がクライアント10からのアクセスを受ける毎に新たなシステムIDを発行して接続アドレスを生成する。
識別情報通知部23は、アドレス生成部22により生成された新たな接続アドレスを用い、インターネット30およびルータ40,50を介してクライアント10の第2の通信処理部12に対して、アドレス生成部22により新たに付与されたシステムIDを通知する。
この通信の際に、ルータ40,50においてIPアドレスのNAT変換が行われるが、アドレス生成部22が生成した新たな接続アドレスはIPアドレスそのものに変更がないので、グローバルアドレスとローカルアドレスとを1対1の関係で対応させたルータのNAT機能を問題なく使用することができる。すなわち、サービスの要求を行ってきたクライアント10のIPアドレスを問題なく特定して、システムIDの通知を行うことができる。
通信プロセス生成部24は、アドレス生成部22により生成された新たな接続アドレスに基づいてクライアント10と通信するための通信プロセスを生成する。通信プロセス生成部24はクライアント10からの要求に応じて複数の通信プロセスを生成することが可能であり、生成した通信プロセスは通信プロセス生成部24が管理する。通信プロセス生成部24が通信プロセスを生成した時点で、通信プロセスはクライアント10からのアクセス待ちとなる。そして、それ以降はこの通信プロセスが、新たな接続アドレスを用いてクライアント10との間で双方向の通信を行う。
クライアント10の第2の通信処理部12は、通信プロセス生成部24により生成された通信プロセスとの間で通信を行うことによって、サーバ20から所望のサービスの提供を受ける。このとき第2の通信処理部12は、識別情報通知部23により通知されたシステムIDをIPアドレスに付与することによって生成した新たなアドレスを接続アドレスとして用いる。具体的には、第2の通信処理部12は、第1の通信処理部11が最初に使用した所定のシステムID(「WAO」)をサーバ20から通知された任意のシステムIDに置換して新たな接続アドレスを生成し、サーバ20にアクセスする。
図2は、インターネット30とサーバ20との間における接続アドレスの変換例を示す図である。図2では図示しないクライアント10の第1の通信処理部11がサーバ20のアクセス受付部21に対して最初にアクセスを行う際には、図2に示すように、IPアドレスに対して固定のシステムID(「WAO」)と固定のポート番号(「9000」)とを付加して成る接続アドレスが用いられる。ここでは、インターネット30上の接続アドレス(グローバルアドレス)が「http://211.11.110.15/WAO:9000」であるとする(この中で「211.11.110.150」の部分がIPアドレス)。
このグローバルアドレスは、ルータ50において、NAT機能によりローカルアドレスへと変換される。このNAT変換は、IPアドレスの部分をグローバルアドレスからローカルアドレスへ変換することによって行われる。ここでは、グローバルアドレスからNAT変換されたローカルアドレスが「http://192.168.1.1/WAO:9000」であるものとする。
このローカルアドレスに基づきアクセス受付部21がアクセスを受け付けると、アドレス生成部22は、そのローカルアドレスに含まれるIPアドレスおよびポート番号をそのまま承継しつつ、当該IPアドレスに付与されているシステムID(「WAO」)を任意のシステムID(例えば、「WAO1」)に置換することによって、新たな接続アドレス「http://192.168.1.1/WAO1:9000」を生成する。
識別情報通知部23は、アドレス生成部22により生成された新たな接続アドレスを用い、ルータ50を介してクライアント10に対して、新たに付与されたシステムID(「WAO1」)を通知する。この通信の際に、ルータ50においてIPアドレスの部分がローカルアドレスからグローバルアドレスにNAT変換される。これにより、グローバルアドレスは「http://211.11.110.15/WAO1:9000」となる。
この通知が行われた後は、クライアント10の第2の通信処理部12と、サーバ20の通信プロセス生成部24により生成された通信プロセスとの間で、新たな接続アドレスを用いて双方向の通信が行われる。このときルータ50においては、グローバルアドレス「http://211.11.110.15/WAO1:9000」とローカルアドレス「http://192.168.1.1/WAO1:9000」とのNAT変換が双方向に行われる。
なお、同じクライアント10からサーバ20に対し新たに別のサービスを要求するためのアクセスが行われたとする。このとき第1の通信処理部11からアクセス受付部21に対して行われるアクセスで使われる接続アドレスは先ほどと同じである。すなわち、インターネット30上のグローバルアドレスは「http://211.11.110.15/WAO:9000」、これがルータ50においてNAT変換されたローカルアドレスは「http://192.168.1.1/WAO:9000」である。
アクセス受付部21がアクセスを受け付けると、アドレス生成部22は、そのアクセスに使用されたローカルアドレスに含まれるシステムID(「WAO」)を、先ほどとは異なる任意のシステムID(例えば、「WAO2」)に置換することによって、新たな接続アドレス「http://192.168.1.1/WAO2:9000」を生成する。識別情報通知部23は、このようにして生成された新たな接続アドレスを用い、新たに付与されたシステムID(「WAO2」)をクライアント10に通知する。また、通信プロセス生成部24は、先ほどとは異なる別の通信プロセスを生成する。
新たなシステムIDがクライアント10に通知された後は、クライアント10の第2の通信処理部12と、サーバ20の通信プロセス生成部24により生成された別の通信プロセスとの間で、新たな接続アドレスを用いて双方向の通信が行われる。このときルータ50においては、グローバルアドレス「http://211.11.110.15/WAO2:9000」とローカルアドレス「http://192.168.1.1/WAO2:9000」とのNAT変換が双方向に行われる。
また、図示しない別のクライアント10からサーバ20に対してアクセスが行われた場合も同様である。すなわち、第1の通信処理部11からアクセス受付部21に対して行われるアクセスにおいて使われるシステムIDとポート番号、IPアドレスは同じものである。例えば、インターネット30上のグローバルアドレスが「http://211.11.110.15/WAO:9000」、これがルータ50においてNAT変換されたローカルアドレスが「http://192.168.1.1/WAO:9000」である。
アクセス受付部21がアクセスを受け付けると、アドレス生成部22は、そのアクセスに使用されたローカルアドレスに含まれるシステムID(「WAO」)を、先ほどとは更に異なるシステムID(例えば、「WAO3」)に置換することによって、新たな接続アドレス「http://192.168.1.1/WAO3:9000」を生成する。識別情報通知部23は、このようにして生成された新たな接続アドレスを用い、新たに付与されたシステムID(「WAO3」)を別のクライアント10に通知する。また、通信プロセス生成部24は、先ほどとは異なる別の通信プロセスを生成する。
新たなシステムIDが別のクライアント10に通知された後は、当該別のクライアント10における第2の通信処理部12と、サーバ20の通信プロセス生成部24により生成された別の通信プロセスとの間で、新たな接続アドレスを用いて双方向の通信が行われる。このときルータ50においては、グローバルアドレス「http://211.11.110.15/WAO3:9000」とローカルアドレス「http://192.168.1.1/WAO3:9000」とのNAT変換が双方向に行われる。
図3は、上記のように構成した本実施形態によるサーバ20の動作例を示すフローチャートである。図3のフローチャートに示す処理は、サーバ20の電源がオンとなっているときは常時、繰り返し実行されている。図3において、アクセス受付部21は、クライアント10の第1の通信処理部11からアクセスを受け付けたか否かを判定する(ステップS1)。アクセス受付部21が第1の通信処理部11からのアクセスを受けていない場合、処理はステップS5へ進む。
一方、アクセス受付部21が第1の通信処理部11からのアクセスを受け付けた場合、アドレス生成部22は、そのアクセスの際に使用された接続アドレスに含まれているIPアドレスおよびポート番号をそのまま承継しつつ、当該IPアドレスに付与されている固定のシステムIDを任意のシステムIDに置換することによって、新たな接続アドレスを生成する(ステップS2)。
識別情報通知部23は、アドレス生成部22により生成された新たな接続アドレスを用いて、アドレス生成部22により新たに付与されたシステムIDをクライアント10の第2の通信処理部12に通知する(ステップS3)。また、通信プロセス生成部24は、クライアント10とその後の通信を行うための通信プロセスを生成する(ステップS4)。
そして、通信プロセス生成部24により生成された通信プロセスは、クライアント10の第2の通信処理部12からのアクセスを受け付けたか否かを判定する(ステップS5)。通信プロセスが第2の通信処理部12からのアクセスを受けていない場合は、図3に示す処理を終了する。一方、第2の通信処理部12からのアクセスを受け付けた場合、通信プロセスは、クライアント10から要求されたサービス(アプリケーションソフトウェアの処理結果)をクライアント10に返信する(ステップS6)。
なお、サーバ20の通信プロセスからクライアント10の第2の通信処理部12にデータを送信した後すぐに、第2の通信処理部12から通信プロセスにアクセスを行う。そして、通信プロセスがそのアクセスを受け取って待機状態となり、アプリケーションソフトウェアによりサービスの処理が完了した時点でその処理結果をクライアント10に送信するようにしてもよい。このようにすれば、サーバ20からの能動的なアクションでクライアント10へデータを送信することが可能である。
以上詳しく説明したように、本実施形態では、クライアント10からルータ40,50を介してサーバ20にアクセスが行われたときに、サーバ20において、ルータ50によりグローバルアドレスからローカルアドレスに変換されて届けられたIPアドレスに対して任意のシステムIDを付与することにより新たな接続アドレスを生成し、そのシステムIDをクライアント10に通知する。また、クライアント10と通信を行うための通信プロセスを生成して、以降のクライアント10との通信は当該通信プロセスが新たな接続アドレスに基づいて行うようにしている。
このように構成した本実施形態によれば、クライアント10からサーバ20に対してアクセスが行われたときに、その後の通信のために通信プロセスが生成され、当該通信プロセスで使用すべき新たな接続アドレスが設定される。このとき設定される新たな接続アドレスは、クライアント10からサーバ20へのアクセス時に使用されたIPアドレスがそのまま承継され、任意のシステムIDが付与される形で設定される。
そのため、IPアドレスそのものに変更はないので、グローバルアドレスとローカルアドレスとを1対1の関係で対応させたルータ40,50のNAT機能を問題なく使用することができる。また、使用可能な数に制限のあるポート番号ではなく、任意のシステムIDを付与する形で新たな接続アドレスが設定されるので、NAT越えをして同時にサービス提供可能なクライアント10の数を多くすることもできる。つまり、1つのポート番号で複数のクライアント10からの通信を受けることができる。
さらに、NAT越えのために専用プロトコルを用いる必要もなく、HTTPのプロトコルを使いつつ本発明によるNAT越えの仕組みを適用することができる。このHTTPに.NET Remotingを組み合わせることにより、バイナリ形式でのデータ通信を簡単に実現することもできる。
なお、上記実施形態では、IPアドレスに対してシステムIDとポート番号とを付加して成る接続アドレスを用いる例について説明したが、本発明はこれに限定されない。例えば、IPアドレスに対してシステムIDのみを付加して成る接続アドレスを用いるようにしてもよい。
また、上記実施形態では、第1の通信処理部11がアクセス受付部21にアクセスするときに使用する接続アドレスにもシステムIDとポート番号を使用する例について説明したが、本発明はこれに限定されない。例えば、第1の通信処理部11がアクセス受付部21にアクセスするときに使用する接続アドレスにはシステムIDとポート番号とを使用せず、IPアドレスのみとしてもよい。
また、上記実施形態では、第1の通信処理部11がアクセス受付部21にアクセスするときに使用する接続アドレスにおいてIPアドレスに付与する識別情報として、双方向通信システムに固有のシステムIDを用いる例について説明したが、本発明はこれに限定されない。すなわち、固定の識別情報であれば、システムID以外の情報を用いてもよい。
本発明は、クライアントがインターネット上のルータを介してサーバに接続可能に構成され、サーバ上のアプリケーションソフトウェアによりクライアントからの要求に応じたサービスを提供するように成されたSaaS型の双方向通信システムに利用可能である。

Claims (3)

  1. クライアントがインターネット上のルータを介してサーバに接続可能に構成され、上記サーバがアプリケーションソフトウェアにより上記クライアントからの要求に応じたサービスを提供するように成された双方向通信システムであって、
    上記サーバは、上記クライアントからサービス要求のために上記ルータを介して行われるアクセスを受け付けるアクセス受付部と、
    上記アクセス受付部により上記アクセスが受け付けられたときに、上記ルータによりグローバルアドレスからローカルアドレスに変換されて届けられたIPアドレスに対して任意の識別情報を付与することにより新たな接続アドレスを生成するアドレス生成部と、
    上記アドレス生成部により生成された上記新たな接続アドレスを用い、上記ルータを介して上記クライアントに上記識別情報を通知する識別情報通知部と、
    上記アドレス生成部により生成された上記新たな接続アドレスに基づいて上記クライアントと通信するための通信プロセスを生成する通信プロセス生成部とを備え、
    上記クライアントは、上記サーバの上記アクセス受付部に対して上記アクセスを行う第1の通信処理部と、
    上記識別情報通知部により通知された上記識別情報をIPアドレスに付与することによって生成した上記新たな接続アドレスを用い、上記通信プロセス生成部により生成された通信プロセスとの間で通信を行うことによって上記サービスの提供を受ける第2の通信処理部とを備えたことを特徴とする双方向通信システム。
  2. 上記クライアントの上記第1の通信処理部は、IPアドレスに対して所定の識別情報を付加して成る接続アドレスを用いて上記アクセス受付部に対して上記アクセスを行い、
    上記サーバの上記アドレス生成部は、上記ルータによりグローバルアドレスからローカルアドレスに変換されて届けられた上記IPアドレスに付与されている上記所定の識別情報を上記任意の識別情報に置換することにより上記新たな接続アドレスを生成することを特徴とする請求項1に記載の双方向通信システム。
  3. インターネット上のルータを介してクライアントと接続可能に構成され、アプリケーションソフトウェアにより上記クライアントからの要求に応じたサービスを提供するように成されたサーバ装置であって、
    上記クライアントからサービス要求のために上記ルータを介して行われるアクセスを受け付けるアクセス受付部と、
    上記アクセス受付部により上記アクセスが受け付けられたときに、上記ルータによりグローバルアドレスからローカルアドレスに変換されて届けられたIPアドレスに対して任意の識別情報を付与することにより新たな接続アドレスを生成するアドレス生成部と、
    上記アドレス生成部により生成された上記新たな接続アドレスを用い、上記ルータを介して上記クライアントに上記識別情報を通知する識別情報通知部と、
    上記アドレス生成部により生成された上記新たな接続アドレスに基づいて上記クライアントと通信するための通信プロセスを生成する通信プロセス生成部とを備え、
    上記通信プロセス生成部により生成された上記通信プロセスが、上記新たな接続アドレスを用いて上記クライアントと通信するように成されたことを特徴とするサーバ装置。
JP2012514625A 2010-05-11 2010-05-11 双方向通信システムおよびこれに用いるサーバ装置 Active JP5326045B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/057928 WO2011141993A1 (ja) 2010-05-11 2010-05-11 双方向通信システムおよびこれに用いるサーバ装置

Publications (2)

Publication Number Publication Date
JPWO2011141993A1 true JPWO2011141993A1 (ja) 2013-07-22
JP5326045B2 JP5326045B2 (ja) 2013-10-30

Family

ID=44914062

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012514625A Active JP5326045B2 (ja) 2010-05-11 2010-05-11 双方向通信システムおよびこれに用いるサーバ装置

Country Status (10)

Country Link
US (1) US9838223B2 (ja)
EP (1) EP2571207B1 (ja)
JP (1) JP5326045B2 (ja)
KR (1) KR101696210B1 (ja)
CN (1) CN102918811B (ja)
DK (1) DK2571207T3 (ja)
ES (1) ES2666345T3 (ja)
NO (1) NO2571207T3 (ja)
PL (1) PL2571207T3 (ja)
WO (1) WO2011141993A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015026352A (ja) * 2013-07-29 2015-02-05 小松電機産業株式会社 情報監視システム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105376225B (zh) * 2015-11-02 2019-07-26 亚信科技(南京)有限公司 一种软件服务化的方法及装置
US10911407B1 (en) 2020-08-04 2021-02-02 Palo Alto Networks, Inc. Localization at scale for a cloud-based security service

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10247946A (ja) * 1997-03-03 1998-09-14 Nippon Telegr & Teleph Corp <Ntt> ネットワーク接続方式および方法ならびにネームサーバ
US7908481B1 (en) * 1999-12-17 2011-03-15 Avaya Inc. Routing data to one or more entities in a network
US6947992B1 (en) * 2000-05-01 2005-09-20 International Business Machines Corporation Maintaining HTTP session affinity in a cluster environment
US6661799B1 (en) * 2000-09-13 2003-12-09 Alcatel Usa Sourcing, L.P. Method and apparatus for facilitating peer-to-peer application communication
US7003574B1 (en) * 2000-11-01 2006-02-21 Microsoft Corporation Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
US20020083342A1 (en) * 2000-12-21 2002-06-27 Webb Brian T. Systems, methods and computer program products for accessing devices on private networks via clients on a public network
JP3548157B2 (ja) * 2001-12-26 2004-07-28 アライドテレシス株式会社 中継機器、アドレス変換制御方法、及びプログラム
TW574805B (en) * 2002-07-25 2004-02-01 Leadtek Research Inc Network address translation system and method thereof
EP1533944B8 (en) * 2002-09-20 2009-01-14 Panasonic Corporation Control of access by intermediate network element for connecting data communication networks
JP3445986B1 (ja) 2002-09-27 2003-09-16 松下電器産業株式会社 インターネットに接続するサーバ、機器および通信システム
US7305481B2 (en) * 2003-01-07 2007-12-04 Hexago Inc. Connecting IPv6 devices through IPv4 network and network address translator (NAT) using tunnel setup protocol
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
CN1301611C (zh) * 2003-01-21 2007-02-21 三星电子株式会社 用于在不同的专用网的网络设备之间支持通信的网关
US7363378B2 (en) 2003-07-01 2008-04-22 Microsoft Corporation Transport system for instant messaging
JP4029790B2 (ja) * 2003-07-09 2008-01-09 ブラザー工業株式会社 パケット通信制御装置及びパケット通信制御方法
JP4297747B2 (ja) * 2003-08-06 2009-07-15 株式会社日立製作所 ストレージ装置
JP4269226B2 (ja) 2003-11-14 2009-05-27 ソニー株式会社 情報通信システムおよび方法、情報処理装置および方法、プログラム並びに記録媒体
CN1943209A (zh) * 2004-04-20 2007-04-04 松下电器产业株式会社 通信网络系统和通信装置
KR20070005924A (ko) * 2004-04-20 2007-01-10 마쯔시다덴기산교 가부시키가이샤 통신 네트워크 시스템 및 통신 장치
JP2006050125A (ja) * 2004-08-03 2006-02-16 Matsushita Electric Ind Co Ltd 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
US8571011B2 (en) * 2004-08-13 2013-10-29 Verizon Business Global Llc Method and system for providing voice over IP managed services utilizing a centralized data store
US7466810B1 (en) * 2004-12-20 2008-12-16 Neltura Technology, Inc. Distributed system for sharing of communication service resources between devices and users
JP2006180295A (ja) * 2004-12-22 2006-07-06 Matsushita Electric Ind Co Ltd アドレス変換装置およびアドレス変換方法
JP4514623B2 (ja) * 2005-02-25 2010-07-28 パナソニック株式会社 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
JP4597706B2 (ja) * 2005-02-25 2010-12-15 パナソニック株式会社 情報処理システム、情報処理装置、サーバ装置、及び情報処理方法
US20070022289A1 (en) * 2005-07-20 2007-01-25 Mci, Inc. Method and system for providing secure credential storage to support interdomain traversal
JP2007124486A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 通信制御方法
JP2007124487A (ja) * 2005-10-31 2007-05-17 Toshiba Corp 通信制御方法
KR100803273B1 (ko) * 2005-12-27 2008-02-13 삼성전자주식회사 패킷 터널링하는 isatap 라우터 및 그 방법
CN101047548A (zh) * 2006-03-31 2007-10-03 株式会社日立制作所 多个nat的私有网络内的通信
JP4763560B2 (ja) * 2006-09-14 2011-08-31 富士通株式会社 接続支援装置
US7840701B2 (en) * 2007-02-21 2010-11-23 Array Networks, Inc. Dynamic system and method for virtual private network (VPN) packet level routing using dual-NAT method
US20080306798A1 (en) * 2007-06-05 2008-12-11 Juergen Anke Deployment planning of components in heterogeneous environments
JP2009165041A (ja) * 2008-01-09 2009-07-23 Sony Corp ネットワーク機器、アドレス変更通知方法及びアドレス変更通知プログラム
WO2009120301A2 (en) * 2008-03-25 2009-10-01 Square Products Corporation System and method for simultaneous media presentation
US8165090B2 (en) * 2008-05-15 2012-04-24 Nix John A Efficient handover of media communications in heterogeneous IP networks
US8165091B2 (en) * 2008-06-27 2012-04-24 Nix John A Efficient handover of media communications in heterogeneous IP networks using LAN profiles and network handover rules
US8589582B2 (en) * 2008-12-08 2013-11-19 Telefonaktiebolaget L M Ericsson (Publ) Broadband network access
JP5222201B2 (ja) * 2009-03-27 2013-06-26 株式会社野村総合研究所 Webコンテンツ表示監視システム
US8165122B2 (en) * 2009-05-26 2012-04-24 Alcatel Lucent System and method for converting unicast client requests into multicast client requests
EP2495920A4 (en) * 2009-10-30 2016-07-13 Fujitsu Ltd ADDRESS TRANSLATION DEVICE, ADDRESS TRANSLATION METHOD AND ADDRESS TRANSLATION PROGRAM
US8874785B2 (en) * 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8260840B1 (en) * 2010-06-28 2012-09-04 Amazon Technologies, Inc. Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
US8869275B2 (en) * 2012-11-28 2014-10-21 Verisign, Inc. Systems and methods to detect and respond to distributed denial of service (DDoS) attacks
JP6008801B2 (ja) * 2013-07-08 2016-10-19 株式会社日立製作所 伝送システム、送信方法、及び伝送装置
US9325621B1 (en) * 2013-11-27 2016-04-26 Sprint Communications Company L.P. Wireless device offload

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015026352A (ja) * 2013-07-29 2015-02-05 小松電機産業株式会社 情報監視システム

Also Published As

Publication number Publication date
KR101696210B1 (ko) 2017-01-13
WO2011141993A1 (ja) 2011-11-17
US9838223B2 (en) 2017-12-05
EP2571207A1 (en) 2013-03-20
DK2571207T3 (en) 2018-04-23
JP5326045B2 (ja) 2013-10-30
CN102918811B (zh) 2016-03-23
ES2666345T3 (es) 2018-05-04
NO2571207T3 (ja) 2018-08-04
EP2571207A4 (en) 2015-04-15
CN102918811A (zh) 2013-02-06
EP2571207B1 (en) 2018-03-07
PL2571207T3 (pl) 2018-07-31
US20130060847A1 (en) 2013-03-07
KR20130076797A (ko) 2013-07-08

Similar Documents

Publication Publication Date Title
Kim et al. IoT home gateway for auto-configuration and management of MQTT devices
CN105409183B (zh) 用于在html5应用中实现任何网络功能客户端或服务器的系统和设备
US7337237B2 (en) Mechanism to provide callback capabilities for unreachable network clients
US20130275492A1 (en) Enabling Web Clients to Provide Web Services
EP2854376B1 (en) Transmission method, device and system for media stream
JP2007109236A (ja) ウェブサービスを介してホームネットワーク機器のサービスをホームネットワーク外部に提供する方法及び装置
US20070150611A1 (en) DNS based client-server system and its use in electronic devices
JP5236581B2 (ja) 送信装置、その制御方法、プログラム及び情報処理システム
CN101981897A (zh) 根据标准协议opc ua在客户端服务器系统中通信的方法和装置
JP2004265379A (ja) 複数のネットワークを介してサービスを展開するためのメタサービスセレクタ、メタサービスセレクタプロトコル、方法、クライアント、サービス、ネットワークアクセスサーバ、分散システム、およびコンピュータソフトウェア製品
Khakimov et al. Investigation of methods for remote control IoT-devices based on cloud platforms and different interaction protocols
CN102077543A (zh) 计算机网络中用于用户设备间的资源共享的方法和装置
CN105530277A (zh) 一种设备间协同工作的方法及设备
CN106341453A (zh) 一种基于html5的高速虚拟桌面代理构建方法与系统
JP5326045B2 (ja) 双方向通信システムおよびこれに用いるサーバ装置
WO2019201111A1 (zh) 信息处理方法、装置、设备及计算机可读存储介质
CN105359494B (zh) 网站之间的镜像呈现系统、装置、方法及网络服务器节点
CN111611052B (zh) 在网页中与桌面应用交互的方法
EP2101474A1 (en) Service bindings for web services
White et al. Addressing the challenges of http-based mobile/cloud interaction
US20240256313A1 (en) Architecture to employ machine-learning model
CN115348319B (zh) 一种基于spice协议云桌面管理链接方法、系统及设备
JP2005078339A (ja) Wsdl文書生成装置および方法
Saranya et al. A Study on Middleware Technologies in Cloud Computing
CN115914377A (zh) 跨系统的通信方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130419

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130419

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130621

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130709

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130722

R150 Certificate of patent or registration of utility model

Ref document number: 5326045

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250