(第一の実施形態)
以下に図面を参照して、第一の実施形態について説明する。図1は、第一の実施形態の情報処理システムの概要を説明する図である。
本実施形態の情報処理システム100は、サーバ200と、端末装置300−1、300−2、・・・、300−Nを有する。以下の説明では、端末装置300−1、300−2、・・・、300−Nのそれぞれを区別しない場合には、単に端末装置300と呼ぶ。
本実施形態の情報処理システム100において、サーバ200と、端末装置300とは、アクセスポイント20を介して無線通信を行い、サーバ200は、端末装置300の各種の要求に応じたサービスを提供する。
図1に示す情報処理システム100は、複数の端末装置300のディスプレイに表示された画面の画像を、プロジェクタ等により1つの投影領域10内に投影させるシステムの例を示している。
投影領域10において、画像11、12は、端末装置300−1のディスプレイに表示された画像が投影されたものであり、画像13は、端末装置300−2のディスプレイに表示された画像が投影されたものである。また、画像14は、端末装置300−Nのディスプレイに表示された画像が投影されたものである。
これらの画像は、端末装置300−1、300−2、・・・、300−Nのそれぞれが、画像データをサーバ200に送信し、サーバ200がこの画像データをプロジェクタによって投影させることで、投影領域10に投影される。
ところで、図1に示す情報処理システム100では、サーバ200と端末装置300との通信はリアルタイムで行われるものであるが、環境によっては無線通信の接続が頻繁に切断される可能性がある。
そこで、本実施形態では、サーバ200と端末装置300のそれぞれに、サーバ200と端末装置300との接続の状態を示す情報を管理する状態監視処理部を設け、サーバ200と端末装置300のそれぞれにおいて、接続の状態を示す情報を同期させる。そして、本実施形態では、接続の状態を示す情報を同期させた後に、サーバ200及び端末装置300にリソースを解放又は再利用させる。
そのため、本実施形態の情報処理システム100では、サーバ200及び端末装置300は、それぞれの状態監視処理部によりリソースの解放を指示された場合にのみ、リソースの解放を行えば良い。
よって、本実施形態によれば、サーバ200及び端末装置300は、リソースが確保されているか否かを確認するための処理か不要となる。言い換えれば、本実施形態によれば、端末装置300とサーバ200との通信が切断された後の接続の際に、端末装置300はサービスの提供を受けるためのリソースが確保されているか否かを確認する処理(リソース確認処理)を行わなくても良い。したがって、本実施形態によれば、リソース確認処理による負荷の増大を抑制することができる。
尚、以下の説明では、サーバ200における端末装置300にサービスを提供するためのリソースをサービス側リソースと呼ぶ。また、以下の説明では、端末装置300のアプリケーションがサービスの提供を受けるために利用するリソースを端末側リソースと呼ぶ。
また、本実施形態におけるリソースとは、ソフトウェアやハードウェアを動作させるのに必要な演算処理装置の処理速度やメモリ容量、ハードディスクの容量等を意味する。
本実施形態のサーバ200は、状態監視処理部210、接続状態保存データベース220、サービス利用情報データベース230を有する。状態監視処理部210は、サーバ200と端末装置300との状態を監視した結果に応じて端末装置300にサービスを提供するためのリソースの解放のタイミングを制御する。
接続状態保存データベース220は、サーバ200と各端末装置300との接続の状態を示す情報(接続状態情報)が格納される。サービス利用情報データベース230は、各端末装置300のアプリケーションに提供されるサービスに関する情報が格納される。
本実施形態の端末装置300は、状態監視処理部310、接続状態テーブル320、アプリ利用情報テーブル330を有する。状態監視処理部310は、端末装置300と、サーバ200との状態を監視した結果に応じて、端末装置300のアプリケーションがサービスの提供を受けるために利用するリソースの解放のタイミングを制御する。
接続状態テーブル320は、端末装置300と、サーバ200との接続の状態を示す接続状態情報が格納される。アプリ利用情報テーブル330は、端末装置300にインストールされたアプリケーションによるサービスの利用に関する情報が格納される。
以下に、図2及び図3を参照し、本実施形態のサーバ200及び端末装置300におけるサービス側リソースと端末側リソースの再利用と解放について説明する。
図2は、リソースの再利用の動作を説明する図である。図2(A)は、サーバ200と端末装置300のそれぞれにおいて、接続状態情報がオンラインである場合を示している。図2(B)は、サーバ200の接続状態情報はオンラインであり、端末装置300の接続状態情報が一時的にオフラインとなる場合を示している。
尚、本実施形態では、サーバ200と端末装置300とが無線通信により接続されている状態とは別に、後述するハートビートにより接続を確認できている状態を、接続状態情報がオンラインである、と表現する。また、サーバ200と端末装置300との接続が確認できなくなった状態を、接続状態情報がオフラインである、と表現する。
本実施形態の端末装置300は、サーバ200と接続されている状態において、自機とサーバ200との接続が有効であることを示すために、定期的に信号を送信する。以下の説明では、この信号をハートビートと呼ぶ。本実施形態の端末装置300は、ハートビートと共に、接続状態情報をサーバ200へ送信するものとした。
本実施形態のサーバ200は、端末装置300から接続状態情報を受け付けると、端末装置300からの接続状態情報がオンラインで自機の接続状態情報がオフラインのときのみオフラインを端末装置300へ送信し、それ以外はオンラインを端末装置300に送信する。また、本実施形態のサーバ200は、所定の期間ハートビートを受信しない場合、端末装置300との通信が切断されたものとして、自機の接続状態情報をオフラインとし、サービス側リソースを解放させる。
また、本実施形態の端末装置300は、サーバ200に対して所定の期間ハートビートが送信できない場合、サーバ200との通信が切断されたものとして、自機の接続状態情報をオフラインとし、端末側リソースを解放させる。
言い換えれば、本実施形態のサーバ200と端末装置300のそれぞれは、ハートビートの送受信が行われない期間が所定の期間より短い場合には、通信が有効であるものとし、それぞれの接続状態情報をオンラインに維持する。
図2(A)では、サーバ200と端末装置300とが接続されている。よって、端末装置300は、ハートビートと共に、オンラインの接続状態情報をサーバ200へ送信する(ステップS21)。
サーバ200は、この接続状態情報を受けて、サーバ200の接続状態情報を端末装置300へ返す(ステップS22)。このとき、サーバ200の接続状態情報もオンラインであり、サーバ200の接続状態情報と、端末装置300の接続状態情報とは同期している。
したがって、図2(A)の状態では、サーバ200により提供されるサービスは、サービス側リソースの利用を中断されることがなく、端末装置300のアプリケーションもサービスの提供を受けるための端末側リソースの利用を中断されることがない。言い換えれば、サーバ200はサービス側リソースを利用し続け、端末装置300は端末側リソースを利用し続けることができる。
図2(B)では、サーバ200と端末装置300との無線接続が、タイミングt1からタイミングt2までの期間Taにおいて切断されている。したがって、期間Taの間は、端末装置300からサーバ200に対してハートビートが送信されない。
図2(B)において、端末装置300は、タイミングt2においてサーバ200との通信が可能となったとき、接続状態情報をサーバ200へ送信する(ステップS23)。
このとき、期間Taは、サーバ200が端末装置300との通信が切断されたと判断する所定の期間よりも短い期間とした。したがって、端末装置300は、自機の接続状態情報をオンラインに維持しており、オンラインの接続状態情報をサーバ200へ送信する。
このため、図2(B)において、期間Taの間、サーバ200は、端末装置300との通信が接続されているものとして、接続状態情報をオンラインに維持している。したがって、サーバ200は、端末装置300からの接続状態情報を受けて、オンラインの接続状態情報を端末装置300へ送信する(ステップS24)。
端末装置300の接続状態情報は、無線通信の接続とは別に管理されるものなので、無線接続が切断されていた期間Taにおいても、オンラインを維持している。
したがって、図2(B)の状態では、サーバ200により提供されるサービスは、サービス側リソースの利用を中断されることがなく、端末装置300のアプリケーションもサービスの提供を受けるための端末側リソースの利用を中断されることがない。
言い換えれば、図2(B)では、サーバ200と端末装置300の通信が一時的に切断されているが、端末装置300のアプリケーションは、切断後の通信が回復した後も、切断前に確保した端末側リソースを再利用する。よって、図2(B)の例では、端末装置300は、通信の切断が回復した後のリソース確認処理を行う必要がなく、リソース確認処理による負荷の増大が抑制される。
図3は、リソースの解放の動作を説明する図である。図3(A)は、端末装置300の接続状態情報がオンラインであり、サーバ200の接続状態情報がオフラインのときに、端末装置300からサーバ200へ接続状態情報が送信された場合を示す。
図3(A)において、端末装置300は、オンラインの接続状態情報をサーバ200へ送信する(ステップS31)。サーバ200は、この接続状態情報を受けたとき、サービスに対してサービス側リソースの解放指示が行われた後であり(ステップS32)、接続状態情報がオフラインとなっている。したがって、サーバ200は、オフラインの接続状態情報を端末装置300へ返す(ステップS33)。
サーバ200が自機の接続状態情報をオフラインとし、サービス側リソースの解放指示を行う場合とは、例えば、所定の期間端末装置300から接続状態情報を受信しなかった場合等である。この場合、サーバ200は、端末装置300との通信が切断されたものとし、自機の接続状態情報をオンラインからオフラインとして、サービス側リソースを解放する。
端末装置300は、サーバ200からオフラインの接続状態情報を受けて、アプリケーションに対して端末側リソースの解放指示を行う(ステップS34)。アプリケーションは、この解放指示を受けて、サービスの提供を受けるための端末側リソースを解放する。ここで、サーバ200と端末装置300のそれぞれの接続状態情報はオフラインであり、接続状態が同期する。
端末装置300は、接続状態情報をオフラインとしてサーバ200の接続状態情報と同期させる処理が完了すると、サーバ200に対してオフラインの接続状態情報を送信する(ステップS35)。
サーバ200は、端末装置300において、接続状態情報がオフラインとされたことを受けて、接続状態情報をオフラインからオンラインとし、オンラインの接続状態情報を端末装置300へ返す(ステップS36)。
端末装置300は、サーバ200からオンラインの接続状態情報を受けて、オフラインの接続状態情報をオンラインとし、アプリケーションに端末側リソースを確保させる(ステップS37)。言い換えれば、端末装置300は、アプリケーションに対し、サービスへの再接続を指示する。つまり、端末装置300は、アプリケーションに対し、サービスの提供を要求させる。
このとき、サーバ200と端末装置300のそれぞれの接続状態情報はオンラインとなっており、両者の接続状態情報が同期する。サーバ200と端末装置300において接続状態情報が同期すると、端末装置300のアプリケーションは、サービスに対してサービスの提供を要求する(ステップS38)。
図3(B)は、端末装置300の接続状態情報がオフラインであり、サーバ200の接続状態情報がオンラインのときに、端末装置300からサーバ200へ接続状態情報が送信された場合を示す。
図3(B)の例では、端末装置300において、接続状態情報がオフラインとされ、端末側リソースの解放指示が行われている(ステップS41)。
この状態で、サーバ200と端末装置300との通信が開始されると、端末装置300は、オフラインの接続状態情報をサーバ200へ送信する(ステップS42)。サーバ200は、この接続状態情報を受けて、自機の接続状態情報をオンラインからオフラインとし、サービスに対してサービス側リソースの解放指示を行う(ステップS43)。
ここで、サーバ200と端末装置300のそれぞれの接続状態情報はオフラインであり、接続状態が同期する。
サーバ200は、接続状態情報が端末装置300と同期すると、自機の接続状態情報をオフラインからオンラインとし、端末装置300に対してオンラインの接続状態情報を送信する(ステップS44)。
端末装置300は、オンラインの接続状態情報を受けて、自機の接続状態情報をオフラインからオンラインとして、アプリケーションに端末側リソースを確保させる(ステップS45)。
このとき、サーバ200と端末装置300のそれぞれの接続状態情報はオンラインとなっており、接続状態が同期する。サーバ200と端末装置300において接続状態が同期すると、端末装置300のアプリケーションは、サービスに対してサービスの提供を要求する(ステップS46)。
図3(C)は、サーバ200の接続状態情報と、端末装置300の接続状態情報との両方がオフラインであるときに、端末装置300からサーバ200へ接続状態情報が送信された場合を示す。
図3(C)の例では、サーバ200において、接続状態情報がオフラインとされ、サービス側リソースの解放指示が行われている(ステップS51)。また、端末装置300において、接続状態情報がオフラインとされ、端末側リソースの解放指示が行われている(ステップS52)。
この状態で、サーバ200と端末装置300との通信が開始されると、端末装置300は、オフラインの接続状態情報をサーバ200へ送信する(ステップS53)。ここで、サーバ200と端末装置300のそれぞれの接続状態情報はオフラインであり、接続状態が同期する。
よって、サーバ200は、この接続状態情報を受けて、自機の接続状態情報をオフラインからオンラインとし、端末装置300に対してオンラインの接続状態情報を送信する(ステップS54)。
端末装置300は、オンラインの接続状態情報を受けて、自機の接続状態情報をオフラインからオンラインとして、アプリケーションに端末側リソースを確保させる(ステップS55)。
このとき、サーバ200と端末装置300のそれぞれの接続状態情報はオンラインとなっており、接続状態が同期する。サーバ200と端末装置300において接続状態が同期すると、端末装置300のアプリケーションは、サービスに対してサービスの提供を要求する(ステップS56)。
図3(C)のS53以降の処理は、図3(A)のS35以降の処理と同じである。
以上が、本実施形態の情報処理システム100におけるサーバ200の状態監視処理部210と、端末装置300の状態監視処理部310の動作である。
図2及び図3からわかるように、本実施形態の情報処理システム100では、サーバ200と端末装置300の両方の接続状態情報がオンラインで同期している場合には、サービス側リソース及び端末側リソースを解放させず、継続して利用する。
また、本実施形態の情報処理システム100では、サーバ200と端末装置300の接続状態情報が同期していない場合には、それぞれの接続状態情報を一度オフラインで同期させ、サービス側リソースと端末側リソースを解放させる。そして、情報処理システム100は、その後にサーバ200と端末装置300の接続状態情報をオンラインで同期させ、サービス側リソースと端末側リソースのそれぞれを確保させる。
また、本実施形態の情報処理システム100では、サーバ200と端末装置300の両方の接続状態情報がオフラインで同期している場合には、サーバ200と端末装置300の接続状態情報をオンラインで同期させ、サービス側リソースと端末側リソースのそれぞれを確保させる。
したがって、本実施形態によれば、サーバ200と端末装置300のそれぞれにおいて、サービス側リソースや端末側リソースが確保されているか否かを確認するリソース確認処理を行わずに、リソースの利用の継続(再利用)や、リソースの解放及び確保を行う。このために本実施形態によれば、サーバ200と端末装置300の接続の状態に関わらず、リソース確認処理を行う必要がなく、リソース確認処理を実行することによる負荷の増大を抑制できる。
また、本実施形態の情報処理システム100では、以上のようにサービス側リソースと端末側リソースを管理するため、例えばサーバ200と端末装置300の一時的な通信の切断が生じても、投影領域内10に対する画像の投影を継続できる。したがって、本実施形態によれば、一時的な通信の切断が頻繁に発生した場合でも、投影された画像が通信の切断に応じて頻繁に更新される、といった事態を回避できる。
また、本実施形態の情報処理システム100では、端末装置300からサーバ200に対して所定の期間接続状態情報が送信されない場合には、サーバ200は自機の接続状態情報をオフラインとし、サービス側リソースを解放させる。よって、本実施形態の情報処理システム100によれば、端末装置300との一時的でない通信の切断が生じた場合には、サービス側リソースを解放し、投影領域10から、通信が切断された端末装置300から受信した画像を消去することができる。
尚、本実施形態の情報処理システム100は、端末装置300の画面に表示された画像を投影領域10に投影させるものとしたが、これに限定されない。本実施形態は、サーバ200と端末装置300とが常時無線通信で接続された状態でサービスの授受を行うものであれば、どのような形態であっても適用できる。
以下に、本実施形態のサーバ200と端末装置300について説明する。図4は、サーバのハードウェア構成の一例を示す図である。
本実施形態のサーバ200は、例えばデスクトップやノート型のコンピュータであり、それぞれバスBで相互に接続されている入力装置21、出力装置22、ドライブ装置23、補助記憶装置24、メモリ装置25、演算処理装置26及びインターフェース装置27を含む。
入力装置21は、各種の情報を入力するためものであり、例えばキーボードやマウス等で実現される。出力装置22は、各種の情報を出力するためのものであり、例えばディスプレイ等により実現される。インターフェース装置27は、モデム、LANカード等を含み、ネットワークに接続する為に用いられる。
情報処理プログラムは、サーバ200を制御する各種プログラムの少なくとも一部である。情報処理プログラムは例えば記憶媒体28の配布やネットワークからのダウンロードなどによって提供される。情報処理プログラムを記録した記憶媒体28は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記憶媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記憶媒体を用いることができる。
また、情報処理プログラムは、情報処理プログラムを記録した記憶媒体28がドライブ装置23にセットされると、記憶媒体28からドライブ装置23を介して補助記憶装置24にインストールされる。ネットワークからダウンロードされた情報処理プログラムは、インターフェース装置27を介して補助記憶装置24にインストールされる。
補助記憶装置24は、インストールされた情報処理プログラムを格納すると共に、必要なファイル、データ等を格納する。メモリ装置25は、コンピュータの起動時に補助記憶装置24から情報処理プログラムを読み出して格納する。そして、演算処理装置26はメモリ装置25に格納された情報処理プログラムに従って、後述するような各種処理を実現している。
また、本実施形態のサーバ200は、例えばタブレット型のコンピュータ等であっても良い。その場合、入力装置21と出力装置22の代わりに、表示機能を有するタッチパネル等の表示操作装置を有していても良い。尚、本実施形態の端末装置300は、例えばスマートフォンや一般のタブレット型のコンピュータ等であり、そのハードウェア構成は、図4に示すサーバ200と同様であるから、説明を省略する。
次に、図5乃至図8を参照し、本実施形態のサーバ200の有する各データベースと、端末装置300が有する各テーブルについて説明する。
図5は、第一の実施形態のサーバの接続状態保存データベースの一例を示す図である。本実施形態の接続状態保存データベース220は、予めサーバ200に設けられている。本実施形態の接続状態保存データベース220は、情報の項目として、端末ID、接続状態、オフライン判定時間を有する。
項目「端末ID」の値は、端末装置300を特定するための識別子である。項目「端末ID」の値は、予め端末装置300に付与されている。
項目「接続状態」の値は、サーバ200と端末装置300との接続状態を示す。本実施形態では、項目「接続状態」の値がオンラインである場合、サーバ200と、対応する端末IDで特定される端末装置300との通信が接続された状態を示す。また、項目「接続状態」の値がオフラインである場合、サーバ200と、対応する端末IDで特定される端末装置300との通信が切断された状態を示す。
項目「オフライン判定時間」の値は、サーバ200が端末装置300との通信が切断されたと判定する期間を示す。例えば、項目「オフライン判定時間」の値が1秒であった場合、サーバ200は、端末装置300からハートビートを1秒間受信しなかった場合に、端末装置300との通信が切断されたと判定する。
本実施形態の接続状態保存データベース220では、サーバ200が端末装置300から接続状態情報を受信すると、オフライン判定時間のカウントダウン(減算)を開始する。そして、サーバ200は、端末装置300から次に接続状態情報を受信したとき、オフライン判定時間のカウントダウンを停止し、オフライン判定時間を予め決められた期間(図5では1秒)に戻す。
言い換えれば、サーバ200は、端末装置300から接続状態情報を受信すると、接続状態保存データベース220において端末装置300の端末IDと対応するオフライン判定時間をリセットして初期値に戻し、カウントダウンを開始する。
本実施形態のサーバ200は、オフライン判定時間のカウントダウンが開始され、オフライン判定時間の値が0以下となったとき、端末装置300との通信が切断されたと判定する。
図6は、第一の実施形態のサーバのサービス利用情報データベースの一例を示す図である。本実施形態のサービス利用情報データベース230は、情報の項目として、サービスID、サービス通知先、端末IDリストを有し、項目「サービスID」にその他の項目が対応付けられている。以下の説明では、項目「サービスID」の値と、その他の項目の値とを含む情報をサービス利用情報と呼ぶ。
項目「サービスID」の値は、サーバ200が端末装置300へ提供するサービスを特定するための識別子である。項目「サービス通知先」の値は、例えばREST API(REpresentational State Transfer Application Programming Interface)のURL(Uniform Resource Locator)等である。
REST APIとは、Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つで、RESTと呼ばれる設計原則に従って策定されたものを示す。REST APIのURLは、例えば対応するサービスIDで特定されるサービスを提供するためのリソースを表現している。
項目「端末IDリスト」の値は、対応するサービスIDにより特定されるサービスの提供を受けるアプリケーションを有する端末装置300の端末IDのリストを示す。
図6の例では、例えばサービスID「1001」であるサービスは、端末ID「001」の端末装置300と、端末ID「002」の端末装置300とにより利用されている。端末ID「001」および端末ID「002」の端末装置300から、サービスID「1001」のサービスへ接続したときに、サービスID「1001」のサービスから、サーバ200に対して、リソース解放要求を行うためのURLであるサービス通知先を含めてサービス利用情報を登録する。
この場合、サーバ200は、例えば、端末ID「001」の端末装置300の接続状態がオフラインとなったときに、端末ID「001」の利用しているサービスであるサービスID「1001」とサービスID「1002」について、それぞれ、URL「http://aaa.bbb」、URL「http://ccc.ddd」へアクセスし、端末ID「001」の使用しているリソースを解放する。
図7は、第一の実施形態の端末装置の接続状態テーブルの一例を示す図である。本実施形態の接続状態テーブル320は、端末装置300の端末IDに、サーバ200と端末装置300との接続状態を示す接続状態情報が対応付けられている。
図7の例では、端末ID「001」の端末装置300は、接続状態情報が「オンライン」であり、サーバ200と接続された状態であることがわかる。接続状態テーブル320において、接続状態情報は、端末装置300とサーバ200との接続状態に応じてオンライン/オフラインが切り替えられる。
図8は、第一の実施形態のアプリ利用情報テーブルの一例を示す図である。本実施形態のアプリ利用情報テーブル330は、情報の項目として、アプリID、通知先、サービスIDリストを有し、項目「アプリID」と、その他の項目とが対応付けられている。以下の説明では、項目「アプリID」の値と、その他の項目の値とを含む情報をアプリ利用情報と呼ぶ。
項目「アプリID」の値は、端末装置300にインストールされているアプリケーションを特定する識別子を示す。
項目「通知先」の値は、対応するアプリケーションに対する指示の仕方を示す。例えば、アプリIDで特定されるアプリケーションが、マークアップ言語の規格であるHTML5で記述されていた場合には、アプリケーションに対してコールバックにより指示が行われる。
また、例えば、アプリIDで特定されるアプリケーションが、Java(登録商標)を搭載したAndroidアプリケーションである場合には、intent情報により、アプリケーションに対する指示が行われる。
尚、アプリケーションに対する指示とは、例えば端末側リソースの解放指示や、サービスに対してサービス利用要求を行わせる指示等である。
項目「サービスIDリスト」の値は、対応するアプリIDで特定されるアプリケーションにより利用されるサービスの識別子のリストを示す。
図8では、例えばアプリID「11」は、サービスID「1001」のサービスと、サービスID「1002」のサービスとを利用していることがわかる。
次に、図9を参照し、本実施形態の情報処理システム100の有するサーバ200と端末装置300について説明する。
図9は、第一の実施形態の情報処理システムの有する各装置の機能を説明する図である。始めに、サーバ200の機能について説明する。
本実施形態のサーバ200は、状態監視処理部210、接続状態保存データベース220、サービス利用情報データベース230、サービス240を有する。
状態監視処理部210は、サービス登録部211、サービス中継部212、サービス制御部213、サーバ状態同期部214を有する。
サーバ状態同期部214は、接続状態保存データベース220における接続状態情報を、端末装置300における接続状態情報と同期させる。サーバ状態同期部214の処理の詳細は後述する。
サービス登録部211は、サービスが端末装置300から利用される際に、サービス利用情報データベース230において、端末装置300の端末IDの登録を行う。
サービス中継部212は、後述する端末装置300のアプリケーション350からサービス240に対してサービスの利用要求を受けて、この利用要求をサービス240へ渡す。サービス240は、アプリケーション350に対し、要求に応じた各種のサービスを提供する。
サービス制御部213は、サービス利用情報データベース230を参照し、サービス240に対する制御を行う。具体的には、サービス制御部213は、例えはサービス側リソースの解放指示を行う。
次に、端末装置300の機能について説明する。本実施形態の端末装置300は、状態監視処理部310、接続状態テーブル320、アプリ利用情報テーブル330、接続状態監視部340、アプリケーション350を有する。
本実施形態の状態監視処理部310は、アプリ登録部311、アプリ制御部312、端末状態同期部313を有する。
アプリ登録部311は、アプリ利用情報テーブル330に対してアプリケーション350の登録を行う。
アプリ制御部312は、アプリ利用情報テーブル330を参照し、アプリケーション350に対する制御を行う。具体的には、アプリ制御部312は、例えは端末側リソースの解放指示を行う。
端末状態同期部313は、接続状態監視部340に基づき、通信が可能かどうかを判断する。また、端末状態同期部313は、接続状態テーブル320における接続状態情報を、サーバ200における接続状態情報と同期させる。端末状態同期部313の処理の詳細は後述する。
本実施形態の接続状態監視部340は、端末装置300が通信可能な状態かどうかを監視し、通信可能になったときと不能になったときに、端末状態同期部313へ通知する。言い換えれば、接続状態監視部340は、端末装置300とサーバ200との通信が可能であるか否かを監視している。より具体的には、接続状態監視部340は、端末装置300がアクセスポイント20にアクセスし、IP(Internet Protocol)アドレスを取得したか否かを監視している。
アプリケーション350は、例えば端末装置300の操作等に応じてサービス240に対するサービスの利用要求を行う。このとき、アプリケーション350は、サービスの利用要求に端末装置300の端末IDを付与するものとした。
次に、本実施形態のサーバ200及び端末装置300の処理について説明する。始めに、サーバ200の状態監視処理部210の有する各部の処理について説明する。
図10は、第一の実施形態のサーバのサービス登録部の処理を説明するフローチャートである。
本実施形態のサービス登録部211は、端末装置300のアプリケーション350から利用要求を受けたサービス240から、項目「サービスID」、「サービス通知先」、「端末IDリスト」を含むサービス利用情報を送信されて動作する。まず、サービスからのサービス利用情報を取得する(ステップS1001)。尚、アプリケーション350が正常にサービス240の利用を終了する場合は、「端末IDリスト」からサービス利用終了した端末IDを削除したサービス利用情報が、サービス240よりサービス登録部211に送信される。サービス240を利用する端末300が一台もなくなった場合は、「端末IDリスト」が空のサービス利用情報がサービス240からサービス登録部211に送信される。
続いて、サービス登録部211は、取得したサービス利用情報における項目「端末IDリスト」の値が空であるか否かを判定する(ステップS1002)。
ステップS1002において、該当する値が空であった場合、サービス登録部211は、サービス利用情報データベース230から、取得したサービス利用情報を削除し(ステップS1003)、処理を終了する。本実施形態のサービス登録部211は、利用要求を受けたサービス240が終了する場合等にも端末リストIDの値を空としたサービス利用情報を登録することで、終了するサービスのサービス利用情報を削除している。
ステップS1002において、該当する値が空でない場合、サービス登録部211は、サービス利用情報データベース230に、取得したサービス利用情報を保存し(ステップS1004)、処理を終了する。
本実施形態のサービス登録部211は、以上のようにして、サービス利用情報データベース230にサービス利用情報を格納する。
次に、図11を参照して本実施形態の状態監視処理部210のサービス中継部212の処理について説明する。図11は、第一の実施形態のサーバのサービス中継部の処理を説明するフローチャートである。
本実施形態のサービス中継部212は、端末装置300のアプリケーション350からのサービスの利用要求を受けて、利用要求に付与された端末装置300の端末IDを抽出する(ステップS1101)。続いてサービス中継部212は、接続状態保存データベース220を参照し、抽出した端末IDと対応する接続状態情報を取得する(ステップS1102)。
続いてサービス中継部212は、取得した接続状態情報がオンラインであるか否かを判定する(ステップS1103)。ステップS1103において、接続状態情報がオンラインでない場合、サービス中継部212は、利用要求をサービス240へ中継せずに処理を終了する。
ステップS1103において、接続状態情報がオンラインである場合、サービス中継部212は、利用要求をサービス240へ中継し(ステップS1104)、処理を終了する。
このように、本実施形態では、サーバ200において接続状態情報がオンラインとなっていない場合には、サービス中継部212はサービスの利用要求を中継しない。したがって、本実施形態によれば、サーバ200においてサービス側リソースが解放された状態において、アプリケーション350からサービス240に対してサービスの利用要求が行われる、といった矛盾した動作の発生を回避できる。
次に、図12を参照して本実施形態の状態監視処理部210のサービス制御部213の処理について説明する。図12は、第一の実施形態のサーバのサービス制御部の処理を説明するフローチャートである。
本実施形態のサービス制御部213は、サーバ状態同期部214から端末IDの通知を受けると、接続状態保存データベース220を参照し、通知された端末IDの接続状態情報を取得する(ステップS1201)。続いて、サービス制御部213は、接続状態情報がオフラインであるか否かを判定する(ステップS1202)。
ステップS1202において、オフラインでない場合、つまり接続状態情報がオンラインであった場合、サービス制御部213は処理を終了する。
ステップS1202において、オフラインであった場合、サービス制御部213は、サービス利用情報データベース230を参照し、通知された端末IDと対応するサービスIDとサービス通知先を抽出する(ステップS1203)。続いてサービス制御部213は、抽出したサービスIDにより特定されるサービスに対し、リソースの解放を通知し(ステップS1204)、処理を終了する。
以上のように、本実施形態のサービス制御部213は、通知された端末IDの接続状態情報がオフラインであった場合に、端末IDと対応するサービス240に、サービス側リソースを解放させる。
次に、図13を参照して本実施形態の状態監視処理部210のサーバ状態同期部214の処理について説明する。図13は、第一の実施形態のサーバのサーバ状態同期部の処理を説明する第一のフローチャートである。尚、図13の処理は、所定間隔毎に繰り返し行われる。ここでの所定間隔は、接続状態保存データベース220におけるオフライン判定時間よりも短い間隔である。
本実施形態のサーバ状態同期部214は、端末装置300の端末状態同期部313から通知を受けたか否かを判定する(ステップS1301)。言い換えれば、サーバ状態同期部214は、端末状態同期部313から接続状態情報を受けたか否かを判定する。
ステップS1301において、通知を受けない場合、サーバ状態同期部214は後述するステップS1311へ進む。
ステップS1301において、通知を受けた場合、サーバ状態同期部214は、通知(接続状態情報)がオンラインであるか否かを判定する(ステップS1302)。尚、サーバ状態同期部214は、通知と共に、通知を行った端末装置300の端末IDを受け取る。
ステップS1302において、オンラインでない場合、つまり接続状態情報がオフラインである場合、サーバ状態同期部214は後述するステップS1306へ進む。
ステップS1302において、オンラインであった場合、サーバ状態同期部214は、接続状態保存データベース220より、接続状態情報と共に受け取った端末IDと対応する接続状態情報を取得する(ステップS1303)。
続いて、サーバ状態同期部214は、端末装置300に対し、ステップS1303で取得した接続状態情報を返す(ステップS1304)。次に、サーバ状態同期部214は、接続状態保存データベース220において、受け取った端末IDと対応するオフライン判定時間をリセットし(ステップS1305)、処理を終了する。言い換えれば、サーバ状態同期部214は、ステップS1305において、端末装置300と対応する端末IDのオフライン判定時間を初期値に戻し、処理を終了する。
ステップS1302において、接続状態情報がオンラインでない場合、つまりオフラインの場合、サーバ状態同期部214は、接続状態保存データベース220より、接続状態情報と共に受け取った端末IDと対応する接続状態情報を取得する(ステップS1306)。
続いてサーバ状態同期部214は、ステップS1306で取得した接続状態情報がオンラインであるか否かを判定する(ステップS1307)。
ステップS1307において、オンラインでない場合、つまりオフラインである場合、サーバ状態同期部214は、接続状態保存データベース220における端末IDの接続状態情報を、オフラインからオンラインに変更し(ステップS1308)、ステップS1303へ進む。
ステップS1307において、オンラインである場合、サーバ状態同期部214は、接続状態保存データベース220における端末IDの接続状態情報を、オンラインからオフラインに変更する(ステップS1309)。続いてサーバ状態同期部214は、サービス制御部213に対して端末IDを通知し(ステップS1310)、ステップS1308へ進む。尚、ここでは、サービス制御部213には、接続状態保存データベース220の接続状態情報がオフラインとされた端末IDが通知される。よって、サービス制御部213は、サービス利用情報データベース230において、この端末IDと対応するサービスIDで特定されるサービスに対し、サービス側リソースの解放指示を行うことになる(図12参照)。
ステップS1301において、端末状態同期部313から接続状態情報を受信しない場合、サーバ状態同期部214は、処理1を実行し(ステップS1311)、処理を終了する。
以下に、図14を参照して、状態監視処理部210のサーバ状態同期部214による処理1について説明する。図14は、第一の実施形態のサーバのサーバ状態同期部の処理を説明する第二のフローチャートである。
本実施形態のサーバ状態同期部214は、ステップS1301において、接続状態情報が通知されない場合、接続状態保存データベース220に格納された全ての端末IDと対応するオフライン判定時間に対して減算を開始する(ステップS1401)。続いて、サーバ状態同期部214は、オフライン判定時間が経過した端末IDが存在するか否かを判定する(ステップS1402)。言い換えれば、サーバ状態同期部214は、オフライン判定時間の減算の結果により、オフライン判定時間が0以下となり、サーバ200との通信が切断していると判定される端末IDが存在するか否かを判定する。
ステップS1402において、該当する端末IDが存在しない場合、サーバ状態同期部214は、処理を終了する。
ステップS1402において、該当する端末IDが存在する場合、サーバ状態同期部214は、接続状態保存データベース220より、該当する端末IDの接続状態情報を取得する(ステップS1403)。続いてサーバ状態同期部214は、取得した接続状態情報がオンラインであるか否かを判定する(ステップS1404)。
ステップS1404において、オンラインでない場合、つまりオフラインであった場合、サーバ状態同期部214は、後述するステップS1407へ進む。
ステップS1404において、オンラインであった場合、サーバ状態同期部214は、接続状態保存データベース220における該当する端末IDの接続状態情報をオンラインからオフラインに変更する(ステップS1405)。続いてサーバ状態同期部214は、サービス制御部213に該当する端末IDを通知し(ステップS1406)、ステップS1407へ進む。
尚、ステップS1406において端末IDの通知を受けたサービス制御部213は、図12のステップS1203以降の処理を行い、端末IDが利用しているサービスに対してサービス側リソースを解放させる。
ステップS1404において、オフラインであった場合、サーバ状態同期部214は、オフライン判定時間が経過した端末ID全てについて、ステップS1403以降の処理を行ったか否かを判定する(ステップS1407)。つまり、サーバ状態同期部214は、サーバ200と通信が切断された端末装置300について、この端末装置300が利用しているサービスのサービス側リソースを解放させたか否かを判定している。
ステップS1407において、全ての端末IDにおいて処理を行っていない場合、サーバ状態同期部214は、オフライン判定時間が経過した次の端末IDを取得し(ステップS1408)、ステップS1403へ戻る。
ステップS1407において、オフライン判定時間が経過した全ての端末IDについて、ステップS1403以降の処理を行った場合、サーバ状態同期部214は、処理を終了する。
以上が、本実施形態のサーバ200の状態監視処理部210の有する各部の処理である。
次に、本実施形態の端末装置300の状態監視処理部310の有する各部の処理について説明する。
図15は、第一の実施形態の端末装置のアプリ登録部の処理を説明するフローチャートである。
本実施形態の端末装置300の状態監視処理部310の有するアプリ登録部311は、アプリケーション350より、サービス利用可能時と利用不可能時の通知をするためのアプリ利用情報の登録や削除を依頼され、アプリ利用情報の管理を行う。アプリ登録部311は、アプリケーション350からの依頼を受け、依頼がアプリ利用情報の登録か否かを判定する(ステップS1501)。アプリケーション350は、利用する全てのサービスに対するアプリ利用情報を動作開始時に登録し、アプリ終了時に削除してもよいし、サービスを利用するときに、そのサービスに対するアプリ利用情報を登録し、サービスを利用しなくなったときに、そのサービスに対するアプリ利用情報を削除してもよい。
ステップS1501において、アプリ利用情報の登録を行う場合、アプリ登録部311は、アプリケーション350からのアプリ利用情報をアプリ利用情報テーブル330へ保存し(ステップS1502)、処理を終了する。アプリ利用情報は、項目「アプリID」、「通知先」、「サービスIDリスト」を含む情報である。
ステップS1501において、アプリ利用情報の登録ではない場合、つまりアプリ利用情報の削除の場合、アプリ登録部311は、アプリ利用情報テーブル330から、アプリIDを含むアプリ利用情報を削除し(ステップS1503)、処理を終了する。
本実施形態では、以上のアプリ登録部311の処理により、アプリ利用情報テーブル330には、起動しているアプリケーションにより利用されるサービスのサービスIDが格納されるようになる。
次に、図16を参照して本実施形態の端末装置300の状態監視処理部310の有するアプリ制御部312の処理について説明する。図16は、第一の実施形態の端末装置のアプリ制御部の処理を説明するフローチャートである。
本実施形態のアプリ制御部312は、端末状態同期部313から通知された接続状態情報がオンラインか否かを判定する(ステップS1601)。ステップS1601において、オンラインである場合、アプリ制御部312は、アプリ利用情報テーブル330に含まれる全てのアプリIDが特定するアプリケーション350に対し、各アプリIDと対応する通知先が示す方法により、オンライン通知を行い(ステップS1602)、処理を終了する。
このとき、アプリ制御部312は、各アプリIDが特定するアプリケーション350に対し、各アプリIDと対応するサービスIDリストを付与して、オンライン通知を行う。言い換えれば、アプリ制御部312は、アプリIDにより特定されるアプリケーション350に対し、サービスIDリストに含まれるサービスIDが特定するサービスの利用開始を指示する。
ステップS1601において、オンラインでない場合、サービス制御部213は、アプリ利用情報テーブル330に含まれる全てのアプリIDが特定するアプリケーション350に対し、各アプリIDと対応する通知先が示す方法により、端末側リソースの解放指示を行い(ステップS1603)、処理を終了する。
このとき、アプリ制御部312は、各アプリIDが特定するアプリケーション350に対し、各アプリIDと対応するサービスIDリストを付与して、端末側リソースの解放指示を行う。言い換えれば、アプリ制御部312は、アプリIDにより特定されるアプリケーション350に対し、サービスIDリストに含まれるサービスIDが特定するサービスのために使用していた端末側リソースの解放を指示する。
次に、図17を参照して本実施形態の端末装置300の有する状態監視処理部310の端末状態同期部313の処理について説明する。図17は、第一の実施形態の端末装置の有する端末状態同期部の処理を説明するフローチャートである。
本実施形態の端末状態同期部313は、接続状態監視部340から、端末装置300とサーバ200との通信の状態を示す通知を受けたか否かを判定する(ステップS1701)。
ステップS1701において、通知を受けていない場合、端末状態同期部313は後述するステップS1713へ進む。
ステップS1701において、通知を受けた場合、端末状態同期部313は、通知が接続の開始を示す通知であるか否かを判定する(ステップS1702)。接続の開始を示す通知とは、例えば、端末装置300がアクセスポイント20からIPアドレスを取得したことを示す通知である。
ステップS1702において、通知が接続の開始を示すものでない場合、つまり、通知が接続の終了を示すものである場合、端末状態同期部313は、端末装置300の有するタイマ機能において、タイマを設定し(ステップS1703)、処理を終了する。ここでタイマに設定される期間は、接続状態保存データベース220におけるオフライン判定時間と一致する期間である。ステップS1703でタイマに設定される期間は、端末装置300が、端末装置300とサーバ200との通信が切断されたと判定するための期間である。
ステップS1702において、通知が接続の開始を示すものである場合、端末状態同期部313は、タイマの設定を解除する(ステップS1704)。
続いて端末状態同期部313は、接続状態テーブル320により、端末装置300の接続状態情報を取得する(ステップS1705)。続いて端末状態同期部313は、サーバ200のサーバ状態同期部214に、ステップS1705で取得した接続状態情報を送信し、サーバ状態同期部214から返答を受ける(ステップS1706)。
続いて端末状態同期部313は、サーバ状態同期部214から、返答として受けた接続状態情報がオフラインであるか否かを判定する(ステップS1707)。
ステップS1707においてオフラインでない場合、つまり、オンラインであった場合、端末状態同期部313は後述するステップS1710へ進む。
ステップS1707において、オフラインであった場合、端末状態同期部313は、接続状態テーブル320の接続状態情報をオフラインとする(ステップS1708)。続いて、端末状態同期部313は、アプリ制御部312に対し、オフラインの接続状態情報を通知し(ステップS1709)、ステップS1705へ戻る。尚、このとき、アプリ制御部312は、オフラインの通知を受けて、アプリケーション350に対して、アプリケーション350がサービスを利用するために使用していた端末側リソースの解放指示を行う。
ステップS1707において、オンラインであった場合、端末状態同期部313は、ステップS1705で接続状態テーブル320から取得した接続状態情報が、オフラインであるか否かを判定する(ステップS1710)。
ステップS1710において、接続状態情報がオフラインでない場合、つまりオフラインであった場合、端末状態同期部313は、処理を終了する。
ステップS1710において、接続状態情報がオフラインであった場合、端末状態同期部313は、接続状態テーブル320の接続状態情報をオフラインからオンラインへ変更する(ステップS1711)。続いて端末状態同期部313は、アプリ制御部312に対し、オンラインの接続状態情報を通知し(ステップS1712)、処理を終了する。尚、このとき、アプリ制御部312は、オンラインの通知を受けて、アプリケーション350に対して、サービスの利用開始を指示する。またアプリケーション350は、アプリ制御部312からオンラインの通知を受けて、サービス240に対する利用要求(アクセス)を行う。
このように、本実施形態では、サーバ200における接続状態保存データベース220の接続状態情報と、端末装置300の接続状態テーブル320とがオンラインで同期した状態において、アプリ制御部312に対してオンラインを通知する。
言い換えれば、本実施形態では、端末装置300において接続の開始が通知されてから、サーバ200側の接続状態情報がオンラインとなるまで、端末装置300の接続状態情報をオンラインとせず、アプリ制御部312に対するオンラインの通知を遅延させる。
したがって、本実施形態によれば、サービス側リソースが解放された状態でアプリケーション350がサービス240にアクセスすることを抑制できる。
ステップS1701において、通知を受けていない場合、端末状態同期部313は、所定時間が経過したか否かを判定する(ステップS1713)。ステップS1713における所定時間とは、タイマに設定された時間である。よって、言い換えれば、ステップS1713において、端末状態同期部313は、オフライン判定時間が経過したか否かを判定している。
ステップS1713において、所定時間が経過していない場合、端末状態同期部313はステップS1701へ戻る。
ステップS1713において、所定時間が経過した場合、端末状態同期部313は、接続状態テーブル320から接続状態情報を取得する(ステップS1714)。続いて、端末状態同期部313は、取得した接続状態情報がオンラインか否かを判定する(ステップS1715)。
ステップS1715において、接続状態情報がオンラインでない場合、つまりオフラインの場合、端末状態同期部313は処理を終了する。
ステップS1715において、接続状態情報がオンラインである場合、端末状態同期部313は、接続状態テーブル320の接続状態情報をオンラインからオフラインへ変更する(ステップS1716)。続いて端末状態同期部313は、アプリ制御部312に対し、オフラインの接続状態情報を通知し(ステップS1717)、処理を終了する。尚、このとき、アプリ制御部312は、オフラインの通知を受けて、アプリケーション350に対して、サービスを利用するために使用している端末側リソースの解放指示を行う。
本実施形態では、以上に説明したサーバ200と端末装置300の処理により、図2(A)、(B)及び図3(A)、(B)、(C)に示す各動作を実現する。
したがって、本実施形態によれば、リソース確認処理による負荷の増大を抑制できる。また、本実施形態のサービス中継部212は、サーバ200と端末装置300において、それぞれの接続状態情報がオンラインで同期していない場合には、アプリケーション350からのサービスの利用要求を受けてもサービス240へ利用要求を通知しない。したがって、本実施形態によれば、サーバ200においてサービス側リソースが確保されていない状態で、アプリケーション350から利用要求が通知されることにより生じる誤動作等の発生を抑制できる。
(第二の実施形態)
以下に図面を参照して第二の実施形態について説明する。第二の実施形態では、アプリケーションからサービスへの利用要求が中継されない場合に、サービスの利用不可の通知を行う点が第一の実施形態と相違する。よって、以下の第二の実施形態の説明では、第一の実施形態との相違点についてのみ説明し、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
図18は、第二の実施形態の情報処理システムの有する各装置の機能を説明する図である。
本実施形態の情報処理システム100Aは、サーバ200Aと端末装置300Aとを有する
本実施形態のサーバ200Aは、状態監視処理部210Aと、接続状態保存データベース220Aと、サービス利用情報データベース230Aとを有する。
本実施形態の接続状態保存データベース220Aと、サービス利用情報データベース230Aには、サービス240が利用可能であるか否かを示す情報が格納される。接続状態保存データベース220Aと、サービス利用情報データベース230Aの詳細は後述する。
本実施形態の状態監視処理部210Aは、サービス登録部211A、サービス中継部212A、サービス制御部213、サーバ状態同期部214A、を有する。
サービス登録部211Aは、サービス利用情報データベース230Aにおけるサービス240の利用の可否を示す情報を登録する。
サービス中継部212Aは、サービス240の利用が不可能であるとき、サービス240が利用不可であることを示す通知を端末装置300Aに送信する。以下の説明では、サービス240が利用不可であることを示す通知を、サービス利用不可通知と呼ぶ。
サーバ状態同期部214Aは、サービス利用不可通知に基づき、接続状態保存データベース220Aの情報を更新する。
本実施形態の端末装置300Aは、状態監視処理部310Aと、接続状態テーブル320と、アプリ利用情報テーブル330Aと、を有する。
本実施形態のアプリ利用情報テーブル330Aには、サービス240が利用可能であるか否かを示す情報が格納される。アプリ利用情報テーブル330Aの詳細は後述する。
本実施形態の状態監視処理部310Aは、アプリ登録部311、アプリ制御部312A、端末状態同期部313Aを有する。
アプリ制御部312Aは、端末状態同期部313Aがサーバ200Aからサービス利用不可通知を受けたとき、アプリケーション350によるサービス利用不可とされたサービスの利用を不可とし、アプリ利用情報テーブル330Aの情報を更新する。
本実施形態の端末状態同期部313Aは、サーバ200Aから、利用不可サービスIDリストを受け付けると、アプリ制御部312Aに利用不可サービスIDリストを渡す。
次に、図19と図20を参照し、本実施形態のサーバ200Aの有する各データベースについて説明する。
図19は、第二の実施形態の接続状態保存データベースの一例を示す図である。本実施形態の接続状態保存データベース220Aは、情報の項目として、端末ID、接続状態、オフライン判定時間、利用不可サービスIDリストを有する。
項目「利用不可サービスIDリスト」の値は、対応付けられた端末IDで特定される端末装置300Aが利用することができないサービス240を特定する識別子を示す。
図19の例では、端末ID「001」の端末装置300Aは、サービスID「1001」、「1002」のサービス240を利用することができないことがわかる。
図20は、第二の実施形態のサービス利用情報データベースの一例を示す図である。本実施形態のサービス利用情報データベース230Aは、情報の項目として、サービスID、サービス通知先、サービス状態、端末IDリストを有する。
項目「サービス状態」の値は、対応付けられたサービスIDで特定されるサービス240の利用の可否を示す。尚、本実施形態では、サービス登録部211Aが、項目「サービス状態」の値が利用不可であるサービス240から、利用が可能となったことを示す通知を受けたとき、項目「サービス状態」の値が利用不可から利用可能へ更新される。
図20の例では、サービスID「1001」のサービス240は利用不可であり、このサービス240を利用する端末装置300Aは、端末ID「001」、「002」の端末装置300Aであることがわかる。
次に、図21を参照し、本実施形態の端末装置300Aの有するアプリ利用情報テーブル330Aについて説明する。
図21は、第二の実施形態のアプリ利用情報テーブルの一例を示す図である。本実施形態のアプリ利用情報テーブル330Aは、情報の項目として、アプリID、通知先、サービスIDリスト/サービス状態を有する。
項目「サービスIDリスト/サービス状態」の値は、アプリIDにより利用されるサービス240のサービスIDと、このサービスIDが特定するサービス240の利用可否と、を示す。
図21の例では、アプリID「11」は、サービスID「1001」のサービス240と、サービスID「1002」のサービス240を利用し、サービスID「1001」、「1002」が特定するサービス240は両方とも利用不可であることがわかる。
次に、本実施形態のサーバ200Aと端末装置300Aの動作について説明する。図22は、第二の実施形態のサーバのサービス登録部の処理を説明するフローチャートである。
図22のステップS2201からステップS2204までの処理は、図10のステップS1001からステップS1004までの処理と同様であるから、説明を省略する。
ステップS2203、2204に続いて、サービス登録部211Aは、接続状態保存データベース220Aにおいて、対象のサービスIDを、すべての端末IDの接続状態情報の利用不可サービスIDリストから削除し(ステップS2205)、処理を終了する。
次に、本実施形態のサーバ200Aの状態監視処理部210Aの有するサービス中継部212Aの処理について説明する。
図23は、第二の実施形態のサーバのサービス中継部の処理を説明するフローチャートである。
図23のステップS2301からステップS2303までの処理は、図11のステップS1101からステップS1103までの処理と同様であるから、説明を省略する。
ステップS2303において、接続状態情報がオンラインでない場合、サービス中継部212Aは、利用要求をサービス240へ中継せずに処理を終了する。
ステップS2303において、接続状態情報がオンラインである場合、サービス中継部212Aは、サービス利用情報データベース230Aにおいて、利用要求を受けたサービスIDのサービス状態を取得する(ステップS2304)。
続いてサービス中継部212Aは、サービス状態が利用可であるか否かを判定する(ステップS2305)。ステップS2305において、サービス状態が利用可でない場合、つまり、サービス状態が利用不可である場合、サービス中継部212Aは、サービスの利用要求を中継せずに処理を終了する。
ステップS2305において、サービス状態が利用可である場合、サービス中継部212Aは、サービスの利用要求をサービス240へ中継する(ステップS2306)。
続いてサービス中継部212Aは、サービス240に対する中継が成功したか否かを判定する(ステップS2307)。ステップS2307において、中継が成功した場合、サービス中継部212Aは、処理を終了する。
ステップS2307において、中継が失敗した場合、サービス中継部212Aは、サービス利用情報データベース230Aにおいて、中継に失敗したサービスのサービスIDのサービス状態を利用不可とする(ステップS2308)。
続いてサービス中継部212Aは、サービスIDのサービス利用情報の端末IDリストの端末IDに対して、接続状態保存データベース220Aにおいて、対応する利用不可サービスIDリストに、中継に失敗したサービスのサービスIDを追加し(ステップS2309)、処理を終了する。
次に、本実施形態のサーバ200Aの状態監視処理部210Aの有するサーバ状態同期部214Aの処理について説明する。
図24は、第二の実施形態のサーバのサーバ状態同期部の処理を説明するフローチャートである。
図24のステップS2401とステップS2402の処理は、図13のステップS1301とステップS1302の処理と同様であるから、説明を省略する。
ステップS2402において、オンラインであった場合、サーバ状態同期部214Aは、接続状態保存データベース220Aより、接続状態情報と共に受け取った端末IDと対応する接続状態情報と、利用不可サービスIDリストとを取得する(ステップS2403)。
続いて、サーバ状態同期部214Aは、端末装置300Aに対し、ステップS2403で取得した接続状態情報と、利用不可サービスIDリストとを返す(ステップS2404)。
図24のステップS2405からステップS2411までの処理は、図13のステップS1305とステップS1311までの処理と同様であるから、説明を省略する。
次に、本実施形態の端末装置300Aの状態監視処理部310Aの有するアプリ制御部312Aの処理について説明する。
図25は、第二の実施形態のサーバのアプリ制御部の処理を説明するフローチャートである。
本実施形態のアプリ制御部312Aは、端末状態同期部313Aから受けた通知の種別を示す情報を取得する(ステップS2501)。続いて、アプリ制御部312Aは、種別を示す情報に基づき、通知の内容が利用不可サービスIDリストであるか否かを判定する(ステップS2502)。
ステップS2502において、通知が利用不可サービスIDリストでない場合、アプリ制御部312Aは、後述するステップS2505へ進む。
ステップS2502において、通知が利用不可サービスIDリストであった場合、アプリ制御部312Aは、アプリケーション350に対し、利用不可サービスIDリストに含まれるサービスIDが特定するサービスのサービス利用不可を通知する。そして、アプリ制御部312Aは、利用不可とされたサービス以外のサービスを利用可能とし、アプリケーション350に対してサービス利用可を通知する(ステップS2503)。
尚、本実施形態では、アプリケーション350への通知を何度も行わないようにするために、通知された利用不可サービスリストに含まれるサービスIDが、アプリ利用情報テーブルのサービス状態にて可となっている場合に、サービス利用不可通知を行い、通知された利用不可サービスリストに含まれないサービスIDが、アプリ利用情報テーブルのサービス状態にて不可となっている場合に、サービス利用可通知を行ってもよい。
続いて、アプリ制御部312Aは、アプリ利用情報テーブル330Aにおいて、全てのアプリIDと対応するサービスIDリスト/サービス状態を更新し(ステップS2504)、処理を終了する。
図25のステップS2505からステップS2507までの処理は、図16のステップS1601からステップS1603までの処理と同様であるから、説明を省略する。
次に、図26を参照し、本実施形態の端末装置300Aの状態監視処理部310Aの有する端末状態同期部313Aの処理について説明する。
図26は、第二の実施形態の端末装置の端末状態同期部の処理を説明するフローチャートである。
図26のステップS2601からステップS2606までの処理は、図17のステップS1701からステップS1706までの処理と同様であるから、説明を省略する。
ステップS2606に続いて、端末状態同期部313Aは、サーバ200Aからの返答に含まれる利用不可サービスIDリストが存在するか否かを判定する(ステップS2607)。言い換えれば、端末状態同期部313Aは、サーバ200Aからの返答に含まれる利用不可サービスIDリストにサービスIDが存在するか否かを判定している。
ステップS2607において、利用不可サービスIDリストが存在しない場合、端末状態同期部313Aは、後述するステップS2609へ進む。
ステップS2607において、利用不可サービスIDリストが存在している場合、端末状態同期部313Aは、アプリ制御部312Aに対して利用不可サービスIDリストに含まれるサービスIDを通知し(ステップS2608)、後述するステップS2609へ進む。
図26のステップS2609からステップS2619までの処理は、図17のステップS1707からステップS1717までの処理と同様であるから、説明を省略する。
以上のように、本実施形態によれば、サーバ200Aにおける接続状態情報と、端末装置300Aにおける接続状態情報との同期に合わせて、サービス240の利用が可能か否かを示す情報をアプリケーション350に通知できる。
(第三の実施形態)
以下に図面を参照して第三の実施形態について説明する。第三の実施形態では、サーバが端末装置に対して状態監視処理部を実現する状態監視アプリケーションを配信する点のみ、第一の実施形態と相違する。よって、以下の第三の実施形態の説明では、第一の実施形態と同様の機能構成を有するものには、第一の実施形態の説明で用いた符号と同様の符号を付与し、その説明を省略する。
図27は、第三の実施形態の情報処理システムのシステム構成の一例を示す図である。本実施形態の情報処理システム100Bは、サーバ200Bと端末装置300とを有する。
本実施形態のサーバ200Bは、状態監視処理部210、接続状態保存データベース220、サービス利用情報データベース230、アプリ配信処理部250を有する。
本実施形態のアプリ配信処理部250は、例えは端末装置300からアプリケーションの配信要求を受け付けると、状態監視アプリケーション310Bを端末装置300に配信する。
状態監視アプリケーション310Bは、状態監視処理部310を実現するアプリケーションである。尚、状態監視アプリケーション310Bは、サービス240を利用するアプリケーション350を含むアプリケーションであっても良い。
本実施形態では、例えば情報処理システム100Bを用いて会議等が開催される場合に、会議の開催前に参加者の端末装置300にサーバ200Bから状態監視アプリケーション310Bを配信すれば、会議において情報処理システム100Bの利用が可能となる。
開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
サーバと端末装置とを有する情報処理システムであって、
前記サーバは、
前記サーバにおける前記サーバと前記端末装置との接続の状態を示す第一の接続状態を管理するサーバ側状態監視処理部と、
前記第一の接続状態と、前記端末装置において管理される第二の接続状態と、を同期させた結果に基づいて、前記サーバにより確保されたサーバ側リソースの解放又は再利用を行うサーバ側制御部と、を有し、
前記端末装置は、
前記端末装置における前記サーバと前記端末装置との接続の状態を示す前記第二の接続状態を管理する端末側状態監視処理部と、
前記第二の接続状態と、前記第一の接続状態と、を同期させた結果に基づいて、前記端末装置により確保された端末側リソースの解放又は再利用を行う端末側制御部と、を有する、情報処理システム。
(付記2)
前記第一の接続状態と、前記第二の接続状態と、が同期していないとき、
前記サーバ側状態監視処理部と、前記端末側状態監視処理部と、は、
前記第一の接続状態と前記第二の接続状態とを、前記サーバと前記端末装置との接続が切断された状態で各々切断を判断させた後に、前記サーバと前記端末装置とが接続された状態で同期させる、付記1記載の情報処理システム。
(付記3)
前記端末側状態監視処理部は、
前記端末装置と前記サーバとの接続が切断されてから所定時間経過した後に、前記第二の接続状態を、前記接続された状態から前記接続が切断された状態とする、付記1又は2記載の情報処理システム。
(付記4)
前記サーバ側制御部は、
前記第一の接続状態が、前記接続が切断された状態となったとき、前記サーバ側リソースの解放を行い、
前記端末側制御部は、
前記第二の接続状態が、前記接続が切断された状態となったとき、前記端末側リソースの解放を行い、前第二の接続状態が、前記接続された状態となったとき、前記端末側リソースを確保する、付記2又は3記載の情報処理システム。
(付記5)
前記端末側状態監視処理部は、
前記端末装置と前記サーバとが接続された場合、
前記サーバにおいて、前記第一の接続状態が、前記接続された状態とされたことを示す通知を受けてから、前記第二の接続状態を、前記接続された状態とする、付記2乃至4の何れか一項に記載の情報処理システム。
(付記6)
前記サーバは、
前記端末装置から、前記サーバが提供するサービスの利用要求を受けて、前記利用要求を前記サービスへ中継するサービス中継部を有し、
前記サービス中継部は、
前記第一の接続状態が、前記接続された状態である場合に、前記利用要求を前記サービスへ中継し、
前記第一の接続状態が、前記接続が切断された状態である場合に、前記利用要求を前記サービスへ中継しない、付記2乃至5の何れか一項に記載の情報処理システム。
(付記7)
前記サービス中継部は、
前記サービス中継部による前記利用要求の中継に失敗した場合に、
前記利用要求を行った前記端末装置に対し、前記サービスの利用が不可能であることを通知する、付記6記載の情報処理システム。
(付記8)
端末装置と通信を行うサーバであって、
前記サーバと前記端末装置との接続の状態を示す、第一の接続状態を管理する状態監視処理部と、
前記第一の接続状態と、前記端末装置において管理される、前記サーバと前記端末装置との接続の状態を示す第二の接続状態と、を同期させた結果に基づいて、前記サーバにおいて確保されたリソースの解放又は再利用を行う制御部と、を有するサーバ。
(付記9)
サーバと通信を行う端末装置であって、
前記サーバと前記端末装置との接続の状態を示す、第二の接続状態を管理する状態監視処理部と、
前記第二の接続状態と、前記サーバにおいて管理される、前記サーバと前記端末装置との接続の状態を示す第一の接続状態と、を同期させた結果に基づいて、前記端末装置において確保されたリソースの解放又は再利用を行う制御部と、を有する端末装置。
(付記10)
サーバと端末装置との接続の状態を示す第一の接続状態を管理し、
前記第一の接続状態と、前記端末装置において管理される、前記サーバと前記端末装置との接続の状態を示す第二の接続状態と、を同期させた結果に基づいて、前記サーバにおいて確保されたリソースの解放又は再利用を行う、処理を前記サーバに実行させる情報処理プログラム。
(付記11)
サーバと端末装置との接続の状態を示す第二の接続状態を管理し、
前記第二の接続状態と、前記サーバにおいて管理される、前記サーバと前記端末装置との接続の状態を示す第一の接続状態と、を同期させた結果に基づいて、前記端末装置において確保されたリソースの解放又は再利用を行う、処理を前記端末装置に実行させる情報処理プログラム。
(付記12)
サーバと端末装置とを有する情報処理システムによる情報処理方法であって、
前記サーバが、
前記サーバにおける前記サーバと前記端末装置との接続の状態を示す第一の接続状態を管理し、
前記第一の接続状態と、前記端末装置において管理される第二の接続状態と、を同期させた結果に基づいて、前記サーバにより確保されたサーバ側リソースの解放又は再利用を行い、
前記端末装置が、
前記端末装置における前記サーバと前記端末装置との接続の状態を示す前記第二の接続状態を管理し、
前記第二の接続状態と、前記第一の接続状態と、を同期させた結果に基づいて、前記端末装置により確保された端末側リソースの解放又は再利用を行う情報処理方法。
本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。