(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024095879
(43)【公開日】2024-07-11
(54)【発明の名称】設定データファイル配信装置、設定データファイル配信システム、設定データファイル配信方法及びコンピュータプログラム
(51)【国際特許分類】
G06F 8/60 20180101AFI20240704BHJP
G06F 21/62 20130101ALI20240704BHJP
G06F 16/14 20190101ALI20240704BHJP
【FI】
G06F8/60
G06F21/62 318
G06F16/14
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022212845
(22)【出願日】2022-12-29
(71)【出願人】
【識別番号】518431200
【氏名又は名称】ウィズデスク株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】田口 湧都
(72)【発明者】
【氏名】君島 隆朗
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AA25
5B376AA38
5B376BC25
5B376CA46
(57)【要約】
【課題】サービスのアップデートなどが行われた場合、当該サービス用に提供されるプログラムがアップデート前のものであっても、設定データファイルを配信して正常に動作させることができる設定データファイル配信装置を提供する。
【解決手段】端末装置で実行されるプログラムを用いてサービスを提供する情報処理サーバであって、アカウント毎に、サービスの設定内容を示す設定データを記憶するデータベースと、当該データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントIDと、設定データファイルとを対応付けて記憶するストレージとを備える。情報処理サーバは、上記プログラムに含まれるマイグレーションIDに基づく端末装置からの設定データファイルの配信要求に応じて、マイグレーションIDと、アカウントIDとに対応する設定データファイルを端末装置へ送信する。
【選択図】
図12
【特許請求の範囲】
【請求項1】
端末装置で実行されるプログラムを用いてサービスを提供する情報処理サーバであって、
前記サービスを利用するアカウント毎に、該サービスの設定内容を示す設定データを記憶するアカウント管理データベースと、
該アカウント管理データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントを識別するアカウントIDと、該マイグレーションIDが発行されたときの前記アカウント管理データベースが記憶する設定データに基づいて作成される設定データファイルとを対応付けて記憶する設定データファイルストレージと
を備え、
前記プログラムは前記マイグレーションIDを含み、
前記マイグレーションIDに基づく前記端末装置からの前記設定データファイルの配信要求に応じて、前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに対応する前記設定データファイルを前記端末装置へ送信する通信部と
を備える設定データファイル配信装置。
【請求項2】
前記設定データファイルストレージは、
前記サービスに係る複数の機能のうち、前記アカウントが利用する特定の一又は複数の機能毎に作成された一又は複数の前記設定データファイルと、該機能を示す機能IDをキーにして前記一又は複数の設定データファイルを特定するための索引データファイルとを、前記マイグレーションID及び前記アカウントIDに対応付けて記憶しており、
前記通信部は、
前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに対応する前記索引データファイルを前記端末装置へ送信し、
前記索引データファイルを用いた前記端末装置からの前記設定データファイルの要求に応じて、前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDと、前記アカウントが利用する特定の機能を示す前記機能IDとに対応する前記設定データファイルを前記端末装置へ送信する
請求項1に記載の設定データファイル配信装置。
【請求項3】
前記設定データファイルストレージは、
前記端末装置側の複数種類の環境毎に作成された複数の前記設定データファイルと、該環境を示す環境IDをキーにして前記複数の設定データファイルを特定するための索引データファイルとを、前記マイグレーションID及び前記アカウントIDに対応付けて記憶しており、
前記通信部は、
前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに対応する索引データファイルを前記端末装置へ送信し、
前記索引データファイルを用いた前記端末装置からの前記設定データファイルの要求に応じて、前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDと、前記端末装置側の環境を示す前記環境IDとに対応する前記設定データファイルを前記端末装置へ送信する
請求項1に記載の設定データファイル配信装置。
【請求項4】
前記通信部は、
前記索引データファイルを送信する場合、該索引データファイルをキャッシュしないことを指示するキャッシュコントロール情報及び前記索引データファイルを前記端末装置へ送信し、
前記設定データファイルを送信する場合、前記設定データファイルをキャッシュすることを指示するキャッシュコントロール情報及び前記設定データファイルを前記端末装置へ送信する処理を実行する
請求項2又は請求項3のいずれか1項に記載の設定データファイル配信装置。
【請求項5】
請求項4に記載の設定データファイル配信装置と、
端末装置と
を備え、
前記端末装置は、
該端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに基づいて、前記索引データファイルを要求し、
前記マイグレーションID及び前記アカウントIDに対応する前記索引データファイルを受信した場合、前記キャッシュコントロール情報に従って、前記索引データファイルをキャッシュせず、
前記索引データファイルに基づいて、前記設定データファイルを要求し、
要求に応じて前記設定データファイル配信装置から送信された前記設定データファイルを受信した場合、前記キャッシュコントロール情報に従って、前記設定データファイルをキャッシュする
設定データファイル配信システム。
【請求項6】
端末装置で実行されるプログラムを用いてサービスを提供する情報処理サーバを用いた設定データファイル配信方法であって、
前記サービスを利用するアカウント毎に、該サービスの設定内容を示す設定データをアカウント管理データベースに記憶し、
該アカウント管理データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントを識別するアカウントIDと、該マイグレーションIDが発行されたときの前記アカウント管理データベースが記憶する設定データに基づいて作成される設定データファイルとを対応付けて設定データファイルストレージに記憶し、
前記プログラムに含まれるマイグレーションIDに基づく前記端末装置からの前記設定データファイルの配信要求に応じて、前記端末装置が実行する前記プログラムに含まれるマイグレーションIDと、前記アカウントIDとに対応する前記設定データファイルを前記端末装置へ送信する
設定データファイル配信方法。
【請求項7】
端末装置で実行されるプログラムを用いてサービスを提供する処理をコンピュータに実行させるためのコンピュータプログラムであって、
前記サービスを利用するアカウント毎に、該サービスの設定内容を示す設定データをアカウント管理データベースに記憶し、
該アカウント管理データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントを識別するアカウントIDと、該マイグレーションIDが発行されたときの前記アカウント管理データベースが記憶する設定データに基づいて作成される設定データファイルとを対応付けて設定データファイルストレージに記憶し、
前記プログラムに含まれるマイグレーションIDに基づく前記端末装置からの前記設定データファイルの配信要求に応じて、前記端末装置が実行する前記プログラムに含まれるマイグレーションIDと、前記アカウントIDとに対応する前記設定データファイルを前記端末装置へ送信する
処理を前記コンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、設定データファイル配信装置、設定データファイル配信システム、設定データファイル配信方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
端末装置のブラウザは、ウェブサイトに設置されたJavaScript(登録商標)ファイルなどのスクリプトファイルを実行することによって、動的な機能を実現することができる。また、当該スクリプトファイルを提供し、機能を実現しているサービスにおいては、サービスを利用するアカウント毎に当該機能の各種設定をサーバで管理することもできる。端末装置のブラウザは、スクリプトファイルを実行した際、アカウントに応じた設定データをサーバから取得し、設定内容に応じた機能を実現する。
【0003】
例えば、JavaScript(登録商標)ファイルを実行する端末装置と、サーバとが協動して実現する機能の一つに画面共有システムがある。画面共有システムは、ゲスト端末のブラウザに表示される画面及びマウスカーソル操作を、エージェント端末のブラウザを通じて共有することにより、エージェント端末を操作するユーザと、ゲスト端末を操作するユーザとの情報伝達を視覚的に促進することを可能にするシステムである(例えば、特許文献1)。以下、ゲスト端末を操作するユーザをゲスト、ゲスト端末のブラウザをゲストブラウザと呼ぶ。また、エージェント端末を操作するユーザをエージェント、エージェント端末のブラウザをエージェントブラウザと呼ぶ。エージェントは、例えば、ウェブサイトの操作をゲストに案内する者である。
画面共有システムを利用するアカウントが複数ある場合、アカウント毎に異なる設定を行うことができ、ゲスト及びエージェントは自身が属するアカウントの設定に応じた画面共有を行うことができる。設定内容は、例えば、共有不可項目情報などである。共有不可項目情報は、画面共有時にゲストブラウザからエージェントブラウザに共有を行わないHTML要素の情報であり、具体的には、該当のHTML要素が含まれるページのURLなどの所在情報及び当該HTML要素を指し示すCSSセレクター、XPathなどの要素情報などが含まれる。サーバは、アカウント毎に設定データをデータベースなどに記憶している。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、端末装置で実行されるプログラムが、サーバから送信された設定データを元に処理を実行して動作するサービスにおいては、サービスのアップデートなどにより、設定データの送信元であるサーバとJavaScript(登録商標)などのプログラムそれぞれが定義している設定データの形式が不一致となる場合があり、サービスが正しく動作しない可能性がある。
【0006】
本開示の目的は、サービスのアップデートなどが行われた場合であっても、端末装置で実行されるプログラムにおいて定義されている設定データの形式と、サーバが配信する当該プログラム用の設定データの形式とを常に一致させ、当該プログラムを正常に動作させることができる設定データファイル配信装置、設定データファイル配信システム、設定データファイル配信方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【0007】
本開示の一側面に係る設定データファイル配信装置は、端末装置で実行されるプログラムを用いてサービスを提供する情報処理サーバであって、前記サービスの利用アカウント毎に、該サービスの設定内容を示す設定データを記憶するアカウント管理データベースと、該アカウント管理データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントを識別するアカウントIDと、該マイグレーションIDが発行されたときの前記アカウント管理データベースが記憶する設定データに基づいて作成される設定データファイルとを対応付けて記憶する設定データファイルストレージとを備え、前記プログラムは前記マイグレーションIDを含み、前記マイグレーションIDに基づく前記端末装置からの前記設定データファイルの配信要求に応じて、前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに対応する前記設定データファイルを前記端末装置へ送信する通信部とを備える。
【0008】
本開示の一側面に係る設定データファイル配信システムは、前記設定データファイル配信装置と、端末装置とを備え、前記端末装置は、該端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに基づいて、索引データファイルを要求し、前記マイグレーションID及び前記アカウントIDに対応する前記索引データファイルを受信した場合、キャッシュコントロール情報に従って、前記索引データファイルをキャッシュせず、前記索引データファイルに基づいて、前記設定データファイルを要求し、要求に応じて前記設定データファイル配信装置から送信された前記設定データファイルを受信した場合、キャッシュコントロール情報に従って、前記設定データファイルをキャッシュする。
【0009】
本開示の一側面に係る設定データファイル配信方法は、端末装置で実行されるプログラムを用いてサービスを提供する情報処理サーバを用いた設定データファイル配信方法であって、前記サービスの利用アカウント毎に、該サービスの設定内容を示す設定データをアカウント管理データベースに記憶し、該アカウント管理データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントを識別するアカウントIDと、該マイグレーションIDが発行されたときの前記アカウント管理データベースが記憶する設定データに基づいて作成される設定データファイルとを対応付けて設定データファイルストレージに記憶し、前記プログラムに含まれるマイグレーションIDに基づく前記端末装置からの前記設定データファイルの配信要求に応じて、前記端末装置が実行する前記プログラムに含まれるマイグレーションIDと、前記アカウントIDとに対応する前記設定データファイルを前記端末装置へ送信する。
【0010】
本開示の一側面に係るコンピュータプログラムは、端末装置で実行されるプログラムを用いてサービスを提供する処理をコンピュータに実行させるためのコンピュータプログラムであって、前記サービスの利用アカウント毎に、該サービスの設定内容を示す設定データをアカウント管理データベースに記憶し、該アカウント管理データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントを識別するアカウントIDと、該マイグレーションIDが発行されたときの前記アカウント管理データベースが記憶する設定データに基づいて作成される設定データファイルとを対応付けて設定データファイルストレージに記憶し、前記プログラムに含まれるマイグレーションIDに基づく前記端末装置からの前記設定データファイルの配信要求に応じて、前記端末装置が実行する前記プログラムに含まれるマイグレーションIDと、前記アカウントIDとに対応する前記設定データファイルを前記端末装置へ送信する処理を前記コンピュータに実行させる。
【発明の効果】
【0011】
本開示によれば、サービスのアップデートなどが行われた場合であっても、端末装置で実行されるプログラムにおいて定義されている設定データの形式と、サーバが配信する当該プログラム用の設定データの形式とを常に一致させ、当該プログラムを正常に動作させることができる設定データファイル配信装置、設定データファイル配信システム、設定データファイル配信方法及びコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に係る画面共有システムの構成例を示す模式図である。
【
図2】実施形態に係る画面共有システムの構成例を示すブロック図である。
【
図3】実施形態に係る画面共有システムの機能ブロック図である。
【
図4】マイグレーション管理テーブルの構成例を示す概念図である。
【
図5】アカウント別機能タイプ管理テーブル及び機能タイプ管理テーブルの構成例を示す概念図である。
【
図6】アカウント別環境タイプ管理テーブル及び環境タイプ管理テーブルの構成例を示す概念図である。
【
図7】設定データ管理テーブルの構成例を示す概念図である。
【
図8】設定データファイルストレージのディレクトリ構成を示す概念図である。
【
図9】索引データファイルの第1の構成例を示す概念図である。
【
図10】索引データファイルの第2の構成例を示す概念図である
【
図11】設定データファイルの配信に係る処理手順を示すフローチャートである。
【
図12】データベースの構成変更及び設定データファイルの作成に係る処理手順を示すフローチャートである。
【
図13】データベースの構成変更後のマイグレーション管理テーブルを示す概念図である。
【
図14】データベースの構成変更前後の索引データファイルを示す概念図である。
【
図15】データベースの構成変更後の設定データファイルストレージを示す概念図である。
【
図16】データベースの構成変更後の設定データ管理テーブルを示す概念図である。
【
図17】設定データの内容変更後の設定データファイルストレージを示す概念図である。
【
図18】設定データの内容変更後の設定データ管理テーブルを示す概念図である。
【
図19】設定データの内容変更前後の索引データファイルを示す概念図である。
【発明を実施するための形態】
【0013】
本開示の実施形態に係る設定データファイル配信装置としての情報処理サーバ、設定データファイル配信システムとしての画面共有システム、設定データファイル配信方法及びコンピュータプログラムを、以下に図面を参照しつつ説明する。なお、本開示は、これらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【0014】
<技術的課題>
本実施形態に係る情報処理サーバ(設定データファイル配信装置)は、次の課題を解決するものである。
(1)端末装置で実行されるJavaScript(登録商標)ファイルなどのプログラムが、情報処理サーバから送信された設定データを元に処理を実行して動作するサービスにおいて、サービスのアップデートなどにより、設定データの送信元である情報処理サーバとJavaScript(登録商標)などのプログラムそれぞれが定義している設定データの形式が不一致となる場合があり、サービスが正しく動作しない可能性がある。
設定データについては、画面共有システムにおける共有不可項目情報など、機能の実現に必要な多種多様な情報が含まれることが想定される。そのような設定データを効率よく配信するため、情報処理サーバはデータベースの構成など、事前に定義された形式に従い、それぞれの情報を適切に割り当てたデータとして作成し、送信する。また、JavaScript(登録商標)ファイルにおいても、設定データを正しく利用するため、情報処理サーバから送信される設定データの形式を事前に定義しておき、定義した内容を元に設定データから情報を読み取り、処理を実行することが一般的である。
しかしながら、上記のような場合、情報処理サーバと、JavaScript(登録商標)ファイル、それぞれで設定データの形式を定義しているため、例えば、サービスのアップデートなどにより、データベースの構成が変更された場合、JavaScript(登録商標)ファイルが定義している設定データの形式を同時に変更しない限り、情報処理サーバから送信される設定データの形式とJavaScript(登録商標)ファイルが定義している形式とが異なる期間が発生し、正しく情報を読み取ることができず、機能を実現できない。つまりは、サービスが正しく動作しない可能性がある。
本課題を解決するための通例の対策として、データベースの構成の変更などにより、情報処理サーバが定義する設定データの形式の更新があった場合、同時にJavaScript(登録商標)ファイルの更新も行い、新しい設定データの形式に従って情報を読み取れるように対処することがあげられるが、データベースの構成の変更及びJavaScript(登録商標)ファイルの更新は非同期的に行う必要があり、それぞれにかかる時間には差異があるため、完全な同時に更新を行うことは技術上難しい。更に、JavaScript(登録商標)ファイルの配信方法としては、負荷軽減や配信速度の改善を目的にCDN(Contents Delivery Network)を経由して配信することが一般的であり、CDNの各エッジロケーション上に当該JavaScript(登録商標)ファイルが一定期間キャッシュされることで実現される。しかしながら、その場合、仮に情報処理サーバとJavaScript(登録商標)ファイルを完全な同時に更新した場合においても、仕組み上、CDNの各エッジロケーションにキャッシュされたJavaScript(登録商標)ファイルを削除し、更新後のJavaScript(登録商標)ファイルを配信するようになるために多少の時間(CDNのケースによるが、数分程度かかる可能性がある)を要するため、キャッシュされたJavaScript(登録商標)ファイルが完全に削除されるまでの期間は、双方の定義する設定データの形式が不一致となる可能性があり、課題を解決できない。
(2)ウェブサイトへのアクセス数が多い場合、設定データを配信する情報処理サーバへのアクセスも同様に増加するため、情報処理サーバの負荷が重くなる。
前述の課題でも言及した通り、設定データは機能の実現に必要な多種多様な情報が含まれることが想定されるため、一定の配信量が発生する。また、情報処理サーバはデータベースに保存されているデータから設定データを作成するため、処理を行うための負荷も発生する。そのため、ウェブサイトへのアクセス数が多いほど、設定データを配信するサーバへのアクセスも増加するため、サーバの負荷が重くなる。
【0015】
<画面共有システム>
図1は、実施形態に係る画面共有システムの構成例を示す模式図である。本実施形態に係る画面共有システムは、上記した技術的課題に対応するものである。本実施形態に係る画面共有システムは、画面共有サービス(サービス)を提供する情報処理サーバ1と、エージェント端末(端末装置)2と、ゲスト端末(端末装置)3と、ウェブサーバ4とを備える。各種端末及びサーバは、通信網Nを介して情報処理サーバ1に接続されている。
本実施形態では、上記サービスを利用する個人、組織、その他のエンティティをアカウントと呼ぶ。また、アカウントを構成する個人をユーザと呼ぶ。
【0016】
エージェント端末2を操作するユーザ(以下、エージェントと呼ぶ)は、例えばゲスト端末3を操作するユーザ(以下、ゲストと呼ぶ)のウェブサイトの操作方法を案内する者である。なお、エージェント及びゲストは、本実施形態に係る情報処理サーバ1のユーザの一例であり、両者の関係は特に限定されるものでは無い。
【0017】
図2は、実施形態に係る画面共有システムの構成例を示すブロック図である。情報処理サーバ1は、処理部11、記憶部12、通信部13を備えたコンピュータである。なお、情報処理サーバ1は、複数台のコンピュータで構成し分散処理する構成でもよいし、1台のサーバ内に設けられた複数の仮想マシンによって実現されていてもよいし、クラウドサーバを用いて実現されていてもよいし、一部を量子コンピュータで構成してもよい。
【0018】
処理部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)などの演算処理装置を有し、記憶部12に記憶されたコンピュータプログラムP1を読み出して実行することにより、本実施形態に係る設定データの配信処理及び画面共有処理を実行する。
【0019】
記憶部12は、ハードディスク、EEPROM(Electrically Erasable Programmable
Read-Only Memory)、フラッシュメモリなどの記憶装置である。記憶部12は、処理部11が、ゲスト端末3と、エージェント端末2との間で、それぞれのウェブブラウザに表示されるウェブサイトの内容及び操作内容を共有するために必要なコンピュータプログラムP1と、エージェントプログラムP2及びゲストプログラムP3を記憶している。エージェントプログラムP2及びゲストプログラムP3は、例えばJavaScript(登録商標)で記述されたプログラムであり、情報処理サーバ1は、エージェントプログラムP2をエージェント端末2へ送信し、ゲストプログラムP3をゲスト端末3へ送信する。エージェント端末2で動作するウェブブラウザ(以下、エージェントブラウザB2と呼ぶ)は、エージェントプログラムP2を実行することにより、画面共有に必要な処理を実行する。ゲスト端末3で動作するウェブブラウザ(以下、ゲストブラウザB3と呼ぶ)は、ゲストプログラムP3を実行することにより、画面共有に必要な処理を実行する。また、記憶部12は、画面共有システムの設定内容に係るデータを記憶する。詳細は後述する。
【0020】
なお、各種プログラムは、記録媒体5にコンピュータ読み取り可能に記録されている態様でも良い。記憶部12は、図示しない読出装置によって記録媒体5から読み出されたコンピュータプログラムP1、エージェントプログラムP2及びゲストプログラムP3を記憶する。記録媒体5はフラッシュメモリなどの半導体メモリ、光ディスク、磁気ディスク、磁気光ディスクなどである。また、通信網Nに接続されている図示しない外部サーバから本実施形態に係る各種プログラムをダウンロードし、記憶部12に記憶させる態様であってもよい。
【0021】
通信部13は、通信に関する処理を行うための処理回路、通信回路などを含み、エージェント端末2、ゲスト端末3及びウェブサーバ4との間で情報の送受信を行う。特に、本実施形態において、通信部13は、エージェント端末2又はゲスト端末3からプログラム又は各種データのリクエストを受信し、リクエストに応じてプログラムファイルストレージ12d又は設定データファイルストレージ12fが記憶する各種データをレスポンスする機能を有する。
【0022】
エージェント端末2は、処理部21、記憶部22、通信部23、操作部24及び表示部25を備えたコンピュータである。処理部21、記憶部22及び通信部23の基本的な構成は、情報処理サーバ1と同様である。記憶部22は、少なくともエージェントブラウザB2に係るプログラムを記憶している。エージェントブラウザB2は、ウェブサイトを構成する要素を参照及び制御するプログラムであるDOM(Document Object Model)を実装しており、情報処理サーバ1から送信されたエージェントプログラムP2を実行することができる。操作部24は、キーボード、マウスなどであり、エージェントの操作及び入力を受け付ける。表示部25は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイなどの表示装置であり、処理部21から与えられた情報を描画する。
【0023】
ゲスト端末3は、処理部31、記憶部32、通信部33、操作部34及び表示部35を備えたコンピュータである。処理部31、記憶部32及び通信部33の基本的な構成は、情報処理サーバ1と同様である。記憶部32は、少なくともゲストブラウザB3に係るプログラムを記憶している。ゲストブラウザB3は、ウェブサイトを構成する要素を参照及び制御するプログラムであるDOMを実装しており、情報処理サーバ1から送信されたゲストプログラムP3を実行することができる。操作部34は、キーボード、マウスなどであり、ゲストの操作及び入力を受け付ける。表示部35は、液晶ディスプレイ、有機ELディスプレイなどの表示装置であり、処理部31から与えられた情報を描画する。
【0024】
ウェブサーバ4は、少なくともゲストブラウザB3からのリクエストに応じて、ウェブサイトの文書ファイルと、ウェブサイトを構成するアセットファイルをゲストブラウザB3へ送信するサーバである。また、ウェブサーバ4は、少なくとも情報処理サーバ1からのリクエストに応じて、ウェブサイトを構成するアセットファイルを情報処理サーバ1へ送信するサーバである。本実施形態においては、ゲストブラウザB3は、ウェブサーバ4にアクセスして、ウェブサイトを表示する。
【0025】
図3は、実施形態に係る画面共有システムの機能ブロック図である。エージェント端末2は、機能部としてエージェントブラウザB2を有し、情報処理サーバ1から送信されるエージェントプログラムP2を実行することができる。なお、エージェントプログラムP2は、エージェントブラウザB2が情報処理サーバ1にアクセスして管理画面を読み込む際、情報処理サーバ1からエージェント端末2へ送信される。管理画面は、ウェブサイトの画面共有処理を実行するための画面である。
【0026】
ゲスト端末3は、機能部としてゲストブラウザB3を有し、情報処理サーバ1から送信されるゲストプログラムP3を実行することができる。なお、ゲストプログラムP3は、画面共有対象であるウェブサイトを読み込む際、情報処理サーバ1からゲスト端末3へ送信される。
【0027】
情報処理サーバ1は、機能ブロックとして、API処理部11a、ソケット処理部11b、ファイル処理部11c、設定データ取得部11d、設定データファイル作成部11e、設定データファイル保管部11f、アカウント管理データベース更新部11g、及びゲストプログラム更新部11hを備える。また、情報処理サーバ1は、アカウント管理データベース12a、画面共有管理データベース12b、画面共有データ中継ストア12c、プログラムファイルストレージ12d、アセットファイルストレージ12e及び設定データファイルストレージ12fを備える。なお、設定データ取得部11d、設定データファイル作成部11e、設定データファイル保管部11f、アカウント管理データベース更新部11g、及びゲストプログラム更新部11hの各機能ブロックに係る処理は、APIのようなリクエストを元に処理する態様でもよいし、バッチのような一定間隔で処理する態様でもよい。
【0028】
API処理部11aは、画面共有システムの各種設定データをアカウント管理データベース12aから取得し、配信する処理等を実行する機能部である。
【0029】
ソケット処理部11bは、ウェブソケットによりエージェントブラウザB2及びゲストブラウザB3との通信を確立し、双方向通信を可能にする機能部である。ソケット処理部11bは、画面共有処理のセッションを識別するためのセッションIDの発行、エージェントブラウザB2及びゲストブラウザB3との間で画面共有中の各種データの送受信などの処理を実行する。なお、ウェブソケットは通信接続方法の一例であり、ソケット処理部11bは、ロングポーリングによって、エージェントブラウザB2及びゲストブラウザB3との間で擬似的に双方向通信を実現するように構成してもよい。
【0030】
ファイル処理部11cは、画面共有対象であるウェブサイトを構成するアセットファイルを、ウェブサーバ4にリクエストして取得し、一時的に保存する処理を実行する機能部である。アセットファイルは、例えばCSS(Cascading Style Sheets)ファイル、画像ファイル、フォントファイルなどである。
【0031】
設定データ取得部11dは、アカウント管理データベース12aに保存されている設定データ、設定データファイル15a及び索引データファイル15bの作成に必要な情報を取得する機能部である。
【0032】
設定データファイル作成部11eは、取得した設定データ、設定データファイル15a及び索引データファイル15bの作成に必要な情報に基づいて設定データファイル15a、索引データファイル15bを作成する機能部である。本実施形態に係る情報処理サーバ1は、ゲスト端末3からのリクエストがある都度、設定データを作成して配信するのではなく、必要な設定データを含む設定データファイル15aを、JSON(JavaScript(登録商標) Object Notation)形式の構造化データとして事前に作成する。
【0033】
設定データファイル保管部11fは、作成した設定データファイル15a及び索引データファイル15bを設定データファイルストレージ12fに保存する機能部である。
【0034】
アカウント管理データベース更新部11gは、アカウント管理データベース12aの構成又はデータの変更を実行する機能部である。
【0035】
ゲストプログラム更新部11hは、ゲストプログラムP3の内容を更新し、プログラムファイルストレージ12dに保存する機能部である。
【0036】
アカウント管理データベース12aは、画面共有処理に関するデータベースのマイグレーションに係る情報、画面共有システムの各種設定データ、当該設定データに基づいて作成される設定データファイル15aに係る情報などを管理するデータベースである。設定データは、例えば、ウェブページ上の共有不可項目の情報、ウェブページ上に表示される各種ボタンのレイアウトの情報等を含むデータである。なお、設定データは、アカウントによって選択又は設定された画面共有システムの設定内容に係るデータであって、アカウントに属するユーザの端末などの通信装置から情報処理サーバ1へアップロードされたデータである。もちろん、設定データにはデフォルトで設定されているデータが含まれていてもよい。マイグレーションに係る情報及び設定データファイル15aに係る情報は、具体的には、マイグレーション管理テーブル14a、アカウント別機能タイプ管理テーブル14b、機能タイプ管理テーブル14c、アカウント別環境タイプ管理テーブル14d、環境タイプ管理テーブル14e、設定データ管理テーブル14fなどによって管理される。各テーブルの詳細は後述する。
【0037】
画面共有管理データベース12bは、画面共有処理のセッションを識別するためのセッションIDなどを保存するデータベースである。
画面共有データ中継ストア12cは、エージェントブラウザB2及びゲストブラウザB3との間で送受信される画面共有中の各種データを中継する中継サーバである。
プログラムファイルストレージ12dは、エージェントブラウザB2に表示される管理画面を構成するHTMLファイル、CSSファイル、画像ファイル、エージェントプログラムP2、ゲストプログラムP3などを保存するストレージである。
アセットファイルストレージ12eは、画面共有対象であるウェブサイトを構成するアセットファイルのファイル処理に使用するセッション情報、取得したアセットファイルなどを一時的に保存するストレージである。
【0038】
設定データファイルストレージ12fは、マイグレーションID及びアカウントID毎に設定データファイル15a、索引データファイル15bを保存するストレージである。各ファイルの詳細は後述する。
【0039】
<設定データファイル15aなどの事前作成>
本実施形態に係る情報処理サーバ1は、ゲスト端末3からのリクエストがある都度、アカウント管理データベース12aから設定データを取得し、送信する態様ではなく、設定データを含むファイルを、設定データファイル15aとして事前に作成する。情報処理サーバ1は、作成した設定データファイル15aを設定データファイルストレージ12fに保存し、ゲスト端末3からリクエストがあった場合、設定データファイルストレージ12fに保存してある設定データファイル15aをゲスト端末3に送信する態様である。当該設定データファイル15aの事前作成に係るデータベースやファイルの内容、すなわちアカウント管理データベース12aが記憶する各種テーブル、設定データファイル15a及び索引データファイル15bについて説明する。
【0040】
図4は、マイグレーション管理テーブル14aの構成例を示す概念図である。マイグレーション管理テーブル14aは、アカウント管理データベース12a内のテーブルの追加、変更、削除、テーブル内のカラムの追加、変更、削除などの構成の変更情報を管理するためのテーブルである。以下、当該変更をマイグレーションと呼ぶ。アカウント管理データベース更新部11gは、マイグレーションがあった場合、その都度、各マイグレーションを識別するために割り当てられたユニークなID(以下、マイグレーションIDと呼ぶ)を発行する。マイグレーション管理テーブル14aは、アカウント管理データベース更新部11gが発行したマイグレーションIDと、どのマイグレーションIDが最新のものであるかを示す新旧識別子とを対応付け、レコードとして格納する。新旧識別子は真又は偽(1又は0)を示す真偽値のデータである。「1」は最新のマイグレーションIDであることを示し、「0」は以前に発行した古いマイグレーションIDであることを示す。アカウント管理データベース更新部11gは、マイグレーションIDを新たに発行した場合、当該マイグレーションIDの新旧識別子に「1」を対応付け、レコードとして、マイグレーション管理テーブル14aに格納する。また、アカウント管理データベース更新部11gは、新しいマイグレーションIDが発行された場合、登録済みの古いマイグレーションIDの新旧識別子を「0」に変更する。
図4に示す例では、マイグレーションのレコードは履歴形式で管理されており、最新のマイグレーションIDは「3」である。
【0041】
図5は、アカウント別機能タイプ管理テーブル14b及び機能タイプ管理テーブル14cの構成例を示す概念図である。アカウント別機能タイプ管理テーブル14bは、サービスを利用するアカウントを識別するために割り当てられたユニークなID(以下、アカウントIDと呼ぶ)と、当該アカウントIDのアカウントが必要とする機能を識別するために割り当てられたユニークなID(以下、機能IDと呼ぶ)とを対応付け、レコードとして格納している。機能タイプ管理テーブル14cは、機能IDと、機能名とを対応付け、レコードとして格納している。任意のアカウントIDをキーにしてアカウント別機能タイプ管理テーブル14bを参照することで、当該アカウントIDに対して必要な機能IDを取得することができる。機能IDを導入することによって、アカウント毎に異なる複数の機能ID毎に設定データファイル15aを作成して管理することが可能になる。つまり、情報処理サーバ1は、複数の機能それぞれの実現に必要な最小限の設定データのみを配信することが可能となる。言い換えると、アカウント毎に異なる最小限の設定データファイル15aのみを作成して配信することが可能になる。
【0042】
図5に示す例では、機能ID「1」は機能「A」を示し、機能ID「2」は機能「B」を示し、機能ID「3」は機能「C」を示している。
図5に示すアカウント別機能タイプ管理テーブル14bによれば、アカウントID「1」は、機能「A」、「B」、「C」を実現するための設定データファイル15aをそれぞれ必要とし、アカウントID「2」は、機能「A」を実現するための設定データファイル15aのみを必要とすることが分かる。
【0043】
図6は、アカウント別環境タイプ管理テーブル14d及び環境タイプ管理テーブル14eの構成例を示す概念図である。アカウント別環境タイプ管理テーブル14dは、アカウントIDと、当該アカウントIDのアカウントが必要とする配信先の環境を識別するために割り当てられたユニークなID(以下、環境IDと呼ぶ)とを対応付け、レコードとして格納している。環境を定義することによって、例えば、アカウントに属するエージェントなどのユーザが、内容を更新した設定データを外部(本番)に公開する前に、事前に内部で検証したい場合など、設定データファイル15aを配信する先の環境を変えたいケースに対応することができる。なお、上記した環境は一例である。
【0044】
環境タイプ管理テーブル14eは、環境IDと、環境名とを対応付け、レコードとして格納している。任意のアカウントIDをキーにしてアカウント別環境タイプ管理テーブル14dを参照することで、当該アカウントIDに対して必要な環境IDを取得することができる。環境IDを導入することによって、アカウント毎に異なる複数の環境ID毎に設定データファイル15aを作成して管理することが可能になる。つまり、情報処理サーバ1は、アカウント毎に異なる環境に応じた最小限の設定データファイル15aのみを作成して配信することが可能になる。
【0045】
図6に示す例では、環境ID「1」は環境「本番用」を示し、環境ID「2」は環境「検証用」を示している。
図6に示すアカウント別環境タイプ管理テーブル14dによれば、アカウントID「1」は、環境「本番用」の設定データファイル15a及び「検証用」の設定データファイル15aをそれぞれ必要とし、アカウントID「2」は、環境「検証用」の設定データファイル15aのみを必要とすることが分かる。
【0046】
図7は、設定データ管理テーブル14fの構成例を示す概念図である。設定データ管理テーブル14fは、設定データファイル15aを識別するためのユニークなID(以下、設定IDと呼ぶ)と、マイグレーションIDと、アカウントIDと、機能IDと、環境IDと、どの設定データファイル15aが最新のものであるかを示す新旧識別子とを対応付けて集約したレコードとして格納している。新旧識別子は、同一の条件(アカウントID、機能ID、環境ID)で作成された設定データファイル15aが複数存在する場合、いずれの設定データファイル15aが最新のものであるかを表す識別子である。新旧識別子は真又は偽(1又は0)を示す真偽値のデータである。「1」は最新の設定データであることを示し、「0」は古い設定データであることを示す。同一条件で新たな設定データファイル15aが作成された場合、当該設定データファイル15aには、新旧識別子「1」が対応付けられる。同一条件で過去に作成された設定データファイル15aには、新旧識別子「0」が対応付けられる。
【0047】
図8は、設定データファイルストレージ12fのディレクトリ構成を示す概念図である。
図8Aはディレクトリ構成の定義を一般的に示したものである。設定データファイル15aのディレクトリパスは、「/[マイグレーションID]/[アカウントID]/setting.[設定ID].json」のように定義される。索引データファイル15bのディレクトリパスは、「/[マイグレーションID]/[アカウントID]/index.json」のように定義される。
【0048】
ディレクトリ構成の詳細は次の通りである。
図8Aに示すように、設定データファイルストレージ12fのディレクトリは階層構造を有しており、その所定の階層には、一又は複数のマイグレーションIDそれぞれに対応するサブディレクトリが設けられる。当該サブディレクトリの名前は、対応するマイグレーションIDである。
各マイグレーションIDに対応するサブディレクトリには、一又は複数のアカウントIDそれぞれに対応するサブディレクトリが設けられる。当該サブディレクトリの名前は、対応するアカウントIDである。
各アカウントIDに対応するサブディレクトリには、機能及び環境に応じて作成された一又は複数の設定データファイル15aと、索引データファイル15bとが格納されている。索引データファイル15bは、当該マイグレーションIDが示すマイグレーションが実行されたアカウント管理データベース12aの構成において、当該アカウントIDが示すアカウントの最新の設定IDを特定するための構造化されたデータであり、例えば、JSON形式で作成される。索引データファイル15bは、マイグレーションID及びアカウントIDの組み合わせごとにユニークに作成されるため、索引データファイル15bの名称は、「index.json」のように設定IDを含まない形で定義する。一方、設定データファイル15aは、マイグレーションID及びアカウントIDが同一の組み合わせにおいても、設定IDごとに複数作成される可能性があるため、設定データファイル15aの名称は、「setting.[設定ID].json」と定義され、[設定ID]には、設定データファイル15aに対応する設定IDの値が記述される。設定IDが「1」の場合、設定データファイル15aの名称は、「setting.1.json」となる。
【0049】
図8Bはディレクトリ構成の具体例を示したものである。
図8Bに示すように、マイグレーションIDが「3」、アカウントIDが「1」、設定IDが「13」の場合であれば、設定データファイル15aのディレクトリパスは、「/3/1/setting.13.json」となる。マイグレーションID及びアカウントIDが当該設定データファイル15aと同様の場合、索引データファイル15bのディレクトリパスは「/3/1/index.json」となる。
【0050】
図9は、索引データファイル15bの第1の構成例を示す概念図、
図10は、索引データファイル15bの第2の構成例を示す概念図である。
図9A及び
図10Aは、索引データファイルの定義を一般的に示したものである。
図9に示す構成例は、機能IDを主キー、環境IDをサブキーとして、設定IDが対応付けられているのに対して、
図10に示す構成例は、環境IDを主キー、機能IDをサブキーとして、設定IDが対応付けられている。それぞれの構成例が示すデータの実質的な内容は同じである。索引データファイル15bは、該当するマイグレーションIDが示すマイグレーションが行われたアカウント管理データベース12aの構成において、該当するアカウントIDが示すアカウントに配信する最新の設定データファイル15aに対応する設定IDを特定するためのファイルである。索引データファイル15bは、機能ID及び環境IDの組み合わせ毎に、設定データファイル15aの設定IDを関連付けて記述したものであり、
図9A及び
図10Aに示すようにJSON形式などの構造化されたデータとして作成される。対象の機能ID及び環境IDが複数ある場合、その組み合わせ毎に設定IDを関連付けて記述する。
【0051】
図9Bは、第1の構成例に係る索引データファイル15bの具体例1を示す概念図、
図10Bは、第2の構成例に係る索引データファイル15bの具体例1を示す概念図である。
図9B及び
図10Bのいずれの具体例も、機能ID「1」かつ環境ID「1」向けの最新の設定データファイル15aの設定IDは「13」、機能ID「3」かつ環境ID「2」向けの最新の設定データファイル15aの設定IDは「21」であることを示している。
【0052】
なお、各機能タイプ又は各環境タイプの名称がユニークであれば、機能ID、環境IDを使用する代わりに、それぞれ機能タイプの名称、環境タイプの名称を索引データファイル15bに記述するキーとして使用してもよいし、IDや名称以外の属性でユニークなものがあれば、それを代わりに使用してもよい。
【0053】
また、
図9B及び
図10Bの例は、アカウントID「1」の場合のように、機能ID及び環境IDの組み合わせ全てに設定IDが対応付けられている例であるが、アカウントID「2」の場合のように、特定の機能ID又は特定の環境IDのみを対象とする場合、対象外の機能ID及び環境IDには、設定IDの値が存在しないことを示す文字列又は値を設定する。例えば、「null」などの値が設定される。
【0054】
図9Cは、第1の構成例に係る索引データファイル15bの具体例2を示す概念図、
図10Cは、第2の構成例に係る索引データファイル15bの具体例2を示す概念図である。
図9C及び
図10Cに示す例では、機能ID「1」かつ環境ID「1」向けの最新の設定データファイル15aの設定IDは「1」であり、それ以外の機能IDと環境IDの組み合わせに対応する設定データファイル15aが存在しないことを示している。
【0055】
<設定データファイル15aの配信>
前述した通り、本実施形態に係る情報処理サーバ1は、事前に作成された設定データファイル15aを配信することによって、設定データの配信を実現している。
【0056】
図11は、設定データファイル15aの配信に係る処理手順を示すフローチャートである。ゲスト端末3の処理部31は、ウェブサーバ4にアクセスし、src属性としてゲストプログラムP3の所在情報が記述されているスクリプトタグが設置されたHTMLファイルを取得する(ステップS11)。当該スクリプトタグのsrc属性として記述されている所在情報にはアカウントIDが含まれている。ゲストプログラムP3の所在情報は、例えば、″https://withdeskguest.com/app.1.js″のようなURLとして定義される。この例では、「1」の部分がアカウントIDである。
【0057】
ゲスト端末3の処理部31は、スクリプトタグのsrc属性に記述されている所在情報に基づいて、ゲストプログラムP3を情報処理サーバ1にリクエストする(ステップS12)。
【0058】
情報処理サーバ1の処理部11は、ゲスト端末3からゲストプログラムP3のリクエストを受信する(ステップS13)。処理部11は、ゲストプログラムP3のリクエストを受信した場合、ゲストプログラムP3をゲスト端末3へ送信する(ステップS14)。ゲストプログラムP3には最新のマイグレーションIDが記述されている。
【0059】
ゲスト端末3の処理部31は、情報処理サーバ1から送信されたゲストプログラムP3を受信する(ステップS15)。処理部31は、受信したゲストプログラムP3を実行し、ゲストプログラムP3に含まれる最新のマイグレーションIDと、ゲストプログラムP3の所在情報から取得したアカウントIDとに基づいて、索引データファイル15bの所在情報を作成する(ステップS16)。処理部31によって作成される索引データファイル15bの所在情報は、例えば、「https://withdeskguest.com/[マイグレーションID]/[アカウントID]/index.json」のようなURLとして定義される。ドメイン以下のパス構成は、前述した設定データファイルストレージ12fのディレクトリ構成の通りである。
【0060】
そしてゲスト端末3の処理部31は、作成した索引データファイル15bの所在情報に基づいて、索引データファイル15bを情報処理サーバ1にリクエストする(ステップS17)。
【0061】
情報処理サーバ1の処理部11は、ゲスト端末3から索引データファイル15bのリクエストを受信する(ステップS18)。処理部11は、索引データファイル15bのリクエストを受信した場合、所在情報に対応する索引データファイル15bを設定データファイルストレージ12fから取得し、取得した索引データファイル15bと、当該索引データファイル15bをゲストブラウザB3にキャッシュしないことを指示するキャッシュコントロール情報とをゲスト端末3へ送信する(ステップS19)。HTTPプロトコル又はHTTPSプロトコルで索引データファイル15bを送信する場合、処理部11は、キャッシュコントロール情報(例えば、「no-cache」)をレスポンスヘッダに含めて送信する。
【0062】
索引データファイル15bのブラウザによるキャッシュを行わない設定とする理由は、常に最新の設定データファイル15aに対応する設定IDを索引データファイル15bから取得できるようにするためである。具体的には、索引データファイル15bに記述されている設定IDは、後述する設定データの内容変更などにより設定データファイル15aが新規に作成された場合、対応する設定IDに変更される。しかしながら、キャッシュコントロール情報が、索引データファイル15bのブラウザによるキャッシュを行う設定としていた場合、索引データファイル15bを一度キャッシュしたゲストブラウザB3が、索引データファイル15bを次回以降取得する場合、当該キャッシュが削除されない限り、情報処理サーバ1にリクエストせず、キャッシュされている索引データファイル15bを代わりに取得してしまう。そのため、設定データファイルストレージ12fに保存されている索引データファイル15bに記述されている設定IDが変更されていても、変更後の設定IDを取得できず、最新の設定データファイル15aを取得することができない。一方、キャッシュコントロール情報が、索引データファイル15bのブラウザによるキャッシュを行わない設定としていた場合、ゲストブラウザB3は、情報処理サーバ1に索引データファイル15bを都度リクエストするため、常に最新の設定データファイル15aに対応する設定IDを索引データファイル15bから取得できる。また、索引データファイル15bについては、所在情報に設定IDを含まないため、設定データの内容が変更され、最新の設定データファイル15aに対応する設定IDが変更となった場合でも、データベースの構成が変更とならない限り、所在情報は変わることがない。すなわち、データベースの構成が変更される場合を除き、ゲストプログラムを変更することなく、常に最新の設定データファイル15aに対応する設定IDを索引データファイル15bから取得できる。
【0063】
ゲスト端末3の処理部31は、情報処理サーバ1から送信された索引データファイル15bを受信する(ステップS20)。処理部31は、受信したキャッシュコントロール情報に従って、索引データファイル15bをキャッシュしない。
【0064】
次いで、ゲスト端末3の処理部31は、配信を要する設定データファイル15aの環境IDを選択する(ステップS21)。具体的には、Cookieなどを用いて、ゲストプログラムP3が実行されている環境がどの環境IDに属するかを判断することができる。例えば″testing=true″というようなCookieがゲストブラウザB3に保持されている場合、検証用(公開前)の設定データが必要と判断し、環境IDは「検証用」環境に該当する「2」を選択し、該当のCookieがない場合は、本番用の設定データが必要と判断し、環境IDは「本番用」環境に該当する「1」を選択する。なお、ゲストプログラムP3は、Cookieを用いる代わりに、ゲストプログラムP3の所在情報に付与されたクエリパラメータ(例えば、「https://withdeskguest.com/app.1.js?testing=true」)、又はハッシュ値(例えば、「https://withdeskguest.com/app.1.js#testing」)などを用いて環境IDを判断してもよい。
【0065】
次いで、ゲスト端末3の処理部31は、ステップS21で選択した環境IDをキーにして、索引データファイル15bを参照し、対応する設定IDを取得し、設定データファイル15aの所在情報を作成する(ステップS22)。
【0066】
設定データファイル15aの所在情報は、例えば、「https://withdeskguest.com/3/1/setting.13.json」のようなURLとして定義される。ドメイン以下のパス構成は、前述した設定データファイルストレージ12fのディレクトリ構成の通りである。
【0067】
ゲスト端末3の処理部31は、ステップS22で作成した設定データファイル15aの所在情報に基づいて、設定データファイル15aを情報処理サーバ1にリクエストする(ステップS23)。
【0068】
情報処理サーバ1の処理部11は、ゲスト端末3から設定データファイル15aのリクエストを受信する(ステップS24)。処理部11は、設定データファイル15aのリクエストを受信した場合、設定データファイル15aを設定データファイルストレージ12fから取得し、取得した設定データファイル15aと、当該設定データファイル15aをゲストブラウザB3にキャッシュすることを指示するキャッシュコントロール情報とをゲスト端末3へ送信する(ステップS25)。HTTPプロトコル又はHTTPSプロトコルで設定データファイル15aを送信する場合、処理部11は、キャッシュコントロール情報をレスポンスヘッダに含めて送信する。
【0069】
キャッシュコントロール情報は、例えば、「max-age=31536000,public」などとする。設定データファイル15aのブラウザによるキャッシュを有りにする理由は、設定データファイル15aの内容を変更しない限り、ブラウザによるキャッシュを有効としたいためである。これにより、一度、設定データファイル15aをキャッシュとして保存したゲストブラウザB3では、当該キャッシュが削除されない限り、情報処理サーバ1に対し、設定データファイル15aを取得するためのアクセスは行われなくなる。つまり、ウェブサイトへのアクセス数が多くても、設定データファイル15aの配信量を軽減することができるため、情報処理サーバ1の負荷を軽くすることができる。設定データファイル15aは、処理に係る様々な設定を保持するためのデータであるため、その処理の内容にも依るが、索引データファイル15bと比べ、ファイルサイズが大きいことが想定されるため、キャッシュによる負荷軽減効果は大きい。
【0070】
また、設定データファイル15aを主要な機能や環境ごとに分割し、アカウントIDごとに必要最低限の設定データファイル15aを配信することにより、更に情報処理サーバ1の負荷を軽減することができる。
【0071】
ゲスト端末3の処理部31は、情報処理サーバ1から送信された設定データファイル15aを受信する(ステップS26)。処理部31は、受信したキャッシュコントロール情報に従って、設定データファイル15aをキャッシュする。
【0072】
なお、対象となる機能IDが複数ある場合、選択された環境ID及び機能IDごとに、設定データファイル15aの所在情報を作成し、対応する設定データファイル15aを繰り返しリクエストし、取得する。また、当該アカウントが利用する複数の機能のうち、特定の機能のみを利用するような状況においては、選択された環境ID及び当該機能IDをキーにして索引データファイル15bを参照し、設定データファイル15aの所在情報を作成し、対応する設定データファイル15aを取得するように構成してもよい。
【0073】
設定データファイル15aを受信した処理部31は、設定データファイル15aに基づく設定を行い、所定処理を実行する(ステップS27)。本実施形態では、処理部31は、設定データファイル15aに基づく設定を行って、ウェブサイトの画面共有に係る処理を実行する。
【0074】
<データベースの構成変更及び設定データファイル15aの作成>
設定データファイル15aを事前作成するケースとしては、主にアカウント管理データベース12aの構成を変更する場合である。ただし、アカウント管理データベース12aの構成を変更しない場合においても、設定した共有不可項目情報に含まれる所在情報の追加、変更、削除、又は共有不可項目情報に含まれる要素情報の追加、変更、削除など、特定のアカウントIDに係る設定データの内容を変更する場合は、設定データファイル15aを事前作成する。
アカウント管理データベース12aの構成を変更する場合における、設定データファイル15aの事前作成について説明する。
図12は、データベースの構成変更及び設定データファイル15aの作成に係る処理手順を示すフローチャート、
図13は、データベースの構成変更後のマイグレーション管理テーブル14aを示す概念図、
図14は、データベースの構成変更前後の索引データファイル15bを示す概念図、
図15は、データベースの構成変更後の設定データファイルストレージ12fを示す概念図、
図16は、データベースの構成変更後の設定データ管理テーブル14fを示す概念図である。
【0075】
サービスのアップデートなどにより、アカウント管理データベース12aの構成を変更する場合、情報処理サーバ1のアカウント管理データベース更新部11gは、アカウント管理データベース12aのマイグレーションを行う(ステップS31)。
【0076】
また、アカウント管理データベース更新部11gは、マイグレーションを行う場合、マイグレーションIDを新規に発行し(ステップS32)、マイグレーション管理テーブル14aにレコードとして格納し、更新する(ステップS33)。具体的には、
図13に示すように、アカウント管理データベース更新部11gは、登録済みのマイグレーションIDを示すレコードが既にある場合は、当該マイグレーションIDの新旧識別子を「0」に変更し、新規に発行したマイグレーションIDと、新旧識別子「1」とを対応付けてマイグレーション管理テーブル14aに格納する。
【0077】
図13に示す例では、新規に発行したマイグレーションID「4」と、新旧識別子「1」とを対応付けたレコードがマイグレーション管理テーブル14aに格納される。また、マイグレーションID「3」に対応付けられていた新旧識別子を「1」から「0」に変更する。
【0078】
情報処理サーバ1の設定データ取得部11dは、最新のマイグレーションIDをアカウント管理データベース12aから取得する(ステップS34)。マイグレーションIDを取得する目的は、マイグレーションIDごとに作成する設定データファイル15aを別々に管理するためである。
【0079】
設定データ取得部11dは、アカウントIDごとに、設定データファイル15aを作成するために必要な情報をアカウント管理データベース12aから取得する(ステップS35)。必要な情報は、該当のアカウントIDに対応する設定データの内容、必要な機能ID及び必要な環境IDである。なお、必要な機能ID及び必要な環境IDは、それぞれアカウント別機能タイプ管理テーブル14b、アカウント別環境タイプ管理テーブル14dの該当のアカウントIDに対応するレコードから取得する。
【0080】
次いで、情報処理サーバ1の設定データファイル作成部11eは、設定データ取得部11dが取得したアカウントIDと、最新のマイグレーションIDと、アカウント毎に必要な機能ID及び環境IDとに基づいて、設定データファイル15aを作成する(ステップS36)。作成単位はアカウントIDごとであるが、アカウントIDによって対象となる機能IDが複数ある場合、機能IDごとに必要な設定データファイル15aを分割して作成する。また、アカウントIDによって対象となる環境IDが複数ある場合、環境IDごとに必要な設定データファイル15aを分割して作成する。
【0081】
設定データファイル作成部11eは、設定IDを、作成した設定データファイル15aごとに発行する(ステップS37)。なお、設定データファイル15aの名称は「setting.1.json」のように定義する。この例では、「1」の部分が設定IDとなる。
【0082】
また、設定データファイル作成部11eは、マイグレーションID、アカウントIDの組み合わせごとに最新の設定データファイル15aの設定IDを指し示すための索引データファイル15bをJSON形式で併せて作成し、当該ファイルに最新の設定データファイル15aの設定IDを記述する(ステップS38)。なお、対象の機能IDや環境IDが複数ある場合、索引データファイル15b内に、機能IDと環境IDの組み合わせごとの最新の設定データファイル15aの設定IDを記述する。
【0083】
例えば、
図14A及び
図14Bに示すように、データベースの構成変更前に機能ID「1」及び環境ID「1」,「2」の組み合わせ毎に作成されていた最新の設定データファイル15aの設定ID「13」,「14」は、データベースの構成変更後に設定ID「22」,「23」に変更される。同様に、機能ID「2」及び環境ID「1」,「2」の組み合わせ毎に作成されていた最新の設定データファイル15aの設定ID「16」,「17」は、設定ID「24」,「25」に変更される。機能ID「3」及び環境ID「1」,「2」の組み合わせ毎に作成されていた最新の設定データファイル15aの設定ID「19」,「21」は、設定ID「26」,「27」に変更される。
【0084】
情報処理サーバ1の設定データファイル保管部11fは、設定データファイル作成部11eが作成した設定データファイル15a及び対応する索引データファイル15bを設定データファイルストレージ12fに保存する(ステップS39)。
【0085】
例えば、
図15に示すように、マイグレーションID「4」に対応するサブディレクトリが作成され、当該サブディレクトリに、各アカウントIDに対応するサブディレクトリが作成される。各アカウントIDに対応するサブディレクトリに、当該マイグレーションID及びアカウントIDについて、それぞれの機能ID及び環境ID毎に作成された設定データファイル15a及び索引データファイル15bが格納される。
【0086】
設定データファイル保管部11fは、保存した設定データファイル15aに係る情報を設定データ管理テーブル14fに記録する(ステップS40)。具体的には、
図16に示すように、設定データファイル保管部11fは、設定ID、マイグレーションID、アカウントID、機能ID、環境IDを集約したレコードを設定データファイル15aごとに設定データ管理テーブル14fに格納する。また、当該設定データファイル15aが最新である旨を同時に記録し、同一の条件(アカウントID、機能ID、環境ID)で作成された設定データファイル15aを示すレコードが既に存在する場合は、当該設定データファイル15aが最新でなくなった旨を記録する。
図16に示す例では、設定ID「22」~「27」までが新規レコードとして格納され、新旧識別子は「1」が対応づけられている。設定ID「21」以下のレコードの新旧識別子は「0」に更新されている。
【0087】
情報処理サーバ1のゲストプログラム更新部11hは、ゲストプログラムP3に記述されているマイグレーションIDを設定データ取得部11dが取得した最新のマイグレーションIDに更新し(ステップS41)、更新したゲストプログラムP3をプログラムファイルストレージ12dに保存する(ステップS42)。
【0088】
上記処理によれば、アカウント管理データベース12aの構成変更後の形式に対応する設定データファイル15aを、変更前の形式に対応する設定データファイル15aとは別ファイルとして作成しているため、アカウント管理データベース12aの構成変更前後でどちらの設定データファイル15aも利用することができる。これにより、最新でないマイグレーションIDが記述されているゲストプログラムP3、つまり、ステップS41~ステップS42にて、マイグレーションIDの更新が行われる前に配信されたゲストプログラムP3が、アカウント管理データベース12aの構成変更後に設定データファイル15aをリクエストした場合でも、以前の形式で作成された設定データファイル15aを取得することが可能となるため、設定データを正しく利用できる。一方、最新のマイグレーションIDが記述されているゲストプログラムP3についても、変更後の形式で作成された設定データファイル15aは事前に作成されているため、設定データを正しく利用できる。
【0089】
更新前のゲストプログラムP3はアカウント管理データベース12aの構成変更前の形式に対応する設定データファイル15aを継続利用することができ、更新後のゲストプログラムP3はアカウント管理データベース12aの構成変更後の形式に対応する設定データファイル15aを即時利用することができる。つまり、情報処理サーバ1と、ゲストプログラムP3双方が定義する設定データの形式の不一致を発生させずにサービスのアップデートをすることができる。
【0090】
<設定データの内容変更>
アカウント管理データベース12aの構成を変更しない場合であっても、特定のアカウントIDに係る設定データの内容を変更する場合は、設定データファイル15aを事前作成する。特定のアカウントIDに係る設定データの内容を変更する場合、情報処理サーバ1のアカウント管理データベース更新部11gは、アカウント管理データベース12aに保存されている設定データの内容を変更する。
【0091】
設定データの内容変更が行われたアカウントIDを対象に、情報処理サーバ1の各機能部は、ステップS34~ステップS40の処理を実行することにより、設定データファイル15aを再作成する。なお、データベースの構成変更は伴わないため、マイグレーションIDに変更はない。すなわち、ステップS31~ステップS33、ステップS41~ステップS42の処理を実行する必要はない。また、変更内容が特定の機能又は環境まで限定されていた場合、対象の機能ID又は環境IDに対応する設定データファイル15aのみを対象に再作成を行ってもよい。
【0092】
図17は、設定データの内容変更後の設定データファイルストレージ12fを示す概念図、
図18は、設定データの内容変更後の設定データ管理テーブル14fを示す概念図、
図19は、設定データの内容変更前後の索引データファイル15bを示す概念図である。例えば、最新のマイグレーションIDが「4」の状態で、アカウントIDが「1」、機能IDが「3」、環境IDが「1」の設定データファイル15aの再作成を行った場合、
図17に示すように、新たに作成された設定データファイル15aがサブディレクトリ「/4/1/」下に追加される。当該設定データファイル15aの設定IDは「28」であり、ファイル名は「setting.28.json」である。
【0093】
また、
図18に示すように設定データ管理テーブル14fに、設定ID「28」、マイグレーションID「4」、アカウントID「1」、機能ID「3」,環境ID「1」、新旧識別子「1」のレコードが追加される。設定データファイル15a再作成前に同一の条件(アカウントID、機能ID、環境ID)で作成されていた設定データファイル15aのレコード、つまり設定ID「26」のレコードの新旧識別子は「1」から「0」に更新される。
【0094】
設定データの内容変更に伴う設定データファイル15aの再作成を行った場合、マイグレーションIDには変更がないため、索引データファイル15bは既に作成されていることが想定される。その場合、索引データファイル15bは新規に作成せず、対象のマイグレーションID、アカウントIDのディレクトリ配下に作成されている索引データファイル15bを検出し、該当索引データファイル15bに記述されている対象の機能ID及び環境IDの組み合わせに対応する設定IDを、新規に発行した設定IDに更新する。
【0095】
図17及び
図18に示す例であれば、
図19A及び
図19Bに示すように、機能ID「3」及び環境ID「1」の組み合わせに対応する最新の設定データファイル15aの設定IDは、「26」から「28」に変更される。
【0096】
設定データの内容が変更された場合、設定データファイル15aは新規に作成され、設定データファイルストレージ12fに格納されるが、索引データファイル15bは既に作成されているものが更新される。すなわち、索引データファイル15bの所在情報は変更されないため、ゲストプログラムP3は、ゲストプログラムP3の更新を伴わずに最新の設定データファイル15aを示す設定IDを索引データファイル15bから取得することができる。
【0097】
<作用効果>
サービスのアップデートなどが行われた場合であっても、ゲストブラウザB3に配信されるゲストプログラムP3において定義されている設定データファイル15aの形式と、情報処理サーバ1が配信する当該ゲストプログラムP3用の設定データファイル15aの形式とを常に一致させ、当該ゲストプログラムP3を正常に動作させることができる。
【0098】
より詳細には、ゲスト端末3からのリクエストの都度、設定データ取得部11dがアカウント管理データベース12aに保存されているデータを元に設定データを作成し、配信する従来の方法では、サービスのアップデートなどによりアカウント管理データベース12aの構成が変更された場合、情報処理サーバ1とゲストプログラムP3が同時にアップデートされない限り、双方の定義する設定データの形式が不一致となり、サービスが正常に動作しない可能性があるという課題があった。
本実施形態によれば、アカウント管理データベース12aの構成が変更された場合でも、対応するマイグレーションIDごとに設定データファイル15aを異なるファイルとして保存し、ゲストプログラムP3に記述されているマイグレーションIDによって、配信する設定データファイル15aを選択することができるため、アカウント管理データベース12aの構成変更とゲストプログラムP3の更新が同時に行われなかったとしても、ゲストプログラムP3の定義する形式にあった設定データを正しく利用できる。すなわち、情報処理サーバ1とゲストプログラムP3、双方の定義する設定データの形式の不一致を発生させずにサービスのアップデートをすることができる。
【0099】
また、ゲストプログラムP3をリクエストするスクリプトタグが設置されたウェブサイトへのアクセス数が多い場合、サーバへの負荷が重くなる課題もあった。
本実施形態によれば、設定データを含むJSON形式の静的な設定データファイル15aとして事前に作成し、設定データファイルストレージ12fに格納するため、ゲスト端末3は設定データ取得部11d及びアカウント管理データベース12aにアクセスすることなく、設定データファイル15aをストレージから取得できるようになる。かつゲストブラウザB3によるキャッシュを利用することもできるため、設定データファイル15aの配信量を必要最小限に抑えることができる。すなわち、情報処理サーバ1への負荷を軽減することができる。
【0100】
更に、アカウント毎に必要な機能及び必要な環境毎に分けて設定データファイル15aを作成し、配信する構成であるため、情報処理サーバ1のファイル配信負荷を軽減することができる。
【0101】
なお、本実施形態では、環境ID及び設定IDの違いに応じて設定データファイル15aを作成する例を説明したが、環境ID及び設定IDを考慮せず、マイグレーションID及びアカウントIDに対応する設定データファイルを作成するように構成してもよい。また、環境ID又は設定IDの一方を考慮し、マイグレーションID及びアカウントIDに対応する設定データファイルを作成するように構成してもよい。
【0102】
更に、情報処理サーバ1が提供するサービスの例として、画面共有サービスを説明したが、ウェブサイトなどの操作方法を説明又は案内するようなチュートリアルサービスを提供するものであってもよい。この場合、機能IDは、チュートリアルサービスに含まれる設定変更可能な各種機能に割り当てられたユニークなIDである。
更にまた、情報処理サーバ1が画面共有サービス及びチュートリアルサービスを提供する場合においては、機能IDは、画面共有サービス機能及びチュートリアルサービス機能に割り当てられたユニークなIDであってもよい。
本発明に係るサービス及び機能は、上記した具体的なサービス及び機能に限定されるものでは無く、設定可能な機能を任意に設計することができる。
【0103】
本開示の課題を解決するための手段を付記する。
(付記1)
端末装置で実行されるプログラムを用いてサービスを提供する情報処理サーバであって、
前記サービスを利用するアカウント毎に、該サービスの設定内容を示す設定データを記憶するアカウント管理データベースと、
該アカウント管理データベースのデータベース構造が変更される都度発行されるマイグレーションIDと、アカウントを識別するアカウントIDと、該マイグレーションIDが発行されたときの前記アカウント管理データベースが記憶する設定データに基づいて作成される設定データファイルとを対応付けて記憶する設定データファイルストレージと
を備え、
前記プログラムは前記マイグレーションIDを含み、
前記マイグレーションIDに基づく前記端末装置からの前記設定データファイルの配信要求に応じて、前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに対応する前記設定データファイルを前記端末装置へ送信する通信部と
を備える設定データファイル配信装置。
(付記2)
前記設定データファイルストレージは、
前記サービスに係る複数の機能のうち、前記アカウントが利用する特定の一又は複数の機能毎に作成された一又は複数の前記設定データファイルと、該機能を示す機能IDをキーにして前記一又は複数の設定データファイルを特定するための索引データファイルとを、前記マイグレーションID及び前記アカウントIDに対応付けて記憶しており、
前記通信部は、
前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに対応する前記索引データファイルを前記端末装置へ送信し、
前記索引データファイルを用いた前記端末装置からの前記設定データファイルの要求に応じて、前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDと、前記アカウントが利用する特定の機能を示す前記機能IDとに対応する前記設定データファイルを前記端末装置へ送信する
付記1に記載の設定データファイル配信装置。
(付記3)
前記設定データファイルストレージは、
前記端末装置側の複数種類の環境毎に作成された複数の前記設定データファイルと、該環境を示す環境IDをキーにして前記複数の設定データファイルを特定するための索引データファイルとを、前記マイグレーションID及び前記アカウントIDに対応付けて記憶しており、
前記通信部は、
前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに対応する索引データファイルを前記端末装置へ送信し、
前記索引データファイルを用いた前記端末装置からの前記設定データファイルの要求に応じて、前記端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDと、前記端末装置側の環境を示す前記環境IDとに対応する前記設定データファイルを前記端末装置へ送信する
付記1又は付記2に記載の設定データファイル配信装置。
(付記4)
前記通信部は、
前記索引データファイルを送信する場合、該索引データファイルをキャッシュしないことを指示するキャッシュコントロール情報及び前記索引データファイルを前記端末装置へ送信し、
前記設定データファイルを送信する場合、前記設定データファイルをキャッシュすることを指示するキャッシュコントロール情報及び前記設定データファイルを前記端末装置へ送信する処理を実行する
付記2又は付記3のいずれか1つに記載の設定データファイル配信装置。
(付記5)
付記1から付記4のいずれか1つに記載の設定データファイル配信装置と、
端末装置と
を備え、
前記端末装置は、
該端末装置が実行する前記プログラムに含まれる前記マイグレーションIDと、前記アカウントIDとに基づいて、前記索引データファイルを要求し、
前記マイグレーションID及び前記アカウントIDに対応する前記索引データファイルを受信した場合、前記キャッシュコントロール情報に従って、前記索引データファイルをキャッシュせず、
前記索引データファイルに基づいて、前記設定データファイルを要求し、
要求に応じて前記設定データファイル配信装置から送信された前記設定データファイルを受信した場合、前記キャッシュコントロール情報に従って、前記設定データファイルをキャッシュする
設定データファイル配信システム。
【符号の説明】
【0104】
1 :情報処理サーバ
2 :エージェント端末
3 :ゲスト端末
4 :ウェブサーバ
5 :記録媒体
11 :処理部
11a :API処理部
11b :ソケット処理部
11c :ファイル処理部
11d :設定データ取得部
11e :設定データファイル作成部
11f :設定データファイル保管部
11g :アカウント管理データベース更新部
11h :ゲストプログラム更新部
12 :記憶部
12a :アカウント管理データベース
12b :画面共有管理データベース
12c :画面共有データ中継ストア
12d :プログラムファイルストレージ
12e :アセットファイルストレージ
12f :設定データファイルストレージ
13 :通信部
14a :マイグレーション管理テーブル
14c :機能タイプ管理テーブル
14b :アカウント別機能タイプ管理テーブル
14e :環境タイプ管理テーブル
14d :アカウント別環境タイプ管理テーブル
14f :設定データ管理テーブル
15a :設定データファイル
15b :索引データファイル
21 :処理部
22 :記憶部
23 :通信部
24 :操作部
25 :表示部
31 :処理部
32 :記憶部
33 :通信部
34 :操作部
35 :表示部
B2 :エージェントブラウザ
B3 :ゲストブラウザ
N :通信網
P1 :コンピュータプログラム
P2 :エージェントプログラム
P3 :ゲストプログラム