以下、本発明の一実施形態について、図面を参照して説明する。
<第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を備えていてもよい。
ユーザ端末100は、ユーザが利用するコンピュータ装置であり、サーバ装置200を介して他のユーザ端末100との間で送受信したメッセージを表示する端末装置である。ユーザ端末100としては、例えばPC(Personal Computer)、タブレットPC、スマートフォン、ゲーム機器等の、表示デバイスを具備し情報通信ネットワークに接続可能な装置が適用できる。ここでは、ユーザ端末100はスマートフォンであるとして説明する。また、ネットワーク5は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、専用回線、またはこれらの組み合わせによって構成される情報通信ネットワークである。
チャットシステム1は、チャットを行うために複数のユーザが登録されたグループ(例えば、グループチャットを行うためのグループ)内において、複数のユーザのユーザ端末100間でメッセージを送受信するメッセージ共有システムの一例であって、そのグループ内のユーザ間に限定したコミュニケーションを支援する。チャットシステム1としては、例えば、チャットアプリケーションによりグループ内の複数のユーザのユーザ端末100間で日時情報が対応付けられたメッセージを送受信して日時情報に基づいて時系列に並べて表示するコンピュータシステムが適用できる。本実施形態では、チャットアプリケーションにより送受信される複数のメッセージをユーザ端末100が表示する例を説明する。
まず、チャットにおけるメッセージの送受信処理の概要を説明する。グループ内の複数のユーザ間でチャットを行う場合、自ユーザのユーザ端末100(自装置)は、自ユーザの操作に応じて他ユーザ(チャット相手)のユーザ端末100(他装置)に送信したメッセージと、他ユーザの操作に応じて他ユーザのユーザ端末100から送信されたメッセージとを記憶する。ユーザ端末100は、記憶した複数のメッセージを、そのメッセージが送信または受信された日時に基づいて時系列に並べた画面情報(メッセージ画面)を生成し、ユーザが一覧できるように表示する。
つまり、チャットシステム1において、チャットを行うグループには、自ユーザのユーザ端末100と、一または複数の他ユーザのユーザ端末100とが登録されている。そして、ユーザ端末100は、このグループにおいて、自ユーザの操作に応じて自ユーザのユーザ端末100から送信するメッセージと、他ユーザの操作に応じて他ユーザのユーザ端末100から送信されたメッセージと、を時系列に並べたメッセージ画面を表示する。
以下、ユーザ端末100−1を利用するユーザをユーザAとし、ユーザ端末100−2を利用するユーザをユーザBとして説明する。ここで、ユーザを識別するユーザID(Identifier)が、それぞれのユーザが利用するユーザ端末100それぞれに固有に設定されている。なお、ユーザAと、ユーザBとがチャット(1対1チャット)を行うための同じグループに登録されているものとする。
図2は、チャットシステム1におけるメッセージの送受信の基本的な動作の一例を示すフローチャートである。この図2では、ユーザAからの操作に応じて、ユーザ端末100−1が送信したメッセージMを、サーバ装置200を介してユーザBのユーザ端末100−2が受信する処理の例を示している。
まず、ユーザ端末100−1は、ユーザAの操作に応じて、送信するメッセージとしてのテキストの入力を受け付ける(ステップS100)。そして、ユーザ端末100−1は、ユーザAの操作に応じて入力された(作成された)メッセージMを記憶するとともにメッセージ画面に表示する(ステップS110)。続いて、ユーザ端末100−1は、メッセージMをサーバ装置200に送信する(ステップS120)。ここで、ユーザ端末100−1が送信するメッセージMには、ユーザIDと、グループIDとが対応付けられている。なお、このグループIDは、グループを一意に識別する情報であって、このメッセージMの宛先を示す情報である。また、このユーザIDは、このメッセージを送信したユーザのユーザIDである。
次に、サーバ装置200は、ユーザ端末100−1からネットワーク5を介してメッセージMを受信し、受信したメッセージMを一時的に記憶する(ステップS130)。このとき、サーバ装置200は、このメッセージMを受信したときの受信日時をユーザ端末100−1へ受信完了通知と共に返信し、この受信日時をメッセージMがユーザ端末100−1から送信された日時情報とする。受信完了通知を受信したユーザ端末100−1は、当該受信完了通知に含まれる日時情報を取得してメッセージMと対応付けて記憶する。また、ユーザ端末100−1は、取得した日時情報に基づいて、既にメッセージ画面に表示しているメッセージMに対応付けて送信日時を表示する(ステップS135)。
続いて、サーバ装置200は、受信して記憶したメッセージMを、グループIDに基づいて、グループに登録されているユーザのユーザ端末100(ユーザBのユーザ端末100−2)に対して送信する(ステップS140)。ここで、サーバ装置200は、受信したメッセージMに、ユーザIDと、グループIDと、日時情報(サーバ装置200での受信日時)と、を対応付けて送信する。
次に、ユーザ端末100−2は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信して記憶する(ステップS150)。続いて、ユーザ端末100−2は、受信したメッセージMに対応付けられている日時情報に基づいてメッセージMを時系列に並べてメッセージ画面に表示する(ステップS160)。このとき、ユーザ端末100−2は、メッセージMを時系列に並べて表示する際に、メッセージMに対応付けられているユーザIDに基づいて、メッセージMを送信したユーザを示す情報をメッセージMに対応付けて表示する。
なお、ユーザ端末100は、自ユーザが送信したメッセージには、そのメッセージを送信した自ユーザを示す情報を対応付けて表示せずに、他ユーザが送信したメッセージにのみ、そのメッセージを送信した他ユーザを示す情報を対応付けて表示してもよい。また、ユーザ端末100は、メッセージを一画面に表示しきれない場合には、そのメッセージを時系列に並べたうちの一部を表示し、メッセージのスクロール制御を行う。
このように、チャットシステム1においては、グループ内のいずれかのユーザのユーザ端末100から送信されたメッセージは、サーバ装置200を介して、グループ内の他のユーザ(当該メッセージを送信したユーザ以外のユーザ)のユーザ端末100に送信される。これにより、チャットシステム1においては、複数のユーザが属するグループにおいてメッセージを送受信するチャット(グループチャット)を行うことができる。
ところで、ユーザは、携帯端末装置や自宅に設置しているPC等の複数の端末を利用してメッセージを送受信したいことがある。しかしながら、複数の端末のそれぞれに固有のユーザIDが設定されている場合には、端末毎に異なるユーザが利用しているものとして識別されてしまう。この場合、同一のユーザが複数の端末を利用してメッセージを送受信しようとしても、それぞれの端末を異なるユーザが利用しているものとして識別されてしまうため、同一のユーザとして利用することが困難であった。ここで、異なるユーザが利用していると識別される複数の端末それぞれに、共通の情報(例えば、メールアドレス)を設定することにより関連付けて、同一のユーザが利用する端末として管理することが考えられる。これにより、複数の端末から同一のユーザとしてメッセージを送信することが可能になる。しかしながら、チャットのメッセージは、そのメッセージを送信したユーザとは異なるユーザに送信するものである。そのため、複数の端末から同一のユーザとしてメッセージを送信できたとしても、その送信したメッセージは、同一のユーザが利用する他の端末には送信されず、メッセージ画面に表示されないことになる。即ち、同一のユーザが複数の端末を利用してメッセージを送信した場合に、端末毎に表示されるメッセージが異なるものとなってしまう。そこで、本実施形態のチャットシステム1では、同一のユーザが複数のユーザ端末100を利用してメッセージを送受信する場合であっても、同一のユーザ端末100を利用しているかのようにそれぞれのユーザ端末100がメッセージを表示することができるように構成した。
以下、本実施形態のチャットシステム1の構成について詳しく説明する。
以下の説明では、チャットシステム1には、ユーザ端末100−1とユーザ端末100−2とユーザ端末100−3とを含む複数のユーザ端末100が登録されており、ユーザ端末100−1を利用するユーザAと、ユーザ端末100−2を利用するユーザBとが、同じグループに登録されているものとする。
このグループにおいて、ユーザAとユーザBとの2ユーザが、それぞれのユーザ端末100−1とユーザ端末100−2とを利用してチャットを行うとともに、さらに、ユーザAがユーザ端末100−3を2台目の端末として加えて、このグループでチャットを行う。つまり、このグループにおいて、ユーザAは、ユーザ端末100−1とユーザ端末100−3との2台のユーザ端末100を利用してチャットを行う。
(サーバ装置200の構成)
まず、図3を参照して、サーバ装置200の構成について説明する。図3は、本実施形態によるサーバ装置200の構成を示す概略ブロック図である。
サーバ装置200は、サーバ通信部230と、サーバ記憶部240と、サーバ制御部250と、を備えている。サーバ通信部230は、ネットワーク5を介して複数のユーザ端末100―Nと通信する。
サーバ記憶部240は、ユーザ情報記憶部241と、グループ情報記憶部242と、メッセージ情報一時記憶部243とを備えており、チャットシステム1における各種情報を記憶する。
ユーザ情報記憶部241は、チャットシステム1において、チャットを行うユーザに関するユーザ情報を記憶する。具体的には、サーバ装置200を介してメッセージを送受信する複数のユーザ端末100それぞれに固有に設定されたユーザIDをユーザ情報として記憶する。ユーザIDは、チャットシステム1において、ユーザが利用するユーザ端末100を一意に識別する情報であって、端末それぞれに対応する互いに異なるユーザIDである。このユーザIDは、例えば、ユーザ端末100が最初にチャットシステム1に登録されたときに、サーバ装置200において発行される。図4は、ユーザ情報記憶部141に記憶されるユーザ情報の一例を示す図である。ここでは、ユーザAが利用するユーザ端末100−1に対してユーザID「U01」が設定され、ユーザBが利用するユーザ端末100−2に対してユーザID「U02」が設定されている。また、ユーザAが利用するユーザ端末100−3(2台目のユーザ端末100)にはユーザID「U11」が設定されている。なお、ユーザID「U03」は、チャットシステム1に登録されている、ユーザA及びユーザB以外のユーザ(例えば、ユーザC)が利用するユーザ端末100に設定されているユーザIDである。
また、ユーザ情報記憶部241は、上述のユーザIDに対応付けて、メールアドレスを記憶する。このメールアドレスは、各ユーザ端末100を利用するそれぞれのユーザを一意に識別可能な情報である。つまり、同一のユーザが利用するユーザ端末100には同一のメールアドレスが設定され、互いに異なるユーザが利用するユーザ端末100には互いに異なるメールアドレスが設定される。例えば、このメールアドレスは、各ユーザ端末100においてそれぞれ登録され、サーバ装置200が取得してユーザ情報記憶部241に記憶される。
ここでは、ユーザAが利用するユーザ端末100−1とユーザ端末100−3とにそれぞれ設定されているユーザIDには、同一のメールアドレス(ユーザAのメールアドレス)がそれぞれ対応付けられている。また、ユーザBが利用するユーザ端末100−2に設定されているユーザIDには、ユーザAが利用するユーザ端末100のメールアドレスとは異なるメールアドレス(ユーザBのメールアドレス)が対応付けられている。
このように、ユーザ情報記憶部241は、ユーザが利用する各ユーザ端末100を一意に識別する情報であるユーザIDと、各ユーザ端末100を利用するそれぞれのユーザを一意に識別可能な情報であるメールアドレスとを、それぞれ対応付けて記憶する。そして、各ユーザ端末100にそれぞれ設定された互いに異なるユーザIDのうち、同一のメールアドレスが対応付けられたユーザID同士が関連付けられる。この関連付けは、サーバ制御部250(後述の管理部253)の処理によって行われる。
ここで、各種のユーザに関するユーザ情報(ユーザ名やユーザ画像等)は、このサーバ装置200に記憶されずに、それぞれのユーザが利用するユーザ端末100において記憶される。なお、サーバ装置200において、ユーザ情報記憶部241が、各種のユーザに関するユーザ情報(ユーザ名やユーザ画像等)をユーザIDに対応付けて記憶する構成としてもよい。
グループ情報記憶部242は、チャットを行うユーザのグループに関する情報を記憶する。具体的には、グループ情報記憶部242は、複数のユーザが属するグループと、当該複数のユーザのユーザIDとを対応付けて記憶する。図5は、グループ情報記憶部142に記憶されるグループ情報の一例を示す図である。ひとつのグループには2以上のユーザが属する。例えば、ユーザAとユーザBとがチャットを行う場合、ユーザAとユーザBとが属するグループに関するグループ情報がグループ情報記憶部142に記憶される。グループ情報には、グループIDと、グループ名と、グループに属するユーザ(グループメンバー)としてのユーザIDとを対応付けた情報が含まれる。グループIDは、サーバ装置200で生成されるグループを一意に識別する情報である。グループ名は、グループの名称であり、グループが形成された場合に自動的に付与され、事後的にユーザにより設定できるようになっている。ユーザIDは、そのグループに属するユーザのユーザ端末100を識別する情報である。
ここでは、例えば、グループIDが「G1」であるグループには、グループ名として「グループAB」が設定され、ユーザAとユーザBとの2ユーザが属している。ここで、グループID「G1」には、ユーザID「U01」とユーザID「U02」とが対応付けられている。即ち、この「グループAB」は、ユーザAとユーザBとがチャット(1対1チャット)を行うことができるグループであって、ユーザAのユーザ端末100−1とユーザBのユーザ端末100−2とが登録されたグループである。
なお、この「グループAB」において、ユーザAは、ユーザID「U01」に関連付けられているユーザID「U11」のユーザ端末100−3からも、チャットを行うことが可能である。ユーザ端末100−3は、グループID「G1」の「グループAB」に登録されていないが、「グループAB」に登録されているユーザ端末100−1とユーザIDが関連付けられている(ユーザ情報においてメールアドレスにより関連付けられている)ことにより、ユーザAの端末として認識されてチャットを行うことが可能になる。この場合のメッセージの送信処理については、後述する。
メッセージ情報一時記憶部243は、各ユーザ端末100から受信したメッセージ情報を一時的に記憶する。ここで、メッセージ情報には、グループIDと、ユーザIDと、日時情報と、メッセージとを対応付けた情報が含まれる。グループIDは、メッセージが送受信されたグループを識別する情報である。ユーザIDは、メッセージを送信したユーザ(ユーザのユーザ端末100)を識別する情報である。日時情報は、メッセージが送信された日時を示す情報である。本実施形態では、ユーザ端末100の計時機能が示す時間情報が相違しているユーザ間や、時差のある地域のユーザ間で互いに送信したメッセージが正しく時系列に並ぶようにユーザ端末100から送信されたメッセージ情報をサーバ装置200で受信した受信時間を当該メッセージが送信された日時を示す日時情報としている。日時情報には、年、月、日、時、分、秒(YYYY/MM/DD HH:MM:SS)の情報が含まれる。メッセージは、他ユーザとの間で送受信したメッセージを示す文字列(テキスト)である。
例えば、メッセージ情報一時記憶部243は、受信したメッセージ情報が、宛先(送信先)のユーザのユーザ端末100に対して送信されるまでの間、受信したメッセージ情報を一時的に記憶する。
なお、サーバ記憶部240が備えている各記憶部のそれぞれは、サーバ装置200の内部に備えられていてもよいし、サーバ装置200の外部に備えられていてもよい。
図3に戻り、サーバ制御部250は、受信部251と、送信部252と、管理部253とを備えている。ここで、受信部251及び送信部252は、サーバ通信部230を介して、複数のユーザ端末100と通信する。
受信部251は、グループを構成する複数のユーザのそれぞれが利用するユーザ端末100から送信されたメッセージを受信する。例えば、受信部251は、ユーザ端末100からグループIDを宛先として送信されたメッセージ情報を受信すると、受信したメッセージ情報をメッセージ情報一時記憶部243に一時的に記憶させる。
送信部252は、受信部251が受信してメッセージ情報一時記憶部243に記憶させたメッセージ情報を、グループを構成する複数のユーザのそれぞれのユーザ端末100のうち、当該メッセージを送信したユーザ端末100(例えば、ユーザAのユーザ端末100−1)を除くユーザ端末100(例えば、ユーザBのユーザ端末100−2)に対して送信する。具体的には、送信部252は、受信部251が受信したメッセージ情報に含まれるグループIDに対応付けられたユーザIDを、宛先となるユーザ端末100のユーザIDとして特定する。そして、送信部252は、受信部251が受信したメッセージ情報を、宛先として特定したユーザIDが示すユーザ端末100のうち、当該メッセージ情報を送信したユーザのユーザIDが示すユーザ端末100を除くユーザ端末100に対して送信する。
また、送信部252は、受信部251が受信したメッセージ情報を、チャットシステム1に登録されているユーザ端末100のうち、当該メッセージ情報を送信したユーザ端末100(例えば、ユーザAのユーザ端末100−1)に設定されているユーザIDと関連付けられているユーザIDが設定されているユーザ端末100(例えば、ユーザAのユーザ端末100−3)に対して送信する。ここで、この関連付けられているユーザIDが設定されているユーザ端末100(例えば、ユーザAのユーザ端末100−3)は、このグループにおいてメッセージ情報を送信したユーザ端末100を利用するユーザと同一のユーザが利用するユーザ端末100であって、このグループに登録されていないユーザ端末100である。また、この同一のユーザが利用するユーザ端末100のユーザIDは、ユーザ情報記憶部141に記憶されているユーザ情報において、メールアドレスに基づいて関連付けられている。
また、送信部252は、グループに登録されているユーザ端末100(例えば、ユーザAのユーザ端末100−1)に設定されているユーザIDと関連付けられているユーザIDが設定されているユーザ端末100(例えば、ユーザAのユーザ端末100−3)から送信されたメッセージを受信部251が受信した場合、その受信したメッセージを、当該グループ内のユーザ端末100(例えば、ユーザAのユーザ端末100−1及びユーザBのユーザ端末100−2)に対して送信する。
管理部253は、チャットシステム1に登録された複数のユーザ端末100のそれぞれに対応する互いに異なるユーザIDを第1の情報として管理する。具体的には、管理部253は、複数のユーザ端末100のそれぞれに対して互いに異なるユーザIDを発行して、ユーザ情報記憶部241に記憶させるとともに、各ユーザ端末100に対して、それぞれ対応するユーザIDを送信する。これにより、管理部253は、チャットシステム1に登録された複数のユーザ端末100のそれぞれに固有のユーザIDを設定して、それぞれのユーザ端末100を識別可能に管理する。
また、管理部253は、複数のユーザのそれぞれを識別可能なメールアドレスを第2の情報として管理する。具体的には、管理部253は、ユーザ端末100毎に、それぞれのユーザ端末100を識別可能なユーザIDと、複数のユーザのそれぞれを識別可能なメールアドレスとを対応付けて、ユーザ情報記憶部241に記憶させる。即ち、管理部253は、ユーザ端末100毎に、それぞれのユーザ端末100を識別可能なユーザIDと、複数のユーザのそれぞれを識別可能なメールアドレスとを対応付けることにより、メールアドレスに基づいて、互いに異なるユーザIDのそれぞれを関連付けて管理する。例えば、図4に示すように、同一のメールアドレスが対応付けられているユーザID「U01」とユーザID「U11」とが関連付けられている。
このように、管理部253は、複数のユーザ端末100それぞれに固有に設定されているユーザIDのうち、同一のメールアドレスが対応付けられているユーザIDを関連付けて管理する。これにより、サーバ装置200は、複数のユーザ端末100のうち、同一のユーザが利用するユーザ端末100を識別することができる。
(メッセージ送信処理の動作)
次に、図6を参照して、本実施形態によるチャットシステム1の動作例を説明する。図6は、本実施形態によるメッセージの送信処理の一例を示すフローチャートである。この図6では、ユーザAとユーザBとがチャットを行う「グループAB」のチャットにおいて、ユーザAが2台のユーザ端末100(ユーザ端末100−1、ユーザ端末100−3)を利用してチャットを行う場合のメッセージの送信処理の一例を示している。
なお、図6に示すステップS100、S110、S120、S130、S135、S150、S160の各処理は、図2の同じ符号を付した各処理と同様の処理である。つまり、ユーザBのユーザ端末100−2は、ユーザAのユーザ端末100−1から送信されたメッセージMを、サーバ装置200を介して受信してメッセージ画面に時系列に並べて表示する。
一方、ユーザAの2台目のユーザ端末100−3も、ユーザAのユーザ端末100−1から送信されたメッセージMを受信する。具体的には、サーバ装置200の送信部252は、ユーザAのユーザ端末100−1から送信されたメッセージMを受信すると、受信したメッセージMに、ユーザIDと、グループIDと、日時情報(サーバ装置での受信時間)と、を対応付けてユーザ端末100−2(グループIDが示すグループ内の他の端末)に送信するとともに、受信したメッセージMに対応付けられているユーザIDと関連付けられているユーザIDが設定されているユーザ端末100−3に対しても送信する(ステップS145)。
ユーザ端末100−3は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信して記憶する(ステップS170)。続いて、ユーザ端末100−3は、受信したメッセージMに対応付けられている日時情報に基づいてメッセージMを時系列に並べてメッセージ画面に表示する(ステップS180)。このとき、ユーザ端末100−3は、メッセージMに対応付けられているユーザIDに基づいて、メッセージMを送信したユーザが自ユーザであるとして、メッセージMを時系列に並べてメッセージ画面に表示する。
このように、サーバ装置200は、「グループAB」のチャットにおいて、ユーザAが利用するユーザ端末100−1から送信されたメッセージ情報を、同じユーザAが利用するユーザ端末100−3に送信する。これにより、サーバ装置200は、ユーザAがユーザ端末100−1から送信したメッセージ情報をユーザ端末100−3に記憶させることができる。よって、サーバ装置200は、ユーザAがユーザ端末100−1から送信したメッセージをユーザ端末100−3においても表示可能とすることができる。
なお、サーバ装置200は、「グループAB」のチャットにおいて、ユーザBのユーザ端末100−2から送信されたメッセージ情報を、ユーザAが利用するユーザ端末100−1とユーザ端末100−3との両方に送信してもよい。例えば、送信部252は、ユーザB(ユーザID「U02」)のユーザ端末100−2から送信されたメッセージ情報を、「グループAB」に属する他のユーザのユーザ端末100であるユーザID「U01」が示すユーザ端末100−1に対して送信するとともに、ユーザID「U01」に関連付けられているユーザID「U11」が示すユーザ端末100−3に対して送信してもよい。これにより、サーバ装置200は、ユーザBのユーザ端末100−2から送信されたメッセージをユーザ端末100−1とユーザ端末100−3とのそれぞれにおいて表示可能とすることができる。
また、サーバ装置200は、「グループAB」のチャットにおいて、ユーザA(ユーザID「U11」)のユーザ端末100−3から送信されたメッセージ情報を、ユーザID「U11」に関連付けられているユーザID「U01」のユーザ端末100−1から送信されたメッセージ情報とみなして、ユーザBのユーザ端末100−2に対して送信するとともに、ユーザID「U01」のユーザ端末100−1に対して送信してもよい。これにより、サーバ装置200は、ユーザAのユーザ端末100−3から送信したメッセージを、ユーザ端末100−1から送信したメッセージと同様に、ユーザAのユーザ端末100−1とユーザBのユーザ端末100−2とのそれぞれにおいて表示可能とすることができる。
以上説明してきたように、本実施形態によるサーバ装置200は、複数のユーザ端末100(端末装置)のそれぞれに対応する互いに異なるユーザID(第1の情報)を管理する管理部253を備えている。また、サーバ装置200は、受信部251と、送信部252とを備えている。受信部251は、グループを構成する複数のユーザのそれぞれが利用するユーザ端末100(端末装置)から送信されたメッセージを受信する。送信部252は、受信部251が受信したメッセージを、グループを構成する複数のユーザのそれぞれのユーザ端末100(端末装置)のうち当該メッセージを送信したユーザ端末100(第1端末装置)を除くユーザ端末100(第2端末装置)に送信する。さらに、送信部252は、複数のユーザ端末100(端末装置)のうち、ユーザID(第1の情報)が当該メッセージを送信したユーザ端末100(第1端末装置)に対応するユーザID(第1の情報)と関連付けられているユーザ端末100(第3端末装置)に送信する。
つまり、送信部252は、受信部251が受信したメッセージを、グループ内のユーザのユーザ端末100のうち、当該メッセージを送信したユーザを除くグループ内のユーザのユーザ端末100と、当該メッセージを送信したユーザのユーザ端末100と関連付けられているユーザ端末100と、に対して送信する。ここで、メッセージを送信したユーザのユーザ端末100と関連付けられているユーザ端末100とは、例えば、メッセージを送信したユーザと同一のユーザが利用する他のユーザ端末100である。例えば、チャットシステム1に登録された複数のユーザ端末100にはそれぞれ固有にユーザIDが設定されており、それぞれのユーザIDが関連付けられることによって、同一のユーザが利用する複数のユーザ端末100が関連付けられている。
これにより、サーバ装置200は、グループ内のユーザのユーザ端末100から送信されたメッセージを、そのメッセージを送信したユーザが利用する他のユーザ端末100においても表示可能とすることができる。即ち、サーバ装置200は、同一のユーザが複数のユーザ端末100を利用してメッセージの送受信を行う場合であっても、送受信されるメッセージを、同一のユーザが利用する複数のユーザ端末100のそれぞれにおいて、同様に表示可能なようにすることができる。よって、本実施形態によれば、同一のユーザが複数のユーザ端末100を利用してメッセージを送受信する際の利便性を向上させることができる。
また、送信部252は、受信部251が受信したメッセージを、グループに属する複数のユーザのそれぞれのユーザ端末100(端末装置)のうち当該メッセージを送信したユーザ端末100(第1端末装置)を除く他のユーザ端末100(第2端末装置)に送信するとともに、ユーザID(第1の情報)が、当該他のユーザ端末100(第2端末装置)に対応するユーザID(第1の情報)と関連付けられているユーザ端末100(第4端末装置)に送信する。
これにより、サーバ装置200は、グループ内のユーザのユーザ端末100から送信されたメッセージを、グループ内の他のユーザのユーザ端末100(第2端末装置)と、当該他のユーザが利用する他のユーザ端末100(第4端末装置)とのそれぞれにおいて表示可能とすることができる。即ち、サーバ装置200は、同一のユーザが複数のユーザ端末100を利用してチャットを行う場合であっても、チャットにおいて送受信されるメッセージを、同一のユーザが利用する複数のユーザ端末100のそれぞれにおいて、同様に表示可能なようにすることができる。よって、本実施形態によれば、同一のユーザが複数のユーザ端末100を利用してメッセージを送受信する際の利便性を向上させることができる。
なお、同一のユーザが利用する複数のユーザ端末100のそれぞれにおいて、同様にチャットのメッセージが表示されるメッセージ画面の表示例と、ユーザ端末100の構成については、後述の第2の実施形態で詳しく説明する。
また、管理部253は、複数のユーザのそれぞれを識別可能なメールアドレス(第2の情報)に基づいて、互いに異なるユーザID(第1の情報)のそれぞれを関連付けて管理する。そして、送信部252は、受信部251が受信したメッセージを、メールアドレス(第2の情報)に基づいて、ユーザID(第1の情報)が、当該メッセージを送信したユーザ端末100(第1端末装置)に対応するユーザID(第1の情報)と関連付けられているユーザ端末100(他端末装置、第3端末装置)に送信する。
これにより、サーバ装置200は、チャットシステム1に登録された複数のユーザ端末100のそれぞれを、複数のユーザのそれぞれを識別可能なメールアドレスに基づいて関連付けることができる。例えば、チャットシステム1に登録された複数のユーザ端末100うち、同一のユーザが利用する複数の端末を、同一のユーザを識別可能なメールアドレスに基づいて関連付けることができる。
なお、上述の実施形態では、チャットシステム1に登録された複数のユーザ端末100に対応するユーザIDが第1の情報として関連付けられる例を示したが、これに限られるものではない。例えば、ユーザIDに代えて、ユーザ端末100のそれぞれに対応する電話番号、端末ID、製造番号等が第1の情報として関連付けられてもよい。
また、上述の実施形態では、ユーザIDを関連付ける第2の情報としてのメールアドレスが、ユーザIDに対応付けられてユーザ情報記憶部241に記憶される例を示したが、このメールアドレスは、ユーザIDを関連付けるときに利用され、ユーザ情報記憶部241には記憶されなくともよい。この場合、例えば、サーバ装置200は、ユーザIDを関連付けるときには、ユーザ端末100からメールアドレスを取得して、取得したメールアドレスに基づいてユーザIDの関連付けた後には、メールアドレスに代えてユーザIDの関連付けを示す情報を記憶してもよい。
また、上述の実施形態では、チャットシステム1に登録された複数のユーザ端末100それぞれのユーザID(第1の情報)が、メールアドレス(第2の情報)に基づいて関連付けられている例を示したが、これに限られるものではない。例えば、メールアドレスに代えて、それぞれのユーザID(第1の情報)が、複数のユーザのそれぞれを識別可能な文字列等に基づいて関連付けられてもよい。
また、サーバ装置200は、メールアドレス等の第2の情報を用いずに、ユーザID等の第1の情報を関連付けてもよい。例えば、サーバ装置200は、ユーザが2台目以降のユーザ端末100を登録する際に、既に登録されているユーザ端末100を指定して登録することにより、既に登録されている端末と2台目以降の端末とのそれぞれのユーザID(第1の情報)を関連付けて、その関連付けしたことを示す情報(例えば、同一のユーザが利用する端末のユーザIDに、関連付けを示す同一のフラグ情報を対応付けたユーザ情報)を管理してもよい。また、サーバ装置200は、同一のユーザが利用する複数のユーザ端末100のそれぞれには、関連付け可能な形態のユーザIDを付与するようにしてもよい。ここで、関連付け可能な形態のユーザIDとは、例えば、ユーザIDを構成する文字列のうちの一部が共通な形態(例えば、「U01−01」と「U01−02」とのように一部の文字列「U01」が共通な形態)のユーザIDとしてもよい。
<第2の実施形態>
次に、本発明の第2の実施形態を説明する。本実施形態では、チャットシステム1におけるユーザ端末100による表示処理について説明する。
まず、図7を参照して、同一のユーザが複数のユーザ端末100を利用してチャットを行った場合のメッセージ画面について説明する。
(メッセージ画面の表示例)
図7は、本実施形態によるユーザ端末100が表示するメッセージ画面の一例を示す図である。この図は、ユーザAがユーザ端末100−1とユーザ端末100−3とを利用して、「グループAB」におけるチャットを行った場合に、ユーザ端末100−3が表示するメッセージ画面の一例を示している。
符号110aは、メッセージ画面が表示されている領域の全体を示している。このメッセージ画面は、送受信された複数のメッセージのうちの一部分が表示されている。ユーザ端末100は、例えばタッチパネルである画面の任意の箇所において行われるスクロール操作に応じて、メッセージを上下にスクロール表示させることによって、この一画面内に表示しきれていないメッセージを表示可能である。符号110bの領域には、グループ名(ここでは、グループAB)が表示される。
符号110cの領域には、そのグループにおいて送信されたメッセージが、そのメッセージが送信された日時に基づいて昇順(新しいメッセージが符号110cの領域の下側)に表示されるように表示コンポーネントが配置される。例えば、符号110cの領域には、他ユーザのユーザ端末100から送信されたメッセージがメッセージ画面の左側からの吹き出しに表示され、自ユーザから送信するメッセージがメッセージ画面の右側からの吹き出しに表示される。
左側からの吹き出しE1には、他ユーザ(ここではユーザB)から送信されたメッセージが表示される。アイコンE2は、吹き出しE1に表示されるメッセージを送信したユーザを示すアイコンであって、ここでは、ユーザBを示すプロフィール画像である。ユーザ名ラベルE3には、アイコンE2に対応するユーザのユーザ名が表示される。ここでは、ユーザBのユーザ名を「nameB」とし、ユーザBのユーザ名が表示される。時間ラベルE4には、吹き出しE1に表示されたメッセージの送信時間が表示される。
一方、右側からの吹き出しE11には、自ユーザ(ここでは、ユーザA)がユーザ端末100−3(自端末装置)から送信するメッセージが表示される。時間ラベルE12には、吹き出しE11に表示されるメッセージの送信時間が表示される。ここで、左側からの吹き出しに表示される他ユーザのメッセージには、そのメッセージを送信したユーザを示す情報(例えば、アイコンE2、ユーザ名ラベルE3)が対応付けられて表示されるが、一方、右側からの吹き出しに表示される自ユーザが送信したメッセージには、そのメッセージを送信したユーザを示す情報(即ち、自ユーザの情報)は表示されない。これは、自ユーザを示す情報が表示されなくとも、メッセージ画面の左側の吹き出しE11に表示されたメッセージが、自ユーザが送信したものであることが判別可能なためである。
なお、自ユーザ(ここでは、ユーザA)がユーザ端末100−1(ユーザAが利用する他の端末)から送信したメッセージも、ユーザ端末100−3(自端末装置)から送信するメッセージと同様に、メッセージ画面の右側からの吹き出しに表示される。例えば、右側からの吹き出しE13には、自ユーザ(ここでは、ユーザA)がユーザ端末100−1(ユーザAが利用する他の端末)から送信したメッセージが表示される。時間ラベルE14には、吹き出しE13に表示されるメッセージの送信時間が表示される。
符号110dの領域には、ユーザ端末100からメッセージを入力するための表示コンポーネントが配置される。テキストボックスE21には、ユーザから入力されるメッセージが表示される。なお、具体的には、ユーザは、例えば、テキストボックスE21と対で表示されるソフトウェアキーボードに対する操作により、テキストボックスE21にテキストを入力する。ここで、テキストボックスE21に入力されるテキストには、文字、記号、絵文字、等が含まれる。送信ボタンE22は、テキストボックスE21に入力されたメッセージを他のユーザに送信するための操作子である。
このように、同一のユーザ(ユーザA)がユーザ端末100−1とユーザ端末100−3とを用いてチャットを行った場合、ユーザ端末100−3が表示するメッセージ画面において、ユーザ端末100−1から送信されたメッセージがユーザ端末100−3から送信したメッセージと同じように表示される。なお、ユーザ端末100−1が表示するメッセージ画面も、図7に示すメッセージ画面と同様に表示される。即ち、ユーザ端末100−1が表示するメッセージ画面において、ユーザ端末100−3から送信されたメッセージがユーザ端末100−1から送信したメッセージと同じように表示される。
なお、他ユーザに対しては、自ユーザが複数のユーザ端末100を利用していることを明示する必要がないが、自ユーザのユーザ端末100−1とユーザ端末100−3においては、どちらの端末から送信したメッセージであるかを区別して表示させてもよい。すなわち、それぞれのメッセージが表示される吹き出しの色、形、枠の線種等によって、どちらの端末から送信したメッセージであるかが区別されてもよい。また、自ユーザの他方のユーザ端末100から送付されたメッセージには、送信ユーザを示す自身のユーザ情報(ユーザ名やプロフィール画像)がメッセージに対応付けて表示されることによって区別されてもよい。
(ユーザ端末100の構成)
次に、上述したメッセージ画面を表示するユーザ端末100の構成について説明する。図8は、本実施形態によるユーザ端末100の構成を示す概略ブロック図である。ユーザ端末100は、表示部110と、操作受付部120と、通信部130と、記憶部140と、制御部150とを備えている。なお、図1に示す複数のユーザ端末100−Nは、同様の各部を備えるものとする。
表示部110は、画像や文字等の情報を表示する表示デバイスである。表示部110の情報を表示する領域を画面といい、表示部110の画面に表示される情報を画面情報という。なお、この画面情報には一画面では表示しきれない情報も含まれる。例えば、表示部110は、チャットアプリケーションにおいて、グループ内のユーザ間で送受信したメッセージを時系列に並べて表示するメッセージ画面の画面情報を表示部110に表示する。ここで、表示部110が表示する画面情報は、ユーザからの操作に応じて制御部150によって制御される。
操作受付部120は、ユーザからの操作に応じてユーザの指示を受付けて、指示内容に応じた入力指示を生成する入力部(入力デバイス)である。操作受付部120には、例えば、キーボードやボタン、タッチパネル等を適用できる。本実施形態では、操作受付部120と表示部110とは一体に構成されてユーザからの操作入力を受け付けるタッチパネルを適用した例を説明する。チャットアプリケーションにおいて、ユーザのタッチパネルへの操作に応じて、操作受付部120は、例えば、チャットシステム1への登録、送信するメッセージの入力、ユーザ情報(ユーザ名、ユーザ画像、メールアドレス等)の入力等を受け付ける。また、ユーザのタッチパネルへの操作に応じて、操作受付部120は、表示部110に表示する画面の切替え指示やスクロール指示等を受け付ける。
通信部130は、ネットワーク5を介してサーバ装置200と通信する。
記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュROM、HDD(Hard Disk Drive)等の記録媒体またはこれらの組合せを用いて構成され、ユーザ端末100が備える各部を制御するためのプログラムや各種情報を記憶する。また、記憶部140は、ユーザ端末100に装着するメモリカードであってもよい。記憶部140は、ユーザ情報記憶部141と、グループ情報記憶部142と、メッセージ情報記憶部143と、画面情報記憶部144とを備えている。
ユーザ情報記憶部141は、チャットを行うユーザに関するユーザ情報を記憶する。図9及び図10は、ユーザ情報記憶部141に記憶されるユーザ情報の例を示す図である。ユーザ情報には、ユーザIDと、ユーザ名と、ユーザ画像とを対応付けた情報が含まれる。ユーザIDは、上述したサーバ装置200のユーザ情報記憶部241に記憶されているユーザIDと同様の情報であって、ユーザが利用する端末を一意に識別する情報である。このユーザIDは、例えば、ユーザ端末100が最初にチャットシステム1に登録されたときにサーバ装置200から取得して、記憶される。ユーザ名は、そのユーザの名称である。ユーザ画像は、そのユーザのプロフィール画像である。具体的には、ユーザ画像のデータを識別する情報が、ユーザIDと、ユーザ名と対応付けられており、ユーザ情報記憶部141は、上述のユーザ情報と、ユーザ画像の実データとをそれぞれ記憶する。なお、ユーザ情報記憶部141は、ユーザ情報として、自ユーザのユーザ情報と、チャット相手となる他ユーザのユーザ情報とを記憶する。
ここで、自ユーザのユーザ情報には、ユーザIDに対応付けたメールアドレス(自ユーザのメールアドレス)も含まれる。このメールアドレスは、ユーザを一意に識別可能な情報であって、自ユーザの操作に応じて登録されたものである。また、このメールアドレスは、自ユーザが複数のユーザ端末100を用いてチャットを行う場合に、自ユーザが利用するそれぞれのユーザ端末100に設定されている互いに異なるユーザIDを関連付ける情報である。例えば、自ユーザは、2台目以降の端末をチャットシステム1に新たに登録する際には、登録済みの端末のユーザIDに対応付けられているメールアドレスと同一のメールアドレスを、新たに登録する2台目以降の端末において設定する。これにより、サーバ装置200は、新たに登録される2台目以降の端末のユーザIDを発行し、当該発行したユーザIDと、設定されたメールアドレスとを対応付けてユーザ情報記憶部241に記憶する。この2台目以降の端末のユーザ情報は、サーバ装置200から、登録済みの端末に対して送信される。また、2台目以降の端末には、同一のメールアドレスが対応付けられている登録済みの端末のユーザ情報がサーバ装置200から送信される。これにより、ユーザ端末100のユーザ情報記憶部141は、自ユーザが複数の端末を利用している場合には、その利用している複数の端末それぞれに対応するユーザ情報を記憶する。
図9に示すユーザ情報は、自ユーザのユーザ情報の一例であって、ユーザAのユーザ端末100−1に記憶されているユーザAのユーザ情報の例である。ここでは、ユーザ端末100−1のユーザ情報として、ユーザID「U01」と、ユーザAのユーザ名、とユーザAのユーザ画像と、ユーザAのメールアドレスと、が対応付けられている。また、ユーザAが利用する他の端末であるユーザ端末100−3のユーザ情報として、ユーザID「U11」と、ユーザAのユーザ名、とユーザAのユーザ画像と、ユーザAのメールアドレスと、が対応付けられている。なお、ユーザ端末100−3のユーザ情報記憶部141にも、ユーザID「U11」のユーザ情報とユーザID「U01」のユーザ情報との両方のユーザ情報が同様に記憶される。
また、図10に示すユーザ情報は、チャット相手として登録可能な他ユーザのユーザ情報の一例であって、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報(ユーザB、及びユーザCのユーザ情報を含むユーザ情報)の例である。この図10に示す他ユーザのユーザ情報は、他ユーザそれぞれのユーザ端末100−Nでそのユーザ自身で登録したものである。この図10に示す、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報は、チャット相手として登録可能なユーザ関係になるとき、又は、チャット相手として登録されたときに、サーバ装置200を介して他ユーザそれぞれのユーザ端末100−Nから取得して記憶される。なお、ユーザ端末100−3のユーザ情報記憶部241にも、このユーザ端末100−1に記憶される他ユーザのユーザ情報が同様に記憶される。つまり、ユーザ端末100−1とユーザ端末100−3とのそれぞれには、同様のユーザ情報が記憶される。
なお、ユーザ端末100が備えるユーザ情報記憶部141には、そのユーザ自身に関連する情報(例えば、ユーザ自身のユーザ情報、及び、ユーザ自身と同じグループに登録可能な他ユーザのユーザ情報)のみが記憶されている。これに対し、サーバ装置200が備えるユーザ情報記憶部241には、サーバ装置200を介してメッセージの送受信を行う全てのユーザに関する情報が記憶されている。
グループ情報記憶部142は、チャットを行うユーザのグループに関する情報を記憶する。例えば、グループ情報記憶部142は、サーバ装置200のグループ情報記憶部242に記憶されているグループ情報と同様の情報が記憶される。
なお、ユーザ端末100が備えるグループ情報記憶部142には、そのユーザ自身に関連するグループのグループ情報(例えば、ユーザ自身が属するグループのグループ情報)のみが記憶される。これに対し、サーバ装置200が備えるグループ情報記憶部242とには、サーバ装置200を介してメッセージの送受信を行う全てのユーザに関するグループのグループ情報が記憶される。
メッセージ情報記憶部143は、自ユーザが属するグループにおいて送受信されたメッセージに関するメッセージ情報を記憶する。図11は、メッセージ情報記憶部143に記憶されるメッセージ情報の一例を示す図である。このメッセージ情報には、サーバ装置200のメッセージ情報一時記憶部243に一時的に記憶されるメッセージ情報と同様に、グループIDと、ユーザIDと、日時情報と、メッセージとを対応付けした情報が含まれる。なお、上述したサーバ装置200のメッセージ送信処理によって、ユーザ端末100−1とユーザ端末100−3とのそれぞれのメッセージ情報記憶部143には、自ユーザが属するグループにおいて送受信されたメッセージ情報がそれぞれ記憶される。
図8に戻り、画面情報記憶部144は、上述したような複数のメッセージを時系列に並べて表示するメッセージ画面の画面情報を一時的に記憶する。
制御部150は、ユーザ端末100の制御中枢として機能するCPU(Central Processing Unit)等の情報処理装置を備えており、ユーザ端末100が備える各部を制御する。制御部150は、指示部151と、メッセージ送受信部152と、ユーザ情報登録部153と、表示制御部154と、を備えている。
指示部151は、操作受付部120に対するユーザの操作に応じて操作受付部120により生成された入力指示に基づいて、指示情報を生成する。例えば、指示部151は、操作受付部120により生成された入力指示に基づいて、チャットにおけるメッセージの送信指示やメッセージの表示指示を生成する。この指示部151が生成した指示に基づいて、メッセージ送受信部152がメッセージを送信する処理を行い、表示制御部154がメッセージを表示部110に表示させる処理を行う。
例えば、指示部151は、チャットのメッセージ画面において(例えば、図7に示すテキストボックスE21に)メッセージが入力され、その入力されたメッセージを送信する操作(例えば、図7に示す送信ボタンE22に対するタップ操作)がされると、入力されたメッセージに、そのメッセージが入力されたメッセージ画面のチャットのグループを識別するグループIDと、メッセージを入力したユーザである自ユーザを識別するユーザIDと、を対応付けたメッセージ情報を含む送信指示を生成する。
メッセージ送受信部152は、指示部151が、操作受付部120に対する操作に応じて送信指示を生成すると、生成された送信指示に含まれるメッセージ情報を、当該メッセージ情報に含まれるグループIDを宛先として、サーバ装置200に送信する。このとき、メッセージ情報に含まれるグループID、ユーザID(自ユーザ)、及びメッセージを、新たなレコード(1メッセージ分のデータ)としてメッセージ情報記憶部143に記憶させる。なお、メッセージ送受信部152は、送信したメッセージ情報に対応して受信するサーバ装置200から受信完了通知と共に日時情報(サーバ装置200がこのメッセージを受信したときの受信日時情報)を取得し、対応するメッセージのレコードの日時情報を更新する。また、メッセージ送受信部152は、他のユーザ端末100から自ユーザが属するグループIDを宛先として送信されたメッセージ情報を、サーバ装置200から受信する。そして、メッセージ送受信部152は、受信したメッセージ情報に含まれるグループID、ユーザID、日時情報、及びメッセージを、新たなレコードとしてメッセージ情報記憶部143に記憶させる。
ユーザ情報登録部153は、チャットシステム1においてチャットを行うためのユーザ情報を登録する。例えば、ユーザ情報登録部153は、ユーザからの操作受付部120に対する操作に応じて、チャットシステム1に登録するための登録要求をサーバ装置200に対して送信する。そして、ユーザ情報登録部153は、この登録要求に応じてサーバ装置200が発行したユーザIDを取得し、取得したユーザIDを自ユーザのユーザ情報としてユーザ情報記憶部141に記憶させる。また、ユーザ情報登録部153は、ユーザからの操作受付部120に対する操作に応じて、ユーザ名と、ユーザ画像と、メールアドレスとを、上述のユーザIDに対応付けて、ユーザ情報記憶部141に記憶させる。例えば、ユーザ情報登録部153は、図9に示すように、ユーザID「U01」と、ユーザAのユーザ名、とユーザAのユーザ画像と、ユーザAのメールアドレスとを対応付けて、ユーザ情報記憶部141に記憶させる。
また、ユーザ情報登録部153は、自ユーザが2台目以降の他のユーザ端末100を新たに登録した際には、サーバ装置200から送信されるこの新たに登録されたユーザ端末100のユーザ情報を取得して、ユーザ情報記憶部141に記憶させる。例えば、ユーザ情報登録部153は、図9に示すように、自ユーザが利用する他の端末のユーザ情報として、ユーザID「U11」と、ユーザAのユーザ名、とユーザAのユーザ画像と、ユーザAのメールアドレスとを対応付けて、ユーザ情報記憶部141に記憶させる。
ここで、ユーザ端末100(例えば、ユーザ端末100−3)を2台目以降の端末として登録する場合には、この登録するユーザ端末100のユーザ情報登録部153は、チャットシステム1に対して2台目以降の端末として登録する登録要求をサーバ装置200に送信する。このとき、ユーザ情報登録部153は、この登録要求とともにメールアドレス(登録済みのユーザ自身の端末に設定されたメールアドレスと同一のメールアドレス)をサーバ装置200に送信する。この登録要求に応じてサーバ装置200は、ユーザIDを発行するとともに、登録要求に含まれるメールアドレスと、登録要求に応じて発行したユーザIDとを対応付けて記憶する。そして、ユーザ端末100のユーザ情報登録部153は、サーバ装置200が発行したユーザIDをサーバ装置200から取得して、自ユーザのユーザ情報としてメールアドレスと対応付けてユーザ情報記憶部141に記憶させる。また、ユーザ情報登録部153は、サーバ装置200に送信したメールアドレスと同一のメールアドレスで関連付けられたユーザIDを含むユーザ情報(例えば、ユーザ端末100−1のユーザ情報)をサーバ装置200から取得して、ユーザ情報記憶部141に記憶させる(図9参照)。
表示制御部154は、自ユーザの操作に応じて自ユーザのユーザ端末100から送信するメッセージと、一又は複数の他ユーザの操作に応じて他のユーザ端末100から送信されたメッセージとを、時系列に並べて表示部110に表示させる。また、表示制御部154は、表示させるメッセージに当該メッセージを送信したユーザを示す情報(例えば、ユーザ名やプロフィール画像)を対応付けて表示させる(例えば、図7参照)。具体的には、表示制御部154は、指示部151が生成した表示指示に応じて、メッセージ情報記憶部143に記憶されている複数のメッセージ情報を読み出し、読み出した複数のメッセージ情報それぞれに含まれるメッセージを、それぞれに対応付けられた日時情報に基づいて時系列に並べたメッセージ画面の画面情報を生成して画面情報記憶部144に記憶させる。そして、表示制御部154は、生成した画面情報のうちの一部を表示部110に表示させる。
ここで、表示制御部154は、生成した画面情報のうちの一部を表示部110に表示させる。例えば、表示制御部154は、画面情報のうち、ユーザからの操作によって指定されたメッセージを含む箇所を、表示部110に表示させる。初期段階で表示部110に表示させる画面情報の一部は、例えば、読み出した複数のメッセージのうち、最も新しい送信日時情報が対応付けられたメッセージ(最新のメッセージ)が含まれる箇所とすることができる。
また、表示制御部154は、自ユーザのユーザ端末100から送信するメッセージと、他ユーザのユーザ端末100から送信されたメッセージとを区別して、時系列に並べて表示部110に表示させる。例えば、図7に示すように、表示制御部154は、自ユーザのユーザ端末100から送信するメッセージをメッセージ画面の右側からの吹き出しに表示させ、他ユーザのユーザ端末100から送信されたメッセージをメッセージ画面の左側からの吹き出しに表示させる。
ここで、自ユーザが複数の端末を利用してメッセージを送信する場合、表示制御部154は、自ユーザが利用する他のユーザ端末100から送信されたメッセージを、自ユーザが送信したメッセージとして、時系列に並べて表示部110に表示させる。例えば、図7に示すように、表示制御部154は、ユーザAがユーザ端末100−1から送信したメッセージとユーザ端末100−3から送信したメッセージとのいずれのメッセージも、ユーザA(自ユーザ)が送信したメッセージとして、メッセージ画面の右側からの吹き出しに表示させる。
つまり、表示制御部154は、メッセージ送受信部152が受信したメッセージが自ユーザ(自ユーザの他の端末)から送信されたメッセージである場合には、当該メッセージを自ユーザが送信したメッセージとして表示させる。このメッセージの表示処理の動作について、次に、図12を参照して説明する。
図12は、本実施形態によるメッセージ表示処理の一例を示すフローチャートである。
まず、メッセージ送受信部152は、他のユーザ端末100から自ユーザが属するグループIDを宛先として送信されたメッセージ情報を、サーバ装置200から受信する。そして、メッセージ送受信部152は、受信したメッセージ情報に含まれるグループID、ユーザID、日時情報、及びメッセージを、新たなレコードとしてメッセージ情報記憶部143に記憶させる(ステップS210)。
次に、指示部151は、ユーザ情報記憶部141を参照して、メッセージ送受信部152が受信したメッセージ情報を送信したユーザ端末100のユーザIDが、自ユーザのユーザ端末100のユーザIDと関連付けられているか否かを判定する(ステップS220)。即ち、指示部151は、メッセージ送受信部152が受信したメッセージ情報を送信したユーザ端末100が、自ユーザが利用する他のユーザ端末100であるか否かを判定する。
ステップS220において、自ユーザのユーザ端末100のユーザIDと関連付けられていると判定された場合(ステップS220:YES)、表示制御部154は、そのメッセージ情報に含まれるメッセージを、自ユーザのユーザ端末100から送信したメッセージとして、時系列に並べて表示部110に表示させる(ステップS230)。例えば、表示制御部154は、そのメッセージ情報に含まれるメッセージを、メッセージ画面の右側からの吹き出しに表示させる。
一方、ステップS220において、自ユーザのユーザ端末100のユーザIDと関連付けられていないと判定された場合(ステップS220:NO)、表示制御部154は、そのメッセージ情報に含まれるメッセージを、他ユーザのユーザ端末100から送信したメッセージとして、時系列に並べて表示部110に表示させる(ステップS240)。例えば、表示制御部154は、そのメッセージ情報に含まれるメッセージを、メッセージ画面の左側からの吹き出しに表示させる。
以上説明したように、本実施形態によるユーザ端末100は、第1の実施形態において説明したサーバ装置200を介して他ユーザのユーザ端末100(他端末装置)とメッセージを送受信するメッセージ送受信部152と、メッセージ送受信部152が送受信するメッセージを表示部110に表示させる表示制御部154と、を備えている。例えば、サーバ装置200は、第1の実施形態で説明したように、グループ内のユーザのユーザ端末100から送信されたメッセージを、そのメッセージを送信したユーザが利用する他のユーザ端末100に送信する。
これにより、ユーザ端末100は、自ユーザが利用する他のユーザ端末100から送信されたメッセージを受信して表示することができる。よって、本実施形態によれば、同一のユーザが複数のユーザ端末100を利用してメッセージを送受信する際の利便性を向上させることができる。
また、表示制御部154は、グループを構成する複数のユーザが利用するユーザ端末100(端末装置)のうち、自ユーザのユーザ端末100(自端末装置)から送信するメッセージと、他のユーザ端末100(他端末装置)から送信されたメッセージとを区別して時系列に表示部110に表示させる。
ここで、指示部151は、他のユーザ端末100(他端末装置)から受信したメッセージが、自ユーザのユーザ端末100(自端末装置)と関連付けられている他のユーザ端末100(他端末装置)から送信されて自ユーザのユーザ端末100(自端末装置)が受信したメッセージであるか否かを判定する。この判定により、自ユーザのユーザ端末100(自端末装置)と関連付けられている他のユーザ端末100(他端末装置)から送信されて自ユーザのユーザ端末100(自端末装置)が受信したメッセージであると判定されたとする。この場合には、指示部151は、この他のユーザ端末100(他端末装置)から受信したメッセージを、自ユーザのユーザ端末100(自端末装置)から送信したメッセージとして表示部110に表示させるように表示制御部154に指示する。
この指示に応じて、表示制御部154は、ユーザID(第1の情報)が、自ユーザのユーザ端末100(自端末装置)に対応するユーザID(第1の情報)と関連付けられている他のユーザ端末100(他端末装置)から送信されたメッセージを、自ユーザのユーザ端末100(自端末装置)から送信したメッセージとして表示部110に表示させる。
これにより、ユーザ端末100は、自ユーザが利用する他のユーザ端末100から送信されたメッセージを受信して、自ユーザが送信したメッセージとして表示することができる。従って、ユーザは、チャットを行う際に、複数のユーザ端末100を利用してメッセージを送受信した場合であっても、1台のユーザ端末100を利用するのと同様に表示されたメッセージ画面によりメッセージを確認することができる。よって、本実施形態によれば、同一のユーザが複数のユーザ端末100を利用してメッセージを送受信する際の利便性を向上させることができる。
また、ユーザ端末100は、操作受付部120(入力部)を備えている。この操作受付部120(入力部)は、複数のユーザ端末100のそれぞれに対応する互いに異なるユーザID(第1の情報)のそれぞれを関連付けるメールアドレス(第2の情報)の入力を受け付ける。
即ち、操作受付部120(入力部)は、自ユーザのユーザ端末100(自端末装置)と所定の他のユーザ端末100(他端末装置)とを関連付ける情報(第2の情報、例えば、メールアドレス)の入力を受け付ける。
これにより、ユーザ端末100は、ユーザからの操作に応じて、複数のユーザ端末100を関連付ける情報(例えば、メールアドレス)の入力を受け付けることができる。例えば、ユーザ端末100は、自ユーザが利用する複数のユーザ端末100のそれぞれを関連付ける情報(例えば、メールアドレス)の入力を受け付けることができる。従って、ユーザは、ユーザ端末100に対して複数のユーザ端末100のそれぞれを関連付ける情報(例えば、メールアドレス)を入力することにより、ユーザ自身が利用する複数のユーザ端末100を関連付けることができる。
なお、上述の実施形態では、自ユーザが送信するメッセージと他ユーザから送信指されたメッセージとが、メッセージ画面の右側からの吹き出しと左側からの吹き出しとによって区別される例を示したが、区別される方法はこれに限られるものではない。例えば、自ユーザが送信するメッセージと他ユーザから送信指されたメッセージとが、メッセージが表示される吹き出しの色、形、枠の線種等によって区別されてもよいし、単に、送信ユーザを示すユーザ情報(ユーザ名やプロフィール画像)がメッセージに対応付けて表示されることによって区別されてもよい。
<第3の実施形態>
次に、本発明の第3の実施形態を説明する。本実施形態では、同一のユーザが利用する複数のユーザ端末100間で、メッセージを転送する処理について説明する。
同一のユーザが複数のユーザ端末100を利用する場合、それぞれのユーザ端末100の利用を開始するタイミングが異なることがある。その場合、後から利用を開始したユーザ端末100では、その開始以前のチャットのメッセージが記憶されていない。そのため、後から利用を開始したユーザ端末100では、その開始以前のチャットのメッセージを表示することができないという課題がある。そこで、本実施形態では、後から利用を開始したユーザ端末100が、その開始以前のチャットのメッセージを取得できるように構成した。具体的には、同一のユーザが利用する複数のユーザ端末100間で、それぞれの端末に記憶されているメッセージを転送することができるように構成した。
本実施形態によるチャットシステム1の構成は、上述の実施形態に対して、メッセージを転送する機能をサーバ装置200が備えている点が異なる。図13は、本実施形態によるサーバ装置200が備えるサーバ制御部250Aの構成を示す概略ブロック図である。この図13に示すサーバ制御部250Aは、転送部254を備えている点が、図3に示すサーバ制御部250と異なる。
転送部254は、同一のユーザの複数のユーザ端末100のいずれから送信された過去の(既にユーザ端末100に送信されて記憶された)メッセージ情報を、同一のユーザの他のユーザ端末100に対して転送する。例えば、ユーザAがユーザ端末100−1とユーザ端末100−3とを用いて、「グループAB」におけるチャットを行うとする。転送部254は、受信部251がユーザ端末100−1から送信されたメッセージを受信した場合、その受信したメッセージを、ユーザBのユーザ端末100−2には送信せずに、ユーザ端末100−3に送信する。
ここで、転送部254は、受信部251が受信したユーザ端末100−1から送信されたメッセージが、同一のユーザの他のユーザ端末100に対して転送するメッセージであるか否かを、メッセージ情報に所定の日時情報(メッセージが送信された日時を示す日時情報)が含まれるか否かによって判定してもよい。例えば、図2を用いて説明したように、受信部251が受信した現在進行形で行われているチャットのメッセージ情報には、所定の日時情報が含まれていない。それに対して、一旦、ユーザ端末100が受信して記憶したメッセージ情報には、所定の日時情報が含まれている。そのため、受信部251が受信したメッセージ情報に日時情報が含まれている場合には、過去のメッセージ情報であって、同一のユーザの他のユーザ端末100に対して転送するメッセージ情報であることが特定できる。
図14は、本実施形態によるメッセージの転送処理の一例を示すフローチャートである。この図14を参照して、チャットシステム1におけるメッセージの転送処理の動作を説明する。この図では、ユーザAが利用するユーザ端末100−1から、ユーザAが利用するユーザ端末100−2はメッセージを転送する処理の動作例を示している。
まず、ユーザ端末100−1において、ユーザAからの操作に応じて、操作受付部120は、過去のメッセージを転送する指示を受け付けて、指示内容に応じた入力指示を生成する。この入力指示に基づいて、指示部151は、メッセージ情報記憶部143に記憶されているメッセージ情報のうちの転送するメッセージ情報を特定する情報を含む転送指示を生成する(ステップS310)。
指示部151が転送指示を生成すると、メッセージ送受信部152は、この転送指示に基づいて、メッセージ情報記憶部143に記憶されているメッセージ情報のなかかから、転送するメッセージ情報を読み出す。そして、メッセージ送受信部152は、読み出したメッセージ情報に含まれるメッセージ(この図14では、メッセージT)と、グループIDと、ユーザID(メッセージを送信してユーザ)と、日時情報(メッセージが送信された日時を示す日時情報)とを、サーバ装置200に対して送信する(ステップS320)。
次に、サーバ装置200の受信部251は、ユーザ端末100−1から送信されたメッセージTを含むメッセージ情報を受信し、受信したメッセージ情報をメッセージ情報一時記憶部243に記憶させる(ステップS330)。
続いて、転送部254は、受信部251が受信したメッセージTに日時情報(所定の日時情報、メッセージが送信された日時を示す日時情報)が対応付けられているか否かを判定する。そして、転送部254は、日時情報が対応付けられているメッセージTを含むメッセージ情報を、ユーザ情報記憶部241を参照して、ユーザID「U01」に関連付けられているユーザID「U11」を宛先として、ユーザ端末100−3に対して転送(送信)する(ステップS340)。
次に、ユーザ端末100−3のメッセージ送受信部152は、サーバ装置200から送信されたメッセージTを含むメッセージ情報を、ネットワーク5を介して受信して、メッセージ情報記憶部143に記憶させる(ステップS350)。ここで、転送されたメッセージTに対応付けられた日時情報が示す日時がメッセージ画面に表示されるメッセージの対象となる日時である場合には、ユーザ端末100−3の表示制御部154は、受信したメッセージMに対応付けられている日時情報に基づいてメッセージMを時系列に並べてメッセージ画面に表示する(ステップS360)。
以上説明したように、本実施形態によるサーバ装置200は、転送部254を備えている。受信部251が、グループ内のユーザ端末100(第1端末装置)から受信したメッセージに所定の情報が含まれていたとする。この場合、転送部254は、受信部251が受信したメッセージを、グループ内の当該メッセージを送信したユーザ端末100(第1端末装置)を除くユーザ端末100(第2端末装置)には送信せずに、ユーザID(第1の情報)が、当該メッセージを送信したユーザ端末100(第1端末装置)に対応するユーザID(第1の情報)と関連付けられているユーザ端末100(第3端末装置)に転送する。
つまり、転送部254は、受信部251が受信したメッセージに所定の情報が含まれている(対応付けられている)場合、当該メッセージを、グループ内のユーザ端末100には送信せずに、当該メッセージを送信したユーザのユーザ端末100と関連付けられているユーザ端末100に対して転送(送信)する。
これにより、サーバ装置200は、互いに関連付けられているユーザ端末100間で、それぞれのユーザ端末100が過去に受信したメッセージを転送することができる。ここで、サーバ装置200は、受信したメッセージに所定の情報が含まれている(対応付けられている)場合に、上記の転送処理を行う。即ち、サーバ装置200は、受信したメッセージに含まれている(対応付けられている)所定の情報に基づいて、転送するメッセージであるか否かを判定することができる。
なお、所定の情報とは、例えば、所定の日時情報であってもよい。即ち、転送部254は、受信部251が受信したメッセージに所定の日時情報が含まれる場合、当該メッセージに所定の情報が含まれているとして、ユーザID(第1の情報)が、当該メッセージを送信したユーザ端末100(第1端末装置)に対応するユーザID(第1の情報)と関連付けられているユーザ端末100(第3端末装置)に転送してもよい。
つまり、転送部254は、受信部251が受信したメッセージに所定の日時情報が含まれている(対応付けられている)場合、当該メッセージを、グループ内のユーザ端末100には送信せずに、当該メッセージを送信したユーザのユーザ端末100と関連付けられているユーザ端末100に対して転送(送信)する。ここで、この所定の日時情報とは、メッセージが送信された日時を示す情報(例えば、サーバ装置200が受信した日時情報)である。例えば、図2及び図14を参照して説明したように、サーバ装置200が受信したチャットのメッセージには日時情報が対応付けられておらず、過去にチャットされたメッセージには日時情報が対応付けられている。
これにより、サーバ装置200は、受信したメッセージに所定の日時情報が含まれている(対応付けられている)場合には、過去に送信されたメッセージであると判定して、当該メッセージを送信したユーザ端末100に関連付けられているユーザ端末100へ転送することができる。即ち、サーバ装置200は、受信したメッセージに所定の日時情報が含まれているか否か(対応付けられているか否か)に基づいて転送するメッセージであるか否かを判定することにより、互いに関連付けられているユーザ端末100間で、それぞれのユーザ端末100が過去に受信したメッセージを転送することができる。
なお、転送するメッセージであるか否かを判定するための所定の情報は、所定の日時情報に限られるものではなく、例えば、過去に送信されたメッセージであることを示す情報(フラグ情報)、転送するメッセージであることを示す情報(フラグ情報)、等であってもよい。
このように、本実施形態によれば、同一のユーザが複数のユーザ端末100を利用してメッセージを送受信する際の利便性を向上させることができる。
<第4の実施形態>
次に、第4の実施形態について説明する。本実施形態では、チャットシステム1におけるメッセージの未読通知と既読通知とについて説明する。ここで、未読通知とは未読メッセージがあることがユーザ端末100において通知されることをいい、未読メッセージとは受信したメッセージのうち表示部110に表示させていないメッセージのことをいう。また、既読通知とは、メッセージの送信先のユーザ端末100で、送信したメッセージが表示されたことが当該メッセージを送信したユーザ端末100において通知されることをいう。
本実施形態によるチャットシステム1の構成は、上述の実施形態に対して、メッセージの未読通知と既読通知をする機能をユーザ端末100が備えている点が異なる。図15は、本実施形態によるユーザ端末100が備える制御部150Aの構成を示す概略ブロック図である。この図15に示す制御部150Aは、第1通知部155と、第2通知部156とを備えている点が、図8に示す制御部150と異なる。
第1通知部155は、メッセージ送受信部152が受信したメッセージのなかに未読メッセージがある場合に、未読メッセージがあることを通知(未読通知)する。例えば、第1通知部155は、未読メッセージがある場合に、未読メッセージがあることを示す情報(アイコン、テキスト等)を未読通知として表示部110に表示させるように表示制御部154に指示する。なお、第1通知部155は、未読メッセージがある場合に、未読メッセージがあることを示す音や振動を、ユーザ端末100が備えている不図示の音出力部や振動部(バイブレーション機能)から出力させるように指示してもよい。
第2通知部156は、自ユーザのユーザ端末100から送信したメッセージを受信した他ユーザのユーザ端末100において当該メッセージが表示された場合に、当該メッセージが表示されたことを通知(既読通知)する。例えば、第2通知部156は、既読通知として、送信したメッセージが表示された(既読となった)ことを示す情報(アイコン、テキスト等)、又は、グループ内の他ユーザのユーザ端末100のうち、送信したメッセージが表示された(既読となった)端末の数を表示部110に表示させるように表示制御部154に指示する。
なお、第1通知部155と第2通知部156とは、それぞれ未読通知と既読通知とを、各メッセージに対応付けて通知してもよいし、複数のメッセージ(例えば、メッセージ情報記憶部143に記憶されているメッセージ)のうちのいずれかのメッセージに対応して通知してもよい。
(未読通知処理の説明)
次に、本実施形態による未読通知処理について説明する。同一のユーザが複数のユーザ端末100を利用する場合、同一のユーザが利用する複数のユーザ端末100間で送受信されるメッセージに対しては未読通知がされないことが望ましい。つまり、メッセージ送受信部152が受信したメッセージが、自ユーザの他のユーザ端末100から送信されたメッセージである場合、このメッセージは自ユーザが送信したメッセージであるため、未読通知がされないことが望ましい。
そこで、第1通知部155は、未読メッセージが、自ユーザのユーザ端末100に設定されたユーザIDと関連付けられているユーザIDが設定された他のユーザ端末100(即ち、自ユーザの他の端末)から送信されたメッセージである場合には、未読通知を行わない。
図16は、本実施形態による未読通知処理の一例を示すフローチャートである。この図16を参照して、ユーザ端末100が、受信したメッセージの送信元に応じて未読通知を行う処理の動作を説明する。
まず、メッセージ送受信部152は、他のユーザ端末100から自ユーザが属するグループIDを宛先として送信されたメッセージ情報を、サーバ装置200から受信してメッセージ情報記憶部143に記憶させる(ステップS410)。
次に、第1通知部155は、メッセージ送受信部152が受信したメッセージ情報に未読メッセージがあるか否かを判定する(ステップS420)。ステップS420において、未読メッセージがないと判定された場合(ステップS420:NO)、第1通知部155は、未読通知を行わないで未読通知処理を終了する。
一方、ステップS420において、未読メッセージがあると判定された場合(ステップS420:YES)、第1通知部155は、未読通知メッセージに対応付けられているユーザID(送信ユーザのユーザID)をメッセージ情報記憶部143から読み出す(ステップS430)。
次に、第1通知部155は、ユーザ情報記憶部141を参照して、読み出したユーザID(送信ユーザのユーザID)が、自ユーザのユーザ端末100のユーザIDと関連付けられているか否かを判定する(ステップS440)。即ち第1通知部155は、メッセージ送受信部152が受信した未読メッセージを送信したユーザ端末100が、自ユーザが利用する他の端末であるか否かを判定する。
ステップS440において、自ユーザのユーザ端末100のユーザIDと関連付けられていないと判定された場合(ステップS440:NO)、第1通知部155は、未読メッセージが他ユーザから送信されたメッセージであるため、未読通知を行って未読通知処理を終了する(ステップS450)。
一方、ステップS440において、自ユーザのユーザ端末100のユーザIDと関連付けられていると判定された場合(ステップS440:YES)、第1通知部155は、未読メッセージが自ユーザの他の端末から送信されたメッセージであるため、未読通知を行わないで未読通知処理を終了する。
以上説明したように、本実施形態によるユーザ端末100は、他のユーザ端末100(他端末装置)から送信されたメッセージのなかに表示部110に表示させていないメッセージである未読メッセージがある場合に、未読メッセージがあることを通知する未読通知を行う第1通知部155を備えている。そして、第1通知部は、未読メッセージが、ユーザID(第1の情報)が自ユーザのユーザ端末100(自端末装置)に対応するユーザID(第1の情報)と関連付けられている他のユーザ端末100(他端末装置)から送信されたメッセージである場合には、上述の未読通知を行わない。
即ち、第1通知部155は、未読メッセージが、自ユーザのユーザ端末100(自端末装置)と関連付けられている他のユーザ端末100(他端末装置)から送信されて自ユーザのユーザ端末100(自端末装置)が受信したメッセージである場合には、上述の未読通知を行わない。
これにより、ユーザ端末100は、自ユーザが利用する他のユーザ端末100から受信したメッセージには、自ユーザが送信したメッセージであるため未読通知をしないようにすることができる。従って、ユーザ端末100は、自ユーザが利用する他のユーザ端末100から受信したメッセージを、自ユーザが送信したメッセージと同じように、ユーザに認識させることができる。
(未読通知の解除及び既読通知の処理)
次に、未読メッセージが表示された(既読となった)場合に未読通知を解除する処理と、既読通知の処理とについて説明する。ユーザ端末100は、未読メッセージを表示部110に表示した場合、その未読メッセージが既読されたものとして、未読通知を解除する(取り消す)。例えば、ユーザ端末100は、未読通知を表示部110に表示させている場合には、未読メッセージを表示することに応じて表示部110に表示させていた未読通知を取り消す(非表示にする)。
また、ユーザ端末100は、未読メッセージを表示部110に表示した場合、その表示したメッセージを送信したユーザ端末100に対して、そのメッセージを表示したことを示す既読情報を送信する。この既読情報を受信したユーザ端末100は、送信したメッセージが送信先のユーザ端末100で表示されたことを通知する既読通知を行う。なお、既読情報には、送受信されたメッセージのうちのいずれのメッセージであるかを特定する情報(例えば、メッセージを一意に識別する情報であるメッセージID)と、既読を示す情報(フラグ情報)とが含まれる。
ここで、同一のユーザが複数のユーザ端末100を利用する場合、同一のユーザが利用する各ユーザ端末100は、他ユーザのユーザ端末100から送信されたメッセージをそれぞれ受信して記憶する。このとき、各ユーザ端末100において、受信したメッセージが表示される前は受信したメッセージが未読メッセージであるため、未読通知がされる。しかし、各ユーザ端末100のうちのいずれかにおいて、その未読メッセージが表示されて未読通知が解除された場合には、同一のユーザが利用する他のユーザ端末100においても表示されたものとみなして未読通知が解除されることが望ましい。即ち、同一のユーザが複数のユーザ端末100を利用する場合、それら複数のユーザ端末100が1台のユーザ端末100であるかのように未読通知の処理が行われることが望ましい。
そこで、第1通知部155は、他ユーザのユーザ端末100から送信されたメッセージと同じメッセージが、自ユーザのユーザ端末100に設定されたユーザIDと関連付けられているユーザIDが設定された他のユーザ端末100(即ち、自ユーザの他の端末)において表示された場合には、当該メッセージを表示部110に表示させていなくとも未読通知を行わないようにした。
以下、図17を参照して、チャットシステム1による未読通知の解除及び既読通知の処理の動作を説明する。
図17は、本実施形態による未読通知及び既読通知の処理の一例を示すフローチャートであって、図6と同様に、ユーザAとユーザBとがチャットを行う「グループAB」のチャットにおいて、ユーザAがユーザ端末100−1とユーザ端末100−2との2台を利用してチャットを行う場合のメッセージの送信処理の一例を示している。
図6では、ユーザAのユーザ端末100−1からメッセージMが送信される例を示したが、この図17では、ユーザBのユーザ端末100−2からメッセージMが送信される例を示している。ここで、ユーザ端末100−2又はサーバ装置200が実行するステップS500、S510、S520、S530、S535の各処理は、図6において、ユーザ端末100−1又はサーバ装置200が実行するステップS100、S110、S120、S130、S135の各処理と同様であり、その説明を省略する。ここでは、ユーザ端末100−2がメッセージMをサーバ装置200に送信し、サーバ装置200が受信完了通知をユーザ端末100−2に返す。
サーバ装置200は、ユーザBのユーザ端末100−2から受信したメッセージMを、ユーザAのユーザ端末100−1とユーザ端末100−2とのそれぞれに送信する。具体的には、サーバ装置200の送信部252は、ユーザBのユーザ端末100−2から送信されたメッセージMを受信すると、受信したメッセージMに、ユーザIDと、グループIDと、日時情報(サーバ装置での受信時間)と、を対応付けてユーザ端末100−1(グループIDが示すグループ内の他の端末)に送信するとともに、ユーザ端末100−1のユーザIDに関連付けられているユーザIDが設定されているユーザ端末100−3に対しても送信する(ステップS540)。
ユーザ端末100−1は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信して記憶する(ステップS550)とともに、未読通知を行う(ステップS555)。同様に、ユーザ端末100−3は、サーバ装置200から送信されたメッセージMを、ネットワーク5を介して受信して記憶する(ステップS560)とともに、未読通知を行う(ステップS565)。
次に、ユーザ端末100−3において、ステップS550で受信したメッセージMをメッセージ画面に表示させる操作がされると、ユーザ端末100−3の表示制御部154は、メッセージMに対応付けられている日時情報に基づいてメッセージMを時系列に並べて表示部110に表示させる(ステップS570)。そして、第1通知部155は、ステップS555で行った未読通知を解除する(ステップS575)。
また、第2通知部156は、ユーザ端末100−2(メッセージMを送信した端末)とユーザ端末100−1(ユーザ端末100−3と関連付けられている端末)とのそれぞれのユーザID(「U02」、「U01」)を宛先として対応付けて、既読情報をサーバ装置200に送信する(ステップS580)。
次に、サーバ装置200において、受信部251が既読情報を受信すると、送信部252は、その受信された既読情報を、その既読情報に対応付けられているユーザID(「U02」、「U01」)を宛先として、ユーザ端末100−2とユーザ端末100−1とにそれぞれ送信する(ステップS585)。
ユーザ端末100−1が既読情報を受信すると、ユーザ端末100−1の第1通知部155は、ステップS565で行った未読通知を解除する(ステップS590)。なお、ユーザ端末100−1の第1通知部155は、受信した既読情報がユーザ端末100−1から送信したメッセージに対する既読情報ではないため、既読通知を行わない。一方、ユーザ端末100−2が既読情報を受信すると、ユーザ端末100−2の第2通知部156は、ユーザ端末100−2が送信したメッセージに対する既読情報を受信したため、既読通知を行う(ステップS595)。
以上説明したように、本実施形態によるユーザ端末100において、第1通知部155は、他のユーザ端末100(他端末装置)から送信されたメッセージと同じメッセージが、ユーザID(第1の情報)が自ユーザのユーザ端末100(自端末装置)に対応するユーザID(第1の情報)と関連付けられている他のユーザ端末100(他端末装置)において表示された場合には、当該メッセージを表示部110に表示させていなくとも未読通知を行わない。
即ち、第1通知部155は、他のユーザ端末100(他端末装置)から送信されたメッセージと同じメッセージが、自ユーザのユーザ端末100(自端末装置)に関連付けられている他のユーザ端末100(他端末装置)において表示された場合には、当該メッセージを表示部110に表示させていなくとも未読通知を行わない。
これにより、ユーザ端末100は、自ユーザが利用する他のユーザ端末100において表示されたメッセージと同じメッセージに対しては、当該メッセージを表示していなくとも、表示したものとみなして未読通知を行わないようにすることができる。即ち、複数のユーザ端末100のそれぞれが受信した同一のメッセージに対する未読通知は、当該複数のユーザ端末100のうちのいずれか一の端末で当該メッセージが表示されると解除される。従って、同一のユーザが利用する複数のユーザ端末100のそれぞれは、受信したメッセージに対する未読通知を、1台のユーザ端末100が受信したメッセージに対する未読通知と同じように通知することができる。
また、ユーザ端末100は、送信したメッセージを受信した他のユーザ端末100において当該メッセージが表示された場合、当該メッセージを表示したユーザ端末100から既読情報を取得することにより、既読通知を行うことができる。
なお、第2通知部156が既読情報を送信するのは、未読メッセージが表示された場合であって、未読通知がされる対象となっているメッセージが表示された場合である。一方、未読通知がされていない(未読通知が解除された)メッセージが表示された場合には、第2通知部156は、既読情報を送信しない。即ち、同一のユーザが複数のユーザ端末100を利用している場合、当該複数のユーザ端末100のそれぞれから同一のメッセージに対する既読情報が送信されることがなく、最初にメッセージを表示した1台のユーザ端末100からのみ既読情報が送信される。
以下、図18を参照して、メッセージが未読通知の対象となっている未読メッセージであるか否かに応じて既読情報を送信する処理の動作を説明する。図18は、本実施形態による既読情報の送信処理の一例を示すフローチャートである。この図は、ユーザ端末100が、メッセージ情報記憶部143に記憶されているメッセージを表示部110に表示した際の既読情報の送信処理の一例を示している。
まず、表示制御部154は、メッセージ情報記憶部143に記憶されているメッセージ情報を読み出して、読み出したメッセージ情報に含まれるメッセージを、対応する日時情報に基づいて時系列に並べて表示部110に表示させる(ステップS610)。
次に、第2通知部156は、ステップS610において表示されたメッセージが未読メッセージであるか否かを判定する(ステップS620)。例えば、第2通知部156は、ステップS610において表示されたメッセージが、第1通知部155が未読通知の対象としているか否かに基づいて、未読メッセージであるか否かを判定する。
なお、この判定をする場合、メッセージ情報記憶部143に記憶されたメッセージ情報に、メッセージが未読であるか否かを示すフラグ情報を対応付けて記憶するようにして、第2通知部156がそのフラグ情報に基づいて、未読メッセージであるか否かを判定してもよい。例えば、このフラグ情報は、メッセージが受信されたときには「未読」のフラグ情報が対応付けられ、そのメッセージが表示されたタイミングで第1通知部155によって「既読」のフラグ情報に更新されるようにしてもよい。
ステップS620において、未読メッセージであると判定された場合(ステップS620:YES)、第2通知部156は、既読情報を送信する(ステップS630)。一方、ステップS620において、未読メッセージでないと判定された場合(ステップS620:NO)、第2通知部156は、既読情報を送信しない。
このように、ユーザ端末100は、未読通知を行う対象となる未読メッセージを表示部110に表示した場合に既読情報を送信し、未読通知を行う対象ではないメッセージを表示部110に表示した場合には既読情報を送信しない。
例えば、自ユーザが利用するユーザ端末100から送信したメッセージが、自ユーザが利用する他のユーザ端末100において表示されたとする。この表示されたメッセージは、図16を用いて説明したように、未読通知を行う対象ではないメッセージである。そのため、このメッセージを表示しても、自ユーザが利用する他のユーザ端末100は既読情報を送信しない。従って、ユーザ端末100は、送信したメッセージが、自ユーザが利用する他のユーザ端末100を除くユーザ端末100において表示されたときに送信される既読情報を受信する。そして、ユーザ端末100は、この自ユーザが利用する他のユーザ端末100を除くユーザ端末100から受信した既読情報に基づいて既読通知を行う。例えば、第2通知部156は、受信した既読情報の数(既読情報を送信したユーザ端末100の数)を含む情報を、既読通知として通知する。
以上説明したように、本実施形態によるユーザ端末100は、自ユーザのユーザ端末100(自端末装置)から送信したメッセージを受信した他のユーザ端末100(他端末装置)において当該メッセージが表示されたことを通知する既読通知を行う第2通知部156、を備えている。そして、第2通知部156は、自ユーザのユーザ端末100(自端末装置)から送信したメッセージを表示した他のユーザ端末100(他端末装置)のうち、ユーザID(第1の情報)が自ユーザのユーザ端末100(自端末装置)に対応するユーザID(第1の情報)と関連付けられている他のユーザ端末100(他端末装置)を除くユーザ端末100の数を含む情報を、上述の既読通知として通知する。
即ち、第2通知部156は、自ユーザのユーザ端末100(自端末装置)から送信したメッセージを表示した他のユーザ端末100(他端末装置)のうち、自ユーザのユーザ端末100(自端末装置)に関連付けられている他のユーザ端末100(他端末装置)を除くユーザ端末100の数を含む情報を、上述の既読通知として通知する。
これにより、ユーザ端末100は、送信したメッセージが、自ユーザが利用する他のユーザ端末100において表示された場合には、当該メッセージを既読としないようにすることができる。例えば、ユーザ端末100は、送信したメッセージが表示された他のユーザ端末100の数に、自ユーザが利用する他のユーザ端末100の数を含まないようにすることができる。
なお、表示制御部154は、ユーザID(第1の情報)が、自ユーザが利用するユーザ端末100(自端末装置)に対応するユーザID(第1の情報)と関連付けられている自ユーザが利用する他のユーザ端末100(他端末装置)の数に基づく情報を表示部110に表示させてもよい。
つまり、表示制御部154は、自ユーザが複数のユーザ端末100を利用してチャットを行う場合には、チャットシステム1に登録された自ユーザのユーザ端末100の数を、表示部110に表示させてもよい。具体的には、表示制御部154は、例えば、ユーザ情報記憶部141に記憶されている自ユーザのユーザ情報を参照して、このユーザ情報に含まれる自ユーザのユーザ端末100の数を表示部110に表示させてもよい。なお、表示する数は、この表示をしているユーザ端末100(自端末装置)の数を含む数としてもよいし、この表示をしているユーザ端末100(自端末装置)の数を含まない、自ユーザが利用する他のユーザ端末100(他端末装置)の数としてもよい。これにより、ユーザは、自身が利用しているユーザ端末100の数を容易に確認することができる。
このように、本実施形態によれば、同一のユーザが複数のユーザ端末100を利用してメッセージを送受信する際の利便性を向上させることができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、上述の第1から第3の実施形態において説明した各機能は、任意に組み合わせることができる。
なお、上述の実施形態では、ユーザAとユーザBとの2ユーザが属するグループ(「グループAB」)におけるチャットを例示して説明したが、3ユーザ以上の複数のグループをグループ単位でまとめたグループを生成する例として、グループAとグルユーザが属するグループとしてもよい。また、同一のユーザが2台のユーザ端末100(ユーザ端末100−1及びユーザ端末100−3)を利用する例を説明したが、同一のユーザが利用する複数のユーザ端末100の数を3台以上としても、本発明を同様に適用することができる。
また、上述の実施形態では、操作受付部120と表示部110とは一体に構成されてユーザからの操作入力を受け付けるタッチパネルを適用した例を説明したが、操作受付部120と表示部110とが別に構成され、操作受付部120としてキーボードやボタンを適用してもよい。また、操作受付部120を、音声認識により操作入力可能な操作入力部として構成してもよい。また、上述の実施形態では、ユーザ端末100において表示部110が一体として構成された例を説明したが、これに限らず、外部の表示部(表示装置)と有線又は無線により接続される構成としてもよい。
また、上述の実施形態では、チャットアプリケーションにおける制御の例を示したが、上述したように、送信されたメッセージをグループ内のユーザに対して送信する電子メールによるメーリングリスト、電子掲示板、タイムライン、ミニブログ(マイクロブログ、つぶやきブログ)チャット等における制御にも上述の実施形態を適用することができる。ここで、電子メールとは、携帯電話等によるショートメッセージサービス等により送受信されるメールであってもよい。なお、ユーザ間で送受信されるメッセージの表示の即時性という観点では、チャットアプリケーションにおける制御がより好適である。
また、上述の実施形態では、ユーザ端末100間で送受信するメッセージは文字列であるとしたが、メッセージには、絵文字や写真等の画像情報や、音声等の情報が含まれていてもよい。
また、本発明の実施形態は、上述の例に限るものではなく、本発明の範囲内で様々な形態をとることができる。例えば、上述したチャットシステム1が備える各構成は、任意のコンピュータ装置に分散または集約して配置することができる。例えば、サーバ装置200は、クラウド環境やネットワーク環境、ユーザ数の規模、チャットシステム1を構成するために用意されたハードウェアの数やスペック等に応じて、任意のコンピュータ装置に分散または集約して配置することができる。
また、例えば、複数のユーザ端末100間で送受信されるメッセージの全てをサーバ装置200が記憶しておき、ユーザ端末100からの任意の要求に応じてメッセージを送信し、ユーザ端末100に表示させるようにしてもよい。
また、上述の実施形態では、複数のユーザ端末100はサーバ装置200を介してメッセージを送受信する例を示したが、サーバ装置200を介さずに、複数のユーザ端末100同士が直接メッセージを送受信してもよい。
なお、上述の制御部150又はサーバ制御部250の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述の制御部150又はサーバ制御部250の処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。