(57)【要約】【課題】  本発明は、仮想マシン上でアプリケーションに特化したプロトコルを扱うことを可能とし、ブラウザはWebプロトコルのみを使うことができ、アプリケーション毎のゲートウェイの開発を不要にする。【解決手段】  本発明は、ブラウザ内のGUIプログラムが該ブラウザ内の通信手段を介してゲートウェイ装置にコンテンツを要求し、ゲートウェイ装置は、仮想マシンイメージとブラウザの利用に適したプログラミング言語をGUIプログラムに応答し、ブラウザの仮想マシン内のクライアントプログラムが通信手段を介してサービスサーバにアクセスすることにより、該サービスサーバとの通信を確立し、GUIプログラムが、ブラウザ上で動作するデータ交換手段を介して仮想マシンにアクセスし、仮想マシンが、通信手段を介してサービスサーバと同一ネットワーク上に存在するWebシステムからコンテンツを取得し、GUIプログラムがコンテンツを仮想マシンとデータ交換手段を介して取得して表示する。【選択図】  図１
2015114843.tif 000002
【特許請求の範囲】
【請求項１】
端末上で実行されるブラウザと、サービスサーバと、それらを中継するゲートウェイ装置を有するサービス提供システムであって、
前記ブラウザは、
当該ブラウザ上で動作可能な仮想マシンと、
前記仮想マシン上で動作し、コンテンツ要求を前記ゲートウェイ装置を介して前記サービスサーバと通信することにより、コンテンツを取得するクライアントプログラムと、
前記仮想マシンと前記ゲートウェイ装置との間の通信を中継する通信手段と、
前記クライアントプログラムに対してコンテンツ要求を行うことにより取得したコンテンツの描画を行うGUI（Graphical User Interface）プログラムと、
前記GUIプログラムと前記仮想マシンとのデータのやり取りを行うデータ交換手段と、
を有し、
前記ゲートウェイ装置は、
前記ブラウザから受け取った前記仮想マシンの通信を端末からの通信として扱えるよう前記サービスサーバ上のサーバプログラムと通信する通信中継手段と、
前記通信中継手段を介して、該サービスサーバから提供されたコンテンツを前記ブラウザに提供するサーバ機能手段と、
を有することを特徴とするサービス提供システム。
【請求項２】
前記仮想マシンは、
Webアプリケーションを有し、
前記データ交換手段は、HTTP（HyperText Markup Language）パケットデータを利用して、前記Webアプリケーションのコンテンツを取得する手段を含み、
前記GUIプログラムは、前記Webアプリケーションのコンテンツを表示する手段を含む
請求項１記載のサービス提供システム。
【請求項３】
前記ゲートウェイ装置は、
複数のブラウザからの通信を識別するための接続情報を保持する接続情報管理手段を更に有し、
前記通信中継手段は、
前記接続情報管理手段から取得した前記接続情報に基づいて通信を行う手段を含む
請求項１記載のサービス提供システム。
【請求項４】
前記サービスサーバは、
Webシステムを有し、
前記仮想マシンの前記クライアントプログラムをVPN（Virtual Private Network）クライアントプログラムとし、
前記前記サービスサーバ上のサーバプログラムはVPNサーバとし、
前記ブラウザのデータ交換手段をHTTPプロキシとする
請求項１記載のサービス提供システム。
【請求項５】
前記仮想マシンの前記クライアントプログラムをiSCSI（internet Small Computer System Interface）イニシエータとし、
前記サービスサーバ上のサーバプログラムをiSCSIターゲットとする
請求項１記載のサービス提供システム。
【請求項６】
送信側端末及び受信側端末を有する場合に、
前記送信側端末のブラウザのデータ交換手段は、
IPアドレスをGUIプログラムに転送する手段と、
前記Webサーバプログラムが起動されると、当該送信側端末のファイルを前記仮想マシンに転送する手段と、
を有し、
前記送信端末のWebサーバプログラムは、
前記受信側端末から要求されたファイルをダウンロードするために必要なプログラムを、HTTPに載せて前記通信手段及び前記ゲートウェイ装置を介して該受信側端末に送信する手段と、
前記受信側端末からのアクセス要求のあったファイルをHTTPに載せて前記送信側端末へ送信する手段と、
を有し、
前記受信端末のブラウザは、
何らかの方法により与えられたファイルダウンロード画面用URLに基づいて、第１のファイルアクセス要求をHTTPに載せて前記送信側端末に送信する手段と、
前記送信側端末から取得したファイルをダウンロードするために必要なプログラムを取得してファイルダウンロード画面を表示し、選択されたファイルを取得するための第２のファイルアクセス要求をHTTPに載せて該送信側端末に送信する手段と、
前記送信側端末から前記第２のファイルアクセス要求に対応するファイルを取得する手段と、
を有する請求項１記載のサービス提供システム。
【請求項７】
端末上で実行されるブラウザと、サービスサーバと、それらを中継するゲートウェイ装置を有するシステムにおけるサービス提供方法であって、
前記ブラウザ内のGUIプログラムが該ブラウザ内の通信手段を介して前記ゲートウェイ装置にコンテンツを要求し、
前記ゲートウェイ装置は、仮想マシンイメージと前記ブラウザの利用に適したプログラミング言語を前記GUIプログラムに応答し、
前記ブラウザの仮想マシン内のクライアントプログラムが前記通信手段を介して前記サービスサーバにアクセスすることにより、該サービスサーバとの通信を確立し、
前記GUIプログラムが、前記ブラウザ上で動作するデータ交換手段を介して前記仮想マシンにアクセスし、
前記仮想マシンが、前記通信手段を介して前記サービスサーバと同一ネットワーク上に存在するWebシステムからコンテンツを取得し、
前記GUIプログラムが前記コンテンツを前記仮想マシンと前記データ交換手段を介して取得して表示する
ことを特徴とするサービス提供方法。
【請求項８】
端末上で実行されるブラウザと、サービスサーバと、それらを中継するゲートウェイ装置を有するシステムにおけるブラウザにおけるサービス提供プログラムであって、
ブラウザ内の仮想マシン上で動作するクライアントプログラムと、
コンテンツを描画するGUIプログラムと、
を有し、
前記クライアントプログラムは、
通信手段を介して前記ゲートウェイ装置にコンテンツを要求するステップと、
前記ゲートウェイ装置から仮想マシンイメージと前記ブラウザの利用に適したプログラミング言語を取得するステップと、
前記通信手段を介して前記サービスサーバにアクセスすることにより、該サービスサーバとの通信を確立するステップと、
前記GUIプログラムから前記ブラウザ上で動作するデータ交換手段を介してコンテンツ要求を取得すると、前記通信手段を介して前記サービスサーバと同一ネットワーク上に存在するWebシステムからコンテンツを取得し、該GUIプログラムに応答するステップと、
を行い、
前記GUIプログラムは、前記データ交換手段を介して前記クライアントプログラムにアクセスし、前記コンテンツ要求を送出するステップと、
前記クライアントプログラムから前記コンテンツを取得して表示するステップと、
を行うことを特徴とするサービス提供プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Webブラウザを用いたネットワーク仮想化技術におけるサービス提供システム及び方法及びプログラムに関する。
【背景技術】
【０００２】
インターネットの発展に伴い、様々なサービスがネットワークを通じて提供されるようになっている。中でもWebブラウザを利用したサービスは、端末へのソフトウェアのインストールが不要など、OSやPC環境による差異を受けにくい特長から、様々なビジネスシーンで利用されている。ところが、Webブラウザからの通信は、HTTP(Hyper Text Transfer Protocol)及びそれに類するSocket等に限定されているため、サーバが提供できるサービスは、Webブラウザが対応する通信に対応するものに限定されていた。
【０００３】
これに対し、ブラウザが対応していないサービスへの対応を実現する技術が提案されている。同技術は、ブラウザからのHTTP通信を利用してSIP(Session Initiation Protocol)のソフトウェアを利用するためのゲートウェイ(GW)装置及び通信方法に関する技術である。Webプロトコル以外のアプリケーションをWebブラウザで用いたい場合、クライアントPCとアプリケーションサーバの間にGW装置を設置し、GW装置にてクライアントPCのWebプロトコルをサーバのアプリケーションが用いるプロトコルに変換することにより、ブラウザでこれまで利用できなかったサービスが低コストかつ容易に利用できるようになるという特徴を持つ（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許４８３２４８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記の特許文献１の技術はゲートウェイ装置がサービスに必要な通信機能（＝プロトコル）を仲介するものであり、新たなサービスへ対応する度にGW装置に当該通信機能を実現するソフトウェアの追加が必須である。そのため、多くのサービスに対応する場合にGW装置内でのソフトウェアの構成が複雑になるほか、数多くのユーザを収容するには多くの性能が必要である、という課題がある。
【０００６】
本発明は、上記の点に鑑みなされたもので、GW装置においてアプリケーション毎のソフトウェアを追加することなく、ブラウザがWebプロトコルだけを使うことが可能なサービス提供システム及び方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様によれば、端末上で実行されるブラウザと、サービスサーバと、それらを中継するゲートウェイ装置を有するシステムにおけるサービス提供方法であって、
前記ブラウザ内のGUIプログラムが該ブラウザ内の通信手段を介して前記ゲートウェイ装置にコンテンツを要求し、
前記ゲートウェイ装置は、仮想マシンイメージと前記ブラウザの利用に適したプログラミング言語を前記GUIプログラムに応答し、
前記ブラウザの仮想マシン内のクライアントプログラムが前記通信手段を介して前記サービスサーバにアクセスすることにより、該サービスサーバとの通信を確立し、
前記GUIプログラムが、前記ブラウザ上で動作するデータ交換手段を介して前記仮想マシンにアクセスし、
前記仮想マシンが、前記通信手段を介して前記サービスサーバと同一ネットワーク上に存在するWebシステムからコンテンツを取得し、
前記GUIプログラムが前記コンテンツを前記仮想マシンと前記データ交換手段を介して取得して表示するサービス提供方法が提供される。
【発明の効果】
【０００８】
一態様によれば、ブラウザ上で動作する仮想マシン技術を利用し、仮想マシン上に個別のサービスに特化したプロトコルを扱うクライアントプログラムを動作させることで、あらゆるサービスへの対応をゲートウェイに機能を追加することなく実現することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施の形態におけるシステム構成例（その１）である。
【図２】本発明の第１の実施の形態における起動時のシーケンスチャートである。
【図３】本発明の第１の実施の形態におけるシステム構成例（その２）である。
【図４】本発明の第２の実施の形態におけるシステム構成例である。
【図５】本発明の第２の実施の形態におけるVPNによる社内アクセスサービスのシーケンスチャートである。
【図６】本発明の第３の実施の形態におけるシステム構成例である。
【図７】本発明の第３の実施の形態におけるオンラインディスクサービスのイメージである。
【図８】本発明の第３の実施の形態におけるiSCSIによるオンラインディスクサービスのシーケンスチャートである。
【図９】本発明の第３の実施の形態を既存技術に適用した例である。
【図１０】本発明の第３の実施の形態を既存の技術に適用した場合のオンラインディスクサービスのシーケンスチャートである。
【図１１】本発明の第４の実施の形態におけるシステム構成例である。
【図１２】本発明の第４の実施の形態における安全なファイル送受信サービスのシーケンスチャートである。
【図１３】本発明の第４の実施の形態における安全なファイル送受信サービスのイメージである。
【図１４】本発明の第４の実施の形態における接続情報管理部の例である。
【発明を実施するための形態】
【００１０】
以下、図面と共に本発明の実施の形態を説明する。
【００１１】
最初に本発明の概要を説明する。
【００１２】
ブラウザは制約通りHTTPやWeb Socket等ブラウザが対応する通信のみ（以降、単にHTTPと略す）を行うため、仮想マシンから送出される通信パケットはHTTP上で転送される。当該HTTP通信を受け取ったGW装置は、HTTP通信から通信パケットを取り出し、サービスサーバに転送することで、ブラウザ上の仮想マシンからの通信パケットを、仮想マシンから直接送られているかのようにサービスサーバが受け取れるようになり、GW装置部分を色々なアプリケーション、プロトコルで共有化することができる。これは逆順についても適用できる。これらを通じて仮想マシン上のクライアントプログラムとサービスサーバが通信を行うことができるため、従来のSIPのようなプロトコルに限定されることなく、任意のクライアントプログラムの通信を利用したアプリケーションが提供可能となる。また、WebアプリケーションとしてHTTP通信での80番ポート等で実装できなかったアプリケーションがプロトコル変換により利用可能となる。
【００１３】
更に、本発明では、これらアプリケーションは仮想マシン上で実行され、その結果をブラウザに表示するが、それに限られることなく、ブラウザ上でGUI(Graphical User Interface)プログラムとのやり取りによって描画された結果を表示することも可能である。
【００１４】
このようにすることで、ブラウザ上での表示を主目的とした言語（HTML(Hyper-Text Markup Language)/CSS(Cascading Style Sheet)等）での効率的かつ効果的なサービス提供が可能となる。
【００１５】
また、本発明では、実行場所を変えてサービス提供が可能になる。
【００１６】
GUIプログラムとクライアントプログラムは仮想マシン上のWebサーバを介してデータを交換する構成が考えられる。このような構成にすると、クライアントプログラムは従来技術と同等のプログラムが利用できるようになる。これらの特徴は次のようになる。
【００１７】
１．端末上の仮想マシンを利用する場合には、通信やアプリケーションの負荷は端末にかかる。
【００１８】
２．サーバ上の仲介機能を利用する場合には、通信やアプリケーションの負荷はゲートウェイ装置にかかる。
【００１９】
このように本発明により実行場所を変えてサービスが提供できるようになるため、無料サービスは端末上で実施し、有料サービスはゲートウェイ装置を利用する、等のサービスが容易に提供可能となる、という特徴を持つ。
【００２０】
以下、第１の実施の形態では、起動について、第２の実施の形態ではVPN(Virtual Private Network)による社内アクセスサービスについて、第３の実施の形態ではiSCSI(internet Small Computer System Interface)によるオンラインディスクサービスについて、第４の実施の形態では、安全なファイル送受信サービスについて説明する。
【００２１】
［第１の実施の形態］
図１は、本発明の第１の実施の形態におけるシステム構成例を示す。
【００２２】
同図に示すシステムは、ブラウザ１０を有するPC（端末）１と、Webサーバ機能部２０、通信中継機能部２１を有するGW装置２と、サーバプログラム３０を有するサービスサーバ３を有する。
【００２３】
PC1のブラウザ１０は、仮想マシン１１、通信機能部１２、HTML等のGUIプログラム１３、データ交換機能部１４を有する。
【００２４】
ブラウザ１０では、ブラウザ上で実行可能な仮想マシン１１が動作している。ここでは仮想マシン１１はLinux(登録商標)OSが動作するものを想定する。ブラウザ１０の制約から、PC1に搭載されるネットワークデバイスから任意のプロトコルで外部に直接通信することは難しいため、ブラウザ１０の通信機能部１２およびGW装置２を介して通信を行う。ブラウザ１０での描画を行うGUIプログラム１３は、通常利用されるHTMLやCSS及びJavaScript(登録商標)など一般的なもので構成される。これらは仮想マシン１１のクライアントプログラム１１１が取得したサービスサーバ３の情報を、データ交換機能部１４を介して取得し、ブラウザ１０にて利用しやすい形で表示するものである。
【００２５】
図２は、本発明の第１の実施の形態における起動時のシーケンスチャートである。
【００２６】
まず、PC１において、ブラウザ１０を起動し（ステップ１０１）、GUIプログラム１３からGW装置２のWebサーバ機能部２０にサービス用仮想マシン情報要求を送信する(ステップ１０２)。当該サービス用仮想マシン情報要求は、仮想マシンイメージ、GUIにあたるHTML/CSS、JavaScript(登録商標)プログラムをHTTPリクエスト等によって要求する。プロトコルによっては要求要素毎に要求と送付が分割される場合もある。
【００２７】
GW装置２のWebサーバ機能部２０は、仮想マシン１１を検索し（ステップ１０３）、仮想マシン１１の情報（仮想マシンイメージ、HTML/CSS、JavaScript(登録商標)プログラム）をGUIプログラム１３に送信する（ステップ１０４）。
【００２８】
GUIプログラム１３は、仮想マシン１１を動作させるためのプログラム及び上記Linux(登録商標)OSのカーネル及びユーザランド等の仮想マシン１１の起動に必要なデータをダウンロードする（ステップ１０５）。ブラウザ１０上で動作可能な仮想マシンとしては、JavaScript(登録商標) PC Emulator(http://bellard.org/jslinux/)やPC Emulator in JavaScript(登録商標)（http://pc-emulator.appspot.com/）などが知られており、特別なプラグインやアプリケーションのインストールを行うことなく、動作させることが可能である。現状これらの技術では外部へのネットワーク接続は実現されていない。本発明においては、仮想マシン１１内のクライアントプログラム１１１が外部と通信を行うための通信機能部１２を用いて、GW装置２上のWebサーバ機能部２０との通信を確立し（ステップ１０６）、GW装置２の通信中継機能部２１を初期化する（ステップ１０７）。これらはWebSocket等の利用を想定しているがこれに制限されるものではなく、例えば、XMLHTTPRequestなどブラウザ１０上でプログラムによる通信制御ができるものであれば何でもよい。
【００２９】
さらに、本実施の形態として、図３に示すように、Webアプリケーション１１２をクライアントプログラム１１１とデータ交換機能部１４の間に設け、GUIプログラム１３がデータ交換機能部１４を介して取得したHTTPパケットデータを利用してWebアプリケーション１１２のサービスを利用するようにしてもよい。
【００３０】
［第２の実施の形態］
本実施の形態では、VPNによる社内アクセスサービスについて説明する。
【００３１】
図４は、本発明の第２の実施の形態におけるシステム構成例を示す。図１の構成と同一部分には同一符号を付し、その説明を省略する。同図に示すシステムは、仮想マシン１１にクライアントプログラム１１１の代わりにVPNクライアントプログラム１１３を設け、同一のネットワーク４にVPNサーバ４１とWebシステム４２を有する。
【００３２】
従来ブラウザからの社内アクセスにはSSL-VPNを利用するものが一般的に利用されているが、本発明では仮想マシン１１上でVPN接続クライアントとして、VPNクライアントプログラム１１３を動作させるため、Linux(登録商標)上のプログラムで利用できるVPN、例えばIPSec(Internet Protocol Security)によるL3のVPNが利用できるのが特徴である。
【００３３】
ここで、図５のシーケンスチャートに沿って説明する。
【００３４】
まずブラウザ１０が起動すると、GUIプログラム１３は、データ交換機能部１４、VPNクライアントプログラム１１３、通信機能部１２を介してHTMLコンテンツ要求をGW装置２に送信し（ステップ２０１）、GW装置２から仮想マシンイメージと、GUIにあたるHTML/CSS及びそれらをハンドルするJavaScript(登録商標)プログラムを取得する（ステップ２０２）。仮想マシン１１が起動した際に、自動ないしユーザ指示により、VPNクライアントプログラム１１３が起動し、ブラウザ１０の通信機能部１２、GW装置２を経由してVPNサーバ４１にアクセスする（ステップ２０３）。その後、通常の通信確立手段をもってVPNサーバ４１と仮想マシン１１のVPNクライアントプログラム１１３を接続する（ステップ２０４）。
【００３５】
続いてGUIプログラム１３は、ブラウザ１０上で動作するデータ交換機能部１４を経由して仮想マシン１１にアクセスし、仮想マシン１１経由でVPNサーバ４１と同一ネットワーク４に存在するWebシステム４２からコンテンツを取得し、表示する（ステップ２０５）。
【００３６】
ここで、ブラウザ１０のデータ交換機能部１４としては、次のような動作が考えられる。まず、GUIプログラム１３からの外部への通信（典型的にはリンクの押下、その他、HTMLファイル内での画像の取得や、非同期のデータ取得リクエストなど）を、イベントハンドラなどを通じて取得する。続いて、当該アクセスに対応したデータ通信を仮想マシン１１と行う。ここでは、HTTPアクセスとなるため、HTTPアクセスのパケットデータを作成し、仮想マシン１１用に用意した仮想NIC（Network Interface Card）のメモリに対して、外部から入力イベントがあったかのように書き込みを行う。仮想マシン１１からの返信についても当該パケットを取得し、ペイロードからデータをくみ上げたうえでGUIプログラム１３に返答する（例えばパケットのヘッダやHTTPヘッダを除去してコンテンツのみを渡す）。この時、ブラウザ１０からのアクセスであることを識別できるよう、特定のIPアドレス/MACアドレスを付与してもよい。また、仮想マシン１１側にブラウザ１０との通信専用の仮想NICを用意することで、ブラウザ１０向けの通信を一意に取得できるようにしてもよい。
【００３７】
［第３の実施の形態］
本実施の形態では、本発明をiSCSIによるオンラインディスクサービスに適用した例を説明する。
【００３８】
本実施の形態は、サービスサーバ３が提供するiSCSIプロトコルを利用したオンラインディスクサービスを示し、ブラウザ１０上のLinux(登録商標)エミュレータがiSCSIプロトコルをハンドルすることにより、本来ブラウザ上では実現が難しかったサービスを実現するものである。
【００３９】
図６は、本発明の第３の実施の形態におけるシステム構成を示す。同図において、図１と同一構成部分には同一符号を付し、その説明を省略する。
【００４０】
仮想マシン１１は、iSCSIイニシエータ（iSCSIクライアントプログラム）１１４とディスクサービスWebアプリケーション１１５を有し、サービスサーバ３は、iSCSIターゲット３１、ストレージシステム３２、複数のファイル３３ａ，３３ｂ，３３ｃを有する。
【００４１】
本実施の形態のサービスの特徴として、「サービスサーバ３は、ブラウザ１０から利用可能なインタフェース持たない」ことが挙げられる。
【００４２】
通常このようなサービスを利用するためには、専用のクライアントプログラムがPC側に必要となる。なおここでは、iSCSIを用いた仮想オンラインディスクを提供するサービスを示すが、前述の特徴を満たすものであれば適用可能である。
【００４３】
これらを介して提供されるサービスのイメージを図７に示す。このようなファイルリストを表示するためのシーケンスを図８に示す。まず、仮想OS起動後ないしGUIプログラム１３からの指示により、ストレージシステム３２のストレージサービスを利用するための接続要求を送信し、サービスサーバ３との接続を確立する（ステップ３０１）。GUIプログラム１３の要求のもと、仮想マシン１１のディスクサービスWebアプリケーション１１５は、ファイル一覧を取得し、表示するためのコマンド(ls等)をiSCSIイニシエータ１１４に送信する。iSCSIイニシエータ１１４は、サービスサーバ３のiSCSIターゲット３１からファイル一覧を取得するためのファイルリスト要求パケットを送信する。この時、当該ファイルリスト要求パケットは通信機能部１２を介してGW装置２に中継される。GW装置２はパケット情報を取得し、通信中継機能部２１を介してGW装置２を送信元としてサービスサーバ３に当該パケットを転送する。サービスサーバ３は通常のサービスと同等に認証情報などに基づき、ストレージシステム３２のファイル情報をファイル応答パケットに載せて返答する。最終的にファイルリストを受け取ったディスクサービスWebアプリケーション１１５はGUIプログラム１３に当該ファイルリストを送信し（ステップ３０３）、GUIプログラム１３はファイルリストを表示することができる（ステップ３０４）。
【００４４】
ここで、GW装置２の通信中継機能部２１の実現方法として、例えば、TAP(http://ja.wikipedia.org/wiki/TUN/TAP)などを使う方法が考えられる。
【００４５】
以下に、本実施の形態におけるオンラインディスクサービスを既存技術に適用した例を示す。図９には、既存技術におけるPC１のブラウザ１０のHTML/GUI１６とGW装置２のWebアプリケーション２３を動作させる例を示す。
【００４６】
図９の例は、図６の仮想マシン１１上で動作していたプログラム（Webアプリケーション１１５、iSCSIイニシエータ１１４）をGW装置２に配置する構成となる。サービスサーバ３の構成は第３の実施の形態の図６と同様である。これにより、プログラムの互換性を利用して実行場所の任意の変更が可能となる。例えば、
・非課金ユーザは本実施の形態の技術を用いてユーザリソースを用いてサービスを提供する。
【００４７】
・課金ユーザは既存技術を用いてGW装置２のリソースを用いてサービスを提供する。
【００４８】
図１０は、本発明の第３の実施の形態を既存技術に適用した場合のオンラインディスクサービスのシーケンスチャートである。
【００４９】
予めGW装置２のiSCSIイニシエータ２４は、サービスサーバ３のiSCSIターゲット３１からストレージシステム３２への接続パケット（ターゲット名、パスワード）を取得しておく（ステップ４０１）。
【００５０】
PC１側のデータ交換機能部１４は、HTML/GUI１６からファイルリスト要求を取得すると（ステップ４０２）、パケットではなく通常のHTTPリクエストなどの要求をGW装置２に送信する（ステップ４０３）。GW装置２のWebアプリケーション２３は、ファイル要求リスト（ls）をiSCSIイニシエータ２４に送信し、当該iSCSIイニシエータ２４を介してサービスサーバ３からファイルリストを取得する（ステップ４０４）。GW装置２のWebアプリケーション２３は、ファイルリストをブラウザ１０のデータ交換機能部１４に転送し（ステップ４０５）、ブラウザ１０のHTML/GUI１６が当該ファイルリストを取得することで、ファイルリストを表示する（ステップ４０６）。
【００５１】
これによって前述の第３の実施の形態と同様に、ユーザはWebブラウザの動作する環境を実行場所としてオンラインディスクサービスを利用出来る。このとき、第３の実施の形態の図６に示す仮想マシン１１で動作していたプログラム（ディスクサービスWebアプリケーション１１５）が、GW装置２にて同等に動作している。このように、データ交換機能部１４がGW装置２上のWebアプリケーション２３として動作し、他のブラウザから利用可能なAPI(Application Programming Interface)を持つケースにおいては、図６のPC1の構成の一部を抜き出して既存技術と同等に動かせることにより、次のような利点が得られる。
【００５２】
１．既存技術と同等のプログラムが提案技術においても利用可能であり、開発コストの低減が可能である。
【００５３】
２．GW装置２のWebアプリケーション２３は本発明を用いてブラウザ上で動作させることも出来れば、既存技術の方法のみによってGW装置２上で動作させることも出来る。従って、本発明を用いることにより、PC１でもGW装置２でも実行可能となるため、プログラムの実行場所を選択可能となり、端末処理速度やバッテリー残量、契約有無などの条件に応じて、実行場所を変更するような柔軟なサービスが実現可能となる。
【００５４】
［第４の実施の形態］
本実施の形態では、本発明を用いたサービスとして、安全なファイル送受信サービスを行う例を示す。
【００５５】
図１１は、本発明の第４の実施の形態におけるシステム構成例を示す。
【００５６】
同図に示すシステムは、２つのPC１Ａ、PC１ＢとGW装置２を有する。
【００５７】
PC１Ａは、通信機能部１２、データ交換機能部１４、GUIプログラム１３と、仮想マシン１１内にWebサーバプログラム１１６を有し、PC１Ｂはブラウザ１０Ｂを有する。
【００５８】
また、GW装置２は、Webサーバ機能部２０、通信中継機能部２１に加えて、当該GW装置２を介してネットワークへ接続する仮想マシンのすべての情報を収集、保持する接続管理部２２を有する。なお、図１１では、接続管理部２２をGW装置２に具備する例を示しているが、この例に限定されることなく、GW装置２とは独立した装置として配置してもよい。
【００５９】
図１２は、本発明の第４の実施の形態における安全なファイル送受信サービスのシーケンスチャートである。
【００６０】
本実施の形態では、「2つのブラウザ間でHTTPSのセッションを確立可能とすること」を目的とする。通常Webブラウザは任意のHTTPリクエストを待ち受けることが出来ないため、他のサーバを介してファイルの送受信を行う事となる。このとき、ブラウザはHTTPSセッションを他のサーバとの間で張ることとなるため、送受信内容を他のサーバが盗聴できる状態となる。
【００６１】
これらを介して提供されるサービスのイメージ図を図１３に示す。ファイルを送信する側は、図１３左のようなファイル送信画面を表示するため、GW装置２上のWebサーバ機能部２０から仮想マシンイメージと、GUIにあたるHTML/CSS及びそれらをハンドルするJavaScript(登録商標)プログラムを取得する。仮想マシン１１が使用すべきIPアドレスやMACアドレスは、接続管理部２２によって管理される。
【００６２】
GUIプログラム１３は、GW装置２のWebサーバ機能部２０に対して仮想マシンイメージ、HTML/CSS、JavaScript(登録商標)プログラムを要求し、その応答を取得する（ステップ５０１）。
【００６３】
GUIプログラム１３は、仮想マシン１１を起動させる。仮想マシン１１が起動した際には、自動ないしユーザ指示によりHTTPSで待ち受け可能なWebサーバプログラム１１６も起動する。Webサーバプログラム１１６は通信機能部１２の通信機能の初期化を行う。通信機能部１２は、接続管理部２２に、IPアドレス、MACアドレス等の問合せを行い、与えられたIPアドレスを仮想マシン１１に通知し、当該仮想マシン１１のWebサーバプログラム１１６はデータ交換機能部１４を通じてGUIプログラム１３へ通知する。送信者は、Webブラウザへドラッグ＆ドロップするあるいはフォームから選択する等の方法によって送信したいファイルを決定し、データ交換機能部１４を介して仮想マシン１１へ転送する。転送されたファイルは、例えば仮想マシン１１から見た際にはファイルとして扱われる。また仮想マシン１１上に転送すると同時にGUIプログラム１３上に何らかの情報を表示しても良い（ステップ５０２）。図１３左では具体例として、ファイル名やサイズを画面上に表示することとした。これらの情報はGUIプログラム１３によって制御される。
【００６４】
Webサーバプログラム１１６は、ユーザによって与えられたファイル（ドラッグ&ドロップ、あるいは、フォームから選択されたファイル）に対してユニークなパスを与える。このパスはファイル名をそのまま使っても良いし、Webサーバプログラム１１６や仮想マシン１１上で動作する他のアプリケーションによって生成しても良い。あるいはGUIプログラム１３で生成した上でファイルと同様にデータ交換機能部１４を通じて仮想マシン１１及びWebサーバプログラム１１６へ伝送しても良い。GUIプログラム１３は、仮想マシン１１からデータ交換機能部１４を通じて受け取ったIPアドレス情報を画面上に表示あるいはリンク情報として利用することなどもできる。
【００６５】
図１３左は、ファイル毎に異なるパスを与える例としているが、同時にファイルが与えられた場合に一式をzipやtar等別の技術によって１つのファイルにまとめた上でそれぞれのパスとは別に一括取得用のパスを生成、提供しても良い。また、ユーザから与えられたファイルは全て一括で取得するものとした上で、特にパスを生成しない方法をとっても良い。この場合、図１３の例に則るとhttp://10.10.10.132/A5YiDへアクセスすると、Memo.txtが、http://10.10.132/A2FF7がそれぞれダウンロードできることとなる（ステップ５０３）。
【００６６】
ファイルの送信者は、ファイルを受け渡すために、電子メールや口頭伝達など他の方法によって、ファイルの受信に必要なURLをファイルの受信者へ伝達する。本発明の技術とSMS（Short Message Service）などのメッセージ送信サービスやVoIP(Voice over Internet Protocol)サーバ、SNS（Social Networking Service）などといったその他情報通信システムを連携させることによって、URLの伝達を自動化しても良い。何らかの手段を用いてGW装置２の通信中継機能部２１は、ファイルダウンロード画面用ＵＲＬを取得して、アクセス要求パケットをHTTPS等に載せてブラウザ１０Ａの通信機能部１２に送出する。通信機能部１２は、当該アクセス要求パケットをWebサーバプログラム１１６に転送する。Webサーバプログラム１１６は、ファイルダウンロード画面に必要なHTML/CSS、JavaScript(登録商標)プログラムを応答として応答パケットに含めてHTTPSに載せてGW装置２の通信中継機能部２１に転送する。通信中継機能部２１は、ファイルダウンロード画面に必要なHTML/CSS、JavaScript(登録商標)プログラムを受信側のブラウザ１０Ｂに送出する(ステップ５０５)。
【００６７】
ファイルの受信者は、ファイルダウンロード画面を表示し、ファイル取得のための操作を行い、ファイルの送信者から何らかの方法で受け取ったURLへブラウザ１０Ｂでアクセスする（ステップ５０６）。URLはファイル送信側のブラウザ１０Ａ上で動作するWebサーバプログラム１１６へアクセスするものであるから、ファイル受信者はファイル受信画面（図１３右）を表示するために必要なHTML/CSS及びそれらをハンドルするJavaScript(登録商標)プログラムを受け取ることとなる。ファイル受信者のブラウザ１０Ｂ上には、ファイルの情報あるいはダウンロードリンク等が表示される。例えば画面上のボタンをクリックすることで、ファイル送信側のブラウザ１０Ａ上で動作する仮想マシン１１上のWebサーバプログラム１１６に対して、実際に受信したいファイルの取得要求が行われる。
【００６８】
送信側のブラウザ１０ＡのWebサーバプログラム１１６は受信側のブラウザ１０Ｂの要求に従って実際に送信したかったファイルを応答としてHTTPSに載せてGW装置２を介してブラウザ１０Ｂに送信する。これにより、ブラウザ１０Ｂでは取得したファイルを表示する（ステップ５０７）。
【００６９】
また、同時にファイル送信側のGUIプログラム１３に対して受信要求があったことを通知することも出来る。たとえば図１３左の例では、画面上にダウンロード回数を表示することとしており、受信要求に応えた回数を画面上に示している。
【００７０】
ここで実施した要求及び応答はブラウザ１０Ａ，１０Ｂ間でのHTTPS接続、すなわちブラウザ１０Ａ，１０Ｂ間を直接SSL接続した上でHTTPによる通信が行うことが可能である。従ってファイル受信側はファイル送信側からSSLの担保する安全性を担保した状態でファイルを受け取ることが出来る。先に述べた例ではGW装置２の上にWebサーバ機能部２０と通信中継機能部２１を設けた。しかし、これらは独立した機能であるため、別の異なるサーバ上に用意しても良い。
【００７１】
上記の第１〜第４の実施の形態で説明してきたGW装置２は、複数のブラウザからの接続を制御することが考えられる。図１４に接続管理部２２の例を示す。IDは接続を識別するための情報であり、ユーザID・パスワードはブラウザ１０Ａ，１０Ｂの接続機能と、仮想マシン１１のWebサーバプログラム１１６とGW装置２のWebサーバ機能部２０間での接続における認証情報、接続元端末IPアドレスやMACアドレスは、仮想マシン１１のIPアドレス/MACアドレスを、送信用IPアドレス/MACアドレスはGW装置２の通信中継機能部２１が送信する際のIPアドレス、MACアドレスを、ソケットIDはブラウザ１０Ａ，１０Ｂの接続機能とWebサーバプログラム１１６とWebサーバ機能部２０間での接続を識別するためのIDを例として示している。
【００７２】
「ID:101」のユーザを例に説明すると、まずブラウザ１０Ａ起動後（図２のステップ１０６のタイミング）に行われる通信機能部１２の初期化において、ユーザID及びパスワードの関連性をチェックし、関連性がある場合にのみ接続を許可する。この時にソケットIDも同時に記録する。この時、通信中継機能部２１の初期化として、ユニークな送信元IPアドレスおよび送信元MACアドレスの割り当てを行い、記録する。続いて端末から仮想マシン１１が何らかの通信を行った際に、接続元IPアドレスおよび接続元MACアドレスを記録する。GW装置２の通信中継機能部２１は、パケット内の接続元IPアドレスないし接続元MACアドレスを送信用IPアドレスないし送信用MACアドレスに変更して送信を行う。また、パケットを受信した際には、宛先のIPアドレスを確認し、宛先を逆に変換した上で端末に送信する。このように、端末ごとにユニークに識別できるようにすることで、複数端末をGW装置２が扱えるようになる。
【００７３】
また、例えば外出先やスマートフォンなど異なる端末を利用している際にも、あたかも同じ端末を使っているかのようにサービスサーバ３に見せることができる。
【００７４】
ところで、先ほどはIPアドレスなどを変換する例や、認証を行う例を示したが、最低限の情報としては、接続元IPアドレスおよびソケットIDのみがあれば複数端末を識別して送信することができる（ID103の例など）。
【００７５】
この時IPアドレスの重複などがあった場合には識別できなくなる可能性があり、そのためにID 101の例では変換することを示した。
【００７６】
なお、上記のPC１、GW装置２、サービスサーバ３の各構成要素の動作をプログラムとして構築し、PC、GW装置、サービスサーバとして利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００７７】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００７８】
１  PC(Personal Computer)
２  GW(Gate Way)装置
３  サービスサーバ
４  ネットワーク
５  インターネット等
１０，１０Ａ，１０Ｂ  ブラウザ
１１  仮想マシン
１２  通信機能部
１３  GUIプログラム
１４  データ交換機能部
１６  HTML/GUI
２０  Webサーバ機能部
２１  通信中継機能部
２２  接続管理部
２３  Webアプリケーション(GW)
２４  iSCSI  イニシエータ
３０  サーバプログラム
３１  iSCSIターゲット
３２  ストレージシステム
３３ａ，３３ｂ，３３ｃ  ファイル
４１  VPNサーバ
４２  Webシステム
１１１  クライアントプログラム
１１２  Webアプリケーション
１１３  VPNクライアント
１１４  iSCSIイニシエータ
１１５  ディスクサービスWebアプリケーション
１１６  Webサーバプログラム
【図１】
2015114843.tif 000003
【図２】
2015114843.tif 000004
【図３】
2015114843.tif 000005
【図４】
2015114843.tif 000006
【図５】
2015114843.tif 000007
【図６】
2015114843.tif 000008
【図７】
2015114843.tif 000009
【図８】
2015114843.tif 000010
【図９】
2015114843.tif 000011
【図１０】
2015114843.tif 000012
【図１１】
2015114843.tif 000013
【図１２】
2015114843.tif 000014
【図１３】
2015114843.tif 000015
【図１４】
2015114843.tif 000016