(57)【要約】【課題】  秘匿性の高いデータへのアクセスを困難にさせること。【解決手段】データ送受信方法は、HTTPサーバ２００からクライアント端末１００に、HTTP通信路を介して、HTMLファイルのデータが送信されるステップと、クライアント端末からWebsocketサーバ３００に第１Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、Websocketサーバからクライアント端末に、第1Websocket通信路を介してダウンロード用ファイルを送信するステップと、クライアント端末からWebsocketサーバに、第2Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、Websocketサーバからクライアント端末に、第2Websocket通信路を介してWebページを構成するデータが送信されるステップとを行う。【選択図】      図３
2017216492.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末からHTTPサーバに、HTTP通信路を介して、Webページの取得要求が送信されるステップと、
前記HTTPサーバから前記クライアント端末に、前記HTTP通信路を介して、前記Webページに対応するHTMLファイルのデータが送信されるステップと、前記HTMLファイルのデータには、前記クライアント端末とWebsocketサーバとの間で第１Websocket通信路を確立するために必要な第１コードが含まれる、
前記クライアント端末から前記Websocketサーバに、前記第１コードに従って、前記第１Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、前記ハンドシェイク要求が送信されたのを契機に、前記クライアント端末と前記Websocketサーバとの間に前記第１Websocket通信路が確立される、
前記Websocketサーバから前記クライアント端末に、前記第1Websocket通信路を介して、前記Webページを構成するデータをダウンロードするためのダウンロード用ファイルのデータが送信され、前記ダウンロード用ファイルのデータには、前記クライアント端末と前記Websocketサーバとの間で前記第１Websocket通信路とは異なる第2Websocket通信路を確立するために必要な第2コードが含まれる、
前記クライアント端末から前記Websocketサーバに、前記第2コードに従って、前記第2Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、前記ハンドシェイク要求が送信されたのを契機に、前記クライアント端末と前記Websocketサーバとの間に前記第2Websocket通信路が確立される、
前記Websocketサーバから前記クライアント端末に、前記第2Websocket通信路を介して、前記Webページを構成するデータが送信されるステップと、
を行うことを特徴とするデータ送受信方法。
【請求項２】
前記HTMLファイルのデータには、前記ダウンロード用ファイルを実行処理するために必要な実行ファイルのデータ又は前記実行ファイルを前記HTTPサーバから読み出すコードが含まれることを特徴とする請求項１記載のデータ送受信方法。
【請求項３】
前記Webページを構成するデータは、コンテンツファイルのデータと該コンテンツファイルを処理する実行ファイルのデータとを含むことを特徴とする請求項１記載のデータ送受信方法。
【請求項４】
前記Webページを構成するデータの少なくとも一部がデータ本体のみからなることを特徴とする請求項１記載のデータ送受信方法。
【請求項５】
前記Webページを構成するデータの少なくとも一部がバイナリデータであることを特徴とする請求項１記載のデータ送受信方法。
【請求項６】
クライアント端末からのハンドシェイク要求に呼応して第1Websocket通信路を確立するステップと、
前記第1Websocket通信路を介して、前記クライアント端末に、コンテンツファイルのデータをダウンロードするためのダウンロード用ファイルのデータを送信するステップと、前記ダウンロード用ファイルのデータには、前記クライアント端末との間で前記第1Websocket通信路とは異なる第2Websocket通信路を確立するために必要なコードが含まれる、
前記クライアント端末から前記第2Websocket通信路を確立するために必要なコードに従って送信されたハンドシェイク要求に呼応して第2Websocket通信路を確立するステップと、
前記第2Websocket通信路を介して、前記クライアント端末に前記コンテンツファイルのデータを送信するステップと、
を行うことを特徴とするデータ送信方法。
【請求項７】
クライアント端末からのハンドシェイク要求に呼応して第1Websocket通信路を確立し、
前記第1Websocket通信路を介して、前記クライアント端末にコンテンツファイルのデータをダウンロードするためのダウンロード用ファイルのデータを送信し、前記ダウンロード用ファイルのデータには、前記クライアント端末との間で前記第1Websocket通信路とは異なる第2Websocket通信路を確立するために必要なコードが含まれる、
前記第2Websocket通信路を確立するために必要なコードに従って、前記クライアント端末から送信されたハンドシェイク要求に呼応して第2Websocket通信路を確立し、
前記第2Websocket通信路を介して、前記クライアント端末に前記コンテンツファイルのデータを送信すること、
を特徴とするサーバ装置。
【請求項８】
クライアント端末からHTTPサーバに、HTTP通信路を介して、Webページの取得要求が送信されるステップと、
前記HTTPサーバから前記クライアント端末に、前記HTTP通信路を介して、前記Webページに対応するHTMLファイルのデータが送信されるステップと、前記HTMLファイルのデータには、前記クライアント端末と第1Websocketサーバとの間で第1Websocket通信路を確立するために必要な第１コードが含まれる、
前記クライアント端末から前記第１Websocketサーバに、前記第１コードに従って、前記第１Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、前記ハンドシェイク要求が送信されたのを契機に、前記クライアント端末と前記第1Websocketサーバとの間に前記第１Websocket通信路が確立される、
前記第1Websocketサーバから前記クライアント端末に、前記第1Websocket通信路を介して、前記Webページを構成するデータをダウンロードするためのダウンロード用ファイルのデータが送信され、前記ダウンロード用ファイルのデータには、前記クライアント端末と第2Websocketサーバとの間で前記第1Websocket通信路とは異なる第2Websocket通信路を確立するために必要な第2コードが含まれる、
前記クライアント端末から前記第2Websocketサーバに、前記第2コードに従って、前記第2Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、前記ハンドシェイク要求が送信されたのを契機に、前記クライアント端末と前記第2Websocketサーバとの間に前記第2Websocket通信路が確立される、
前記第2Websocketサーバから前記クライアント端末に、前記第2Websocket通信路を介して、前記Webページを構成するデータが送信されるステップと、
を行うことを特徴とするデータ送受信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はデータ送受信方法、データ送信方法及びサーバ装置に関する。
【背景技術】
【０００２】
近年、パソコン、スマートフォン、タブレット端末等のクライアント端末の性能向上に伴って、ブラウザ上で動作するオンラインゲームがリリースされ始めている。このようなオンラインゲームは、その根幹となるゲームプログラムが記載されたHTMLファイルをサーバからダウンロードし、これをブラウザが読み込むことにより実現される。しかしながら、ブラウザの機能により、HTMLファイルに記述されているゲームプログラムがユーザに閲覧できる状態の場合があり、プログラムの改ざん等により不正にゲームが行われてしまう可能性がある。また、専用のダウンローダを使用することで、ゲームで使用される画像データ、音声データ等をサーバからクライアント端末に保存できる場合があり、これらメディアファイルの二次的使用が問題となる場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
目的は、秘匿性の高いデータへのアクセスを困難にさせることにある。
【課題を解決するための手段】
【０００４】
本実施形態に係るデータ送受信方法は、クライアント端末からHTTPサーバに、HTTP通信路を介して、Webページの取得要求が送信されるステップと、前記HTTPサーバから前記クライアント端末に、前記HTTP通信路を介して、前記Webページに対応するHTMLファイルのデータが送信されるステップと、前記HTMLファイルのデータには、前記クライアント端末とWebsocketサーバとの間で第１Websocket通信路を確立するために必要な第１コードが含まれる、前記クライアント端末から前記Websocketサーバに、前記第１コードに従って、前記第１Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、前記ハンドシェイク要求が送信されたのを契機に、前記クライアント端末と前記Websocketサーバとの間に前記第１Websocket通信路が確立される、前記Websocketサーバから前記クライアント端末に、前記第1Websocket通信路を介して、前記Webページを構成するデータをダウンロードするためのダウンロード用ファイルのデータが送信され、前記ダウンロード用ファイルのデータには、前記第１Websocket通信路とは異なる第2Websocket通信路を確立するために必要な第2コードが含まれる、前記クライアント端末から前記Websocketサーバに、前記第2コードに従って、前記第2Websocket通信路を確立するためのハンドシェイク要求が送信されるステップと、前記ハンドシェイク要求が送信されたのを契機に、前記クライアント端末と前記Websocketサーバとの間に前記第2Websocket通信路が確立される、前記Websocketサーバから前記クライアント端末に、前記第2Websocket通信路を介して、前記Webページを構成するデータが送信されるステップと、を行う。
【図面の簡単な説明】
【０００５】
【図１】図１は、本実施形態に係るデータ送受信方法を適用する通信システムの構成を示す図である。
【図２】図２は、図１の通信システムの構成を示すブロック図である。
【図３】図３は、本実施形態に係るデータ送受信方法の手順を示すシーケンス図である。
【図４】図４は、図３のデータ送受信方法におけるWebsocketサーバによるデータ送信方法の手順を示すフローチャートである。
【図５】図５は、本実施形態に係るデータ送受信方法の他の手順を示すシーケンス図である。
【発明を実施するための形態】
【０００６】
以下、本実施形態に係るデータ送受信方法について説明する。図１は、本実施形態に係るデータ送受信方法を適用した通信システムの全体構成図である。図２は、図１のクライアント端末１００、HTTPサーバ２００及びWebsocketサーバ３００の構成を示すブロック図である。通信システムは、クライアント端末１００とHTTPサーバ２００とWebsocketサーバ３００とを備える。本実施形態は、HTTPサーバ２００とWebsocketサーバ３００とからクライアント端末１００に、Webページを構成する複数種類のデータが送信され、クライアント端末のブラウザでWebページが表示されるときの、クライアント端末１００とHTTPサーバ２００とWebsocketサーバ３００との間で行われるデータ送受信方法に関する。なお、HTTPサーバ２００とWebsocketサーバ３００とは、単一のコンピュータ上に実装されていてもよいし、複数のコンピュータに各別に実装されていてもよい。Webページは、HTMLファイルのデータ、コンテンツファイルのデータ及びJavaScript(登録商標)ファイルのデータ等の複数種類のデータから構成される。HTMLファイルには、Webページの構造や文書がHTML(Hyper Text Markup Language)で記述されている。コンテンツファイルのデータは、Webページを構成する画像データ、Webページ上で動作する動画データ、Webページで使用される音声データ等である。JSファイルは、Webページに動きをつけるためのスクリプトファイル(以下、Webページ用JSファイルと略す)である。Webゲームが組み込まれたWebページにおいて、Webページ用JSファイルにはゲーム本体が含まれる。例えばWebページ上でスロットゲームを動作させる場合、Webページ用JSファイルは、抽選プログラム、払い出しプログラム、演出プログラム等から構成される。Webページ用JSファイルが実行された状態で、コンテンツファイルのデータが処理され、これによりWebページが完成する。これらWebページを構成する複数種類のデータは、HTTPサーバ２００とWebsocketサーバ３００とに分散して記憶されている。
【０００７】
（HTTPサーバ２００）  
HTTPサーバ２００は、通信処理部２０１と、ＣＰＵ２０３と、ＲＯＭ２０４と、ＲＡＭ２０５と、ＨＤＤ２０７とを有する。これらは、データバス２３０を介して互いに接続されている。通信処理部２０１は、トランスポートプロトコルとしてTCP/IPを使用し、HTTP(Hyper Text Transfer Protocol)に従ってクライアント端末１００とネットワーク通信するためのサーバ処理を行う。ＣＰＵ２０３は、データバス２３０を介して接続される各デバイスを統括して制御する。ＲＯＭ２０４(Read Only Memory)は、ＢＩＯＳ(Basic Input/Output System)のデータ等を記憶する読み出し専用のメモリである。ＲＡＭ２０５(Random Access Memory)は、ＣＰＵ２０３(central processing unit)で処理するプログラムやデータを一時的に格納するワークエリア等として機能するメインメモリである。ＨＤＤ２０７(Hard Desk Drive)はWebサーバソフト等のアプリケーションプログラムやＯＳ(Operation System)のデータを記憶する。ＣＰＵ２０３は、ＲＯＭ２０４やＨＤＤ２０７に記憶されている各種プログラムをＲＡＭ２０５にロードし、ＲＡＭ２０５にロードしたプログラムに従って各種処理を実行する。
【０００８】
HTTPサーバ２００のＨＤＤ２０７は、Webページを構成する複数種類のデータ（HTMLファイルのデータ、Webページ用JSファイルのデータ、コンテンツファイルのデータ）のうち一部のデータと第１ダウンロード用JSファイルのデータとを記憶する。この一部のデータは、秘匿性の低いデータである。秘匿性が低いデータとは、専用のダウンローダを用いてHTTPサーバ２００からクライアント端末１００にダウンロードされても構わないデータ、クライアント端末１００のブラウザの機能を用いてソースコードが閲覧されても構わないデータであり、少なくともHTMLファイルのデータを含む。ここでは、ＨＤＤ２０７は、HTMLファイルのデータを記憶する。
【０００９】
HTMLファイルのデータには、Webページの構造や文書がHTMLで記述されている。また、HTMLファイルには、クライアント端末１００とWebsocketサーバ３００との間で第1Websocket通信路を確立するために必要な第１コードが記述されている。第１コードは、接続先のWebsocketサーバ３００のサーバ情報とともにクライアント端末１００からWebsocketサーバ３００に第１ハンドシェイク要求を送信するためのコードである。第１ハンドシェイク要求を送信するためのコードはJavaScript(登録商標)で記述されている。なお、第１コードを含む別のJSファイルがHTTPサーバ２００に記憶され、そのJSファイルを読み出すコードがHTMLファイルのデータに記述されていてもよい。
【００１０】
第１ダウンロード用JSファイルは、Websocketサーバ３００からダウンロードした後述の第2ダウンロード用JSファイルを実行するための実行ファイルである。第１ダウンロード用JSファイルのデータには、第2ダウンロード用JSファイルを実行するために必要なコードがJavaScript(登録商標)で記述されている。つまり、第１ダウンロード用JSファイルは、例えばＯＳ上で機能し、第2ダウンロード用JSファイルを実行するためのアプリケーションソフトともいえる。
【００１１】
HTMLファイルには、第１ダウンロード用JSファイルをHTTPサーバ２００から読み出すためのコードが組み込まれている。しかしながら、HTMLファイルのデータに、第１ダウンロード用JSファイルのデータが組み込まれていてもよいし、第１ダウンロード用JSファイルに第１コードが記述されていてもよい。
【００１２】
（Websocketサーバ３００）  
Websocketサーバ３００は、通信処理部３０１と、ＣＰＵ３０３と、ＲＯＭ３０４と、ＲＡＭ３０５と、ＨＤＤ３０７とを有する。これらは、データバス３３０を介して互いに接続されている。通信処理部３０１は、トランスポートプロトコルとしてTCP/IPを使用し、Websocketに従ってクライアント端末１００とネットワーク通信するためのサーバ処理を行う。ＣＰＵ３０３は、データバス３２０を介して接続される各デバイスを統括して制御する。ＲＯＭ３０４は、ＢＩＯＳのプログラムのデータ等を記憶する読み出し専用のメモリである。ＲＡＭ３０５は、ＣＰＵ３０３で処理するプログラムやデータを一時的に格納するワークエリア等として機能するメインメモリである。ＨＤＤ３０７はWebサーバソフト等のアプリケーションプログラムやＯＳのデータを記憶する。ＣＰＵ３０３は、ＲＯＭ３０４やＨＤＤ３０７に記憶されている各種プログラムをＲＡＭ３０５にロードし、ＲＡＭ３０５にロードしたプログラムに従って各種処理を実行する。
【００１３】
Websocketサーバ３００のＨＤＤ３０７は、Webページを構成する複数種類のデータのうち、HTTPサーバ２００に記憶されているデータ以外の残りのデータと第2ダウンロード用JSファイルのデータとを記憶する。ここでは、残りのデータは、Webページ用JSファイルのデータとコンテンツファイルのデータとである。
【００１４】
これら残りのデータは、秘匿性の高いデータである。秘匿性が高いデータとは、専用のダウンローダを用いてHTTPサーバ２００からクライアント端末１００にダウンロードされては困るデータ、クライアント端末１００のブラウザの機能を用いてソースが閲覧されては困るデータ等である。Webゲームが埋め込まれているWebページであれば、Webページ用JSファイルには、ゲームの進行に関するコードが含まれる。例えばスロットゲームであれば大当たりが抽選されるルールが記述されている。そのためWebページ用JSファイルのコードが閲覧された場合、例えば大当たりが高確率で発生する別のプログラムがユーザにより開発され、不当にゲームが行われてしまう可能性がある。また、ゲームに係るコンテンツファイルは、その多くに著作権がある。そのため、ユーザによりコンテンツファイルがダウンロードされてしまい、不当に利用されてしまう可能性がある。
【００１５】
第2ダウンロード用JSファイルは、ＨＤＤ３０７に記憶されているデータ(Webページ用JSファイル、コンテンツファイルのデータ)のダウンローダとして機能するとともに、Webページ用JSファイルの実行ファイルとして機能する。つまり、第2ダウンロード用JSファイルは、これらの機能を有するＯＳ上で動作するアプリケーションソフトである。第2ダウンロード用JSファイルには、クライアント端末１００とWebsocketサーバ３００との間で第2Websocket通信路を確立するために必要な第2コードが記述されている。具体的には、第2ダウンロード用JSファイルには、接続先のWebsocketサーバ３００のサーバ情報とともにクライアント端末１００からWebsocketサーバ３００に第2ハンドシェイク要求を送信するためのコードが記述されている。第2ハンドシェイク要求を送信するためのコードはJavaScript(登録商標)で記述されている。また、第2ダウンロード用JSファイルには、Websocketサーバ３００からダウンロードしたWebページ用JSファイルを実行するために必要なコードがJavaScript(登録商標)で記述されている。なお、第2ダウンロード用JSファイルが、ＨＤＤ３０７に記憶されているデータのダウンローダとして機能するJSファイルとWebページ用JSファイルを実行処理するJSファイルとに分離されていてもよい。
【００１６】
Webページ用JSファイルは、クライアント端末１００上のブラウザ上に動きをつけるためのJSファイルである。例えばWebページ用JSファイルには、コンテンツファイルを指定するコードが記述されている。Webページ用JSファイルに従って、コンテンツファイルに含まれる画像がクライアント端末１００のブラウザに表示され、音声がスピーカから出力される。
【００１７】
（クライアント端末１００）  
クライアント端末１００は、通信処理部１０１と、ＣＰＵ１０３と、ＲＯＭ１０４ｔｏ，ＲＡＭ１０５と、ＨＤＤ１０７と、操作部Ｉ／Ｆ１０９と、ディスプレイＩ／Ｆ１１１とを有する。これらは、データバス１３０を介して互いに電気的に接続されている。  
通信処理部１０１は、トランスポートプロトコルとしてTCP/IPを使用し、HTTP(Hyper Text Transfer Protocol)に従ってHTTPサーバ２００とネットワーク通信するためのクライアント処理を行う。また、通信処理部１０１は、トランスポートプロトコルとしてTCP/IPを使用し、Websocketプロトコルに従ってWebsocketサーバ３００とネットワーク通信するためのクライアント処理を行う。
【００１８】
ＣＰＵ１０３は、データバス１３０を介して接続される各デバイスを統括して制御する。ＲＯＭ１０４は、ＢＩＯＳのプログラムのデータ等を記憶する読み出し専用のメモリである。ＲＡＭ１０５は、ＣＰＵ１０３で処理するプログラムやデータを一時的に格納するワークエリア等として機能するメインメモリである。ＨＤＤ１０７は、Webページを閲覧するためのソフトウェアのデータを記憶する。このソフトウェアはWebページを閲覧する専用のソフトウェア、例えばブラウザである。しかしながら、ソフトウェアはブラウザに限定されない。例えば、ＯＳにより提供されるブラウザ機能、例えばAndroid(登録商標)ＯＳのWebView機能を組み込んだアプリケーションであってもよい。そのほか、ＨＤＤ１０７はＯＳや他のアプリケーションプログラムのデータを記憶する。ＣＰＵ１０３は、ＲＯＭ１０４やＨＤＤ１０７に記憶されている各種プログラムをＲＡＭ１０５にロードし、ＲＡＭ１０５にロードしたプログラムに従って各種処理を実行する。
【００１９】
操作部Ｉ／Ｆ１０９は、操作部との間のインターフェースであり、操作部を介したユーザの操作情報を入力する。操作部は、クライアント端末１００に対して無線又は有線で接続されたマウス、キーボード等である。なお、操作部は、ディスプレイに設けられたタッチパネルでもよい。
【００２０】
ディスプレイＩ／Ｆ１１１は、ディスプレイとの間のインターフェースであり、ＣＰＵ１０３の制御に従って、アプリケーションの実行結果をディスプレイに表示する。ディスプレイは、例えば液晶ディスプレイ等の表示デバイスである。
【００２１】
（データの送受信方法）  
以下、本実施形態に係るデータの送受信方法について図３を参照して説明する。図３は、本実施形態に係るデータ送受信方法の手順を示すシーケンス図である。本実施形態に係るデータの送受信方法は、クライアント端末１００とHTTPサーバ２００とWebsocketサーバ３００との間で行われる。クライアント端末１００で起動されたブラウザ上でURL(Uniform Resource Locator)が入力されてから、Webページを構成する複数種類のデータがHTTPサーバ２００とWebsocketサーバ３００とからクライアント端末１００にダウンロードされるまでのデータの流れを示す。
【００２２】
クライアント端末１００において、ユーザ操作に従ってブラウザが選択され、ＣＰＵ１０３の制御に従って実行される。これにより、ディスプレイにはブラウザの初期画面が表示される。ユーザにより、URLが入力されたのを契機に、クライアント端末１００は、入力されたURLのオーソリティに対応するHTTPサーバ２００とTCP接続し、HTTPで通信を開始する。クライアント端末１００からHTTPサーバ２００に、HTTP通信路を介して、入力されたURLに対応するWebページの取得要求が送信され（ステップＳ１１）、HTTPサーバ２００からクライアント端末１００に、要求されたWebページに対応するHTMLファイルのデータが送信される（ステップＳ１２）。このHTMLファイルには、クライアント端末１００とWebsocketサーバ３００との間で第1Websocket通信路を確立するために必要な第１コードが記述されている。また、HTMLファイルには、第１ダウンロード用JSファイルが組み込まれている。
【００２３】
クライアント端末１００のブラウザにより、HTMLファイルのデータが読み込まれ、入力されたURLに対応するWebページがディスプレイに表示されるとともに、第１ダウンロード用JSファイルが実行される（ステップＳ１３）。また、ブラウザによりHTMLファイルのデータが読み込まれたのを契機に、クライアント端末１００からWebsocketサーバ３００にHTMLファイルに含まれる第１コードに従って、第１Websocket通信路を確立するための第１ハンドシェイク要求が送信される（ステップＳ１４）。
【００２４】
Websocketサーバ３００は、クライアント端末１００からの第１ハンドシェイク要求を受信し、認証処理等を行う。Websocketサーバ３００にて認証処理が成功したとき、クライアント端末１００とWebsocketサーバ３００との間に第1Websocket通信路が確立され、Websocketサーバ３００からクライアント端末１００に認証「成功」を示すハンドシェイク応答が送信される（ステップＳ１５）。なお、Websocketサーバ３００にて認証処理が失敗したとき、Websocketサーバ３００からクライアント端末１００に認証「失敗」を示すハンドシェイク応答が送信される。
【００２５】
Websocketサーバ３００からクライアント端末１００に、第1Websocket通信路を介して、第2ダウンロード用JSファイルのデータが送信される（ステップＳ１６）。第2ダウンロード用JSファイルには、クライアント端末１００とWebsocketサーバ３００との間で第2Websocket通信路を確立するために必要な第2コードが記述されている。
【００２６】
クライアント端末１００で既に実行されている第１ダウンロード用JSファイルにより、受信した第2ダウンロード用JSファイルが実行される（ステップＳ１７）。第2ダウンロード用JSファイルが実行されたのを契機に、クライアント端末１００からWebsocketサーバ３００に、第2コードに従って、第2Websocket通信路を確立するための第2ハンドシェイク要求が送信される（ステップＳ１８）。Websocketサーバ３００は、第2ハンドシェイク要求を受信し、認証処理等を行う。Websocketサーバ３００にて認証処理が成功したとき、クライアント端末１００とWebsocketサーバ３００との間に第2Websocket通信路が確立され、Websocketサーバ３００からクライアント端末１００に認証「成功」を示すハンドシェイク応答が送信される（ステップＳ１９）。Websocketサーバ３００にて認証処理が失敗したとき、Websocketサーバ３００からクライアント端末１００に認証「失敗」を示すハンドシェイク応答が送信される。
【００２７】
Websocketサーバ３００からクライアント端末１００に、第2Websocket通信路を介して、Webページを構成するデータ（Webページ用JSファイルのデータ、コンテンツファイルのデータ）が送信される（ステップＳ２０）。クライアント端末１００で既に実行されている第2ダウンロード用JSファイルにより、受信したWebページ用JSファイルが実行される（ステップＳ２１）。実行されたWebページ用JSファイルにより、コンテンツファイルのデータが実行処理される。これにより、Webページが完成される。例えば、Webゲームが組み込まれたWebページの場合、Webページ用JSファイルが実行された状態で、ブラウザのゲーム表示エリアに画像が表示され、ユーザはブラウザ上の操作でゲームを行うことができる。ゲーム表示エリアの画像は、Webページ用JSファイルに従って、ゲームの進行とともに変更される。なお、Webページ用JSファイルで実行処理できるのであれば、コンテンツファイル（画像ファイル、音声ファイル）のデータは、jpeg、png、mp3等のいずれのファイル形式であってもよい。また、Webページを構成するデータの少なくとも一部がデータ本体のみ、又はバイナリデータであってもよい。例えば、Webページ用JSファイルで実行処理できるのであれば、コンテンツファイルのデータは、ヘッダ情報等（例えば画像のサイズ等の情報)を除いたデータ本体のみであってもよいし、バイナリデータであってもよい。このように、Websocketサーバ３００から受信するコンテンツファイルのデータをjpeg,png,mp3等のファイル形式で扱うのではなく、データ本体で扱うようにすることで、第2Websocket通信路上でコンテンツファイルのデータが盗難された場合においても、そのコンテンツファイルのデータを実行処理するための専用のソフト（ここではWebページ用JSファイル）が盗難されなければ、コンテンツファイルを復元することは困難である、これにより、画像データ等の第三者による二次的使用を回避することができ、つまりコンテンツファイルの秘匿性が向上される。
【００２８】
図４は、図３のデータ送受信方法におけるWebsocketサーバ３００によるデータの送信方法の手順を示すフローチャートである。  
Websocketサーバ３００の通信処理部３０１は、クライアント端末１００からの第１ハンドシェイク要求を受信し（ステップＳ３１）、認証処理を実行する（ステップＳ３２）。認証処理が成功したとき（ステップＳ３２のＹＥＳ）、通信処理部３０１は、ＣＰＵ３０３の制御に従って、クライアント端末１００との間で第1Websocket通信路を確立するとともに、クライアント端末１００に認証結果「成功」を示すハンドシェイク応答を送信する（ステップＳ３３）。認証処理が失敗したとき（ステップＳ３２のＮＯ）、通信処理部３０１は、ＣＰＵ３０３の制御に従って、クライアント端末１００に認証結果「失敗」を示すハンドシェイク応答を送信する（ステップＳ３４）。
【００２９】
通信処理部３０１は、第1Websocket通信路を介して、クライアント端末１００に第2ダウンロード用JSファイルのデータを送信する（ステップＳ３５）。ステップＳ３５の処理は、クライアント端末１００からの第2ダウンロード用JSファイルの取得要求に呼応して行われてもよいし、ステップＳ３３のハンドシェイク応答とともに、又はステップＳ３３のハンドシェイクの送信処理後、Websocketサーバ３００から自動的に行われてもよい。
【００３０】
通信処理部３０１は、第1Websocket通信路を介して、クライアント端末１００からの第2ハンドシェイク要求を受信し（ステップＳ３６）、認証処理を実行する（ステップＳ３７）。認証処理が成功したとき（ステップＳ３７のＹＥＳ）、通信処理部３０１は、ＣＰＵ３０３の制御に従って、クライアント端末１００との間で第2Websocket通信路を確立するとともに、クライアント端末１００に認証結果「成功」を示すハンドシェイク応答を送信する（ステップＳ３８）。認証処理が失敗したとき（ステップＳ３７のＮＯ）、通信処理部３０１は、ＣＰＵ３０３の制御に従って、クライアント端末１００に認証結果「失敗」を示すハンドシェイク応答を送信する（ステップＳ３９）。Websocketサーバ３００は、第2Websocket通信路を介して、クライアント端末１００にWebページを構成するデータを送信する（ステップＳ４０）。
【００３１】
以上説明したデータ送受信方法は、クライアント端末１００とWebsocketサーバ３００との間で、２回のWebsocket通信路を確立する手順が含まれる。１回目に確立した第１Websocket通信路は、クライアント端末１００のブラウザとWebsocketサーバ３００のWebサーバソフトとの間で確立される。したがって、ブラウザ機能により接続先のWebsocketサーバ３００が閲覧できてしまうかもしれない。そのため、この第１Websocket通信路を介して、Websocketサーバ３００からクライアント端末１００に、秘匿性の高い、例えばコンテンツファイルのデータは送受信されない。この第１Websocket通信路を介して、Websocketサーバ３００からクライアント端末１００に、第2Websocket通信路を確立するための第2ダウンロード用JSファイルが送信される。
【００３２】
２回目に確立した第2Websocket通信路は、クライアント端末１００で実行された第2ダウンロード用JSファイルとWebsocketサーバ３００のWebサーバソフトとの間で確立される。したがって、第2Websocket通信路はクライアント端末１００のブラウザから完全に見えない通信路である。この第2Websocket通信路を介して、Websocketサーバ３００からクライアント端末１００に、秘匿性の高い、例えばWebデータを構成するWebページ用JSファイルのデータとコンテンツファイルのデータとが送信される。Webページ用JSファイルは、第2ダウンロード用JSファイルにより実行される。画像ファイルは、Webページ用JSファイルにより実行処理され、ブラウザに表示される。したがって、Webページ用JSファイルとコンテンツファイルとは、ブラウザを経由してクライアント端末１００ダウンロードされることがなければ、ブラウザによる処理がなされることもなく、ブラウザ画面に表示されているコンテンツファイルは、Webページ用JSファイルにより反映されたものである。
【００３３】
このように、Webページを構成する複数種類のデータのうち秘匿性の高いデータに対するブラウザの処理を不要とすることは、ブラウザ機能による秘匿性の高いデータの閲覧を回避し、第三者による秘匿性の高いデータへのアクセスを困難にさせる。また、コンテンツファイルのデータを本体データのみ、又はバイナリデータにすることは、データが盗難された場合であっても、復元することを困難にさせ、二次的使用を防止する効果を発揮する。
【００３４】
なお、本実施形態に係るデータ送受信方法は上記に限定されない。本発明のコンセプトは、クライアント端末１００とWebsocketサーバ３００と間で、複数回、Websocket通信路を確立し、最初に確立したWebsocket通信路を介して、Websocketサーバ３００からクライアント端末１００に、クライアント端末１００とWebsocketサーバ３００との間で２回目のWebsocket通信路を確立するために必要なデータが送信され、２回目以降に確立したWebsocket通信路を介して、コンテンツファイル等の秘匿性の高いデータがWebsocketサーバ３００からクライアント端末１００に送信される点にある。これにより、秘匿性の高いデータに対するブラウザの処理がなされないため、ブラウザの機能により秘匿性の高いデータのコードの閲覧を困難にさせ、第三者よる秘匿性の高いデータへのアクセスを困難にさせる。したがって、Websocketプロトコルを使用することが発明の本質ではなく、ブラウザによる処理を不要に出来るのであれば、Websocketプロトコルは他の通信プロトコルであってもよい。
【００３５】
したがって、上記の実施形態ではクライアント端末１００とWebsocketサーバ３００との間で、Websocket通信路が２回確立する例について説明したが、クライアント端末１００とWebsocketサーバ３００との間で、Websocket通信路が３回以上確立されてもよい。また、Webページを構成する複数種類のデータのうち、秘匿性の高いデータの全てが単一のWebsocketサーバ３００に記憶されているのではなく、複数のWebsocketサーバに分散されていてもよい。図５は、本実施形態に係るデータ送受信方法の他の手順を示すシーケンス図である。ここでは、第１Websocketサーバ４００に第2ダウンロード用JSファイルのデータが記憶され、第2Websocketサーバ５００にコンテンツファイルのデータが記憶されている。なお、HTTPサーバ２００と第１、第2Websocketサーバ４００，５００とは、単一のコンピュータ上に実装されていてもよいし、複数のコンピュータに各別に実装されていてもよい。図５に示すシーケンス図において、ステップＳ６１からステップＳ６６までの手順は図３に示すシーケンス図と同一である。すなわち、ユーザにより、URLが入力されたのを契機に、クライアント端末１００からHTTPサーバ２００に、HTTP通信路を介して、入力されたURLに対応するWebページの取得要求が送信され（ステップＳ６１）、HTTPサーバ２００からクライアント端末１００に、要求されたWebページに対応するHTMLファイルのデータが送信される（ステップＳ６２）。このHTMLファイルには、クライアント端末１００と第１Websocketサーバ４００との間で第1Websocket通信路を確立するために必要な第１コードが記述されている。また、HTMLファイルには、第１ダウンロード用JSファイルが組み込まれている。
【００３６】
クライアント端末１００のブラウザにより、HTMLファイルのデータが読み込まれ、入力されたURLに対応するWebページがディスプレイに表示されるとともに、第１ダウンロード用JSファイルが実行される（ステップＳ６３）。また、ブラウザによりHTMLファイルのデータが読み込まれたのを契機に、クライアント端末１００から第１Websocketサーバ４００にHTMLファイルに含まれる第１コードに従って、第１Websocket通信路を確立するための第１ハンドシェイク要求が送信される（ステップＳ６４）。
【００３７】
第１Websocketサーバ４００は、クライアント端末１００からの第１ハンドシェイク要求を受信し、認証処理等を行う。第１Websocketサーバ４００にて認証処理が成功したとき、クライアント端末１００と第１Websocketサーバ４００との間に第1Websocket通信路が確立され、Websocketサーバ３００からクライアント端末１００に認証「成功」を示すハンドシェイク応答が送信される（ステップＳ６５）。なお、認証処理が失敗したとき、第１Websocketサーバ４００からクライアント端末１００に認証「失敗」を示すハンドシェイク応答が送信される。
【００３８】
第１Websocketサーバ４００からクライアント端末１００に、第1Websocket通信路を介して、第2ダウンロード用JSファイルのデータが送信される（ステップＳ６６）。第2ダウンロード用JSファイルには、クライアント端末１００と第2Websocketサーバ５００との間で第2Websocket通信路を確立するために必要な第2コードが記述されている。クライアント端末１００で既に実行されている第１ダウンロード用JSファイルにより、受信した第2ダウンロード用JSファイルが実行される（ステップＳ６７）。第2ダウンロード用JSファイルが実行されたのを契機に、クライアント端末１００から第2Websocketサーバ５００に、第2コードに従って、第2Websocket通信路を確立するための第2ハンドシェイク要求が送信される（ステップＳ６８）。第2Websocketサーバ５００は、第2ハンドシェイク要求を受信し、認証処理等を行う。認証処理が成功したとき、クライアント端末１００と第2Websocketサーバ５００との間に第2Websocket通信路が確立され、第2Websocketサーバ５００からクライアント端末１００に認証「成功」を示すハンドシェイク応答が送信される（ステップＳ６９）。認証処理が失敗したとき、第2Websocketサーバ５００からクライアント端末１００に認証「失敗」を示すハンドシェイク応答が送信される。
【００３９】
第2Websocketサーバ５００からクライアント端末１００に、第2Websocket通信路を介して、Webページを構成するデータ（Webページ用JSファイルのデータ、コンテンツファイルのデータ）が送信される（ステップＳ７０）。クライアント端末１００で既に実行されている第2ダウンロード用JSファイルにより、受信したWebページ用JSファイルが実行される（ステップＳ７１）。実行されたWebページ用JSファイルにより、コンテンツファイルのデータが実行処理される。これにより、Webページが完成される。
【００４０】
このように、第2ダウンロード用JSファイルのデータを記憶するWebsocketサーバ４００とコンテンツファイルのデータを記憶するWebsocketサーバ５００とを別にする、つまり秘匿性の高いデータを複数のWebsocketサーバ４００，５００に分散されることは、コンテンツファイルを記憶するサーバの所在の特定を困難にさせ、秘匿性の高いデータへのアクセスを困難にさせる。
【００４１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００４２】
１００…クライアント端末、２００…HTTPサーバ、３００…Websocketサーバ、１０１、２０１、３０１…通信処理部、１０３，２０３，３０３…ＣＰＵ、１０４，２０４、３０４…ＲＯＭ、１０５，２０５、３０５…ＲＡＭ、１０７，２０７，３０７…ＨＤＤ、１０９…操作部Ｉ／Ｆ、１１１…ディスプレイＩ／Ｆ、１３０，２３０，３３０…データバス。
【図１】
2017216492.tif 000003
【図２】
2017216492.tif 000004
【図３】
2017216492.tif 000005
【図４】
2017216492.tif 000006
【図５】
2017216492.tif 000007