[第1の実施の形態]
〔通信システム〕
図1に示すように、通信システム1は、メッセージ転送装置10と、複数の端末装置20a〜20fと、通信ネットワーク30とを備える。メッセージ転送装置10は、通信ネットワーク30内に設けられる。メッセージ転送装置10は、端末装置20a〜20f間で送受信されるメッセージや、端末装置20a〜20fのユーザ情報を中継する。ユーザ情報には、ユーザの状態(以下「プレゼンス情報」という)、属性情報、ユーザの他のユーザへのアクセス制限に関するアクセス情報が含まれる。そして、メッセージ転送装置10は、送信元の端末装置から送信されたメッセージやユーザ情報を含むユーザ情報通知を送信先の端末装置に転送する。
通信ネットワーク30は、端末装置20a〜20f間で送受信されるメッセージやユーザ情報通知を中継するネットワークである。通信ネットワーク30は、例えば、インターネット等を用いることができる。端末装置20a〜20fは、通信ネットワーク30に接続する。端末装置20a〜20fは、他の端末装置20a〜20fに、通信ネットワーク30を経由してメッセージやユーザ情報通知を送信する。このようにして、通信システム1では、端末装置20a〜20f間で相互に、メッセージや、プレゼンス情報を含むユーザ情報通知を交換するメッセージングサービスやプレゼンスサービスが行われる。本実施形態で用いるメッセージは、インスタントメッセージであり、メッセージ転送装置10を経由して端末装置20a〜20f間で、リアルタイムにメッセージやユーザ情報通知の送受信を行う。ここでいうリアルタイムとは、電子メールシステムのように、送信先の端末装置がメールサーバに電子メールを取得しに行かずに、メッセージを送受信することをいう。そのため、メッセージやユーザ情報通知を送受信する端末装置20a〜20fは、通信可能である必要がある。
次に、メッセージ転送装置10、端末装置20a〜20fの構成について詳細に説明する。図2に示すように、メッセージ転送装置10は、メッセージ受信部11と、メッセージ送信部12と、送信先条件受信部13と、ユーザ情報送受信部14と、取得ユーザ情報データベース15と、登録ユーザ情報データベース16と、送信先決定部17と、タイマ17aと、メッセージ転送処理部18と、バッファ18aと、対応テーブル18bと、ユーザ情報処理部19とを備える。図2では、送信元の端末装置が端末装置20aである場合を例に説明する。
メッセージ受信部11は、送信元の端末装置20aから、通信ネットワーク30を介してメッセージを受信する。更に、メッセージ受信部11は、端末装置20aからのメッセージの送信先となった端末装置20cから、通信ネットワーク30を介してメッセージに対する返信メッセージを受信する。メッセージ受信部11は、受信したメッセージや返信メッセージをメッセージ転送処理部18に入力する。送信先条件受信部13は、送信元の端末装置20aから、通信ネットワーク30を介して、メッセージの送信先の条件(以下「送信先条件」という)を受信する。送信先条件は、送信元の端末装置20aからメッセージと共に送信される。例えば、送信先条件受信部13は、メッセージに付与されたシーケンス番号と同じシーケンス番号に対応付けられた送信先条件を受信する。この場合、メッセージ転送装置10は、シーケンス番号からメッセージとその送信先条件との対応を判断できる。送信先条件受信部13は、受信した送信先条件を送信先決定部17に入力する。
送信先条件は、端末装置20a〜20fのユーザの状態(プレゼンス情報)、属性情報、アクセス情報のようなユーザ情報を用いて設定される。送信先条件は、少なくともプレゼンス情報を用いて設定される。ユーザの状態(プレゼンス情報)には、例えば、ユーザの現在位置、現在の気分、現在の行動、オンラインのような接続状態等がある。属性情報には、ユーザの好みや趣味のようなプレファレンス情報、年齢、性別、職業、住所等がある。アクセス情報は、例えば、端末装置20aへのメッセージ送信やユーザ情報の通知が許可されているユーザや、反対に、禁止されているユーザを指定して表すことができる。ユーザは、ユーザのアドレスやユーザIDのようなユーザ識別情報を用いて特定できる。
送信先条件は、含まれる項目について、その項目が一致する必要性を指定することができる。例えば、送信先条件が「現在の気分(プレゼンス情報)が最高の状態にあり、趣味(プレファレンス情報)が音楽であるユーザ」の場合に、項目「現在の気分」は「普通の状態」であっても構わないとし、項目「趣味」は必ず「音楽」でなければならないといったように、各項目が一致する必要性を指定できる。指定した必要性は送信先条件に付加される。
又、送信先条件は複数設定してもよい。この場合に、複数の送信先条件に優先順位を付与することができる。例えば、送信先条件「現在の気分(プレゼンス情報)が最高の状態にあり、趣味(プレファレンス情報)が音楽であるユーザ」に高い優先順位を付与し、送信先条件「現在の気分(プレゼンス情報)が普通の状態にあり、趣味(プレファレンス情報)が音楽であるユーザ」に低い優先順位を付与できる。付与した優先順位は送信先条件に付加される。優先順位は、例えば、数字や「高、中、低」等の文字を用いて指定できる。更に、送信先条件に基づいて決定する送信先の数を指定することができる。指定した送信先の数(以下「指定数」という)は送信先条件に付加される。又、メッセージの送信タイミングを指定できる。例えば、送信タイミングとしては、送信元の端末装置がメッセージを送信してから、送信先にメッセージが送信されるまでの時間として許容できる許容時間や、送信先へのメッセージの送信が完了すべき時刻を指定できる。指定した送信タイミングは送信先条件に付加される。
図3(a)にメッセージ40及びその送信先条件50のフォーマットの一例を示す。「新宿駅付近で今開いているレコード屋さん知っていますか?」というメッセージ40の送信先条件として、送信先条件50「現在位置(プレゼンス情報)が新宿であり、趣味(プレファレンス情報)が音楽であるユーザ」が設定されている。他にも、たくさんのお菓子を持っているユーザが、「お菓子余っています」というメッセージを送信し、その送信条件を「現在の気分(プレゼンス情報)が空腹であるユーザ」のように設定できる。
ユーザ情報送受信部14は、端末装置20a〜20fのユーザ情報を取得する取得手段である。ユーザ情報送受信部14は、ユーザ情報として、ユーザの状態(プレゼンス情報)や、属性情報、アクセス情報を取得する。ユーザ情報送受信部14は、少なくともユーザの状態(プレゼンス情報)を取得する。ユーザ情報送受信部14は、端末装置20a〜20fから、ユーザ情報通知を受信することによりユーザ情報を取得する。ユーザ情報通知は、ユーザ識別情報に対応付けられたユーザ情報を含む。図3(b)にユーザ情報通知60のフォーマットの一例を示す。ユーザ情報通知60は、ユーザID61「1234567」と、プレゼンス情報62「現在位置は新宿、現在の行動は買い物、現在の気分は良好」と、プレファレンス情報63「趣味が音楽、好きなアーティストはabcd」を含む。ユーザ情報送受信部14は、定期的に、又は、ランダムに、あるいは、ユーザ情報が変化した時に、ユーザ情報通知を受信する。ユーザ情報送受信部14は、受信したユーザ情報通知をユーザ情報処理部19に入力する。更に、ユーザ情報送受信部14は、受信したユーザ情報通知を、ユーザ情報処理部19の指示に従って、他の端末装置20b〜20fに送信する。
ユーザ情報処理部19は、ユーザ情報送受信部14からユーザ情報通知を取得する。ユーザ情報処理部19は、取得したユーザ情報通知から、ユーザ識別情報とユーザ情報を取得し、ユーザ識別情報に対応付けて、ユーザ情報を取得ユーザ情報データベース15に格納する。更に、ユーザ情報処理部19は、ユーザ情報送受信部14に、受信したユーザ情報通知を他の端末装置20b〜20fに送信するように指示する。ユーザ情報処理部19は、登録ユーザ情報データベース16を参照して、ユーザ情報通知の送信先をユーザ情報送受信部14に指示する。登録ユーザ情報データベース16には、ユーザ情報を相互に通知する複数のユーザで構成されるグループが登録されている。登録ユーザ情報データベース16は、グループ毎に、グループに含まれるユーザのユーザ識別情報を保持する。ユーザ情報処理部19は、ユーザ情報通知に含まれるユーザ識別情報に基づいて、ユーザ情報通知の送信元のユーザが属するグループと同じグループに属するユーザのユーザ識別情報を、登録ユーザ情報データベース16から取得する。そして、ユーザ情報処理部19は、取得したユーザ識別情報の端末装置にユーザ情報通知を送信するように、ユーザ情報送受信部14に指示する。これにより、同じグループに属するユーザ間で相互に、ユーザ情報通知が交換される。
取得ユーザ情報データベース15は、ユーザ情報送受信部14が取得したユーザ情報を保持する。取得ユーザ情報データベース15は、ユーザ識別情報に対応付けて、取得したユーザ情報を保持する。
送信先決定部17は、状態を用いたメッセージの送信先条件と、取得した状態との比較を行い、送信先条件と取得した状態が一致するユーザをそのメッセージの送信先に決定する決定手段である。送信先決定部17は、ユーザの状態(プレゼンス情報)に加えて、ユーザの属性情報やアクセス情報を用いた送信先条件と、取得したユーザの状態(プレゼンス情報)に加えて、属性情報やアクセス情報との比較を行うことにより、送信先を決定することが好ましい。更に、送信先決定部17は、送信先条件に含まれる項目が一致する必要性や送信先条件の優先順位、送信先の数、メッセージの送信タイミングに基づいて、送信先を決定するようにしてもよい。これによれば、メッセージ転送装置10は、送信先条件に含まれる項目が一致する必要性、送信先条件の優先順位、送信先の数、メッセージの送信タイミングを考慮して送信先を決定できる。
送信先決定部17は、送信先条件受信部13から送信先条件を取得する。送信先決定部17は、送信先条件と取得ユーザ情報データベース15が保持するユーザ情報とを比較する。送信先決定部17は、送信先条件とユーザ情報とが一致するユーザが存在する場合には、そのユーザをそのメッセージの送信先に決定する。例えば、図3(a)に示す送信先条件50と、図3(b)に示すユーザ情報通知60のユーザ情報は一致する。そのため、送信先決定部17は、メッセージ40の送信先を、ユーザID「1234567」のユーザに決定する。送信先決定部17は、決定した送信先のユーザ識別情報を、取得ユーザ情報データベース15から取得する。送信先決定部17は、メッセージ転送処理部18に決定した送信先のユーザ識別情報を入力し、決定した送信先を通知する。送信先決定部17は、例えば、メッセージ及び送信先条件に付与されたシーケンス番号に対応付けて、送信先のユーザ識別情報を通知する。送信先決定部17は、1つのメッセージについて、1つの送信先を決定してもよく、複数の送信先を決定してもよい。
送信先決定部17は、送信先条件の項目が一致する必要性が指定されている場合には、送信先条件に完全に一致するユーザに加えて、一致する必要性の高い項目だけ一致するユーザを送信先に決定してもよい。あるいは、送信先決定部17は、送信先条件に完全に一致するユーザが存在しない場合にだけ、一致する必要性の高い項目だけ一致するユーザを送信先に決定してもよい。あるいは、送信先の数が指定されている場合には、送信先決定部17は、送信先条件に完全に一致するユーザ、一致する必要性の高い項目だけ一致するユーザの順番にユーザにランク付けを行い、ランクが上位のユーザから順番に指定数だけ送信先に決定してもよい。例えば、送信先条件が「現在の気分(プレゼンス情報)が最高の状態にあり、趣味(プレファレンス情報)が音楽であるユーザ」、項目「現在の気分」は「普通の状態」であっても構わないとし、項目「趣味」は必ず「音楽」でなければならないという必要性が指定されている場合、現在の気分が普通の状態であって、趣味が音楽のユーザも、送信先条件と一致するとみなし、送信先に決定することができる。このように、「送信先条件とユーザ情報が一致する」とは、完全に一致する場合だけでなく、一部が一致する場合も含まれる。
又、送信先決定部17は、送信先条件が複数設定されている場合には、いずれかの送信先条件とユーザ情報が一致するユーザを送信先に決定できる。送信先決定部17は、複数の送信先条件に優先順位が付与されている場合には、優先順位の高い送信先条件から順番にユーザ情報との比較を行って、送信先条件とユーザ情報が一致するユーザを検出した時点で比較を終了し、そのユーザを送信先に決定できる。あるいは、送信先の数が指定されている場合には、送信先決定部17は、優先順位の高い送信先条件に一致するユーザから順番にランク付けを行って、ランクが上位のユーザから順番に指定数だけ送信先に決定してもよい。
このように、メッセージ転送装置10は、一致する必要性や優先順位に基づいて送信先を決定する場合には、ある送信先条件に完全に一致するユーザが存在しない場合であっても、柔軟に対応してメッセージをいずれかの送信先に送信できる。更に、送信先決定部17は、登録ユーザ情報データベース16を参照し、同じグループに属するユーザの中から送信先を決定するようにしてもよい。
送信先決定部17は、まず、メッセージの受信時に、送信先条件とユーザ情報との比較を行う。そして、送信先決定部17は、メッセージの受信時に、送信先条件とユーザ情報とが一致するユーザが存在しない場合、送信先条件に付加されているメッセージの送信タイミングに基づいて、そのメッセージを直ちに送信しなければならないか、メッセージの送信までに時間を要することが許容されるかを判断する。即ち、送信先決定部17は、メッセージの受信時の比較が終わった時点で、送信タイミングを経過しているか否かを判断する。送信先決定部17は、タイマ17aから現在時刻や計測時間等の時間情報を取得して判断する。タイマ17aは、現在時刻を提供したり、メッセージ転送装置10がメッセージを受信した時点を、送信元の端末装置20aがメッセージを送信した時点とみなして、メッセージ送信時点からの経過時間を計測したりする。尚、メッセージの送信タイミングが指定されていない場合には、送信先決定部17は、そのメッセージは直ちに送信されなければならないと判断する。
送信先決定部17は、メッセージを直ちに送信しなければならず、送信タイミングを経過している場合には、そのメッセージを破棄し、送信先条件と一致するユーザが存在しなかったことの通知(以下「エラー通知」という)をメッセージの送信元の端末装置20aに送信するように、メッセージ転送処理部18に指示する。
一方、送信先決定部17は、メッセージの送信までに時間を要することが許容され、送信タイミングが経過していない場合には、メッセージをバッファ18aに格納して、バッファ18aに保持させるようにメッセージ転送処理部18に指示する。送信先決定部17は、メッセージ及び送信先条件に付与されたシーケンス番号を指定して指示する。バッファ18aは、メッセージを保持する保持手段である。そして、送信先決定部17は、一致するユーザが検出されるまで比較を行う。尚、送信先決定部17は、送信タイミングが経過した場合には、比較を終了する。ユーザ情報送受信部14は、定期的に、又は、ランダムに、あるいは、ユーザ情報が変化した時に、ユーザ情報通知を受信する。そのため、取得ユーザ情報データベース15が保持するユーザ情報は、逐次更新されていく。送信先決定部17は、繰り返し比較を行うことで変化するユーザ情報を監視し、一致するユーザが検出された時点で、送信先を決定する。そして、送信先決定部17は、一致するユーザを検出し、送信先を決定した時点で、メッセージ転送処理部18に決定した送信先を通知する。
例えば、送信先条件が「現在位置が渋谷のユーザ」の場合に、メッセージ転送装置10がメッセージを受信した時点で、現在位置が渋谷のユーザが存在しないときは、送信先決定部17は、そのメッセージをバッファ18aに保持させるようにメッセージ転送処理部18に指示する。そして、送信先決定部17は、いずれかのユーザの現在位置が渋谷に変化した時点で、そのユーザを送信先に決定し、メッセージ転送処理部18に通知する。
更に、送信先決定部17は、メッセージの送信タイミングと優先順位を用いて、送信先を決定してもよい。例えば、直ちに送信しなければならないメッセージについては優先順位の低い条件を用いてでも送信先を決定し、メッセージの送信までに時間を要することが許容されるメッセージについては優先順位の高い条件と一致するユーザが検出されるまで比較を繰り返すことにより、送信先を決定してもよい。
又、送信先決定部17は、送信先条件に基づいて決定する送信先の数が指定されている場合に、送信先条件とユーザ情報が一致するユーザが指定数を超えて存在するときは、一致するユーザの中から指定数だけランダムに選択して送信先に決定できる。又、ある時点において送信先条件とユーザ情報が一致するユーザが指定数未満である場合に、メッセージの送信までに時間があるときは、送信先決定部17は、メッセージをバッファ18aに格納して、バッファ18aに保持させるようにメッセージ転送処理部18に指示する。そして、送信先決定部17は、送信先条件とユーザ情報との比較を繰り返し行って、一致するユーザを比較の度に送信先に決定し、メッセージ転送処理部18に送信先を通知する。送信先決定部17は、逐次的に決定した送信先の合計が指定数に達した時点で、送信先の決定を終了する。この場合、メッセージは指定数に達するまで逐次的に送信される。
あるいは、送信先決定部17は、送信先条件とユーザ情報が一致するユーザが同時に指定数以上検出できるまで、送信先条件とユーザ情報との比較を繰り返し行って、一致するユーザが同時に指定数以上検出できた時点で、送信先を決定し、メッセージ転送処理部18に送信先を通知してもよい。この場合、メッセージは指定数のユーザに同時に送信される。このように、送信先の数に基づいて送信先を決定する場合、ユーザは希望する数の送信先にメッセージを送信できる。
メッセージ転送処理部18は、メッセージの転送を制御する。メッセージ転送処理部18は、メッセージ受信部11から、端末装置20aからのメッセージを取得する。メッセージ転送処理部18は、送信先決定部17から、決定した送信先のユーザ識別情報を取得する。この場合、メッセージ転送処理部18は、取得したメッセージの送信先に、取得した送信先のユーザ識別情報を設定して、メッセージ送信部12に入力する。このようにして、メッセージ転送処理部18は、決定した送信先にメッセージを送信するようメッセージ送信部12に指示する。例えば、端末装置20aからのメッセージの送信先が端末装置20c,20dのユーザに決定された場合には、メッセージ転送処理部18は、端末装置20aのユーザからのメッセージの送信先に、端末装置20c,20dのユーザのユーザ識別情報を設定して、メッセージ送信部12に入力する。
又、メッセージ転送処理部18は、送信先決定部17から、メッセージのバッファ18aへの格納の指示を取得する。メッセージ転送処理部18は、指示に従い、メッセージ受信部11から取得したメッセージをバッファ18aに格納する。例えば、メッセージ転送処理部18は、指定されたシーケンス番号のメッセージをバッファ18aに格納する。この場合、メッセージ転送処理部18は、送信先条件とユーザ情報が一致するユーザが検出され、送信先が決定したときに、送信先決定部17から決定した送信先のユーザ識別情報を取得する。メッセージ転送処理部18は、送信先のユーザ識別情報を取得した時点で、バッファ18aからメッセージを取得し、取得したメッセージの送信先に、取得した送信先のユーザ識別情報を設定して、メッセージ送信部12に入力する。
更に、メッセージ転送処理部18は、メッセージと、メッセージの送信元と、メッセージの送信先との対応を、対応テーブル18bに格納する。対応テーブル18bは、メッセージと、メッセージの送信元と、メッセージの送信先とを対応付けて記憶する。メッセージは、シーケンス番号を用いて特定でき、メッセージの送信元及び送信先は、ユーザ識別情報を用いて特定できる。
又、メッセージ転送処理部18は、送信先決定部17から、メッセージの破棄及びエラー通知送信の指示を取得する。この場合、メッセージ転送処理部18は、メッセージ受信部11から取得したメッセージを破棄する。あるいは、メッセージ転送処理部18は、バッファ18aからメッセージを取得して、破棄する。そして、メッセージ転送処理部18は、メッセージの送信元に対するエラー通知を生成してメッセージ送信部12に入力する。これにより、メッセージ転送処理部18は、エラー通知の送信元の端末装置20aへの送信を、メッセージ送信部12に指示する。
更に、メッセージ転送処理部18は、メッセージの送信先となった端末装置20cからメッセージの送信元である端末装置20aへの返信メッセージを、メッセージ受信部11から取得する。ここで、説明を分かり易くするために、最初に送信される端末装置20aからのメッセージを「初回メッセージ」として説明する。メッセージ転送処理部18は、取得した返信メッセージに、初回メッセージに対する返信であることを示す返信情報を付加する。メッセージ転送処理部18は、返信メッセージの送信元、即ち、初回メッセージの送信先のユーザ識別情報に基づいて、対応する初回メッセージのシーケンス番号を対応テーブル18bから取得する。メッセージ転送処理部18は、取得したシーケンス番号により特定される初回メッセージに対する返信であることを、返信情報として返信メッセージに付加する。
更に、メッセージ転送処理部18は、返信メッセージの送信元、即ち、初回メッセージの送信先を示す送信先情報を削除する。送信先情報は、送信先のユーザ識別情報である。メッセージ転送処理部18は、初回メッセージの送信先のユーザ識別情報に基づいて、対応する初回メッセージの送信元のユーザ識別情報を対応テーブル18bから取得し、返信情報の付加及び送信先情報の削除の処理がなされた返信メッセージの送信先に設定する。メッセージ転送処理部18は、返信メッセージをメッセージ送信部12に入力し、初回メッセージの送信元であるユーザの端末装置20aに返信メッセージを送信するよう指示する。このようにして、メッセージ転送処理部18は、返信メッセージに返信情報を付加し、送信先情報を削除する処理を行う処理手段として機能する。
メッセージ送信部12は、送信先決定部17が決定した送信先にメッセージを送信する送信手段である。メッセージ送信部12は、メッセージ転送処理部18からメッセージを取得する。メッセージ送信部12は、メッセージ転送処理部18の指示に従って、送信先条件に基づいて決定された送信先の端末装置20c,20dにメッセージを送信する。メッセージ送信部12は、バッファ18aがメッセージを保持していた場合にも、メッセージ転送処理部18の指示に従って、送信先条件とユーザ情報が一致するユーザが検出され、送信先が決定したときに、バッファ18aが保持するメッセージを送信する。メッセージ送信部12は、メッセージ転送処理部18の指示に従って、エラー通知を送信元の端末装置20aに送信する。更に、メッセージ送信部12は、メッセージ転送処理部18によって処理された返信メッセージを、メッセージ転送処理部18の指示に従ってメッセージの送信元の端末装置20aに送信する。
以上説明したように、メッセージ転送装置10は、ユーザ情報を取得して管理し、送信先条件に基づいてメッセージの送信先を決定し、送信する通信装置として機能する。
図4に示すように、端末装置20aは、メッセージ受信部21と、メッセージ送信部22と、ユーザ情報送受信部23と、ユーザインタフェース24と、ユーザ状態取得部25と、処理部26とを備える。ユーザインタフェース24は、表示部24aと、メッセージ入力部24bと、送信先条件入力部24cと、ユーザ情報入力部24dとを備える。端末装置20b〜20fも端末装置20aと同様の構成を備える。
表示部24aは、メッセージや返信メッセージ、エラー通知、ユーザ情報通知を表示する。メッセージ入力部24bは、ユーザから入力されるメッセージを取得し、処理部26に入力する。例えば、メッセージ入力部24bは、ある地域に現在存在するユーザに向けて、その地域に関する情報、例えば、その地域の交通情報、広告情報、イベント情報等を含むメッセージや、その地域に関する質問を含むメッセージ、端末装置20aのユーザ自身の現在の状態に応じたメッセージ等を取得する。送信先条件入力部24cは、ユーザから入力される送信先条件、送信先条件に含まれる項目が一致する必要性の指定、送信先条件の優先順位の指定、送信先の数の指定、メッセージの送信タイミングの指定等を取得し、処理部26に入力する。ユーザ情報入力部24dは、ユーザから入力されるユーザの状態(プレゼンス情報)、属性情報、アクセス情報のようなユーザ情報を取得し、処理部26に入力する。
ユーザ状態取得部25は、端末装置20aのユーザの状態(プレゼンス情報)を取得する。例えば、ユーザの現在位置を取得する場合、ユーザ状態取得部25として、GPS(Global Positioning System)を利用した位置測定器等を用いることができる。又、無線タグからユーザの現在位置や行動を取得する場合、ユーザ状態取得部25として、タグリーダ等を用いることができる。例えば、ユーザ状態取得部25は、店舗に設けられている無線タグからユーザの行動として「買い物中」を取得したり、電車に設けられている無線タグからユーザの行動として「移動中」を取得したりできる。ユーザ状態取得部25は、取得したユーザ状態を処理部26に入力する。
メッセージ受信部21は、他のユーザからのメッセージや、端末装置20aが送信したメッセージに対する返信メッセージ、エラー通知等をメッセージ転送装置10から受信する。メッセージ受信部21は、受信したメッセージ、返信メッセージ、エラー通知等を処理部26に入力する。メッセージ送信部22は、処理部26から、メッセージ及びそのメッセージの送信先条件を取得し、メッセージ転送装置10に送信する。ユーザ情報送受信部23は、処理部26からユーザ情報通知を取得し、メッセージ転送装置10に送信する。ユーザ情報送受信部23は、定期的に、又は、ランダムに、あるいは、ユーザ情報が変化した時に、ユーザ情報通知を送信する。ユーザ情報送受信部23は、メッセージ転送装置10からユーザ情報通知を受信し、処理部26に入力する。
処理部26は、メッセージやユーザ情報通知の送受信を制御する。処理部26は、メッセージ受信部21から、メッセージ、返信メッセージ、エラー通知を取得し、表示部24aに出力する。処理部26は、メッセージ入力部24bからメッセージを取得する。処理部26は、送信先条件入力部24cから送信先条件を取得する。処理部26は、取得したメッセージにシーケンス番号を付与してメッセージ送信部22に入力し、メッセージ転送装置10に送信するよう指示する。処理部26は、取得した送信先条件に、メッセージに付与したシーケンス番号と同じシーケンス番号を付与してメッセージ送信部22に入力し、メッセージ転送装置10に送信するよう指示する。
処理部26は、ユーザ情報入力部24dからユーザ情報を取得する。処理部26は、ユーザ状態取得部25からユーザの状態(プレゼンス情報)を取得する。処理部26は、取得したこれらのユーザ情報を含むユーザ情報通知を作成する。処理部26は、作成したユーザ情報通知をユーザ情報送受信部23に入力し、メッセージ転送装置10に送信するよう指示する。例えば、処理部26は、定期的に、又は、ランダムに、あるいは、ユーザ情報が変化した時に、ユーザ情報通知を作成して、ユーザ情報送受信部23bに入力する。
このように端末装置20a〜20fは、メッセージングサービス、プレゼンスサービスのクライアントとして機能し、メッセージ転送装置10を経由してクライアント間、即ち、端末装置20a〜20f間で、メッセージやユーザ情報通知の送受信を行う。
〔通信方法〕
次に、図1に示す通信システム1を用いて行う通信方法について説明する。図5に示すように、メッセージ転送装置10は、端末装置20a〜20fからのユーザ情報通知を受信し、ユーザ情報を取得する(S101)。メッセージ転送装置10は、取得したユーザ情報を、取得ユーザ情報データベース15に格納する(S102)。メッセージ転送装置10は、メッセージ及びその送信先条件を、端末装置20aから受信する(S103)。
メッセージ転送装置10は、メッセージの受信時に、送信先条件と取得ユーザ情報データベース15が保持するユーザ情報とを比較する(S104)。メッセージ転送装置10は、送信先条件とユーザ情報が一致するユーザが存在する場合には、そのユーザを送信先に決定する(S105)。そして、メッセージ転送装置10は、決定したユーザの端末装置20c,20dにメッセージを送信する(S106)。
メッセージ転送装置10は、送信先の端末装置20cから、端末装置20aからのメッセージに対する返信メッセージを受信した場合には(S107)、返信メッセージに、返信情報の付加及び送信先情報の削除の処理を行って、端末装置20aのユーザが送信したメッセージに対する返信であることを明示する。そして、メッセージ転送装置10は、メッセージの送信元の端末装置20aに、返信メッセージを送信する(S108)。
一方、ステップ(S104)において、送信先条件とユーザ情報が一致するユーザが存在しない場合には、送信タイミングを経過しているか否かを判断する(S109)。ステップ(S109)において、送信タイミングを経過していない場合には、メッセージ転送装置10は、メッセージをバッファ18aで保持する。更に、メッセージ転送装置10は、新たにユーザ情報を取得し(S110)、取得したユーザ情報を取得ユーザ情報データベース15に格納して、ユーザ情報を更新する(S111)。そして、メッセージ転送装置10は、ステップ(S104)に戻り、更新されたユーザ情報に基づいて、再度、送信先の決定を試みる。メッセージ転送装置10は、送信先が決定するか、あるいは、送信タイミングが経過するまで、新たなユーザ情報の取得と、更新されたユーザ情報に基づく判断を繰り返す。一方、ステップ(S109)において、送信タイミングを経過している場合には、メッセージ転送装置10は、メッセージを破棄し、端末装置20aにエラー通知を送信する(S112)。
〔効果〕
このような通信システム1、メッセージ転送装置10及び通信方法によれば、ユーザ情報送受信部14が、端末装置20a〜20fのユーザの状態(プレゼンス情報)、属性情報、アクセス情報のようなユーザ情報を取得する。メッセージ受信部11が、端末装置20aのユーザからのメッセージを受信する。送信先条件受信部13が、そのメッセージの送信先条件として、ユーザの状態、属性情報、アクセス情報のようなユーザ情報を用いた送信先条件を受信する。送信先決定部17が、受信した送信先条件と取得したユーザ情報とを比較し、両者が一致するユーザをそのメッセージの送信先に決定する。そして、メッセージ送信部12が決定した送信先の端末装置20c,20dにメッセージを送信する。
そのため、メッセージを送信するユーザは、アドレスやユーザIDを用いて直接送信先を指定しなくとも、メッセージ転送装置10が、ユーザ情報に応じて送信先を決定してくれる。そのため、ユーザは、ユーザの状態や属性情報、アクセス情報のようなユーザ情報が考慮された最適な送信先にメッセージを送信できる。特に、従来のインスタントメッセージにおいては、プレゼンス情報は、ユーザが他のユーザの状況を知るためだけに利用され、メッセージングサービスに利用されることはなかった。つまり、プレゼンスサービスにおいて扱う情報とメッセージングサービスにおいて扱う情報は、2つのサービス間で独立であった。しかし、メッセージ転送装置10では、時間経過とともに変化するプレゼンス情報を考慮してメッセージの送信先を決定し、リアルタイムに変化する情報に基づいたメッセージの送信を可能としている。しかも、メッセージ転送装置10は、端末装置20aからメッセージを受信し、端末装置20c,20dにメッセージを転送することにより、端末装置間で送受信されるメッセージを中継できる。
更に、メッセージ転送装置10は、バッファ18aを備える。送信先決定部17が、送信先条件とユーザ情報が一致するユーザが存在しないときは、メッセージをバッファ18aに保持させ、一致するユーザが検出されるまで比較を行う。そして、メッセージ送信部12は、一致するユーザが検出され、送信先が決定したときにバッファ18aが保持するメッセージを送信する。そのため、メッセージ転送装置10は、送信先条件に一致したユーザ情報を持つ端末装置が存在せず、送信先が直ぐに決まらない場合であっても、メッセージを一旦、バッファ18aに格納して保持しておくことができる。そして、メッセージ転送装置10は、条件に一致した状態を持つユーザが検出され、送信先を決定できた時点で、保持していたメッセージを送信できる。そのため、ユーザは、メッセージ転送装置10に対して、メッセージ送信の予約を行うことができ、送信先条件に合致するユーザが検出された際にメッセージが自動的に送信される。
更に、メッセージ転送装置10では、メッセージ転送処理部18が、返信メッセージに返信情報を付加し、送信先情報を削除する処理を行い、メッセージ送信部12が、処理がされた返信メッセージを、メッセージの送信元である端末装置20aに送信する。そのため、送信先に決定された端末装置20cのユーザは、メッセージの送信元に返信する際に、送信先情報、即ち、自分のアドレスやユーザIDを、メッセージの送信元に隠し、匿名でメッセージに対する返信ができる。よって、メッセージ転送装置10は、アノニマスなメッセージ中継を提供できる。更に、メッセージの送信元では、返信メッセージに返信情報が付加されていることから、即ち、自ら送信したメッセージと返信メッセージとの対応が通知されることから、自分が送信したメッセージに対する返信であることを把握できる。
[第2の実施の形態]
〔通信システム〕
図6に示すように、通信システム201は、複数の端末装置220a〜220iと、通信ネットワーク230とを備える。複数の端末装置220a〜220iは、通信ネットワーク230に接続する。通信システム201では、端末装置220a〜220i同士が直接、即ち、メッセージ転送装置10を経由することなく、通信ネットワーク230を経由してメッセージやユーザ情報通知を送受信することにより、メッセージングサービスやプレゼンスサービスが行われる。通信ネットワーク230は、メッセージ転送装置10が設けられていない以外は、図1に示した通信ネットワーク30と同様である。
次に、端末装置220a〜220iの構成について詳細に説明する。以下、図4に示した端末装置20aの構成と実質的に同様の構成については、同一の符号を付して説明を省略する。図7に示すように、端末装置220aは、メッセージ受信部221と、メッセージ送信部222と、ユーザ情報送受信部223と、ユーザインタフェース224と、ユーザ状態取得部25と、処理部226と、バッファ226aと、取得ユーザ情報データベース227と、送信先決定部228と、タイマ228aとを備える。ユーザインタフェース224は、表示部24aと、メッセージ入力部24bと、送信先条件入力部224cとを備える。端末装置220b〜220iも端末装置220aと同様の構成を備える。
送信先条件入力部224cは、ユーザから入力される送信先条件、送信先条件に含まれる項目が一致する必要性の指定、送信先条件の優先順位の指定、送信先の数の指定、メッセージの送信タイミングの指定等を取得し、送信先決定部228に入力する。送信先条件入力部224cが異なる以外は、ユーザインタフェース224は、図4に示したユーザインタフェース24と同様である。
メッセージ受信部221は、他のユーザからのメッセージや、端末装置220aが送信したメッセージに対する返信メッセージを、他の端末装置220b〜220iから、通信ネットワーク230を介して受信する。メッセージ受信部221は、受信したメッセージや返信メッセージを処理部226に入力する。ユーザ情報送受信部223は、処理部226からユーザ情報通知を取得し、他の端末装置220b〜220iに通信ネットワーク230を介して送信する。ユーザ情報送受信部223は、他の端末装置220b〜220iから、通信ネットワーク230を介してユーザ情報通知を受信してユーザ情報を取得し、取得手段として機能する。ユーザ情報送受信部223は、取得したユーザ情報を処理部226に入力する。ユーザ情報送受信部223は、定期的に、又は、ランダムに、あるいは、ユーザ情報が変化した時に、ユーザ情報通知を送受信する。
取得ユーザ情報データベース227は、ユーザ情報送受信部223が取得した他のユーザのユーザ情報を保持する。取得ユーザ情報データベース223は、ユーザ識別情報に対応付けて、取得したユーザ情報を保持する。送信先決定部228は、送信先条件入力部224cから送信先条件を取得する。送信先決定部228は、送信先条件と取得ユーザ情報データベース227が保持するユーザ情報とを比較する。そして、送信先決定部228は、図2に示した送信先決定部17と同様にしてメッセージの送信先を決定し、決定手段として機能する。送信先決定部228は、決定した送信先のユーザ識別情報を、取得ユーザ情報データベース227から取得する。送信先決定部228は、処理部226に決定した送信先のユーザ識別情報を入力し、決定した送信先を通知する。
尚、送信先決定部228は、まず、送信先条件入力部224cから送信先条件を取得した時点で、送信先条件とユーザ情報とを比較する。そして、送信先決定部228は、送信先条件を取得した時点では、送信先条件とユーザ情報が一致するユーザが存在しない場合に、送信タイミングを経過しているか否かを判断する。送信タイミングは、メッセージ入力部24bがメッセージを取得してから、送信先にメッセージが送信されるまでの時間として許容できる許容時間や、送信先へのメッセージの送信が完了すべき時刻を指定できる。送信先決定部228は、タイマ228aを用いて送信タイミングが経過しているか否かを判断する。タイマ228aは、現在時刻を提供したり、メッセージ入力部24bがメッセージを取得した時点からの経過時間を計測したりする。
そして、送信先決定部228は、送信タイミングを経過している場合には、そのメッセージを破棄し、エラー通知を表示部224aに表示するように、処理部226に指示する。一方、送信先決定部228は、送信タイミングが経過していない場合には、メッセージをバッファ226aに格納して、バッファ226aに保持させるように処理部226に指示する。バッファ226aは、メッセージを保持する保持手段である。そして、送信先決定部228は、図2に示した送信先決定部17と同様にして、一致するユーザが検出されるまで比較を行い、一致するユーザを検出し、送信先を決定した時点で、処理部226に決定した送信先を通知する。尚、送信先決定部228は、送信タイミングが経過した場合には、比較を終了する。
処理部226は、メッセージやユーザ情報通知の送受信を制御する。処理部226は、メッセージ入力部24bからメッセージを取得する。処理部226は、送信先決定部228から、決定した送信先のユーザ識別情報を取得する。この場合、処理部226は取得したメッセージの送信先に、取得した送信先のユーザ識別情報を設定して、メッセージ送信部222に入力する。このようにして、処理部226は、決定した送信先にメッセージを送信するようメッセージ送信部222に指示する。
又、処理部226は、送信先決定部228から、メッセージのバッファ226aへの格納の指示を取得する。処理部226は、指示に従い、取得したメッセージをバッファ226aに格納する。この場合、処理部226は、送信先条件とユーザ情報が一致するユーザが検出され、送信先が決定したときに、送信先決定部228から決定した送信先のユーザ識別情報を取得する。処理部226は、送信先のユーザ識別情報を取得した時点で、バッファ226aからメッセージを取得し、取得したメッセージの送信先に、取得した送信先のユーザ識別情報を設定して、メッセージ送信部222に入力する。
更に、処理部226は、送信先決定部228から、メッセージの破棄及びエラー通知表示の指示を取得する。この場合、処理部226は、メッセージ入力部24bから取得したメッセージを破棄する。あるいは、処理部2268は、バッファ226aからメッセージを取得して、破棄する。そして、処理部226は、エラー通知を生成して表示部24aに出力する。又、処理部226は、メッセージ受信部221から、メッセージや返信メッセージを取得し、表示部24aに出力する。
又、処理部226は、ユーザ情報送受信部223からユーザ情報通知を取得する。処理部226は、取得したユーザ情報通知から、ユーザ識別情報とユーザ情報を取得し、ユーザ識別情報に対応付けて、ユーザ情報を取得ユーザ情報データベース227に格納する。処理部226は、図4に示した処理部26と同様にしてユーザ情報通知を作成する。処理部226は、作成したユーザ情報通知をユーザ情報送受信部223に入力し、他の端末装置220b〜220iに送信するよう指示する。
メッセージ送信部222は、処理部226からメッセージを取得し、送信先の端末装置に通信ネットワーク230を介して送信する。メッセージ送信部222は、送信先決定部228が決定した送信先にメッセージを送信する送信手段として機能する。メッセージ送信部222は、処理部226の指示に従って、送信先条件に基づいて決定された送信先の端末装置にメッセージを送信する。メッセージ送信部222は、バッファ226aがメッセージを保持していた場合にも、処理部226の指示に従って、送信先条件とユーザ情報が一致するユーザが検出され、送信先が決定したときに、バッファ226aが保持するメッセージを送信する。
以上説明したように、端末装置220aは、ユーザ情報を取得して管理し、送信先条件に基づいてメッセージの送信先を決定し、送信する通信装置として機能する。又、端末装置220a〜220iは、メッセージングサービス、プレゼンスサービスのクライアントとして機能し、クライアント間、即ち、端末装置220a〜220i間で直接、メッセージやユーザ情報通知の送受信を行う。
〔通信方法〕
次に、図6に示す通信システム201を用いて行う通信方法について説明する。端末装置220aが送信元の端末装置である場合を例にとって説明する。図8に示すように、端末装置220aは、他の端末装置220b〜220iからユーザ情報通知を受信し、他のユーザのユーザ情報を取得する(S201)。端末装置220aは、取得したユーザ情報を取得ユーザ情報データベース227に格納する(S202)。端末装置220aは、端末装置220aのユーザからの入力により、メッセージ、送信先条件を取得する(S203)。
端末装置220aは、送信先条件を取得した時に、送信先条件と取得ユーザ情報データベース227が保持するユーザ情報とを比較する(S204)。端末装置220aは、送信先条件とユーザ情報が一致するユーザが存在する場合には、そのユーザを送信先に決定する(S205)。そして、端末装置220aは、決定したユーザの端末装置にメッセージを送信する(S206)。
一方、ステップ(S204)において、送信先条件とユーザ情報が一致するユーザが存在しない場合には、送信タイミングを経過しているか否かを判断する(S207)。ステップ(S207)において、送信タイミングを経過していない場合には、端末装置220aは、メッセージをバッファ226aで保持する。更に、端末装置220aは、新たにユーザ情報を取得し(S208)、取得したユーザ情報をユーザ情報データベース227に格納して、ユーザ情報を更新する(S209)。そして、端末装置220aは、ステップ(S204)に戻り、更新されたユーザ情報に基づいて、再度、送信先の決定を試みる。端末装置220aは、送信先が決定するか、あるいは、送信タイミングが経過するまで、新たなユーザ情報の取得と、更新されたユーザ情報に基づく判断を繰り返す。一方、ステップ(S207)において、送信タイミングを経過している場合には、端末装置220aは、メッセージを破棄し、表示部24aにエラー通知を表示させるる(S210)。
〔効果〕
このような通信システム201、端末装置220a〜220i及び通信方法によれば、ユーザ情報送受信部223が、他の端末装置のユーザの状態(プレゼンス情報)、属性情報、アクセス情報のようなユーザ情報を取得する。メッセージ入力部24bが、端末装置220a〜220iのユーザからの入力によりメッセージを取得する。送信先条件入力部224cが、そのメッセージの送信先条件として、ユーザの状態、属性情報、アクセス情報のようなユーザ情報を用いた送信先条件を、端末装置220a〜220iのユーザからの入力により取得する。送信先決定部228が、取得した送信先条件と取得したユーザ情報とを比較し、両者が一致するユーザをそのメッセージの送信先に決定する。そして、メッセージ送信部222が決定した送信先の端末装置にメッセージを送信する。
そのため、メッセージを送信するユーザは、アドレスやユーザIDを用いて直接送信先を指定しなくとも、端末装置220a〜220iが、ユーザ情報に応じて送信先を決定してくれる。そのため、ユーザは、ユーザの状態や属性情報、アクセス情報のようなユーザ情報が考慮された最適な送信先にメッセージを送信できる。特に、端末装置220a〜220iでは、時間経過とともに変化するプレゼンス情報を考慮してメッセージの送信先を決定し、リアルタイムに変化する情報に基づいたメッセージの送信を可能としている。しかも、端末装置220a〜220iは直接、他の端末装置とメッセージを送受信できる
又、端末装置220a〜220iは、メッセージ転送装置10と同様に、送信先条件に一致したユーザ情報を持つ端末装置が存在せず、送信先が直ぐに決まらない場合であっても、メッセージを一旦、バッファ226aに格納して保持しておくことができる。そして、端末装置220a〜220iは、条件に一致した状態を持つユーザが検出され、送信先を決定できた時点で、保持していたメッセージを送信できる。そのため、ユーザは、端末装置220a〜220iに対して、メッセージ送信の予約を行うことができ、送信先条件に合致するユーザが検出された際にメッセージが自動的に送信される。
尚、本発明は、上記実施形態に限定されるものではなく、種々の変更が可能である。例えば、まず、送信先条件に含まれる属性情報やアクセス情報に関する項目に基づいて送信先のフィルタリングを行ってから、プレゼンス情報に関する項目に基づいて送信先を決定してもよい。又、上記実施形態では、インスタントメッセージを例にとって説明したが、メッセージとして電子メールを用いてもよい。メッセージとして電子メールを用いた場合であっても、時間経過とともに変化するプレゼンス情報を考慮してメッセージの送信先を決定し、リアルタイムに変化する情報に基づいたメッセージの送信を可能とする本発明を適用可能である。