以下、本発明の一実施形態について、図面を参照して説明する。
<第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が実行する処理として説明する。
(チャットシステム1の概要)
まず、チャットにおけるメッセージの送受信処理の概要を説明する。グループ内の複数のユーザ間でチャットを行う場合、自ユーザのユーザ端末100(自装置)は、自ユーザからの操作に応じて、他のユーザ端末100に送信したメッセージと、相手側のユーザ(チャット相手)である他ユーザのユーザ端末100(他装置)から送信されたメッセージとを記憶する。ユーザ端末100は、記憶した複数のメッセージを、そのメッセージが送信または受信された日時に基づいて時系列に並べた画面情報(メッセージ画面)を生成し、ユーザが一覧できるように表示する。
つまり、グループには、チャットシステム1において、複数のユーザ端末100のそれぞれを利用する自ユーザと一または複数の他ユーザとが登録されている。そして、ユーザ端末100は、このグループにおいて、自ユーザの操作に応じて自ユーザのユーザ端末100から送信するメッセージと、他ユーザの操作に応じて他ユーザのユーザ端末100から送信されたメッセージと、を時系列に並べたメッセージ画面を表示する。
以下、ユーザ端末100−1を利用するユーザをユーザAとし、ユーザ端末100−2を利用するユーザをユーザBとし、ユーザ端末100−3を利用するユーザをユーザCとして説明する。ここで、それぞれのユーザが利用する各ユーザ端末100には、ユーザを識別するユーザID(Identifier)が設定されている。なお、この各ユーザのユーザIDは、それぞれのユーザ端末100において、チャットアプリケーション上で設定されたものである。各ユーザがそれぞれのユーザ端末100において、チャットアプリケーションにログインしているときに、それぞれのユーザ端末100に対して各ユーザのユーザIDが固有に設定される。また、ユーザAと、ユーザBと、ユーザCと、がグループチャットを行うための同じグループに登録されているものとする。
図2は、チャットシステム1におけるメッセージの送受信の基本的な動作の一例を示すフローチャートである。この図2では、ユーザBからの操作に応じて、ユーザ端末100−2が送信したメッセージMを、ユーザAのユーザ端末100−1とユーザCのユーザ端末100−3とが受信する処理の例を示している。
まず、ユーザ端末100−2において、ユーザBは、送信するメッセージとしてのテキストを入力する(ステップS100)。そこで、ユーザ端末100−2は、ユーザBからの操作に応じて入力された(作成された)メッセージMを記憶するとともにメッセージ画面に表示する(ステップS110)。ここで、メッセージMには、ユーザIDと、グループIDとが対応付けられている。ここで、グループIDは、グループを一意に識別する情報であって、このメッセージMの宛先を示す情報である。続いて、ユーザ端末100−2は、メッセージMをサーバ装置200に送信する(ステップS120)。
次に、サーバ装置200は、ユーザ端末100−2からメッセージMをネットワーク5を介して受信し、受信したメッセージMを一時的に記憶する(ステップS130)。このとき、サーバ装置200は、このメッセージMを受信したときの受信日時をユーザ端末100−2へ受信完了通知と共に返信し、この受信日時をメッセージMがユーザ端末100−2から送信された日時情報(送信日時情報と称する)とする。受信完了通知を受信したユーザ端末100−2は、当該受信完了通知に含まれる送信日時情報を取得してメッセージMと対応付ける。また、ユーザ端末100−2は、既にメッセージ画面に表示しているメッセージMに対応付けて送信日時を表示する(ステップS135)。
続いて、サーバ装置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とが対応付けられている。
続いて、ユーザ端末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においては、グループ内のいずれかのユーザのユーザ端末100から送信されたメッセージは、サーバ装置200を介して、グループ内の他のユーザ(当該メッセージを送信したユーザ以外のユーザ)のユーザ端末100に送信される。これにより、チャットシステム1においては、複数のユーザ(チャット相手)が属するグループにおいてメッセージを送受信するチャット(グループチャット)を行うことができる。つまり、グループチャットに参加しているユーザが送信(投稿)したメッセージは、その送信時間(投稿時間)に基づいて時系列に並べられてメッセージ画面にて表示される。
ところで、グループチャットを行う際には、ユーザはまずグループを作成する必要がある。例えば、グループをつくりたいユーザがグループを作成し、グループチャットに参加するユーザをその作成したグループに登録する。ここで、グループをつくりたい場合には、グループを作成するたびに参加するユーザをユーザ単位で登録する必要がある。しかしながら、予め所定の関係(例えば友達関係)になっているユーザをグループに登録することができたとしても、所定の関係になっていないユーザを任意にグループに登録することができない場合があった。そこで、本実施形態のチャットシステム1では、グループを作成する際に、そのグループに参加するユーザを、そのユーザと所定の関係があるか否かにかかわらず、グループ単位で登録することができるように構成した。
以下、本実施形態によるチャットシステム1の構成について詳しく説明する。
ここで、以下の説明では、ユーザAと、ユーザBと、ユーザCと、ユーザDと、ユーザEの5ユーザが含まれるチャットシステム1において、各ユーザがそれぞれのユーザ端末100を用いてチャットを行うものとして説明する。
(サーバ装置200の構成)
まず、図3を参照して、サーバ装置200の構成について説明する。図3は、本実施形態によるサーバ装置200の構成を示す概略ブロック図である。
サーバ装置200は、サーバ通信部230と、サーバ記憶部240と、サーバ制御部250と、を備えている。サーバ通信部230は、ネットワーク5を介して複数のユーザ端末100―Nと通信する。
サーバ記憶部240は、チャットシステム1における各種情報を記憶して管理する管理部であって、ユーザに関する情報を記憶して管理するユーザ情報記憶部241と、グループに関する情報を記憶して管理するグループ情報記憶部242と、メッセージ情報を一時的に記憶して管理するメッセージ情報一時記憶部243とを備えている。
ユーザ情報記憶部241は、チャットシステム1において、チャットを行うユーザに関するユーザ情報を記憶する。具体的には、サーバ装置200を介してメッセージを送受信する複数のユーザ端末100それぞれに固有に設定されたユーザIDをユーザ情報として記憶する。ユーザIDは、ユーザを識別する情報であって、チャットシステム1において、ユーザが利用する端末を一意に識別する情報である。このユーザIDは、例えば、ユーザ端末100が最初にチャットシステム1に登録されたときに、サーバ装置200において発行される。例えば、ユーザA、ユーザB、ユーザC、ユーザD、ユーザEのそれぞれのユーザIDが、「A」、「B」、「C」、「D」、「E」として、それぞれのユーザが利用する各ユーザ端末100に設定される。
なお、ユーザ情報記憶部241は、単にユーザIDが記憶されている構成としてもよいし、このユーザIDに対応付けて、各種のユーザに関する情報(ユーザ名やユーザ画像等)を記憶してもよい。
グループ情報記憶部242は、チャットを行うユーザのグループに関する情報を記憶する。具体的には、グループ情報記憶部242は、複数のユーザと当該複数のユーザが属するグループとを対応付けて記憶する。図4は、グループ情報記憶部142に記憶されるグループ情報の一例を示す図である。ひとつのグループには2以上のユーザが属する。例えば、ユーザAとユーザBとユーザCとがチャットを行う場合、ユーザAとユーザBとユーザCとが属するグループに関するグループ情報がグループ情報記憶部142に記憶される。グループ情報には、グループIDと、グループ名と、グループに属するユーザ(グループメンバー)としてのユーザIDとを対応付けた情報が含まれる。グループIDは、サーバ装置200で生成されるグループを一意に識別する情報である。グループ名は、グループの名称であり、グループが作成される際にユーザにより設定される。なお、ユーザがグループを作成する際にグループ名を設定しない場合には、サーバ装置200によって自動的に付与され、事後的にユーザにより設定できる。ユーザIDは、そのグループに属するユーザを識別する情報である。
ここでは、グループIDが「G1」であるグループには、グループ名として「グループA」が設定され、ユーザAとユーザBとユーザCとの3ユーザが属している。グループIDが「G2」であるグループには、グループ名として「グループB」が設定され、ユーザDとユーザEとの2ユーザが属している。ここで、上述のグループIDが「G1」であるグループと、グループIDが「G2」であるグループとは、それぞれのグループに属するユーザがユーザ単位で登録されて生成されたグループである。
一方、グループIDが「G3」であるグループは、既に生成されているグループがグループ単位で登録されて生成されたグループである。グループ単位で登録されて生成されたグループのグループIDの場合には、当該グループの生成前に各ユーザが属していたグループ(以下、旧グループとも称する)のグループIDがユーザIDのエイリアス(別名)として対応付けられている。ここでは、グループIDが「G3」であるグループCのグループ情報は、グループIDが「G1」であるグループAと、グループIDが「G2」であるグループBとがグループ単位で登録されて生成されたグループのグループ情報であって、グループID「G3」には、グループID「G1」と、グループID「G2」とがグループメンバーとして対応付けられている。ここで、グループID「G1」とグループID「G2」とは、ユーザIDを示すエイリアスの情報であって、それぞれのグループに属するユーザのユーザIDの代わりに対応付けられている。即ち、グループIDが「G3」であるグループには、グループ名として「グループC」が設定され、グループID「G1」に属するユーザであるユーザA、ユーザB、及びユーザCと、グループID「G2」に属するユーザであるユーザD、及びユーザEとの5ユーザが属していることを示している。つまり、グループCは、既に生成されている複数のグループ(グループAとグループBと)をまとめたグループ(合同グループ)である。
なお、グループ情報記憶部242は、複数のグループがグループ単位で登録されて生成されたグループに属する各ユーザを、旧グループに基づいて区別可能なように記憶してもよい。この図4に示す例では、グループCのグループ情報には、グループAのグループIDとグループBのグループIDとがそれぞれ、第1グループメンバーのユーザIDのエイリアスと第2グループメンバーのユーザIDのエイリアスとして区別されてグループIDに対応付けられている。
メッセージ情報一時記憶部243は、各ユーザ端末100から受信したメッセージ情報を一時的に記憶する。ここで、メッセージ情報には、グループIDと、ユーザIDと、送信日時情報と、メッセージとを対応付けした情報が含まれる。グループIDは、メッセージが送受信されたグループを識別する情報である。ユーザIDは、メッセージを送信したユーザを識別する情報である。送信日時情報は、メッセージが送信された日時を示す情報である。本実施形態では、ユーザ端末100の計時機能が示す時間情報が相違しているユーザ間や、時差のある地域のユーザ間で互いに送信したメッセージが正しく時系列に並ぶようにユーザ端末100から送信されたメッセージ情報をサーバ装置200で受信した受信時間を当該メッセージが送信された日時を示す送信日時情報としている。送信日時情報には、年、月、日、時、分、秒(YYYY/MM/DD HH:MM:SS)の情報が含まれる。メッセージは、他ユーザとの間で送受信したメッセージを示す文字列(テキスト)である。
例えば、メッセージ情報一時記憶部243は、受信したメッセージ情報が、宛先(送信先)のユーザのユーザ端末100に対して送信されるまでの間、受信したメッセージ情報を一時的に記憶する。
なお、サーバ記憶部240が備えている各記憶部のそれぞれは、サーバ装置200の内部に備えられていてもよいし、サーバ装置200の外部に備えられていてもよい。例えば、上述のチャットシステム1における各種情報を記憶して管理する管理部をサーバ装置200が備え、その管理部がサーバ装置200の外部に備えられた記憶部に対して各種情報を記憶させて管理してもよい。
図3に戻り、サーバ制御部250は、受信部251と、送信部252と、グループ生成部253とを備えている。ここで、受信部251及び送信部252は、サーバ通信部230を介して、ユーザ端末100と通信する。
受信部251は、ユーザ端末100からグループIDを宛先として送信されたメッセージ情報を受信すると、受信したメッセージ情報をメッセージ情報一時記憶部243に一時的に記憶させる。また、受信部251は、ユーザ端末100からグループを生成する要求信号を受信してグループ生成部253に供給する。
送信部252は、受信部251が受信してメッセージ情報一時記憶部243に記憶させたメッセージ情報を、当該メッセージ情報に含まれるグループID(メッセージ情報の宛先であるグループID)に対応付けられたユーザIDを特定し、当該特定したユーザIDが示すユーザ端末100のうち、メッセージ情報を送信したユーザのユーザIDが示すユーザ端末100以外のユーザ端末100に送信する。即ち、送信部252は、グループ内のユーザから送信されて受信部251が受信したメッセージ情報を、グループ内の他のユーザ(送信したユーザを除いたグループ内のユーザ)に送信(転送)する。また、送信部252は、受信部251が、ユーザ端末100からグループIDを宛先として送信されたメッセージ情報を受信すると、当該ユーザ端末100に対して、受信したときの受信日時を受信完了通知と共に送信する。
グループ生成部253は、グループチャットを行う際のグループを生成する。例えば、グループ生成部253は、受信部251が、ユーザ端末100からグループを生成する要求信号を受信した場合、そのユーザ端末100からの要求に応じて、参加するユーザがユーザ単位又はグループ単位で登録されるグループを生成する。
具体的には、ユーザ端末100からユーザ単位で登録されるグループを生成する要求を受け付けた場合、グループ生成部253は、新規にグループIDを発行し、当該発行したグループIDと、当該生成するグループに登録するユーザのユーザIDとを対応付けたグループ情報を生成してグループ情報記憶部242に記憶させる。
例えば、サーバ装置200がユーザ端末100からユーザA、ユーザB、及びユーザCのそれぞれがユーザ単位で登録されるグループAを生成する要求を受け付けたとする。その要求に応じて、グループ生成部253は、グループAのグループID「G1」を新規に発行し、グループID「G1」と、グループAに登録するユーザ(グループメンバー)のユーザID(ユーザA、ユーザB、及びユーザCの各ユーザID)とを対応付けたグループ情報を生成してグループ情報記憶部242に記憶させる(図4参照)。また、サーバ装置200がユーザ端末100からユーザC及びユーザDのそれぞれがユーザ単位で登録されるグループBを生成する要求を受け付けたとする。その要求に応じて、グループ生成部253は、グループBのグループID「G2」を新規に発行し、グループID「G2」と、グループBに登録するユーザ(グループメンバー)のユーザID(ユーザD及びユーザEの各ユーザID)とを対応付けたグループ情報を生成してグループ情報記憶部242に記憶させる(図4参照)。
また、ユーザ端末100からグループ単位で登録されるグループを生成する要求を受け付けた場合、グループ生成部253は、新規にグループIDを発行し、当該発行したグループIDと、当該生成するグループに登録するグループ(旧グループ)のグループIDに対応付けられているユーザIDとを対応付けたグループ情報を生成してグループ情報記憶部242に記憶させる。
例えば、サーバ装置200がユーザ端末100からグループA及びグループBがグループ単位で登録されるグループCを生成する要求を受け付けたとする。その要求に応じて、グループ生成部253は、グループCのグループID「G3」を新規に発行し、グループID「G3」と、グループCに登録するユーザ(グループメンバー)であるグループA及びグループBに属していたユーザのユーザID(ユーザA、ユーザB、ユーザC、ユーザD、及びユーザEの各ユーザID)とを対応付けたグループ情報を生成してグループ情報記憶部242に記憶させる(図4参照)。
ここで、グループ生成部253は、例えば、グループA又はグループBに属するユーザのユーザ端末100からの要求に応じて、グループA及びグループBがグループ単位で登録されるグループCを生成する。即ち、グループ生成部253は、複数のグループがグループ単位で登録されるグループを生成する要求が、その登録される複数のグループの何れかに属するユーザのユーザ端末100からの要求の場合のみ、その要求に応じてグループを生成する。これにより、サーバ装置200は、ユーザ自身が属するグループと他のグループとをまとめたグループ(合同グループ)を生成することができるようにするとともに、グループに属していない関係のないユーザからの要求の場合には、このグループ単位で登録されるグループの生成を行わないようにすることができる。
また、グループ単位で登録されるグループを生成する要求を受け付けた場合、グループ生成部253は、当該生成するグループとして新規に発行したグループIDに、旧グループそれぞれに属するユーザ(ユーザID)を区別して対応付けたグループ情報を生成してもよい。
例えば、上述のグループCを生成する場合、グループ生成部253は、旧グループがグループA(第1グループ)であるユーザのユーザID(ユーザA、ユーザB、及びユーザCの各ユーザID)と旧グループがグループB(第2グループ)であるユーザのユーザID(ユーザD及びユーザEの各ユーザID)とがそれぞれ、第1グループメンバーのユーザIDと第2グループメンバーのユーザIDとして区別して、グループID「G3」に対応付けたグループ情報を生成してもよい。
なお、グループ生成部253は、ユーザ端末100からの要求に応じて、グループの名称(グループ名)をグループIDに対応付けて記憶してもよい。また、グループ生成部253は、ユーザ端末100からグループの名称(グループ名)を登録する要求がない場合には、グループ生成する際に予め定められた名称を自動的に付与してもよい。
また、グループ生成部253がグループ情報を生成すると、送信部252は、生成されたグループ情報をユーザ端末100に対して送信する。具体的には、送信部252は、グループに属するユーザとしてグループIDと対応付けられているユーザIDが示すユーザ端末100に対して、当該グループのグループ情報を送信する。即ち、グループが生成されると、送信部252は、その生成されたグループに属する(登録された)ユーザのユーザ端末100に対して、その生成されたグループのグループ情報を送信する。
例えば、送信部252は、上述のグループCのグループ情報を送信する場合、グループCのグループID「G3」と、グループID「G3」に対応付けられた(グループCに属する)ユーザのユーザID(ユーザA、ユーザB、ユーザC、ユーザD、及びユーザEの各ユーザID)とを含むグループ情報をユーザ端末100に対して送信する。また、送信部252は、グループCのグループID「G3」にグループAのユーザIDとグループBのユーザIDとを区別して対応付けたグループ情報を、旧グループがグループAのユーザと旧グループがグループBのユーザとを識別する情報としてユーザ端末100に対して送信する。
具体的には、送信部252は、グループ生成部253がグループ情報を生成してグループ情報記憶部242に記憶させると、グループ情報記憶部242を参照して、グループ情報に含まれるグループに属するユーザのユーザIDが示すユーザ端末100に対して、当該グループのグループ情報を送信する。また、送信部252は、グループ生成部253がグループ情報記憶部242に記憶させたグループ情報を更新した場合(例えば、グループメンバーの追加や削除をした場合)にも、グループ情報に含まれるグループに属するユーザのユーザIDが示すユーザ端末100に対して、当該グループのグループ情報を送信する。
これにより、ユーザ端末100は、受信したグループ情報に含まれるグループのグループIDとそのグループに属するユーザのユーザIDとを取得する。また、ユーザ端末100は、受信したグループ情報に含まれるグループがグループ単位で登録されて生成されたグループの場合には、当該グループのグループIDに対応付けられた旧グループそれぞれに属するユーザ(ユーザID)を識別する情報を取得する。
なお、送信部252がグループ情報をユーザ端末100に送信するタイミングは、グループ情報が生成されたタイミングに限られるものではなく、例えば、ユーザ端末100からの要求に基づくタイミング(例えば、ユーザ端末100においてチャットアプリケーションが起動されたとき、ログインされたとき)であってもよい。
(グループ生成処理の動作)
次に、図5を参照して、サーバ装置200がグループを生成する処理の動作について説明する。図5は、本実施形態によるグループ生成処理の一例を示すフローチャートである。
まず、サーバ装置200は、ユーザ端末100からグループを生成する要求を示す要求信号を受け取る(ステップS210)。例えば、ユーザ端末100に対してユーザからグループを登録する操作がされると、その操作に応じてユーザ端末100は、グループを生成する要求を示す要求信号(例えば、登録するユーザを示す情報やグループ名を示す情報等を含む要求信号)をサーバ装置200に対して送信する。サーバ装置200のグループ生成部253は、グループを生成する要求を示す要求信号を受信部251を介して受信する。
グループ生成部253は、グループを生成する要求を示す要求信号を受信部251を介して受信すると、当該グループを生成する要求が、グループ単位で登録されるグループを生成する要求であるか否か(グループ単位であるか、又は、ユーザ単位であるか)を判定する(ステップS220)。
ステップS220において、グループ単位で登録されるグループを生成する要求であると判定された場合(ステップS220:YES)、グループ生成部253は、グループ生成部253は、新規に発行したグループIDに、グループ単位でユーザIDを対応付けてグループ情報を生成する。具体的には、グループ生成部253は、新規にグループIDを発行し、当該発行したグループIDと、当該生成するグループに登録するグループ(旧グループ)のグループIDに対応付けられているユーザIDとを対応付けたグループ情報を生成してグループ情報記憶部242に記憶させる(ステップS230)。なお、グループ生成部253は、当該生成するグループとして新規に発行したグループIDに、旧グループそれぞれに属するユーザ(ユーザID)を区別して対応付けたグループ情報を生成してもよい。そして、グループ生成部253は、生成したグループ情報をグループ情報記憶部242に記憶させてグループ生成処理を終了する(ステップS250)。
一方、ステップS220において、ユーザ単位で登録されるグループを生成する要求であると判定された場合(ステップS220:NO)、グループ生成部253は、新規に発行したグループIDに、ユーザ単位でユーザIDを対応付けてグループ情報を生成する。具体的には、グループ生成部253は、新規にグループIDを発行し、当該発行したグループIDと、当該生成するグループに登録するユーザのユーザIDとを対応付けたグループ情報を生成してグループ情報記憶部242に記憶させる(ステップS240)。そして、グループ生成部253は、生成したグループ情報をグループ情報記憶部242に記憶させてグループ生成処理を終了する(ステップS250)。
このように、サーバ装置200は、ユーザ単位又はグループ単位でグループを生成する処理を行う。
なお、図4にグループ情報記憶部242に記憶されるグループ情報の例を示したが、これに限られるものではなく、例えば図6又は図7に示すようなグループ情報が記憶されるようにしてもよい。
図6は、グループ情報記憶部142に記憶されるグループ情報の一例を示す図であって、図4に示すエイリアス情報として対応付けたグループIDが各ユーザIDに展開されたグループ情報の例を示している。グループ情報記憶部142には、グループ単位で登録されて生成されたグループのグループIDの場合には、登録された旧グループに属するそれぞれのユーザのユーザIDが対応付けられたグループ情報が記憶される。ここでは、グループIDが「G3」であるグループのグループ情報は、グループIDが「G1」であるグループAと、グループIDが「G2」であるグループBとがグループ単位で登録されて生成されたグループのグループ情報であって、グループID「G3」には、ユーザAとユーザBとユーザCとユーザDとユーザEとの5ユーザのそれぞれのユーザIDが対応付けられている。即ち、グループIDが「G3」であるグループCには、登録された2つのグループのそれぞれに属するユーザをあわせた、ユーザAとユーザBとユーザCとユーザDとユーザEとの5ユーザが属している。
また、グループCのグループ情報には、旧グループがグループA(第1グループ)であるユーザのユーザIDと旧グループがグループB(第2グループ)であるユーザのユーザIDとがそれぞれ、第1グループメンバーのユーザIDと第2グループメンバーのユーザIDとして区別されてグループIDに対応付けられている。
従って、この図6に示すグループ情報においても、複数のユーザと当該複数のユーザが属するグループとの対応付けが、図4に示すグループ情報と同様にされている。
図7は、グループ情報記憶部142に記憶されるグループ情報の一例を示す図であって、ユーザIDにグループIDを対応付けしたグループ情報の例を示している。つまり、図4及び図6に示すグループ情報の例では、グループ毎に、グループIDに対して各グループに属するユーザのユーザIDを対応付けした例を示しているが、この図7では、ユーザ毎に、ユーザIDに対してそのユーザが属するグループのグループIDを対応付けした例を示している。
ここでは、各ユーザのユーザIDに対して、そのユーザが属するグループのグループIDと、グループ名とが対応付けられている。また、ユーザIDに対して、グループ単位で登録されて生成されたグループ(ここでは、グループC)のグループIDが対応付けられている場合には、さらに旧グループ(ここでは、グループA又はグループB)のグループIDが対応付けられている。
従って、この図7に示すグループ情報においても、複数のユーザと当該複数のユーザが属するグループとの対応付けが、図4に示すグループ情報と同様にされている。
なお、図4、図5、及び図6に示すグループ情報において、グループ単位で登録されたグループのグループ情報に、そのグループに属する各ユーザの旧グループを区別可能な情報が含まれる例を示したが、これは一例であって、この旧グループを区別可能な情報が含まれない構成としてもよい。
以上説明してきたように、本実施形態によるサーバ装置200は、複数のユーザと当該複数のユーザが属するグループとを対応付けて管理するグループ情報記憶部242(管理部)と、グループに属する複数のユーザのそれぞれのユーザ端末100(端末装置)から送信されたメッセージを受信する受信部251と、受信部251が受信したメッセージを、当該メッセージを送信したユーザが属するグループに属する他のユーザのユーザ端末100(端末装置)に送信する送信部252とを備えている。また、サーバ装置200は、チャットを行う際のグループを生成するグループ生成部253を備えている。グループ生成部253は、生成されたグループのうち、例えばグループA(第1グループ)及びグループB(第1グループとは異なる第2グループ)のそれぞれに属するユーザと対応付けたグループC(第3グループ)を生成してグループ情報記憶部242(管理部)に記憶させて管理させる。
これにより、サーバ装置200は、既に生成されている複数のグループに属するユーザを、グループ単位でまとめて対応付けた新たなグループを生成することができる。つまり、サーバ装置200は、既に生成されているグループをまとめたグループ(合同グループ)を生成することができる。よって、サーバ装置200は、例えば、グループに登録したいユーザが所定の関係(例えば友達関係)になっていないユーザであっても、そのユーザが登録されているグループをグループ単位で登録することができるため、所定の関係になっていないユーザを任意にグループに登録することができる。従って、本実施形態によれば、グループ内のユーザ間でメッセージを送受信する際の利便性を向上させることができる。
また、例えば、自身が参加しているグループに属するユーザの全てを、他の参加したいグループに加えたいような場合(例えば、自身が参加するグループと他のグループとを合流させたい場合)に、ユーザ単位でそれぞれのユーザを参加したいグループに登録するのは煩わしく不便なことがある。このような場合にも、本実施形態のチャットシステム1によれば、グループに属するユーザの全てをグループ単位で容易に登録することができるという利点がある。
また、グループ生成部253は、ユーザ端末100(端末装置)からの要求に応じて、上述のグループC(第3グループ)を生成する。つまり、グループ生成部253は、ユーザ端末100からの要求に応じて、既に生成されているグループをまとめたグループ(合同グループ)を生成する。
これにより、サーバ装置200は、ユーザのユーザ端末100に対する操作に応じて、例えば、グループA及びグループBのそれぞれに属するユーザと対応付けたグループC(合同グループ)を生成することができる。つまり、サーバ装置200は、ユーザのユーザ端末100に対する操作に応じて、既に生成されているグループをまとめたグループ(合同グループ)を生成することができる。よって、本実施形態のチャットシステム1によれば、ユーザは、ユーザ端末100に対する操作により、既に生成されている複数のグループに属するユーザを、グループ単位でまとめて対応付けた新たなグループを作成し、作成したグループでチャットを行うことができる。
ここで、グループ生成部253は、複数のグループがグループ単位で登録されるグループを生成する場合には、その登録される複数のグループの何れかに属するユーザのユーザ端末100からのみ、当該グループを生成する要求を行うことができるようにする。よって、サーバ装置200は、ユーザ自身が属するグループと他のグループとをまとめたグループ(合同グループ)を生成することができるようにするとともに、グループに属していない関係のないユーザからの要求では、このグループ単位でのグループの生成を行わないようにすることができる。
なお、グループ生成部253は、複数のグループがグループ単位で登録されるグループを生成する場合に、登録されるグループ以外のグループに属するユーザのユーザ端末100から当該グループを生成する要求を行うことができるようにしてもよい。即ち、グループ生成部253は、複数のグループがグループ単位で登録されるグループを生成する場合に、登録されるグループ以外のグループに属するユーザのユーザ端末100からの要求に応じて、グループを生成してもよい。
また、グループ生成部253は、ユーザ端末100からの要求に限らず、サーバ装置200の制御に応じて、複数のグループがグループ単位で登録されるグループを生成してもよい。ここで、サーバ装置200の制御とは、例えば、チャットシステム1上でメッセージを共有して行われる各種イベントの運営側の意図により、複数のグループをまとめたグループを生成するような場合に行われる制御である。
また、グループ生成部253は、例えば、上述のグループA(第1グループ)に属するユーザと、グループB(第2グループ)に属するユーザとを区別して対応付けたグループC(第3グループ)を生成する。そして、送信部252は、グループC(第3グループ)に対応付けられたグループA(第1グループ)のユーザとグループB(第2グループ)のユーザとを識別する情報をユーザ端末100(端末装置)へ送信する。具体的には、送信部252は、例えば、このグループC(第3グループ)に対応付けられたグループA(第1グループ)のユーザとグループB(第2グループ)のユーザとを識別する情報、即ち、このグループCに属する各ユーザの旧グループを区別可能な情報が含まれるグループ情報をユーザ端末100に送信する。
これにより、サーバ装置200は、グループCに属するユーザのそれぞれが、グループA又はグループBのうちのいずれのグループに属していたユーザであるかをユーザ端末100において識別可能(区別可能)にすることができる。即ち、サーバ装置200は、既に生成されている複数のグループに属するユーザを、グループ単位でまとめて対応付けた新たなグループを生成する場合、生成前にいずれのグループ(旧グループ)に属していたユーザであるかをユーザ端末100において識別可能(区別可能)にすることができる。
よって、ユーザ端末100は、新たなグループにおいて各ユーザから送信されたメッセージを、当該メッセージを送信したユーザが、生成前にいずれのグループ(旧グループ)に属していたユーザであるかに基づいて、区別して表示させることも可能である。このユーザ端末100におけるメッセージ画面の表示例については、第2の実施形態において後述する。
なお、上記実施形態では、サーバ装置200が、グループA及びグループBのそれぞれに属するユーザと対応付けたグループCを新たに生成する場合に、新たに生成したグループCのグループ情報をグループ情報記憶部242に追加して記憶させる例を説明した。この場合には、チャットシステム1において、既に生成されているグループA及びグループBは、グループCの生成後も継続してチャットを行うグループとして利用できるという利点がある。
一方、サーバ装置200は、グループA及びグループBのそれぞれに属するユーザと対応付けたグループCを新たに生成する場合に、生成前に各ユーザが属していたグループAとグループBとのグループ情報をグループ情報記憶部242から削除してもよい。つまり、チャットシステム1において、このグループCが生成された後では、グループAとグループBとはチャットを行うグループとして利用できないようにしてもよい。この場合には、ユーザ自身が現在属している最新のグループ(合同グループ)がいずれのグループであるかが分かりやすいという利点がある。
例えば、サーバ装置200は、グループを生成してから所定の期間が経過すると、そのグループに対して他の既に生成されているグループが追加されるようにしてもよい。このとき、サーバ装置200は、既に生成されているグループのグループ情報を削除して新たなグループのグループ情報を生成してもよいし、既に生成されているグループのうちの一方のグループのグループ情報に他方のグループのグループIDを追加してもよい。
このように、本実施形態のサーバ装置200によれば、グループ内のユーザ間でメッセージを送受信する際の利便性を向上させることができる。また、サーバ装置200と、サーバ装置200を介して送受信するメッセージを表示部110に表示する複数のユーザ端末100とを備えたチャットシステム1(メッセージ共有システム)によれば、グループ内のユーザ間でメッセージを送受信する際の利便性を向上させることができる。
<第2の実施形態>
次に、本発明の第2の実施形態を説明する。本実施形態では、チャットシステム1におけるユーザ端末100による表示処理について説明する。
まず、図8を参照して、グループ単位で登録されて生成されたグループにおいて行われるチャットのメッセージ画面について説明する。
(メッセージ画面の表示例)
図8は、本実施形態によるユーザ端末100が表示するメッセージ画面の一例を示す図である。この図8は、上述のグループCのグループチャットのメッセージ画面であって、グループCに属するユーザ(例えば、ユーザA)のユーザ端末100が表示部110に表示するメッセージ画面の一例を示している。符号110aは、メッセージ画面が表示されている領域の全体を示している。このメッセージ画面は、送受信された複数のメッセージのうちの一部分が表示されている。ユーザ端末100は、例えばタッチパネルである画面の任意の箇所において行われるスクロール操作に応じて、メッセージを上下にスクロール表示させることによって、この一画面内に表示しきれていないメッセージを表示可能である。符号110bの領域には、グループ名(ここでは、グループC)が表示される。
符号110cの領域には、そのグループに属するユーザ(グループメンバー)を示す情報が表示される。ここでは、グループCに属するユーザ(ユーザA、B、C、D、E)のそれぞれを示すアイコンが表示される。これらのアイコンは、例えば、それぞれのユーザによって予め登録された画像(例えば、プロフィール画像)でもよいし、チャットシステム1が予め用意した画像でもよい。ここでは、それぞれのアイコンは、それぞれのユーザを示すプロフィール画像である。
符号110dの領域には、そのグループにおいて送信されたメッセージが、そのメッセージが送信された日時に基づいて昇順(新しいメッセージが符号110dの領域の下側)に表示されるように表示コンポーネントが配置される。また、符号110dの領域には、メッセージを送信したユーザの属していた旧グループがいずれのグループであるかに基づいて、当該メッセージがメッセージ画面の左側からの吹き出しと右側からの吹き出しとのいずれかに区別して表示される。ここでは、旧グループがグループAであるユーザ(ユーザA、B、C)から送信されたメッセージは、メッセージ画面の左側からの吹き出しに表示される。一方、旧グループがグループBであるユーザ(ユーザD、E)から送信されたメッセージは、メッセージ画面の右側からの吹き出しに表示される。
左側からの吹き出しK3には、旧グループがグループAであるユーザ(ここではユーザA)から送信されたメッセージが表示される。アイコンK1は、吹き出しK3に表示されたメッセージを送信したユーザを示すアイコンであって、ここでは、ユーザAを示すプロフィール画像である。ユーザ名ラベルK2には、アイコンK1に対応するユーザのユーザ名が表示される。ここでは、ユーザAのユーザ名を「nameA」とし、ユーザAのユーザ名が表示される。時間ラベルK4には、吹き出しK3に表示されたメッセージの送信時間が表示される。
一方、右側からの吹き出しK13には、旧グループがグループBであるユーザ(ここではユーザD)から送信されたメッセージが表示される。アイコンK11は、吹き出しK13に表示されたメッセージを送信したユーザを示すアイコンであって、ここではユーザDを示すプロフィール画像である。ユーザ名ラベルK12には、アイコンK11に対応するユーザのユーザ名が表示される。ここでは、ユーザDのユーザ名を「nameD」とし、ユーザDのユーザ名が表示される。時間ラベルK14には、吹き出しK13に表示されたメッセージの送信時間が表示される。
符号110eの領域には、ユーザ端末100からメッセージを入力するための表示コンポーネントが配置される。テキストボックスK21には、ユーザから入力されるメッセージが表示される。なお、具体的には、ユーザは、例えば、テキストボックスK21と対で表示されるソフトウェアキーボードに対する操作により、テキストボックスK21にテキストを入力する。ここで、テキストボックスK21に入力されるテキストには、文字、記号、絵文字、等が含まれる。送信ボタンK22は、テキストボックスK21に入力されたメッセージを他のユーザに送信するための操作子である。
このように、ユーザ端末100は、グループ単位で登録されて生成されたグループのチャットのメッセージ画面において、それぞれのユーザから送信されたメッセージを、それぞれのユーザの属していた旧グループがいずれのグループであるかが判別可能なように区別して表示することができる。
次に、上述したメッセージ画面の表示処理を行う構成について詳しく説明する。本実施形態のサーバ装置200の構成は、第1の実施形態と同様でありその説明を省略する。以下、図9を参照して、ユーザ端末100の構成について詳しく説明する。
(ユーザ端末100の構成)
図9は、本実施形態によるユーザ端末100の構成を示す概略ブロック図である。ユーザ端末100は、表示部110と、操作受付部120と、通信部130と、記憶部140と、制御部150とを備えている。なお、図1に示す複数のユーザ端末100−Nは、同様の各部を備えるものとする。
表示部110は、画像や文字等の情報を表示する表示デバイスである。表示部110の情報を表示する領域を画面といい、表示部110の画面に表示される情報を画面情報という。なお、この画面情報には一画面では表示しきれない情報も含まれる。例えば、表示部110は、グループ内のユーザ間で送受信したメッセージを時系列に表示するメッセージ画面を表示する。ここで、表示部110が表示するこれらの画面は、ユーザからの操作に応じて制御部150によって制御される。
操作受付部120は、ユーザからの操作に応じてユーザの指示を受付けて、指示内容に応じた入力指示を生成する入力デバイスである。操作受付部120には、例えば、キーボードやボタン、タッチパネル等が適用できる。本実施形態では、操作受付部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は、チャットを行うユーザに関するユーザ情報を記憶する。図10及び図11は、ユーザ情報記憶部141に記憶されるユーザ情報の例を示す図である。ユーザ情報には、ユーザIDと、ユーザ名と、ユーザ画像とを対応付けた情報が含まれる。ユーザIDは、ユーザを識別する情報であって、サーバ装置200のユーザ情報記憶部241に記憶されているユーザIDと同様の情報である。ユーザ名は、そのユーザの名称である。ユーザ画像は、そのユーザのプロフィール画像である。具体的には、ユーザ画像のデータを識別する情報が、ユーザIDと、ユーザ名と対応付けられており、ユーザ情報記憶部141は、上述のユーザ情報と、ユーザ画像の実データとをそれぞれ記憶する。
ここで、図10に示すユーザ情報は、自ユーザのユーザ情報の例であって、ユーザAのユーザ端末100−1に記憶されているユーザAのユーザ情報の例である。また、図11に示すユーザ情報は、チャット相手として登録可能な他ユーザのユーザ情報の例であって、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報(ユーザB、ユーザC、ユーザD、及びユーザEのユーザ情報を含むユーザ情報)の例である。この図11に示す他ユーザのユーザ情報は、他ユーザそれぞれのユーザ端末100−Nでそのユーザ自身で登録したものである。この図10に示す、ユーザAのユーザ端末100−1に記憶されている他ユーザのユーザ情報は、チャット相手として登録可能なユーザ関係になるとき、又は、チャット相手として登録されたときに、サーバ装置200を介して他ユーザそれぞれのユーザ端末100−Nから取得して記憶する。
なお、ユーザ端末100が備えるユーザ情報記憶部141には、そのユーザ自身に関連する情報(例えば、ユーザ自身のユーザ情報、及び、ユーザ自身と同じグループに登録可能な他ユーザのユーザ情報)のみが記憶されている。これに対し、サーバ装置200が備えるユーザ情報記憶部241には、サーバ装置200を介してメッセージの送受信を行う全てのユーザに関する情報が記憶されている。
グループ情報記憶部142は、チャットを行うユーザのグループに関する情報を記憶する。例えば、グループ情報記憶部142は、サーバ装置200から供給(送信)されたグループ情報を受信して、サーバ装置200のグループ情報記憶部242に記憶されているグループ情報と同様の情報を記憶する。
なお、ユーザ端末100が備えるグループ情報記憶部142には、そのユーザ自身に関連するグループのグループ情報(例えば、ユーザ自身が属するグループのグループ情報)のみが記憶される。これに対し、サーバ装置200が備えるグループ情報記憶部242とには、サーバ装置200を介してメッセージの送受信を行う全てのユーザに関するグループのグループ情報が記憶される。
メッセージ情報記憶部143は、自ユーザが属するグループにおいて送受信されたメッセージに関するメッセージ情報を記憶する。このメッセージ情報には、サーバ装置200のメッセージ情報一時記憶部243に一時的に記憶されるメッセージ情報と同様に、グループIDと、ユーザIDと、送信日時情報と、メッセージとを対応付けした情報が含まれる。
図9に戻り、画面情報記憶部144は、上述したような複数のメッセージを時系列に並べて表示するメッセージ画面の画面情報を一時的に記憶する。また、画面情報記憶部144は、ユーザが登録したスケジュールを一覧表示するスケジュール画面の画面情報を一時的に記憶する。
制御部150は、ユーザ端末100の制御中枢として機能するCPU(Central Processing Unit)等の情報処理装置を備えており、ユーザ端末100が備える各部を制御する。制御部150は、メッセージ送信指示部151と、メッセージ送受信部152と、グループ登録部153と、表示制御部154とを備えている。
メッセージ送信指示部151は、操作受付部120に対するユーザからの操作に応じて生成された入力指示に基づいて、チャットにおけるメッセージの送信指示を示す送信指示情報を生成する。具体的には、メッセージ送信指示部151は、グループチャットのメッセージ画面において(例えば、図8に示すテキストボックスK21に)メッセージが入力され、その入力されたメッセージを送信する操作(例えば、図8に示す送信ボタンK22に対するタップ操作)がされると、入力されたメッセージに、そのメッセージが入力されたメッセージ画面のチャットのグループを識別するグループIDと、メッセージを入力したユーザである自ユーザを識別するユーザIDと、を対応付けたメッセージ情報を含む送信指示情報を生成する。
メッセージ送受信部152は、メッセージ送信指示部151が、操作受付部120に対する操作に応じて送信指示情報を生成すると、メッセージが入力されたメッセージ画面のグループIDをグループ情報記憶部142から読み出し、読み出したグループIDを宛先として、メッセージ送信指示部151によって生成された送信指示情報に含まれるメッセージ情報を、サーバ装置200に送信する。このとき、メッセージ情報に含まれるグループID、ユーザID(自ユーザ)、及びメッセージを、新たなレコード(1メッセージ分のデータ)としてメッセージ情報記憶部143に記憶させる。なお、メッセージ送受信部152は、送信したメッセージ情報に対応して受信するサーバ装置200から受信完了通知と共に送信日時情報(サーバ装置200がこのメッセージを受信したときの受信日時情報)を取得し、対応するメッセージのレコードの送信日時情報を更新する。また、メッセージ送受信部152は、他のユーザ端末100から、自ユーザが属するグループIDを宛先として送信されたメッセージ情報を、サーバ装置200から受信し、メッセージ情報に含まれるグループID、ユーザID(他ユーザ)、送信日時情報、及びメッセージを、新たなレコードとしてメッセージ情報記憶部143に記憶させる。
グループ登録部153は、チャットを行う際のグループを登録する。例えば、グループ登録部153は、チャットのグループを構成するユーザをユーザ単位又はグループ単位で登録する。具体的には、グループ登録部153は、ユーザ単位でグループを登録する場合、ユーザからの操作に応じて、グループ名とグループに登録する複数のユーザのユーザIDとを示す情報を含む要求信号をサーバ装置200に対して送信する。また、グループ登録部153は、グループ単位でグループを登録する場合、ユーザからの操作に応じて、グループ名とグループに登録する複数のグループのグループIDとを示す情報を含む要求信号をサーバ装置200に対して送信する。これらの要求信号(グループを生成する要求)に応じて、サーバ装置200のグループ生成部253は、第1の実施形態で説明したように、ユーザ単位で登録されるグループのグループ情報、又は、グループ単位で登録されるグループ(合同グループ)のグループ情報を生成してグループ情報記憶部242に記憶させる。
また、グループ登録部153は、サーバ装置200のグループ生成部253が生成したグループ情報のうちの自ユーザに関連するグループのグループ情報(例えば、自ユーザ自身が属するグループのグループ情報)を取得して、グループ情報記憶部142に記憶させる。これにより、ユーザ端末100のグループ情報記憶部142には、サーバ装置200のグループ情報記憶部242に記憶されたグループ情報のうちの自ユーザに関連するグループのグループ情報(例えば、自ユーザ自身が属するグループのグループ情報)が記憶される。
ここで、グループ単位で登録されるグループ(合同グループ)を作成する際のユーザ端末100におけるユーザの操作例を説明する。まず、ユーザは、ユーザ端末100の表示部110に対して、ユーザ自身が属する自グループが一覧表示されて選択可能な画面(自グループ選択画面)を表示させる操作を行う。この操作に応じて、ユーザ端末100は、自グループ選択画面を表示部110に表示する。この自グループ選択画面において、ユーザは、自グループのなかからグループ単位でユーザを合同グループに登録したいグループを選択する操作を行う。この操作に応じて、ユーザ端末100は、選択されたグループにおける処理が実行可能なグループ画面を表示する。このグループ画面内には、グループ単位でユーザを合同グループに登録する他のグループを検索する検索画面を表示部110に表示する操作子(検索ボタン)が表示される。ユーザが、この検索ボタンに対して操作すると、ユーザ端末100は、他のグループを検索する検索画面を表示部110に表示する。この検索画面において、ユーザは、グループ単位でユーザを合同グループに登録したい他のグループを検索して選択する操作を行う。この操作がされると、ユーザ端末100(グループ登録部153)は、選択された自グループと他のグループとがグループ単位で登録される合同グループを生成する要求信号をサーバ装置200に対して送信する。
このような操作により、ユーザは、ユーザ自身が属する自グループと他のグループとを選択し、これら選択したグループがグループ単位で登録される合同グループを作成することができる。なお、上述の操作例は一例であってこれに限られるものではない。
表示制御部154は、自ユーザの操作に応じて自ユーザのユーザ端末100から送信するメッセージと、一又は複数の他ユーザの操作に応じて他のユーザ端末100から送信されたメッセージとを、時系列に並べて表示部110に表示させる。また、表示制御部154は、表示させるメッセージに当該メッセージを送信したユーザを示す情報(例えば、ユーザ名やプロフィール画像)を対応付けて表示させる(例えば、図8参照)。具体的には、表示制御部154は、メッセージ情報記憶部143に記憶されている複数のメッセージ情報を読み出し、読み出した複数のメッセージ情報それぞれに含まれるメッセージを、それぞれに対応付けられた送信日時情報に基づいて時系列に並べたメッセージ画面の画面情報を生成して画面情報記憶部144に記憶させる。そして、表示制御部154は、生成した画面情報のうちの一部を表示部110に表示させる。
ここで、表示制御部154は、生成した画面情報のうちの一部を表示部110に表示させる。例えば、表示制御部154は、画面情報のうち、ユーザからの操作によって指定されたメッセージを含む箇所を、表示部110に表示させる。初期段階で表示部110に表示させる画面情報の一部は、例えば、読み出した複数のメッセージのうち、最も新しい送信日時情報が対応付けられたメッセージ(最新のメッセージ)が含まれる箇所とすることができる。
また、表示制御部154は、グループ単位で登録されて生成されたグループにおけるチャットのメッセージ画面では、メッセージを送信したユーザの属していた旧グループがいずれのグループであるかに基づいて、当該メッセージを区別して表示させる。例えば、表示制御部154は、メッセージを送信したユーザの属していた旧グループがいずれのグループであるかに基づいて、当該メッセージがメッセージ画面の左側からの吹き出しと右側の吹き出しとのいずれかに区別して表示させる。一例としては、表示制御部154は、図8に示すように、グループCのグループチャットにおいて、旧グループがグループAであるユーザ(ユーザA、ユーザB、又はユーザC)から送信されたメッセージをメッセージ画面の左側からの吹き出しに表示させ、旧グループがグループBであるユーザ(ユーザD又はユーザE)から送信されたメッセージをメッセージ画面の右側からの吹き出しに表示させる。
このように、ユーザ端末100は、メッセージを送信したユーザの属していた旧グループがいずれのグループであるかに基づいて、当該メッセージを区別して表示させる。具体的には、ユーザ端末100は、グループ情報記憶部142に記憶されているグループ情報を参照して、ユーザの属していた旧グループがいずれのグループであるかを示す情報に基づいて、ユーザの属していた旧グループ毎に区別してメッセージを表示させる。例えば、ユーザ端末100は、図8に示すように、ユーザの属していた旧グループ毎に区別して、メッセージ画面の左側からの吹き出しと右側の吹き出しとのいずれかにメッセージを表示させる。
これにより、ユーザ端末100は、グループ単位で登録されて生成されたグループにおけるチャットのメッセージ画面では、ユーザの属していた旧グループ毎に区別してメッセージを表示させることができる。よって、ユーザは、メッセージ画面において表示されるメッセージを送信したユーザの属していた旧グループがいずれのグループであるかを容易に判別することができる。
即ち、サーバ装置200は、ユーザ端末100に対して、グループ単位で登録されて生成されたグループにおけるチャットのメッセージ画面において、ユーザの属していた旧グループ毎に区別してメッセージを表示させるようにすることができる。
(メッセージ画面の別の表示例)
なお、図8を参照して、メッセージを送信したユーザの属していた旧グループがいずれのグループであるかに基づいて、当該メッセージがメッセージ画面の左側からの吹き出しと右側の吹き出しとのいずれかに区別して表示させる例を説明したが、区別して表示させる方法は他の方法であってもよい。
以下、図12から図14を参照して、図8に示す例(第1の例)とは異なるメッセージ画面の例(第2から第4の例)を説明する。なお、図12から図14において、図8の各部に対応する部分に同一の符号を付けており、その説明を省略する。
図12は、ユーザ端末100が表示するメッセージ画面の第2の例を示す図である。この図では、メッセージを送信したユーザの属していた旧グループがいずれのグループであるかに基づいて、当該メッセージが表示される吹き出しの形態を異ならせて表示する例を示している。
ここでは、旧グループがグループAであるユーザ(ユーザA、ユーザB、又はユーザC)から送信されたメッセージは、1本の実線(1本の太い実線)で囲まれる吹き出しに表示される。例えば、吹き出しK5には、旧グループがグループAであるユーザAから送信されたメッセージが表示される。一方、旧グループがグループBであるユーザ(ユーザD又はユーザE)から送信されたメッセージは、1本の白抜き線(2本の細い線)で囲まれる吹き出し(例えば、吹き出しK15)に表示される。例えば、吹き出しK15には、旧グループがグループBであるユーザDから送信されたメッセージが表示される。このように、ユーザ端末100は、吹き出しの形態を互いに異ならせることにより、旧グループがグループAであるユーザと、旧グループがグループBであるユーザとのそれぞれから送信されたメッセージを区別して表示してもよい。
なお、旧グループがいずれのグループであるかに基づいて互いに異ならせる吹き出しの形態は、上述したように、吹き出しを囲む枠線の種類が異なるようしてもよいが、枠線の色が異なるようしてもよい。また、吹き出しの形、吹き出しの背景の色、吹き出しに表示されるメッセージの色、大きさ、フォント等の形態が異なるようしてもよい。
図13は、ユーザ端末100が表示するメッセージ画面の第3の例を示す図である。この図では、メッセージを送信したユーザの属していた旧グループがいずれのグループであるか示す情報を表示する例を示している。
ここでは、旧グループがグループAであるユーザ(ここではユーザA)から送信されたメッセージが表示される吹き出しK3に対応して、ユーザ名ラベルK6には、ユーザAのユーザ名「nameA」と、旧グループを示す「グループA」とが表示される。一方、旧グループがグループBであるユーザ(ここではユーザD)から送信されたメッセージが表示される吹き出しK13に対応して、ユーザ名ラベルK16には、ユーザDのユーザ名「nameD」と、旧グループを示す「グループB」とが表示される。このように、ユーザ端末100は、メッセージが表示される吹き出しに対応して旧グループを示す情報(グループ名)を表示することにより、旧グループがグループAであるユーザと、旧グループがグループBであるユーザとのそれぞれから送信されたメッセージを区別して表示してもよい。
図14は、ユーザ端末100が表示するメッセージ画面の第4の例を示す図である。この図では、グループに属するユーザ(グループメンバー)を示す情報を、ユーザの属していた旧グループがいずれのグループであるかに基づいて区別して表示する例を示している。
ここでは、符号110cの領域に表示される、グループCに属するユーザ(ユーザA、B、C、D、E)のそれぞれを示すアイコン(ここでは、プロフィール画像)が、それぞれのユーザの属していた旧グループがいずれのグループであるかに基づいて区別して表示されている。旧グループがグループAであるユーザ(ユーザA、B、C)を示すアイコンに対応付けて(下側に)1本の実線(符号K31参照)が表示され、旧グループがグループBであるユーザ(ユーザD、E)を示すアイコンに対応付けて(下側に)1本の白抜き線(符号K32参照)が表示されている。これは、上述した図12に示す吹き出しを囲む枠線の種類に対応して表示させている例である。このように、ユーザ端末100は、グループに属するユーザ(グループメンバー)を示す情報(例えば、アイコン)が、旧グループ毎に区別可能なように表示されてもよい。
なお、ユーザ端末100は、符号110cの領域において、1本の実線(符号K31参照)と1本の白抜き線(符号K32参照)とにより区別して表示することに代えて、吹き出しを囲む枠の色、吹き出しの背景の色、又は吹き出しに表示されるメッセージの色と対応した互いに異なる色により区別して表示してもよい。例えば、ユーザ端末100は、符号110cの領域において、ユーザを示すアイコンに対応付けて旧グループ毎に互いに異なる色の線を表示してもよいし、旧グループ毎に色分けされた背景の領域に区別してユーザを示すアイコンを表示してもよい。
なお、上述したように、この符号110cの領域において区別して表示する形態と、符号110dの領域において各メッセージが表示される吹き出しの形態とを対応する形態としてもよいし、又は対応しない形態としてもよい。
このように、図12から図14に示すメッセージ画面の表示例としても、ユーザ端末100は、メッセージを送信したユーザの属していた旧グループがいずれのグループであるかを区別可能に表示することができる。
なお、図12から図14に示すメッセージ画面では、旧グループ毎に区別して、メッセージ画面の左側からの吹き出しと右側の吹き出しとのいずれかにメッセージが表示されているが、このような吹き出しの表示とする必要はない。つまり、この図12から図14に示すメッセージ画面では、吹き出しの表示される位置によらずに旧グループ毎に区別可能なように表示されるため、表示制御部154は、旧グループ毎に区別して、メッセージ画面の左側からの吹き出しと右側の吹き出しとのいずれかにメッセージを表示しなくともよい。
また、表示制御部154は、メッセージを時系列に並べて表示部110に表示させる場合、昇順(新しいメッセージが下側)に表示させる構成に限られるものではなく、降順に表示させる構成としてもよい。また、表示制御部154は、メッセージを上下方向に時系列に並べて表示させる構成に限られるものではなく、左右方向に時系列に並べて表示させる構成としてもよい。
また、表示制御部154は、他ユーザのユーザ端末100から送信されたメッセージに対しては当該メッセージを送信した他ユーザを示す情報を対応付けて表示させ、自ユーザのユーザ端末100から送信するメッセージに対しては自ユーザを示す情報を対応付けずに表示させてもよい。
このように、本実施形態のサーバ装置200、ユーザ端末100、及び、サーバ装置200と複数のユーザ端末100とを備えたチャットシステム1(メッセージ共有システム)によれば、グループ内のユーザ間でメッセージを送受信する際の利便性を向上させることができる。
<第3の実施形態>
次に、本発明の第3の実施形態を説明する。本実施形態のチャットシステム1の構成は、第1又は第2の実施形態と同様であるので、本実施形態において特徴的な処理について説明する。第2の実施形態では、メッセージを送信したユーザの属していた旧グループ毎に区別してメッセージを表示させる処理について説明した。本実施形態では、ユーザの属していた旧グループ毎に、他の旧グループに属していたユーザにはメッセージが表示されないようにする処理を説明する。
例えば、グループ単位で登録されて生成されたグループにおいて行われるチャットにおいて、ユーザは、生成前に属していたグループのユーザ(旧グループのグループメンバー)のみとチャットを行いたいような場合がある。そこで、本実施形態によるサーバ装置200は、グループ単位で登録されて生成されたグループにおいて送信されるメッセージを、当該メッセージを送信したユーザと旧グループで同じメンバーであったユーザのユーザ端末100においてのみ表示されるように、当該旧グループで同じメンバーであったユーザのユーザ端末100にのみ送信することが可能である。例えば、サーバ装置200は、グループ単位で登録されて生成されたグループにおいて受信したメッセージ情報を、当該メッセージ情報を送信したユーザの旧グループに属するユーザのみを対象として送信する。
なお、このグループ単位で登録されて生成されたグループにおいて、そのグループの生成前にユーザが属していた旧グループのグループメンバーのみとチャットを行う処理は、例えば、グループCのチャットを実行中のメッセージ画面に対して、所定の第1の操作が行われることにより開始され、所定の第2の操作が行われることにより終了するように構成されてもよい。ここで、上述の所定の第1の操作と所定の第2の操作とは、例えば、メッセージ画面内の所定の領域に対して操作がされることにより表示部110にポップアップ画面が表示され、そのポップアップ画面内に表示される操作子(旧グループのグループメンバーのみとチャットを行う処理の開始を選択可能な操作子又は終了を選択可能な操作子)に対する操作であってもよい。また、このグループ単位で登録されて生成されたグループにおいて、そのグループの生成前にユーザが属していた旧グループのグループメンバーのみとチャットを行う処理は、例えば、グループCのチャットを実行中のメッセージ画面において、新たに送信するメッセージを入力した際に、そのメッセージの送信前に、グループCに属するユーザ全てを対象としたチャットとするか、又は、旧グループ(グループA及びグループBの何れか一方)のメンバーのみを対象としたチャットとするかを選択可能なように構成されてもよい。
図15は、本実施形態によるメッセージの送信処理の一例を示すフローチャートである。この図15を参照して、本実施形態によるメッセージ情報の送信処理の動作について説明する。ここでは、グループCにおいて行われるチャットのメッセージの送信処理であって、メッセージ情報を送信したユーザが属していた旧グループのグループメンバーのみとチャットが行われる場合の処理の動作の一例を説明する。
まず、グループCに属するユーザのうちのいずれかのユーザのユーザ端末100において、グループCのグループチャットが開始され、このユーザ端末100が、グループCのチャットのメッセージ画面において入力されたメッセージのメッセージ情報を送信する(ステップS310)。
サーバ装置200の受信部251は、グループCに属するユーザのうちのいずれかのユーザのユーザ端末100から送信されたメッセージ情報を受信し、受信したメッセージ情報をメッセージ情報一時記憶部243に一時的に記憶させる(ステップS320)。
送信部252は、受信部251が受信してメッセージ情報一時記憶部243に記憶させたメッセージ情報を読み出して、当該メッセージ情報を送信したユーザがグループAに属していたユーザであるか否か(旧グループがグループAであるか否か)を判定する(ステップS330)。
ステップS330において、メッセージ情報を送信したユーザがグループAに属していたユーザである(旧グループがグループAである)と判定された場合(ステップS330:YES)、送信部252は、メッセージ情報を送信したユーザがグループBに属していたユーザであるか否か(旧グループがグループBであるか否か)を判定する(ステップS340)。
ステップS340において、メッセージ情報を送信したユーザがグループBに属していたユーザである(旧グループがグループBである)と判定された場合(ステップS340:YES)、即ち、メッセージ情報を送信したユーザがグループAとグループBとの両方に属していたユーザである場合には、送信部252は、グループCに属するユーザ(グループAに属していたユーザ及びグループBに属していたユーザ)のうち、当該メッセージ情報を送信したユーザを除くユーザのユーザ端末100に対して、当該メッセージ情報を送信する(ステップS350)。
一方、ステップS340において、メッセージ情報を送信したユーザがグループBに属していたユーザではない(旧グループがグループBではない)と判定された場合(ステップS340:NO)、送信部252は、グループCに属するユーザのなかで、グループAに属していたユーザ(旧グループがグループAであるユーザ)のうち、当該メッセージ情報を送信したユーザを除くユーザのユーザ端末100に対して、当該メッセージ情報を送信する(ステップS360)。即ち、メッセージ情報を送信したユーザがグループAに属していたユーザ(且つ、グループBには属していないユーザ)である場合には、送信部252は、グループCに属するユーザのなかで、グループBに属していたユーザ(旧グループがグループBであるユーザ)へ当該メッセージ情報を送信する処理を禁止する。
また、ステップS330において、メッセージ情報を送信したユーザがグループAに属していたユーザではない(旧グループがグループAではない)と判定された場合(ステップS330:NO)、送信部252は、メッセージ情報を送信したユーザがグループBに属していたユーザであるか否か(旧グループがグループBであるか否か)を判定する(ステップS370)。
ステップS370において、メッセージ情報を送信したユーザがグループBに属していたユーザである(旧グループがグループBである)と判定された場合(ステップS370:YES)、送信部252は、グループCに属するユーザのなかで、グループBに属していたユーザ(旧グループがグループBであるユーザ)のうち、当該メッセージ情報を送信したユーザを除くユーザのユーザ端末100に対して、当該メッセージ情報を送信する(ステップS380)。即ち、メッセージ情報を送信したユーザがグループBに属していたユーザ(且つ、グループAには属していないユーザ)である場合には、送信部252は、グループCに属するユーザのなかで、グループAに属していたユーザ(旧グループがグループAであるユーザ)へ当該メッセージ情報を送信する処理を禁止する。
なお、ステップS370において、メッセージ情報を送信したユーザがグループBに属していたユーザではない(旧グループがグループBではない)と判定された場合(ステップS370:NO)、即ち、メッセージ情報を送信したユーザがグループA及びグループBのいずれにも属していないユーザである場合には、送信部252は、当該メッセージ情報を送信しないで処理を終了する。
このように、サーバ装置200は、グループ単位で登録されて生成されたグループにおいて送信されるメッセージ情報を、当該メッセージ情報を送信したユーザと旧グループで同じメンバーであったユーザのユーザ端末100においてのみ表示されるように、当該旧グループで同じメンバーであったユーザのユーザ端末100にのみ送信することができる。よって、チャットシステム1は、グループ単位で登録されて生成されたグループにおいてチャットを行っている途中に、ユーザ自身がかつて属していた旧グループのグループメンバーのみとチャットを行うことができる。
例えば、グループCにおいて行われるグループチャットにおいて、旧グループがグループBであるグループメンバーのみとのチャットが開始されたとする。この場合には、旧グループがグループBであるユーザ(ユーザD及びユーザE)から送信されたメッセージは、旧グループがグループBであるユーザのユーザ端末100においてのみ表示される。この場合にユーザ端末100が表示するメッセージ画面の例を、図16及び図17を参照して説明する。なお、図16及び図17において、図8の各部に対応する部分に同一の符号を付けており、その説明を省略する。
図16は、本実施形態によるユーザ端末100が表示するメッセージ画面の一例を示す図であって、旧グループがグループBであるユーザのユーザ端末100が表示するメッセージ画面の一例を示している。この図に示すように、旧グループがグループBであるユーザのユーザ端末100は、グループCにおけるチャットのメッセージをメッセージ画面に表示するとともに、旧グループがグループBであるグループメンバーのみとのチャットのメッセージをメッセージ画面に表示する。吹き出しK17には、ユーザDから送信されたメッセージであって、旧グループがグループBであるグループメンバーのみとのチャットのメッセージが表示されている。ここで吹き出しK17は、旧グループがグループBであるグループメンバーのみとのチャットのメッセージが表示されていることが分かるように、グループCに属する全ユーザとのチャットのメッセージが表示される吹き出しK3とは異なる形状の吹き出しとして表示されている。
図17は、本実施形態によるユーザ端末100が表示するメッセージ画面の一例を示す図であって、旧グループがグループAであるユーザのユーザ端末100が表示するメッセージ画面の一例を示している。この図に示すように、旧グループがグループBであるグループメンバーのみとのチャットのメッセージは、旧グループがグループAであるユーザ(ユーザA、ユーザB、及びユーザC)のユーザ端末100には表示されない。
以上説明したように、本実施形態のサーバ装置200において、グループ生成部253は、例えば、上述のグループA(第1グループ)に属するユーザと、グループB(第2グループ)に属するユーザとを区別して対応付けたグループC(第3グループ)を生成する。そして、送信部252は、受信部251が受信したメッセージを、当該メッセージを送信したユーザが属するグループがグループA(第1グループ)である場合にはグループB(第2グループ)に属するユーザのユーザ端末100(端末装置)に対して送信する処理を禁止する。また、送信部252は、受信部251が受信したメッセージを、当該メッセージを送信したユーザが属するグループがグループB(第2グループ)である場合にはグループA(第1グループ)に属するユーザのユーザ端末100(端末装置)に送信する処理を禁止する。ここで、グループA(第1グループ)とグループB(第2グループ)とは、グループC(第3グループ)に属するユーザの旧グループである。
これにより、サーバ装置200は、グループ単位で登録されて生成されたグループにおいて送信されるメッセージを、当該メッセージを送信したユーザが属していた旧グループのメンバーであったユーザのユーザ端末100にのみ送信することができる。即ち、サーバ装置200は、グループ単位で登録されて生成されたグループにおいて送信されるメッセージを、当該メッセージ情報を送信したユーザが属していた旧グループのメンバーであったユーザのユーザ端末100にのみ表示されるようにすることができる。
よって、ユーザ端末100は、グループ単位で登録されて生成されたグループにおいて送信されるメッセージのうち、当該メッセージ情報を送信したユーザと旧グループで同じメンバーであったユーザから送信されたメッセージのみ表示することができる。従って、チャットシステム1は、グループ単位で登録されて生成されたグループにおいてチャットを行っている途中に、ユーザ自身がかつて属していた旧グループのグループメンバーのみとチャットを行うことができる。
なお、送信部252は、受信部251が受信したメッセージを、当該メッセージを送信したユーザが属するグループがグループA(第1グループ)とグループB(第2グループ)との両方である場合には、グループAに属するユーザ及びグループBに属するユーザのうち、当該メッセージを送信したユーザを除くユーザのユーザ端末100(端末装置)に送信する処理を禁止しなくともよい。即ち、送信部252は、グループAとグループBとの両方に属するユーザ(旧グループがグループAとグループBの両方であるユーザ)も、旧グループのグループメンバーのみとチャットを行うことが可能である。例えば、送信部252は、グループAとグループBとの両方に属するユーザ(旧グループがグループAとグループBの両方であるユーザ)から送信されたメッセージを、グループAに属するユーザ及びグループBに属するユーザのうち、当該メッセージを送信したユーザを除くユーザのユーザ端末100に送信してもよい。また、送信部252は、グループAに属するユーザから送信されたメッセージとグループBに属するユーザから送信されたメッセージとの両方を、グループAとグループBとの両方に属するユーザ(旧グループがグループAとグループBの両方であるユーザ)のユーザ端末100に送信してもよい。
ここで、グループCに属するユーザのうち、グループAとグループBとの両方に属するユーザ(旧グループがグループAとグループBの両方であるユーザ)とは、グループAとグループBとをグループ単位で登録して生成されたグループCにおいて行われるチャットにおいて、例えば、司会や運営側の立場として参加しているユーザである。
なお、本実施形態では、サーバ装置200が、メッセージ情報を送信したユーザが属する旧グループのメンバーであったユーザにのみ当該メッセージ情報を送信する処理、即ち、サーバ装置200が送信先を制限する処理を説明したが、これに限られるものではない。例えば、サーバ装置200が送信先を制限せずに、ユーザ端末100が、サーバ装置200から受信したメッセージ情報を、当該メッセージ情報を送信したユーザが旧グループで自ユーザと同じメンバーであった場合にのみ表示するようにしてもよい。
このように、本実施形態のサーバ装置200、ユーザ端末100、及び、サーバ装置200と複数のユーザ端末100とを備えたチャットシステム1(メッセージ共有システム)によれば、グループ内のユーザ間でメッセージを送受信する際の利便性を向上させることができる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、上述の第1から第3の実施形態において説明した各機能は、任意に組み合わせることができる。
なお、上述の実施形態では、複数のグループをグループ単位でまとめたグループを生成する例として、グループAとグループBとの2つのグループをグループ単位でまとめたグループCを生成する例を説明したが、3つ以上のグループをグループ単位でまとめたグループを生成してもよい。また、既にグループ単位でまとめて生成されたグループを含む複数のグループをグループ単位でまとめて新たなグループを生成してもよい。
また、上述の実施形態では、日時情報が対応付けられたメッセージが送受信される例を説明したが、日時情報が対応付けられていないメッセージが送受信される構成としてもよい。例えば、送受信されるメッセージに日時情報が対応付けられていない構成の場合、ユーザ端末100は、メッセージを受信した日時に基づいて、その受信したメッセージを時系列に並べて表示してもよい。
また、上述の実施形態では、ユーザIDが複数のユーザ端末100それぞれに固有に設定される構成を例に説明したが、これに限られるものではない。例えば、ユーザIDは、ユーザ毎に固有に設定される構成としてもよく、同一のユーザが複数の端末を利用する際に、それぞれの端末に同一のユーザIDを設定可能な構成としてもよい。なお、ユーザ端末100それぞれに固有に設定される情報として、ユーザIDに代えて、端末IDや電話番号等を用いてもよい。
また、上述の実施形態では、操作受付部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に代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。