(57)【要約】【課題】  サーバ装置に対するアクセスや操作が無い時間の長さが、セッション破棄の判断基準であるため、クライアント装置内でのセッションの操作状態は考慮されておらず、ユーザがクライアント装置を操作しているにも関わらずセッションが切断される場合がある。【解決手段】  セッション管理装置は、操作状態ごとのタイムアウト時間を格納する、管理記憶手段と、クライアント装置からセッションの前記操作状態を所定の時間ごとに受信する操作状態受信手段と、前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる操作状態管理手段と、を備える。【選択図】      図１
2014010747.tif 000002
【特許請求の範囲】
【請求項１】
操作状態ごとのタイムアウト時間を格納する、管理記憶手段と、
クライアント装置からセッションの前記操作状態を所定の時間ごとに受信する操作状態受信手段と、
前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる操作状態管理手段と、
を備える、セッション管理装置。
【請求項２】
前記操作状態が、前記セッションに関連した情報を入力する画面を表示している操作中状態、前記セッションに関連した情報で前記操作中状態を除いた画面を表示している閲覧状態、および、前記操作中状態および前記閲覧状態を除く画面を表示している非閲覧状態、に分類されており、
前記操作状態管理手段が、前記操作中状態の前記経過時間が前記タイムアウト時間に到達した場合に前記閲覧状態に遷移させ、前記閲覧状態の前記経過時間が前記タイムアウト時間に到達した場合に前記非閲覧状態に遷移させ、前記非閲覧状態の前記経過時間が前記タイムアウト時間に到達した場合に前記セッションを切断させる、請求項１のセッション管理装置。
【請求項３】
前記操作中状態が、画面のスクロール操作中の状態である、請求項２のセッション管理装置。
【請求項４】
前記クライアント装置から前記所定の時間内に前記操作状態を入手できない場合に、直前の前記操作状態が継続していると判断し、直前の前記操作状態の前記経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる、操作状態推定手段、を更に備える、請求項１乃至３のセッション管理装置。
【請求項５】
操作状態ごとのタイムアウト時間を格納し、
クライアント装置からセッションの前記操作状態を所定の時間ごとに受信し、
前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる、方法。
【請求項６】
前記操作状態が、前記セッションに関連した情報を入力する画面を表示している操作中状態、前記セッションに関連した情報で前記操作中状態を除いた画面を表示している閲覧状態、および、前記操作中状態および前記閲覧状態を除く画面を表示している非閲覧状態、に分類されており、
前記操作中状態の前記経過時間が前記タイムアウト時間に到達した場合に前記閲覧状態に遷移させ、前記閲覧状態の前記経過時間が前記タイムアウト時間に到達した場合に前記非閲覧状態に遷移させ、前記非閲覧状態の前記経過時間が前記タイムアウト時間に到達した場合に前記セッションを切断させる、請求項５の方法。
【請求項７】
前記操作中状態が、画面のスクロール操作中の状態である、請求項６の方法。
【請求項８】
前記クライアント装置から前記所定の時間内に前記操作状態を入手できない場合に、
直前の前記操作状態が継続していると判断し、直前の前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる、請求項５乃至７の方法。
【請求項９】
操作状態ごとのタイムアウト時間を格納する処理と、
クライアント装置から前記セッションの操作状態を所定の時間ごとに受信する処理と、
前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる処理と、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セッション管理装置、方法、及び、プログラム、に関する。
【背景技術】
【０００２】
特許文献１には、アプリケーションサーバにおけるセッション管理処理に関して、最終アクセス日時から現在までの経過時間に基づいてセッション破棄を判断する技術が記載されている。
【０００３】
特許文献２には、クライアント端末からサーバ装置に対する前回の操作からの経過時間を基準として、セッションの破棄を決定する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１１２０８８号公報
【特許文献２】特開２００６−１４６２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記文献の技術を用いた場合、サーバ装置に対するアクセスや操作が無い時間の長さが、セッション破棄の判断基準であるため、クライアント装置内でのセッションの操作状態は考慮されておらず、ユーザがクライアント装置を操作しているにも関わらずセッションが切断される場合がある。
【０００６】
特許文献１は、一定時間内にクライアント端末からの操作指示がサーバ端末に記録されているか否かの判定により、セッションのタイムアウト処理を行うことについて記載されているのみである。
【０００７】
特許文献２は、クライアント端末からサーバ装置に対する操作の履歴を用いてセッションの破棄を行うことについて記載されているのみである。
【課題を解決するための手段】
【０００８】
本発明のセッション管理装置は、操作状態ごとのタイムアウト時間を格納する、管理記憶手段と、クライアント装置からセッションの前記操作状態を所定の時間ごとに受信する操作状態受信手段と、前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる操作状態管理手段と、を備える。
【０００９】
本発明の方法は、操作状態ごとのタイムアウト時間を格納し、クライアント装置からセッションの前記操作状態を所定の時間ごとに受信し、前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる。
【００１０】
本発明のコンピュータプログラムは、操作状態ごとのタイムアウト時間を格納する処理と、クライアント装置から前記セッションの操作状態を所定の時間ごとに受信する処理と、前記操作状態の経過時間が当該操作状態の前記タイムアウト時間に到達した場合に、前記セッションを切断させる処理と、をコンピュータに実行させる。
【発明の効果】
【００１１】
本発明によれば、ユーザが操作しているにも関わらずセッションが切断される事態を防ぐことが可能であり、例えば、ユーザＩＤ、パスワードの入力などの再接続に要する手間を省略することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、セッション管理システムの構成の一例を示す。
【図２】図２は、セッションの概念を示す。
【図３】図３は、クライアントアプリケーションの画面遷移の一例を示す。
【図４】図４は、管理記憶部の内容の一例を示す。
【図５】図５は、セッションコンテンツＤＢの内容の一例を示す。
【図６】図６は、セッション管理システムの全体の動作シーケンスの一例を示す。
【図７】図７は、チャット開始部におけるチャット開始処理の動作手順を示すフローチャートである。
【図８】図８は、セッション開始部におけるセッション開始処理の動作手順を示すフローチャートである。
【図９】図９は、操作状態の通知を受け取った後の管理記憶部の内容の一例を示す。
【図１０】図１０は、操作状態管理部における操作状態のタイムアウトによる状態遷移の動作を示すフローチャートである。
【図１１】図１１は、操作状態のタイムアウトによる状態遷移を実施した後の管理記憶部の内容の一例を示す。
【図１２】図１２は、操作状態のタイムアウトによる状態遷移を実施した後の管理記憶部の内容の一例（図１１とは別のケース）を示す。
【図１３】図１３は、メッセージ配送部におけるメッセージ送信処理の動作手順を示すフローチャートである。
【図１４】図１４は、手動セッション切断部における手動セッション切断処理の動作手順を示すフローチャートである。
【図１５】図１５は、自動セッション切断部における自動セッション切断処理の動作手順を示すフローチャートである。
【図１６】図１６は、第二の実施形態に係る、セッション管理システムの構成の一例を示す。
【図１７】図１７は、第二の実施形態に係る、操作状態の推定に基づく、タイムアウトによる遷移の動作を示すフローチャートである。
【図１８】図１８は、第二の実施形態に係る、操作状態の推定に基づく、タイムアウトによる遷移を実施した後の管理記憶部の内容の一例を示す。
【図１９】図１９は、第三の実施形態に係る、セッション管理システムの構成の一例を示す。
【発明を実施するための形態】
【００１３】
発明を実施するための第一の形態について、図面を参照して詳細に説明する。
【００１４】
図１は、セッション管理システム４０の構成の一例を示す。セッション管理システム４０は、少なくとも１台のクライアント装置１０、及び、セッション管理装置２０を包含し、これらの各構成要素は、ネットワーク３０を介して相互に接続される。
【００１５】
セッション管理システム４０は、例えば、クライアント装置（１）１０−Ａ、及び、クライアント装置（２）１０−Ｂの２台のクライアント装置１０を含む。
【００１６】
クライアント装置１０は、操作状態取得部１０１、及び、操作状態送信部１０２を包含する。
【００１７】
操作状態取得部１０１は、クライアント装置１０でのユーザの操作の特徴を、操作状態として取得する。
【００１８】
操作状態送信部１０２は、操作状態取得部１０１により取得した操作状態を、セッション管理装置２０に送信する。
【００１９】
ここで、操作状態取得部１０１、及び、操作状態送信部１０２は、論理回路等のハードウェアで構成される。
【００２０】
また、操作状態取得部１０１、及び、操作状態送信部１０２は、コンピュータであるクライアント装置１０のプロセッサが、図示されないメモリ上のプログラムを実行することで実現されても良い。本実施形態では、クライアント装置１０は、例えば、アンドロイド（Ａｎｄｒｏｉｄ）（登録商標）で動作するスマートフォンである。
【００２１】
なお、クライアント装置１０の台数は１台以上の任意の台数あっても良く、クライアント装置１０は任意のオペレーティングシステム（ＯＳ）が動作する携帯電話、タブレット機、パーソナルコンピュータなどの装置でも良い。
【００２２】
セッション管理装置２０は、チャット実施部２１、及び、セッション管理部２２を包含する。
【００２３】
チャット実施部２１は、チャット開始部２１１、メッセージ配送部２１２、メッセージ取得部２１３、及び、チャット退室部２１４を包含する。
【００２４】
チャット開始部２１１は、クライアント装置１０からのチャット開始要求に基づいて、チャット開始処理を実行する。
【００２５】
メッセージ配送部２１２は、クライアント装置１０からのメッセージ配送要求に基づき、メッセージを配送する。
【００２６】
メッセージ取得部２１３は、クライアント装置１０からのメッセージ取得要求に基づき、セッション管理部２２に格納された過去のメッセージを取得する。
【００２７】
チャット退室部２１４は、クライアント装置１０もしくはセッション管理部２２からのチャット退室要求に基づき、チャットからの退室処理を実行する。
【００２８】
セッション管理部２２は、セッション開始部２２１、セッションアクセス部２２２、操作状態受信部２２３、操作状態管理部２２４、手動セッション切断部２２５、自動セッション切断部２２６、管理記憶部２２７、及び、セッションコンテンツデータベース（以下、ＤＢ）２２８を包含する。
【００２９】
セッション開始部２２１は、チャット実施部２１からのセッション開始要求に基づいて、セッション開始処理を行う。
【００３０】
セッションアクセス部２２２は、確立済みのセッションについて、セッションに接続されたクライアント装置１０の情報の参照、及び、セッションコンテンツの読み書きの機能を有する。
【００３１】
操作状態受信部２２３は、クライアント装置１０から操作状態を受け取り、その内容を管理記憶部２２７に反映させる。
【００３２】
操作状態管理部２２４は、管理記憶部２２７を参照して、各操作状態の経過時間がタイムアウト時間に到達した場合に、操作状態の遷移、または、セッションを切断させる判断を行う。
【００３３】
手動セッション切断部２２５は、クライアント装置１０からの要求に基づき、セッションの切断を行う。
【００３４】
自動セッション切断部２２６は、操作状態管理部２２４からの要求に基づき、確立済みのセッションからクライアント装置１０の切断処理を実行する。
【００３５】
管理記憶部２２７は、セッションの状態、クライアント装置１０の操作状態、各操作状態の経過時間、及び、タイムアウト時間を格納するデータベースである。
【００３６】
セッションコンテンツＤＢ２２８は、セッションに関連付けた情報を格納するデータベースである。
【００３７】
ここで、チャット開始部２１１、メッセージ配送部２１２、メッセージ取得部２１３、チャット退室部２１４、セッション開始部２２１、セッションアクセス部２２２、操作状態受信部２２３、操作状態管理部２２４、手動セッション切断部２２５、及び、自動セッション切断部２２６は、論理回路等のハードウェアで構成される。
【００３８】
管理記憶部２２７、及び、セッションコンテンツＤＢ２２８は、ディスク装置、半導体メモリ、等の記憶装置である。
【００３９】
また、チャット開始部２１１、メッセージ配送部２１２、メッセージ取得部２１３、チャット退室部２１４、セッション開始部２２１、セッションアクセス部２２２、操作状態受信部２２３、操作状態管理部２２４、手動セッション切断部２２５、及び、自動セッション切断部２２６は、コンピュータであるセッション管理装置２０のプロセッサが、図示されないメモリ上のプログラムを実行することで実現されても良い。
【００４０】
また、ネットワーク３０は、イーサネット（Ｅｔｈｅｒｎｅｔ）（登録商標）などの有線、Ｗｉ−Ｆｉ（登録商標）や携帯電話回線などの無線、あるいは、それらの混在のいずれでも良い。
【００４１】
図２は、セッションの概念を示す。図２を用いて、本実施形態におけるセッションの概念を説明する。一般に、セッションとは、複数台の装置の間で行われる一連の操作や通信のことである。
【００４２】
本実施形態では、１つのセッションには１台のセッション管理装置２０（サーバ）と少なくとも１台のクライアント装置１０が同時に参加することが可能であり、セッションに参加しているクライアント装置１０は、セッションに参加している別のクライアント装置１０への同報メッセージ送信、及び、セッションに関連付けられたデータの取得ができる。
【００４３】
各セッションは、固有のセッションＩＤにより識別される。図２の例では、セッションＩＤは８５１である。
【００４４】
なお、セッションの状態は、管理記憶部２２７に格納され、セッションに関連付けられたデータは、セッションコンテンツＤＢ２２８に格納される。
【００４５】
図３は、クライアントアプリケーションの画面遷移の一例を示す。図３を参照して、本実施形態におけるチャットのクライアントアプリケーションについて、画面遷移を説明する。
【００４６】
チャット入室前画面は、チャットルームに入室していない状態を示す画面である。ここで、ユーザがチャットルーム作成を選択すると、チャットルーム作成画面に遷移する。
【００４７】
チャットルーム作成画面は、新規に作成するチャットルームの参加者を選択する画面である。ここで、ユーザがチャット開始を選択すると、チャット画面に遷移する。
【００４８】
チャット画面は、チャット参加者による発言が表示される画面である。ここで、ユーザがメッセージ入力を選択するとメッセージ入力画面に、退室を選択するとチャット退室確認画面に、それぞれ遷移する。また、セッション管理装置２０からのチャット退室通知が到着した場合には、チャットルームから自動退室し、チャット入室前画面に遷移する。
【００４９】
チャット退室確認画面は、チャットルームに入室しており、チャットルームからの退室を確認している状態である。ここで、ユーザがＯＫを選択するとチャットルームを退室して、チャット入室前画面に遷移する。
【００５０】
メッセージ入力画面は、チャットルームに発言するメッセージを入力している状態である。メッセージ入力を完了し、送信を選択するとチャット画面に遷移する。
【００５１】
なお、他のユーザからチャットに招待された場合、すなわち、他のクライアント装置１０のチャットルーム作成画面において、自分のクライアント装置１０が選択された場合には、自動的にチャット画面に遷移する。
【００５２】
また、図３を用いて、操作状態とチャット画面との対応について説明する。操作状態は、クライアント装置１０でユーザがクライアントアプリケーションを操作している状態を示すものであり、例えば、操作中状態、閲覧状態、及び、非閲覧状態、の３種類を定義する。
【００５３】
操作中状態は、セッションに関連した情報を入力する画面を表示している状態である。図３に示した画面遷移では、メッセージ入力画面が操作中状態に相当する。
【００５４】
閲覧状態は、セッションに関連した主要な画面を表示しているが、情報の入力中ではない状態である。図３の画面遷移では、チャット画面、及び、チャット退室確認画面が閲覧状態に相当する。
【００５５】
非閲覧状態は、操作中状態、及び、閲覧状態を除く操作状態であり、図３ではチャット入室前画面、及び、チャットルーム作成画面、が非閲覧状態に相当する。
【００５６】
なお、操作状態は、必ずしも画面の遷移を伴う必要はなく、例えば、チャット画面において、タッチパネルを用いたスクロール操作中の状態を操作状態の一つと定義して運用しても良い。
【００５７】
また、本実施形態では、チャットを対象としたセッションについて操作状態を定義しているが、例えば、ビデオ会議やオンラインゲーム等を対象としたセッションでもよく、これらについて、適宜、操作状態を定義して運用しても良い。
【００５８】
次に、操作状態のタイムアウトと遷移について説明する。各操作状態での経過時間が、予め設定されたタイムアウト時間に到達した場合、操作状態管理部２２４が、各操作状態をタイムアウトにより強制的に他の操作状態に遷移させる判断を行い、クライアント装置１０にタイムアウトによる操作状態の遷移を実行させる。
【００５９】
図３に示すように、操作中状態でタイムアウト時間に到達した場合には、操作状態は閲覧状態に遷移し、閲覧状態でタイムアウト時間に到達した場合には、操作状態は非閲覧状態に遷移する。さらに、非閲覧状態でタイムアウト時間に到達した場合には、自動セッション切断部２２６が当該セッションを切断する。なお、各操作状態でタイムアウト時間に到達した場合、操作状態管理部２２４は、他の操作状態に遷移させることなく、直ちにセッションを切断させても良い。
【００６０】
なお、クライアント装置１０で取得した各操作状態の管理記憶部２２７への登録は、該当するクライアント装置１０がセッションに参加している間、ユーザの操作とは無関係に、一定時間毎に実行する。
【００６１】
図４は、管理記憶部２２７の内容の一例を示す。
【００６２】
図４（ａ）は、セッションの操作状態、及び、各操作状態での経過時間を示す。図４（ａ）において、各行（レコード）は、セッションＩＤ、サーバ名、及び、クライアント名の組により一意に特定される。例えば、図４では、セッションＩＤ８５１には１台のサーバであるセッション管理装置２０（サーバ名ｃｈａｔ）と２台のクライアント装置１０（クライアント名ｃｌｉｅｎｔ１、ｃｌｉｅｎｔ２）が参加しているので、セッションＩＤ８５１については、２つのレコードが存在する。
【００６３】
なお、以降に示す動作例を通して、管理記憶部２２７の内部では、セッション管理装置２０、クライアント装置（１）１０−Ａ、及び、クライアント装置（２）１０−Ｂは、各々、ｃｈａｔ、ｃｌｉｅｎｔ１、及び、ｃｌｉｅｎｔ２として参照される。
【００６４】
管理記憶部２２７は、セッションの状態として、操作状態、操作経過時間、及び、状態推定の３つの状態を記録する。
【００６５】
各クライアント装置１０の操作状態取得部１０１は、セッションに参加している間、一定時間毎に操作状態、及び、操作経過時間を取得し、操作状態送信部１０２が、その結果をセッション管理部２２の操作状態受信部２２３に通知する。
【００６６】
なお、操作経過時間は、ユーザが各操作状態を最後に操作してから経過した時間を表す。また、本実施形態では、状態推定の項は使用しないため、常時、ＯＦＦに設定する。
【００６７】
図４（ｂ）は、各操作状態に対するタイムアウト時間を示す。管理記憶部２２７は、例えば、操作中状態は１２０秒、閲覧状態は９０秒、非閲覧状態は６０秒、をタイムアウト時間として格納する。
【００６８】
一例として、現在の操作状態が操作中状態である場合を想定すると、図４（ｂ）は、操作中状態で１２０秒が経過し、その後、閲覧状態で９０秒が経過し、さらに、非閲覧状態で６０秒が経過した場合には、セッションが切断されることを示す。
【００６９】
他の例として、操作中状態で１２０秒、閲覧状態で９０秒、または、非閲覧状態で６０秒が経過した場合には、直ちに、セッションを切断させても良い。
【００７０】
図５は、セッションコンテンツＤＢ２２８の内容の一例を示す。図５に示すように、本実施形態におけるセッションコンテンツＤＢ２２８は、セッションＩＤとキーの組に対して値を対応付けた、一種のキーバリューストア（ｋｅｙ−ｖａｌｕｅ  ｓｔｏｒｅ）である。ただし、必ずしも、このような構造を取る必要はなく、例えば、ファイルシステム上にセッションＩＤ毎にサブディレクトリを分けた構造等でも良い。
【００７１】
図６は、セッション管理システム４０の全体の動作シーケンスの一例を示す。図６のシーケンス図を用いて、本実施形態における全体の動作の流れを説明する。図６は、クライアント装置（１）１０−Ａ、及び、クライアント装置（２）１０−Ｂとセッション管理装置２０（サーバ）との間に新規にセッションを作成し、メッセージ送受信を行った後、セッションを終了するまでの一連の動作の例を示している。
【００７２】
なお、以下の（１）乃至（１４）の説明は、図６に記載の（１）乃至（１４）の各ステップに対応しているものとする。
【００７３】
（１）セッションは、クライアント装置１０のユーザが、チャット開始の操作を選択し、チャット参加者を選択することによって開始する。この操作を行うと、クライアント装置（１）１０−Ａは、セッション管理装置２０に対して、チャット開始要求を送信する。
【００７４】
（２）チャット実施部２１は、チャット開始要求を受け取ると、チャット開始処理を実行する。チャット実施部２１は、セッション管理部２２に対して、クライアント装置（１）１０−Ａとクライアント装置（２）１０−Ｂとを参加者とするセッション開始要求を送信する。
【００７５】
（３）チャット実施部２１は、クライアント装置（２）１０−Ｂに対して、チャット参加通知を送信する。クライアント装置（２）１０−Ｂから見ると、クライアント装置（１）１０−Ａからチャットに招待され、チャット画面に遷移する動作に相当する。
【００７６】
（４）クライアント装置（１）１０−Ａは、セッション管理部２２に対して、クライアント装置（１）１０−Ａについての操作状態を通知する。
【００７７】
（５）クライアント装置（２）１０−Ｂは、セッション管理部２２に対して、クライアント装置（２）１０−Ｂについての操作状態を通知する。
【００７８】
（６）クライアント装置（１）１０−Ａのユーザは、メッセージの入力および送信操作を行う。これをトリガーとして、クライアント装置（１）１０−Ａは、チャット実施部２１に対して、セッション参加者へのメッセージ送信要求を送信する。
【００７９】
（７）チャット実施部２１は、セッション管理部２２からセッション参加者の情報を参照するとともに、セッションコンテンツＤＢ２２８へのメッセージの格納を要求する。一方、セッション管理部２２は、セッションＩＤと、格納するデータを受け取り、セッションコンテンツＤＢ２２８にその内容を格納する。
【００８０】
（８）チャット実施部２１は、（７）でのセッション参加者の参照結果に基づき、（６）でクライアント装置（１）１０−Ａから受信したメッセージをクライアント装置（２）１０−Ｂに配送する。
【００８１】
（９）クライアント装置（１）１０−Ａのユーザは、クライアント装置（１）１０−Ａからチャット実施部２１に対して、チャットルーム上の過去の発言の取得を要求する。
【００８２】
（１０）チャット実施部２１は、セッション管理部２２に対して、セッションコンテンツとして格納された過去の発言の取得を要求し、その結果をクライアント装置（１）１０−Ａに渡す。また、セッション管理部２２は、セッションコンテンツＤＢ２２８から該当するセッションコンテンツの内容を取り出し、チャット実施部２１に返却する。
【００８３】
（１１）クライアント装置（１）１０−Ａのユーザは、チャット退室操作を行う。これを受けて、クライアント装置（１）１０−Ａは、チャット実施部２１に対して、チャットルームからの退室要求を送信する。
【００８４】
（１２）チャット実施部２１は、セッション管理部２２に対して、クライアント装置（１）１０−Ａについてのセッション切断要求を送信する。
【００８５】
（１３）セッション管理部２２は、チャット実施部２１に対して、クライアント装置（２）１０−Ｂについてのセッション切断通知を送信する。
【００８６】
（１４）チャット実施部２１は、クライアント装置（２）１０−Ｂに対して、クライアント装置（２）１０−Ｂのセッション切断を通知する。これは、図３において、チャット画面から自動退室する遷移に相当する。
【００８７】
図７は、チャット開始部２１１におけるチャット開始処理の動作手順を示すフローチャートである。図７のフローチャートを用いて、チャット開始部２１１におけるチャット開始処理の動作手順を説明する。
【００８８】
まず、チャット開始部２１１は、クライアント装置１０からチャット開始要求を受信する。要求のパラメータは、チャットルームに参加するクライアント装置１０の名前のリストを含む（Ｓ１１）。
【００８９】
次に、チャット開始部２１１は、セッション開始部２２１に対して、セッション作成要求を送信する。要求のパラメータは、セッション管理装置２０（サーバ）の名前とクライアント装置１０の名前のリストを含む（Ｓ１２）。
【００９０】
次に、チャット開始部２１１は、セッション開始部２２１から、（Ｓ１２）のセッション作成要求への応答を受信する。この応答は、新規に作成されたセッションのＩＤを含む（Ｓ１３）。
【００９１】
さらに、（Ｓ１１）のチャット開始要求を送信したクライアント装置１０に対して、チャット開始部２１１が、応答を送信する。応答は、（Ｓ１３）で受け取ったセッションＩＤを含む（Ｓ１４）。
【００９２】
新規チャットルームに参加するクライアント装置１０のうち、（Ｓ１１）のチャット開始要求の送信元以外の各々に対して、チャット開始部２１１が、チャット参加通知を送信する。この通知は、チャットに参加するクライアント装置１０の名前のリスト、及び、（Ｓ１３）で受け取ったセッションＩＤを含む（Ｓ１５）。
【００９３】
図８は、セッション開始部２２１におけるセッション開始処理の動作手順を示すフローチャートである。
【００９４】
図８のフローチャートを用いて、セッション開始部２２１におけるセッション開始処理の動作手順を説明する。
【００９５】
セッション開始部２２１は、チャット実施部２１のチャット開始部２１１からセッション開始要求を受け取ると、図８のフローチャートに示すセッション開始処理を実行する。
【００９６】
セッション開始部２２１は、チャット開始部２１１からセッション開始要求を受信する。要求のパラメータは、サーバ名とクライアント名のリストを含む（Ｓ２１）。
【００９７】
次に、セッション開始部２２１は、新規セッションを識別するためのセッションＩＤを生成する。セッションＩＤは、例えば、８５１のように３桁の数字を割り当てて生成する（Ｓ２２）。
【００９８】
次に、セッション開始部２２１は、管理記憶部２２７に、新規セッションについてのレコードを追加する。新規レコードの情報は、（Ｓ２２）で生成したセッションＩＤ、及び、（Ｓ２１）で受け取ったクライアント名およびサーバ名を含む（Ｓ２３）。
【００９９】
さらに、セッション開始部２２１は、（Ｓ２２）で生成したセッションＩＤに対応するセッションコンテンツＤＢ２２８の領域を初期化する（Ｓ２４）。
【０１００】
また、セッション開始部２２１は、チャット開始部２１１に対して応答を送信する。応答は、（Ｓ２２）で生成したセッションＩＤを含む（Ｓ２５）。
【０１０１】
図９は、操作状態の通知を受け取った後の管理記憶部２２７の内容の一例を示す。図９を用いて、クライアント装置１０側で取得した操作状態を管理記憶部２２７に登録する動作について説明する。
【０１０２】
クライアント装置１０の操作状態取得部１０１は、セッションに参加している間に、一定時間毎に操作状態を取得する。操作状態送信部１０２は、操作状態取得部１０１が取得した結果をセッション管理部２２の操作状態受信部２２３に通知する。通知の内容は、クライアント名、操作状態、及び、操作経過時間を含む。
【０１０３】
操作状態受信部２２３は、クライアント装置１０から受信した通知の内容を、管理記憶部２２７に反映する。
【０１０４】
図９は、ｃｌｉｅｎｔ１、及び、ｃｌｉｅｎｔ２が参加したセッションの管理記憶部２２７の内容を示す。
【０１０５】
図９（ａ）は、ｃｌｉｅｎｔ１、及び、ｃｌｉｅｎｔ２の閲覧状態が開始した時点で、操作経過時間は共に０秒である。
【０１０６】
図９（ｂ）は、図９（ａ）から３０秒後の状態を示し、時間の経過とともに、ｃｌｉｅｎｔ１では操作状態が閲覧状態から操作中状態に変わり、ｃｌｉｅｎｔ２では同じ操作状態の閲覧状態のまま操作経過時間が加算されたことを示す。
【０１０７】
図１０は、操作状態管理部２２４における操作状態のタイムアウトによる状態遷移の動作を示すフローチャートである。図１０のフローチャートを参照して、操作状態のタイムアウトに基づく操作状態の遷移の動作手順を説明する。
【０１０８】
セッション管理部２２の操作状態管理部２２４は、セッション情報に該当するレコード（以下、対象レコード）について、状態推定がＯＦＦであることを確認する（Ｓ３１）。
【０１０９】
次に、操作状態管理部２２４は、対象レコードの操作経過時間に前回の操作通知受信からの経過時間を加算し、値を書き換える（Ｓ３２）。
【０１１０】
（Ｓ３２）の結果、操作経過時間の値が閾値に達した場合には（Ｓ３３でＹ）、（Ｓ３４）に進む。そうでない場合には（Ｓ３３でＮ）、処理を終了する（Ｓ３３）。
【０１１１】
また、対象レコードの操作状態の値が非閲覧状態である場合には（Ｓ３４でＹ）、処理を終了する。それ以外の場合は（Ｓ３４でＮ）、（Ｓ３５）に進む（Ｓ３４）。
【０１１２】
操作状態管理部２２４は、対象レコードの操作状態をタイムアウトにより遷移させ、操作中状態は閲覧状態に、閲覧状態は非閲覧状態に、書き換える（Ｓ３５）。
【０１１３】
また、操作状態管理部２２４は、対象レコードの操作経過時間の値を０秒にリセットする（Ｓ３６）。
【０１１４】
なお、（Ｓ３３）の閾値は、例えば、操作中状態は１２０秒、閲覧状態は９０秒とし、以下の説明では、これらの値を使用する。
【０１１５】
図１１は、操作状態のタイムアウトによる状態遷移を実施した後の管理記憶部２２７の内容の一例を示す。図１１を参照して、操作状態のタイムアウトによる遷移が発生した後の管理記憶部２２７の内容を説明する。
【０１１６】
図１１（ａ）は、一例として、ある時点での管理記憶部２２７の内容を示し、ｃｌｉｅｎｔ２が操作中状態で９５秒を経過した段階であることを示す。
【０１１７】
次に、図１１（ｂ）は、図１１（ａ）から３０秒後の状態を示し、ｃｌｉｅｎｔ２における操作中状態が、タイムアウト時間の閾値である１２０秒を超過したことを示す。ここで、図１０の（Ｓ３５）に従い、操作状態を操作中状態から閲覧状態に書き換え、図１０の（Ｓ３６）に従い、操作経過時間を０秒にリセットする。
【０１１８】
なお、この時点で、セッション管理装置２０は、クライアント装置１０に対して、タイムアウトの通知を送信する。
【０１１９】
さらに、図１１（ｃ）は、図１１（ｂ）から３０秒後の状態を表し、ｃｌｉｅｎｔ２が、閲覧状態に遷移し、経過時間が加算されている状態を示す。
【０１２０】
図１２は、操作状態のタイムアウトによる状態遷移を実施した後の管理記憶部２２７の内容の一例（図１１とは別のケース）を示す。
【０１２１】
図１２（ａ）は、ｃｌｉｅｎｔ１、ｃｌｉｅｎｔ２共に閲覧状態であることを示す。
【０１２２】
次に、図１２（ｂ）は、図１２（ａ）から３０秒後の状態を示し、ｃｌｉｅｎｔ２の閲覧状態の経過時間が閾値の９０秒を超過したことを示す。ここで、図１１と同様に、操作状態を閲覧状態から非閲覧状態に書き換え、操作経過時間を０秒にリセットする。
【０１２３】
さらに、図１２（ｃ）は、図１２（ｂ）から３０秒後の状態を示す。ｃｌｉｅｎｔ１は閲覧状態のまま時間が経過し、また、ｃｌｉｅｎｔ２は非閲覧状態に遷移した状態であることを示す。
【０１２４】
図１３は、メッセージ配送部２１２におけるメッセージ送信処理の動作手順を示すフローチャートである。図１３のフローチャートを用いて、メッセージ配送部２１２におけるメッセージ送信処理の動作手順を説明する。
【０１２５】
なお、セッション管理システム４０は、一旦セッションを確立した後で、セッションを用いて、クライアント装置１０間、及び、クライアント装置１０とセッション管理装置２０の間で通信処理を行うが、ここでの通信処理は、クライアント装置１０間の同報メッセージ送信、及び、セッションコンテンツの読み書きを含む。
【０１２６】
まず、メッセージ取得部２１３は、クライアント装置１０から送られたメッセージ送信要求を受信する。この要求は、セッションＩＤ、要求送信元のクライアント装置１０の名前、及び、メッセージの各パラメータを含む（Ｓ４１）。
【０１２７】
次に、メッセージ配送部２１２は、セッションアクセス部２２２にセッションコンテンツ格納要求を送信する。この要求のパラメータは、（Ｓ４１）で受信したセッションＩＤ、クライアント名、及び、メッセージを含む（Ｓ４２）。
【０１２８】
次に、メッセージ配送部２１２は、セッションアクセス部２２２にセッション情報の検索要求を送信し、管理記憶部２２７の中から、（Ｓ４１）で受け取ったセッションＩＤに対応するクライアント名のリストを取得する（Ｓ４３）。
【０１２９】
さらに、メッセージ配送部２１２は、（Ｓ４３）の検索結果であるクライアント装置１０の各々（ただし送信元は除く）に対して、（Ｓ４１）で受け取ったメッセージを送信する（Ｓ４４）。
【０１３０】
ここで、（Ｓ４１）において、ｃｌｉｅｎｔ１がメッセージ送信要求を送信し、管理記憶部２２７内のセッション情報の内容が図４の通りであるとすると、（Ｓ４３）ではｃｌｉｅｎｔ１、ｃｌｉｅｎｔ２の２台のクライアント装置１０が検索結果となる。
【０１３１】
したがって、（Ｓ４４）では、メッセージ配送部２１２は、メッセージ送信要求の送信元であるｃｌｉｅｎｔ１を除いたクライアント装置１０、すなわちｃｌｉｅｎｔ２にメッセージを配送する。
【０１３２】
なお、（Ｓ４２）において、セッションコンテンツＤＢ２２８の構造として図５に示すキーバリューストアを仮定すると、セッションコンテンツ格納要求のパラメータは、例えば、セッションＩＤに加えて、キー：「ｍｅｓｓａｇｅ  ａｒｃｈｉｖｅ」、値：（クライアント名、メッセージ）、（クライアント名、メッセージ）、のような形式になる。
【０１３３】
図１４は、手動セッション切断部２２５における手動セッション切断処理の動作手順を示すフローチャートである。図１４のフローチャートを用いて、手動セッション切断部２２５におけるセッション切断処理の動作手順を説明する。
【０１３４】
なお、手動セッション切断は、クライアント装置１０からの要求に基づくセッション切断処理である。クライアント装置１０は、セッション管理装置２０に対してチャット退室要求を送信する。この要求のパラメータは、要求送信元のクライアント装置１０の名前、及び、セッションＩＤを含む。
【０１３５】
まず、手動セッション切断部２２５は、クライアント装置１０からのセッション切断要求をチャット実施部２１から受信する。要求のパラメータは、クライアント名およびセッションＩＤを含む（Ｓ５１）。
【０１３６】
次に、手動セッション切断部２２５は、管理記憶部２２７から、（Ｓ５１）で受信したクライアント名、及び、セッションＩＤの条件に一致するレコードを削除する（Ｓ５２）。
【０１３７】
次に、手動セッション切断部２２５は、（Ｓ５１）で受信したセッションＩＤに一致する他のレコードが管理記憶部２２７に存在するかどうか、すなわち離脱対象のセッションに他のクライアント装置１０が接続しているかどうかを調べる。もし、ある場合には（Ｓ５３でＹ）、処理を終了し、ない場合には（Ｓ５３でＮ）、（Ｓ５４）に進む（Ｓ５３）。
【０１３８】
（Ｓ５３でＮ）の場合、手動セッション切断部２２５は、セッションコンテンツＤＢ２２８から、（Ｓ５１）で受け取ったセッションＩＤに対応するデータを削除し、処理を終了する（Ｓ５４）。
【０１３９】
図１５は、自動セッション切断部２２６における自動セッション切断処理の動作手順を示すフローチャートである。図１５のフローチャートを用いて、自動セッション切断部２２６における自動セッション切断処理の動作手順を説明する。
【０１４０】
なお、自動セッション切断処理は、セッションに参加しているクライアント装置１０のうち、非閲覧状態のものについて、自動セッション切断部２２６が強制的にセッションから切断する処理のことである。本実施形態では、非閲覧状態かつ操作経過時間が６０秒に達したクライアント装置１０を自動セッション切断処理の対象とする。
【０１４１】
まず、自動セッション切断部２２６は、管理記憶部２２７からレコードの情報を取得する（Ｓ６１）。
【０１４２】
次に、自動セッション切断部２２６は、（Ｓ６１）で取得したレコードについて、セッション切断条件を満たしているかどうかを確かめる。本実施例におけるセッション切断条件は、当該レコードの操作状態が非閲覧状態で、かつ操作経過時間が６０秒以上であることである。この条件を満たしている場合には（Ｓ６２でＹ）、（Ｓ６３）に進み、満たしていない場合は（Ｓ６２でＮ）、処理を終了する（Ｓ６２）。
【０１４３】
自動セッション切断部２２６は、管理記憶部２２７から、（Ｓ６１）で取得したレコードを削除する（Ｓ６３）。
【０１４４】
さらに、自動セッション切断部２２６は、管理記憶部２２７に、（Ｓ６１）で取得したレコードのセッションＩＤに一致するレコードが残っているかどうかを調べる。残っている場合には（Ｓ６４でＹ）、（Ｓ６６）に進み、残っていない場合には（Ｓ６４でＮ）、（Ｓ６５）に進む（Ｓ６４）。
【０１４５】
また、自動セッション切断部２２６は、セッションコンテンツＤＢ２２８から、切断対象のセッションＩＤに対応するデータを削除する（Ｓ６５）。
【０１４６】
この後、自動セッション切断部２２６は、セッション切断対象のクライアント装置１０に対して、セッション切断通知を送信する。この通知は、（Ｓ６１）で取得したレコードのセッションＩＤを含む（Ｓ６６）。
【０１４７】
なお、（Ｓ６２）に示したセッション切断条件はあくまで一例であり、条件に用いる操作状態あるいは操作経過時間の値を変えても本発明の本質は失われない。また、自動セッション切断の処理は、操作状態管理部２２４が行ってもよい。
【０１４８】
ところで、本実施形態では、チャット実施部２１とセッション管理部２２は、同一のセッション管理装置２０に包含される構成としたが、ネットワーク３０を介した同一のセッションに接続していれば、別々の装置に収納されている構成としても良い。
【０１４９】
本実施形態に係るセッション管理システム４０は、以下に記載するような効果を奏する。
【０１５０】
ユーザが操作しているにも関わらずセッションが切断される事態を防ぐことが可能である。
【０１５１】
その理由は、クライアント装置１０の操作状態を定期的に取得するからである。そして、操作状態に応じたタイムアウト時間を用いるからである。
＜第二の実施形態＞
図１６は、第二の実施形態に係る、セッション管理システム４０の構成の一例を示す。本実施形態では、第一の実施形態の構成に、操作状態推定部２２９を追加する。
【０１５２】
操作状態推定部２２９は、クライアント装置１０からの操作状態通知を一定時間内に入手できない場合、管理記憶部２２７を参照して、直前に登録された各操作状態が継続していると仮定し（以下、これを推定とする）、操作状態がタイムアウト時間に到達した場合には、当該操作状態をタイムアウトさせる。
【０１５３】
ここで、操作状態推定部２２５は、論理回路等のハードウェアで構成される。また、操作状態推定部２２５は、コンピュータであるセッション管理装置２０のプロセッサが、図示されないメモリ上のプログラムを実行することで実現されても良い。
【０１５４】
図１７は、第二の実施形態に係る、操作状態の推定に基づくタイムアウトによる遷移の動作を示すフローチャートである。図１７のフローチャートを参照して、操作状態の推定に基づくタイムアウトによる遷移の動作手順を示す。
【０１５５】
通常は、セッションに参加しているクライアント装置１０は、一定時間毎に操作状態を取得し、操作状態受信部２２３にその結果を通知する。しかし、クライアント装置１０とセッション管理装置２０の間の通信網が一時的に利用不可能になると、操作状態受信部２２３は、操作状態の情報を入手できなくなる。
【０１５６】
このため、操作状態推定部２２９は、管理記憶部２２７に含まれるセッションＩＤとクライアント装置１０の組の各々について、一定時間内に操作状態通知が届かない場合、以下の手順で操作状態を推定し、その結果をセッション情報に反映させる。
【０１５７】
ここで操作状態推定部２２９は、管理記憶部２２７のうち、一定時間内に操作状態通知が届かないレコードを、推定対象レコードとする。
【０１５８】
まず、通信障害が発生したため、操作状態推定部２２９は、セッション情報の該当するレコード（以下、推定対象レコード）について、状態推定をＯＮに変更する（Ｓ７１）。
【０１５９】
次に、操作状態推定部２２９は、推定対象レコードの操作経過時間に、前回の操作通知受信からの推定経過時間を加算することにより、経過時間の値を書き換える（Ｓ７２）。
【０１６０】
（Ｓ７２）の結果、操作経過時間の値が閾値に達した場合には（Ｓ７３でＹ）、（Ｓ７４）に進む。そうでない場合には（Ｓ７３でＮ）、（Ｓ７７）に進む。（Ｓ７３）。
【０１６１】
なお、（Ｓ７３）の閾値は、管理記憶部２２７に格納された図１０と同じ値（例えば、操作中状態は１２０秒、閲覧状態は９０秒）を用い、以下の説明では、これらの値を使用する。
【０１６２】
次に、推定対象レコードの操作状態の値が非閲覧状態である場合には（Ｓ７４でＹ）、（Ｓ７７）に進む。それ以外の場合は（Ｓ７４でＮ）、（Ｓ７５）に進む（Ｓ７４）。
【０１６３】
次に、操作状態推定部２２９は、対象レコードの操作状態をタイムアウトし遷移させ、操作中状態は閲覧状態に、閲覧状態は非閲覧状態に、書き換える（Ｓ７５）。
【０１６４】
また、操作状態推定部２２９は、推定対象レコードの操作経過時間の値を０秒にリセットする（Ｓ７６）。
【０１６５】
通信が復旧した時点で、操作状態推定部２２５は、状態推定をＯＦＦに変更する（Ｓ７７）。
【０１６６】
図１８は、第二の実施形態に係る、操作状態の推定に基づくタイムアウトによる遷移を実施した後の管理記憶部２２７の内容の一例を示す。図１８を用いて、操作中状態で通信障害が発生した場合の推定処理の動作を説明する。
【０１６７】
図１８（ａ）は、ある時点での管理記憶部２２７の内容の一例を示す。ｃｌｉｅｎｔ１、及び、ｃｌｉｅｎｔ２は、各々、図に示す操作状態であると仮定する。
【０１６８】
次に、図１８（ｂ）は、図１８（ａ）の後、例えば、ｃｌｉｅｎｔ２が操作中状態で操作経過時間１００秒となった時点で通信障害がｃｌｉｅｎｔ２に発生し、その状態のまま時間が経過した場合を示す。
【０１６９】
操作状態推定部２２９は、（Ｓ７１）に従い、ｃｌｉｅｎｔ２の状態推定の値をＯＮに書き換える。
【０１７０】
また、通信障害のため、ｃｌｉｅｎｔ２から操作状態を取得することはできないが、図に示すように、操作状態推定部２２９は、ｃｌｉｅｎｔ２が操作中状態で閾値の１２０秒に到達したことを推定する。
【０１７１】
ここで、（Ｓ７５）に従い、操作状態を操作中状態から閲覧状態に書き換え、（Ｓ７６）に従い、操作経過時間をリセットする。
【０１７２】
この後、図１８（ｂ）から図１８（ｃ）に到達する間に、通信障害が復旧したものと仮定する。これに伴い、ｃｌｉｅｎｔ２の状態推定をＯＦＦに変更し、クライアント装置１０で取得した情報に基づき操作状態を更新する状態に戻す。
【０１７３】
本実施形態に係るセッション管理システム４０は、以下に記載するような効果を奏する。
【０１７４】
通信障害等が発生した場合でも、通常の通信状態と同様にセッションのタイムアウトを決定できる。
【０１７５】
その理由は、クライアント端末１０の直近の操作状態および操作経過時間を用いて、クライアント端末１０の操作状態を推定するからである。
＜第三の実施形態＞
図１９は、第三の実施形態に係る、セッション管理システム４０の構成の一例を示す。本実施形態のセッション管理システム４０は、クライアント装置１０、及び、セッション管理装置２０を包含する。
【０１７６】
クライアント装置１０は、操作状態取得部１０１を包含する。セッション管理装置２０は、管理記憶部２２７、及び、操作状態管理部２２４を包含する。
【０１７７】
操作状態取得部１０１は、セッションの操作状態を分類して定期的に取得する。
【０１７８】
管理記憶部２２７は、操作状態の経過時間、及び、予め設定した操作状態のタイムアウト時間を格納する。
【０１７９】
操作状態管理部２２４は、操作状態の経過時間がタイムアウト時間に到達した場合に、操作状態をタイムアウトし遷移させる。
【０１８０】
本実施形態に係るセッション管理システム４０は、以下に記載するような効果を奏する。
【０１８１】
ユーザが操作しているにも関わらずセッションが切断される事態を防ぐことが可能である。
【０１８２】
その理由は、クライアント装置１０の操作状態を定期的に取得するからである。そして、操作状態に応じたタイムアウト時間を用いるからである。
【０１８３】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１８４】
１０    クライアント装置
２０    セッション管理装置
２１    チャット実施部
２１１    チャット開始部
２１２    メッセージ配送部
２１３    メッセージ取得部
２１４    チャット退室部
２２    セッション管理部
２２１    セッション開始部
２２２    セッションアクセス部
２２３    操作状態受信部
２２４    操作状態管理部
２２５    手動セッション切断部
２２６    自動セッション切断部
２２７    管理記憶部
２２８    セッションコンテンツＤＢ
２２９    操作状態推定部
３０    ネットワーク
４０    セッション管理システム
【図１】
2014010747.tif 000003
【図２】
2014010747.tif 000004
【図３】
2014010747.tif 000005
【図４】
2014010747.tif 000006
【図５】
2014010747.tif 000007
【図６】
2014010747.tif 000008
【図７】
2014010747.tif 000009
【図８】
2014010747.tif 000010
【図９】
2014010747.tif 000011
【図１０】
2014010747.tif 000012
【図１１】
2014010747.tif 000013
【図１２】
2014010747.tif 000014
【図１３】
2014010747.tif 000015
【図１４】
2014010747.tif 000016
【図１５】
2014010747.tif 000017
【図１６】
2014010747.tif 000018
【図１７】
2014010747.tif 000019
【図１８】
2014010747.tif 000020
【図１９】
2014010747.tif 000021