(57)【要約】【課題】スマートデバイスのブラウザ上でウェブアプリケーションを実行する際に、顧客情報の漏えいを防止する。【解決手段】まず、店舗１１内で、ローカルデータベース６から無線ＬＡＮ９を介してスマートホン１０のローカルストレージ１３に顧客情報を取り込む。次に、店舗１１外で、この顧客情報をスマートホン１０のブラウザ上でウェブアプリケーションに取り込んで表示する。これにより、ウェブアプリケーションに取り込んで利用する顧客情報は、インターネット３上を流れることなく、ローカルデータベース６から無線ＬＡＮ９を介してスマートホン１０のローカルストレージ１３に取り込まれる。その結果、物理的にデバイスまたはローカルネットワークにアクセスできないとハッキングできないので、顧客情報の漏えいを未然に防止することが可能となる。【選択図】図１
2016105271.tif 000002
【特許請求の範囲】
【請求項１】
スマートデバイスのブラウザ上でウェブアプリケーションを実行するアプリケーション実行手段と、
ローカルデータベースからローカルエリアネットワークを介して前記スマートデバイスのローカルストレージにデータを取り込むデータ取得手段と、
前記データ取得手段によって取り込まれたデータを前記スマートデバイスのブラウザ上で当該データと関連するウェブアプリケーションに取り込んで表示するデータ取込手段と
を有することを特徴とするウェブアプリケーション実行システム。
【請求項２】
前記データ取得手段は、前記ローカルデータベースからウェブソケットサーバを経由して前記ローカルストレージに前記データを取り込むことを特徴とする請求項１に記載のウェブアプリケーション実行システム。
【請求項３】
前記ローカルストレージに格納されているデータが更新された場合に、当該更新後のデータを前記ウェブソケットサーバに送信するデータ更新手段をさらに有する請求項２に記載のウェブアプリケーション実行システム。
【請求項４】
前記データが個人情報であることを特徴とする請求項１乃至３のいずれかに記載のウェブアプリケーション実行システム。
【請求項５】
データが格納されるローカルストレージと、
アプリケーションサーバから受信されたウェブアプリケーションをブラウザ上で実行するアプリケーション実行手段と、
データを格納しているローカルデータベースからローカルエリアネットワークを介して前記ローカルストレージにデータを取り込むデータ取得手段と、
前記データ取得手段によって取り込まれたデータを前記ブラウザ上で当該データと関連するウェブアプリケーションに取り込んで表示するデータ取込手段とを有することを特徴とするスマートデバイス。
【請求項６】
前記データ取得手段は、
前記ローカルデータベースからウェブソケットサーバを経由して前記ローカルストレージに前記データを取り込む請求項５に記載のスマートデバイス。
【請求項７】
前記ローカルストレージに格納されているデータが更新された場合に、当該更新後のデータを前記ウェブソケットサーバに送信するデータ更新手段をさらに有する請求項６に記載のスマートデバイス。
【請求項８】
アプリケーション実行手段、データ取得手段、およびデータ取込手段により実現されるウェブアプリケーション実行方法であって、
前記アプリケーション実行手段が、アプリケーションサーバから受信されたウェブアプリケーションをブラウザ上で実行するアプリケーション実行ステップと、
前記データ取得手段が、データを格納しているローカルデータベースからローカルエリアネットワークを介して、データが格納されるローカルストレージにデータを取り込むデータ取得ステップと、
前記データ取込手段が、前記データ取得ステップで取り込まれたデータを前記ブラウザ上で当該データと関連するウェブアプリケーションに取り込んで表示するデータ取込ステップとを有するウェブアプリケーション実行方法。
【請求項９】
コンピュータを、
アプリケーションサーバから受信されたウェブアプリケーションをブラウザ上で実行するアプリケーション実行手段と、
データを格納しているローカルデータベースからローカルエリアネットワークを介して、
データが格納されるローカルストレージにデータを取り込むデータ取得手段と、
前記データ取得手段によって取り込まれたデータを前記ブラウザ上で当該データと関連するウェブアプリケーションに取り込んで表示するデータ取込手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、特に多数の顧客を抱えた企業の外勤従業員（例えば、銀行の外商業務の担当者、家電販売会社の地域店の外回り営業マンなど）が、スマートホンやタブレット型端末などのスマートデバイス等を用いて店舗外で営業活動を行う際に適用するのに好適なウェブアプリケーション実行システムおよびウェブアプリケーション実行方法等に関するものである。
【背景技術】
【０００２】
これまで、企業の外勤従業員は、店舗外での営業活動においてインターネットに接続するのはセキュリティリスクがあるため、外部への持ち運び装置としてクレードル端末を利用していた。このクレードル端末は、顧客情報の漏えいを防ぐためにインターネットに接続せずに業務を行う仕掛けとなっている。そのため、ＵＳＢ経由で本体とクレードル端末のデータ送受信を行っていた。すなわち、店舗外で営業活動をする前に、店舗内で本体からクレードル端末にＵＳＢ経由でデータを送信し、また、店舗外から店舗内に戻ると、店舗内でクレードル端末から本体にＵＳＢ経由でデータを送信する（例えば、特許文献１参照）。
【０００３】
また、ウェブアプリケーションのクロスサイトスクリプティングに対するセキュリティは、同一生成元ポリシー（Same-origin policy）によって、ある生成元から読み込まれた文書やスクリプトが、異なる生成元からの文書のプロパティを取得したり設定したりするのを防ぐ（非特許文献１参照）。そして、この同一生成元ポリシーはウェブサーバの設定で行う。
【０００４】
また、ウェブアプリケーションとネイティブアプリケーションとは大きく異なる。その両アプリの差異を非特許文献２に示す。また、非特許文献２において、特に、ウェブアプリケーションは、従来技術において、オフライン対応できない。つまり、通常、インターネットに接続された状態で、ウェブアプリケーションを利用しなければならない。従って、ウェブアプリケーションで、機密性の高い情報（例えば、後述する個人情報）を使用する（表示、加工など）ことは危険である。一方、ネイティブアプリケーションは、オフライン対応可能である。従って、機密性の高い情報は、通常、ネイティブアプリケーションで使用される。なお、ネイティブアプリケーションについては、アプリケーション配信元の審査を経て登録する必要がある。ネイティブアプリケーションソフトをアップデートするには、アプリケーション配信元の再審査が必要であり、加えてユーザのアップデート操作が必要である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１６０４７号公報
【非特許文献】
【０００６】
【非特許文献１】"同一生成元ポリシー"、［online］、［平成２７年１０月３１日検索］、インターネット［URL：https://developer.mozilla.org/ja/docs/Web/JavaScript/Same_origin_policy_for_JavaScript］
【非特許文献２】アシアル株式会社  田中正裕、"ハイブリッドアプリ開発最前線から見たＨＴＭＬ５の理想と現実"（Ｐ１４）、［online］、［平成２７年１０月３１日検索］、インターネット［URL：http://www.slideshare.net/monaca_mobi/html5-16559044?related=2］
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、クレードル端末はスマートデバイスに置き換わりつつあるところ、このスマートデバイスではＵＳＢ経由でデータの送受信を行わない。これに加えて、ＵＳＢに取り付くコンピューターウイルスが報告されており、ＵＳＢのセキュリティが問題となっている（例えば、インターネットのサイト<URL：https://srlabs.de/blog/wp-content/uploads/2014/07/SRLabs-BadUSB-BlackHat-v1.pdf>参照）。そのため、ＵＳＢ経由の送受信に代わる方法が望まれていた。
【０００８】
また、ウェブアプリケーションというソフトウェア資源を有効に利用して、機密性の高い情報をハンドリングすることはできなかった。
【０００９】
本発明は、このような事情に鑑み、顧客情報などの機密性の高いデータはインターネットを経由せずに利用することが可能なウェブアプリケーション実行システムおよびウェブアプリケーション実行方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
かかる目的を達成するため、第一の発明は、スマートデバイスのブラウザ上でウェブアプリケーションを実行するアプリケーション実行手段と、ローカルデータベースからローカルエリアネットワークを介して前記スマートデバイスのローカルストレージにデータを取り込むデータ取得手段と、このデータ取得手段によって取り込まれたデータを前記スマートデバイスのブラウザ上で当該データと関連するウェブアプリケーションに取り込んで表示するデータ取込手段とを有するウェブアプリケーション実行システムとしたことを特徴とする。
【００１１】
また、第二の発明は、第一の発明の構成に加え、前記データ取得手段は、前記ローカルデータベースからウェブソケットサーバを経由して前記ローカルストレージに前記データを取り込むことを特徴とする。
【００１２】
また、第三の発明は、第二の発明の構成に加え、前記ローカルストレージに格納されているデータが更新された場合に、当該更新後のデータを前記ウェブソケットサーバに送信するデータ更新手段をさらに有する。
【００１３】
また、第四の発明は、データが個人情報であることを特徴とする。
【００１４】
さらに、第五の発明は、スマートデバイスのブラウザ上でウェブアプリケーションを実行する際に、ローカルデータベースからローカルエリアネットワークを介して前記スマートデバイスのローカルストレージにデータを取り込むデータ取得工程と、前記データ取得工程で取り込まれたデータを前記スマートデバイスのブラウザ上で当該データと関連するウェブアプリケーションに取り込んで表示するデータ取込工程とを含むウェブアプリケーション実行方法としたことを特徴とする。
【発明の効果】
【００１５】
第一、第五の発明によれば、スマートデバイスのブラウザ上でウェブアプリケーションを実行する際に、このウェブアプリケーションに取り込んで利用するデータは、インターネット上を流れることなく、ローカルデータベースからローカルエリアネットワークを介してスマートデバイスのローカルストレージに取り込まれ、物理的にデバイスまたはローカルネットワークにアクセスできないとハッキング（アタック）できないので、データの漏えいを未然に防止することが可能となる。
【００１６】
また、第二の発明によれば、データの取得がウェブソケットサーバを経由して行われるので、スマートデバイスによるデータの送受信を円滑に実行することができる。
【００１７】
また、第三の発明によれば、スマートデバイスでのデータの更新を、ローカルデータベースに容易に反映できる。
【００１８】
また、第四の発明によれば、データが個人情報であるため、個人の利益や権利を適切に保護するとともに、個人情報を扱う企業の信用を維持することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施の形態１に係るウェブアプリケーション実行システムの構成図
【図２】同スマートホンのデータ送受信画面を示す図
【図３】同ウェブアプリケーション実行方法のシーケンス図
【図４】同スマートホンのウェブアプリケーション実行画面を示す図
【図５】本発明の実施の形態２に係るウェブアプリケーション実行システムの構成図
【図６】同スマートホンのウェブアプリケーション実行画面を示す図
【図７】本発明の実施の形態３に係るスマートデバイス１０の構成図
【図８】同スマートデバイス１０の動作例について説明するフローチャート
【図９】同スマートデバイス１０の動作例について説明するフローチャート
【図１０】同スマートデバイス１０の動作例について説明するフローチャート
【図１１】上記実施の形態におけるスマートデバイス１０のブロック図
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について説明する。
【００２１】
［発明の実施の形態１］
【００２２】
図１乃至図４には、本発明の実施の形態１を示す。
【００２３】
実施の形態１に係るウェブアプリケーション実行システム１は、図１に示すように、クラウドアプリケーションサーバ２、インターネット３、ルータ５、ローカルデータベース６、ウェブソケットサーバ７、ローカルの無線ＬＡＮ（ローカルエリアネットワーク）９およびスマートホン（スマートデバイス）１０から構成されている。
【００２４】
ここで、クラウドアプリケーションサーバ２は、例えば、地図を表示するアプリケーションおよび顧客情報を編集するアプリケーションを提供するものであり、図１に示すように、インターネット３に接続されている。また、ルータ５、ローカルデータベース６、ウェブソケットサーバ７および無線ＬＡＮ９は、例えば、企業の店舗１１内に設置されており、ローカルデータベース６、ウェブソケットサーバ７および無線ＬＡＮ９は、互いに接続されているとともに、ルータ５を介してインターネット３に接続されている。ローカルデータベース６には、例えば、企業の顧客ごとに顧客情報（顧客の氏名・生年月日・性別・住所・勤務先・家族構成・商品購入履歴・サービス利用履歴など）が読み書き自在に格納されている。なお、顧客情報は、個人情報と言っても良い。
【００２５】
また、ウェブソケットサーバ７とは、ウェブソケット（通信規格）を用いて、スマートデバイス１０のウェブブラウザと双方向に通信可能なウェブサーバであり、ここでは、スマートホン１０のウェブブラウザとローカルデータベース６とのデータの送受信を仲介するウェブサーバである。このウェブソケット（WebSocket）は、XMLHttpRequestの欠点を解決する技術として開発されており、現在のComet等に取って代わることを目標とする、ユーザのブラウザとサーバ間でインタラクティブな通信セッションを開くことを可能にする技術である（非特許文献１参照）。
【００２６】
つまり、本発明のポイントは、同一生元ポリシーに沿ったウェブアプリケーションにおいて、ウェブソケットでのデータの送受信を利用して、データをスマートデバイス内に保存して、そのデータをアプリケーションで利用することである。すなわち、ローカルデータベース６に存在するデータの機密性を担保しながら、当該データを使用するアプリケーションは、ネイティブで作らないと実現できないと思われていたが、ウェブアプリケーション実行システム１は、ウェブソケットという技術で実現可能であることの新たな知見を得て、構成されたものである。
【００２７】
さらに、スマートホン１０は、図１に実線で示すように、店舗１１内で無線ＬＡＮ９に接続できるとともに、図１に二点鎖線で示すように、店舗１１外でインターネット３に接続できるようになっている。このスマートホン１０は、ＣＰＵ（後述するアプリケーション実行手段、データ取得手段、データ取込手段、データ更新手段の機能を実現する。）１２およびローカルストレージ１３を有しており、ブラウザ（ホームページ閲覧ソフトウェア）がインストールされているとともに、例えば、ＧＰＳ（全地球測位システム）機能を備えている。なお、スマートホン１０は、スマートデバイスと言っても良い。
【００２８】
ウェブアプリケーション実行システム１は以上のような構成を有するので、企業の外勤従業員などのユーザがスマートホン１０を用いて店舗１１の内外で営業活動を行う際には、例えば、次の手順に従って、スマートホン１０のブラウザ上で地理情報表示ソフトウェア（ウェブアプリケーション）を実行する。
【００２９】
すなわち、ユーザは、まず店舗１１内において、図１に実線で示すように、スマートホン１０を無線ＬＡＮ９に接続した状態で、スマートホン１０を操作してデータ取得動作を実行する。これを受けてスマートホン１０のＣＰＵ１２は、データ取得工程で、ローカルデータベース６からウェブソケットサーバ７を経由して無線ＬＡＮ９を介してスマートホン１０のローカルストレージ１３に顧客情報を取り込む。その後、ユーザは、店舗１１外において、図１に二点鎖線で示すように、スマートホン１０をインターネット３に接続した状態で、スマートホン１０を操作してデータ取込動作を実行する。これを受けてスマートホン１０のＣＰＵ１２は、データ取込工程で、この顧客情報をスマートホン１０のブラウザ上で地理情報表示ソフトウェアに取り込んで表示する。
【００３０】
以下、この手順の具体例について、図２〜図４を用いて説明する。
【００３１】
まず、ユーザは、店舗１１内でスマートホン１０を無線ＬＡＮ９に接続する。この状態で、図２に示すように、スマートホン１０を操作してブラウザ８を起動し、ブラウザ８上でウェブアプリケーションＵＲＬを入力する（図３の「200ウェブアプリケーションURLの入力」参照）。すると、ブラウザ８からクラウドアプリケーションサーバ２にアプリケーションページのリクエストが送信され（図３の「210アプリケーションページのリクエスト」参照）、これを受けてクラウドアプリケーションサーバ２からブラウザ８にアプリケーションページのレスポンスが返信される（図３の「220アプリケーションページのレスポンス」参照）。すると、図４に示すように、ブラウザ８上で地理情報表示ソフトウェアが起動し、スマートホン１０のＧＰＳ機能により、スマートホン１０の位置（つまり、ユーザの居場所）に対応した地理情報がブラウザ８上に表示される。
【００３２】
その後、ユーザは、ブラウザ８上でインポート・エクスポートＵＩを呼び出し（図３の「230インポート・エクスポートＵＩの呼び出し」参照）、ウェブソケットサーバＵＲＬを入力する（図３の「240ウェブソケットサーバURLの入力」参照）。すると、図２に示すように、ブラウザ８上にデータ送受信画面１５が表示される。そこで、ユーザは、ローカルデータベース６に保存された顧客情報をブラウザ８に呼び出すべく、データ送受信画面１５上のインポートボタン１７を押す（図３の「250インポートボタンを押す」参照）。
【００３３】
すると、ウェブソケットサーバ７を開く旨のハンドシェイクリクエストがブラウザ８からウェブソケットサーバ７に送信し（図３の「260ウェブソケットサーバを開くハンドシェイクリクエスト」参照）、これを受けてウェブソケットサーバ７を開く旨のハンドシェイクレスポンスがウェブソケットサーバ７からブラウザ８に返信される（図３の「270ウェブソケットサーバを開くハンドシェイクレスポンス」参照）。これで、ウェブソケットサーバ７が開いた状態になる。
【００３４】
この状態で、ブラウザ８からウェブソケットサーバ７に顧客情報のリクエストが送信される（図３の「280データのリクエスト」参照）。すると、ウェブソケットサーバ７からローカルデータベース６に顧客情報のクエリが送信され（図３の「290データのクエリ」参照）、これを受けてローカルデータベース６からウェブソケットサーバ７に顧客情報のレスポンスが返信される（図３の「300データのレスポンス」参照）。すると、ウェブソケットサーバ７からブラウザ８に顧客情報のレスポンスが返信される（図３の「310データのレスポンス」参照）。
【００３５】
その後、ウェブソケットサーバ７を閉じる旨のハンドシェイクリクエストがブラウザ８からウェブソケットサーバ７に送信し（図３の「320ウェブソケットサーバを閉じるハンドシェイクリクエスト」参照）、これを受けてウェブソケットサーバ７を閉じる旨のハンドシェイクレスポンスがウェブソケットサーバ７からブラウザ８に返信する（図３の「330ウェブソケットサーバを閉じるハンドシェイクレスポンス」参照）。これで、ウェブソケットサーバ７が閉じた状態になる。
【００３６】
次に、ウェブソケットサーバ７が閉じた状態になったブラウザ内でウェブソケットサーバ７から受信したデータをスマートデバイス１０のローカルストレージ１３に保存する（図３の「340データをローカルストレージに保存」参照）。
【００３７】
次に、ユーザは、スマートホン１０を携えて店舗１１外に移動し、このスマートホン１０をインターネット３に無線または有線で接続する。すると、ブラウザ８は現在の位置情報を元に地図サーバから地図情報のみを取得するリクエストを出して、受け取った地図を表示し、併せてピン１９を表示する。なお、地図情報を取得し、地図やピンを表示する処理は、ウェブアプリケーションにより実現される公知の技術であるので、詳細な説明は省略する。そして、ユーザがブラウザ８上でピン１９をクリック（タップ）すると、図４に示すように、このピン１９の場所に対応した顧客情報がブラウザ８上の地理情報に重なる形でインラインフレーム１６内に表示される。
【００３８】
そこで、ユーザは、必要に応じて、ブラウザ８上で顧客情報を更新（追加・削除・変更）する（図３の「350操作によりデータの更新」参照）。すると、この更新された顧客情報はローカルストレージ１３に保存する（図３の「360更新したデータをローカルストレージに保存」参照）。
【００３９】
その後、ユーザは、スマートホン１０を携えて店舗１１に戻り、店舗１１内でスマートホン１０を無線ＬＡＮ９に接続する。この状態でスマートホン１０を操作してブラウザ８を起動し、ブラウザ８上でインポート・エクスポートＵＩを呼び出し（図３の「370インポート・エクスポートＵＩの呼び出し」参照）、ウェブソケットサーバＵＲＬを入力する（図３の「380ウェブソケットサーバURLの入力」参照）。すると、図２に示すように、ブラウザ８上にデータ送受信画面１５が表示される。そこで、ユーザは、店舗１１外で更新した顧客情報をローカルデータベース６に保存すべく、データ送受信画面１５上のエクスポートボタン１８を押す（図３の「390エクスポートボタンを押す」参照）。
【００４０】
すると、ウェブソケットサーバ７を開く旨のハンドシェイクリクエストがブラウザ８からウェブソケットサーバ７に送信し（図３の「400ウェブソケットサーバを開くハンドシェイクリクエスト」参照）、これを受けてウェブソケットサーバ７を開く旨のハンドシェイクレスポンスがウェブソケットサーバ７からブラウザ８に返信する（図３の「410ウェブソケットサーバを開くハンドシェイクレスポンス」参照）。これで、ウェブソケットサーバ７が開いた状態になる。
【００４１】
この状態で、店舗１１外で更新された顧客情報がローカルストレージ１３から読み込まれてブラウザ８上に表示する（図３の「420更新したデータを読み込む」参照）。次に、この更新された顧客情報がブラウザ８からウェブソケットサーバ７に送信される（図３の「430更新したデータの送信」参照）。すると、ウェブソケットサーバ７からローカルデータベース６に更新された顧客情報が送信される（図３の「440データのクエリ」参照）。そして、ローカルデータベース６の顧客情報が更新される。次に、ローカルデータベース６からウェブソケットサーバ７に確認のレスポンスが返信される（図３の「450確認のレスポンス」参照）。すると、ウェブソケットサーバ７からブラウザ８に確認のレスポンスが返信される（図３の「460確認のレスポンス」参照）。
【００４２】
その後、ウェブソケットサーバ７を閉じる旨のハンドシェイクリクエストがブラウザ８からウェブソケットサーバ７に送信し（図３の「470ウェブソケットサーバを閉じるハンドシェイクリクエスト」参照）、これを受けてウェブソケットサーバ７を閉じる旨のハンドシェイクレスポンスがウェブソケットサーバ７からブラウザ８に返信する（図３の「480ウェブソケットサーバを閉じるハンドシェイクレスポンス」参照）。これで、ウェブソケットサーバ７が閉じた状態になる。
【００４３】
最後に、更新された顧客情報はローカルストレージ１３から削除される（図３の「490更新したデータをローカルストレージから削除」参照）。
【００４４】
ここで、地理情報表示ソフトウェアの実行が終了し、スマートホン１０を用いた営業活動が終了する。
【００４５】
このように、スマートホン１０のブラウザ８上で地理情報表示ソフトウェアを実行する際に、この地理情報表示ソフトウェアに取り込んで利用する顧客情報は、インターネット３上を流れることなく、ローカルデータベース６から無線ＬＡＮ９を介してスマートホン１０のローカルストレージ１３に取り込まれる。したがって、地理情報表示ソフトウェアの実行に際して、悪意を持つ第三者が不正に地理情報表示ソフトウェアにアクセスできたとしても、顧客情報はクラウドではなくスマートホン１０に入っているので、顧客情報の漏えいを未然に防止することができる。その結果、顧客の利益や権利を適切に保護するとともに、顧客情報を扱う企業の信用を維持することが可能となる。
【００４６】
また、顧客情報の取得がウェブソケットサーバ７を経由して行われるので、スマートホン１０による顧客情報の送受信を円滑に実行することができる。
【００４７】
さらに、顧客情報が更新された場合でも、その更新された顧客情報がローカルデータベース６から無線ＬＡＮ９を介してスマートホン１０のローカルストレージ１３に取り込まれるので、更新する際は物理的にデバイスまたはローカルネットワークにアクセスできないとハッキングできないので、顧客情報の漏えいを未然に防止することが可能となる。
【００４８】
［発明の実施の形態２］
【００４９】
図５および図６には、本発明の実施の形態２を示す。
【００５０】
実施の形態２に係るウェブアプリケーション実行システム１では、クラウドアプリケーションサーバ２が提供する２つのアプリケーション（地図を表示するアプリケーションおよび顧客情報を編集するアプリケーション）を別個のサーバから提供するように構成されている。すなわち、このウェブアプリケーション実行システム１では、図５に示すように、地図を表示するアプリケーションを提供する第１のクラウドアプリケーションサーバ２Ａおよび顧客情報を編集するアプリケーションを提供する第２のクラウドアプリケーションサーバ２Ｂがインターネット３に接続されている。その他の構成については、上述した実施の形態１と基本的に同様であるので、同一の部材については、同一の符号を付してその説明を省略する。
【００５１】
そして、この実施の形態２においても、上述した実施の形態１と同様、企業の外勤従業員などのユーザがスマートホン１０を用いて店舗１１の内外で営業活動を行う際には、次の手順に従って、スマートホン１０のブラウザ上で地理情報表示ソフトウェア（ウェブアプリケーション）を実行する。
【００５２】
すなわち、ユーザは、まず店舗１１内において、図５に実線で示すように、スマートホン１０を無線ＬＡＮ９に接続した状態で、スマートホン１０を操作してデータ取得動作を実行する。これを受けてスマートホン１０のＣＰＵ１２は、データ取得工程で、ローカルデータベース６からウェブソケットサーバ７を経由して無線ＬＡＮ９を介してスマートホン１０のローカルストレージ１３に顧客情報を取り込む。その後、ユーザは、店舗１１外において、図５に二点鎖線で示すように、スマートホン１０をインターネット３に接続した状態で、スマートホン１０を操作してデータ取込動作を実行する。これを受けてスマートホン１０のＣＰＵ１２は、データ取込工程で、図６に示すように、この顧客情報をスマートホン１０のブラウザ上で地理情報表示ソフトウェアに取り込み、ブラウザ８上の地理情報に重なる形でインラインフレーム１６内に表示する。
【００５３】
したがって、この実施の形態２では、上述した実施の形態１と同じ作用効果を奏する。これに加えて、この実施の形態２では、上述したとおり、地図を表示するアプリケーションが第１のクラウドアプリケーションサーバ２Ａから提供されるとともに、顧客情報を編集するアプリケーションが第２のクラウドアプリケーションサーバ２Ｂから提供される。このように、アプリケーション（機能）ごとにサーバが分離しているため、特に大規模なサービスの場合に、そのサービスの保守性を向上させることができる。
【００５４】
［発明のその他の実施の形態］
【００５５】
なお、上述した実施の形態１、２において、顧客情報を管理する際に、顧客ＩＤをクラウド上に保管し、その顧客ＩＤに紐付けされた形で顧客情報をローカルデータベース６に格納しても構わない。この場合も、地理情報表示ソフトウェアの実行に際して、ローカルデータベース６から無線ＬＡＮ９を介してスマートホン１０のローカルストレージ１３に顧客情報を取り込むことにより、地理情報表示ソフトウェア上で顧客ＩＤの漏えいがあるとしても、ローカルネットワークにアクセスまたはデバイスにアクセスできないと顧客ＩＤに紐付けされた顧客情報は読み込めないので、顧客情報の漏えいを未然に防止することができる。なお、顧客ＩＤに関しては、クラウド上に保管されて漏えいの危険にさらされることになるため、暗号化してクラウド上に保管することが望ましい。また、顧客ＩＤに紐付けされた顧客情報が漏えいしない限り、顧客ＩＤが漏えいしても大きな問題は生じない。
【００５６】
［発明の実施の形態３］
【００５７】
本実施の形態において、実施の形態１、２で説明したウェブアプリケーション実行システム１について、さらに詳細に説明する。
【００５８】
ウェブアプリケーション実行システム１は、上述したように、クラウドアプリケーションサーバ２、ローカルデータベース６、ウェブソケットサーバ７、スマートデバイス１０を備える。
【００５９】
クラウドアプリケーションサーバ２は、１以上の各種のアプリケーションを提供するサーバ装置である。
【００６０】
ローカルデータベース６は、記録媒体を有する装置である。当該記録媒体は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。また、データベースは、リレーショナルデータベース、オブジェクト指向データバース、ＣＳＶ形式のファイル等、その構造は問わない。
【００６１】
ウェブソケットサーバ７は、ウェブソケットを用いて、ここでは、スマートデバイス１０上のウェブブラウザとローカルデータベース６との通信を可能にするためのサーバ装置である。なお、同一生元ポリシ―の元、スマートデバイス１０上のウェブブラウザからローカルデータベース６のデータを受信するには、ウェブアクセスでの同一生元ポリシ―の制限を受けない通信が必要になるため、ウェブソケットサーバ７を用いている。
【００６２】
スマートデバイス１０は、タブレット端末、携帯型パソコン、携帯電話、スマートウォッチ等を含む。つまり、スマートデバイスにおいて、ウェブソケットの通信が可能なブラウザを備えていれば端末の種類は問わない。
【００６３】
図７は、本実施の形態におけるウェブアプリケーション実行システム１を構成するスマートデバイス１０の構成図である。
【００６４】
図７において、スマートデバイス１０は、ローカルストレージ１３、アプリケーション実行手段１０２、データ取得手段１０３、データ取込手段１０４、データ更新手段１０５を備える。
【００６５】
スマートデバイス１０を構成するローカルストレージ１３は、各種のデータやプログラムが格納され得る。各種のデータは、例えば、個人情報である。個人情報は、秘密性を担保されるべき情報であり、例えば、個人の住所、氏名、電話番号等である。また、プログラムとは、例えば、ブラウザのプログラムである。また、ローカルストレージ１３は、ウェブソケットサーバ７のＵＲＬを格納していても良い。また、ローカルストレージ１３は、アプリケーションを識別するアプリケーション識別子（例えば、アプリケーションページのＵＲＬ）に対応付けて、ウェブソケットサーバ７のＵＲＬを格納していても良い。また、ローカルストレージ１３は、アプリケーションを識別するアプリケーション識別子（例えば、アプリケーションページのＵＲＬ）に対応付けて、ウェブソケットサーバ７のＵＲＬと、データの検索式とを格納していても良い。また、ローカルストレージ１３は、ユーザを識別するユーザ識別子を格納していても良い。さらに、ローカルストレージ１３は、受信されたウェブアプリケーションを格納していても良い。
【００６６】
ローカルストレージ１３は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。ローカルストレージ１３にデータが記憶される過程は問わない。例えば、記録媒体を介してデータがローカルストレージ１３で記憶されるようになってもよく、通信回線等を介して送信されたデータがローカルストレージ１３で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたデータがローカルストレージ１３で記憶されるようになってもよい。
【００６７】
アプリケーション実行手段１０２は、クラウドアプリケーションサーバ２から受信されたウェブアプリケーションをブラウザ上で実行する。なお、ウェブアプリケーションの種類は問わない。
【００６８】
データ取得手段１０３は、データを格納しているローカルデータベース６からローカルエリアネットワークを介してローカルストレージ１３にデータを取り込む。
【００６９】
データ取得手段１０３は、通常、ローカルデータベース６からウェブソケットサーバ７を経由してローカルストレージ１３にデータを取り込む。
【００７０】
データ取込手段１０４は、データ取得手段１０３によって取り込まれたデータをブラウザ上でデータと関連するウェブアプリケーションに取り込んで表示する。
【００７１】
データ更新手段１０５は、ローカルストレージ１３に格納されたデータに対する更新指示が受け付けられた場合、当該更新指示に従って、ローカルストレージ１３内のデータを更新する。また、データ更新手段１０５は、ローカルストレージ１３内の更新されたデータを、ウェブソケットを用いてウェブソケットサーバ７に送信する。なお、ウェブソケットサーバ７に送信された更新されたデータは、ローカルデータベース６に送信される。そして、ローカルデータベース６に、更新されたデータが蓄積される。つまり、スマートデバイス１０上でのデータの更新は、ローカルデータベース６に反映される。
【００７２】
アプリケーション実行手段１０２、データ取得手段１０３、データ取込手段１０４、データ更新手段１０５は、通常、ＭＰＵやメモリ等から実現され得る。アプリケーション実行手段１０２等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはＲＯＭ等の記録媒体に記録されている。但し、ハードウェア（専用回路）で実現しても良い。
【００７３】
データ取得手段１０３は、通常、無線または有線の通信手段をも有する。
【００７４】
データ取込手段１０４は、ディスプレイ等のデータの表示手段をも有する。
【００７５】
次に、ウェブアプリケーション実行システム１を構成するスマートデバイス１０の動作例について、図８のフローチャートを用いて説明する。
【００７６】
（ステップＳ８０１）スマートデバイス１０の受付手段（図示しない）は、ウェブアプリケーションのＵＲＬを受け付けたか否かを判断する。ウェブアプリケーションのＵＲＬを受け付けた場合はステップＳ８０２に行き、ウェブアプリケーションのＵＲＬを受け付けない場合はステップＳ８１０に行く。
【００７７】
（ステップＳ８０２）アプリケーション実行手段１０２は、ステップＳ８０１で受け付けられたＵＲＬを含むリクエストであり、アプリページのリクエストをクラウドアプリケーションサーバ２に送信する。
【００７８】
（ステップＳ８０３）アプリケーション実行手段１０２は、クラウドアプリケーションサーバ２から、ＵＲＬに対応するアプリページを受信したか否かを判断する。アプリページを受信した場合はステップＳ８０４に行き、アプリページを受信しない場合はステップＳ８０３に戻る。
【００７９】
（ステップＳ８０４）アプリケーション実行手段１０２は、ステップＳ８０３で受信されたアプリページを用いて、アプリを表示する。
【００８０】
（ステップＳ８０５）データ取得手段１０３は、ウェブソケットサーバ７にアクセスする。なお、ここで、データ取得手段１０３は、ウェブソケットサーバ７に自動的にアクセスしても良いし、ユーザの指示の受け付けによりアクセスしても良い。
【００８１】
（ステップＳ８０６）データ取得手段１０３は、ステップＳ８０４で表示されたアプリに対応するデータをウェブソケットサーバ７にリクエストする。なお、リクエストには、当該アプリを識別するアプリ識別子を含んでも良い。また、リクエストには、ユーザを識別するユーザ識別子を含んでも良い。また、アプリ識別子は、ＵＲＬでも良いし、アプリケーション実行手段１０２がクラウドアプリケーションサーバ２から受信した情報でも良い。また、ユーザ識別子は、ローカルストレージ１３に格納されていても良いし、受付手段が受け付けても良い。なお、リクエストにユーザ識別子を含む場合、データ取得手段１０３は、当該ユーザ識別子に対応するデータをリクエストすることは好適である。また、データ取得手段１０３は、アプリ識別子およびユーザ識別子に対応するデータをリクエストしても良い。また、本ステップにおいて、データ取得手段１０３は、自動的にウェブソケットサーバ７にリクエストしても良いし、ユーザの指示の受け付けによりリクエストしても良い。
【００８２】
（ステップＳ８０７）データ取得手段１０３は、ステップＳ８０６におけるリクエストの送信に応じて、データを受信したか否かを判断する。データを受信すればステップＳ８０８に行き、データを受信しなければステップＳ８０７に戻る。なお、データは、ローカルデータベース６に格納されていたデータであり、ウェブソケットサーバ７から受信されたデータである。
【００８３】
（ステップＳ８０８）データ取得手段１０３は、ウェブソケットサーバ７との接続をクローズする。
【００８４】
（ステップＳ８０９）データ取込手段１０４は、ブラウザに取り込まれたデータを、ローカルストレージ１３に保存する。ステップＳ８０１に戻る。
【００８５】
（ステップＳ８１０）データ取込手段１０４は、スマートデバイス１０がインターネットに接続されたか否かを判断する。インターネットに接続された場合はステップＳ８１０に行き、インターネットに接続されない場合はステップＳ８１３に行く。なお、ここで、データ取込手段１０４は、自動的にインターネットへの接続を試みても良いし、ユーザの指示の受け付けによりインターネットに接続しても良い。
【００８６】
（ステップＳ８１１）データ取込手段１０４は、アプリを表示する。
【００８７】
（ステップＳ８１２）データ取込手段１０４は、ステップＳ８１０で保存したデータをアプリに取り込み、アプリ上に表示する。ステップＳ８０１に戻る。なお、データの表示態様は問わない。データは、アプリに埋め込まれた表示されても良いし、アプリのフレームやウィンドウとは別フレーム、別ウィンドウでも良い。また、ユーザの指示の受け付けに応じて、データは、表示されても良い。
【００８８】
（ステップＳ８１３）受付手段は、データの更新指示を受け付けたか否かを判断する。データの更新指示を受け付けた場合はステップＳ８１４に行き、データの更新指示を受け付けない場合はステップＳ８１５に行く。
【００８９】
（ステップＳ８１４）データ更新手段１０５は、更新指示に従い、データを更新し、当該更新されたデータをローカルストレージ１３に保存する。ステップＳ８０１に戻る。
【００９０】
（ステップＳ８１５）データ更新手段１０５は、ＬＡＮに接続されたか否かを判断する。ＬＡＮに接続された場合はステップＳ８１６に行き、ＬＡＮに接続されない場合はステップＳ８０１に戻る。なお、ここで、データ更新手段１０５は、自動的にＬＡＮへの接続を試みても良いし、ユーザの指示の受け付けによりＬＡＮに接続しても良い。
【００９１】
（ステップＳ８１６）データ更新手段１０５は、ウェブソケットサーバ７にアクセスする。
【００９２】
（ステップＳ８１７）データ更新手段１０５は、更新されたデータをウェブソケットサーバ７に送信する。なお、更新されたデータは、ウェブソケットサーバ７を経由して、ローカルデータベース６に保存される。
【００９３】
（ステップＳ８１８）データ更新手段１０５は、ウェブソケットサーバ７との接続をクローズする。
【００９４】
（ステップＳ８１９）データ更新手段１０５は、更新されたデータをローカルストレージ１３から削除する。ステップＳ８０１に戻る。
【００９５】
なお、図８のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【００９６】
次に、スマートデバイス１０の他の動作例について、図９、および図１０のフローチャートを用いて説明する。なお、本フローチャートにおいて、あらかじめブラウザを起動しておく。次に、ユーザからウェブアプリケーションのＵＲＬを受け付けることによって、以下のステップＳ９０１が開始する。
【００９７】
（ステップＳ９０１）アプリケーション実行手段１０２は、スマートデバイスがオフラインまたは接続されているネットワークがウェブアプリケーションのＵＲＬに対応するクラウドアプリケーションサーバ２と異なるネットワークであるか否かを判断する。接続されているネットワークがウェブアプリケーションのＵＲＬに対応するクラウドアプリケーションサーバ２と通信可能なネットワークであればステップＳ９０２に行き、スマートデバイスがオフラインまたは接続されているネットワークがウェブアプリケーションのＵＲＬに対応するクラウドアプリケーションサーバ２と通信できないネットワークであればステップＳ９０９に行く。
【００９８】
（ステップＳ９０２）アプリケーション実行手段１０２は、クラウドアプリケーションサーバ２からレスポンスがあるか否かを判断する。レスポンスがある場合はステップＳ９０３に行き、レスポンスがない場合はステップＳ９０９に行く。なお、レスポンスがない場合は、例えば、クラウドアプリケーションサーバ２が停止している、クラウドアプリケーションサーバ２が更新中である、Firewallの設定等による原因などの場合である。
【００９９】
（ステップＳ９０３）アプリケーション実行手段１０２は、クラウドアプリケーションサーバ２にキャッシュ・マニフェストが定義されているか否かを判断する。キャッシュ・マニフェストが定義されている場合はステップＳ９０４に行き、定義されていない場合はステップＳ９０７に行く。なお、キャッシュ・マニフェストについて、ＵＲＬ「http://www.w3.org/TR/2011/WD-html5-20110525/offline.html」のウェブページを参照のこと。
【０１００】
また、キャッシュ・マニフェスト（Cache Manifest）は、ウェブ基準として採用しなくなる方向に決まっているので、それに代わる新たな定義がされている。その新たな定義は、ServiceWorkersという。ServiceWorkersについては、ＵＲＬ「 http://www.w3.org/TR/service-workers/」のウェブページを参照のこと。
【０１０１】
なお、Cache Manifestにおいて、キャッシュの仕組みがHTMLのタグの定義によりブラウザの機能で動作した。一方、ServiceWorkersにおいて、開発者がキャシュう機能をJavaScript（登録商標）で実装する。かかる点がCache ManifestとServiceWorkersとの差異である。加えて、ServiceWorkersは、httpsまたはwssまたはローカルホストでしか実装できない仕様である。
【０１０２】
（ステップＳ９０４）アプリケーション実行手段１０２が実行しているブラウザは、クラウドアプリケーションサーバ２からキャッシュ・マニフェストをリクエストする。なお、キャッシュ・マニフェストは公知技術であるので、説明を省略する。
（ステップＳ９０５）アプリケーション実行手段１０２は、キャッシュ・マニフェストが更新されているか、またはキャッシュ・マニフェストが存在するか否かを判定する。更新されていない場合はステップＳ９１２に行き、更新されている場合または以前に存在しなかった場合はＳ９０６に行く。
【０１０３】
（ステップＳ９０６）ブラウザはキャッシュ・マニフェストに基づいた素材をクラウドアプリケーションサーバ２に要求し、ブラウザのウェブキャッシュにアプリを保存する。ウェブキャッシュにアプリを保存したらステップＳ９１２に行く。なお、素材とは、ウェブアプリケーションを構成する部品（通常、ファイル）であり、例えば、スクリプト、スタイルシート、イメージ等である。
【０１０４】
（ステップＳ９０７）ブラウザが自動キャッシュ機能を持つ場合はステップＳ９０８に行き、自動キャッシュ機能を持たない場合はステップＳ９１２に行く。なお、自動キャッシュ機能とは、自動的にウェブアプリケーションの素材をウェブキャッシュに保存する機能である。そして、ウェブアプリケーションにキャッシュ・マニフェストが定義されていなくても、自動キャッシュ機能を持つブラウザがある。
【０１０５】
（ステップＳ９０８）アプリケーション実行手段１０２は、クラウドアプリケーションサーバ２から受信したファイルを、オフラインなどで利用できるように、ウェブキャッシュに保存する。本ステップからステップＳ９１２に行く。なお、例えば、Microsoft社（登録商標）のEdgeブラウザは、積極的にウェブキャッシュに保存する。また、例えば、Chrome（登録商標）などのブラウザは、ウェブに接続している前提で、キャッシュ・マニフェストなどがない場合はウェブキャッシュに保存しない場合が多い。自動キャッシュ機能はウェブの基準ではないので、対応はブラウザごとに異なる。
【０１０６】
（ステップＳ９０９）デバイスがオフラインの場合またはクラウドアプリケーションサーバ２からレスポンスがない場合、アプリケーション実行手段１０２が実行しているブラウザは、ウェブキャッシュの中にアプリケーションが存在するか否かを判断する。存在する場合はステップＳ９１０に行き、存在しない場合はステップＳ９１１に行く。
【０１０７】
（ステップＳ９１０）ウェブキャッシュのなかにアプリケーションが存在する場合は、ブラウザは、ウェブアプリケーションを利用するにあたるファイル（スクリプト、スタイルシート、イメージなど）をウェブキャッシュから読み込み、ステップＳ９１２に行く。
【０１０８】
（ステップＳ９１１）ブラウザは、エラーメッセージを出力する。なお、本ステップが実行される場合は、デバイスがオフラインの場合またはクラウドアプリケーションサーバ２からレスポンスがない場合、あるいはアプリケーションをデバイス上に実行したことがあるけど、ブラウザのキャッシュ機能がなかった場合等である。なお、例えば、ユーザがネットワーク環境を確認して、クラウドアプリケーションサーバ２に再度リクエストする場合は、ステップＳ９０１から、再度、実行される。
【０１０９】
（ステップＳ９１２）ブラウザは、ウェブアプリケーションのHTML、スクリプト、スタイルシートを用いて、ウェブアプリケーションをブラウザで表示する。
【０１１０】
（ステップＳ９１３）ウェブアプリケーションは、アプリケーション用のデータをローカルストレージ１３から読み込む。
【０１１１】
（ステップＳ９１４）ウェブアプリケーションは、ローカルストレージ１３のデータをアプリケーション内で表示する。
【０１１２】
（ステップＳ９１５）アプリケーションの読み込みが完了したら、データ更新手段１０５は、自動的にデータを更新する目的で、ウェブソケットサーバ７に接続リクエストを送信する。なお、データ更新手段１０５は、アプリケーションプログラムを起動してしてからウェブソケットサーバ７に接続リクエスト送信する。
【０１１３】
（ステップＳ９１６）ウェブソケットサーバ７からレスポンスがある場合は、データの更新が行われる。そして、ステップＳ９１５におけるリクエストの送信に応じて、データ更新手段１０５は、ウェブソケットサーバ７からレスポンスがあったか否かを判断する。レスポンスがあった場合はステップＳ９１７に行き、レスポンスがない場合はステップＳ９２１に行く。なお、スクリプトからデバイスのネットワーク状況の確認はウェブの標準機能ではないので、レスポンスがない場合は、通常、デバイスはオフラインの状態またはウェブソケットサーバ７のLANに接続していないことを指す。そのため、リクエストを送信するように、後述するステップＳ９２５で更新フラグを立てるのである。
【０１１４】
（ステップＳ９１７）データ更新手段１０５は、ウェブソケットサーバ７に接続する。接続するにあたってはＩＰアドレスとポートとプロトコールが一致しないと接続しないが、不要に外部のパソコンなどに接続しないように、接続する際には、認識システムによる認証を要求することが推奨される。
【０１１５】
（ステップＳ９１８）データ更新手段１０５は、ローカルストレージ１３内の更新したデータをウェブソケット経由でウェブソケットサーバ７に送信する。そして、データ更新手段１０５は、ローカルストレージ１３のデータを削除する。なお、後の手順でデータを、再度、ローカルデータベース６から、ウェブソケットサーバ７経由でデータが読み込まれる場合がある。データが読み込まれる場合、ローカルストレージ１３内のデータと読み込まれたデータとが異なる可能性があるので、デバイスのローカルストレージ１３のデータを削除するのである。
【０１１６】
データ取得手段１０３は、ウェブソケットサーバ７に最新のデータをリクエストする。
【０１１７】
データ取得手段１０３は、ウェブソケットサーバから最新のデータを受信する。
データ取得手段１０３は、ウェブソケットサーバから受信したデータをローカルストレージ１３に保存する。
【０１１８】
（ステップＳ９１９）データ取得手段１０３は、ウェブソケットサーバとの接続を閉じる。
【０１１９】
（ステップＳ９２０）データ取得手段１０３は、更新が必要であることを示す更新フラグを解除する。なお、更新フラグの解除とは、例えば、更新フラグの削除、更新フラグを更新不要を示す値に書き換える等の処理である。なお、更新フラグは、アプリケーション内にデータの更新が必要であることを示すフラグであり、後述するステップＳ９２１またはステップＳ９２３で設定される。
【０１２０】
（ステップＳ９２１）アプリケーションは起動してからすぐウェブソケットサーバ７から最新データをとってくるように設定してある。このときにデバイスはオフラインまたはウェブソケットサーバ７と異なるネットワークに接続されている等の理由により、ウェブソケットサーバ７からレスポンスが無い場合は、データ取得手段１０３は、更新フラグを設定する。なお、ここでの更新フラグは、時間をおいてから、ウェブソケットサーバ７に問い合わせすることを示すフラグであり、データの更新が必要である旨を示すフラグである。
【０１２１】
（ステップＳ９２２）データ更新手段１０５は、ユーザによるアプリケーションの利用の際に、ローカルストレージ１３のデータが更新されたか否かを判断する。データが更新された場合はステップＳ９２３に行き、データが更新されない場合はステップＳ９２４に行く。
【０１２２】
（ステップＳ９２３）データ更新手段１０５は、データの更新が必要である旨を示す更新フラグを設定する。
【０１２３】
（ステップＳ９２４）データ更新手段１０５は、所定の時間、ウェイトする。なお、所定の時間は、固定でも良いし、動的に変化しても良い。所定の時間は、ウェブソケットサーバ７にリクエストを送信するまでの時間であり、例えば、５秒、３０秒、６０秒などである。なお、ウェイトする理由は、ロング・ポーリングをするにあたってウェイトなしであるとＣＰＵ等の資源の無駄遣いになるためである。また、ウェイトは、アプリケーションに負担をかけないようにメインスレードでやらないことが好適である。
（ステップＳ９２５）データ更新手段１０５は、データの更新が必要である旨の更新フラグが存在するか否かを確認する。更新フラグが存在する場合（更新の必要がある場合）はステップＳ９１５に行き、更新フラグが存在しない場合（更新の必要がない場合）はステップＳ９２２に戻る。
【０１２４】
なお、本ステップ等で示すように、ユーザがアプリケーションを利用している際に、アプリケーションは後ろでロング・ポーリングを行って、ユーザがデータを更新してなおかつウェブソケットサーバ７と同じネットワークであるときは、自動的にデータを更新するようにする。
【０１２５】
また、スマートデバイス１０がオフライン、またはウェブソケットサーバ７と異なるネットワークで利用しているときは、データの変更はスマートデバイス１０内に保存される。そして、スマートデバイス１０がウェブソケットサーバ７と同じネットワークに接続できたとき、データの更新をまとめて、ウェブソケット経由で送信する。
【０１２６】
以上、本実施の形態によれば、個人情報等のデータの漏えいを未然に防止することが可能となる。
【０１２７】
また、本実施の形態によれば、ウェブアプリケーションに取り込まれるデータの取得がウェブソケットサーバを経由して行われるので、スマートデバイスによるデータの送受信を円滑に実行することができる。
【０１２８】
また、本実施の形態によれば、ウェブソケットをスマートデバイスのブラウザとローカルデータベースとのデータ送受信で用いることにより、ウェブアプリケーションというソフトウェア資源を有効に利用して、ローカルデータベース上の機密性の高い情報をアプリ上でハンドリングすることができる。なお、通常、ウェブソケットは、ウェブサーバとブラウザとの間の双方向通信で使用される。つまり、ウェブソケットは、通常、オープンな環境で使用される。従って、通常、機密性の高い情報を格納しているローカルデータベースのデータを取得する際に、インターネットを介したウェブソケットを利用しようとは考えない。以上より、ウェブソケットとローカルデータベースとを組み合わせることに阻害要因がある、と言える。
【０１２９】
なお、本実施の形態における、各種の装置の処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをＣＤ−ＲＯＭなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるスマートデバイス１０を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、アプリケーションサーバから受信されたウェブアプリケーションをブラウザ上で実行するアプリケーション実行手段と、データを格納しているローカルデータベースからローカルエリアネットワークを介して、データが格納されるローカルストレージにデータを取り込むデータ取得手段と、前記データ取得手段によって取り込まれたデータを前記ブラウザ上で当該データと関連するウェブアプリケーションに取り込んで表示するデータ取込手段として機能させるためのプログラムである。
【０１３０】
また、上記プログラムにおいて、前記データ取得手段が、前記ローカルデータベースからウェブソケットサーバを経由して前記ローカルストレージに前記データを取り込む処理を行うことは好適である。
【０１３１】
また、上記プログラムにおいて、コンピュータを、前記ローカルデータベースにおいて前記データが更新された場合に、当該更新後のデータを当該ローカルデータベースから前記ローカルエリアネットワークを介して前記ローカルストレージに取り込むデータ更新手段としてさらに機能させるプログラムであることは好適である。
【０１３２】
また、図２、図４、図６に、本明細書で述べたプログラムを実行して、上述した実施の形態のスマートデバイス１０を実現するコンピュータの外観が示されている。上述の実施の形態のスマートデバイス１０は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図１１は、スマートデバイス１０のブロック図である。
【０１３３】
図１１において、スマートデバイス１０を構成するコンピュータハードウェア３００は、例えば、コンピュータ３０１、およびタッチパネル３０４を有する。コンピュータ３０１は、例えば、ＭＰＵ３０１３、ＭＰＵ３０１３に接続されたバス３０１４、ブートアッププログラム等のプログラムを記憶するためのＲＯＭ３０１５、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのＲＡＭ３０１６、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク３０１７を含む。ここでは、図示しないが、コンピュータ３０１は、さらに、図示しないが、ＬＡＮへの接続を提供する通信手段（通常、無線通信手段）を含む。
【０１３４】
プログラムは、コンピュータ３０１に、上述した実施の形態のスマートデバイス１０等の機能を実行させるオペレーティングシステム（ＯＳ）、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能（モジュール）を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータハードウェア３００がどのように動作するかは周知であり、詳細な説明は省略する。
【０１３５】
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
【０１３６】
また、上記各実施の形態において、一の装置に存在する２以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
【０１３７】
また、上記各実施の形態において、各処理（各機能）は、単一の装置（システム）によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
【０１３８】
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【０１３９】
また、上述した実施の形態１〜３では、スマートデバイスとして、主として、スマートホン１０を用いた場合について説明した。しかし、インターネット３に接続してブラウザ８上でウェブアプリケーションを実行する機能を有する端末である限り、スマートホン１０以外のブラウザ機能のあるスマートデバイスを代用することも可能である。
【０１４０】
また、上述した実施の形態１〜３では、ウェブアプリケーションとして地理情報表示ソフトウェアを実行する場合について説明した。しかし、ウェブアプリケーションとしては、地理情報表示ソフトウェアに限らず、ＡＰＩを提供している種々のソフトウェア（例えば、外商管理ソフトウェア、顧客管理ソフトウェア、乗務員管理ソフトウェアなど）を適用することができる。
【０１４１】
また、上述した実施の形態１〜３では、企業が顧客情報を取り扱う場合について説明した。しかし、顧客情報以外の個人情報（例えば、役員や従業員の私生活に関する情報など）を取り扱う場合や、さらに拡張して個人情報以外のデータ（例えば、故人の出生地・遺産、ペットの病歴・通院記録など）を取り扱う場合に本発明を同様に適用することも可能である。
【産業上の利用可能性】
【０１４２】
本発明は、例えば、企業、官公庁、ＮＰＯ法人、学校、研究機関、病院・医院その他の組織が個人情報等を取り扱う場合に、情報システムとして、広く適用することができる。
【符号の説明】
【０１４３】
１……ウェブアプリケーション実行システム
２……クラウドアプリケーションサーバ
３……インターネット
５……ルータ
６……ローカルデータベース
７……ウェブソケットサーバ
８……ブラウザ
９……無線ＬＡＮ（ローカルエリアネットワーク）
１０……スマートホン（スマートデバイス）
１１……店舗
１２……ＣＰＵ
１３……ローカルストレージ
１０２……アプリケーション実行手段
１０３……データ取得手段
１０４……データ取込手段
１０５……データ更新手段
【図１】
2016105271.tif 000003
【図２】
2016105271.tif 000004
【図５】
2016105271.tif 000005
【図７】
2016105271.tif 000006
【図８】
2016105271.tif 000007
【図９】
2016105271.tif 000008
【図１０】
2016105271.tif 000009
【図１１】
2016105271.tif 000010
【図３】
2016105271.tif 000011
【図４】
2016105271.tif 000012
【図６】
2016105271.tif 000013