JP4315696B2 - ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 - Google Patents
ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 Download PDFInfo
- Publication number
- JP4315696B2 JP4315696B2 JP2003032727A JP2003032727A JP4315696B2 JP 4315696 B2 JP4315696 B2 JP 4315696B2 JP 2003032727 A JP2003032727 A JP 2003032727A JP 2003032727 A JP2003032727 A JP 2003032727A JP 4315696 B2 JP4315696 B2 JP 4315696B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- protocol
- host
- connection
- computer
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 81
- 230000004044 response Effects 0.000 claims description 108
- 230000006854 communication Effects 0.000 claims description 105
- 238000004891 communication Methods 0.000 claims description 99
- 238000012545 processing Methods 0.000 claims description 95
- 230000005540 biological transmission Effects 0.000 claims description 92
- 230000008569 process Effects 0.000 claims description 37
- 230000002452 interceptive effect Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 description 73
- 238000010586 diagram Methods 0.000 description 22
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 230000007175 bidirectional communication Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/029—Firewall traversal, e.g. tunnelling or, creating pinholes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明はホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法に関し、特にゲートウェイを経由したホストと端末間の通信を行うためのホスト端末エミュレーションプログラム、中継用プログラム、およびホスト端末エミュレーション方法に関する。
【0002】
【従来の技術】
従来のコンピュータネットワークの仕組みとして、データ処理を集中して行うホストコンピュータ(以下、単にホストという)に対して端末装置(以下、単に端末という)により対話型でアクセスする方法がある。対話型のアクセスとは、所定のアカウントでホストにログインし、操作入力に応答したコマンドをホストに入力したり、ホストからの出力データを表示したりするアクセス形態である。このようなシステムは、ホスト集中処理システムと呼ばれる。
【0003】
ホスト集中処理システムでは、データ処理がホストで集中して行われ、端末では複雑なデータ処理は行われない。そのため、端末は、操作入力内容をホストに送信する機能と、ホストから送られてきた情報を表示する機能とを備えていればよい。このような端末として、ダム端末が多く用いられていた。
【0004】
最近は、コンピュータネットワークとして、クライアントサーバシステムが用いられることが多くなっている。クライアントサーバシステムは、ワークステーションやパーソナルコンピュータなど、それぞれスタンドアロンとしても機能できるコンピュータ同士をネットワーク接続したシステムである。
【0005】
クライアントサーバシステムが普及したことにより、各ユーザが、クライアントコンピュータ(以下、単にクライアントという)として機能するワークステーションやパーソナルコンピュータを1台ずつ使用できるようになった。ただし、従来からのホスト集中処理に適した業務も残っているため、同一ネットワーク上に、ホスト集中処理システムとクライアントサーバシステムとの両方が構築されることがある。
【0006】
そこで、近年は、アプリケーションソフトにより、端末としての機能をクライアントに実装し、クライアントに実装された端末の機能を用いてホストを利用する手法が主流になっている。以下、このようなシステムを、ホスト連携処理システムと呼ぶ。
【0007】
現在、ホスト連携処理としては、TN(TelNet)プロトコル(TN3270標準(RFC1646)、TN3270E標準(RFC1647)に準拠などがある)などのインターネット/イントラネット用のプロトコルを利用した通信が実現されている。また、永続性のあるTCP/IPソケットコネクションを通してクライアントシステムとサーバシステムとを接続し、同様に永続性のあるTCP/IPソケットコネクションを通してサーバシステムと従来型のホストシステムを接続する技術も考えられている(たとえば、特許文献1参照)。これらの技術により、ホスト連携処理が可能となる。
【0008】
なお、クライアントからホストへのアクセスは、基本的にはLAN(Local Area Network)経由で行われるが、電話回線の利用などにより、クライアントと遠隔地のホストとの連携を実現する技術も一般的に用いられている。
【0009】
また、最近はインターネットの普及により、クライアントとホストとの連携の分野でもインターネット経由、あるいはTCP/IP(Transmission Control Protocol/Internet Protocol)、もしくはTCP/IP上のアプリケーションプロトコルを利用した遠隔ホストとの連携技術が確立されている。インターネット経由でホストの機能を利用できることで、ホスト集中処理システムの利便性が向上する。
【0010】
ところが、インターネット/イントラネット上のネットワーク通信は、セキュリティ上の問題を伴う。インターネット/イントラネットでのセキュリティ上の問題として、以下の4点が挙げられる。
【0011】
(1)不正アクセスなどのネットワーク攻撃(保護されたネットワーク内のコンピュータを標的とした不正な通信)を受けやすい。
(2)なりすまし(発信元を偽ってアクセスする行為)が可能である。
【0012】
(3)通信データの盗み読み(他人宛の通信データを不正に取得して、内容を読み取る行為)が可能である。
(4)通信データの改竄(他人宛の通信データの内容を、不正に書き換える行為)が可能である。
【0013】
インターネット/イントラネットのインフラ上では、上記に挙げたような不正行為を完全に防ぐことは事実上不可能である。そこで不正行為を受けても損害に至らないようにする工夫が必要となる。なお、イントラネットではインターネットに比べれば悪意を持つ第三者の数は少ないと思われるが、存在しないことが保証されるわけではない。よって、イントラネットの危険性はインターネットと同等である。
【0014】
これらのセキュリティ上の問題の解決手段として様々なものが考案されているが、一般的には次のような対策がとられている。
(1)不正アクセスなどのネットワーク攻撃に対しては、ネットワークを通過するプロトコルを制限することで対応できる。すなわち、全てのプロトコルの通過を許可して、あらゆる攻撃に備えることは困難であり、また膨大なコストが掛かる。そこで、ファイアウォールなどで監視対象のプロトコルやTCP/IP接続のポート番号を必要最低限(たとえば、HTTP(HyperText Transfer Protocol)、POP(Post Office Protocol)/SMTP(Simple Mail Transfer Protocol)のみ)に限定する。これにより、注意する対象を狭い範囲に絞り込めるため、安全性を向上させる事ができる。
【0015】
(2)なりすましに対しては、相手の認証を行うことで対処できる。すなわち、接続した相手が、自分が想定した相手であることを、パスワードなどにより認証する。これにより、相手になりすましている者との通信を防ぐことができる。
【0016】
(3)通信データの盗み読みに対しては、データの暗号化によって対処することができる。データを暗号化すれば、通信データの内容が、第三者にとって理解不能になる。そのため盗み読み行為の対象となっても、データの内容を知られる事を防ぐことができる。
【0017】
(4)通信データの改竄に対しては、受信データ毎に改竄の有無を検出することで対処できる。受信データが改竄されたことが検出できれば、改竄されたデータが送られてきても、そのデータを誤って使用することを避ける事ができる。その場合、正しいデータを受け取れるまで相手にデータ再送を要求することで、正しいデータを取得することができる。
【0018】
【特許文献1】
特表2001−509286号公報(第1図)
【0019】
【発明が解決しようとする課題】
しかし、インターネットやイントラネットを介してホスト連携処理を行う場合、以下の様な理由により、従来の技術では対処不可能なセキュリティ上の問題が発生する。
【0020】
ホスト連携処理に用いられるTNプロトコルは、不正アクセスなどのネットワーク攻撃の対策として、一般的には遮断されている。すなわち、ホスト連携処理を行わないインターネット/イントラネット環境では、ファイアウォールによる通信の制限機能を越えてTN接続で運用することはできない。
【0021】
ところが、インターネットやイントラネットを介してホスト連携通信を行うには、ファイアウォールによるTNプロトコルの通信制限を解除する必要がある。すると、ファイアウォールを経由したTNプロトコルでのホスト連携通信が可能となると同時に、危険なセキュリティホールが発生する。
【0022】
なお、ファイアウォールを通過可能に設定されているHTTPプロトコルを利用してホスト連携処理を実現できれば、TNプロトコルの通信制限を解除せずにすみ、セキュリティ上の信頼性を維持できる。ただし、HTTPプロトコルを用いてホスト連携通信を行うには、以下のような技術的な問題点がある。
【0023】
すなわち、ホスト集中処理システムでは、ホスト端末とホストとの間の通信が非同期の双方向通信であることが必要である。これは、インターネットやイントラネットを介してホスト連携処理を行う場合にも、任意のタイミングで発生する双方向の通信を処理できなければならないことを意味する。
【0024】
ところが、HTTPクライアントとウェブサーバとの間のHTTP通信プロトコルでは、常にクライアント側からの要求にウェブサーバが応答する手順で行われる。この手順を普通に利用する限りは、ホスト側から発せられる任意のタイミングの通信をクライアント側へ送信することができない。従って、クライアント側からの要求にサーバが応答する手順のプロトコルを利用して、非同期の双方向通信を可能とするための新たな技術が必要となる。また、特許文献1のように永続的なコネクションを利用してHTTPクライアントとウェブサーバとを接続してしまうと、悪意の第3者に対し、ホストに接続されたコネクションを解析するための時間を十分に与えることになる。その結果、ファイアウォールで保護されるべきシステムのセキュリティ低下を招いてしまう。
【0025】
本発明はこのような点に鑑みてなされたものであり、保護されたネットワーク内のホストと、そのネットワーク外のクライアントとによるホスト連携通信を、安全に行うことができるホスト端末エミュレーションプログラム、中継用プログラム、およびホスト端末エミュレーション方法を提供することを目的とする。
【0027】
【課題を解決するための手段】
本発明の第1の態様では上記課題を解決するために、図1に示すようなホスト端末エミュレーションプログラムが提供される。本発明に係るホスト端末エミュレーションプログラムは、そのホスト端末エミュレーションプログラムを実行するコンピュータを、第1のプロトコルの通過を拒否するファイアウォール2と接続させ、ファイアウォール2を経由して第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータ4に対する端末機能を実現するためのプログラムである。本発明に係るホスト端末エミュレーションプログラムは、コンピュータに以下の処理を実行させることができる。
【0028】
コンピュータは、第1のプロトコルとファイアウォール2の通過が許可された第2のプロトコルとの相互のデータ形式変換機能を有し、ファイアウォール2を経由して接続された中継装置3との間で、第2のプロトコルのデータを受信するための受信用接続を予め確立する(ステップS1)。次に、コンピュータは、操作入力に応答してホストコンピュータ4にデータを送信する際に、中継装置3に対し、第2のプロトコルのデータを送信するための送信用接続を確立する(ステップS2)。送信用接続を用いて、操作入力されたデータを第2のプロトコルで中継装置3に送信する(ステップS3)。受信用接続を用いて、ホストコンピュータ4から出力されたデータを、中継装置3から第2のプロトコルで受信する(ステップS9)。
【0029】
このようなホスト端末エミュレーションプログラムによれば、ホスト端末エミュレーションプログラムを実行するコンピュータは、ファイアウォール2を通過可能な第2のプロトコルにより、中継装置3に対してデータを送信する。また、第2のプロトコルによる受信用接続を予め確立していることで、ホストコンピュータ4からいつデータが出力されても、すぐに、中継装置3を介してそのデータがコンピュータで受信される。
【0030】
また、本発明の第2の態様では上記課題を解決するために、ファイアウォールを経由して接続されるクライアントコンピュータと、第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータとの間のデータを中継するための中継用プログラムにおいて、コンピュータに、前記クライアントコンピュータとの間で、前記ファイアウォールの通過が許可された第2のプロトコルによる受信用接続を予め確立し、前記クライアントからデータを受け取る際に、前記クライアントとの間で前記第2のプロトコルによる送信用接続を確立し、前記送信用接続を用いて、前記クライアントコンピュータから送られたデータを、前記第1のプロトコルに変換して前記ホストコンピュータに送信し、前記第1のプロトコルにより前記ホストコンピュータから送られたデータを、前記第2のプロトコルに変換して、前記受信用接続を用いて前記クライアントコンピュータに送信する、処理を実行させることを特徴とする中継用プログラムが提供される。
【0031】
このような中継用プログラムを実行するコンピュータによれば、コンピュータにより、クライアントコンピュータとの間で、第2のプロトコルによる受信用接続が予め確立される。また、コンピュータにより、クライアントからデータを受け取る際に、クライアントコンピュータとの間で第2のプロトコルによる送信用接続が確立される。そして、コンピュータにより、送信用接続を用いて、クライアントコンピュータから送られたデータが第1のプロトコルに変換され、ホストコンピュータに送信される。また、コンピュータにより、第1のプロトコルによりホストコンピュータから送られたデータが、第2のプロトコルに変換され、受信用接続を用いてクライアントコンピュータに送信される。
【0032】
また、本発明の第3の態様では上記課題を解決するために、第1のプロトコルの通過を拒否するファイアウォールを経由して接続され、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータに対する端末機能を実現するためのホスト端末エミュレーション方法において、前記第1のプロトコルと前記ファイアウォールの通過が許可された第2のプロトコルとの相互のデータ形式変換機能を有し、前記ファイアウォールを経由して接続された中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を予め確立し、操作入力に応答して前記ホストコンピュータにデータを送信する際に、前記中継装置に対し、前記第2のプロトコルのデータを送信するための送信用接続を確立し、前記送信用接続を用いて、操作入力されたデータを前記第2のプロトコルで前記中継装置に送信し、前記受信用接続を用いて、前記ホストコンピュータから出力されたデータを、前記中継装置から前記第2のプロトコルで受信する、ことを特徴とするホスト端末エミュレーション方法が提供される。
【0033】
このようなホスト端末エミュレーション方法によれば、上記本発明の第1の態様に係るホスト端末エミュレーションプログラムを実行するコンピュータと同様の処理が行われる。
【0039】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、本発明の実施の形態の具体的な内容を説明する。
【0040】
図1は、実施の形態に適用される発明の概念図である。図1に示すように、ホスト連携処理システムは、クライアントコンピュータ(クライアント)1、ファイアウォール2、中継装置3、およびホストコンピュータ(ホスト)4で構成される。クライアント1とファイアウォール2とは、ネットワーク5に接続されている。また、ファイアウォール2、中継装置3およびホスト4は、ネットワーク6に接続されている。ネットワーク6は、ファイアウォール2によってネットワーク5に接続されたコンピュータからのアクセスに対して保護されている。
【0041】
ここで、ホスト4は、第1のプロトコルにより、対話型のアクセスが可能である。対話型のアクセスとは、たとえば、telnetのように、ホスト4にログインして、対話型で相互作用の入出力を行うアクセス形態である。対話型のアクセスでは、ホスト4への入力と、ホスト4からの出力(入力に対する応答に限らない)とが任意のタイミングで行われる。対話型のアクセスを行うためのプロトコルとしては、たとえば、TNプロトコルがある。
【0042】
また、ファイアウォール2は、第1のプロトコルの通信を遮断している。すなわち、ネットワーク5上から、直接ホスト4に第1のプロトコルによるアクセスはできない。なお、ファイアウォール2は、第2のプロトコルによる通信は許可している。
【0043】
そこで、クライアント1をホスト4の端末として機能させるために、以下のような処理が行われる。なお、中継装置3は、第1のプロトコルと第2のプロトコルとの相互のデータ形式変換機能を有している。
【0044】
まず、クライアント1は、ファイアウォール2を経由して接続された中継装置3との間で、第2のプロトコルのデータを受信するための受信用接続を予め確立する(ステップS1)。次に、クライアント1は、操作入力に応答してホスト4にデータを送信する際に、中継装置3に対し、第2のプロトコルのデータを送信するための送信用接続を確立する(ステップS2)。そして、送信用接続を用いて、操作入力されたデータを第2のプロトコルで中継装置3に送信する(ステップS3)。
【0045】
中継装置3は、クライアント1から受け取ったデータを第1のプロトコルのデータに変換する(ステップS4)。そして、中継装置3は、第1のプロトコルに変換されたデータを、ホスト4に対して送信する(ステップS5)。
【0046】
ホスト4では、対話型の入力が行われると共に、データ処理が実行される(ステップS6)。このデータ処理は、クライアント1から送られたデータ(たとえば、ホスト連携)に応じた処理の場合もあるし、所定のタイミングで開始され、出力先としてクライアント1が予め指定された処理の場合もある。
【0047】
ホスト4のデータ処理が終了すると、処理結果が第1のプロトコルにより、対話型の出力として、ホスト4から中継装置3に送信される(ステップS7)。すると、中継装置3は、処理結果のデータ形式を第2のプロトコルに変換して、受信用接続を用いて、処理結果のデータをクライアント1に送信する(ステップS8)。そのデータがクライアント1で受信され、表示される(ステップS9)。
【0048】
これにより、ファイアウォール2において、第1のプロトコルの通信を遮断したまま、クライアント1とホスト4との間で、ホスト連携が可能となる。第1のプロトコルがファイアウォール2において遮断されることで、ネットワーク6内のコンピュータに対する第1のプロトコルによる不正アクセスを防止できる。
【0049】
すなわち、第1のプロトコルは、遠隔地からの対話型操作が可能なプロトコルであるため、ファイアウォール2を通過させてしまうと、保護されたネットワーク6内の全てのコンピュータが、第1のプロトコルによる不正アクセスの危険にさらされてしまう。本発明のように、第1のプロトコルによるアクセスをファイアウォール2で遮断すれば、第1のプロトコルによる不正アクセスから、ネットワーク6上のコンピュータが守られる。
【0050】
しかも、受信用接続を予め確立しておくことにより、ホスト4から任意のタイミングでデータが出力されても、そのデータをクライアント1で受信することができる。すなわち、ホスト4からファイアウォール2を介して接続されたクライアント1が、ホスト4に直結(たとえば、シリアル通信ケーブルによる接続)された端末(たとえば、ダム端末)と同様に機能することができる。
【0051】
ところで、図1に示す処理において、中継装置3を一般的なサーバと捉えた場合、クライアント1側からの要求にサーバ(中継装置3)が応答する手順で通信を行うプロトコルを用いた非同期の双方向通信が実現されている。この場合のサーバは、中継装置3からデータの中継機能(ホスト4とのコネクション確立機能やプロトコル変換機能)は不要である。非同期の双方向通信であれば、クライアントとサーバとの双方から、任意のタイミングでデータを相手に送信することが可能となる。たとえば、通信プロトコルとしてHTTPプロトコルを用いた場合、ウェブサーバからHTTPクライアントに対して能動的にデータを配信し、そのデータの内容をHTTPクライアントに表示させることも可能となる。
【0052】
しかも、クライアントとサーバとの間のコネクションは、データの受け渡しが行われる毎に切断することができる。この場合、クライアントは、受信用接続を用いてデータを受け取ると、既存の受信用接続を切断し、次のデータ受信用に、受信用接続を再度確立する。これにより、悪意の第3者によりコネクションの内容が解析される危険性が減る。その結果、永続的な1つのコネクションを用いて双方向通信を行う場合に比べ、高いセキュリティを保つことができる。
【0053】
[第1の実施の形態]
図2は、第1の実施の形態に係るホスト連携処理のシステム構成例を示す図である。第1の実施の形態では、複数のクライアント100,100aが、インターネット10を介してファイアウォール210に接続されている。同様に、複数のクライアント410,420がイントラネット20を介してファイアウォール210に接続されている。ファイアウォール210は、基幹ネットワーク30を介して、中継用コンピュータ300、TN接続ゲートウェイ220、およびホスト230に接続されている。ここで、基幹ネットワーク30は、外部からの不正なアクセスに対して、高いセキュリティが要求されるコンピュータネットワークである。
【0054】
クライアント100,100a,410,420は、ホスト端末機能を有するコンピュータである。ホスト端末機能は、アプリケーションソフトウェアによって実現されている。ホスト端末機能としては、たとえば、TNプロトコルによる通信機能がある。ここで、TNプロトコルは、telnet(仮想端末)のコマンドでホスト連携用データストリームを伝送するための仕掛け(=プロトコル)である。TNプロトコルとtelnetの違いは、telnetがパソコン通信のように1文字毎の伝送であり入力フィールドのようなものがないのに対し、TNプロトコルではブロック単位の転送でありフィールドや属性などの制御が可能となる点である。
【0055】
ファイアウォール210は、インターネット10から基幹ネットワーク30へのアクセスを制限するためのコンピュータである。アクセス制限は、ポート番号を指定して行うことができる。第1の実施の形態では、HTTPによるアクセスのみを通過させ、他のアクセスを遮断する。一般的に、HTTPのポート番号は80である。HTTPは、ウェブサーバにおいて、コンテンツの配信に利用されるプロトコルである。そのため、HTTP通信に対する不正アクセス等からウェブサーバを保護するための様々な技術が考えられている。したがって、HTTP通信がファイアウォール210を通過できるようにしても、基幹ネットワーク30内の安全性を保つことが可能である。
【0056】
中継用コンピュータ300は、クライアント100,100a,410,420とホスト230との間の通信データを中継するコンピュータである。具体的には、中継用コンピュータ300は、クライアント100,100a,410,420から出力されたHTTP要求をファイアウォール210を介して受信すると、そのHTTP要求をTNプロトコルのデータに変換する。中継用コンピュータ300は、TNプロトコルに変換されたデータを、TN接続ゲートウェイ220を介してホスト230に送信する。また、中継用コンピュータ300は、ホスト230から出力されたTNプロトコルの応答データを受信すると、そのTNプロトコルの応答データをHTTPによる応答データ(HTTP応答)に変換する。そして、中継用コンピュータ300は、HTTP応答を、ファイアウォール210を介して、クライアント100,100a,410,420宛てに、HTTPで送信する。
【0057】
TN接続ゲートウェイ220は、TNプロトコルによるホスト230との間の通信を行うためのゲートウェイである。第1の実施の形態では、中継用コンピュータ300を経由して、TNプロトコルの要求を受け取り、そのTNプロトコルの要求に従って、ホスト230にアクセスする。
【0058】
ホスト230は、各種データ処理を実行する汎用コンピュータである。ホスト230は、たとえば、クライアント100,100a,410,420からの要求に応答して処理を実行する。また、ホスト230は、予め設定された時刻に、予め指定された処理を自動的に実行し、処理結果をクライアント100,100a,410,420に送信する場合もある。
【0059】
図3は、本発明の実施の形態に用いるクライアントのハードウェア構成例を示す図である。クライアント100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0060】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
【0061】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0062】
通信インタフェース106は、インターネット10に接続されている。通信インタフェース106は、インターネット10を介して、他のクライアントとの間でデータの送受信を行う。
【0063】
以上のようなハードウェア構成によって、第1の実施の形態のクライアント100の処理機能を実現することができる。なお、図3には、クライアント100のハードウェア構成例を示したが、他のクライアント100a,410,420、ファイアウォール210、中継用コンピュータ300、TN接続ゲートウェイ220、およびホスト230も同様のハードウェア構成で実現することができる。
【0064】
ところで、図2に示したシステムは、ファイアウォール210で保護された基幹ネットワーク30内のホスト230と、その基幹ネットワーク30外のクライアント100,100a,410,420との間のホスト連携処理を実現するものである。HTTPは、クライアント100,100a,410,420からの要求に対して応答を行う構造で完結するプロトコルである。すなわち、HTTPの要求を受け付ける側(ウェブサーバ)は、クライアント100,100a,410,420からの要求がない限り、クライアント100,100a,410,420へのデータ送信は行わない。そのため通常の手段では、HTTPで双方向発のリアルタイム通信を実現することができない。
【0065】
一方、ホスト連携処理は、ホスト端末側、ホスト230側どちらからも任意のタイミングで通信が発生する通信である。そこで、第1の実施の形態では、以下のような機能によって、HTTPを介したホスト連携処理を実現する。
【0066】
図4は、ホスト連携処理に必要な機能を示すブロック図である。図4に示すように、クライアント100は、ホスト端末エミュレータ110、プロトコル制御部120、およびHTTP制御部130を有している。また、中継用コンピュータ300は、ウェブサーバ310と中継デーモン320とを有している。
【0067】
クライアント100内のホスト端末エミュレータ110は、ホスト230の端末として機能する。具体的には、ホスト端末エミュレータ110は、ユーザからのキーボード12やマウス13に対する操作入力を検知し、操作入力に応じた入力データを、TNプロトコルでプロトコル制御部120に渡す。また、ホスト端末エミュレータ110は、プロトコル制御部120から画面表示用のデータ(たとえば、キャラクタコード)をTNプロトコルで受け取ると、受け取ったデータに応じた情報(たとえば、キャラクタコードに対応する文字)をクライアント100のモニタ11に表示する。
【0068】
また、ホスト端末エミュレータ110は、起動された直後にも、ホストからのデータ受信の待機を中継用コンピュータ300に指示するデータ(受信要求)を、TNプロトコルでプロトコル制御部120に渡す。さらに、ホスト端末エミュレータ110は、受信要求に対する応答を受け取ったときには、再度、受信要求を、TNプロトコルでプロトコル制御部120に渡す。
【0069】
プロトコル制御部120は、ホスト端末エミュレータ110とHTTP制御部130との間で受け渡されるデータのプロトコル変換を行う。具体的には、プロトコル制御部120は、ホスト端末エミュレータ110から渡された入力データを、HTTPプロトコルのデータ(HTTP要求)に変換し、HTTP制御部130に渡す。また、プロトコル制御部120は、HTTP制御部130からHTTPプロトコルの受信データ(HTTP応答)を受け取ると、そのデータを、ホスト端末エミュレータ110が表示可能なデータ(たとえば、キャラクタコード)に変換して、ホスト端末エミュレータ110に渡す。
【0070】
HTTP制御部130は、中継用コンピュータ300との間のHTTPによる通信を行う。具体的には、HTTP制御部130は、プロトコル制御部120から渡されたHTTP要求を、インターネット10を介して、中継用コンピュータ300宛てに送信する。また、HTTP制御部130は、インターネット10を介して、中継用コンピュータ300からのHTTP応答を受信し、そのHTTP応答をプロトコル制御部120に渡す。
【0071】
中継用コンピュータ300内のウェブサーバ310は、ウェブページの閲覧サービスを提供するサーバである。ウェブサーバ310は、ウェブページの閲覧要求を受け付けたり、ウェブページを構成するコンテンツを配信するために、HTTPによる通信機能を有している。第1の実施の形態では、ウェブサーバ310が有するHTTPの通信機能を利用して、中継用コンピュータ300とクライアント100との間のHTTP要求やHTTP応答の送受信を行う。
【0072】
また、ウェブサーバ310は、拡張機能として、要求代理部311と応答待機部312とを有している。
要求代理部311は、HTTP要求を受信した際に起動される。起動された要求代理部311は、HTTP要求により送られたデータの内容を中継デーモン320に渡す。その後、要求代理部311は、ホスト230からの応答があるまで待機する。そして、要求代理部311は、データを受信したことによるホスト230からの結果通知を中継デーモンから受け取ると、その結果通知をHTTP応答としてクライアント100に送信する。
【0073】
応答待機部312は、受信要求のHTTP要求を受信した際に起動される。起動された応答待機部312は、ホスト230からの応答があるまで待機する。そして、応答待機部312は、ホスト230が処理を実行したことによる結果通知を中継デーモン320から受け取ると、その結果通知に基づいて、受信要求に対するHTTP応答を生成して、クライアント100に送信する。
【0074】
なお、要求代理部311と応答待機部312とは、共通のプログラムに基づいて実行させることができる。たとえば、ISAPI(Internet Server Application Program Interface)に従って記述されたプログラムにおいて、要求代理部311と応答待機部312との処理機能を定義しておく。そして、HTTP要求において、そのプログラムの実行を指定する。その際、HTTP要求内に、要求代理部311と応答待機部312とのどちらの機能を起動するのかを指定するパラメタを含めておく。これにより、中継用コンピュータ300では、HTTP要求に応じた拡張機能(要求代理部311または応答待機部312)が実行される。
【0075】
中継デーモン320は、ウェブサーバ310とホスト230との間のデータの送受信を中継する。なお、第1の実施の形態では、中継用コンピュータ300とホスト230との間のデータの送受信は、TNプロトコルで行われる。
【0076】
このとき、中継用コンピュータ300からホスト230に対してTNプロトコルによる直接のデータ入出力を行うこともできるし、TN接続ゲートウェイ220を介してデータ入出力を行うこともできる。TN接続ゲートウェイ220を介してデータ入出力を行う場合、中継デーモン320は、ウェブサーバ310から受け取ったデータを、TNプロトコルのデータに変換し、TN接続ゲートウェイ220に渡す。ホスト230に対して入力されたデータに対する結果通知は、TN接続ゲートウェイ220を介して、ホスト230から中継デーモン320へ渡される。
【0077】
ホスト230からの結果通知を受け取った中継デーモン320は、その結果通知をウェブサーバ310に渡す。
このような構成のシステムでは、クライアント100と中継用コンピュータ300との間に、2つの通信経路30,40が確立される。図4では、通信経路30,40を点線の枠で示している。通信経路30は、クライアント100からホスト230へデータを送信するための通信経路である。通信経路40は、ホスト230からのデータをクライアント100で受信するための通信経路である。
【0078】
データ送信の通信経路30で通信を行う際には、クライアント100と中継用コンピュータ300との間は、送信用接続(コネクション)31が確立される。送信用接続31は、HTTP制御部130からウェブサーバ310に対して、データをホスト230に入力するためのHTTP要求が出されたときから、そのHTTP要求に対するHTTP応答が返されるまでの間確立している。
【0079】
データ受信の通信経路40で通信を行う際には、クライアント100と中継用コンピュータ300との間は、受信用接続(コネクション)41が確立される。受信用接続41は、HTTP制御部130からウェブサーバ310に対して、受信要求のHTTP要求が出されたときから、そのHTTP要求に対するHTTP応答が返されるまでの間確立している。ただし、HTTP応答が返されると、即座に、次の受信要求のHTTP要求が出される。そのため、受信用接続41は、途中で瞬間的に接続状態が途絶えることはあるが、実質的には常時確立している。ここでいう実質的に受信用接続41が常時確立しているとは、ホスト230からデータがいつ出力されても、そのデータをクライアント100に送信できることを意味する。
【0080】
なお、クライアント100と中継用コンピュータ300との間のHTTPによる通信は、SSL(Secure Sockets Layer)によってセキュリティを確保することができる。SSLでは、認証局の署名の入った証明書を使ったウェブサーバ310の認証を行うことができる。さらにSSLでは、クライアント100とウェブサーバ310間での通信内容の暗号化を行うことができる。
【0081】
次に、図2〜図4に示したシステムにおけるホスト連携処理について具体的に説明する。
図5は、第1の実施の形態における状態遷移例を示す図である。図5の例では、クライアント100、ウェブサーバ310、中継デーモン320およびホスト230における状態遷移が示されている。
【0082】
図5(A)は、ホスト端末エミュレータ起動時の状態を示している。ホスト端末エミュレータ110が起動されると、クライアント100からウェブサーバ310へ受信要求のHTTP要求が送信される。そのHTTP要求を受信したウェブサーバ310では、応答待機部312が起動される。その後、応答待機部312は、結果通知の受信待ちの状態となる。
【0083】
なお、ホスト端末エミュレータ110は、クライアント100に対して、ホスト端末エミュレーションプログラムの実行要求が入力されたときに起動される。
図5(B)は、操作入力時の状態を示している。クライアント100に対してホスト230に入力すべきデータ(たとえば、ホスト230に実行させるべきコマンド)の操作入力が行われると、クライアント100からウェブサーバ310へ、データ送信のHTTP要求が送信される。ウェブサーバ310は、データ送信のHTTP要求を受信すると、要求代理部311を起動し、その要求代理部311にHTTP要求に含まれるデータを渡す。起動された要求代理部311は、受け取ったデータを中継デーモン320に渡し、ホスト230への対話型のデータ入力を依頼する。中継デーモン320は、受け取ったデータをTNプロトコルのデータ形式に変換し、TN接続ゲートウェイ220を介してホスト230に送信する。すると、ホスト230において、受信したデータに応じたデータ処理が実行される。たとえば、受信したデータが、ファイルのコピーコマンドであれば、ホスト230がファイルのコピーを実行する。
【0084】
また、中継デーモン320は、データ送信が完了したことを示す結果通知を要求代理部311に渡す。すると、要求代理部311は、受信した結果通知をウェブサーバ310に渡して、終了する(要求代理部311自身の機能を停止する)。ウェブサーバ310は、要求代理部311から受け取った送信完了を示すデータをHTTP応答として、クライアント100に送信する。
【0085】
なお、応答待機部312は、受信待ち状態のままである。
図5(C)は、データ処理終了時の状態を示している。ホスト230においてデータ処理が終了すると、処理結果を示すデータ(ホスト発データ)が、ホスト230から中継デーモン320に送信される。たとえば、ホスト230において、ファイルのコピーが行われたのであれば、コピーの正常終了等を示すメッセージが、ホスト230から中継デーモン320に送信される。
【0086】
中継デーモン320は、ホスト発データを受信して、ホスト発データを結果通知として応答待機部312に渡す。応答待機部312は、結果通知をウェブサーバ310に渡して、終了する(応答待機部312自身の機能を停止する)。ウェブサーバ310は、ホスト発データを含むデータを、受信通知のHTTP応答としてクライアント100に送信する。クライアント100は、ホスト発データを処理する。たとえば、クライアント100は、ホスト発データを画面に表示する。
【0087】
図5(D)は、受信通知またはタイムアウトのHTTP応答取得時の状態を示している。受信通知またはタイムアウトのHTTP応答を受信したクライアント100からウェブサーバ310へ、受信要求のHTTP要求が送信される。そのHTTP要求を受信したウェブサーバ310では、応答待機部312が起動される。その後、応答待機部312は、結果通知の受信待ちの状態となる。
【0088】
このように、ウェブサーバ310では、応答待機部312が受信待ち状態で、ホスト230からのデータの受信を待つことにより、ホスト230がどのようなタイミングでホスト発データを送信しても、すぐにホスト発データをクライアント100に送信することができる。
【0089】
以下に、クライアント100からのデータ送信時と、クライアント100におけるデータ受信時との処理の流れについて説明する。
図6は、クライアントからホストへのデータ送信の流れを示すシーケンス図である。なお、図6では、ファイアウォール210とTN接続ゲートウェイ220とを省略している。
【0090】
クライアント100は、ユーザからの操作入力に応答して、HTTP要求をウェブサーバ310に送信する(ステップS11)。ウェブサーバ310は、HTTP要求に応答して要求代理部311を起動し、起動した要求代理部311にHTTP要求に含まれるデータを渡す(ステップS12)。要求代理部311は、受け取ったデータを、中継デーモン用のデータ形式に変換して、中継デーモン320に渡す(ステップS13)。中継デーモン320は、要求代理部311から受け取ったデータをTNプロトコルのデータに変換して、ホスト230に送信する(ステップS14)。
【0091】
中継デーモン320は、データをホスト230に送信した後、送信完了の結果通知を、要求代理部311に渡す(ステップS15)。結果通知を受け取った要求代理部311は、結果通知をウェブサーバ310に渡して、処理を終了する(ステップS16)。ウェブサーバ310は、要求代理部311から受け取った送信完了を示す結果通知をHTTP応答として、クライアント100に送信する(ステップS17)。
【0092】
このようにして、クライアント100からのデータを、ホスト230に渡すことができる。たとえば、ユーザがクライアント100に対して、コマンドを入力すれば、そのコマンドがホスト230に渡される。そして、コマンドに従ったデータ処理が、ホスト230で実行される。
【0093】
ここで、クライアント100からウェブサーバ310へ送信するHTTP要求には、少なくとも要求代理部311の起動要求と、ホスト230に渡すべきデータとが含められる。
【0094】
図7は、データ送信時のHTTP要求のデータ構造例を示す図である。図7に示すHTTP要求51は、POSTメソッドを使用した場合の例である。
HTTP要求51は、URI(Uniform Resource Identifiers)部(相対パス部51aと相対パス部51aの後ろに「?」で接続されているパラメタ部51b)とHTTPボディー部51cとに分かれる。
【0095】
URI部の相対パス部51aには、要求代理部311の処理が記述されたプログラムの相対パスが設定される。図7の例では、URI部の相対パス部51aに「abc.com/ex.exe」と設定されている。
【0096】
パラメタ部51bとHTTPボディー部51cとには、起動された要求代理部311に渡されるデータが設定される。そのデータには、「send」(送信要求であることを示す)、「phd」(ホスト接続設定情報)、「guid」(端末識別情報)、「len」(ホスト通信データ情報)などが含まれている。
【0097】
次に、ホスト230からクライアント100へデータを送信するための処理について説明する。
ここで、ホスト230からクライアント100へのデータ送信処理を説明する前に、ホスト230からクライアント100へデータを送信するための技術的な課題について説明する。
【0098】
一般のホスト集中処理システムでは、ホスト端末とホストとの間の通信は非同期の双方向通信である。そのため、ホスト連携の通信を実現するプロトコルでは、任意のタイミングで発生する双方向の通信を処理できなければならない。しかし、HTTPクライアントとウェブサーバのHTTP通信プロトコルの手順は、常にクライアント側からの要求にウェブサーバが応答する手順で行われている。この手順を普通に利用する限りは、ホスト側から発せられる任意のタイミングの通信をクライアント側へ送信することができない。
【0099】
そこで、第1の実施の形態では、ウェブサーバ310上の拡張機能としてホスト発の通信を待ち続ける応答待機部312を生成しておく。これによって、ホスト発の任意のタイミングの通信を一般のウェブサーバを利用して端末側に通知することを可能にしている。
【0100】
すなわち、クライアント100とウェブサーバ310との間に、予め(ホスト230からデータ送信の要求が出される前に)受信用接続を確立する。受信用接続は、クライアント100がホスト230側からのデータ待ち受けるものである。クライアント100とウェブサーバ310との間には、常に1つ以上の受信用接続を確立してデータを待ち続ける。1つの受信用接続は、ホスト230側からクライアント100側に通信データが送信されたときに切断されるが、その後すぐに再び受信用接続を確立され、データ待ち受け状態が維持される。
【0101】
図8は、ホスト発のデータをクライアントで受信するための処理の流れを示すシーケンス図である。なお、図8では、ファイアウォール210とTN接続ゲートウェイ220とを省略している。
【0102】
クライアント100は、ホスト端末エミュレータ110が起動されると、受信要求のHTTP要求をウェブサーバ310に送信する(ステップS21)。これにより、クライアント100とウェブサーバ310との間に、データ受信用接続が確立する。すると、ウェブサーバ310は、応答待機部312を起動し、起動された応答待機部312にデータを渡す(ステップS22)。応答待機部312は、データを解析し、中継デーモン用データ形式に変換する。そして、応答待機部312は、中継デーモン用データ形式のデータを中継デーモン320に渡す(ステップS23)。以後、応答待機部312は、受信データの待ち受け状態となる。
【0103】
ホスト230は、クライアント100に結果を通知すべき処理が実行されると、中継デーモン320に対してデータ(ホスト発データ)を送信する(ステップS24)。ホスト発データを受け取った中継デーモン320は、データを受信したことを示す結果通知を応答待機部312に渡す(ステップS25)。応答待機部312は、受け取った結果通知に含まれるホスト発データを、HTTP形式のHTTP応答に変換して、ウェブサーバ310に渡す(ステップS26)。その後、応答待機部312の処理が終了する。ウェブサーバ310は、ホスト発データの受信通知を意味するHTTP応答を、クライアント100に送信する(ステップS27)。すると、クライアント100は、再度、受信要求のHTTP要求をウェブサーバ310に送信する(ステップS21)。これにより、クライアント100とウェブサーバ310との間に、データ受信用接続が再度確立し、応答待機部312が待ち受け状態となる。
【0104】
このようにして、ホスト230からのデータを、任意のタイミングでクライアント100に渡すことができる。たとえば、ホスト230において、クライアント100から受け取ったコマンドに応じた処理が完了すると、処理完了を示すメッセージがホスト230からクライアント100に送信される。
【0105】
ここで、クライアント100からウェブサーバ310へ送信するデータ受信時のHTTP要求には、少なくとも応答待機部312の起動要求が含められる。
図9は、データ受信時のHTTP要求のデータ構造例を示す図である。図9に示すHTTP要求52は、GETメソッドを使用した場合の例である。
【0106】
HTTP要求52は、プログラムの相対パス部52aとパラメタ部52bとに分かれる。
相対パス部52aには、応答待機部312の処理が記述されたプログラムの相対パスが設定される。図9の例では、相対パス部52aに「abc.com/ex.exe」と設定されている。
【0107】
パラメタ部52bには、起動された応答待機部312に渡されるデータが設定される。パラメタ部52bは、相対パス部52aの後ろに「?」で接続されている。パラメタ部52bのデータには、「Recv」(受信要求であることを示す)、「phd」(ホスト接続設定情報)、「guid」(端末識別情報)などが含まれている。
【0108】
次に、クライアント100と中継用コンピュータ300との内部で行われる処理手順について説明する。
図10は、クライアントで行われる処理の手順を示すフローチャートである。なお、図10に示す処理は、ホスト端末エミュレータ110が起動されたときに開始される。以下、図10に示す処理をステップ番号に沿って説明する。
【0109】
[ステップS31]クライアント100は、ホストにおいて各クライアントを一意に識別可能な端末識別情報(端末ID)を生成する。一意に識別可能なIDとして、たとえば、イーサネット(登録商標)のハードウェアアドレスを使用することができる。
【0110】
なお、端末IDを中継用コンピュータ300から取得するようにしてもよい。この場合、中継用コンピュータ300が、クライアント100を一意に識別可能な端末識別情報を生成して、クライアント100に通知する。クライアント100は、通知された端末識別情報を保持しておき、ステップS31の処理の際に読み出す。
【0111】
[ステップS32]クライアント100は、受信要求のHTTP要求を中継用コンピュータ300に対して送信する。具体的には、ホスト端末エミュレータ110が、受信要求のデータをプロトコル制御部120に渡す。プロトコル制御部120は、そのデータをHTTPに従ったデータに変換してHTTP制御部130に渡す。すると、HTTP制御部130が、HTTP要求としてインターネット10を介して中継用コンピュータ300にHTTPで送信する。なお、HTTP要求には端末識別情報が含まれる。
【0112】
[ステップS33]クライアント100は、操作入力の有無を検出する。ここでいう操作入力は、起動されているホスト端末エミュレータ110に対する操作入力である。操作入力がある場合には、処理がステップS34に進められる。操作入力がない場合には、処理がステップS35に進められる。
【0113】
[ステップS34]クライアント100は、データ送信のHTTP要求を中継用コンピュータ300に対して送信する。具体的には、ホスト端末エミュレータ110が、操作入力で入力されたデータをプロトコル制御部120に渡す。プロトコル制御部120は、受け取ったデータをHTTP形式のデータに変換して、HTTP制御部130に渡す。HTTP制御部130は、受け取ったデータを、データ送信のHTTP要求として中継用コンピュータ300に対して送信する。
【0114】
[ステップS35]クライアント100のホスト端末エミュレータ110は、受信通知のHTTP応答があるか否かを判断する。HTTP応答がある場合、処理がステップS36に進められる。HTTP応答がない場合、処理がステップS33に進められる。
【0115】
[ステップS36]クライアント100のホスト端末エミュレータ110は、受信通知のHTTP応答がホスト発データを含むか否かを判断する。ホスト発データを含まない場合とは、タイムアウトの受信通知である。ホスト発データを含む場合、処理がステップS37に進められる。ホスト発データを含まない場合、処理がステップS32に進められる。
【0116】
[ステップS37]クライアント100のホスト端末エミュレータ110は、ホスト発データを処理する。たとえば、ホスト端末エミュレータ110は、ホスト発データをモニタ11に表示する。その後、処理がステップS32に進められる。
【0117】
次に、中継用コンピュータ300における処理について説明する。
図11は、中継用コンピュータの処理手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
【0118】
[ステップS41]ウェブサーバ310は、HTTP要求を受信したか否かを判断する。HTTP要求を受信した場合、処理がステップS42に進められる。HTTP要求を受信していな場合、処理がステップS50に進められる。
【0119】
[ステップS42]ウェブサーバ310は、受信したHTTP要求がデータ送信を指示するHTTP要求か、データの受信を指示するHTTP要求かを判断する。たとえば、図7に示したHTTP要求51の様に、パラメタに送信要求(Send)が含まれていれば、データ送信のHTTP要求であることがわかる。また、図9に示したHTTP要求52の様に、パラメタに受信要求(Recv)が含まれていれば、受信要求のHTTP要求であることがわかる。送信要求であれば、処理がステップS44に進められる。受信要求であれば、処理がステップS43に進められる。
【0120】
[ステップS43]ウェブサーバ310は、応答待機部312を起動する。
[ステップS44]ウェブサーバ310は、要求代理部311を起動し、送信要求のHTTP要求に含まれるデータを、要求代理部311に渡す。すると、要求代理部311は、ウェブサーバ310から受け取ったデータを中継デーモン320に渡し、ホスト230へのデータ送信を依頼する。
【0121】
[ステップS45]中継デーモン320は、要求代理部311から受け取ったデータをTNプロトコルのデータに変換する。
[ステップS46]中継デーモン320は、TNプロトコルのデータを、TN接続ゲートウェイ220経由でホスト230に送信する。
【0122】
[ステップS47]中継デーモン320は、送信完了の結果通知を生成し、要求代理部311に渡す。
[ステップS48]要求代理部311は、送信完了の結果通知をウェブサーバ310に渡して終了する。
【0123】
[ステップS49]ウェブサーバ310は、送信完了の結果通知をHTTP応答としてクライアント100に送信する。その後、処理はステップS54に進められる。
【0124】
[ステップS50]中継デーモン320は、ホスト発データを受信したか否かを判断する。ホスト発データを受信した場合、処理がステップS51に進められる。ホスト発データを受信していなければ、処理がステップS54に進められる。
【0125】
[ステップS51]中継デーモン320は、受信通知の結果通知を生成し、応答待機部312に渡す。
[ステップS52]応答待機部312は、受け取った受信通知をウェブサーバ310に渡して終了する。
【0126】
[ステップS53]ウェブサーバ310は、受信通知の結果通知をHTTP応答としてクライアント100に送信する。その後、処理はステップS54に進められる。
【0127】
[ステップS54]ウェブサーバ310は、応答待機部312の待機時間がタイムアウト(所定の最大待機時間に達すること)となったかを判断する。タイムアウトになった場合には、処理がステップS55に進められる。タイムアウトになっていない場合には、処理がステップS41に進められる。
【0128】
[ステップS55]ウェブサーバ310は、応答待機部312を終了させる。
[ステップS56]ウェブサーバ310は、タイムアウトの結果通知を、HTTP応答としてクライアント100に送信する。その後、処理がステップS41に進められる。
【0129】
以上のようにして、次のような効果が得られる。
・安全性の高いホスト連携通信が可能となる。
HTTPプロトコルでのホスト連携通信を実現する事により、ファイアウォールなどのネットワークのセキュリティポリシーを緩める(TNプロトコルの接続を許可するなど)ことなくインターネット/イントラネット経由のホスト通信を行うことができる。
【0130】
・既存のホスト通信機能の資産を流用できる。
HTTPプロトコルでのホスト通信は従来にない新しいホスト接続形態であるが、既存のホスト通信プロトコル(TNプロトコルなど)とHTTPプロトコルとの中継機能を介して実現するため、既存のホスト通信用ゲートウェイなどの通信資産をそのまま流用する事が可能である。
【0131】
・既存のウェブサーバとその機能を利用できる。
クライアントと中継用コンピュータとの間にHTTPプロトコルでの通信処理を実装する必要があるが、本実施の形態ではこれを一般的なウェブサーバとその拡張プログラム(CGI(Common Gateway Interface)など)の機能を利用して実現している。これにより、中継用コンピュータ側のHTTP機能の開発が不要となる。しかも、ウェブサーバの持つ機能を流用できるため、例えば利用するウェブサーバがSSL通信を実装していればサーバ側のSSL通信処理の開発は不要である。
【0132】
このように、第1の実施の形態によれば、ホスト集中処理を用いたサービスを、インターネットを介して安全に行うことができる。たとえば、単純にCGIを用いただけのHTTPクライアントサーバシステムでは、クライアントからの要求が出されない限り、サーバからクライアントへ応答データを送信することができないが、第1の実施の形態のホスト連携処理を用いれば、ホスト側から任意のタイミングでデータをクライアントに送信することが可能となる。これにより、従来のインターネットに関連する技術では実施できなかったサービスを提供することもできる。
【0133】
たとえば、株の売買を行う個人投資家の場合、株価が値上がりしたときに即座に売り注文を出して、売買を成立させたいという要求がある。このような取引の場合、株価が値上がりしてから数十秒後に情報を受け取っても、その間に第3者の売り注文が先に出されると、株価が値下がりしてしまう。そのため、個人投資家は、株価が変化した時点で、即座に株価情報を取得する必要がある。第1の実施の形態によれば、ホスト230からクライアント100へ、いつでもデータを送信できる。そのため、株価に変更があった時に、即座に、ホスト230から個人投資家の使用するクライアント100へ株価データを送信できる。
【0134】
これにより、目的の銘柄の株価が変わった時点で、すぐにその情報をクライアントで取得することができる。したがって、個人投資家は、株式の売買のタイミングを逃さずにすむ。
【0135】
また、各クライアントから出力されるHTTP要求には、ホスト230が各クライアントを一意に識別可能な端末識別情報が含まれているため、ホスト230や中継用コンピュータ300において、複数のクライアントを個別に認識することができる。また、プロキシ経由のクライアントであっても、ホスト230や中継用コンピュータ300において、そのクライアントを他のコンピュータと区別することができる。
【0136】
[第2の実施の形態]
次に、第2の実施の形態について説明する。第2の実施の形態は、ウェブサーバを利用せずにホスト連携処理を行うものである。
【0137】
図12は、第2の実施の形態に係るホスト連携処理のシステム構成例を示す図である。図12に示す構成は、中継用コンピュータ500の構成以外は、図4に示した第1の実施の形態の構成と同様である。そこで、図12において、第1の実施の形態と同様の構成要素には、図4と同じ符号を付し説明を省略する。
【0138】
第2の実施の形態における中継用コンピュータ500は、ウェブサーバは有しておらず、中継デーモン510がHTTPの通信を行う。すなわち、図4に示した第1の実施の形態では、ウェブサーバ310のHTTP通信機能を利用するために、中継用コンピュータ300内にウェブサーバ310を導入している。しかし、図12に示すように、中継デーモン510が直接クライアント100とSSLによりデータを保護したHTTP通信を行うことができれば、中継用コンピュータ500がウェブサーバを有していなくてもよい。
【0139】
この場合、要求代理部511と応答待機部512との機能が、中継デーモン510内に設けられる。要求代理部511の機能は、図4に示した第1の実施の形態における要求代理部311の機能と同様である。また、応答待機部512の機能は、図4に示した第1の実施の形態における応答待機部312の機能と同様である。
【0140】
このようなシステムによれば、ホスト端末エミュレータ110が起動されると、クライアント100から中継用コンピュータ500に対して、応答待機要求を示すHTTP要求が送信される。すると、中継用コンピュータ500とクライアント100との間に、受信用接続41が確立する。同時に、中継デーモン510内に、応答待機部512が起動される。これにより、中継デーモン510は、ホスト230からのデータ待ち状態となり、ホスト230からクライアント100に対するデータを、いつでも受け付け可能となる。
【0141】
その後、クライアント100のホスト端末エミュレータ110に対して操作入力が行われると、クライアント100と中継用コンピュータ500との間で、送信用接続31が確立される。そして、送信用接続31を用いて、クライアント100から中継用コンピュータ500へデータ送信のHTTP要求が送信される。すると、中継用コンピュータ500の中継デーモン510において要求代理部511が生成される。生成された要求代理部511は、クライアント100から送られたHTTPのデータをTNプロトコルのデータに変換し、TN接続ゲートウェイ220を介してホスト230に送信する。同時に、中継デーモン510は、クライアント100に対して、送信完了のHTTP応答を送信し送信用接続を切断するとともに、要求代理部511を終了する。
【0142】
ホスト230で処理が実行され、クライアント100に対するデータ(ホスト発データ)が出力されると、中継デーモン510がホスト発データを受信する。中継デーモン510は、TNプロトコルのホスト発データをHTTPの受信通知に変換する。そして、中継デーモン510は、受信通知のHTTP応答を、応答待機部512に渡す。応答待機部512は、受信通知のHTTP応答をクライアント100に送信する。その後、応答待機部512の処理が終了すると共に、受信用接続が遮断される。
【0143】
受信通知のHTTP応答を受け取ったクライアント100は、HTTP応答に含まれるデータを表示すると共に、中継用コンピュータ500に対して待機要求のHTTP要求を送信する。これにより、再度、受信用接続41が確立される。
【0144】
このようにして、第2の実施の形態においても、第1の実施の形態と同様に、クライアント100とホスト230との間で、ホスト連携処理を実現することができる。その結果、ホスト230から任意の時刻に出力される対データを、HTTP通信によってクライアント100に送信することができる。
【0145】
[他の応用例等]
上記の第1の実施の形態のシステムを、既存のネットワーク環境上に構築する場合、たとえば、図13に示すようなシステム構成とすることができる。
【0146】
図13は、既存のネットワーク環境上にホスト連携処理機能を構築した例を示す図である。
クライアント100aは、パーソナルコンピュータ用のOSで制御されたコンピュータである。OSとしては、たとえば、米マイクロソフト社のWindows(登録商標)を使用することができる。この場合、WinInet(インターネットアクセス機能を持ったクライアントアプリケーションを開発するためのAPI)ライブラリを利用して、ホスト端末エミュレータ110aに、SSL通信が可能なHTTP制御部130aを実装することができる。
【0147】
また、クライアント100aの端末識別情報としては、グローバル・ユニークID(GUID)を用いることができる。
ファイアウォール210aは、HTTP通信のポート毎の通過許否を設定できるコンピュータであればよい。たとえば、UNIX(登録商標)のOS上でファイアウォールを構築することができる。
【0148】
中継用コンピュータ300aは、たとえば、米マイクロソフト社のWindowsNTServer4.0(登録商標)やWindows2000Server(登録商標)によって構築することができる。その場合、ウェブサーバ310aとして、IIS(Internet Information Service)を利用することができる。IISでウェブサーバ310aを構築した場合、要求代理部311aや応答待機部312aの機能を、HTTPホスト通信用のISAPI(Internet Server API)で実装することができる。
【0149】
中継デーモン320aは、ISAPIで実装された要求代理部311aや応答待機部312aとの通信を、メールスロット(プロセス通信を行うための手段の一つ)を経由して行うことができる。
【0150】
TN接続ゲートウェイ220aは、たとえば、富士通株式会社のFNAServer(登録商標)を使用することができる。
ホスト230aには、TNプロトコルなどの遠隔地から端末を接続するプロトコルに対応した各種汎用コンピュータを使用することができる。
【0151】
図13に示したような構成のシステムによって、本発明の第1と第2の実施の形態を実現することができる。
なお、第1と第2の実施の形態の説明では、ホスト端末エミュレータ110、プロトコル制御部120、およびHTTP制御部130を個別の要素として説明したが、プロトコル制御部120とHTTP制御部130との機能は、ホスト端末エミュレータ110に組み込まれていてもよい。
【0152】
また、上記の処理機能は、汎用的なサーバコンピュータとクライアントコンピュータとによって実現することができる。その場合、中継用コンピュータ300が有すべき機能の処理内容を記述した中継プログラム、およびクライアント100が有すべき機能の処理内容を記述したホスト端末エミュレーションプログラムが提供される。中継用プログラムをサーバコンピュータで実行することにより、中継用コンピュータ300の処理機能がサーバコンピュータ上で実現される。また、ホスト端末エミュレーションプログラムをクライアントコンピュータで実行することにより、クライアント100の処理機能がクライアントコンピュータ上で実現される。
【0153】
処理内容を記述した中継用プログラムやホスト端末エミュレーションプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0154】
中継用プログラムやホスト端末エミュレーションプログラムを流通させる場合には、たとえば、各プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、ホスト端末エミュレーションプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにホスト端末エミュレーションプログラムを転送することもできる。
【0155】
中継用プログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録された中継用プログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置から中継用プログラムを読み取り、中継用プログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接中継用プログラムを読み取り、その中継用プログラムに従った処理を実行することもできる。
【0156】
ホスト端末エミュレーションプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたホスト端末エミュレーションプログラムもしくはサーバコンピュータから転送されたホスト端末エミュレーションプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からホスト端末エミュレーションプログラムを読み取り、ホスト端末エミュレーションプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接ホスト端末エミュレーションプログラムを読み取り、そのホスト端末エミュレーションプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからホスト端末エミュレーションプログラムが転送される毎に、逐次、受け取ったホスト端末エミュレーションプログラムに従った処理を実行することもできる。
【0157】
なお、中継装置を一般的なサーバと捉えた場合、クライアントからの要求にサーバが応答する手順で通信を行うプロトコルを用いた非同期の双方向通信を実現するためのプログラムが提供される。すなわち、サーバ側のプログラムとして、前記中継プログラムから中継機能以外の通信処理が記述されたサーバプログラムが提供される。また、クライアント側のプログラムとして、クライアントからの要求にサーバが応答する手順で通信を行うプロトコルを用いた非同期の双方向通信をサーバとの間で実現するための処理が記述された通信プログラムが提供される。これらのプログラムも中継プログラムやホスト端末エミュレーションプログラムと同様に、可搬型記録媒体に記録して流通させたり、ネットワークを介して受け渡したりすることができる。
【0158】
(付記1) 第1のプロトコルの通過を拒否するファイアウォールを経由して接続され、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータに対する端末機能を実現するためのホスト端末エミュレーションプログラムにおいて、
コンピュータに、
前記第1のプロトコルと前記ファイアウォールの通過が許可された第2のプロトコルとの相互のデータ形式変換機能を有し、前記ファイアウォールを経由して接続された中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答して前記ホストコンピュータにデータを送信する際に、前記中継装置に対し、前記第2のプロトコルのデータを送信するための送信用接続を確立し、
前記送信用接続を用いて、操作入力されたデータを前記第2のプロトコルで前記中継装置に送信し、
前記受信用接続を用いて、前記ホストコンピュータから出力されたデータを、前記中継装置から前記第2のプロトコルで受信する、
処理を実行させることを特徴とするホスト端末エミュレーションプログラム。
【0159】
(付記2) 前記ホストコンピュータから出力されたデータを受信した際には、再度、前記中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を確立することを特徴とする付記1記載のホスト端末エミュレーションプログラム。
【0160】
(付記3) 前記受信用接続の確立可能期間のタイムアウトが発生した際には、再度、前記中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を確立することを特徴とする付記1記載のホスト端末エミュレーションプログラム。
【0161】
(付記4) 前記第2のプロトコルは、前記中継装置がウェブサーバ機能によってコンテンツの配信に利用されるプロトコルであることを特徴とする付記1記載のホスト端末エミュレーションプログラム。
【0162】
(付記5) 前記第2のプロトコルは、要求と応答との組が一回行われる毎に、接続の確立と遮断とを行うことの可能なプロトコルであることを特徴とする付記1記載のホスト端末エミュレーションプログラム。
【0163】
(付記6) 前記受信用接続を確立する際には、前記中継装置内の前記ホストコンピュータからのデータ受信を待機する機能の起動要求を、前記中継装置に対して出力することを特徴とする付記1記載のホスト端末エミュレーションプログラム。
【0164】
(付記7) ネットワーク上で一意に識別可能な識別情報を生成するか、または前記中継装置で生成された前記識別情報を受け取り、前記中継装置との送信接続および受信接続の確立の際には、前記識別情報を含む接続要求を前記中継装置に送信することを特徴とする付記1記載のホスト端末エミュレーションプログラム。
【0165】
(付記8) ファイアウォールを経由して接続されるクライアントコンピュータと、第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータとの間のデータを中継するための中継用プログラムにおいて、
コンピュータに、
前記クライアントコンピュータとの間で、前記ファイアウォールの通過が許可された第2のプロトコルによる受信用接続を予め確立し、
前記クライアントコンピュータからデータを受け取る際に、前記クライアントコンピュータとの間で前記第2のプロトコルによる送信用接続を確立し、
前記送信用接続を用いて、前記クライアントコンピュータから送られたデータを、前記第1のプロトコルに変換して前記ホストコンピュータに送信し、
前記第1のプロトコルにより前記ホストコンピュータから送られたデータを、前記第2のプロトコルに変換して、前記受信用接続を用いて前記クライアントコンピュータに送信する、
処理を実行させることを特徴とする中継用プログラム。
【0166】
(付記9) 第1のプロトコルの通過を拒否するファイアウォールを経由して接続され、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータに対する端末機能を実現するためのホスト端末エミュレーション方法において、
前記第1のプロトコルと前記ファイアウォールの通過が許可された第2のプロトコルとの相互のデータ形式変換機能を有し、前記ファイアウォールを経由して接続された中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答して前記ホストコンピュータにデータを送信する際に、前記中継装置に対し、前記第2のプロトコルのデータを送信するための送信用接続を確立し、
前記送信用接続を用いて、操作入力されたデータを前記第2のプロトコルで前記中継装置に送信し、
前記受信用接続を用いて、前記ホストコンピュータから出力されたデータを、前記中継装置から前記第2のプロトコルで受信する、
ことを特徴とするホスト端末エミュレーション方法。
【0167】
(付記10) ファイアウォールを経由して接続されるクライアントコンピュータと、第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータとの間のデータを中継するためのデータ中継方法において、
前記クライアントコンピュータとの間で、前記ファイアウォールの通過が許可された第2のプロトコルによる受信用接続を予め確立し、
前記クライアントコンピュータからデータを受け取る際に、前記クライアントコンピュータとの間で前記第2のプロトコルによる送信用接続を確立し、
前記送信用接続を用いて、前記クライアントコンピュータから送られたデータを、前記第1のプロトコルに変換して前記ホストコンピュータに送信し、
前記第1のプロトコルにより前記ホストコンピュータから送られたデータを、前記第2のプロトコルに変換して、前記受信用接続を用いて前記クライアントコンピュータに送信する、
ことを特徴とするデータ中継方法。
【0168】
(付記11) 第1のプロトコルの通過を拒否するファイアウォールを経由して接続され、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータに対する端末機能を有するホスト端末装置において、
前記第1のプロトコルと前記ファイアウォールの通過が許可された第2のプロトコルとの相互のデータ形式変換機能を有し、前記ファイアウォールを経由して接続された中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を予め確立する受信用接続確立手段と、
操作入力に応答して前記ホストコンピュータにデータを送信する際に、前記中継装置に対し、前記第2のプロトコルのデータを送信するための送信用接続を確立する送信用接続確立手段と、
前記送信用接続確立手段が確立した前記送信用接続を用いて、操作入力されたデータを前記第2のプロトコルで前記中継装置に送信する送信手段と、
前記受信用接続確立手段が確立した前記受信用接続を用いて、前記ホストコンピュータから出力されたデータを、前記中継装置から前記第2のプロトコルで受信する受信手段と、
を有することを特徴とするホスト端末装置。
【0169】
(付記12) ファイアウォールを経由して接続されるクライアントコンピュータと、第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータとの間のデータを中継するための中継装置において、
前記クライアントコンピュータとの間で、前記ファイアウォールの通過が許可された第2のプロトコルによる受信用接続を予め確立する受信用接続確立手段と、
前記クライアントコンピュータからデータを受け取る際に、前記クライアントコンピュータとの間で前記第2のプロトコルによる送信用接続を確立する送信用接続確立手段と、
前記送信用接続確立手段が確立した前記送信用接続を用いて、前記クライアントコンピュータから送られたデータを、前記第1のプロトコルに変換して前記ホストコンピュータに送信し、
前記第1のプロトコルにより前記ホストコンピュータから送られたデータを、前記第2のプロトコルに変換して、前記受信用接続確立手段が確立した前記受信用接続を用いて前記クライアントコンピュータに送信する、
ことを特徴とする中継装置。
【0170】
(付記13) 第1のプロトコルの通過を拒否するファイアウォールを経由して接続され、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータに対する端末機能を実現するためのホスト端末エミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記第1のプロトコルと前記ファイアウォールの通過が許可された第2のプロトコルとの相互のデータ形式変換機能を有し、前記ファイアウォールを経由して接続された中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答して前記ホストコンピュータにデータを送信する際に、前記中継装置に対し、前記第2のプロトコルのデータを送信するための送信用接続を確立し、
前記送信用接続を用いて、操作入力されたデータを前記第2のプロトコルで前記中継装置に送信し、
前記受信用接続を用いて、前記ホストコンピュータから出力されたデータを、前記中継装置から前記第2のプロトコルで受信する、
処理を実行させることを特徴とするホスト端末エミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体。
【0171】
(付記14) ファイアウォールを経由して接続されるクライアントコンピュータと、第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータとの間のデータを中継するための中継用プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記クライアントコンピュータとの間で、前記ファイアウォールの通過が許可された第2のプロトコルによる受信用接続を予め確立し、
前記クライアントコンピュータからデータを受け取る際に、前記クライアントコンピュータとの間で前記第2のプロトコルによる送信用接続を確立し、
前記送信用接続を用いて、前記クライアントコンピュータから送られたデータを、前記第1のプロトコルに変換して前記ホストコンピュータに送信し、
前記第1のプロトコルにより前記ホストコンピュータから送られたデータを、前記第2のプロトコルに変換して、前記受信用接続を用いて前記クライアントコンピュータに送信する、
処理を実行させることを特徴とする中継用プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0172】
(付記15) クライアント側からの要求にサーバが応答する手順で通信を行うプロトコルを用いて、前記サーバとの間の通信機能を実現するための通信プログラムにおいて、
コンピュータに、
前記サーバとの間で、前記プロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答してデータを送信する際に、前記サーバに対し、前記プロトコルのデータを送信するための送信用接続を確立し、
前記送信用接続を用いて、操作入力されたデータを前記プロトコルで前記サーバに送信し、
前記受信用接続を用いて、前記サーバから出力されたデータを前記プロトコルで受信する、
処理を実行させることを特徴とする通信プログラム。
【0173】
(付記16) クライアント側からの要求にサーバが応答する手順で通信を行うプロトコルを用いて、前記サーバとの間の通信機能をクライアント側で実現するための通信方法において、
前記サーバとの間で、前記プロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答してデータを送信する際に、前記サーバに対し、前記プロトコルのデータを送信するための送信用接続を確立し、
前記送信用接続を用いて、操作入力されたデータを前記プロトコルで前記サーバに送信し、
前記受信用接続を用いて、前記サーバから出力されたデータを前記プロトコルで受信する、
ことを特徴とする通信方法。
【0174】
(付記17) クライアント側からの要求にサーバが応答する手順で通信を行うプロトコルを用いて、前記サーバとの間の通信機能を備えたクライアントコンピュータにおいて、
前記サーバとの間で、前記プロトコルのデータを受信するための受信用接続を予め確立する受信用接続確立手段と、
操作入力に応答してデータを送信する際に、前記サーバに対し、前記プロトコルのデータを送信するための送信用接続を確立する送信用接続確立手段と、
前記送信用接続確立手段が確立した前記送信用接続を用いて、操作入力されたデータを前記プロトコルで前記サーバに送信する送信手段と、
前記受信用接続確立手段が確立した前記受信用接続を用いて、前記サーバから出力されたデータを前記プロトコルで受信する受信手段と、
を有することを特徴とするクライアントコンピュータ。
【0175】
(付記18) クライアント側からの要求にサーバが応答する手順で通信を行うプロトコルを用いて、前記サーバとの間の通信機能を実現するための通信プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記サーバとの間で、前記プロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答してデータを送信する際に、前記サーバに対し、前記プロトコルのデータを送信するための送信用接続を確立し、
前記送信用接続を用いて、操作入力されたデータを前記プロトコルで前記サーバに送信し、
前記受信用接続を用いて、前記サーバから出力されたデータを前記プロトコルで受信する、
処理を実行させることを特徴とする通信プログラムを記録したコンピュータ読み取り可能な記録媒体。
【0176】
【発明の効果】
以上説明したように本発明に係るホスト端末エミュレーションプログラム、中継用プログラム、およびホスト端末エミュレーション方法では、ゲートウェイの通過が遮断されるプロトコルでホストコンピュータとホスト連携を行う中継装置に対して、ゲートウェイを通過可能なプロトコルのデータを受信するための受信用接続を予め確立し、受信用接続を用いて、ホストコンピュータから出力されたデータを、中継装置から受信するようにした。これにより、ホストコンピュータを含む保護されたネットワークの安全性を損なわずに、保護されたネットワークの外部からホストコンピュータに対するホスト連携による入出力が可能となる。
【図面の簡単な説明】
【図1】実施の形態に適用される発明の概念図である。
【図2】第1の実施の形態に係るホスト連携処理のシステム構成例を示す図である。
【図3】本発明の実施の形態に用いるクライアントのハードウェア構成例を示す図である。
【図4】ホスト連携処理に必要な機能を示すブロック図である。
【図5】第1の実施の形態における状態遷移例を示す図である。図5(A)は、ホスト端末エミュレータ起動時の状態を示しており、図5(B)は、操作入力時の状態を示しており、図5(C)は、データ処理終了時の状態を示しており、図5(D)は、受信通知またはタイムアウトのHTTP応答取得時の状態を示している。
【図6】クライアントからホストへのデータ送信の流れを示すシーケンス図である。
【図7】データ送信時のHTTP要求のデータ構造例を示す図である。
【図8】ホスト発のデータをクライアントで受信するための処理の流れを示すシーケンス図である。
【図9】データ受信時のHTTP要求のデータ構造例を示す図である。
【図10】クライアントで行われる処理の手順を示すフローチャートである。
【図11】中継用コンピュータの処理手順を示すフローチャートである。
【図12】第2の実施の形態に係るホスト連携処理のシステム構成例を示す図である。
【図13】既存のネットワーク環境上にホスト連携処理機能を構築した例を示す図である。
【符号の説明】
1 クライアント
2 ファイアウォール
3 中継装置
4 ホスト
5,6 ネットワーク
10 インターネット
20 イントラネット
30 基幹ネットワーク
100,100a,410,420 クライアント
210 ファイアウォール
220 TN接続ゲートウェイ
230 ホスト
300 中継用コンピュータ
Claims (7)
- 非同期の双方向通信を行う第1のプロトコルの通過を拒否し、一方からの要求に受信側が応答する手順で通信を行う第2のプロトコルの通過を許可するファイアウォールを経由して接続され、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータに対する端末機能を実現するためのホスト端末エミュレーションプログラムにおいて、
コンピュータに、
前記ファイアウォールを経由して接続された中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答して前記ホストコンピュータにデータを送信する際に、前記中継装置に対し、前記第2のプロトコルのデータを送信するための送信用接続を確立し、
操作入力に応答して前記第1のプロトコルのデータ形式で作成された送信データを前記第2のプロトコルのデータ形式に変換し、変換された前記送信データを、前記送信用接続を用いて前記第2のプロトコルで前記中継装置に送信し、
前記ホストコンピュータから出力されたホスト発データを、前記受信用接続を用いて前記中継装置から前記第2のプロトコルで受信し、前記第1のプロトコルのデータ形式に変換する、
処理を実行させることを特徴とするホスト端末エミュレーションプログラム。 - 前記ホストコンピュータから出力された前記ホスト発データを受信した際には、再度、前記中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を確立することを特徴とする請求項1記載のホスト端末エミュレーションプログラム。
- 前記受信用接続の確立可能期間のタイムアウトが発生した際には、再度、前記中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を確立することを特徴とする請求項1記載のホスト端末エミュレーションプログラム。
- 前記受信用接続を確立する際には、前記中継装置内の前記ホストコンピュータからのデータ受信を待機する機能の起動要求を、前記中継装置に対して出力することを特徴とする請求項1記載のホスト端末エミュレーションプログラム。
- ネットワーク上で一意に識別可能な識別情報を生成するか、または前記中継装置で生成された前記識別情報を受け取り、前記中継装置との前記送信用接続および前記受信用接続の確立の際には、前記識別情報を含む接続要求を前記中継装置に送信することを特徴とする請求項1記載のホスト端末エミュレーションプログラム。
- 非同期の双方向通信を行う第1のプロトコルの通過を拒否し、一方からの要求に受信側が応答する手順で通信を行う第2のプロトコルの通過を許可するファイアウォールを経由して接続されるクライアントコンピュータと、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータとの間のデータを中継するための中継用プログラムにおいて、
コンピュータに、
前記クライアントコンピュータとの間で、前記第2のプロトコルによる受信用接続を予め確立し、
前記クライアントコンピュータからデータを受け取る際に、前記クライアントコンピュータとの間で前記第2のプロトコルによる送信用接続を確立し、
前記クライアントコンピュータから送られた送信データを前記第1のプロトコルのデータ形式に変換し、変換された前記送信データを、前記送信用接続を用いて前記ホストコンピュータに送信し、
前記第1のプロトコルにより前記ホストコンピュータから送られた前記第1のプロトコルのデータ形式のホスト発データを、前記第2のプロトコルのデータ形式に変換し、変換された前記ホスト発データを、前記受信用接続を用いて前記クライアントコンピュータに送信する、
処理を実行させることを特徴とする中継用プログラム。 - 非同期の双方向通信を行う第1のプロトコルの通過を拒否し、一方からの要求に受信側が応答する手順で通信を行う第2のプロトコルの通過を許可するファイアウォールを経由して接続され、前記第1のプロトコルによる遠隔地からの対話型操作が可能なホストコンピュータに対する端末機能を実現するためのホスト端末エミュレーション方法において、
前記ファイアウォールを経由して接続された中継装置との間で、前記第2のプロトコルのデータを受信するための受信用接続を予め確立し、
操作入力に応答して前記ホストコンピュータにデータを送信する際に、前記中継装置に対し、前記第2のプロトコルのデータを送信するための送信用接続を確立し、
操作入力に応答して前記第1のプロトコルのデータ形式で作成された送信データを前記第2のプロトコルのデータ形式に変換し、変換された前記送信データを、前記送信用接続を用いて前記第2のプロトコルで前記中継装置に送信し、
前記ホストコンピュータから出力されたホスト発データを、前記受信用接続を用いて前記中継装置から前記第2のプロトコルで受信し、前記第1のプロトコルのデータ形式に変換する、
ことを特徴とするホスト端末エミュレーション方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003032727A JP4315696B2 (ja) | 2002-03-29 | 2003-02-10 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
US10/391,700 US7212962B2 (en) | 2002-03-29 | 2003-03-19 | Host-terminal emulation program, a relay program, a host-terminal emulation method, a communication program, a communication method, and a client computer |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002093954 | 2002-03-29 | ||
JP2003032727A JP4315696B2 (ja) | 2002-03-29 | 2003-02-10 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004005427A JP2004005427A (ja) | 2004-01-08 |
JP4315696B2 true JP4315696B2 (ja) | 2009-08-19 |
Family
ID=28456332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003032727A Expired - Fee Related JP4315696B2 (ja) | 2002-03-29 | 2003-02-10 | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7212962B2 (ja) |
JP (1) | JP4315696B2 (ja) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US7562146B2 (en) * | 2003-10-10 | 2009-07-14 | Citrix Systems, Inc. | Encapsulating protocol for session persistence and reliability |
US7661129B2 (en) | 2002-02-26 | 2010-02-09 | Citrix Systems, Inc. | Secure traversal of network components |
US8126999B2 (en) | 2004-02-06 | 2012-02-28 | Microsoft Corporation | Network DNA |
JP4611062B2 (ja) * | 2005-03-09 | 2011-01-12 | 株式会社日立製作所 | 計算機システムおよび計算機システムにおけるデータのバックアップ方法 |
US7725595B1 (en) * | 2005-05-24 | 2010-05-25 | The United States Of America As Represented By The Secretary Of The Navy | Embedded communications system and method |
US8332526B2 (en) | 2005-05-25 | 2012-12-11 | Microsoft Corporation | Data communication protocol including negotiation and command compounding |
US8874691B2 (en) * | 2005-06-22 | 2014-10-28 | Core Wireless Licensing S.A.R.L. | System and method for establishing peer to peer connections between PCS and smart phones using networks with obstacles |
US7627681B2 (en) * | 2005-07-20 | 2009-12-01 | Microsoft Corporation | Relaying messages through a firewall |
JP5021921B2 (ja) * | 2005-09-16 | 2012-09-12 | 株式会社リコー | データ変換装置、データ変換システム、データ変換方法、プログラム及び記録媒体 |
JP4950589B2 (ja) | 2006-08-07 | 2012-06-13 | 株式会社東芝 | 接続管理システム、接続管理方法、および管理サーバ |
US8635069B2 (en) | 2007-08-16 | 2014-01-21 | Crimson Corporation | Scripting support for data identifiers, voice recognition and speech in a telnet session |
US20090150255A1 (en) * | 2007-12-05 | 2009-06-11 | Baker Patrick W | Method For Fractional Vineyard Ownership and Distribution Therefrom |
US8312190B2 (en) * | 2008-03-06 | 2012-11-13 | Integrated Device Technology, Inc. | Protocol translation in a serial buffer |
US8625621B2 (en) * | 2008-03-06 | 2014-01-07 | Integrated Device Technology, Inc. | Method to support flexible data transport on serial protocols |
US20090225775A1 (en) * | 2008-03-06 | 2009-09-10 | Integrated Device Technology, Inc. | Serial Buffer To Support Reliable Connection Between Rapid I/O End-Point And FPGA Lite-Weight Protocols |
US8213448B2 (en) * | 2008-03-06 | 2012-07-03 | Integrated Device Technology, Inc. | Method to support lossless real time data sampling and processing on rapid I/O end-point |
US20090228733A1 (en) * | 2008-03-06 | 2009-09-10 | Integrated Device Technology, Inc. | Power Management On sRIO Endpoint |
US8312241B2 (en) * | 2008-03-06 | 2012-11-13 | Integrated Device Technology, Inc. | Serial buffer to support request packets with out of order response packets |
US9889299B2 (en) | 2008-10-01 | 2018-02-13 | Inspire Medical Systems, Inc. | Transvenous method of treating sleep apnea |
US20100107240A1 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Network location determination for direct access networks |
US8042156B2 (en) * | 2008-12-05 | 2011-10-18 | Unisys Corporation | Mapping proprietary SSL APIs onto openssl APIs |
US9202238B2 (en) * | 2009-01-30 | 2015-12-01 | Nathan Harris | Information processing and transmission systems |
EP2425599A4 (en) * | 2009-04-28 | 2013-04-03 | Ongame Services Ab | CLIENT ACCOUNT MANAGEMENT ARRANGEMENT ON AN ONLINE GAMING SYSTEM |
US8504818B2 (en) * | 2010-04-15 | 2013-08-06 | Microsoft Corporation | Method and system for reliable protocol tunneling over HTTP |
JP5555120B2 (ja) * | 2010-10-04 | 2014-07-23 | 日本電信電話株式会社 | コンテンツ提供方法、コンテンツ取得方法、コンテンツ提供システム及び端末装置 |
US8631277B2 (en) | 2010-12-10 | 2014-01-14 | Microsoft Corporation | Providing transparent failover in a file system |
EP2538635B1 (en) * | 2011-06-21 | 2014-11-05 | Alcatel Lucent | Method of delivering content from a content delivery protocol server to a client, and device for use in such a method |
US9331955B2 (en) | 2011-06-29 | 2016-05-03 | Microsoft Technology Licensing, Llc | Transporting operations of arbitrary size over remote direct memory access |
US8856582B2 (en) | 2011-06-30 | 2014-10-07 | Microsoft Corporation | Transparent failover |
US20130067095A1 (en) | 2011-09-09 | 2013-03-14 | Microsoft Corporation | Smb2 scaleout |
US8788579B2 (en) | 2011-09-09 | 2014-07-22 | Microsoft Corporation | Clustered client failover |
JP5168398B2 (ja) * | 2011-10-12 | 2013-03-21 | 株式会社リコー | 装置、データ処理方法及びプログラム |
JP5853978B2 (ja) * | 2013-03-21 | 2016-02-09 | 富士ゼロックス株式会社 | 情報処理装置及び情報処理プログラム |
CN105900396B (zh) | 2014-02-07 | 2019-05-31 | 甲骨文国际公司 | 移动云服务体系架构 |
CN105917627B (zh) | 2014-02-07 | 2021-03-12 | 甲骨文国际公司 | 云服务定制执行环境方法及系统 |
US9529658B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace request messages and identifying related diagnostic information |
US9529657B2 (en) | 2014-02-07 | 2016-12-27 | Oracle International Corporation | Techniques for generating diagnostic identifiers to trace events and identifying related diagnostic information |
JP2015179894A (ja) * | 2014-03-18 | 2015-10-08 | キヤノン株式会社 | 情報処理装置、システム、情報処理方法及びプログラム |
CA2936503C (en) | 2014-03-31 | 2021-01-19 | Oracle International Corporation | Infrastructure for synchronization of mobile device with mobile cloud service |
US10033797B1 (en) | 2014-08-20 | 2018-07-24 | Ivanti, Inc. | Terminal emulation over HTML |
US10063661B2 (en) | 2015-01-14 | 2018-08-28 | Oracle International Corporation | Multi-tenant cloud-based queuing systems |
KR101729681B1 (ko) * | 2016-03-07 | 2017-05-11 | 한국전자통신연구원 | 보안 단말의 데이터 보안을 위한 물리 레벨 기반의 보안 시스템 및 이를 이용한 방법 |
WO2017171932A1 (en) | 2016-03-28 | 2017-10-05 | Oracle International Corporation | Pre-formed instructions for a mobile cloud service |
JP6662152B2 (ja) * | 2016-03-31 | 2020-03-11 | 富士通株式会社 | 通信プログラム、通信方法、及び通信装置 |
US11100278B2 (en) | 2016-07-28 | 2021-08-24 | Ivanti, Inc. | Systems and methods for presentation of a terminal application screen |
CN110728009A (zh) * | 2018-06-28 | 2020-01-24 | 北京京东尚科信息技术有限公司 | 仿真方法、装置和系统 |
JP7190837B2 (ja) * | 2018-07-31 | 2022-12-16 | キヤノン株式会社 | 中継装置、制御方法、及び、プログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6205415B1 (en) * | 1996-04-01 | 2001-03-20 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with file transfer |
US5754830A (en) * | 1996-04-01 | 1998-05-19 | Openconnect Systems, Incorporated | Server and web browser terminal emulator for persistent connection to a legacy host system and method of operation |
US6205417B1 (en) * | 1996-04-01 | 2001-03-20 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with direct As/400 host interface |
US6216101B1 (en) * | 1996-04-01 | 2001-04-10 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with client token authentication |
US6233543B1 (en) * | 1996-04-01 | 2001-05-15 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with printer emulation |
US6205416B1 (en) * | 1996-04-01 | 2001-03-20 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with direct OS/390 host interface |
US6233542B1 (en) * | 1996-04-01 | 2001-05-15 | Openconnect Systems Incorporated | Server and terminal emulator for persistent connection to a legacy host system with response time monitoring |
US5905872A (en) * | 1996-11-05 | 1999-05-18 | At&T Corp. | Method of transferring connection management information in world wideweb requests and responses |
US6240462B1 (en) * | 1997-10-14 | 2001-05-29 | At&T | System for providing enhanced grade of service for connections over a large network |
US6640241B1 (en) * | 1999-07-19 | 2003-10-28 | Groove Networks, Inc. | Method and apparatus for activity-based collaboration by a computer system equipped with a communications manager |
US6539536B1 (en) * | 2000-02-02 | 2003-03-25 | Synopsys, Inc. | Electronic design automation system and methods utilizing groups of multiple cells having loop-back connections for modeling port electrical characteristics |
US6842777B1 (en) * | 2000-10-03 | 2005-01-11 | Raja Singh Tuli | Methods and apparatuses for simultaneous access by multiple remote devices |
JP2002176432A (ja) * | 2000-12-05 | 2002-06-21 | Sony Corp | 通信中継装置、通信中継方法、および通信端末装置、並びにプログラム記憶媒体 |
US6983465B2 (en) * | 2001-10-11 | 2006-01-03 | Sun Microsystems, Inc. | Method and apparatus for managing data caching in a distributed computer system |
US20030149746A1 (en) * | 2001-10-15 | 2003-08-07 | Ensoport Internetworks | Ensobox: an internet services provider appliance that enables an operator thereof to offer a full range of internet services |
-
2003
- 2003-02-10 JP JP2003032727A patent/JP4315696B2/ja not_active Expired - Fee Related
- 2003-03-19 US US10/391,700 patent/US7212962B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004005427A (ja) | 2004-01-08 |
US7212962B2 (en) | 2007-05-01 |
US20030187631A1 (en) | 2003-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4315696B2 (ja) | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 | |
US7627896B2 (en) | Security system providing methodology for cooperative enforcement of security policies during SSL sessions | |
US7562222B2 (en) | System and method for authenticating entities to users | |
CA2736582C (en) | Authorization of server operations | |
US6918038B1 (en) | System and method for installing an auditable secure network | |
US6351810B2 (en) | Self-contained and secured access to remote servers | |
US20100088766A1 (en) | Method and system for detecting, blocking and circumventing man-in-the-middle attacks executed via proxy servers | |
CN110198297B (zh) | 流量数据监控方法、装置、电子设备及计算机可读介质 | |
JP2008146660A (ja) | フィルタリング装置、フィルタリング方法およびこの方法をコンピュータに実行させるプログラム | |
WO2006089879A1 (en) | Mapping an encrypted https network packet to a specific url name and other data without decryption outside of a secure web server | |
CN111314381A (zh) | 安全隔离网关 | |
CN111726328B (zh) | 用于对第一设备进行远程访问的方法、系统以及相关设备 | |
JP4285225B2 (ja) | 中継装置,ネットワークシステム,ネットワークアクセス方法,およびプログラム | |
US20170237716A1 (en) | System and method for interlocking intrusion information | |
JP2012512572A (ja) | 鍵認証情報を安全に提供するシステムおよび方法 | |
JP4557026B2 (ja) | 端末装置およびプログラム | |
US20080022004A1 (en) | Method And System For Providing Resources By Using Virtual Path | |
JP4561691B2 (ja) | 通信方法、情報処理装置、およびコンピュータプログラム | |
JP2005092723A (ja) | 端末装置、端末装置を目的装置に接続させるための接続装置 | |
AU1626600A (en) | System and method for installing an auditable secure network | |
JP2005141654A (ja) | 情報通過制御システム、情報通過制御装置、サービス提供装置、プログラム及び記録媒体 | |
CN116155480A (zh) | 临床试验的远程监查方法及装置、电子设备、存储介质 | |
WO2005094264A2 (en) | Method and apparatus for authenticating entities by non-registered users | |
JP2005227993A (ja) | ネットワークシステムのアクセス認証方法 | |
JP2006121440A (ja) | 医療システム、医療データ管理方法、及び医療データ管理用通信プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080401 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080602 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090210 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090410 |
|
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: 20090519 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090519 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4315696 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120529 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130529 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |