以下、本発明の一実施形態について、図面を参照して説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態によるチャットシステム1の構成を示す概略ブロック図である。チャットシステム1は、複数のユーザ端末100−N(Nは正の整数。ユーザ端末100−1、ユーザ端末100−2、ユーザ端末100−3、・・・)と、サーバ装置200とのコンピュータ装置を備えており、これらのコンピュータ装置はネットワーク5を介して接続されている。ここで、複数のユーザ端末100−Nは同様の構成であるので、特に区別しない場合には、「−1」、「−2」等の記載を省略してユーザ端末100として説明する。ここでは3台のユーザ端末100を明示して説明するが、チャットシステム1は、2台又は4台以上の任意の台数のユーザ端末100を備えていてもよい。なお、ネットワーク5は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、専用回線、またはこれらの組み合わせによって構成される情報通信ネットワークである。
チャットシステム1は、チャットを行うために複数のユーザが登録されたグループ(即ち、グループチャットを行うためのグループ)内において、複数のユーザのユーザ端末100間でメッセージを送受信することにより、そのグループ内のユーザ間に限定したコミュニケーションを支援する。チャットシステム1としては、例えば、チャットアプリケーションによりグループ内の複数のユーザのユーザ端末100間で日時情報が対応付けられたメッセージを送受信して日時情報に基づいて時系列に並べて表示するコンピュータシステムが適用できる。本実施形態では、チャットアプリケーションにより送受信された複数のメッセージをユーザ端末100が表示する例を説明する。ここでは、ユーザ端末100−1のユーザを識別するユーザID(Identifier)をユーザAとし、ユーザ端末100−2のユーザを識別するユーザIDをユーザBとし、ユーザ端末100−3のユーザを識別するユーザIDをユーザCとして説明する。なお、ユーザAと、ユーザBと、ユーザCと、がグループチャットを行うための同じグループに登録されているものとする。
まず、チャットにおけるメッセージの送受信処理の概要を説明する。グループ内の複数のユーザ間でチャットを行う場合、ユーザ端末100(自装置)は、自身のユーザである自ユーザ(第1ユーザ)からの操作に応じて、他のユーザ端末100に送信したメッセージと、相手側のユーザである他ユーザ(第2ユーザ)のユーザ端末100(他装置)から送信されたメッセージとを記憶する。ユーザ端末100は、記憶した複数のメッセージを、そのメッセージの送信日時または受信日時に基づいて時系列に並べた画面情報を生成し、ユーザが一覧できるように表示する。
つまり、グループには、ユーザ端末100(自装置)を利用する自ユーザ(第1ユーザ)と、ユーザ端末100(他装置)を利用する一または複数の他ユーザ(第2ユーザ)とが登録されている。そして、ユーザ端末100(自装置)は、このグループにおいて、自ユーザ(第1ユーザ)の操作に応じてユーザ端末100(自装置)から送信するメッセージと、他ユーザ(第2ユーザ)の操作に応じてユーザ端末100(他装置)から送信されたメッセージと、を時系列に表示する。
図2は、チャットシステム1におけるメッセージの送受信の基本的な動作の一例を示すフローチャートである。この図2では、ユーザBからの操作に応じて、ユーザ端末100−2が送信したメッセージMを、ユーザAのユーザ端末100−1とユーザCのユーザ端末100−3とが受信する処理の例を示している。
まず、ユーザ端末100−2は、ユーザBからの操作に応じて入力された(作成された)メッセージMを、サーバ装置200に送信する(ステップS110)。ここで、送信したメッセージMには、ユーザIDと、グループIDとが対応付けられている。ここで、グループIDは、グループを一意に識別する情報であって、このメッセージMの宛先を示す情報である。また、ユーザ端末100−2は、送信したメッセージMを記憶するとともにメッセージ画面に表示する(ステップS120)。
次に、サーバ装置200は、ユーザ端末100−2からメッセージMを、ネットワーク5を介して受信したときの受信時間をユーザ端末100−2へ受信完了通知と共に返信し、この受信時間をメッセージMがユーザ端末100−2から送信された日時情報とする。受信完了通知を受信したユーザ端末100−2は、当該受信完了通知に含まれる日時情報を取得してメッセージMと対応付ける。
続いて、サーバ装置200は、受信したメッセージMを一時的に記憶する(ステップS130)。続いて、サーバ装置200は、受信して記憶したメッセージMを、グループIDに基づいて、グループに登録されているユーザのユーザ端末100(ユーザAのユーザ端末100−1及びユーザCのユーザ端末100−3)に対して送信する(ステップS140)。次に、ユーザ端末100−1は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信する(ステップS150)。また、ユーザ端末100−3は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信する(ステップS170)。それぞれで受信したメッセージMには、日時情報(サーバ装置での受信時間)と、ユーザID(ユーザB)と、グループIDとが対応付けられている。
ここで、サーバ装置200は、ユーザ端末100−2から受信したメッセージMを、ユーザ端末100−1からの要求に応じてユーザ端末100−1に送信するとともに、ユーザ端末100−3からの要求に応じてユーザ端末100−3に送信する。即ち、サーバ装置200は、各ユーザ端末100からの要求に応じて、それぞれのユーザ端末100に対してメッセージを送信する。
具体的には、サーバ装置200は、ユーザ端末100からの要求に応じて、要求のあったユーザ端末100に対して送信していない未送信のメッセージがある場合に、当該ユーザ端末100に対して、その未送信のメッセージを送信する。また、サーバ装置200は、ユーザ端末100からの要求に応じて、要求のあったユーザ端末100に対して未送信のメッセージがない場合には、当該ユーザ端末100に対しての応答を保留して、未送信のメッセージが生じた(何れかのユーザ端末100からメッセージを受信した)タイミングで、そのユーザ端末100に対して未送信のメッセージを送信する。なお、ユーザ端末100は、サーバ装置200からメッセージを受信したことに応じて、次のサーバ装置200に対するメッセージの要求を実行する。
図3は、ユーザ端末100がサーバ装置200からメッセージを受信するタイミングの一例を説明する図である。ユーザ端末100は、サーバ装置200からメッセージを受信すると(時刻t15)、時間ta経過後に、サーバ装置200に対してメッセージを要求するメッセージ要求信号を送信する(時刻t21)。なお、時間taは、サーバ装置200に対してメッセージ要求信号を送信するタイミングとして予め設定された時間である。ここで、メッセージ要求信号には、ユーザ端末100を利用するユーザIDが対応付けられている。サーバ装置200は、ユーザ端末100からメッセージ要求信号を受信すると(時刻t22)、対応付けられているユーザIDに対して送信するメッセージが無い場合には応答を保留し、送信するメッセージを受信した(時刻t23)後に、受信したメッセージをユーザ端末100に対して送信する(時刻t24)。続いて、ユーザ端末100は、サーバ装置200から送信されたメッセージを受信すると(時刻t25)、時間ta経過後に、サーバ装置200に対してメッセージを要求するメッセージ要求信号を送信する(時刻t26)。そして、サーバ装置200は、ユーザ端末100からメッセージ要求信号を受信すると(時刻t27)、送信するメッセージを受信した(時刻t28)後に、メッセージをユーザ端末100に対して送信する(時刻t29)。
つまり、ユーザ端末100は、メッセージを受信する毎にサーバ装置200に対してメッセージを要求する。一方、サーバ装置200は、ユーザ端末100からの要求に応じて、ユーザ端末100に未送信のメッセージが無い場合には応答を保留し、未送信のメッセージを受信したタイミングでその受信したメッセージをユーザ端末100に対して送信する。これにより、チャットシステム1においては、各ユーザ端末100間のメッセージの送受信が、メッセージの送信タイミングに応じて受信できるように即時性の高い処理が行われる。すなわち、チャットシステム1においては、各ユーザ端末100間のメッセージの送受信が擬似的にリアルタイムに行われる。
このように、チャットシステム1において、ユーザ端末100は、サーバ装置200に対してメッセージを要求するとともに、サーバ装置200においてユーザ端末100に送信するメッセージが生じたタイミングに応じてサーバ装置200から送信されたメッセージを当該要求に対応して受信する。即ち、自ユーザのユーザ端末100は、他ユーザのユーザ端末100から送信されるメッセージを要求するとともに、他ユーザのユーザ端末100からメッセージが送信されたタイミングに応じて、当該送信されたメッセージを当該要求に対応して受信する。なお、以下の記述においては、ユーザ端末100からサーバ装置200に対してメッセージを要求することは省略し、単に、サーバ装置200がメッセージをユーザ端末100に送信する、または、ユーザ端末100がサーバ装置200からメッセージを受信する、として記述とする。
図2に戻り、ユーザ端末100−1は、受信したメッセージMを記憶するとともに、対応付けられている日時情報に基づいてメッセージMを時系列に並べてメッセージ画面に表示する(ステップS160)。また、ユーザ端末100−3は、受信したメッセージMを記憶するとともに、対応付けられている日時情報に応じてメッセージMを時系列に並べてメッセージ画面に表示する(ステップS180)。このとき、ユーザ端末100は、メッセージを一画面に表示しきれない場合には、そのメッセージを時系列に並べたうちの一部を表示し、メッセージのスクロール制御を行う。ここで、ユーザ端末100−1及びユーザ端末100−3は、メッセージMを時系列に並べて表示する際に、メッセージMに対応付けられているユーザIDに基づいて、メッセージMを送信したユーザを示す情報をメッセージMに対応付けて表示する。なお、ユーザ端末100−1及びユーザ端末100−3は、自ユーザが送信したメッセージには、そのメッセージを送信した自ユーザを示す情報を対応付けて表示せずに、他ユーザが送信したメッセージにのみ、そのメッセージを送信した他ユーザを示す情報を対応付けて表示してもよい。
このように、チャットシステム1においては、送信したメッセージがグループ内のユーザに一斉に通知されるとともに、即時性の高いメッセージの送受信が可能である。そのため、仲間と会合やイベントなどのスケジュールを決めるような用途においてもチャットアプリケーションが利用されることがある。しかしながら、スケジュール調整を行うことによって決定されたスケジュール情報を含むメッセージを後から確認したい場合、その後にメッセージの送受信が繰り返されることによって蓄積されたメッセージの量が増えてくると、メッセージを探すためのスクロール量が増える。そのため、確認したいスケジュール情報を含むメッセージを探し出すことが困難な場合があった。
そこで、本実施形態のチャットシステム1においては、ユーザ端末100は、グループ内のユーザ間でチャットにより送受信したメッセージを時系列に並べて表示するメッセージ画面(第1画面)と、グループ内のユーザが登録したスケジュール情報を表示するスケジュール画面(第2画面)とを切替えて表示することが可能である。また、ユーザ端末100は、グループ内のユーザがスケジュール情報を登録した際に、登録したことを通知するメッセージ(第1メッセージ、以下「登録通知メッセージ」とも称する)を受信し、この登録通知メッセージをチャットにより送受信したメッセージとともにメッセージ画面に時系列に並べて表示する。ここで、スケジュール情報とは、そのスケジュールの少なくとも予定の内容(例えば、タイトル)や日時等を示す情報を含む情報である。
図4は、本実施形態によるユーザ端末100が表示するメッセージ画面の一例を示す図である。符号110aは、メッセージ画面が表示されている領域の全体を示している。このメッセージ画面は、送受信された複数のメッセージのうちの一部分が表示されている。ユーザ端末100は、例えばタッチパネルである画面の任意の箇所において行われるスクロール操作に応じて、メッセージを上下にスクロール表示させることによって、この一画面内に表示しきれていないメッセージを表示可能である。
この図4では、ユーザAのユーザ端末100−1が表示するユーザAとユーザBとによるチャット(1対1チャット)のメッセージ画面の例を示している。チャットを行うユーザの単位をグループという。このメッセージ画面はユーザAとユーザBとの2人が属するグループのチャットのメッセージ画面であり、自ユーザはユーザAであり、他ユーザはユーザBである。
符号110bの領域には、グループの名称と、カレンダーアイコンE1が表示される。ここでは、ユーザBのユーザ名を「田中B子」とし、チャット相手のユーザ名がグループ名として表示されている例を示している。なお、ユーザBのユーザ端末100−2において同一のグループのメッセージ画面を表示させる場合、グループの名称は、チャット相手であるユーザAのユーザ名がグループ名として表示される。
カレンダーアイコンE1は、ユーザの操作に応じて、メッセージ画面からスケジュール画面に切替える(遷移させる)操作子である。メッセージ画面においてカレンダーアイコンE1にタップ操作がされると、例えば、カレンダー形式でスケジュール情報が表示(例えば、所定の単位で一覧表示)されるスケジュール画面に切替わる。このスケジュール画面においては、ユーザは、スケジュール情報の登録や、登録されたスケジュール情報の確認または修正(編集)などを行うことが可能である。スケジュール画面の表示例については、図10を用いて後述する。なお、例えば、スケジュール画面において、画面上の任意の箇所(例えば、符号110cの領域の任意の箇所)に左方向へのスワイプ操作(符号K1参照)がされることに応じて、メッセージ画面からスケジュール画面に切替わるように構成してもよい。
符号110cの領域には、そのグループにおいてユーザから送信されたメッセージが、そのメッセージが送信された日時に基づいて降順に表示されるように表示コンポーネントが配置される。日付ラベルE2には、メッセージが送信された日付が表示される。同一の日付のメッセージが複数ある場合には、日付ラベルE2は、その複数のメッセージのうち、最も古い日時を示す日時情報が対応付けられたメッセージの上部に表示される。すなわちメッセージは日付毎に日付ラベルE2により区切られて表示される。アイコンE3は、他ユーザを示すアイコンである。このアイコンE3は、例えば他ユーザによって予め登録された画像(例えば、プロフィール画像)でもよいし、チャットシステム1が予め用意した画像でもよい。ユーザ名ラベルE4には、アイコンE3に対応するユーザのユーザ名が表示される。
吹き出しE5には、他ユーザから送信されたメッセージが表示される。時間ラベルE6には、吹き出しE5に表示されたメッセージが他ユーザから送信された時間が表示される。ここでは、他ユーザのメッセージがメッセージ画面の左側からの吹き出しに表示され、自ユーザのメッセージがメッセージ画面の右側からの吹き出しに表示されている。吹き出しE7には、自ユーザが送信したメッセージが表示される。時間ラベルE8には、吹き出しE7に表示されたメッセージを送信した時間が表示される。ここで、左側からの吹き出しに表示される他ユーザのメッセージには、そのメッセージを送信したユーザを示す情報(例えば、アイコンE3、ユーザ名ラベルE4)が対応付けられて表示されるが、一方、右側からの吹き出しに表示される自ユーザが送信したメッセージには、そのメッセージを送信したユーザを示す情報(即ち、自ユーザの情報)は表示されない。これは、自ユーザを示す情報が表示されなくとも、メッセージ画面の左側の吹き出しE7に表示されたメッセージが、自ユーザが送信したものであることが判別可能なためである。
ここで、上述した吹き出しE5及び吹き出しE7に表示されたメッセージは、チャットにより送受信したメッセージである。これに対し、吹き出しE9に表示されたメッセージは、スケジュール情報が登録されたこと示す登録通知メッセージである。アイコンE10は、吹き出しE9に表示された登録通知メッセージに対応するスケジュール情報を登録したユーザを示すアイコンである。ユーザ名ラベルE11には、アイコンE10に対応するユーザのユーザ名が表示される。時間ラベルE12には、吹き出しE9に表示された登録通知メッセージを送信した時間が表示される。なお、時間ラベルE12には、吹き出しE9に表示された登録通知メッセージに対応するスケジュール情報が登録された時間が表示されてもよい。また、吹き出しE9の中には、登録通知メッセージ情報に含まれる場所情報に基づく地図にリンクする地図アイコンE13が表示されてもよい。この地図アイコンE13は、そのスケジュール情報に含まれる場所(例えば、待ち合わせ場所、指定された場所等)を含む地図にリンクするアイコンである。この地図アイコンE13が表示されている場合には、ユーザの地図アイコンE13に対するタップ操作に応じて、場所を示す地図画面が表示される。例えば、そのスケジュール情報に含まれる場所(例えば、待ち合わせ場所、指定された場所等)を示す印が地図上に示される。
符号110dの領域には、他のユーザ端末100にメッセージを送信するための表示コンポーネントが配置される。テキストボックスE14には、ユーザから入力されるメッセージが表示される。送信ボタンE15は、テキストボックスE14に入力されたメッセージを他のユーザに送信するための操作子である。
このように、本実施形態のチャットシステム1においては、ユーザ端末100は、メッセージ画面(第1画面)と、スケジュール画面(第2画面)とを切替えて表示することができる。また、ユーザ端末100は、グループ内のユーザがスケジュール情報を登録した際に、登録したことを通知する登録通知メッセージをチャットにより送受信したメッセージとともにメッセージ画面に時系列に並べて表示することができる。これにより、本実施形態によれば、チャットアプリケーションにおける利便性を向上させることができる。
以下、本実施形態チャットシステム1の構成について詳しく説明する。
まず、図5を参照して、ユーザ端末100の構成について説明する。図5は、本実施形態によるユーザ端末100の構成を示す概略ブロック図である。
ユーザ端末100は、ユーザが利用するコンピュータ装置であり、サーバ装置200を介して他のユーザ端末100との間で送受信したメッセージを表示する表示装置である。ユーザ端末100としては、例えばPC(Personal Computer)、タブレットPC、スマートフォン、ゲーム機器等の、表示デバイスを具備し情報通信ネットワークに接続可能な装置が適用できる。ここでは、ユーザ端末100はスマートフォンであるとして説明する。ユーザ端末100は、表示部110と、操作受付部120と、通信部130と、記憶部140と、制御部150とを備えている。なお、図1に示す複数のユーザ端末100−Nは、同様の各部を備えるものとする。
表示部110は、画像や文字等の情報を表示する表示デバイスである。表示部110の情報を表示する領域を画面といい、表示部110の画面に表示される情報を画面情報という。例えば、表示部110は、チャットアプリケーションにおいて、グループ内のユーザ間で送受信したメッセージを時系列に表示するメッセージ画面を表示する。また、表示部110は、グループ内のユーザが登録したスケジュール情報を表示するスケジュール画面を表示する。ここで、表示部110が表示するこれらの画面は、ユーザからの操作に応じて制御部150によって制御される。
操作受付部120は、ユーザ(第1ユーザ)からの操作に応じてユーザの指示を受付けて、指示内容に応じた入力信号を生成する入力デバイスである。操作受付部120には、例えば、キーボードやボタン、タッチパネル等が適用できる。本実施形態では、操作受付部120と表示部110とは一体に構成されてユーザからの操作入力を受け付けるタッチパネルを適用した例を説明する。
通信部130は、ネットワーク5を介してサーバ装置200と通信する。
記憶部140は、RAM(Random Access Memory)やROM(Read Only Memory)、HDD(Hard Disk Drive)等の記録媒体またはこれらの組合せを用いて構成され、ユーザ端末100が備える各部を制御するためのプログラムや各種情報を記憶する。また、記憶部140は、ユーザ端末100に装着するメモリカードであってもよい。記憶部140は、ユーザ情報記憶部141と、グループ情報記憶部142と、メッセージ情報記憶部143と、画面情報記憶部144とを備えている。
ユーザ情報記憶部141は、チャットを行うユーザに関するユーザ情報を記憶する。図6及び図7は、ユーザ情報記憶部141に記憶されるユーザ情報の例を示す図である。ユーザ情報には、ユーザIDと、ユーザ名と、ユーザ画像とを対応付けた情報が含まれる。ユーザIDは、ユーザを識別する情報である。ユーザ名は、そのユーザの名称である。ユーザ画像は、そのユーザのプロフィール画像である。具体的には、ユーザ画像のデータを識別する情報が、ユーザIDと、ユーザ名と、対応付けられており、ユーザ情報記憶部141は、上述の対応付けしたユーザ情報と、ユーザ画像の実データとをそれぞれ記憶する。
ここで、図6に示すユーザ情報は、自ユーザのユーザ情報の例であって、ユーザAのユーザ端末100−1に記憶されているユーザAのユーザ情報の例である。また、図7に示すユーザ情報は、チャット相手として登録可能な他ユーザのユーザ情報の例であって、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報(ユーザBのユーザ情報及びユーザCのユーザ情報を含むユーザ情報)の例である。この図7に示す他ユーザのユーザ情報は、他ユーザそれぞれのユーザ端末100−Nでそのユーザ自身で登録したものである。この図7に示す、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報は、チャット相手として登録可能なユーザ関係になるとき、又は、チャット相手として登録されたときに、他ユーザそれぞれのユーザ端末100−Nから取得して記憶する。なお、このチャット相手のユーザ情報は、事後的に自ユーザのユーザ端末100で修正できるようにしてもよい。
グループ情報記憶部142は、チャットを行うユーザのグループに関する情報を記憶する。図8は、グループ情報記憶部142に記憶されるグループ情報の例を示す図である。ひとつのグループには2以上のユーザが属する。例えば、ユーザAとユーザBとがチャットを行う場合、ユーザAとユーザBとが属するグループに関するグループ情報がグループ情報記憶部142に記憶される。グループ情報には、グループIDと、グループ名と、ユーザIDとを対応付けた情報が含まれる。グループIDは、サーバ装置200で生成されるグループを一意に識別する情報である。グループ名は、グループの名称であり、グループが形成された場合に自動的に付与され、事後的にユーザにより設定できるようになっている。ユーザIDは、そのグループに属するユーザを識別する情報である。ここでは、例えば、グループIDが「G1」であるグループの名称はユーザにより設定されていない。G1グループのように2人が属するチャット(1対1チャット)では、ユーザ情報記憶部141を参照して、チャット相手のユーザ名がグループの名称として自動的に設定される。G1グループには「ユーザA」と「ユーザB」との2ユーザが属することが示されている。また、グループIDが「G2」であるグループの名称はユーザにより「テニスサークル」として設定されている。このグループに属するユーザが「ユーザA」と「ユーザB」と「ユーザC」と「ユーザD」との4ユーザであることが示されている。
メッセージ情報記憶部143は、自ユーザが属するグループにおいて送受信されたメッセージに関するメッセージ情報を記憶する。図9は、メッセージ情報記憶部143に記憶されるメッセージ情報の例を示す図である。メッセージ情報には、グループIDと、ユーザIDと、日時情報と、メッセージと、メッセージ種類とを対応付けた情報が含まれる。グループIDは、メッセージが送受信されたグループを識別する情報である。ユーザIDは、メッセージを入力したユーザを識別する情報である。日時情報は、メッセージが送信された日時を示す情報である。実際には、ユーザ端末100の計時機能が示す時間情報が相違しているユーザ間や、時差のある地域のユーザ間で互いに送信したメッセージが正しく時系列に並ぶようにユーザ端末100から送信されたメッセージをサーバ装置200で受信した受信時間を当該メッセージが送信された日時を示す日時情報としている。日時情報には、年、月、日、時、分、秒(YYYY/MM/DD HH:MM:SS)の情報が含まれる。メッセージは、他ユーザとの間で送受信したメッセージを示す文字列である。
また、メッセージ種類は、そのメッセージが、ユーザ間においてチャットにより送受信したメッセージである場合と、ユーザがスケジュールを登録したことを通知する登録通知メッセージである場合とを識別するフラグ情報である。ここでは、例えば、チャットにより送受信したメッセージがフラグ「0」であって、スケジュールを登録したことを通知する登録通知メッセージがフラグ「1」である。
図5に戻り、画面情報記憶部144は、上述したような複数のメッセージを時系列に並べて表示するメッセージ画面の画面情報を一時的に記憶する。また、画面情報記憶部144は、ユーザが登録したスケジュールを一覧表示するスケジュール画面の画面情報を一時的に記憶する。
制御部150は、ユーザ端末100の制御中枢として機能するCPU(Central Processing Unit)等の情報処理装置を備えており、ユーザ端末100が備える各部を制御する。制御部150は、メッセージ送信指示部151と、メッセージ送受信部152と、スケジュール登録部153と、スケジュール取得部154と、表示制御部155とを備えている。
メッセージ送信指示部151は、操作受付部120に対するユーザからの操作に応じて生成された入力信号に基づいて、チャットにおけるメッセージの送信指示を示す送信指示情報を生成する。具体的には、メッセージ送信指示部151は、メッセージ画面においてテキストボックスE14にメッセージが入力され、送信ボタンE15にタップ操作がされると、テキストボックスE14に入力されたメッセージに、そのメッセージが入力されたメッセージ画面のチャットのグループを識別するグループIDと、メッセージを入力したユーザである自ユーザを識別するユーザIDと、メッセージ種類(例えば、フラグ「0」)と、を対応付けたメッセージ情報を含む送信指示情報を生成する。
メッセージ送受信部152は、メッセージ送信指示部151が、操作受付部120に対する操作に応じて送信指示情報を生成すると、メッセージが入力されたメッセージ画面のグループIDをグループ情報記憶部142から読み出し、読み出したグループIDを宛先として、メッセージ送信指示部151によって生成された送信指示情報に含まれるメッセージ情報を、サーバ装置200に送信する。このとき、メッセージ情報に含まれるグループID、ユーザID(自ユーザ)、メッセージ、及びメッセージ種類を、新たなレコードとしてメッセージ情報記憶部143に記憶させる。なお、日時情報は、サーバ装置200から受信完了通知と共に取得し、対応するメッセージのレコードの日時情報を更新する。また、メッセージ送受信部152は、他のユーザ端末100から、自ユーザが属するグループIDを宛先として送信されたメッセージ情報を、サーバ装置200から受信し、メッセージ情報に含まれるグループID、ユーザID(他ユーザ)、日時情報、メッセージ、及びメッセージ種類を、新たなレコードとしてメッセージ情報記憶部143に記憶させる。
加えて、メッセージ送受信部152は、自ユーザが属するグループの何れかのユーザがスケジュール情報を登録した際に、登録したことに応じて、そのグループのグループIDに対応付けられているユーザIDを宛先としてサーバ装置200から送信された登録通知メッセージ情報を受信し、登録通知メッセージ情報に含まれるグループID、ユーザID(登録ユーザ)、日時情報、メッセージ、及びメッセージ種類(例えば、フラグ「1」)を、新たなレコードとしてメッセージ情報記憶部143に記憶させる。
スケジュール登録部153は、グループ内の自ユーザまたは他ユーザの何れかのユーザの指示に基づいて、このグループ内のユーザ間で共有が可能なスケジュール情報をサーバ装置200に登録する登録部である。例えば、スケジュール登録部153は、操作受付部120に対するユーザからの操作に応じて生成された入力信号に基づいて、入力されたスケジュールの内容を示すスケジュール情報を生成してサーバ装置200に送信する。具体的には、スケジュール登録部153は、スケジュール画面において、操作受付部120に対してスケジュールを登録する操作がされると、操作に応じて入力されたスケジュールに、そのスケジュールが登録されたスケジュール画面のチャットのグループを識別するグループIDと、スケジュールを登録したユーザである自ユーザを識別するユーザIDとを対応付けたスケジュール情報を生成してサーバ装置200に送信する。
ここで、スケジュールには、会合やイベント等の予定の内容を示す情報と、その予定が行われる日時情報(予定日時情報)と、その予定が行われる場所を示す場所情報とが対応付けられている。この予定の内容を示す情報は、例えば、スケジュールの予定の内容を示すテキストデータによる情報である。以下、スケジュール登録部153が登録する、この予定の内容を示す情報を「イベント情報」とも称する。
また、サーバ装置200が、ユーザ端末100から送信されたスケジュール情報をグループIDに基づいて管理することによって、グループ内のユーザ間でこのスケジュール情報の共有が可能になる。すなわち、スケジュール登録部153は、グループ内の自ユーザまたは他ユーザの何れかのユーザの指示に基づいて、グループ内のユーザ間で共有が可能なスケジュール情報をサーバ装置200に登録する。
スケジュール取得部154は、操作受付部120に対するユーザからの操作に応じて、サーバ装置200からスケジュール情報を受信して取得する。具体的には、スケジュール取得部154は、メッセージ画面において、操作受付部120に対してスケジュール画面に切替える操作がされると、そのメッセージ画面のチャットのグループを識別するグループIDに対応付けられているスケジュール情報を、サーバ装置200から受信して取得する。また、スケジュール取得部154は、取得したスケジュール情報を記憶部140に一時的に記憶させる。
表示制御部155は、第1表示制御部156と、第2表示制御部157とを備えており、チャットのメッセージ画面の画面情報、及び、スケジュール画面の画面情報を生成して表示部110に表示させる。
第1表示制御部156は、自ユーザの操作に応じて自身のユーザ端末100から送信するメッセージと、他ユーザの操作に応じて他のユーザ端末100から送信されたメッセージと、を時系列に表示するメッセージ画面(第1画面)を表示部110に表示させる。具体的には、第1表示制御部156は、メッセージ情報記憶部143に記憶されている複数のメッセージ情報を読み出し、読み出した複数のメッセージ情報それぞれに含まれるメッセージを、それぞれに対応付けられた日時情報に基づいて時系列に並べたメッセージ画面の画面情報を生成して画面情報記憶部144に記憶させる。また、第1表示制御部156は、生成した画面情報のうちの一部を表示部110に表示させる。例えば、第1表示制御部156は、画面情報のうち、ユーザからの操作によって指定されたメッセージを含む箇所を、表示部110に表示させる。初期段階で表示部110に表示させる画面情報の一部は、例えば、読み出した複数のメッセージのうち、最も新しい日時情報が対応付けられたメッセージが含まれる箇所とすることができる。また、第1表示制御部156は、他ユーザのユーザ端末100から送信されたメッセージに、当該他ユーザを示す情報を対応付けて時系列にメッセージ画面に表示させる。
なお、上述の複数のメッセージ情報には、互いに同じ日時情報が対応付けられたメッセージ情報(即ち、互いに同じ送信日時のメッセージ情報)が含まれていてもよい。この場合、第1表示制御部156は、互いに同じ日時情報が対応付けられているメッセージ情報のそれぞれを、例えば、メッセージ情報記憶部143に記憶された順にしたがって、時系列にメッセージ画面に表示させてもよい。なお、メッセージ送受信部152が、互いに同じ日時情報が対応付けられたメッセージ情報を受信した場合に、一方の日時情報の時刻(例えば、秒数)をカウントアップさせて、互いに異なる日時情報として記憶させてもよい。
また、上述の複数のメッセージ情報において、上述の複数のメッセージ情報には、互いに同じ日時情報が対応付けられたメッセージ情報が含まれないように構成してもよい。この場合、サーバ装置200は、メッセージ情報に互いに同じ日時情報を対応付けることを禁止し、メッセージ情報毎に異なる日時情報を対応付けるようにしてもよい。具体的には、サーバ装置200は、互いに同じ日時情報となるようなメッセージ情報を受信した場合には、一方の日時情報の時刻(例えば、秒数)をカウントアップさせてもよい。
ここで、第1表示制御部156がメッセージ画面に表示させる、自ユーザの操作に応じて自身のユーザ端末100から送信するメッセージとは、自身のユーザ端末100から送信したメッセージ、または、自身のユーザ端末100から送信する前のメッセージである。第1表示制御部156は、自ユーザの操作に応じて入力されたメッセージを、自身のユーザ端末100から送信する前にメッセージ画面に表示させることが可能である。例えば、第1表示制御部156は、メッセージ送信指示部151が生成したメッセージ情報を、メッセージ送受信部152が送信する前にメッセージ画面に表示させる。
また、第1表示制御部156は、自ユーザが属するグループの何れかのユーザがスケジュール情報を登録した際に、登録したことに応じてサーバ装置200から送信された登録通知メッセージ情報に含まれる登録通知メッセージを、時系列にメッセージ画面に表示させる。ここで、この登録通知メッセージ情報は、メッセージ送受信部152がサーバ装置200から受信してメッセージ情報記憶部143に記憶させたものである。即ち、第1表示制御部156は、スケジュール登録部153がスケジュール情報を登録したことを示す登録通知メッセージを、当該登録したことに応じて時系列にメッセージ画面に表示させる。また、第1表示制御部156は、スケジュール情報を登録することを支持したユーザが他ユーザである場合には、登録通知メッセージに、当該他ユーザを示す情報を対応付けて時系列にメッセージ画面に表示させる。
第2表示制御部157は、スケジュール登録部153が登録したスケジュール情報を表示するスケジュール画面(第2画面)を表示部110に表示させる。具体的には、第2表示制御部157は、スケジュール取得部154がサーバ装置200から取得して記憶部140に一時的に記憶させたスケジュール情報を読み出す。そして、第2表示制御部157は、読み出したスケジュール情報を、そのスケジュール情報に含まれる日時情報にしたがって配列した画面情報を生成して画面情報記憶部144に記憶させる。また、第2表示制御部157は、生成した画面情報のうちの一部を表示部110に表示させる。例えば、第2表示制御部157は、画面情報のうち、ユーザからの操作によって特定されたスケジュール情報を含む箇所を、表示部110に表示させる。初期段階で表示部110に表示させる画面情報の一部は、例えば、取得した複数のスケジュール情報のうち、現在の日時に最も近い日時情報に対応するスケジュール情報が含まれる箇所とすることができる。
ここで、第2表示制御部157が生成する、スケジュール情報を日時情報にしたがって配列した画面情報とは、例えば、日時情報にしたがってスケジュール情報を上下方向に時系列に並べ構成の画面情報であってもよいし、カレンダーの構成にしたがってスケジュール情報を配列した画面情報であってもよい。なお、カレンダーの構成とした場合には、カレンダー内のそれぞれの日付に対して、スケジュール情報の有無を区別可能な情報のみを表示してもよい。
図10は、ユーザ端末100が表示するスケジュール画面の例を示す図である。符号110aは、スケジュール画面が表示されている領域の全体を示しており、図4に示すメッセージ画面が表示されている領域の全体と対応する領域である。このスケジュール画面は、登録された複数のスケジュール情報のうちの一部分が表示されている。この図では、ユーザ端末100は、カレンダーの構成にしたがって一カ月分のそれぞれの日付に対するスケジュール情報の有無を区別可能な情報と、この一カ月分のスケジュール情報のうちの一部のスケジュール情報とが表示されている例である。
この図10では、ユーザAのユーザ端末100−1が表示するユーザAとユーザBとが属するチャット(1対1チャット)のグループ内において共有可能なスケジュール情報を表示するスケジュール画面の例を示している。自ユーザはユーザAであり、他ユーザはユーザBである。符号110fの領域には、グループの名称(ユーザBのユーザ名である「田中B子」)と、戻るアイコンF1と、左向きの矢印操作子(アロー)F2及び右向きの矢印操作子(アロー)F3と、が表示される。戻るアイコンF1は、ユーザの操作に応じて、スケジュール画面からメッセージ画面に切替える(戻す)操作子である。例えば、スケジュール画面において戻るアイコンF1にタップ操作がされると、スケジュール画面からメッセージ画面に切替わる(戻る)。
符号110gの領域には、そのグループにおいて登録されたスケジュール情報のうちの一カ月分のスケジュール情報が、カレンダー形式で表示されるように表示コンポーネントが配置される。年月ラベルF4は、この領域内に表示されている一カ月分に対応する年及び月が表示される。なお、上述した符号110fの領域に表示される矢印操作子(アロー)F2及びF3は、この符号110gの領域に表示されるカレンダーの月を変更する操作子である。左向きの矢印操作子F2にタップ操作がされると、符号110gの領域に表示されるカレンダーの月が、現在表示されている月の前の月に一カ月分戻る。一方、右向きの矢印操作子F3にタップ操作がされると、符号110gの領域に表示されるカレンダーの月が、現在表示されている月の次の月に一カ月分進む。
また、符号110gの領域にカレンダー形式で表示されるスケジュール情報は、それぞれの日付おいて、スケジュール情報の有無を判別可能なように表示される簡略化されたスケジュール情報である。符号110k、110m、110nのそれぞれの領域に示される日付は、スケジュール情報が登録されている日付である。それぞれの領域内には、スケジュール情報が有る(登録されている)ことがわかるように、アイコンF5、F6、F7が簡略化されたスケジュール情報としてそれぞれ配置される。ここでは、アイコンF5、F6、F7は、それぞれのスケジュール情報を登録したユーザを示すアイコンであって、例えば登録したユーザによって予め登録されたユーザ画像(例えば、プロフィール画像)である。
符号110hの領域には、符号110gの領域にカレンダー形式で表示される月に登録されているスケジュール情報のうちの少なくとも一部のスケジュール情報が、リスト形式で表示されるように表示コンポーネントが配置される。ここでは、符号110hの領域内には、符号110gの領域にカレンダー形式で表示される月に登録されているスケジュール情報のうちの2つのスケジュール情報が表示される。
符号110hの領域内の符号110pの領域には、符号110kの領域に対応する日付に登録されているスケジュール情報が表示される。符号110pの領域において、日付ラベルF8には、登録されているスケジュール情報に含まれる予定日時情報が示す日付が表示される。アイコンF9は、スケジュール情報を登録したユーザを示すアイコンである。ユーザ名ラベルF10には、アイコンF9に対応するユーザのユーザ名が表示される。日時ラベルF11には、登録されているスケジュール情報に含まれる予定日時情報が示す年月日と時間(例えば、予定の開始時間と終了時間)が表示される。内容ラベルF12には、登録されているスケジュール情報に含まれる予定の内容(イベント情報)が表示される。
一方、符号110hの領域内の符号110qの領域には、符号110mの領域に対応する日付に登録されているスケジュール情報が表示される。符号110hの領域内の表示の配置と同様に、符号110qの領域には、日付ラベルF13と、アイコンF14と、ユーザ名ラベルF15と、日時ラベルF16と、内容ラベルF17とが表示される。また、符号110qの領域には、さらに、地図アイコンF18が表示される。この地図アイコンF18は、図4を用いて説明した地図アイコンE13と同様のアイコンである。
ここで、符号110hの領域内の任意の箇所におけるスクロール操作(スライド操作)に応じて、符号110hの領域にリスト形式で表示されているスケジュール情報がスクロール表示される。例えば、符号110hの領域内の符号110rの領域においてタッチパネルに対する上下方向のスクロール操作が行われると、スケジュール情報がスクロール表示される。具体的には、上方向のスクロール操作が行われると、符号110pの領域には符号110qの領域に表示されていたスケジュール情報がスライドして表示され、符号110qの領域には新たに符号110nの領域の日付に登録されているスケジュール情報が表示される。一方、下方向のスクロール操作が行われると、上述した上方向のスクロール操作とは逆に、符号110qの領域には符号110pの領域に表示されていたスケジュール情報がスライドして表示され、符号110pの領域には符号110kの領域の日付以前に登録されているスケジュール情報のうちの直前のスケジュール情報が表示される。ところで、この図の例では、表示されている月の中に符号110kの領域の日付以前に登録されているスケジュール情報が無いため、下方向のスクロール操作が行われても符号110pの領域及び符号110qの領域の表示は変更されない。
なお、下方向のスクロール操作が行われた場合、符号110pの領域に先月(表示されている月の前月)のスケジュール情報のうちの直前のスケジュール情報が表示されるようにしてもよい。また、この上下方向のスクロール操作に応じて、符号110gの領域に表示されるカレンダーの月を、符号110hの領域に表示されるスケジュール情報に対応する月に変更されるようにしてもよい。
なお、図10に示すスケジュール画面では、符号110gの領域には月単位でカレンダー形式の表示がされる例を示したがこれに限られるものではなく、例えば、週単位または年単位で表示される構成としてもよい。また、スケジュール画面におけるスケジュール情報の表示は、カレンダー形式の表示、及び、リスト形式の表示のうちの何れか一方としてもよい。
次に、図11を参照して、サーバ装置200の構成について説明する。図11は、本実施形態によるサーバ装置200の構成を示す概略ブロック図である。
サーバ装置200は、サーバ通信部230と、サーバ記憶部240と、サーバ制御部250と、を備えている。サーバ通信部230は、ネットワーク5を介して複数のユーザ端末100―Nと通信する。
サーバ記憶部240は、ユーザ端末100が備えるユーザ情報記憶部141とグループ情報記憶部142と同様の情報を記憶するユーザ情報記憶部241とグループ情報記憶部242とを備えている。なお、ユーザ端末100が備えるユーザ情報記憶部141とグループ情報記憶部142とは、そのユーザ自身に関連する情報(ユーザ自身のユーザ情報、及び、ユーザ自身と同じグループに登録可能な他ユーザのユーザ情報)のみが記憶されていることに対し、サーバ装置200が備えるユーザ情報記憶部241とグループ情報記憶部242とには、サーバ装置200を介してメッセージの送受信を行う全てのユーザ及びグループに関する情報が記憶されている。なお、サーバ装置200が備えるユーザ情報記憶部241には、ユーザ名やユーザ画像等のようにユーザを特定するような情報は記憶されず、単にユーザを識別可能なユーザIDが記憶されている構成としてもよい。
また、サーバ記憶部240は、メッセージ情報一時記憶部243と、スケジュール情報記憶部244と、を備えている。メッセージ情報一時記憶部243は、各ユーザ端末100から受信したメッセージ情報を一時的に記憶する。例えば、メッセージ情報一時記憶部243は、受信したメッセージ情報が、宛先(送信先)のユーザのユーザ端末100に対して送信されるまでの間、受信したメッセージ情報を一時的に記憶する。
スケジュール情報記憶部244は、ユーザ端末100から受信したスケジュール情報を記憶する。図12は、スケジュール情報記憶部244に記憶されるスケジュール情報の例を示す図である。スケジュール情報には、グループIDと、ユーザIDと、イベント情報と、日時情報(予定日時情報)と、場所情報とを対応付けた情報が含まれる。グループIDは、スケジュールが登録されたグループを識別する情報である。ユーザIDは、スケジュールを登録したユーザを識別する情報である。イベント情報と、日時情報と、場所情報とは、登録されたスケジュールの内容を示す情報である。イベント情報は、会合やイベント等の予定の内容を示す情報であって、ユーザからの操作によって入力されたテキストデータである。日時情報は、その会合やイベント等の予定が行われる日時(開始日時または終了日時)を示す情報であって、ユーザからの操作によって選択された年月日または時刻を示す情報である。場所情報は、その会合やイベント等の予定が行われる場所を示す情報であって、例えば、緯度と経度とにより示される位置情報である。
なお、スケジュール情報記憶部244は、スケジュール情報が送信された日時を示す情報、または、スケジュール情報が登録された日時を示す情報を、スケジュール情報としてさらに対応付けて記憶してもよい。なお、スケジュール情報記憶部244と同様の情報を記憶する記憶部をユーザ端末100にも備えて、このスケジュール情報記憶部244が記憶する情報と所定のタイミングで同期させる構成としてもよい。
図11に戻り、サーバ制御部250は、メッセージ転送部251と、スケジュール情報管理部252と、通知メッセージ生成部253と、を備えている。
メッセージ転送部251は、ユーザ端末100からグループIDを宛先として送信されたメッセージ情報を受信すると、受信したメッセージ情報をメッセージ情報一時記憶部243に一時的に記憶させる。ここで、メッセージ転送部251は、受信したメッセージ情報に対して、チャットにより受信したメッセージであることを示すフラグ「0」をメッセージ種類として追加して、メッセージ情報一時記憶部243に一時的に記憶させる。そして、メッセージ転送部251は、受信したメッセージ情報の宛先であるグループIDに対応付けられたユーザIDを特定し、記憶させたメッセージ情報を、当該特定したユーザIDが示すユーザ端末100のうち、メッセージを送信したユーザのユーザIDが示すユーザ端末100以外のユーザ端末100に送信する。なお、メッセージ転送部251は、このメッセージ情報を、当該特定したユーザIDが示すユーザ端末100のうち、メッセージを送信したユーザのユーザIDが示すユーザ端末100以外のユーザ端末100に送信してもよい。即ち、メッセージ転送部251は、グループ内のユーザにより送信されたメッセージを、グループ内の他のユーザに転送する。
さらに、メッセージ転送部251は、チャットにより受信したメッセージ情報以外のメッセージ情報一時記憶部243に記憶されたメッセージ情報を、ユーザ端末100に送信する。例えば、メッセージ転送部251は、に通知メッセージ生成部253が生成してスケジュール情報記憶部244に記憶させた登録通知メッセージ情報をユーザ端末100に送信する。具体的には、メッセージ転送部251は、スケジュール情報記憶部244に記憶された登録通知メッセージ情報の宛先であるグループIDに対応付けられたユーザIDを特定し、この登録通知メッセージ情報を、当該ユーザIDが示すユーザ端末100に送信する。
スケジュール情報管理部252は、ユーザ端末100から受信したスケジュール情報をスケジュール情報記憶部244に記憶させて管理する。具体的には、スケジュール情報管理部252は、スケジュール情報に含まれるグループID、ユーザID(登録ユーザ)、イベント情報、日時情報(予定日時情報)、場所情報を、新たなレコードとしてスケジュール情報記憶部244に記憶させる。また、スケジュール情報管理部252は、グループ情報記憶部142を参照して、受信したスケジュール情報に対応付けられたグループIDのグループに属するユーザIDを特定して、当該ユーザIDが示すユーザ端末100に対して当該受信したスケジュール情報の取得を許可する。すなわち、スケジュール情報管理部252は、受信したスケジュール情報をグループ内のユーザ間で共有が可能なように管理する。
通知メッセージ生成部253は、スケジュール情報管理部252が、受信したスケジュール情報をスケジュール情報記憶部244に記憶させた際に、そのスケジュール情報が登録されたことを示す登録通知メッセージを生成する。ここで、この登録通知メッセージには、登録したスケジュール情報のイベント情報、日時情報(予定日時情報)、または、場所情報に基づいて生成されたメッセージが含まれている。
また、通知メッセージ生成部253は、生成した登録通知メッセージに、そのスケジュールが登録されたスケジュール画面のチャットのグループを識別するグループIDと、そのスケジュールを登録したユーザである登録ユーザを識別するユーザIDと、サーバ装置200の計時機能から取得した現在日時と、メッセージ種類(例えば、フラグ「1」)と、を対応付けた登録通知メッセージ情報を生成する。そして、通知メッセージ生成部253は、生成した登録通知メッセージ情報をメッセージ情報一時記憶部243に記憶させる。このとき、通知メッセージ生成部253は、スケジュールが登録されたスケジュール画面のチャットのグループを識別するグループIDを、登録通知メッセージの宛先として、スケジュール情報記憶部244に記憶させる。
次に、図面を参照して、本実施形態によるチャットシステム1の動作例を説明する。図13は、本実施形態によるチャットシステム1の動作例を示すフローチャートである。この図13では、ユーザAとユーザBとが属するグループにおいて、チャットによるメッセージの送受信が、サーバ装置200を介して、ユーザAのユーザ端末100−1とユーザBのユーザ端末100−2との間で行われる例を示している。また、ユーザBのユーザ端末100−2からスケジュールが登録される例を示している。
図13に示すステップS110、S120、S130、S140、S150、S160の各処理は、図2の同じ符号を付した各処理と同様の処理である。つまり、ユーザ端末100−1は、ユーザ端末100−2から送信されたメッセージを、サーバ装置200を介して受信してメッセージ画面に時系列に並べて表示する。
次に、ユーザBは、ユーザ端末100−2からスケジュールを登録する。例えば、ユーザBは、ユーザ端末100−2が表示する画面をメッセージ画面からスケジュール画面に切替えて、スケジュールを登録する。図14は、ユーザBのユーザ端末100−2が表示するメッセージ画面の例を示す図である。符号111aの領域は、この端末においてメッセージ画面が表示されている領域の全体を示しており、図4に示す符号110aの領域と対応する。また、符号111aの領域内の符号111bの領域と、符号111cの領域と、符号111dの領域とは、図4に示す符号110bの領域と、符号110cの領域と、符号110dの領域とに対応する。
符号111bの領域には、図4に示す符号110bの領域と同様に、グループの名称と、カレンダーアイコンE1が表示されるが、ここでは、ユーザAのユーザ名を「高橋A太郎」とし、グループの名称をユーザAのユーザ名としていることが図4に示す例と相違する。また、符号111cの領域には、ユーザA(他ユーザ)のメッセージが左側からの吹き出しに表示され、ユーザB(自ユーザ)のメッセージが右側からの吹き出しに表示される。
ユーザBは、ユーザ端末100−2において、符号111bの領域に表示されているカレンダーアイコンE1に対してタップ操作をする。カレンダーアイコンE1にタップ操作がされると、操作受付部120が、操作に応じてカレンダーアイコンE1にタップ操作がされたことを示す入力信号を生成して、制御部150に供給する。第2表示制御部157は、操作受付部120からの入力信号に応じて、スケジュール画面を表示部110に表示させる。また、スケジュール取得部154は、サーバ装置200からスケジュール情報を取得する。そして、第2表示制御部157は、スケジュール取得部154が取得したスケジュール情報を、スケジュール画面上に表示させる。即ち、カレンダーアイコンE1にタップ操作がされると、ユーザ端末100−2が表示する画面がメッセージ画面からスケジュール画面に切替わる。ここで、ユーザBは、スケジュール画面において、例えば、カレンダー形式で表示されている日付のうちから、登録する日付を選択してタップ操作をする。第2表示制御部157は、ユーザBが登録する日付にタップ操作をしたことに応じて、予定の内容や時間を入力可能な登録画面を表示部110に表示させる。また、スケジュール登録部153は、この登録画面において、操作受付部120に対するユーザからの操作に応じて生成された入力信号に基づいて、入力されたスケジュールの内容を示すスケジュール情報を生成してサーバ装置200に送信する(ステップS210)。
サーバ装置200は、ユーザ端末100−2から送信されたスケジュール情報を受信する(ステップS220)。スケジュール情報管理部252は、ユーザ端末100−2から受信したスケジュール情報をスケジュール情報記憶部244に記憶させる。具体的には、スケジュール情報管理部252は、スケジュール情報に含まれるグループID、ユーザID(登録ユーザ)、イベント情報、日時情報(予定日時情報)、場所情報を、新たなレコードとしてスケジュール情報記憶部244に記憶させ、登録する(ステップS230)。
次に、通知メッセージ生成部253は、スケジュール情報管理部252によりスケジュール情報が登録されたことを示す登録通知メッセージを生成し、生成した登録通知メッセージとグループIDとユーザIDと現在日時とメッセージ種類とを対応付けた登録通知メッセージ情報をメッセージ情報一時記憶部243に記憶させる(ステップS240)。続いて、メッセージ転送部251は、メッセージ情報一時記憶部243に記憶された登録通知メッセージ情報の宛先であるグループIDに対応付けられたユーザIDを特定し、このグループIDに対応付けられているユーザAのユーザ端末100−1とユーザBのユーザ端末100−2に登録通知メッセージ情報を送信する(ステップS250)。
次に、ユーザ端末100−1は、サーバ装置200から送信された登録通知メッセージ情報を受信する(ステップS260)。ユーザ端末100−1のメッセージ送受信部152は、受信した登録通知メッセージ情報に含まれるグループID、ユーザID(登録ユーザ)、登録通知メッセージ、及びメッセージ種類と、サーバ装置200が送信した日時情報とを対応付けて新たなレコードとしてメッセージ情報記憶部143に記憶させる(例えば、図9参照)。ユーザ端末100−1の第1表示制御部156は、メッセージ情報記憶部143に記憶されている複数のメッセージ情報を読み出し、チャットによる複数のメッセージと、登録通知メッセージ情報に含まれる登録通知メッセージ情報とを、それぞれの日時情報(受信日時)に基づいて時系列に並べた画面情報を生成して画面情報記憶部144に記憶させるとともに、生成した画面情報のうちの一部を表示部110に表示させる(ステップS270)。即ち、ユーザ端末100−1は、スケジュール画面において、チャットによる複数のメッセージと、他ユーザ(ユーザB)がスケジュール情報を登録したことを示す登録通知メッセージと、を時系列に並べて表示する(例えば、図4参照)。
一方、ユーザ端末100−2も、サーバ装置200から送信された登録通知メッセージ情報を受信する(ステップS280)。ユーザ端末100−2のメッセージ送受信部152は、受信した登録通知メッセージ情報に含まれるグループID、ユーザID(登録ユーザ)、登録通知メッセージ、及びメッセージ種類と、サーバ装置200が送信した日時情報とを対応付けて新たなレコードとしてメッセージ情報記憶部143に記憶させる。ユーザ端末100−2の第1表示制御部156は、メッセージ情報記憶部143に記憶されている複数のメッセージ情報を読み出し、チャットによる複数のメッセージと、登録通知メッセージ情報に含まれる登録通知メッセージ情報とを、それぞれの日時情報(送信日時)に基づいて時系列に並べた画面情報を生成して画面情報記憶部144に記憶させるとともに、生成した画面情報のうちの一部を表示部110に表示させる(ステップS290)。即ち、ユーザ端末100−2は、スケジュール画面において、チャットによる複数のメッセージと、自ユーザ(ユーザB)がスケジュール情報を登録したことを示す登録通知メッセージと、を時系列に並べてメッセージ画面に表示する。
なお、ユーザ端末100は、スケジュール画面において、自ユーザ(ユーザB)がスケジュール情報を登録したことを示す登録通知メッセージをメッセージ画面に表示せずに、他ユーザだけがスケジュール情報を登録したことを示す登録通知メッセージをメッセージ画面に表示する構成としてもよい。
以上説明してきたように、本実施形態によるユーザ端末100は、自ユーザ(第1ユーザ)と、一または複数の他ユーザ(第2ユーザ)とが登録されたグループにおいて、自ユーザの操作に応じて自ユーザのユーザ端末100(自装置)から送信するメッセージと、他ユーザの操作に応じて他ユーザのユーザ端末100(他装置)から送信されたメッセージと、を時系列に表示するメッセージ画面(第1画面)を表示部110に表示させる第1表示制御部156を備えている。また、ユーザ端末100は、自ユーザ(第1ユーザ)または他ユーザ(第2ユーザ)の何れかのユーザの指示に基づいて、このグループ内のユーザ間で共有が可能なスケジュール情報を登録するスケジュール登録部153と、このスケジュール登録部153が登録したスケジュール情報を表示するスケジュール画面(第2画面)を表示部110に表示させる第2表示制御部とを備えている。そして、第1表示制御部156は、スケジュール登録部153がスケジュール情報を登録したことを示す登録通知メッセージ(第1メッセージ)を、当該登録したことに応じて時系列にメッセージ画面(第1画面)に表示させる。
これにより、ユーザ端末100は、グループ内のユーザ間で送受信されたメッセージを時系列に表示するメッセージ画面と、グループ内で共有可能に登録されたスケジュール情報を表示するスケジュール画面とを、切替えて表示することができる。よって、ユーザは、蓄積されたメッセージの中からスケジュール情報(スケジュールに関するメッセージ)を探すことなく、簡易な操作によりスケジュール情報の確認を行うことができる。
さらに、スケジュール情報が登録されると、登録されたことを示す登録通知メッセージがサーバ装置200からグループ内のユーザ端末100に送信され、ユーザ端末100がこの登録通知メッセージを受信してメッセージ画面に時系列に表示する。これにより、ユーザ端末100は、スケジュール情報が登録された際に、登録通知メッセージを表示するため、登録したユーザが手動で通知することなく、スケジュール情報が登録されたことをグループ内のユーザに認識させることができる。よって、本実施形態によれば、チャットアプリケーションにおける利便性を向上させることができる。
また、スケジュール情報には、スケジュール情報の登録を指示したユーザを示す情報が対応付けられている。そして、第1表示制御部156は、他ユーザのユーザ端末100(他装置)から送信されたメッセージに、当該他ユーザ(第2ユーザ)を示す情報を対応付けて時系列にメッセージ画面(第1画面)に表示させるとともに、スケジュール情報の登録を指示したユーザが他ユーザ(第2ユーザ)である場合には、登録通知メッセージ(第1メッセージ)に、その登録を指示した他ユーザ(第2ユーザ)を示す情報を対応付けて時系列にメッセージ画面(第1画面)に表示させる。つまり、ユーザ端末100は、他ユーザのユーザ端末100から送信されたメッセージには送信した他ユーザを示す情報を対応付けて表示するとともに、サーバ装置200が送信した登録通知メッセージには、あたかもスケジュール情報を登録したユーザが送信したかのように、登録したユーザを示す情報を対応付けて表示する。
これにより、ユーザ端末100は、他ユーザのユーザ端末100から送信されたメッセージが何れのユーザのメッセージであるか、及び、登録通知メッセージにより通知されるスケジュール情報を登録した他ユーザが何れのユーザであるかを、ユーザに認識させることができ、利便性を向上させることができる。
<第2の実施形態>
次に、本発明の第2の実施形態を説明する。本実施形態のチャットシステム1の構成は、第1の実施形態と同様であるので、本実施形態において特徴的な処理について説明する。第1の実施形態において、グループ内のユーザ間で共有可能なスケジュール情報を登録する処理を説明したが、本実施形態では、登録したスケジュール情報を修正する際の処理について説明する。
例えば、図10に示すスケジュール画面において、カレンダー形式で表示されている日付のうち、スケジュール情報が登録されている日付(例えば、符号110mの領域)にタップ操作がされると(符号K3参照)、操作受付部120が、その操作に応じて符号110mの領域にタップ操作がされたことを示す入力信号を生成して、制御部150に供給する。そして、第2表示制御部157は、操作受付部120から供給された入力信号に応じて、スケジュール情報を修正可能な編集画面を表示部110に表示させる。ここで、スケジュール情報の修正とは、スケジュール情報に含まれる、イベント情報、日時情報(予定日時情報)、場所情報等の情報の変更、及び、スケジュール情報の削除を含む。
なお、第2表示制御部157は、そのスケジュール情報に含まれるユーザIDに基づいて、登録ユーザが自ユーザであるか否かを判定し、その判定結果に基づいてスケジュール情報を修正可能な編集画面を表示部110に表示させてもよい。例えば、スケジュール情報が登録されている日付(例えば、符号110mの領域)にタップ操作がされると(符号K3参照)、第2表示制御部157は、そのスケジュール情報の登録ユーザが自ユーザであるか否かを判定し、登録ユーザが自ユーザであると判定した場合には、スケジュール情報を修正することが可能な編集画面を表示部110に表示させてもよい。一方、第2表示制御部157は、登録ユーザが他ユーザであると判定した場合には、このスケジュール情報の修正を許可しないで、例えば、スケジュール情報のみを表示部110に表示させてもよい。
ここで、この図10に示すスケジュール画面は、ユーザAのユーザ端末100−1が表示するスケジュール画面の一例である。したがってこの図においては、符号110mの領域にタップ操作がされると、第2表示制御部157は、スケジュール情報の登録ユーザがユーザB(他ユーザ)であるため、スケジュール情報の修正を許可しないでスケジュール情報のみを表示部110に表示させる。一方、符号110kの領域または符号110nの領域にタップ操作がされると、第2表示制御部157は、スケジュール情報の登録ユーザがユーザA(自ユーザ)であるため、このスケジュール情報を修正することが可能な編集画面を表示部110に表示させる。
なお、図10において、カレンダー形式で表示されている日付に代えて、リスト形式で日付(及びスケジュール情報)が表示されている領域(例えば、符号110qの領域)にタップ操作がされた(符号K4参照)場合に、第2表示制御部157は、スケジュール情報を修正することが可能な編集画面を表示部110に表示させてもよい。また、この場合、第2表示制御部157は、そのスケジュール情報の登録ユーザが自ユーザであるか否かを判定し、登録ユーザが自ユーザであると判定した場合にのみ、このスケジュール情報を修正することが可能な編集画面を表示部110に表示させてもよい。
なお、メッセージ画面において登録通知メッセージを表示している領域(例えば、図4に示す吹き出しE9)にタップ操作がされた(符号K2参照)場合、第2表示制御部157は、スケジュール情報を修正することが可能な編集画面を表示部110に表示させてもよい。また、この場合、第2表示制御部157は、そのスケジュール情報の登録ユーザが自ユーザであるか否かを判定し、登録ユーザが自ユーザであると判定した場合には、スケジュール情報を修正することが可能な編集画面を表示部110に表示させ、登録ユーザが他ユーザである(自ユーザでない)と判定した場合には、単に、スケジュール画面を表示部110に表示させてもよい。
以上説明したように、本実施形態によるユーザ端末100において、第2表示制御部157は、スケジュール情報に対応してスケジュール画面(第2画面)に表示させた日付に対する操作、またはメッセージ画面(第1画面)に表示された登録通知メッセージ(第1メッセージ)に対する操作を操作受付部120が受け付けた場合に、当該操作された日付または登録通知メッセージ(第1メッセージ)に対応するスケジュール情報を修正可能な編集画面を表示部110に表示させる。
これにより、ユーザ端末100は、登録されたスケジュール情報に対する修正(変更や削除)を、ユーザが簡易且つ直感的な操作で行えるようにすることができる。よって、本実施形態によれば、チャットアプリケーションにおける利便性を向上させることができる。
また、第2表示制御部157は、スケジュール画面(第2画面)に表示した日付、またはメッセージ画面(第1画面)に表示された登録通知メッセージ(第1メッセージ)が、自ユーザ(第1ユーザ)の指示に基づいてスケジュール登録部153が登録したスケジュール情報に対応している場合にのみ、スケジュール情報を修正可能な編集画面を表示部110に表示させる。
これにより、ユーザ端末100は、スケジュール情報を登録した登録ユーザ以外のユーザが、そのスケジュール情報に対して修正(変更や削除)できないようにすることができる。
なお、第2表示制御部157は、登録ユーザが自ユーザであるか否かに係わらず、グループ内のユーザであれば、スケジュール情報を編集することが可能な編集画面を表示部110に表示させてもよい。
<第3の実施形態>
次に、本発明の第3の実施形態を説明する。本実施形態のチャットシステム1の構成は、第1の実施形態と同様であるので、本実施形態において特徴的な処理について説明する。第1の実施形態において、ユーザ端末100が、グループ内の何れかのユーザがスケジュール情報を登録したことを示す登録通知メッセージをメッセージ画面に時系列に並べて表示する例を説明した。本実施形態では、ユーザ端末100が、このスケジュール情報のリマインド通知メッセージ(第2メッセージ)をメッセージ画面に時系列に並べて表示する例を説明する。ここで、リマインド通知メッセージとは、登録されているスケジュール情報の日時が近づいた場合(例えば、そのスケジュール情報に示される日(当日)が到来した場合)に、ユーザに対してそのスケジュール情報を通知するメッセージである。このリマインド通知メッセージには、登録したスケジュール情報のイベント情報、日時情報(予定日時情報)、または、場所情報に基づいて生成されたメッセージが含まれる。
なお、このリマインド通知メッセージを送信するタイミングを定める所定の条件は、サーバ装置200に予め設定されている。例えば、リマインド通知メッセージを送信するタイミングを定める所定の条件は、スケジュール情報に含まれる日時情報(例えば、予定の開始日時を示す情報)が示す日付が到来したタイミング、または、スケジュール情報に含まれる日時情報(例えば、予定の開始日時を示す情報)に対して任意に指定された日または時間の分遡った日時(3日前、1日前、3時間前、1時間前等)のタイミングとして、サーバ装置200に予め設定されている。なお、この所定の条件は、ユーザの操作に応じてユーザ端末100からサーバ装置200に、スケジュール情報毎に設定されてもよいし、全てのスケジュール情報を対象として設定されてもよい。また、この所定の条件は、ユーザ端末100に初期値として予め設定されてもよい。
サーバ装置200は、スケジュール情報記憶部244に記憶されているスケジュール情報に含まれる日時情報に基づくタイミングに応じて、そのグループ内のユーザのユーザ端末100に対してリマインド通知メッセージを送信する。ここで、スケジュール情報に含まれる日時情報に基づくタイミングとは、例えば、スケジュール情報に含まれる日時情報と上述した所定の条件とに基づくタイミングである。そして、ユーザ端末100は、サーバ装置200から受信したリマインド通知メッセージを時系列にメッセージ画面に表示する。即ち、ユーザ端末100の第1表示制御部156は、スケジュール情報に基づいたタイミングに応じて、当該スケジュール情報を通知するリマインド通知メッセージを時系列にメッセージ画面(表示部110)に表示させる。
このユーザ端末100がリマインド通知メッセージを表示する処理について、以下に具体的に説明する。図15は、本実施形態によるチャットシステム1の動作例を示すフローチャートである。この図15は、図13に示すユーザ端末100が登録通知メッセージを表示した後の処理の動作を加えた図である。
サーバ装置200の通知メッセージ生成部253は、スケジュール情報記憶部244に記憶されているスケジュール情報を読み出して、上記所定の条件に基づいて発信するリマインド通知メッセージを生成する。例えば、通知メッセージ生成部253は、スケジュール情報記憶部244に記憶されているスケジュール情報に含まれている日時情報(例えば、予定の開始日時を示す情報)を参照する。そして、通知メッセージ生成部253は、スケジュール情報毎に、その日時情報と所定の条件とに基づいて定まる設定日時(リマインド通知メッセージを発信するタイミング)に、現在日時が達したか否か(詳しくは、現在日時が設定日時に対して少なくとも送信に要する時間分差し引いた時間に達したか否か)を判定する(ステップS310)。
ステップS310において、現在日時が設定日時に達したと判定されたスケジュール情報がある場合には(ステップS310:YES)、通知メッセージ生成部253は、そのスケジュール情報のリマインド通知メッセージを生成する。そして、通知メッセージ生成部253は、生成したリマインド通知メッセージとグループIDとユーザID(登録ユーザ)と現在日時とメッセージ種類とを対応付けたリマインド通知メッセージ情報をメッセージ情報一時記憶部243に記憶させる(ステップS320)。一方、現在日時が設定日時に達しているスケジュール情報がないと判定された場合には(ステップS310:NO)、通知メッセージ生成部253は、設定日時に達したと判定されるスケジュール情報があるまでリマインド通知メッセージを生成する処理を待機する。
続いて、メッセージ転送部251は、メッセージ情報一時記憶部243に記憶されたリマインド通知メッセージ情報の宛先であるグループIDに対応付けられたユーザIDを特定し、このグループIDに対応付けられているユーザAのユーザ端末100−1とユーザBのユーザ端末100−2にリマインド通知メッセージ情報を送信する(ステップS330)。
次に、ユーザ端末100−1は、サーバ装置200から送信されたリマインド通知メッセージ情報を受信する(ステップS340)。ユーザ端末100−1のメッセージ送受信部152は、受信したリマインド通知メッセージ情報に含まれるグループID、ユーザID(登録ユーザ)、リマインド通知メッセージ、及びメッセージ種類と、サーバ装置200が送信した日時情報とを対応付けて新たなレコードとしてメッセージ情報記憶部143に記憶させる。図16は、本実施形態による、メッセージ情報記憶部143に記憶されるリマインド通知メッセージ情報を含むメッセージ情報の例を示す図である。図9に示す例と同様に、メッセージ情報には、グループIDと、ユーザIDと、日時情報(送信日時)と、メッセージと、メッセージ種類とを対応付けた情報が含まれる。この図では、ユーザ間においてチャットにより送受信したメッセージ情報と、サーバ装置200から受信したリマインド通知メッセージ情報とが示されている。ここでは、リマインド通知メッセージには、リマインド通知メッセージであることを識別するためのフラグ「2」がメッセージ種類として対応付けられている。
図15に戻り、ユーザ端末100−1の第1表示制御部156は、メッセージ情報記憶部143に記憶されている複数のメッセージ情報を読み出し、チャットによる複数のメッセージと、リマインド通知メッセージ情報に含まれるリマインド通知メッセージ情報とを、それぞれの日時情報に基づいて時系列に並べた画面情報を生成して画面情報記憶部144に記憶させるとともに、生成した画面情報のうちの一部を表示部110に表示させる(ステップS350)。即ち、ユーザ端末100−1は、スケジュール画面において、チャットによる複数のメッセージと、スケジュール情報のリマインド通知メッセージと、を時系列に並べて表示する(ステップS350)。
一方、ユーザ端末100−2も、サーバ装置200から送信されたリマインド通知メッセージ情報を受信し(ステップS360)、チャットによる複数のメッセージと、リマインド通知メッセージ情報に含まれるリマインド通知メッセージ情報とを、それぞれの日時情報に基づいて時系列に並べて表示部110に表示させる(ステップS370)。即ち、ユーザ端末100−2は、スケジュール画面において、チャットによる複数のメッセージと、スケジュール情報のリマインド通知メッセージと、を時系列に並べて表示する。
図17は、本実施形態によるリマインド通知メッセージを含むメッセージ画面の例を示す図である。この図17は、ユーザAのユーザ端末100−1が表示するメッセージ画面の例を示す図であって、符号110aの領域と、符号110bの領域と、符号110cの領域と、符号110dの領域とは、図4に示す同じ符号を付した各領域と対応する。符号110cの領域には、ユーザB(他ユーザ)のメッセージが左側からの吹き出しに表示され、ユーザA(自ユーザ)のメッセージが右側からの吹き出しに表示される。また、メッセージボックスE21には、サーバ装置200から受信したリマインド通知メッセージが表示される。時間ラベルE22には、メッセージボックスE21に表示されたリマインド通知メッセージが送信された時間が表示される。また、メッセージボックスE21の中には、リマインド通知メッセージ情報に含まれる場所情報に基づく地図にリンクする地図アイコンE23が表示されてもよい。
以上説明したように、本実施形態によるユーザ端末100において、第1表示制御部156は、スケジュール情報に基づいたタイミングに応じて、スケジュール情報を通知するリマインド通知メッセージ(第2メッセージ)を時系列にメッセージ画面(第1画面)に表示させる。例えば、第1表示制御部156は、スケジュール情報に含まれる日時情報(予定が開始される日時)と、予め設定された所定の条件とに基づいたタイミングでサーバ装置200から送信されるリマインド通知メッセージを時系列にメッセージ画面に表示させる。
このように、ユーザ端末100は、登録したスケジュールの日時が近づいた場合に、そのスケジュール情報のリマインド通知メッセージをメッセージ画面に表示するため、ユーザがリマインド通知メッセージを手動で送信するといった手間を抑制することができる。よって、本実施形態によれば、チャットアプリケーションにおける利便性を向上させることができる。
ここで、リマインド通知メッセージの表示は、図4に示すスケジュール画面における登録通知メッセージの表示と異なり、登録ユーザを示す表示がされない。例えば、図17に示す例では、メッセージボックスE21に対しては、そのスケジュール情報を登録したユーザを示すアイコン(例えば、プロフィール画像)やユーザ名ラベル(登録ユーザのユーザ名の表示)が表示されない。即ち、第1表示制御部156は、リマインド通知メッセージに対応するスケジュール情報の登録を指示したユーザを示す情報を、当該リマインド通知メッセージに対応付けて表示させることなく、リマインド通知メッセージを時系列にメッセージ画面に表示させる。
次に、図18を参照して、ユーザ端末100がメッセージの種類に基づいてメッセージ画面にユーザを示す情報を表示するか否かを選択する処理について詳しく説明する。図18は、メッセージの種類に基づいてユーザを示す情報を表示する処理の動作例を示すフローチャートである。以下、例えば、ユーザの操作に応じて第1表示制御部156がメッセージ画面を表示部110に表示させる際に、メッセージの種類に基づいてユーザを示す情報を表示させるか否かを選択する処理を説明する。
まず、第1表示制御部156は、メッセージ情報記憶部143に記憶されている複数のメッセージ情報を読み出す(ステップS510)。ここでは、この複数のメッセージ情報には、チャットにより送受信されたメッセージ情報、登録通知メッセージ情報、または、リマインド通知メッセージ情報が含まれているものとして説明する。次に、第1表示制御部156は、読み出した複数のメッセージ情報それぞれに対応付けられたメッセージ種類(例えば、フラグ「0」、「1」、または「2」)を抽出する(ステップS515)。
続いて、第1表示制御部156は、抽出したメッセージ種類に基づいて、読み出したメッセージ情報に含まれるメッセージがチャットにより送受信されたメッセージであるか否かを判定する(ステップS520)。具体的には、第1表示制御部156は、抽出したメッセージ種類がフラグ「0」である場合にはチャットにより送受信されたメッセージであると判定し(ステップS520:YES)、抽出したメッセージ種類がフラグ「1」または「2」である場合にはチャットにより送受信されたメッセージではないと判定する(ステップS520:NO)。
ステップS520において、チャットにより送受信されたメッセージであると判定された場合(ステップS520:YES)、第1表示制御部156は、メッセージ情報に含まれるユーザIDに基づいて、メッセージを送信したユーザが他ユーザであるか否かを判定する(ステップS522)。ステップS522において、メッセージを送信したユーザが他ユーザであると判定された場合(ステップS522:YES)、第1表示制御部156は、そのメッセージを送信したユーザを示す情報をそのメッセージに対応付けて時系列に並べて表示させる(ステップS525)。一方、ステップS522において、メッセージを送信したユーザが自ユーザであると判定された場合(ステップS522:NO)、第1表示制御部156は、そのメッセージを送信したユーザを示す情報無しでそのメッセージを時系列に並べて表示させる(ステップS526)。
また、ステップS520において、チャットにより送受信されたメッセージではないと判定された場合(ステップS520:NO)、第1表示制御部156は、抽出したメッセージ種類に基づいて、読み出したメッセージ情報に含まれるメッセージが登録通知メッセージであるか否かを判定する(ステップS530)。具体的には、第1表示制御部156は、抽出したメッセージ種類がフラグ「1」である場合には登録通知メッセージであると判定し(ステップS530:YES)、抽出したメッセージ種類がフラグ「2」である場合には登録通知メッセージではないと判定する(ステップS530:NO)。
ステップS530において、登録通知メッセージであると判定された場合(ステップS530:YES)、第1表示制御部156は、登録通知メッセージ情報に含まれるユーザIDに基づいて、その登録通知メッセージに対応するスケジュール情報を登録したユーザが他ユーザであるか否かを判定する(ステップS532)。ステップS532において、スケジュール情報を登録したユーザが他ユーザであると判定された場合(ステップS532:YES)、第1表示制御部156は、メッセージ情報に含まれるユーザIDに基づいて、スケジュールを登録したユーザを示す情報をその登録通知メッセージに対応付けて時系列に並べて表示させる(ステップS535)。一方、ステップS532において、スケジュール情報を登録したユーザが自ユーザであると判定された場合(ステップS532:NO)、第1表示制御部156は、スケジュールを登録したユーザを示す情報無しでその登録通知メッセージを時系列に並べて表示させる(ステップS536)。
一方、ステップS530において、登録通知メッセージではないと判定された場合(ステップS530:NO)、第1表示制御部156は、抽出したメッセージ種類に基づいて、読み出したメッセージ情報に含まれるメッセージがリマインド通知メッセージであるか否かを判定する(ステップS540)。具体的には、第1表示制御部156は、抽出したメッセージ種類がフラグ「2」である場合にはリマインド通知メッセージであると判定する(ステップS540:YES)。そして、第1表示制御部156は、スケジュール情報を登録したユーザを示す情報無しでそのリマインド通知メッセージを時系列に並べて表示させる(ステップS545)。
一方、第1表示制御部156は、抽出したメッセージ種類がフラグ「2」以外である場合(即ち、「0」、「1」、及び、「2」の何れでもない場合)には、種類を特定できない異常メッセージであると判定して(ステップS540:NO)、当該メッセージに対してエラー処理(例えば、当該メッセージを非表示とする処理)を行う(ステップS550)。
以上説明してきたように、本実施形態によるユーザ端末100において、第1表示制御部156は、リマインド通知メッセージ(第2メッセージ)に対応するスケジュール情報の登録を指示したユーザを示す情報を、リマインド通知メッセージに対応付けて表示させることなく、リマインド通知メッセージを時系列にメッセージ画面(第1画面)に表示させる。つまり、リマインド通知メッセージは、スケジュールを登録した登録ユーザも含むグループ内のユーザに通知されるものであるため、ユーザ端末100は、スケジュール情報を登録したユーザを示す情報を表示しない。
これにより、ユーザ端末100は、リマインド通知メッセージという性質から、登録ユーザの情報を表示しないことにより、他ユーザからリマインド通知メッセージを受け取ったという不快感を軽減させることができる。
なお、第1表示制御部156は、リマインド通知メッセージに、そのリマインド通知メッセージに対応するスケジュール情報の登録を指示したユーザを示す情報を対応付けて時系列にメッセージ画面に表示させてもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、上述の第1から第3の実施形態において説明した各機能は、任意に組み合わせることができる。
また、上述の実施形態では、メッセージ情報に含まれるメッセージに対応付ける日時情報として、他ユーザから送信されたメッセージである場合には、そのメッセージが送信された日時(実際には、そのメッセージをサーバ装置200が受信した日時)を示す情報とし、自ユーザが送信したメッセージである場合には、そのメッセージをサーバ装置200が受信した日時を示す情報とする例を示した。ただし、他ユーザから送信されたメッセージである場合に、そのメッセージが他ユーザのユーザ端末100において実際に送信された日時を示す情報をメッセージとともに受信して日時情報としてもよいし、そのメッセージがサーバ装置200から送信された日時をメッセージとともに受信して日時情報とすることもできる。
また、上述の実施形態では、登録通知メッセージまたはリマインド通知メッセージに対応付ける日時情報として、その登録通知メッセージまたはリマインド通知メッセージをサーバ装置200が送信した日時を示す情報とする例を示した。これに限らず、登録通知メッセージまたはリマインド通知メッセージをサーバ装置200から受信した日時を示す情報を日時情報としてもよいし、サーバ装置200が登録通知メッセージまたはリマインド通知メッセージを生成した日時をそのメッセージとともに受信して日時情報としてもよい。
また、上述の実施形態では、チャットアプリケーションにおける制御の例を示したが、上述したように、送信されたメッセージをグループ内のユーザに対して送信する電子メールによるメーリングリスト、電子掲示板、タイムライン、ミニブログ(マイクロブログ、つぶやきブログ)チャット等における制御にも上述の実施形態を適用することができる。ここで、電子メールとは、携帯電話等によるショートメッセージサービス等により送受信されるメールであってもよい。なお、ユーザ間で送受信されるメッセージの表示の即時性という観点では、チャットアプリケーションにおける制御がより好適である。
また、上述の実施形態では、ユーザ端末100間で送受信するメッセージは文字列であるとしたが、メッセージには、絵文字や写真等の画像情報や、音声等の情報が含まれていてもよい。
また、本発明の実施形態は、上述の例に限るものではなく、本発明の範囲内で様々な形態をとることができる。例えば、上述したチャットシステム1が備える各構成は、任意のコンピュータ装置に分散または集約して配置することができる。例えば、サーバ装置200は、クラウド環境やネットワーク環境、ユーザ数の規模、チャットシステム1を構成するために用意されたハードウェアの数やスペック等に応じて、任意のコンピュータ装置に分散または集約して配置することができる。
また、例えば、複数のユーザ端末100間で送受信されるメッセージの全てをサーバ装置200が記憶しておき、ユーザ端末100からの任意の要求に応じてメッセージを送信し、ユーザ端末100に表示させるようにしてもよい。
また、上述の実施形態では、複数のユーザ端末100はサーバ装置200を介してメッセージを送受信する例を示したが、サーバ装置200を介さずに、複数のユーザ端末100同士が直接メッセージを送受信してもよい。
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりメッセージの表示制御を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。