(57)【要約】【課題】メッセージの再送状況下において、他ユーザへのメッセージ配信および他ユーザからのメッセージ送信に影響を及ぼさないようにしたインスタントメッセージサーバ、インスタントメッセージ通信方法を提供する。【解決手段】ユーザから送られてくるメッセージを受信バッファに保持する受信プロセスと、前記受信バッファから1つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信する送信プロセスと、前記送信プロセスによる未達が発生した場合に、前記送信プロセスから未達ユーザ名と未達信号内容を未達メッセージバッファに保持し、未達ユーザ毎にポインタアドレス用スレッドによるメッセージの再送を行ない、再送メッセージの到達で該ポインタアドレスを歩進し、該ポインタアドレスが前記未達メッセージバッファの終端に達すると前記送信プロセスに再送の完了を通知する再送プロセスとからなる。【選択図】図１
2010044673.tif 000002
【特許請求の範囲】
【請求項１】
ユーザがネットワークに接続しているときに着信したメッセージを、使用中の端末の画面に表示し、これを受けたユーザが直ちに返信できるインスタントメッセージのサービスを提供するインスタントメッセージサーバにおいて、
ユーザから送られてくるメッセージを受信バッファに保持する受信プロセスと、
前記受信バッファから１つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信する送信プロセスと、
前記送信プロセスによる未達が発生した場合に、前記送信プロセスから未達ユーザ名と未達信号内容を未達メッセージバッファに保持し、未達ユーザ毎にポインタアドレス用スレッドによるメッセージの再送を行ない、再送メッセージの到達で該ポインタアドレスを歩進し、該ポインタアドレスが前記未達メッセージバッファの終端に達すると前記送信プロセスに再送の完了を通知する再送プロセスと、
を有することを特徴とするインスタントメッセージサーバ。
【請求項２】
前記送信プロセスは、着信ユーザからのメッセージ応答が受信されず未達が発生した場合以降送信プロセスから未達ユーザを宛先から外すことを特徴とする請求項１記載のインスタントメッセージサーバ。
【請求項３】
前記再送プロセスは、再送すべきメッセージを宛先ユーザを示すポインタと、メッセージ内容を示すバッファに分割して保持することを特徴とする請求項１項記載のインスタントメッセージサーバ。
【請求項４】
ユーザがネットワークに接続しているときに着信したメッセージを、使用中の端末の画面に表示し、これを受けたユーザが直ちに返信できるインスタントメッセージのサービスを提供するインスタントメッセージ通信方法において、
ユーザから送られてくるメッセージを受信バッファに保持するステップと、
前記受信バッファから１つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信するステップと、
前記同報送信するステップで未達が発生した場合に、未達ユーザ名と未達信号内容を未達メッセージバッファに保持し、未達ユーザ毎にポインタアドレス用スレッドによるメッセージの再送を行なうステップと、
再送メッセージの到達で該ポインタアドレスを歩進し、該ポインタアドレスが前記未達メッセージバッファの終端に達すると前記送信プロセスに再送の完了を通知するステップと、
を含むことを特徴とするインスタントメッセージ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インスタントメッセージサーバおよびインスタントメッセージ通信方法に関し、特に、多人数対多人数でリアルタイムにメッセージを送受信する装置および方法として用いると好適である。
【背景技術】
【０００２】
従来のインスタントメッセージは、１対１のリアルタイムにメッセージ送信を実現する手段として普及してきたが、近年、１対多、多対多といった形態でのメッセージのやり取りが求められている。
【０００３】
インスタントメッセージの代表的なプロトコルとしては、国際勧告ＲＦＣ３４２８ (Session Initiation Protocol(SIP)Extension for Instant Messaging)およびＲＦＣ３８５６ (A Presence Event Package for the Session Initiation Protocol(SIP))で規定されているＳＩＭＰＬＥプロトコルがある。
【０００４】
ＳＩＭＰＬＥプロトコルは、ＩＰ電話で呼制御プロトコルとして普及しているＳＩＰ（Session Initiation Protocol）を拡張したプロトコルとなっている。
【０００５】
図７は、従来技術による１対１のインスタントメッセージシステムの構成図である。同図において、ユーザＡ（１a）とユーザＢ（１ｂ）は、ＳＩＭＰＬＥを実装しているクライアント端末であり、ＰＣやＷ−ＬＡＮ機能を有する携帯電話などが挙げられる。各端末には、<001@sample.com>、<002@sample.com>などのシステム内で固有の、ＩＤ（ＳＩＰ−ＵＲＬ）が割り振られる。
【０００６】
図８は、図７による１対１インスタントメッセージのシーケンス図である。以下に図８に示すインスタントメッセージの手順について説明する。
【０００７】
Ｓ１．ユーザＡ（１ａ）は、ＩＭ（Instant Message）サーバ２に位置情報（ＩＰアドレス）を登録（ＲＥＧＩＳＴＥＲ）する。
【０００８】
Ｓ２．ＩＭサーバ２からユーザＡ（１ａ）に２００ ＯＫの応答が返される。
【０００９】
Ｓ３．ユーザＢ（１ｂ）は、ＩＭサーバ２に位置情報（ＩＰアドレス）を登録（ＲＥＧＩＳＴＥＲ）する。
【００１０】
Ｓ４．ＩＭサーバ２からユーザＢ（１ｂ）に２００ ＯＫの応答が返される。
【００１１】
Ｓ５．インスタントメッセージについては、発側端末であるユーザＡ（１ａ）からＩＭサーバ２へ送信され、
Ｓ６．ＩＭサーバ２は、宛先情報（ＳＩＰ−ＵＲＬ）から位置情報を割り出し、受信側端末であるユーザＢ（１ｂ）にメッセージを送信する。
【００１２】
Ｓ７．ユーザＢ（１ｂ）は、メッセージを正常に受け取った確認としてＩＭサーバ２へ２００ ＯＫの応答が返される。
【００１３】
Ｓ８．ＩＭサーバ２からユーザＢ（１ｂ）に２００ ＯＫの応答が返される。
【００１４】
図９は、従来技術による多対多のインスタントメッセージシステムの構成図である。同図において、発側端末であるユーザＡ（１ａ）〜ユーザＥ（１ｅ）は、それぞれＩＭ送受信プロセス３を経由して着側端末であるユーザＡ（１ａ）〜ユーザＥ（１ｅ）と接続され、５対５（多対多）でメッセージをやり取りする場合の構成である。
【００１５】
Ｓ１．ユーザＡ（１ａ）からメッセージ（１）が発信される。
【００１６】
Ｓ２. ユーザＢ（１ｂ）からメッセージ（６）が発信される。
【００１７】
Ｓ３．ＩＭサーバ２のＩＭ送受信プロセス３から、各ユーザＢ〜ユーザＥへメッセージ（１）を配信する。（（２）〜（５））
Ｓ４．ＩＭサーバ２のＩＭ送受信プロセス３から、各ユーザＡ，Ｃ〜Ｅへメッセージ（６）を配信する。（（７）〜（１０））
図１０は、図９による多対多インスタントメッセージのシーケンス図である。同図において、先ず、発端末であるユーザＡ（１ａ）は、ＩＭサーバ２に位置情報（ＩＰアドレス）を登録（ＲＥＧＩＳＴＥＲ）するとともに、着端末であるユーザＢ（１ｂ）〜ユーザＥ（１ｅ）もＩＭサーバ２に位置情報（ＩＰアドレス）を登録（ＲＥＧＩＳＴＥＲ）する。
【００１８】
その後、ユーザＡ（１ａ）からのメッセージ（ＭＥＳＳＡＧＥ）がＩＭサーバ２を経由して各着端末である各ユーザＢ（１ｂ）〜ユーザＥ（１ｅ）に対して順次配信される。宛先が複数となり、ＩＭサーバから受信側端末への通信が増える以外は、１対１の場合とほぼ同様である。
【００１９】
図１１は、図９においてユーザＤへのメッセージ送信で通信途絶が発生した場合の説明図（その１）である。
【００２０】
Ｓ１．ユーザＡ（１ａ）からメッセージ（１）が発信される。
【００２１】
Ｓ２. ユーザＢ（１ｂ）からメッセージ（６）が発信される。
【００２２】
Ｓ３．ＩＭサーバ２のＩＭ送受信プロセス３から、各ユーザＢ（１ｂ）〜ユーザＥ（１ｅ）へメッセージ（１）をシーケンシャルに（２）→（３）→（４）→（５）と配信を試みるが、通信途絶が発生したために、ユーザＤ（１ｄ）への配信（４）は再送される。配信（４）の再送期間中は、ユーザＥ（１ｅ）への配信（５）ができない。
【００２３】
Ｓ４．配信（４）の再送期間中は、ユーザＢ（１ｂ）からのメッセージ配信ができない。
【００２４】
図１２は、図１１による通信途絶発生時のシーケンス図である。同図において、ユーザＤ（１ｄ）との通信途絶が発生した場合、ＩＭサーバ２とユーザＤ（１ｄ）間で配信（４）のメッセージ（ＭＥＳＳＡＧＥ）再送が行なわれ、そのタイムアウト検出時まで再送が繰り返される。タイムアウトガ検出されると、ＩＭサーバ２はユーザＥ（１ｅ）間の配信（５）へ進む。タイムアウトとなった端末へは以降インスタントメッセージの配信対象から外れる。
【００２５】
図１３は、図９においてユーザＤへのメッセージ送信で通信途絶が発生した場合の説明図（その２）である。
【００２６】
Ｓ１．ユーザＡ（１ａ）からメッセージ（１）が発信される。
【００２７】
Ｓ２. ユーザＢ（１ｂ）からメッセージ（６）が発信される。
【００２８】
Ｓ３．ＩＭサーバ２のＩＭ送受信プロセス３から、各ユーザＢ（１ｂ）〜ユーザＥ（１ｅ）へメッセージ（１）の配信と、各ユーザＡ（１ａ），ユーザＣ（１ｃ）〜ユーザＥ（１ｅ）へメッセージ（６）の配信とをパラレルに試みる。
【００２９】
Ｓ４．通信途絶が発生したため、メッセージ（１）のユーザＤ（１ｄ）への配信（４）の再送と、メッセージ（６）のユーザＤ（１ｄ）への配信（９）の再送とが立て続けに発生する。
【００３０】
Ｓ５．ネットワーク遅延などにより、先に発信されたユーザＡ（１ａ）からのメッセージ（１）のユーザＥ（１ｅ）への配信（５）より、ユーザＢ（１ｂ）からのメッセージ（６）のユーザＥ（１ｅ）への配信（１０）の方が先にユーザＥ（１ｅ）に到達する可能性がある。
【００３１】
図１４は、図１３による通信途絶発生時のシーケンス図である。同図において、ユーザＤ（１ｄ）との通信途絶が発生した場合に、後発のメッセージに対しても再送が多重に発生するとともに、ネットワーク状態により、後発のメッセージが着端末へ先に届く可能性がある。
【００３２】
先行文献としては、複数ユーザのインスタントメッセージを優先度に従って処理する内容が開示されている。即ち、各会話相手について、優先度が高い会話相手からのメッセージは、優先度がより低い会話相手からのメッセージより前に配信され、表示される発明が知られている。（例えば、特許文献１参照）
【特許文献１】特表２００５−５１４７０１号公報
【発明の開示】
【発明が解決しようとする課題】
【００３３】
しかしながら、従来技術（特許文献１）においては、１対多の形態によるメッセージのやり取りについて述べられているが、多対多でのメッセージのやり取りを対象とするものではなく、また通信異常等で発生する再送について記載されていない。
【００３４】
本発明は、多対多のインスタントメッセージ通信に関して、通信異常等によりサーバ側が端末より正常に応答を受信できなかった場合に生じるメッセージの再送状況下において、他ユーザへのメッセージ配信および他ユーザからのメッセージ送信に影響を及ぼさないようにしたインスタントメッセージ用サーバおよびインスタントメッセージ通信方法を提供することを目的にする。
【課題を解決するための手段】
【００３５】
上記課題を解決するための第１の発明は、ユーザがネットワークに接続しているときに着信したメッセージを、使用中の端末の画面に表示し、これを受けたユーザが直ちに返信できるインスタントメッセージのサービスを提供するインスタントメッセージサーバにおいて、ユーザから送られてくるメッセージを受信バッファに保持する受信プロセスと、前記受信バッファから１つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信する送信プロセスと、前記送信プロセスによる未達が発生した場合に、前記送信対象となったユーザは送信プロセスノ対象から送信プロセスから未達ユーザ名と未達信号内容を未達メッセージバッファに保持し、未達ユーザ毎にポインタアドレス用スレッドによるメッセージの再送を行ない、再送メッセージの到達で該ポインタアドレスを歩進し、該ポインタアドレスが前記未達メッセージバッファの終端に達すると前記送信プロセスに再送の完了を通知する再送プロセスとを有する。
【００３６】
この第１の発明によれば、インスタントメッセージの送受信を受信プロセス、送信プロセスおよび再送プロセスに分割して実現することにより、あるユーザに対する再送が発生した場合、再送対象となったユーザを送信プロセスから再送プロセスに移行され、且つ、送信プロセスの送るメッセージの送信順序が保たれるため、正常なユーザへのメッセージ到達の遅延が生じることなく、また各ユーザへのメッセージ到達順序が保障されるインスタントメッセージサーバを提供できる。
【００３７】
第２の発明は、前記送信プロセスは、着信ユーザからのメッセージ応答が受信されず未達が発生した場合、以降送信プロセスから未達ユーザを宛先から外すことを特徴とする請求項１記載のインスタントメッセージサーバ。
【００３８】
この第２の発明によれば、インスタントメッセージの送信途中に、あるユーザに対する再送が発生した場合でも、再送対象となったユーザは、送信プロセスの対象から切り離されるため正常に通信可能な他ユーザへのメッセージ及び他ユーザからのメッセージ送信に時間がかかることはないインスタントメッセージサーバを提供できる。
【００３９】
第３の発明は、前記再送プロセスは、再送すべきメッセージを宛先ユーザを示すポインタと、メッセージ内容を示すバッファに分割して保持することを特徴とする請求項１項記載のインスタントメッセージサーバ。
【００４０】
この第３の発明によれば、再送中に別のユーザへの未達が新たに発生した場合、送信者ごとに信号のコピーをバッファしておく必要がなく、再送メッセージが多くなる場合、メッセージバッファの容量を削減することが可能なインスタントメッセージ用サーバを提供できる。
【００４１】
第４の発明は、ユーザがネットワークに接続しているときに着信したメッセージを、使用中の端末の画面に表示し、これを受けたユーザが直ちに返信できるインスタントメッセージのサービスを提供するインスタントメッセージ通信方法において、ユーザから送られてくるメッセージを受信バッファに保持するステップと、前記受信バッファから１つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信するステップと、前記同報送信するステップで未達が発生した場合に、未達ユーザ名と未達信号内容を未
達メッセージバッファに保持し、未達ユーザ毎にポインタアドレス用スレッドによるメッセージの再送を行なうステップと、再送メッセージの到達で該ポインタアドレスを歩進し、該ポインタアドレスが前記未達メッセージバッファの終端に達すると前記送信プロセスに再送の完了を通知するステップとを含んでいる。
【００４２】
この第４の発明によれば、あるユーザに対するインスタントメッセージの未達が発生した場合に、未到達であった宛先ユーザをメッセージ送信対象から外されるため、未達ユーザ及びメッセージの再送が発生した場合、再送対象となったユーザを送信プロセスから再送プロセスに移行され、且つ、送信プロセスの送るメッセージの送信順序が保たれるため、正常なユーザへのメッセージ到達の遅延が生じることなく、また各ユーザへのメッセージ到達順序が保障されるインスタントメッセージ通信方法を提供できる。
【発明の効果】
【００４３】
以上、本発明のインスタントメッセージサーバおよびインスタントメッセージ通信方法によれば、
（１）途中であるユーザに対する再送が発生した場合でも、再送対象となったユーザは、送信プロセスの対象から切り離される。よって、正常に通信可能な他ユーザへのメッセージおよび他ユーザからのメッセージ送信に時間がかかることはない。
（２）送信プロセスは、受信バッファから１つずつメッセージを取り出しており、送信
プロセスが送るメッセージについての順序は保たれている。また、再送プロセスが送信するメッセージについては、ユーザ単位に生成されるスレッドでメッセージをシーケンシャルに送信するため、各ユーザへのメッセージ到達順序が保障される。
（３）ユーザ単位に生成されるスレッドのメッセージ送信がシーケンシャルに行なわれ
るため、再送中に別のユーザからのメッセージの再送が並行して行なわれることはない。このため、処理負荷及びネットワーク負荷を軽減することができる。
（４）再送中に別のユーザへの未達が新たに発生した場合、送信者ごとに信号のコピー
をバッファしておく必要がなく、再送メッセージが多くなる場合、メッセージバッファの容量を削減することが可能である。
【発明を実施するための最良の形態】
【００４４】
以下、本発明の実施の形態について、図を参照しながら説明する。
【００４５】
図１は、本発明の一実施形態における多対多のインスタントメッセージサーバの構成図である。同図において、インスタントメッセージサーバは、インスタントメッセージを送受信するプロセスを受信プロセス１１、送信プロセス１２及び再送プロセス１３に３分割し、それぞれの以下の処理を行なう。
【００４６】
受信プロセス１１は、ユーザＡ（１ａ）〜ユーザＥ（１ｅ）からメッセージが送られてくると受信バッファ１１１にそのメッセージを保持する。
【００４７】
送信プロセス１２は、受信バッファ１１１から１つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信する。１ユーザでも送信プロセス１２による未達が発生したら、未達メッセージバッファ１３１に信号内容がバッファリングされ、再送プロセス１３に未達ユーザが誰かを通知する。それと共に、以降送信プロセス１２からの宛先から外れる。この時点では再送されず、送信プロセス１２は、残りのユーザに対して1回ずつメッセージを送信する。
【００４８】
再送プロセス１３は、送信プロセス１２と並行して動作しており、送信プロセス１２による未達が発生した場合は、以降のメッセージは、未達メッセージバッファ１３１に保持される。再送プロセス１３は、送信プロセス１２から未達ユーザの情報が通知されると、未達ユーザ毎にスレッドを起動する。スレッドは、未達メッセージを指し示すポインタを参照しながら、ポインタが指し示すメッセージの再送を行なう。
【００４９】
図２は、本発明にて用いる再送プロセスのメッセージ再送の一例を示す説明図である。同図において、スレッド内のメッセージ送信は、シーケンシャルに行なう。再送メッセージが到達（成功）した場合は、ポインタが一つずつ下にずれ、次のメッセージの再送が行なわれる。ポインタがバッファの終端に達すると、送信プロセス１２に通知を行ない、送信プロセスの宛先として復帰し、再送のスレッドは消滅する。
【００５０】
図３は、本発明の一実施形態における多対多インスタントメッセージのシーケンス図である。同図において、５対５インスタントメッセージの場合（図面上、発信者は２名）の具体的なシーケンスとメッセージ例を示す。なお、以下説明では、各端末の位置情報（ＩＰアドレス）を登録（ＲＥＧＩＳＴＥＲ）する手順の説明は前述した図１０の説明と同様であるため省略する。
【００５１】
Ｓ１．ユーザＡ（１ａ）のメッセージ（ＭＥＳＳＡＧＥ）１と、ユーザＢ（１ｂ）のメッセージ（ＭＥＳＳＡＧＥ）６は、一旦受信プロセス１１の受信バッファ１１１でバッファリングされた後、ＩＭサーバ２の送信プロセス１２から各着端末に向けて配信する際に
、各メッセージの到達、未到達に関わらず各ユーザへ一度だけ送信する。
【００５２】
Ｓ２．通信途絶発生したユーザＤ（１ｄ）を送信プロセス１２の対象からはずす。
【００５３】
Ｓ３．送信プロセス１２による未達が発生した場合、送信プロセス１２は再送プロセス１３へメッセージ（ＭＥＳＳＡＧＥ）１と、メッセージ（ＭＥＳＳＡＧＥ）６の再送を依頼する。
【００５４】
Ｓ４．以降のメッセージ（ＭＥＳＳＡＧＥ）は、再送プロセス１３内にバッファリングされる。
【００５５】
Ｓ５．再送プロセス１３は、未達ユーザの情報が通知されると、未達ユーザ毎にメッセージ（ＭＥＳＳＡＧＥ）の再送を行なう。
【００５６】
Ｓ６．タイムアウトせずにバッファ終端したら送信プロセスに復帰する。
【００５７】
Ｓ７．ユーザＤ（１ｄ）を送信プロセス１２の対象に復帰する。
【００５８】
Ｓ８．バッファ終端もしくは再送タイムアウトで再送プロセスは消滅する。
【００５９】
図４は、本発明にて用いる受信プロセスの動作フローチャートである。以下に図４に示すＩＭサーバの受信プロセスの動作手順について説明する。
【００６０】
Ｓ１．受信プロセス１１の受信部は、発信ユーザ１からメッセージ等を受信する。
【００６１】
Ｓ２．受信情報がメッセージ（ＭＥＳＳＡＧＥ）メソッドであるか、それ以外のメソッドであるかを判断する。
【００６２】
Ｓ３．上記Ｓ２により受信情報がメッセージ（ＭＥＳＳＡＧＥ）メソッドであれば受信バッファ１１１のメッセージ（ＭＥＳＳＡＧＥ）格納領域の最後尾にそのメッセージ（ＭＥＳＳＡＧＥ）を保存する。
【００６３】
Ｓ４．上記Ｓ２により受信情報がメッセージ（ＭＥＳＳＡＧＥ）以外の例えば端末位置登録（ＲＥＧＩＳＴＥＲ）メソッドまたは購読依頼（ＳＵＢＳＣＲＩＢＥ）メソッドであれば、それぞれ受信バッファ１１１の端末位置登録（ＲＥＧＩＳＴＥＲ）格納領域または購読依頼（ＳＵＢＳＣＲＩＢＥ）格納領域にその情報を保存する。
【００６４】
図５は、本発明に用いる送信プロセスの動作フローチャートである。以下に図５に示すＩＭサーバの送信プロセスの動作手順について説明する。
【００６５】
Ｓ１．送信プロセス１２は、受信バッファ１１１のメッセージ（ＭＥＳＳＡＧＥ）格納領域の先頭から順次メッセージ（ＭＥＳＳＡＧＥ）を繰り返し読み出す。
【００６６】
Ｓ２．送信プロセス１２は、メッセージ（ＭＥＳＳＡＧＥ）が連続して書き込まれた送信ユーザ毎のスレッドを起動する。
【００６７】
Ｓ３．送信プロセス１２は、該当する着信ユーザ１へメッセージ（ＭＥＳＳＡＧＥ）を送信する。
【００６８】
Ｓ４．送信タイマがスタートする。
【００６９】
Ｓ５．メッセージ（ＭＥＳＳＡＧＥ）を受信した旨の応答を受信する。
【００７０】
Ｓ６．送信タイマのタイムアウト（時間切れ）か否かを判断する。
【００７１】
Ｓ７．上記Ｓ２により送信タイムがタイムアウトしたとき、再送プロセス１３にその後の処理を移行する。
【００７２】
Ｓ８．上記Ｓ２により送信タイムがタイムアウト内であれば、着信ユーザ１からのメッセージ（ＭＥＳＳＡＧＥ）応答を発信ユーザ１ヘ返信する。
【００７３】
Ｓ９．全着信ユーザからのメッセージ（ＭＥＳＳＡＧＥ）応答を発信ユーザ１ヘ返信したか否かを判断し、返送が完了していない場合は、上記Ｓ３へ戻る。 
【００７４】
Ｓ１０．上記Ｓ９により全ての返信済みにてスレッドは完了する。
【００７５】
図６は、本発明に用いる再送プロセスの動作フローチャートである。以下に図６に示すＩＭサーバの再送プロセスの動作手順について説明する。
【００７６】
Ｓ１．再送プロセス１３は、送信プロセス１２からの未達ユーザ情報を受け付ける。
【００７７】
Ｓ２．未達メッセージバッファ１３１のポインタアドレスを読み出す。
【００７８】
Ｓ３．着信ユーザで指定された宛先が未達メッセージバッファのポインタアドレスに存在するか否かを判断する。
【００７９】
Ｓ４．上記Ｓ３により着信ユーザで指定された宛先が未達メッセージバッファのポインタアドレスに存在すると、ポインタアドレスの最後尾にメッセージを追加する。
【００８０】
Ｓ５．上記Ｓ３により着信ユーザで指定された宛先が未達メッセージバッファのポインタアドレスに存在しない場合、未達メッセージバッファへ新たにポインタアドレスを追加する。
【００８１】
Ｓ６．追加されたポインタアドレス用のスレッドを起動する。
【００８２】
Ｓ７．着信ユーザ１へ再送（ポインタの先頭のみ）を送る。
【００８３】
Ｓ８．スレッドは、未達メッセージを指し示すポインタを参照しながら、ポインタが指し示すメッセージの再送を行ない、再送メッセージが到達（成功）したか否かを判断し、到達（成功）しなかった場合は、上記Ｓ７に戻る。
【００８４】
Ｓ９．再送メッセージが到達（成功）したものをバッファから削除し、ポインタを１つ下に下げる。
【００８５】
Ｓ１０．ポインタの先の有無を判断し、まだポインタの先が有る場合は、上記Ｓ７に戻る。
【００８６】
Ｓ１１．上記Ｓ１０によりポインタの先が無い場合は、送信プロセス１２へ完了を通知する。
【００８７】
Ｓ１２．再送のスレッドは消滅する。
【００８８】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
ユーザがネットワークに接続しているときに着信したメッセージを、使用中の端末の画面に表示し、これを受けたユーザが直ちに返信できるインスタントメッセージのサービスを提供するインスタントメッセージサーバにおいて、
ユーザから送られてくるメッセージを受信バッファに保持する受信プロセスと、
前記受信バッファから１つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信する送信プロセスと、
前記送信プロセスによる未達が発生した場合に、前記送信プロセスから未達ユーザ名と未達信号内容を未達メッセージバッファに保持し、未達ユーザ毎にポインタアドレス用スレッドによるメッセージの再送を行ない、再送メッセージの到達で該ポインタアドレスを歩進し、該ポインタアドレスが前記未達メッセージバッファの終端に達すると前記送信プロセスに再送の完了を通知する再送プロセスと、
を有することを特徴とするインスタントメッセージサーバ。
（付記２）
前記受信プロセス内の前記受信バッファは、メッセージを一旦格納するメッセージ受信格納領域、ユーザ端末の位置を登録する登録格納領域およびユーザ端末からインスタントメッセージの購読依頼格納領域を含むことを特徴とする付記１記載のインスタントメッセージ用サーバ。
（付記３）
前記送信プロセスは、着信ユーザからのメッセージ応答が受信されず未達が発生した場合、以降送信プロセスから未達ユーザを宛先から外すことを特徴とする付記１記載のインスタントメッセージサーバ。
（付記４）
前記再送プロセスは、再送すべきメッセージを宛先ユーザを示すポインタと、メッセージ内容を示すバッファに分割して保持することを特徴とする付記１記載のインスタントメッセージサーバ。
（付記５）
ユーザがネットワークに接続しているときに着信したメッセージを、使用中の端末の画面に表示し、これを受けたユーザが直ちに返信できるインスタントメッセージのサービスを提供するインスタントメッセージ通信方法において、
ユーザから送られてくるメッセージを受信バッファに保持するステップと、
前記受信バッファから１つずつメッセージを取り出し、各ユーザに１回ずつメッセージを同報送信するステップと、
前記同報送信するステップで未達が発生した場合に、未達ユーザ名と未達信号内容を未達メッセージバッファに保持し、未達ユーザ毎にポインタアドレス用スレッドによるメッセージの再送を行なうステップと、
再送メッセージの到達で該ポインタアドレスを歩進し、該ポインタアドレスが前記未達メッセージバッファの終端に達すると送信側に再送の完了を通知するステップと、
を含むことを特徴とするインスタントメッセージ通信方法。
（付記６）
前記受信バッファは、メッセージを一旦格納するメッセージ受信格納領域、ユーザ端末の位置を登録する登録格納領域およびユーザ端末からインスタントメッセージの購読依頼格納領域を有することを特徴とする付記５記載のインスタントメッセージ通信方法。
（付記７）
前記同報送信するステップは、着信ユーザからのメッセージ応答が受信されず未達が発生したら以降送信宛先から外し、残りのユーザに対して1回ずつメッセージを送信することを特徴とする付記５記載のインスタントメッセージ通信方法。
（付記８）
前記未達メッセージバッファは、再送すべきメッセージを宛先ユーザを示すポインタと、メッセージ内容を示すバッファに分割して保持することを特徴とする付記５記載のインスタントメッセージ通信方法。
【産業上の利用可能性】
【００８９】
本発明は、ユーザがネットワークに接続しているときに着信したメッセージを、使用中の端末の画面に表示し、これを受けたユーザが直ちに返信できるサービスであるインスタントメッセージにおいて、メッセージ送信途中で、あるユーザに対する再送が発生した場合、正常な通信可能な他ユーザへのメッセージおよび他ユーザからのメッセージ送信に時間がかかることがなく、特に、ＳＩＭＰＬＥプロトコルを用いた多対多のインスタントメッセージサーバにおいて利用できる。
【図面の簡単な説明】
【００９０】
【図１】本発明の一実施形態における多対多のインスタントメッセージサーバの構成図である。
【図２】本発明にて用いる再送プロセスのメッセージ再送の一例を示す説明図である。
【図３】本発明の一実施形態における多対多のインスタントメッセージのシーケンス図である。
【図４】本発明にて用いる受信プロセスの動作フローチャートである。
【図５】本発明にて用いる送信プロセスの動作フローチャ−トである。
【図６】本発明にて用いる再送プロセスの動作フローチャートである。
【図７】従来技術による１対１のインスタントメッセージシステムの構成図である。
【図８】図７による1対１インスタントメッセージのシーケンス図である。
【図９】従来技術による多対多のインスタントメッセージシステムの構成図である。
【図１０】図９による多対多インスタントメッセージのシーケンス図である。
【図１１】図９においてユーザＤへのメッセージ送信で通信途絶が発生した場合の説明図（その１）である。
【図１２】図１１による通信途絶発生時のシーケンス図である。
【図１３】図９においてユーザＤへのメッセージ送信で通信途絶が発生した場合の説明図（その２）である。
【図１４】図１３による通信途絶発生時のシーケンス図である。
【符号の説明】
【００９１】
１      ユーザ  
２      インスタントメッセージサーバ（ＩＭサーバ）
３      インスタントメッセージ送受信プロセス（ＩＭ送受信プロセス）
１１    受信プロセス
１１１  受信バッファ
１２    送信プロセス
１３    再送プロセス
１３１  未達メッセージバッファ
【図１】
2010044673.tif 000003
【図２】
2010044673.tif 000004
【図３】
2010044673.tif 000005
【図４】
2010044673.tif 000006
【図５】
2010044673.tif 000007
【図６】
2010044673.tif 000008
【図７】
2010044673.tif 000009
【図８】
2010044673.tif 000010
【図９】
2010044673.tif 000011
【図１０】
2010044673.tif 000012
【図１１】
2010044673.tif 000013
【図１２】
2010044673.tif 000014
【図１３】
2010044673.tif 000015
【図１４】
2010044673.tif 000016