【実施例1】
【0010】
[全体構成]
実施例1に係るシステム10の全体構成について説明する。
図1は、システムの全体構成の一例を概略的に示した図である。システム10は、外部からセキュアなネットワークにアクセスを可能とするシステムである。本実施例では、外部から会社などの内部ネットワークに設けられた社内Webシステム13にアクセスを行う場合を例にして説明する。
【0011】
システム10は、管理サーバ20と、画像中継サーバ21と、仮想ブラウザサーバ22とを有する。管理サーバ20、画像中継サーバ21および仮想ブラウザサーバ22は、例えば、データセンターや会社に設けられたサーバコンピュータである。画像中継サーバ21および仮想ブラウザサーバ22は、任意の数とすることができ、最大の同時アクセス数に応じた数だけ設置される。
【0012】
システム10は、外部ネットワーク12に接続され、端末装置11からアクセス可能とされている。かかる外部ネットワーク12としては、有線または無線を問わず、インターネット、LAN(Local Area Network)やVPN(Virtual Private Network)、移動体通信網などの任意の通信網が挙げられる。
【0013】
端末装置11は、利用者が内部ネットワークへのアクセスに用いる装置である。端末装置11としては、スマートフォン、タブレット端末、PDA(Personal Digital Assistant)などの携帯端末が挙げられる。なお、端末装置11は、デスクトップ型PC(パーソナル・コンピュータ)、ノート型PCなどの情報処理装置であってもよい。利用者は、外部から社内Webシステム13を利用する場合、端末装置11を用いてシステム10へアクセスする。例えば、端末装置11は、社内Webシステム13にアクセスする場合、最初に管理サーバ20へアクセスして画像中継サーバ21へのセッションの割り当てを要求する。なお、
図1の例では、端末装置11を2台とした場合を例示したが、開示のシステムはこれに限定されず、端末装置11を任意の数とすることができる。
【0014】
管理サーバ20は、端末装置11とのセッションの管理を行う物理サーバである。ここで、画像中継サーバ21は、後述するように、端末装置11へ画面を転送するが、画像の転送などの処理に負荷がかかるため、端末装置と接続可能なセッション数に制限がある。そこで、管理サーバ20は、各画像中継サーバ21に接続可能なセッション数を管理する。例えば、管理サーバ20は、各画像中継サーバ21に対して定期的にセッションの接続状況を問い合せして接続中のセッションを管理する。管理サーバ20は、端末装置11から画像中継サーバ21へのセッションの割り当てが要求され、セッションを割り当て可能な画像中継サーバ21がある場合、セッションを割り当て可能な画像中継サーバ21に関する情報を端末装置11へ通知する。端末装置11は、通知された画像中継サーバ21にアクセスする。
【0015】
画像中継サーバ21は、内部ネットワークへのアクセスを中継する物理サーバである。例えば、画像中継サーバ21は、端末装置11からの社内Webシステム13へのアクセスを中継する。画像中継サーバ21は、端末装置11からアクセスされると、仮想ブラウザサーバ22へアクセスして仮想ブラウザを起動させ、端末装置11および仮想ブラウザサーバ22とセッションを確立する。なお、画像中継サーバ21がアクセスする仮想ブラウザサーバ22は、画像中継サーバ21に対して予め対応付けておいてもよい。また、画像中継サーバ21が各仮想ブラウザサーバ22の負荷状態を示す情報を収集して、負荷の低い仮想ブラウザサーバ22にアクセスするものとしてもよい。また、画像中継サーバ21が各仮想ブラウザサーバ22の画像中継サーバ21との接続状況を示す情報を収集して、接続数が最も少ない仮想ブラウザサーバ22にアクセスするものとしてもよい。
【0016】
画像中継サーバ21は、セッションが確立すると、仮想ブラウザサーバ22で動作する仮想ブラウザの画面の情報を端末装置11へ随時転送する。また、画像中継サーバ21は、端末装置11から仮想ブラウザに対する操作情報を受け付ける。画像中継サーバ21は、操作情報を受け付けると、例えば、リモートデスクトップの機能を用いて、仮想ブラウザサーバ22で動作する仮想ブラウザに対して操作情報に基づく操作を行う。また、画像中継サーバ21は、管理サーバ20からセッションの接続状況の問い合せを受けた場合、接続しているセッションの接続状況に関する情報を管理サーバ20へ回答する。
【0017】
仮想ブラウザサーバ22は、仮想ブラウザを動作させる物理サーバである。例えば、仮想ブラウザサーバ22は、リモートデスクトップの機能を用いて、画像中継サーバ21からの要求によりブラウザを動作させる。そして、仮想ブラウザサーバ22は、例えば、RemoteAppの機能を用いて、ブラウザ部分の画面を画像中継サーバ21へ転送することにより、ブラウザを仮想ブラウザとして動作させる。また、仮想ブラウザサーバ22は、画像中継サーバ21とのセッションが切断されると、セッションの切断を管理サーバ20へ通知する。例えば、仮想ブラウザサーバ22では、端末装置11からの社内Webシステム13へのアクセスが完了して仮想ブラウザが終了する際、仮想ブラウザがセッションの切断を管理サーバ20へ通知する。なお、仮想ブラウザが終了する際、仮想ブラウザとは異なり、仮想ブラウザの状態を監視するプログラムがセッションの切断を管理サーバ20へ通知してもよい。
【0018】
このように、本実施例に係るシステム10は、端末装置11から社内Webシステム13へのアクセスが要求された場合、仮想ブラウザにより代理で社内Webシステム13にアクセスさせ、当該仮想ブラウザの画面を端末装置11へ転送する。すなわち、端末装置11には、仮想ブラウザの画面が転送されるが、内部ネットワークのデータは転送されない。このため、内部ネットワークのセキュリティを保つことができる。また、端末装置11には、内部ネットワークのデータが転送されないため、データの漏洩を抑制できる。
【0019】
[管理サーバの構成]
次に、実施例1に係る管理サーバ20の構成について説明する。
図2は、管理サーバの機能的な構成の一例を示す図である。
図2に示すように、管理サーバ20は、通信I/F(インタフェース)部30と、表示部31と、入力部32と、記憶部33と、制御部34とを有する。
【0020】
通信I/F部30は、他の装置との間で通信制御を行うインタフェースである。通信I/F部30は、他の装置と各種情報を送受信する。例えば、通信I/F部30は、外部ネットワーク12を介して端末装置11から画像中継サーバ21へのセッションの割り当ての要求を受信する。また、通信I/F部30は、仮想ブラウザサーバ22からセッションの切断が通知される。かかる通信I/F部30の一態様としては、LANカードなどのネットワークインタフェースカードを採用できる。
【0021】
表示部31は、各種情報を表示する表示デバイスである。表示部31としては、LCD(Liquid Crystal Display)やCRT(Cathode Ray Tube)などの表示デバイスが挙げられる。表示部31は、各種情報を表示する。
【0022】
入力部32は、各種の情報を入力する入力デバイスである。例えば、入力部32としては、マウスやキーボードなどの入力デバイスが挙げられる。入力部32は、管理者などからの操作入力を受け付け、受け付けた操作内容を示す操作情報を制御部34に入力する。
【0023】
記憶部33は、ハードディスク、SSD(Solid State Drive)、光ディスクなどの記憶装置である。なお、記憶部33は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)などのデータを書き換え可能な半導体メモリであってもよい。
【0024】
記憶部33は、制御部34で実行されるOS(Operating System)やセッション管理に用いる各種プログラムを記憶する。さらに、記憶部33は、制御部34で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部33は、中継サーバ情報40と、セッション情報41とを記憶する。
【0025】
中継サーバ情報40は、画像中継サーバ21に関する情報を記憶したデータである。
図3は、中継サーバ情報のデータ構成の一例を示す図である。
図3に示すように、中継サーバ情報40は、「サーバ名」、「IPアドレス」、「セッション上限」の各項目を有する。サーバ名の項目は、画像中継サーバ21を識別する識別情報として画像中継サーバ21のコンピュータ名を記憶する領域である。IPアドレスの項目は、画像中継サーバ21のIP(Internet Protocol)アドレスを記憶する領域である。セッション上限の項目は、画像中継サーバ21に接続可能なセッション数の上限値を記憶する領域である。
【0026】
図3の例では、サーバ名が「RVEC_A」の画像中継サーバ21は、IPアドレスが「192.168.20.185」であり、セッション上限が「10」であることを示す。
【0027】
セッション情報41は、管理サーバ20において管理するセッションに関する情報を記憶したデータである。
図4は、セッション情報のデータ構成の一例を示す図である。
図4に示すように、セッション情報41は、「セッションID」、「接続日時」、「ログインID」、「状態」、「接続元IPアドレス」、「画像中継SV」、「仮想ブラウザSV」、「切断日時」の各項目を有する。セッションIDの項目は、セッションを識別する識別情報を記憶する領域である。セッションには、それぞれを識別する識別情報として、数字や文字を組み合わせてユニークなセッションIDが付与される。セッションIDの項目には、セッションに対して付与されたセッションIDが記憶される。接続日時の項目は、セッションの接続を開始した日時を記憶する領域である。本実施例では、接続日時の項目に、端末装置11からセッションの割り当ての要求を受信した日時が記憶される。ログインIDの項目は、端末装置11の利用者のユーザIDを記憶する領域である。本実施例では、セッションの割り当てを要求する際に、最初に、ユーザIDおよびパスワードを入力させてユーザ認証を行うものとしている。ログインIDの項目には、ユーザ認証で入力されたユーザIDが記憶される。状態の項目は、セッションの状態を記憶する領域である。本実施例では、セッションの状態として、接続中、接続、解放中、異常を用いる。接続中の状態は、セッションが割り当てられているが、セッションが確立されていない状態であることを示す。接続の状態は、セッションが確立されて画像の転送が可能な状態であることを示す。解放中の状態は、セッションを解放している途中であることを示す。異常の状態は、セッションを解放できず、異常が発生していることを示す。状態の項目は、セッションの状態に応じて随時更新される。接続元IPアドレスの項目は、セッションの割り当てを要求した端末装置11のIPアドレスを記憶する領域である。画像中継SVは、セッションにより接続されている画像中継サーバ21のIPアドレスを記憶する領域である。仮想ブラウザSVの項目は、セッションにより接続されている仮想ブラウザサーバ22のIPアドレスを記憶する領域である。切断日時の項目は、セッションの切断を開始した日時を記憶する領域である。切断日時の項目は、セッションが接続中の間、空白とされ、セッションを切断する際に日時が設定される。
【0028】
図4の例では、セッションIDが「0001」のセッションは、接続日時が「2013/6/25 20:30:40」であり、ログインIDが「A」であり、状態が「接続中」であることを示す。また、セッションIDが「0001」のセッションは、接続元IPアドレスが「10.53.147.137」であり、画像中継SVが「192.168.20.185」であることを示す。また、セッションIDが「0001」のセッションは、仮想ブラウザSVが「192.168.20.181」であり、切断日時が空白であることから、セッションの切断が開始されておらず、セッションが接続中であることを示す。
【0029】
図2に戻り、制御部34は、管理サーバ20を制御するデバイスである。制御部34としては、Central Processing Unit(CPU)、Micro Processing Unit(MPU)等の電子回路や、Application Specific Integrated Circuit(ASIC)、Field Programmable Gate Array(FPGA)等の集積回路を採用できる。制御部34は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部34は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部34は、受付部50と、割当部51と、管理部52と、解放部53とを有する。
【0030】
受付部50は、各種の情報を受け付ける。例えば、受付部50は、端末装置11から画像中継サーバ21へのセッションの割り当ての要求を受け付ける。
【0031】
割当部51は、画像中継サーバ21へのセッションの割り当てを行う。例えば、割当部51は、受付部50によりセッションの割り当ての要求を受け付けると、新たなセッションIDを生成する。また、割当部51は、画像中継サーバ21毎に、使用中および使用予定のセッションのセッション数を求める。例えば、セッション情報41に基づき、画像中継サーバ21毎に、状態が解放中以外のセッション数を求める。本実施例では、割当部51は、画像中継サーバ21毎に、状態が接続中、接続、異常の何れかであるセッション数を求める。状態が接続中のセッションは、画像中継サーバ21への割り当てが行われ、これから通信を確立させるセッションである。状態が接続のセッションは、通信が確立して使用中のセッションである。状態が異常のセッションは、何らかの理由で解放できずに残っているセッションである。このため、本実施例では、使用中および使用予定のセッションのセッション数として、状態が接続中、接続、異常の何れかであるセッション数を求める。
【0032】
割当部51は、セッション数が中継サーバ情報40に記憶されたセッション上限に達していない画像中継サーバ21を特定する。割当部51は、セッション数がセッション上限に達していない画像中継サーバ21が無い場合、セッション数に空きがなく接続できない旨を端末装置11へ通知する。
【0033】
割当部51は、セッション数がセッション上限に達していない画像中継サーバ21がある場合、当該画像中継サーバ21のなかから、接続対象の画像中継サーバ21を決定する。接続対象の画像中継サーバ21の決定方法は、何れの方式であってもよい。例えば、割当部51は、セッション数がセッション上限未満の画像中継サーバ21からセッション数が最も少ない画像中継サーバ21を接続対象の画像中継サーバ21と決定してもよい。また、例えば、割当部51は、セッション数がセッション上限未満の画像中継サーバ21からセッション数が最も多い画像中継サーバ21を接続対象の画像中継サーバ21と決定してもよい。すなわち、割当部51は、セッション数がセッション上限に達するまで、セッション数が多い画像中継サーバ21を接続対象として、画像中継サーバ21を集中的に動作させてもよい。
【0034】
割当部51は、セッションIDおよび接続対象の画像中継サーバ21のIPアドレスを割り当ての要求元の端末装置11へ通知する。
【0035】
端末装置11では、通知されたIPアドレスの画像中継サーバ21へ通知されたセッションIDを通知してアクセスを行う。これにより、画像中継サーバ21は、端末装置11および仮想ブラウザサーバ22とセッションを確立し、仮想ブラウザサーバ22で動作する仮想ブラウザの画面の情報を端末装置11へ随時転送する。
【0036】
割当部51は、セッション情報41に割り当てたセッションに関する情報を格納したレコードを登録する。例えば、割当部51は、セッションIDを新たなセッションIDとし、接続日時を現在日時とし、ログインIDを要求元の利用者のユーザIDとし、状態を接続中とし、接続元IPアドレスを要求元の端末装置11のIPアドレスとしたレコードを登録する。
【0037】
管理部52は、各画像中継サーバ21に接続中のセッションの状態を管理する。例えば、管理部52は、各画像中継サーバ21に対して定期的にセッションの接続状況を問い合せる。この接続状況の問い合せを行う周期は、例えば、数秒から数分の範囲の値とするが、管理者等により外部から設定可能としてもよい。
【0038】
画像中継サーバ21は、管理サーバ20からセッションの接続状況の問い合せを受けた場合、接続中のセッションに関する情報を管理サーバ20へ回答する。例えば、画像中継サーバ21は、接続中のセッションのセッションIDおよびセッションにおいて接続中の仮想ブラウザのIPアドレスを管理サーバ20へ回答する。このように、画像中継サーバ21は、セッションの接続状況の問い合せを受けた場合、接続中のセッションに関する情報を管理サーバ20へ回答する。このため、例えば、端末装置11からの接続が終了してセッション解放された場合、解放されたセッションに関する情報は、管理サーバ20へ通知されなくなる。
【0039】
管理部52は、画像中継サーバ21からの回答に応じてセッション情報41を更新する。例えば、管理部52は、セッションIDが通知されたセッションの仮想ブラウザのIPアドレスをセッション情報41に登録する。また、管理部52は、セッションIDが通知されたセッションのセッション情報41の状態を接続に更新する。また、管理部52は、セッションIDが通知されなくなったセッションのレコードをセッション情報41から削除する。これにより、セッションは、端末装置11からの接続が終了して解放されると、画像中継サーバ21からセッションIDが通知されなくなるため、セッション情報41から当該セッションのレコードが削除される。
【0040】
また、管理部52は、各画像中継サーバ21に接続中のセッションの状態を画面に表示させて管理者により確認可能としている。例えば、管理部52は、所定の操作が行われた場合、セッションの状態を確認するシステム管理画面を表示させる。なお、管理部52は、管理サーバ20に接続された他の管理用の端末装置から操作を受け付けて、当該端末装置にシステム管理画面を表示させてもよく、入力部32から操作を受け付けて表示部31にシステム管理画面を表示させるものとしてもよい。
【0041】
図5は、システム管理画面の一例を示す図である。システム管理画面60は、セッション毎に、セッションに関する各種情報を表示する表示領域61を有する。
図5の例では、表示領域61に、セッションの接続日時、ログインID、状態、接続元IPアドレス、画像中継SV、仮想ブラウザSVが表示されている。また、システム管理画面60には、セッション毎に、セッションの切断を指示する切断ボタン62が設けられている。
【0042】
図2に戻り、解放部53は、セッションの解放を行う。例えば、解放部53は、システム管理画面60において切断ボタン62が選択された場合、切断が指示されたセッションにより接続される画像中継サーバ21に対して、切断が指示されたセッションの切断を指示する。そして、解放部53は、切断を指示したセッションのセッション情報41の状態を解放中に更新し、切断日時に現在の日時を格納する。
【0043】
一方、仮想ブラウザサーバ22では、端末装置11からの社内Webシステム13へのアクセスが完了して仮想ブラウザが終了する際、仮想ブラウザがセッションの切断を管理サーバ20へ通知する。例えば、切断されるセッションのセッションIDを管理サーバ20へ通知する。
【0044】
解放部53は、セッションの切断が通知されると、切断が通知されたセッションのセッション情報41の状態を解放中に更新し、切断日時に現在の日時を格納する。
【0045】
[通信の流れ]
次に、本実施例に係るシステム10がセッションを確立して画像の転送を行う際の通信の流れの一例を説明する。
図6は、セッションを確立して画像の転送を行う際の通信の流れの一例を模式的に示した図である。
【0046】
端末装置11は、社内Webシステム13にアクセスする場合、管理サーバ20へアクセスして画像中継サーバ21へのセッションの割り当てを要求する(
図6(1))。
【0047】
管理サーバ20は、画像中継サーバ21に対して定期的にセッションの接続状況を問い合せし、問い合せに対する回答に基づき、セッション情報41により接続中のセッションを管理する(
図6(2)(3))。
【0048】
管理サーバ20は、端末装置11から画像中継サーバ21へのセッションの割り当てが要求されると、セッションIDおよび割り当てた画像中継サーバ21のIPアドレスを割り当ての要求元の端末装置11へ通知する(
図6(4))。
【0049】
端末装置11では、通知されたIPアドレスの画像中継サーバ21へ通知されたセッションIDを通知してアクセスを行う(
図6(5))。画像中継サーバ21は、仮想ブラウザサーバ22にアクセスを行い、セッションを確立する(
図6(6))。仮想ブラウザサーバ22は、画像中継サーバ21からのアクセスにより、仮想ブラウザを起動して社内Webシステム13にアクセスする(
図6(7)(8))。
【0050】
画像中継サーバ21は、仮想ブラウザサーバ22上で動作する仮想ブラウザの画面の情報を取得し(
図6(9))、仮想ブラウザの画面の情報を端末装置11へ随時転送する(
図6(10))。
【0051】
仮想ブラウザサーバ22では、端末装置11からの社内Webシステム13へのアクセスが完了して仮想ブラウザが終了する際、仮想ブラウザがセッションの切断を管理サーバ20へ通知する(
図6(11))。
【0052】
管理サーバ20は、このように仮想ブラウザサーバ22からセッションの切断が通知された場合、セッションの割り当てを解放する(
図6(12))。例えば、管理サーバ20は、切断が通知されたセッションのセッション情報41の状態を解放中に更新する。そして、管理サーバ20は、切断が通知されたセッションにより接続された画像中継サーバ21に対して、切断が通知されたセッションの解放を指示する(
図6(13))。
【0053】
このように、本実施例に係る管理サーバ20は、セッションの切断が通知された場合、セッションの割り当てを解放する。これにより、管理サーバ20は、切断が通知されたセッションが早く解放されるため、接続可能なセッションを有効活用できる。
【0054】
[処理の流れ]
次に、本実施例に係る管理サーバ20が、セッションを管理するセッション管理処理の流れについて説明する。
図7は、セッション管理処理の手順の一例を示すフローチャートである。このセッション管理処理は、例えば、端末装置11から画像中継サーバ21へのセッションの割り当ての要求を受け付けたタイミングで実行される。
【0055】
図7に示すように、割当部51は、新たなセッションIDを生成する(S10)。また、割当部51は、セッション情報41および中継サーバ情報40に基づいて、接続対象の画像中継サーバ21を決定する(S11)。割当部51は、セッションIDおよび接続対象の画像中継サーバ21のIPアドレスを接続先情報として、割り当ての要求元の端末装置11へ返信する(S12)。割当部51は、セッションIDで割り当てたセッションに関する情報を格納したレコードをセッション情報41に登録する(S13)。
【0056】
管理部52は、各画像中継サーバ21に対して定期的にセッションの接続状況を問い合せ、所定時間以内にセッションが確立したか否かを判定する(S14)。所定時間以内にセッションが確立しない場合(S14否定)、セッションの確立が失敗したものとして処理を終了する。
【0057】
一方、所定時間以内にセッションが確立した場合(S14肯定)、管理部52は、セッションが確立したセッションのセッション情報41の状態を接続に更新する(S15)。
【0058】
解放部53は、仮想ブラウザからセッションの切断が通知されたか否かを判定する(S16)。セッションの切断が通知された場合(S16肯定)、解放部53は、切断が通知されたセッションのセッション情報41の状態を解放中に更新し(S17)、後述のS21へ移行する。
【0059】
一方、セッションの切断が通知されていない場合(S16否定)、解放部53は、システム管理画面60において何れかのセッションの切断が指示されたか否かを判定する(S18)。セッションの切断が指示されていない場合(S18否定)、上述のS16へ移行する。セッションの切断が指示された場合(S18肯定)、解放部53は、切断が指示されたセッションにより接続される画像中継サーバ21に対して、切断が指示されたセッションの切断を指示する(S19)。解放部53は、切断を指示したセッションのセッション情報41の状態を解放中に更新する(S20)。
【0060】
管理部52は、各画像中継サーバ21に対して定期的にセッションの接続状況を問い合せし(S21)、状態を解放中に更新したセッションが解放されたか否かを判定する(S22)。セッションが解放された場合(S22肯定)、解放されたセッションのセッション情報41のレコードを削除して、処理を終了する。
【0061】
一方、セッションが解放されていない場合(S22否定)、管理部52は、状態を解放中に更新してからセッションの解放にかかる一定時間を経過したか否かを判定する(S23)。一定時間を経過していない場合(S23否定)、上述のS21へ移行する。
【0062】
一方、一定時間を経過した場合(S23肯定)、管理部52は、解放されないセッションのセッション情報41の状態を異常に更新する(S24)。解放部53は、状態が異常のセッションを有する画像中継サーバ21に対して、状態が異常のセッションの解放を指示する(S25)。管理部52は、状態が異常のセッションのセッション情報41のレコードを削除し(S26)、処理を終了する。
【0063】
[効果]
上述してきたように、画像中継サーバ21は、仮想ブラウザサーバ22で実行するアプリケーションの処理結果を中継する。管理サーバ20は、画像中継サーバ21で中継するセッションを管理する。管理サーバ20は、端末装置11からセッションの割り当て要求を受け付け、端末装置11にアクセスさせる画像中継サーバ21の接続先情報を端末装置11に返信する。画像中継サーバ21は、端末装置11のアクセスに基づいて、該端末装置11と仮想ブラウザサーバ22とを中継するセッションを接続する。管理サーバ20は、画像中継サーバ21が中継するセッションの切断に応じて、仮想ブラウザサーバ22から通知されるセッションの切断を受信し、通知されたセッションの割り当てを解放する。これにより、管理サーバ20は、切断が通知されたセッションを直ぐに次に割り当てることができるため、接続可能なセッションを有効活用できる。
【0064】
すなわち、管理サーバ20は、セッションを管理する画像中継サーバ21へのセッションの割り当てが要求された場合、画像中継サーバ21へのセッションを割り当てる。また、管理サーバ20は、画像中継サーバ21に対して定期的にセッションの接続状況を問い合せして接続中のセッションを管理する。そして、管理サーバ20は、接続中のセッションにおいて動作する仮想ブラウザからセッションが切断されたことを示す情報が通知された場合、当該セッションの割り当てを解放する。これにより、管理サーバ20は、切断が通知されたセッションを直ぐに次に割り当てることができるため、接続可能なセッションを有効活用できる。
【0065】
また、管理サーバ20は、セッションを管理するシステム管理画面60からセッションの解放が指示された場合、解放するセッションの状態を解放中として管理する。この解放中のセッションは、解放されるセッションである。管理サーバ20は、まだ解放されていないが解放中のセッションを解放中として管理することにより、次にセッションの割り当て要求に割り当てることができるため、接続可能なセッションを有効活用できる。
【0066】
また、管理サーバ20は、解放されたセッションが画像中継サーバ21に残っている場合、当該セッションの解放を画像中継サーバ21に指示する。これにより、管理サーバ20は、解放したセッションが画像中継サーバ21に残っている場合、解放させることができるため、接続可能なセッションを有効活用できる。
【実施例2】
【0067】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0068】
例えば、上記の実施例では、仮想ブラウザにより社内Webシステム13の画面を転送する場合について説明したが、開示のシステムはこれに限定されない。例えば、利用者が社内で使用するPCの画面を転送してもよい。
【0069】
また、上記の実施例では、仮想ブラウザサーバ22がアプリケーションとして、例えば、Internet Explorerなどのブラウザを仮想ブラウザとして動作させる場合について説明したが、開示のシステムはこれに限定されない。例えば、仮想ブラウザサーバが実行するアプリケーションは、ブラウザに限定されず、端末装置11へ転送する情報を生成するものであれば何れのプログラムあってもよい。
【0070】
また、上記の実施例では、管理サーバ20と画像中継サーバ21と仮想ブラウザサーバ22とを別な物理サーバとした場合について説明したが、開示の装置はこれに限定されない。例えば、画像中継サーバ21と仮想ブラウザサーバ22を同じ物理サーバが兼ねてもよい。また、管理サーバ20と画像中継サーバ21と仮想ブラウザサーバ22は何れかが仮想マシンであってもよい。例えば、物理サーバ上で1または複数のVM(Virtual Machine:仮想マシン)を動作させ、VMが管理サーバ20と画像中継サーバ21と仮想ブラウザサーバ22として機能してもよい。すなわち、1つまたは複数のサーバによって、管理サーバ20を機能的に管理部として動作させ、画像中継サーバ21を中継部として動作させ、仮想ブラウザサーバ22を実行部と動作させてもよい。
【0071】
また、上記の実施例では、システム管理画面60から解放が指示されたセッションおよび仮想ブラウザサーバ22から切断が通知されたセッションの状態を解放中として管理する場合について説明したが、開示の装置はこれに限定されない。例えば、システム管理画面60から解放が指示されたセッションおよび仮想ブラウザサーバ22から切断が通知されたセッションのレコードをセッション情報41から削除してもよい。
【0072】
また、上記の実施例では、切断が通知された解放中のセッションを直ぐに次に割り当てる場合について説明したが、開示の装置はこれに限定されない。例えば、管理サーバ20は、セッション情報41に開放中に更新されたセッションが存在し、端末装置11からセッションの割り当て要求を受け付けた場合に、次のように処理を行ってもよい。管理サーバ20は、開放中に更新されたセッションで管理される中継サーバ21の接続先情報を、端末装置11へ返信する中継サーバ21の接続先情報から除外してもよい。すなわち、管理サーバ20は、セッションの割り当て要求を受け付けた端末装置11が、セッション情報41に開放中に更新されたセッションで管理される端末装置11ではない場合、該開放中のセッションで接続された中継サーバ21を端末装置11へ返信する中継サーバ21から除外してもよい。また、管理サーバ20は、セッションの割り当て要求を受け付けた端末装置11が、セッション情報41に開放中に更新されたセッションで管理される端末装置11であった場合には、接続先情報を返信してもよい。すなわち、管理サーバ20は、セッションの割り当て要求を受け付けた端末装置11が、セッション情報41に開放中に更新されたセッションで管理される端末装置11である場合、該開放中のセッションで接続された中継サーバ21を端末装置11へ返信する中継サーバ21としてもよい。これにより、端末装置11に対して解放中のセッションと同じ中継サーバ21を通知することで、セッションを有効活用できる。例えば、端末装置11に対して、開放中のセッションを再度利用して通信を行わせることで、セッションを有効活用できる。
【0073】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、管理サーバ20の受付部50、割当部51、管理部52および解放部53の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0074】
[セッション管理プログラム]
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
図8は、セッション管理プログラムを実行するコンピュータを示す図である。
【0075】
図8に示すように、コンピュータ300は、CPU(Central Processing Unit)310、HDD(Hard Disk Drive)320、RAM(Random Access Memory)340を有する。これら310〜340の各部は、バス400を介して接続される。
【0076】
HDD320には上記の管理サーバ20の受付部50、割当部51、管理部52および解放部53と同様の機能を発揮するセッション管理プログラム320aが予め記憶される。なお、セッション管理プログラム320aについては、適宜分離しても良い。
【0077】
また、HDD320は、各種情報を記憶する。例えば、HDD320は、OSやセッション管理を含む各種の制御に用いる各種データを記憶する。
【0078】
そして、CPU310が、セッション管理プログラム320aをHDD320から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、セッション管理プログラム320aは、受付部50、割当部51、管理部52および解放部53と同様の動作を実行する。
【0079】
なお、上記したセッション管理プログラム320aについては、必ずしも最初からHDD320に記憶させることを要しない。
【0080】
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
【0081】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。