JP4172886B2 - 疑似クライアント装置、疑似クライアントプログラムを格納したコンピュータ可読媒体、及び、チャットシステム - Google Patents

疑似クライアント装置、疑似クライアントプログラムを格納したコンピュータ可読媒体、及び、チャットシステム Download PDF

Info

Publication number
JP4172886B2
JP4172886B2 JP28794199A JP28794199A JP4172886B2 JP 4172886 B2 JP4172886 B2 JP 4172886B2 JP 28794199 A JP28794199 A JP 28794199A JP 28794199 A JP28794199 A JP 28794199A JP 4172886 B2 JP4172886 B2 JP 4172886B2
Authority
JP
Japan
Prior art keywords
message
cpu
server
registered
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP28794199A
Other languages
English (en)
Other versions
JP2001109689A (ja
Inventor
賢太郎 上岡
美樹 上谷
枝里 中井
昇 山田
実 川田
利彦 平林
由紀子 板倉
一郎 橋本
辰 端慶覧
敏寿 衛藤
則彦 鈴木
利秀 飛騨
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP28794199A priority Critical patent/JP4172886B2/ja
Publication of JP2001109689A publication Critical patent/JP2001109689A/ja
Application granted granted Critical
Publication of JP4172886B2 publication Critical patent/JP4172886B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/14Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages with selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00Arrangements for user-to-user messaging in packet-switching networks, e.g. e-mail or instant messages
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]

Description

【0001】
【産業上の利用分野】
本発明は、チャットサーバがチャットサービスを提供するチャンネルに接続して、そのチャンネルに接続している他のクライアントとの間で情報の授受を自動的に行う疑似クライアント装置,コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体,及び、チャットサーバ及び疑似クライアントから構成されるチャットシステムに、関する。
【0002】
【従来の技術】
従来、コンピュータネットワークを介して複数の端末(利用者)がホストコンピュータにアクセスして、リアルタイムで会話や会議を行うことができるチャットサービスが、様々なコンピュータネットワークサービス提供者によって提供されている。特に、近年においては、インターネットの一般化により、IRC(インターネット・リレイ・チャット)プロトコルに従ったチャットサービスが提供されている。このIRCプロトコルに従ったチャットサービスの概念を、図38を用いて説明する。
【0003】
図において、IRCサーバ100及び各利用者のクライアント端末101は、インターネットNを介して、通信可能となっている。このIRCサーバ100は、論理的に複数のチャンネル(チャンネル1,チャンネル2)を生成する。各利用者のクライアント端末101は、IRCプロトコルに従ってIRCサーバ100に接続するとともに、更に、このIRCサーバ100が生成した何れかのチャンネルに接続する。各チャンネルには、当然ながら複数のクライアント端末101が接続可能であり、また、各クライアント端末101は、同時に複数のチャンネルに接続可能である。図においては、利用者Aのクライアント端末101Aはチャンネル1,2に接続し、利用者Bのクライアント端末101Bはチャンネル1に接続し、利用者Cのクライアント端末101Cはチャンネル2に接続している。
【0004】
何れかのチャンネルに接続したクライアント端末101の利用者は、このチャンネル(物理的には、IRCサーバ100が実行されているコンピュータのRAMにおける当該チャンネルに割り当てられた領域)へメッセージを送信することとができる。このようにして各チャンネルへ送信されたメッセージは、直ちに、当該チャンネルに接続している全利用者のクライアント端末101へ送信される。従って、このチャンネル上において、このチャンネルに接続している全てのクライアント端末101の利用者が、リアルタイムで、互いに会話したり会議することが可能となるのである。
【0005】
【発明が解決しようとする課題】
しかしながら、従来のチャットシステムは、あくまでも利用者同士の会話,即ち情報交換をリアルタイムに行うための環境を提供するものであったので、一つのチャンネルに2以上のクライアント端末が接続していなければならなかった。つまり、ある利用者が、他者と会話をする目的でそのクライアント端末を特定のチャンネルに接続したとしても、その時点で他者のクライアント端末がそのチャンネルに接続してなければ、会話が成り立たないので、他者のクライアント端末がそのチャンネルに接続してくるのを待つか、会話を諦めてそのチャンネルに対する接続を終了するしかなかった。これが、従来における第1の問題点である。
【0006】
特に、ある利用者が他の利用者に対して情報を提供すべき事情や会話をしなければならない事情がある場合には、これら利用者が別の通信手段(電話,電子メール等)を用いて、チャンネルに接続する時間を予め取り決めたり、同時にチャンネルに接続するためにスケジュールを調整しなければならないので、チャットシステムを用いる情報交換の利便性を損なうことにもなりかねなかった。これが、従来における第2の問題点である。
【0007】
また、特定のチャンネルに複数の利用者のクライアント端末が接続することによってこれら複数の利用者間で会話が成り立っていたとしても、会話中にこれら利用者が持っていない情報を参照する必要が生じた時には、Web等、チャットシステム以外のツールを用いて、該当する情報を収集しなければならなかった。また、そのチャンネルに接続していない利用者に対する緊急の連絡事項が生じた時には、チャットシステム以外の伝達方法を用いて連絡をとらねばならなかった。これらの作業は、リアルタイムで会話を行っている利用者にとっては、非常に煩雑な作業であり、これにより、会話の効率が低下する可能性もあった。これが、従来における第3の問題点である。
【0008】
本発明の主たる課題は、上述した第1の問題点を解決し、チャットサーバに対して接続してきた他のクライアント端末に対して別個のクライアントとして振る舞い、このクライアント端末から送信された発言の内容に応じて、このクライアント端末との間で情報の授受を自動的に行う疑似クライアント装置,コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体,及びこのような疑似クライアントとチャットサーバとからなるチャットシステムを、提供することである。
【0009】
本発明の付随的課題の第1は、上述した第2の問題点を解決し、チャットサーバに対して接続しているクライアント端末から送信された発言の内容に応じて、この発言に含まれる他者宛の伝言メッセージを保管するとともに、当該他者のクライアント端末から送信された発言の内容に従って、上記伝言メッセージを通知することができる疑似クライアント装置,コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体,及びこのような疑似クライアントとチャットサーバとからなるチャットシステムを、提供することである。
【0010】
本発明の付随的課題の第2は、上述した第3の問題点を解決し、特定のチャンネルに接続してきた利用者のクライアント端末から送信されたメッセージの内容に応じて、このメッセージによって求められている処理を実行する何れかのバックエンドサーバと通信を行うことにより、このバックエンドサーバに対する処理依頼の代行を行う疑似クライアント装置,コンピュータをこのような疑似クライアント装置として機能させる疑似クライアントプログラムを格納したコンピュータ可読媒体,及びこのような疑似クライアント装置とチャットサーバとからなるチャットシステムを、提供することである。
【0011】
【課題を解決するための手段】
本発明の疑似クライアント装置は、上記した主たる課題を解決するために、以下の構成を採用した。
【0012】
即ち、本発明は、図1の発明原理図に示したように、チャットサーバ201を介して他のクライアント200とチャットを行う疑似クライアント装置202であって、前記他のクライアント200から前記チャットサーバ201へ送信される発言の内容を監視する監視手段203と、前記監視手段203によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段204と、この識別手段204によって所定の文章条件を満たすと識別された発言があった場合にはその発言に含まれている伝言メッセージ及びその宛先を、メッセージテーブルに登録する処理実行手段205とを、備えたことを特徴とする。
【0013】
このように構成されると、チャットサーバ201に接続したクライアント200を使用する利用者は、このチャットサーバ201に別のクライアントが接続していなくても、所定の文章条件を満たした発言をチャットサーバ201に送信すれば、疑似クライアント装置202に対してその文章条件に従った処理を実行させることができる。即ち、疑似クライアント装置202においては、監視手段203が、常時、チャットサーバ201に対して各クライアント200が送信して来る発言の内容を監視しているので、所定の文章条件を満たした発言が送信されると、識別手段204が、この発言が所定の文章条件を満たしているものと識別する。すると、処理実行手段205が、その発言に含まれている伝言メッセージ及びその宛先を、メッセージテーブルに登録するのである。これにより、疑似クライアント装置は、そのメッセージテーブルに登録された宛先へ、それに対応するメッセージを送信できる。従って、この発言を送信したクライアント200の利用者は、別のクライアントがチャットサーバ201に接続してくるのを待たなくても、疑似クライアント装置202を相手に、ある程度の作業を行うことができる。
【0014】
なお、疑似クライアント装置202は、チャットサーバとは別のコンピュータとして構成されていても良いが、チャットサーバと同一のコンピュータとして構成されていても良い。この場合、そのコンピュータは、チャットサーバのプログラムに従ってチャットサーバとして機能するオブジェクトと、疑似クライアントのプログラムに従って疑似クラアイアンと装置として機能するオブジェクトとを、論理的に内包することになる。
【0015】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
【0016】
<チャットシステムの概略構成>
図2は、本実施形態によるチャットシステムの概略構成を示すブロック図である。この図2に示されるように、このチャットシステムは、一台のチャットサーバ1と、このチャットサーバ1に対してインターネットNを通じて(IRPプロトコルに従って)通信可能に設定された複数台のクライアント端末2A〜2C及び疑似クライアント装置3と、この疑似クライアント装置3に対してインターネットNを通じて通信可能に設定された複数台のバックエンドサーバ4とから、構成されている。
【0017】
このチャットサーバ装置1は、一般的なIRC(インターネット・リレー・チャット)サーバプログラムを実行しているコンピュータである。チャットサーバ装置1のハードウェアは、一般的なサーバコンピュータであるので、IRCサーバプログラム以外のプログラムも実行可能であるが、ここでは、IRCサーバプログラムを実行している時の機能のみが注目されるので、以下、単に「チャットサーバ」と称される。
【0018】
また、各クライアント装置2A〜2Cは、一般的なチャットツールプログラム(ブラウザ)を実行しているコンピュータである。各クライアント装置2A〜2Cのハードウェアは、一般的な通信機能を有したパーソナルコンピュータであるので、チャットクライアントプログラム以外のプログラムも実行可能であるが、ここでは、チャットクライアントプログラムを実行している時の機能のみが注目されるので、以下、単に「クライアント」と称される。
【0019】
また、疑似クライアント装置3は、後述する疑似クライアントプログラムを実行しているコンピュータである。疑似クライアント装置3のハードウェアは、一般的な通信機能を有したパーソナルコンピュータであっても良いし、チャットサーバ1と同じサーバコンピュータであっても良いが、ここでは、疑似クライアントプログラムを実行している時の機能のみが注目されるので、以下、単に「疑似クライアント」と称される場合もある。
【0020】
上述したチャットサーバ1は、論理的に複数のチャンネルを生成し、各チャンネル毎にチャットサービスを提供する。即ち、チャットサーバ1は、各クライアント2から自己のサーバ名及びポート番号を指定した接続要求があった時には、そのクライアント2を接続させて通信可能な状態に設定するとともに、接続済みのクライアント2から何れかのチャンネルが指定された場合には、そのクライアント2を指定チャンネルへ接続させて、チャット(会話)可能な状態に設定する。即ち、そのクライアント2に対して、指定チャンネルへのメッセージの送信を許可するとともに、このチャンネルに接続している全てのクライアント2からこのチャンネルへ送信されたメッセージを、このチャットチャンネルに接続している全てのクライアント2に対して、リアルタイムで送信(転送)する。これにより、各チャンネルに接続したクライアント2に対して、そのチャンネルを通じての、クライアント同士のリアルタイムな情報交換(会話)の環境を、提供するのである。
【0021】
なお、チャットサーバ1は、各チャンネル毎にそのチャンネルに現在接続しているクライアント2を特定する識別情報(クライアント2を操作している利用者のニックネーム)を管理する利用者管理テーブルを備えている。また、各クライアント2は、各チャンネルに最初に接続する際には、「JOINメッセージ」と称される接続を宣言するメッセージを、そのチャンネルへ送信する。チャットサーバ1は、この「JOINメッセージ」を検出することにより、利用者管理テーブルに必要事項を登録するのである。
【0022】
また、チャットサーバ1は、図2においては一つのみ示されているが、各クライアント2がインターネットNを介して接続可能なチャットサーバ1は、一つのみに限られない。
【0023】
また、各クライアント2は、同一のチャットサーバ1が生成した複数のチャンネルに、同時に接続することができる。なお、各クライアント2が特定のチャンネルへ送信するメッセージは、実際には、そのチャンネルに接続している全てのクライアント2へ送信(転送)されるが、特定の利用者を相手方としてなされる発言の場合、通常、そのメッセージの内容は、“相手方のニックネーム>メッセージ本文”のように、発言の相手方としての利用者のニックネーム(識別情報としてのハンドルネーム)がメッセージ本文に付加された形式のものとなる。
【0024】
上述した疑似クライアント3は、通常のクライアント2と同様の資格で、チャットサーバ1が生成した全てのチャンネルに接続する。但し、通常のクライアント2が利用者の操作に応じてメッセージを送信するのとは異なり、疑似クライアント3は、予めプログラミングされたアルゴリズムに従い、自動的に、各チャンネル上に送信される各クライアント2からのメッセージに応じた処理(メッセージに対する返答を含む)を実行する。
【0025】
なお、疑似クライアント3は、各クライアント2からのメッセージに応じた処理をする際に、必要に応じて、各種バックエンドサーバ4と連携し、各バックエンドサーバ4から必要な情報を獲得したり、各バックエンドサーバ4に対して所定の処理を依頼する。このバックエンドサーバ4には、問い合わされた利用者がどのチャンネルに現在接続しているかどうかを回答するチャットサーバ1自身も、含まれている。他のバックエンドサーバ4の例としては、電子メールを所定のアドレスへ送信するメールサーバ(SMTPサーバ),メッセージをFAX送信するFAXメールサーバ,問い合わされた単語に対する翻訳文を回答する辞書サーバ,問い合わされた単語を含むホームページのURLを検索する検索サーバ(ポータルサイト),問い合わされた個人の個人情報を回答する個人情報管理サーバ,各事業所毎に設置されているとともにその事業所の会議室(場所)の予約状況や所属社員のスケジュールを管理するカレンダーサーバ,等が、挙げられる。
【0026】
<疑似クライアント装置の構成>
次に、疑似クライアント装置3の構成を、図3のブロック図に基づいて、説明する。上述したように疑似クライアント装置3のハードウェアは、一般的なコンピュータ(パーソナルコンピュータ又はサーバコンピュータ)であるので、バスBを介して互いに接続されたCPU31,RAM32,HDD33及びモデム34を有している。
【0027】
ハードディスク33は、コンピュータ可読媒体であり、通信モジュールを含むオペレーションシステムプログラム(例えば、マイクロソフト社製のウインドウズ95又は98(商標))10,及び、アプリケーションプログラムである疑似クライアントプログラム11を格納している。
【0028】
CPU31は、ハードディスク33からオペレーションシステムプログラム10及び疑似クライアントプログラム11を読み出して夫々実行することによって、この疑似クライアントプログラム11によって予めプログラミングされた動作を行う。
【0029】
モデム34は、CPU31からインターネットN経由で送信すべきものとして受け取ったデータを、通信媒体を介して伝達可能な信号形式に変調したり、CPU31からの指示に応じてインターネットN経由で受信したデータをCPU31が処理可能な信号形式に復調する装置である。なお、このモデム34は、インターネットNと疑似クライアント装置3との間を中継する通信媒体の形式如何によっては、DSU(デジタル・シグナル・ユニット)及びTA(ターミナル・アダプタ)や、他の通信装置へ置換される。
【0030】
RAM32は、このCPU31が上述した各プログラム10,11を実行するに際して、各プログラム11のモジュールがページングされたり、インターネットN経由で受信したデータを一時的に保存したり、CPU31が各プログラム10,11を実行することによって生成したデータを一時的に保存する作業領域として、機能する。図3には、一定期間の間にRAM32上に存在する各プログラム10,11及びデータの一部が、示されている。このうちの疑似クライアントプログラム11については、後において詳細に説明するので、ここでは、CPU31が疑似クライアントプログラム11を実行することによって生成されるデータであるチャンネル管理テーブル12,メッセージテーブル13,日時指定メッセージテーブル14,連絡先登録テーブル15,予定参照支援テーブル16,アラーム管理テーブル17及びキーワード登録テーブル18を、説明する。
【0031】
チャンネル管理テーブル12は、図4に示すように、チャットサーバ1の各チャンネル毎に、そのチャンネルに接続している各利用者のニックネーム(ハンドルネーム),各利用者の前回の発言時刻(最後にメッセージを送信した時刻),及び、前回の発言中のキーワード(最後のメッセージから抽出された特定キーワード)を登録するテーブルである。なお、特定キーワードとは、「さよなら」,「帰る」,「バイバイ」等、そのチャンネルに対する接続を切断してチャットを終了する旨を示すキーワードであり、これらは、疑似クライアントプログラム11によって予め定められている。
【0032】
メッセージテーブル13は、図5に示すように、チャットサーバ1の何れかのチャンネルの接続者から他の利用者(何れかのチャンネルに接続する資格を有する利用者)へ伝言すべきことを依頼された伝言メッセージを格納するテーブルであり、伝言メッセージ毎に、その依頼者のニックネーム,宛先の利用者のニックネーム,及び伝言メッセージ受信日時(依頼を受けた日時)も、記録する。
【0033】
日時指定メッセージテーブル14は、図6に示すように、チャットサーバ1の何れかのチャンネルの接続者から他の利用者(何れかのチャンネルに接続する資格を有する利用者)へ指定日時に伝言すべきこと依頼された伝言メッセージを格納するテーブルであり、伝言メッセージ毎に、その依頼者のニックネーム,宛先の利用者のニックネーム,及び指定日時を、記録する。
【0034】
連絡先登録テーブル15は、図7に示すように、予め登録された利用者に対する連絡先が登録されるテーブルであり、具体的には、連絡先利用者のニックネーム,伝達方法種別,連絡先アドレス,登録者名及び登録時刻を、一組の情報として記録する。
【0035】
予定参照支援テーブル16は、予め登録された利用者のニックネーム,本名及び所属する事業所名を、一組の情報として記録する。
【0036】
アラーム管理テーブル17は、指定時刻に登録者に対して発されるアラームの内容が登録されるテーブルであり、その登録者のニックネーム,指定時刻,及びアラームとして通知される通知メッセージの内容を、一組の情報として記録する。
【0037】
キーワード登録テーブル17は、図10に示すように、一又は複数のキーワードの組合せに対して所定の文字列とが対応付けて登録されるテーブルであり、文字列毎に、それに対応付けられて登録された一又は複数のキーワード,登録者のニックネーム,及び、その対応付けが有効なチャンネルの指定が、記録される。
【0038】
なお、一旦生成された各テーブル12〜18は、随時、ハードディスク33の所定フォルダに保存されるとともに、CPU31が疑似クライアントプログラム11を立ち上げる毎に、前回の実行時において最終的にハードディスク33内に保存された各テーブル12〜18が、CPU31によって読み出されてRAM32上に展開される。
【0039】
<疑似クライアントプログラムによる処理内容>
次に、ハードディスク33からRAM32に読み出された疑似クライアントプログラム11に従ってCPU31が実行する処理の内容を、図11乃至図37のフローチャートに基づいて説明する。図11のメインルーチンは、疑似クライアント3において所定のスタートコマンドが入力されることによって、スタートする。スタート後、最初のS0001では、CPU31は、チャットサーバ1のサーバ名,ポート番号及び自己のニックネーム(ここでは、ニックネームが“pochi”であるものとする)を指定して、一クライアントとして、チャットサーバ1に接続する。
【0040】
次のS0002では、CPU31は、初期化処理を実行する。
【0041】
次のS0003では、CPU31は、チャットサーバ1における予め指定された一又は複数又は全てのチャンネルに対して接続を行う。即ち、CPU31は、接続しようとする全てのチャンネルへ、上述した「JOINメッセージ」を送信する。
【0042】
次に、CPU31は、接続した全てのチャンネルに流れるメッセージを検出するために、S0004乃至S0028のループ処理を実行する。このループ処理に入って最初のS0004では、CPU31は、予め設定されたイベント(JOINメッセージの検出,通常メッセージの検出,処理周期のタイムアップ)の何れかが発生したかどうかをチェックする。そして、CPU31は、通常のメッセージを検出した場合には、処理をS0005へ進め、JOINメッセージを検出した場合には、処理をS0010へ進め、所定周期のタイムアップイベントが発生したと判断した場合には、処理をS0022へ進める。なお、所定周期のタイムアップイベントは、S0002での初期化処理の実行後1分経過した時,及び、それ以後1分経過する毎に、夫々、発生する。
【0043】
S0005では、CPU31は、検出した通常メッセージ(以下、「処理対象メッセージ」と称される)の字句解析及びそれに対応した処理を実行する。図14は、このS0005にて実行されるサブルーチンを示すフローチャートである。このサブルーチンに入って最初のS0101では、CPU31は、処理対象メッセージ中に自己のニックネーム(pochi)が宛先として含まれるか否かを、チェックする(監視手段に相当)。そして、自己のニックネームが含まれない場合には、CPU31は、処理をそのままS0109へ進める。これに対して、処理対象メッセージに自己のニックネームが含まれる場合には、CPU31は、S0102において、検出した処理対象メッセージから宛先を削除して、メッセージの本文のみを抽出した後に、処理をS0103へ進める。このS0103以後、S0104,S0106,S0107の各処理は、発言の内容が所定の文章条件を満たしているか否かを識別する識別手段に相当する処理である。
【0044】
S0103では、CPU31は、S0102にて抽出されたメッセージ本文の先頭文節(所定の位置にある単語)が所定の動作指示単語(所定の単語)であるか否かを、チェックする。ここで、所定の「動作指示単語」とは、“伝言”,“伝言みせて”,“伝言ある?”,“伝言どうかな?”,“指定伝言”,“通知”,“アラーム”,“メモ”,“メモ一覧”,“dict”,“find”,“会議室参照”,“会議室予約”,“予定参照”,及び、“連絡”である。そして、メッセージ本文の先頭文節が所定の「動作指定単語」であった場合には、CPU31は、処理をS0105へ進める。
【0045】
これに対して、メッセージ本文の先頭文節が所定の「動作指定単語」でない場合には、CPU31は、S0104において、メッセージ本文の先頭からの文脈が、ニックネーム+指定文節という流れに沿っているかか否かを、チェックする。即ち、所定の位置に所定の文節があるか否かをチェックする。ここで、「指定文節」とは、“の連絡先は”,“いる?”,“の名前は”,“のカレンダーサーバは”,及び、“どこにいる?”である。そして、メッセージ本文の先頭からの文脈がニックネーム+指定文節でない場合には場合には、CPU31は、処理をS106へ進める。これに対して、メッセージ本文の先頭からの文脈がニックネーム+指定文節である場合には、CPU31は、処理をS0105へ進める。
【0046】
S0105では、CPU31は、「動作指定単語」又は「指定文節」によって指示された処理を実行する(処理実行手段に相当)。図15は、このS0105にて実行されるサブルーチンを示すフローチャートである。このサブルーチンに入って最初のS0201では、CPU31は、メッセージ本文における「動作指定単語」又は「指定文節」に基づき、対応する処理がバックエンドサーバ4との連携を要するか否かをチェックする。そして、「動作指定単語」が“伝言”,“伝言みせて”,“伝言ある?”,“伝言どうかな?”,“指定伝言”,“通知”,“アラーム”,“メモ”,又は、“メモ一覧”である場合,若しくは、「指定文節」が“の連絡先は”,“いる?”,“の名前は”,又は、“のカレンダーサーバは”である場合には、CPU31は、対応する処理がバックエンドサーバ4との連携を要さないと判断して、処理をS0202へ進める。これに対して、「動作指定単語」が“dict”,“find”,“会議室参照”,“会議室予約”,“予定参照”,又は、“連絡”である場合,若しくは、「指定文節」が“どこにいる?”である場合には、CPU31は、対応する処理がバックエンドサーバ4との連携を要すると判断して、処理をS0206へ進める。
【0047】
S0202では、CPU31は、単独で(即ち、何れのバックエンドサーバ4の助けも要さずに)、メッセージ本文の内容に従った処理を実行する。具体的には、「動作指定単語」が“伝言”である場合には図17に示すサブルーチンを実行し(請求項7又は請求項15に相当)、「動作指定単語」が“伝言ある?”である場合には図18に示すサブルーチンを実行し(請求項13に相当)、「動作指定単語」が“伝言みせて”である場合には図19に示すサブルーチンを実行し(請求項8に相当)、「動作指定単語」が“伝言どうかな?”である場合には図20に示すサブルーチンを実行し(請求項14に相当)、「動作指定単語」が“指定伝言”である場合には図21に示すサブルーチンを実行し(請求項16に相当)、「動作指定単語」が“通知”である場合には図26に示すサブルーチンを実行し(請求項18に相当)、「動作指定単語」が“アラーム”である場合には図35に示すサブルーチンを実行し(請求項38に相当)、「動作指定単語」が“メモ”である場合には図36に示すサブルーチンを実行し(請求項25又は26に相当)、「動作指定単語」が“メモ一覧”である場合には図37に示すサブルーチンを実行し、「指定文節」が“の連絡先は”である場合には図22に示すサブルーチンを実行し(請求項30に相当)、「指定文節」が“いる?”である場合には図24に示すサブルーチンを実行し(請求項17に相当)、「指定文節」が“の名前は”である場合には図33に示すサブルーチンを実行し、「指定文節」が“のカレンダーサーバは”である場合には図34に示すサブルーチンを実行する。以下、これらのサブルーチンの内容を、順番に説明する。
【0048】
先ず、「動作指定単語」が“伝言”であった場合に実行される図17のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS0401において、メッセージ本文の第2文節がニックネーム(宛先)であるか否かをチェックする。そして、第2文節がニックネームでない場合には、CPU31は、メッセージ本文が所定の文法条件を満たしていないと判断して、何ら処理を行うことなく、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0049】
これに対して、第2文節がニックネームである場合には、CPU31は、メッセージ本文の第3文節が“消して”であるか否かをチェックする。そして、第3文節が“消して”でない場合には(請求項7に相当)、CPU31は、処理対象メッセージはメッセージ本文の第3文節を伝言メッセージとしてメッセージテーブル13へ登録することを求めるものであると判断して、処理をS0403へ進める。このS0403では、CPU31は、メッセージ本文の第2文節をメッセージテーブル13の「宛先」欄へ、第3文節を「伝言メッセージ」欄へ、現在時刻を「受信日時」欄へ、発言者のニックネームを「依頼者」欄へ、夫々書き込む。このS0403を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0050】
これに対して、メッセージ本文の第3文節が“消して”であるとS0402にて判断した場合には(請求項15に相当)、CPU31は、処理対象メッセージはメッセージテーブル13から伝言メッセージを削除することを求めるものであると判断して、処理をS0404へ進める。S0404では、CPU31は、メッセージテーブル13内に、第2文節によって指定された利用者宛に発言者(処理対象メッセージを送信してきたクライアント2のことを言う。以下同じ)によって依頼された伝言メッセージがあるか否かを、調べる。即ち、発言者のニックネームが「依頼者」欄に記載されているとともにメッセージ本文の第2文節に示されたニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【0051】
次のS0405では、CPU31は、S0404にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、該当する伝言メッセージが有った場合、CPU31は、S0406において、発言者に対して、該当する全ての伝言メッセージ(即ち、発言者のニックネームが「依頼者」欄に記載されているとともにメッセージ本文の第2文節に示されたニックネームが「宛先」欄に記載されている全ての行における「伝言メッセージ」欄に記載された内容)を、発言者に対して通知することとする。
【0052】
次のS407では、CPU31は、該当する全ての伝言メッセージ(即ち、S0406にて発言者に対して通知された伝言メッセージ)を、メッセージテーブル13から消去する。このS0407を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0053】
次に、「動作指定単語」が“伝言ある?”であった場合にS0202にて実行される図18のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS0501において、発言者宛の伝言メッセージがメッセージテーブル13内にあるか否かを、調べる。即ち、発言者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【0054】
次のS0502では、CPU31は、S0501にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが有った場合、CPU31は、S0503において、発言者に対して、該当する伝言メッセージがある旨及びその件数を通知することとする。これに対して、該当する伝言メッセージが無かった場合には、CPU31は、S0504において、発言者に対して、該当する伝言メッセージがない旨を通知することとする。これらS0503又はS0504を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0055】
次に、「動作指定単語」が“伝言みせて”であった場合にS0202にて実行される図19のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS0601において、発言者宛の伝言メッセージがメッセージテーブル13内にあるか否かを、調べる。即ち、発言者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【0056】
次のS0602では、CPU31は、S0601にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、該当する伝言メッセージが有った場合、CPU31は、S0603において、発言者に対して、該当する全ての伝言メッセージ(即ち、発言者のニックネームが「宛先」欄に記載されている全ての行における「伝言メッセージ」欄に記載された内容)を、発言者に対して通知することとする。
【0057】
次のS0604では、CPU31は、伝言メッセージの全依頼者(即ち、発言者のニックネームが「宛先」欄に記載されている各行における「依頼者」欄にニックネームが記載されている全利用者)に対して、「現在メッセージの通知を実施している旨」を、プライベートメッセージによって通知することとする。
【0058】
次のS605では、CPU31は、該当する全ての伝言メッセージ(即ち、S0603にて発言者に対して通知された伝言メッセージ)を、メッセージテーブル13から消去する。このS0604を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0059】
次に、「動作指定単語」が“伝言どうかな?”であった場合にS0202にて実行される図20のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS0701において、発言者によって依頼された伝言メッセージがメッセージテーブル13内にあるか否かを、調べる。即ち、発言者のニックネームが「依頼者」欄に記載されている行があるか否かを、調べる。
【0060】
次のS0702では、CPU31は、S0701にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、該当する伝言メッセージが有った場合、CPU31は、S0703において、発言者に対して、該当する全ての伝言メッセージ(即ち、発言者のニックネームが「依頼者」欄に記載されている全ての行における「伝言メッセージ」欄に記載された内容)を、発言者に対して通知することとする。このS0703を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0061】
次に、「動作指定単語」が“指定伝言”であった場合に実行される図21のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS0801において、メッセージ本文の内容が「動作指示単語」=“指定伝言”に対応した文法に従っているか否かを、チェックする。即ち、第2文節がニックネーム,第3文節が年月日,第4文節が時刻,第5文節が伝言メッセージに相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「動作指示単語」=“指定伝言”に対応した文法に従っていない場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、メッセージ本文の内容が「動作指示単語」=“指定伝言”に対応した文法に従っている場合には、CPU31は、処理をS0802へ進める。
【0062】
S0802では、CPU31は、メッセージ本文の第3文節及び第4文節によって指定された日時は現在日時以前であるか否かをチェックする。そして、指定日時が現在日時よりも先であるとS0802にて判断した場合には、CPU31は、S0803において、メッセージ本文の第2文節を日時指定メッセージテーブル14の「宛先」欄へ、第3及び第4文節を「指定日時」欄へ、第5文節を「伝言メッセージ」欄へ、発言者のニックネームを「依頼者」欄へ、夫々書き込む。次のS0803では、CPU31は、日時指定メッセージテーブル14の各行を、夫々の「指定日時」欄に記載された日時の早い順にソートする。このS0803を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0063】
これに対して、指定日時が現在日時以前であるとS0802にて判断した場合には、CPU31は、依頼された伝言メッセージは通常の伝言メッセージとして扱えば足りると判断して、処理をS0805へ進める。このS0805では、CPU31は、メッセージ本文の第2文節をメッセージテーブル13の「宛先」欄へ、第5文節を「伝言メッセージ」欄へ、現在時刻を「受信日時」欄へ、発言者のニックネームを「依頼者」欄へ、夫々書き込む。このS0805を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0064】
次に、「指定文節」が“の連絡先は”であった場合に実行される図22のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS0901において、メッセージ本文の内容が「指定文節」=“の連絡先は”に対応した文法に従っているか否かを、チェックする。即ち、「指定文節」に続く第3文節が伝達方法種別に相当する文字列であり、且つ、それに続く第4文節が連絡先アドレスに相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「指定文節」=“の連絡先は”に対応した文法に従っていない場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、メッセージ本文の内容が「指定文節」=“の連絡先は”に対応した文法に従っている場合には、CPU31は、S902において、メッセージ本文の第3文節を連絡先登録テーブル15の「伝達方法種別」欄へ、第4文節を「連絡先アドレス」欄へ、第1文節に示されたニックネームを「連絡先利用者名」欄へ、発言者のニックネームを「登録者」欄へ、現在日時を「登録時刻」欄へ、夫々書き込む。
【0065】
次に、「指定文節」が“いる?”であった場合に実行される図24のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS1101において、チャンネル管理テーブル12の当該チャンネル(処理対象メッセージが検出されたチャンネル)内にメッセージ本文の第1文節によって示されるニックネームが「利用者」として登録され、且つ、そのニックネーム(利用者)に対応して特定キーワードが登録されているか否かを、調べる。なお、この特定キーワードは、後述するS0111の処理に依り、チャンネル管理テーブル12に登録されたものである。
【0066】
次のS1102では、CPU31は、S1101にて調べた結果、条件を満たす特定キーワードが有ったか否かを、チェックする。そして、条件を満たす特定キーワードが登録されていた場合には、CPU31は、S1103において、発言者に対して、ニックネームが示す利用者がそのチャンネルから抜けた(帰った)可能性がある旨を、そのニックネームに対応してチャンネル管理テーブル12内に登録されている「前回の発言時刻」欄及び「前回の発言中のキーワード」欄の内容とともに通知することとする。これに対して、条件を満たす特定キーワードが登録されていなかった場合には、CPU31は、S1104において、発言者に対して、ニックネームが示す利用者がそのチャンネルにいる可能性がある旨を、そのニックネームに対応してチャンネル管理テーブル12内に登録されている「前回の発言時刻」欄の内容とともに通知することとする。これらS1103又はS1104を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0067】
次に、「動作指示単語」が“通知”であった場合に実行される図26のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS1301において、チャットサーバ1内において自らが接続中の全チャンネルに対して、メッセージ本文の第2文節以下の伝言メッセージ,依頼者名(即ち、処理対象メッセージの発言者のニックネーム),及び、依頼時刻を、通知することとする。このS1301を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0068】
次に、「指定文節」が“の名前は”であった場合に実行される図33のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS1901において、メッセージ本文の内容が「指定文節」=“の名前は”に対応した文法に従っているか否かを、チェックする。即ち、「指定文節」に続く第3文節が利用者の本名に相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「指定文節」=“の名前は”に対応した文法に従っていない場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0069】
これに対して、メッセージ本文の内容が「指定文節」=“の名前は”に対応した文法に従っている場合には、CPU31は、S1902において、メッセージ本文の第1文節に示されたニックネーム及び第3文節に示された本名を、関連付けて予定参照支援テーブル16に登録する。この時、そのニックネームが既に「事業所名」欄に対応して登録されている場合(S2002参照)には、CPU31は、「事業所名」欄と同じ行の「本名」欄へ、その本名を書き込む。これに対して、そのニックネームが予定参照支援テーブル16内に一切登録されていない場合には、CPU31は、そのニックネームを「ニックネーム」欄へ書き込むとともに、その本名を「本名」欄へ書き込む。このS1902を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0070】
次に、「指定文節」が“のカレンダーサーバは”であった場合に実行される図34のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS2001において、メッセージ本文の内容が「指定文節」=“のカレンダーサーバは”に対応した文法に従っているか否かを、チェックする。即ち、「指定文節」に続く第3文節が事業所名に相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「指定文節」=“のカレンダーサーバは”に対応した文法に従っていない場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0071】
これに対して、メッセージ本文の内容が「指定文節」=“のカレンダーサーバは”に対応した文法に従っている場合には、CPU31は、S2002において、メッセージ本文の第1文節に示されたニックネーム及び第3文節に示された事業所名を、関連付けて予定参照支援テーブル16に登録する。この時、そのニックネームが既に「本名」欄に対応して登録されている場合(S1902参照)には、CPU31は、「本名」欄と同じ行の「事業所名」欄へ、その事業所名を書き込む。これに対して、そのニックネームが予定参照支援テーブル16内に一切登録されていない場合には、CPU31は、そのニックネームを「ニックネーム」欄へ書き込むとともに、その事業所名を「事業所名」欄へ書き込む。このS2002を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0072】
次に、「動作指定単語」が“アラーム”であった場合に実行される図35のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS2101において、メッセージ本文の内容が「動作指示単語」=“アラーム”に対応した文法に従っているか否かを、チェックする。即ち、第2文節が時刻,第3文節が通知メッセージに相当する文字列であるか否かを、チェックする。そして、メッセージ本文の内容が「動作指示単語」=“アラーム”に対応した文法に従っていない場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、メッセージ本文の内容が「動作指示単語」=“アラーム”に対応した文法に従っている場合には、CPU31は、処理をS2102へ進める。
【0073】
S2102では、CPU31は、メッセージ本文の第2文節が時間(例,60)であるか時刻(例,“17:00”)であるかをチェックする。そして、時間である場合には、CPU31は、S2103において、第2文節に示された時間を現在時刻に加算することによって時刻に変換した後に、処理をS2104へ進める。これに対して、メッセージ本文の第2文節が時刻であるとS2102にて判断した場合には、CPU31は、処理をそのままS2104へ進める。
【0074】
S2104では、CPU31は、第2文節に示された時刻又はS2103にて変換された時刻をアラーム管理テーブル17の「指定時刻」欄へ、第3文節を「通知メッセージ」欄へ、発言者のニックネームを「登録者」欄へ、夫々書き込む。このS2104を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0075】
次に、「動作指示単語」が“メモ”であった場合に実行される図36のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS2201において、メッセージ本文の内容が「動作指示単語」=“メモ”に対応した文法に従っているか否かを、チェックする。即ち、第2文節以降の1又は複数の文節がカンマで区切られて並べられ、その後にスペースを開けて文字列が配置されているか否かを、チェックする。そして、メッセージ本文の内容が「動作指示単語」=“メモ”に対応した文法に従っていない場合には、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0076】
これに対して、メッセージ本文の内容が「動作指示単語」=“メモ”に対応した文法に従っている場合には、CPU31は、S2202において、メッセージ本文の第2文節以降のカンマで区切られた一又は複数の文節(但し、先頭文字が“#”である文節を除く)をキーワード登録テーブル18の「登録キーワード」欄へ、カンマに続いて“#”で始まる文節がある場合にはその文節を「チャンネル指定」欄へ、スペースに続く文字列を「登録文字列」欄へ、発言者のニックネームを「登録者」欄へ、夫々書き込む。なお、メッセージ本文にカンマが含まれていない場合には、その第2分節のみがキーワードであると認識されて、S2201及びS2202が実行される。S2202を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0077】
次に、「動作指示単語」が“メモ一覧”であった場合に実行される図37のサブルーチンを、説明する。CPU31は、このサブルーチンに入ると、最初のS2301において、メッセージ本文にチャンネル指定があるか否かをチェックする。即ち、第2分節として“#”で始まる文節が含まれるか否かを、チェックする。なお、この“#”に続く文字列は、指定されたチャンネルの名称である。そして、メッセージ本文にチャンネル指定がない場合(即ち、“#”で始まる文節がメッセージ本文に含まれない場合)、CPU31は、S2302において、キーワード登録テーブル18に記載された全情報を、一つのhtmlファイルへ変換する。これに対して、メッセージ本文にチャンネル指定があるとS2301にて判断した場合(即ち、先頭文字が“#”で始まる文節がメッセージ本文に含まれている場合)、CPU31は、S2303において、メッセージ本文中の“#”で始まる文節が「チャンネル指定」欄に記載されている各行に記載された全情報を、キーワード登録テーブル18から読み出して、一つのhtmlファイルへ変換する。何れの場合においても、CPU31は、次のS2304において、S2302又はS2303にて変換したhtmlファイルを、連携しているウェブサーバの指定場所に格納し、その指定場所を示すURLを獲得する。
【0078】
次のS2305では、CPU31は、S2304にて獲得したURLを、発言者に対して通知することとする。このS2305を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0079】
図15に戻り、S0202での処理が完了すると、CPU31は、処理をS0203へ進める。このS0203では、CPU31は、S0202にて実行された処理の結果として通知をすることとしたか否かを、チェックする。そして、通知をすることとしなかった場合には、CPU31は、このサブルーチンを終了して、処理を図14のルーチンへ戻す。
【0080】
これに対して、通知することとした場合には、CPU31は、S0204において、通知すべき情報及び通知先利用者のニックネームを含む文字列(メッセージ情報)を作成する。次のS0205では、CPU31は、S0204にて作成した文字列を出力(チャットサーバ1に対して送信)する。なお、本実施形態において、通知すべき情報及び通知先を含む文字列(メッセージ情報)は、原則として、その通知先利用者が接続しているチャンネルへ送信される。但し、S0604の場合には、プライベートメッセージによって通知されることとされるので、チャンネル経由ではなく、直接通知先利用者へ送信される。S0205を完了すると、CPU31は、この図15のサブルーチンを終了して、処理を図14のルーチンへ戻す。
【0081】
一方、S0206では、CPU31は、何れかのバックエンドサーバ4と連携して、メッセージ本文の内容に従った処理を実行する。具体的には、「動作指定単語」が“連絡”である場合には図23に示すサブルーチンを実行し(請求項28に相当)、「動作指定単語」が“dict”である場合には図27に示すサブルーチンを実行し(請求項32に相当)、「動作指定単語」が“find”である場合には図28に示すサブルーチンを実行し(請求項33及び請求項34に相当)、「動作指定単語」が“会議室予約”である場合には図30に示すサブルーチンを実行し(請求項35に相当)、「動作指定単語」が“会議室参照”である場合には図31に示すサブルーチンを実行し(請求項36に相当)、「動作指定単語」が“予定参照”である場合には図32に示すサブルーチンを実行し(請求項37に相当)、「指定文節」が“どこにいる?”である場合には図25に示すサブルーチンを実行する。以下、これらのサブルーチンの内容を、順番に説明する。
【0082】
先ず、「動作指示単語」=“連絡”であった場合に実行される図23のサブルーチンを説明する。CPU31は、このサブルーチンに入ると、最初のS1001において、メッセージ本文の第2文節によって示された利用者名(ニックネーム)が連絡先登録テーブル15の「連絡先利用者名」欄に登録されているか否かを、調べる。
【0083】
次のS1002では、CPU31は、S1001にて調べた結果、第2文節によって示された利用者名が連絡先登録テーブル15に登録されていたか否かをチェックする。そして、その利用者名が登録されていなかった場合には、CPU31は、このサブルーチンを終了して、処理を図14のルーチンへ戻す。これに対して、その利用者名が登録されていた場合には、CPU31は、S1003において、連絡先登録テーブル15中でその利用者名に対応付けられた伝達方法種別を読み出すとともに、その伝達方法種別に対応したバックエンドサーバ4を、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0084】
次のS1004では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第3文節の内容を伝達対象メッセージとし、連絡先登録テーブル15中で第2文節が示す連絡先利用者名に対応付けられた連絡先アドレスを伝達相手先とし、連絡先登録テーブル15中で第2文節が示す連絡先利用者名に対応付けられた伝達方法を伝達方法種別として、伝達対象メッセージを伝達方法種別に従って連絡先アドレスへ伝達することを内容としたリクエスト文字列を作成する。
【0085】
次のS1005では、CPU31は、S1004にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。このS1005の完了後、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0086】
次に、「指定文節」=“どこにいる?”であった場合に実行される図25のサブルーチンを説明する。CPU31は、このサブルーチンに入ると、最初のS1201において、チャットサーバ1自身を、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0087】
次のS1202では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第1文節にニックネームが示された利用者がどのチャンネルに接続中であるのか否かの調査を内容としたリクエスト文字列を作成する。
【0088】
次のS1203では、CPU31は、S1202にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。このリクエスト文字列を受信したチャットサーバ1は、リクエスト文字列に含まれるニックネームの利用者がどのチャンネルに接続しているのか、若しくは、何れのチャンネルにも接続していないのかを調べ、その調査結果を疑似クライアント3へ解答する。
【0089】
次のS1204では、CPU31は、処理対象サーバとしてのチャットサーバ1から返答された問合せ結果を解析する。
【0090】
次のS1205では、CPU31は、S1204での解析結果に基づいて、メッセージ本文の第1文節にニックネームが示された利用者がチャットサーバ1の何れかのチャンネルに存在するか否かをチェックする。そして、その利用者が何れかのチャンネルに存在する場合には、CPU31は、S1206において、その利用者が接続している全チャンネルを一覧する応答文字列(メッセージ情報)を作成する。これに対して、その利用者が何れのチャンネルにも存在しない場合には、CPU31は、S1207において、その利用者が居ない旨を示す応答文字列(メッセージ情報)を作成する。これらS1206又はS1207を完了すると、CPU31は、S1208において、S1206又はS1207にて作成した応答文字列を出力(チャットサーバ1に対して送信)する。このS1208の完了後、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0091】
次に、「動作指示単語」=“dict”であった場合に実行される図27のサブルーチンを説明する。CPU31は、このサブルーチンに入ると、最初のS1401において、メッセージ本文の文法を解析する。即ち、第2文節に示された辞書検索の指定の種別,第3文節に示された辞書対象文字を、夫々、識別する。
【0092】
次のS1402では、CPU31は、メッセージ本文の第2文節に示された指定が「単語翻訳」を表す“−t”であるか否かをチェックする。そして、第2文節に示された指定が「単語翻訳」を表す“−t”でない場合には、CPU31は、S1409において、指定に応じた処理を実行する。例えば、指定が「意味検索」であった場合には、CPU31は、百科事典等のデータベースを有する図示せぬサーバと連携して、第3文節に示された辞書対象文字の意味を調べて、発言者に応答する。S1409を完了すると、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0093】
これに対して、メッセージ本文の第2文節に示された指定が「単語翻訳」を表す“−t”である場合には、CPU31は、S1403において、予め「単語翻訳」に対応付けて登録されていた辞書サーバを、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0094】
次のS1404では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第3文節に示された辞書対象文字を翻訳することを内容としたリクエスト文字列を作成する。
【0095】
次のS1405では、CPU31は、S1404にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【0096】
次のS1406では、CPU31は、処理対象サーバとしての辞書サーバから返答された問合せ結果を解析して、辞書対処文字の翻訳文を抽出する。
【0097】
次のS1407では、CPU31は、S1406にて抽出された辞書対象文字の翻訳文を表す応答文字列(メッセージ情報)を作成する。
【0098】
次のS1408では、CPU31は、S1407にて作成した応答文字列(メッセージ情報)を出力(チャットサーバ1に対して送信)する。このS1408の完了後、CPU31は、このサブルーチンを終了して、処理を図15のルーチンへ戻す。
【0099】
次に、「動作指示単語」=“find”であった場合に実行される図28及び図29のサブルーチンを説明する。CPU31は、このサブルーチンに入ると、最初のS1501において、メッセージ本文の文法を解析する。即ち、第2文節に示された検索サーバ名,第3文節に示された検索対象文字を、夫々、識別する。
【0100】
次のS1502では、CPU31は、メッセージ本文の第2文節に示された検索サーバを、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0101】
次のS1503では、S1502にて決定された処理対象サーバがポータルサイトであるか個人情報管理サーバであるか否かを、チェックする。そして、CPU31は、処理対象サーバがポータルサイトであれば、処理をS1504へ進め、処理対象サーバがwhois,X.500,LDAP等の規約に基づく個人情報管理サーバであれば、処理をS1513へ進める。
【0102】
処理対象サーバがポータルサイトである場合(請求項33に相当)に実行されるS1504では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第3文節に示された検索対象文字に関するインターネットホームページを検索することを内容としたリクエスト文字列を作成する。
【0103】
次のS1505では、CPU31は、S1504にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【0104】
次のS1506では、CPU31は、処理対象サーバとしてのポータルサイトから返答された問合せ結果を解析する。
【0105】
次のS1507では、CPU31は、S1506での解析結果に基づいて、応答文字列(該当するホームページの概略)及び情報件数(該当するホームページの件数)を獲得する。
【0106】
次のS1508では、CPU31は、S1507にて獲得した情報件数が1件以上であるか否かをチェックする。そして、情報件数がゼロであった場合には、CPU31は、S1511において、情報件数がゼロであることを示す応答文字列(メッセージ情報)を作成し、S1512において、S1511にて作成した応答文字列を出力(チャットサーバ1に対して送信)した後に、このサブルーチンを終了して、処理を図15のルーチンに戻す。
【0107】
これに対して、S1507にて獲得した情報件数が1件以上であるとS1508にて判断した場合には、CPU31は、S1509において、連携しているWebサーバ内における特定位置にS1507にて獲得した応答文字列を書き込むとともに、そのページのURLを獲得する。次のS1510では、CPU31は、S1507にて獲得した情報件数及びS1509にて獲得したURLを示す応答文字列(メッセージ情報)を作成する。次のS1512では、CPU31は、S1510にて作成した応答文字列を出力(チャットサーバ1に対して送信)する。S1512の完了後、CPU31は、このサブルーチンを終了して、処理を図15のルーチンに戻す。
【0108】
一方、処理対象サーバが個人情報管理サーバである場合(請求項34に相当)に実行されるS1513では、CPU31は、メッセージ本文の第3文節がニックネームであるか個人の不変的情報(本名,メールアドレス,等)であるかを、チェックする。そして、メッセージ本文の第3文節が個人の不変的情報である場合には、CPU31は、処理をS1517へ進める。これに対して、メッセージ本文の第3文節がニックネームである場合には、CPU31は、S1514において、第3文節が示すニックネームが、連絡先登録テーブル15の「連絡先利用者」欄に登録されているか否かをチェックする。そして、登録されていない場合には、CPU31は、検索不可能であるとして、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、第3文節が示すニックネームが連絡先登録テーブル15に登録されている場合には、CPU31は、S1516において、メッセージ本文の第3文節の内容を、連絡先登録テーブル15内でそのニックネームに対応付けられている連絡先アドレスへ変換した後に、処理をS1517へ進める。
【0109】
S1517では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第3文節に示された検索条件(個人の不変的情報)に対応した個人情報を検索することを内容としたリクエスト文字列を作成する。なお、第3文節に示された検索条件は、その一部がワイルドカード(*)に置き換えられていても良い。その場合には、ワイルドカード(*)以外の部分を共通とするあらゆる検索条件の論理和に基づいた、あいまい検索となる。
【0110】
次のS1518では、CPU31は、S1517にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【0111】
次のS1519では、CPU31は、処理対象サーバとしての個人情報管理サーバから返答された問合せ結果を解析する。この問合せ結果には、個人情報管理サーバにおいて検索条件に対応付けられている全項目の情報が含まれている。
【0112】
次のS1520では、CPU31は、S1517にて作成したリクエスト文字列中の検索条件があいまい検索のものであるか否かを、チェックする。そして、検索条件があいまい検索のものではなかった場合,即ち、検索条件にワイルドカード(*)が含まれていなかった場合、CPU31は、処理をS1521へ進める。このS1521では、CPU31は、S1519にて解析した問合せ結果の全項目に基づいて応答文字列(メッセージ情報)を作成する。但し、発言者のクライアント2のシステムが問合せ結果の全項目を表示できない場合には、CPU31は、当該システムが表示可能な範囲に限定された項目に基づいて、応答文字列(メッセージ情報)を作成する。これに対して、検索条件があいまい検索のものであった場合,即ち、検索条件にワイルドカード(*)が含まれていた場合、CPU31は、処理をS1522へ進める。このS1522では、CPU31は、S1519にて解析した問合せ結果の全項目のうち予め設定された出力対象項目に基づいて、応答文字列を作成する。
【0113】
S1521又はS1522の完了後、CPU31は、S1523において、S1521又はS1522にて作成された応答文字列を出力(チャットサーバ1に対して送信)した後に、このサブルーチンを終了して、処理を図15のルーチンに戻す。
【0114】
次に、「動作指示単語」=“会議室予約”であった場合に実行される図30のサブルーチンを説明する。CPU31は、このサブルーチンに入ると、最初のS1601において、メッセージ本文の文法を解析する。即ち、第2文節に示された事業所名,第3文節に示された会議室名(場所),第4文節に示された年月日,第5文節に示された時間帯,第6文節に示された予約目的を、夫々、識別する。
【0115】
次のS1602では、CPU31は、メッセージ本文の第2文節に示された事業所のカレンダーサーバを、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0116】
次のS1603では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第3文節に示された会議室を第4文節に示された年月日の第5文節に示された時間帯に第6文節に示された目的で発言者の名前で予約申込することを内容としたリクエスト文字列を、作成する。
【0117】
次のS1604では、CPU31は、S1603にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【0118】
次のS1605では、CPU31は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。ここでの問合せ結果は、予約ができたかできなかったかの何れかである。
【0119】
次のS1606では、CPU31は、S1605での解析結果に基づいて、応答文字列(予約ができたかできなかったかを示すメッセージ情報)を作成する。
【0120】
次のS1607では、CPU31は、S1606にて作成した応答文字列を出力(チャットサーバ1に対して送信)する。このS1607を完了した後、CPU31は、このサブルーチンを終了して、処理を図15のルーチンに戻す。
【0121】
次に、「動作指示単語」=“会議室参照”であった場合に実行される図31のサブルーチンを説明する。CPU31は、このサブルーチンに入ると、最初のS1701において、メッセージ本文の文法を解析する。即ち、第2文節に示された事業所名,第3文節に示された会議室名,第4文節に示された年月日,第5文節に示された時間帯を、夫々、識別する。
【0122】
次のS1702では、CPU31は、メッセージ本文の第2文節に示された事業所のカレンダーサーバを、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0123】
次のS1703では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第3文節に示された会議室が第4文節に示された年月日の第5文節に示された時間帯に予約されていることの確認を内容としたリクエスト文字列を、作成する。
【0124】
次のS1704では、CPU31は、S1703にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【0125】
次のS1705では、CPU31は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。ここでの問合せ結果は、予約がなされていないか、若しくは、誰の名前で何の目的で予約されているかである。
【0126】
次のS1706では、CPU31は、S1705での解析結果に基づいて、応答文字列(メッセージ情報)を作成する。
【0127】
次のS1707では、CPU31は、S1706にて作成した応答文字列を出力(チャットサーバ1に対して送信)する。このS1707を完了した後、CPU31は、このサブルーチンを終了して、処理を図15のルーチンに戻す。
【0128】
次に、「動作指示単語」=“予定参照”であった場合に実行される図32のサブルーチンを説明する。CPU31は、このサブルーチンに入ると、最初のS1501において、メッセージ本文の文法を解析する。即ち、第2文節に示された事業所名,第3文節に示された個人名,第4文節に示された年月日,第5文節に示された時間帯,若しくは、第2文節に示されたニックネーム,第3文節に示された年月日,第4文節に示された時間帯を、夫々、識別する。
【0129】
次のS1802では、CPU31は、メッセージ本文の第2文節がニックネームであるか否かを、チェックする。そして、メッセージ本文の第2文節がニックネームでない場合(即ち、事業所名である場合)には、CPU31は、処理をS1806へ進める。これに対して、メッセージ本文の第2文節がニックネームである場合には、CPU31は、S1803において、第2文節が示すニックネームが、予定参照支援テーブル16の「ニックネーム」欄に登録されているか否かを調べる。次のS1804では、CPU31は、S1803にて調べた結果ニックネームが登録されていたか否かをチェックし、登録されていない場合には、CPU31は、検索不可能であるとして、このサブルーチンを終了して、処理を図15のルーチンへ戻す。これに対して、第2文節が示すニックネームが予定参照支援テーブル16に登録されている場合には、CPU31は、S1805において、メッセージ本文の第2文節を削除して、その位置に、予定参照支援テーブル16内でそのニックネームと同じ行に記載された「本名」及び「事業所名」の内容を挿入した後に、処理をS1806へ進める。
【0130】
次のS1806では、CPU31は、メッセージ本文の第2文節に示された事業所のカレンダーサーバを、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0131】
S1807では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、メッセージ本文の第3文節に示された個人の第4文節に示された年月日の第5文節に示された時間帯における予定の確認を内容としたリクエスト文字列を、作成する。
【0132】
次のS1808では、CPU31は、S1807にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【0133】
次のS1809では、CPU31は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。
【0134】
次のS1810では、CPU31は、S1809での解析結果に基づいて、応答文字列(メッセージ情報)を作成する。
【0135】
次のS1811では、CPU31は、S1810にて作成した応答文字列を出力(チャットサーバ1に対して送信)する。このS1811を完了した後、CPU31は、このサブルーチンを終了して、処理を図15のルーチンに戻す。
【0136】
図15に戻り、S0206での処理が完了すると、CPU31は、このサブルーチンを終了して、処理を図14のルーチンへ戻す。
【0137】
図14に戻り、S0105での処理が完了すると、CPU31は、処理をS0109へ進める。
【0138】
一方、S0106では、CPU31は、キーワード登録テーブル18の「登録キーワード」欄に記載された各キーワードを、メッセージ本文内で検索する。
【0139】
次のS0107では、CPU31は、キーワード登録テーブル18の「登録キーワード」欄中の何れかの行に記載されたキーワードの組み合わせがメッセージ本文内に含まれているか否かを、チェックする。そして、何れのキーワードの組み合わせもメッセージ本文内に含まれていない場合には、CPU31は、処理をS0109へ進める。これに対して、何れかのキーワードの組み合わせがメッセージ本文内に含まれている場合(請求項19に相当)には、CPU31は、S0108においてキーワード対応処理を実行する(処理実行手段に相当)。
【0140】
図16は、このS0108にて実行されるサブルーチンを示すフローチャートである。CPU31は、このサブルーチンに入ると、最初の0301において、メッセージ本文内に全て含まれているキーワードの組み合わせが「登録キーワード」欄に記載されている行を、文字列キーワード登録テーブル18内で検索する。
【0141】
次のS0302では、CPU31は、S0301にて検索された行の「登録文字列」欄に文字列が登録されているか否かを、チェックする。そして、該当する行の「登録文字列」欄が空欄である場合には、CPU31は、このサブルーチンを終了して、処理を図14のルーチンへ戻す。これに対して、該当する行の「登録文字列」欄に文字列(以下、「登録文字列」という)が登録されている場合には、CPU31は、処理をS0303へ進める。
【0142】
S0303では、CPU31は、処理対象メッセージが検出されたチャンネル以外のチャンネル名が、S0301にて検索された行の「チャンネル指定」欄に記載されているか否かを、チェックする。そして、S0301にて検索された行の「チャンネル指定」欄に何れかのチャンネル名が記載されており、且つ、そのチャンネル名と処理対象メッセージが検出されたチャンネルとが対応なければ、CPU31は、登録文字列が有効ではないと判断して、このサブルーチンを終了して、処理を図14のルーチンへ戻す。これに対して、S0301にて検索された行の「チャンネル指定」欄に処理対象メッセージが検出されたチャンネルのチャンネル名が記載されている場合,又は、S0301にて検索された行の「チャンネル指定」欄が空欄である場合には、CPU31は、処理をS0304へ進める。
【0143】
S0304では、CPU31は、S0301にて検索された行の「登録文字列」欄に記載された登録文字列が単純テキストであるか、若しくは、特殊文字列(“$=”,“$@”,又は“$%”)を含んでいるかを、チェックする。そして、登録文字列が単純テキストである場合には、CPU31は、S0305において、登録文字列をそのまま応答(チャットサーバ1に対して送信)した後に、このサブルーチンを終了して、処理を図14に戻す(請求項20に相当)。これに対して、登録文字列に特殊文字列が含まれる場合には、CPU31は、処理をS0306へ進める。
【0144】
S0306では、CPU31は、登録文字列に特殊文字“$=”が含まれるか否かをチェックする。そして、登録文字列に特殊文字“$=”が含まれている場合には、CPU31は、S0307において、メッセージ本文の内容を、登録文字列(特殊文字以外の部分)によって置き換えた後に、S0308において、指示対象処理を実行する。このS0308にて実行される指示対象処理の内容は、S0105にて実行される図15のものと全く同じであるので、その説明を省略する。そして、このS0308を完了すると、CPU31は、このサブルーチンを終了して、処理を図14に戻す。これに対して、登録文字列に“$=”以外の特殊文字列が含まれる場合には、CPU31は、処理をS0309へ進める。
【0145】
S0309では、CPU31は、特殊文字列(“$@”又は“$%”)を含む登録文字列の内容に従って、応答文字列(メッセージ情報)を作成する。具体的には、登録文字列における特殊文字列以外の部分は文書ファイル名であるので、この特殊文字列が“$@”である場合には、CPU31は、その文書ファイルにおける任意の1行のみを示す応答文字列(メッセージ情報)を作成する。また、特殊文字列が“$%”である場合には、CPU31は、その文書ファイルにおける任意の1文のみを示す応答文字列(メッセージ情報)を作成する。
【0146】
次のS0310では、CPU31は、S0309にて作成した応答文字列を、応答(チャットサーバ1に対して送信)する(請求項21に相当)。このS0310を完了すると、CPU31は、このサブルーチンを終了して、処理を図14に戻す。
【0147】
図14に戻り、S0108での処理が完了すると、CPU31は、処理をS0109へ進める。
【0148】
S0109では、CPU31は、チャンネル管理テーブル12における処理対象メッセージが検出されたチャンネル中の発言者に関する行における「前回の発言時刻」欄に、現在時刻を上書きする。
【0149】
次のS0110では、CPU31は、メッセージ本文中に上述した特定キーワードが含まれているか否かをチェックする。そして、メッセージ本文中に特定キーワードが含まれていなかった場合には、CPU31は、このサブルーチンを終了して、処理を図11のメインルーチンへ戻す。これに対して、メッセージ本文中に特定キーワードが含まれていた場合には、CPU31は、S0111において、チャンネル管理テーブル12における処理対象メッセージが検出されたチャンネル中の発言者の行の「前回の発言中のキーワード」欄に、メッセージ本文中に含まれている特定キーワードを書き込む(管理手段に相当)。CPU31は、S0111を完了後、このサブルーチンを終了して、処理を図11のメインルーチンへ戻す。
【0150】
図11に戻り、S0005の処理が終了すると、CPU31は、処理をS0006へ進める(請求項13に相当)。
【0151】
S0006では、CPU31は、発言者宛の伝言メッセージがメッセージテーブル13内にあるか否かを、調べる。即ち、発言者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【0152】
次のS0007では、CPU31は、S0006にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、CPU31は、処理をS0004に戻して次のイベント発生を待つ。これに対して、該当する伝言メッセージが有った場合、CPU31は、処理をS0008へ進める。
【0153】
S0008では、CPU31は、S0006にて調べた結果見つかった伝言メッセージについて、過去所定時間(例えば、3分)内に処理対象メッセージの発言者(即ち、伝言メッセージの宛先)に対して何れかのチャンネルを介して通知を行ったか否かをチェックする。そして、通知を行っている場合には、CPU31は、重ねて通知をする必要がないと判断し、処理をS0004に戻して次のイベント発生を待つ。これに対して、過去所定時間内に通知を行っている場合には、CPU31は、処理をS0009へ進める。
【0154】
S0009では、CPU31は、処理対象メッセージの発言者(即ち、伝言メッセージの宛先)に対して、該当する伝言メッセージがある旨及びその件数を通知する(その旨の文字列をチャットサーバ1に対して送信する)。このS0009を完了すると、CPU31は、処理をS0004に戻して次のイベント発生を待つ。
【0155】
一方、JOINメッセージを検出した時に実行されるS0010では、CPU31は、JOINメッセージの発言者である新規接続利用者宛の伝言メッセージがメッセージテーブル13内にあるか否かを、調べる。即ち、当該新規接続利用者のニックネームが「宛先」欄に記載されている行があるか否かを、調べる。
【0156】
次のS0011では、CPU31は、S0010にて調べた結果、該当する伝言メッセージがあったか否かをチェックする。そして、該当する伝言メッセージが無かった場合には、CPU31は、処理をS0014へ進める。これに対して、該当する伝言メッセージが有った場合、CPU31は、処理をS0012へ進める。
【0157】
S0012では、CPU31は、S0010にて調べた結果見つかった伝言メッセージについて、過去所定時間(例えば、3分)内に処理対象メッセージの発言者(即ち、伝言メッセージの宛先)に対して何れかのチャンネルを介して通知を行ったか否かをチェックする。そして、通知を行っている場合には、CPU31は、重ねて通知をする必要がないと判断し、処理をS0014へ進める。これに対して、過去所定時間内に通知を行っている場合には、CPU31は、処理をS0013へ進める。
【0158】
S0013では、CPU31は、新規接続利用者に対して、該当する伝言メッセージがある旨及びその件数を通知する(その旨の文字列をチャットサーバに対して送信する)(請求項11及び請求項12に相当)。このS0013を完了すると、CPU31は、処理をS0014へ進める。
【0159】
S0014では、CPU31は、新規接続利用者のニックネームが予定参照支援テーブル16の「ニックネーム」欄に記載されているか否か、及び、どの行に記載されているのかを、調べる。
【0160】
次のS0015では、CPU31は、S0014にて調べた結果に基づいて、ニックネームが登録されているかどうかをチェックし、登録されていない場合には、処理をそのままS0004に戻して、次のイベント発生を待つ。これに対してニックネームが登録されている場合には、CPU31は、処理をS0016へ進める。
【0161】
S0016では、CPU31は、S0014にて調べた行の「事業所名」欄に記載された事業所(即ち、ニックネームに対応付けられた事業所)のカレンダーサーバを、処理対象サーバ(即ち、連携先のバックエンドサーバ)として決定する。
【0162】
次のS0017では、CPU31は、処理対象サーバに対するリクエスト文字列を作成する。具体的には、CPU31は、S0014にて調べた行の「本名」欄に記載された個人(即ち、ニックネームに対応付けられた本名が示す個人)の現時点から一定時間(例えば、24時間)内の予定の確認を内容としたリクエスト文字列を、作成する。
【0163】
次のS0018では、CPU31は、S0017にて作成したリクエスト文字列を処理対象サーバへ送信することによって、リクエストを実行する。
【0164】
次のS0019では、CPU31は、処理対象サーバとしてのカレンダーサーバから返答された問合せ結果を解析する。
【0165】
次のS0020では、CPU31は、S0019での解析結果に基づいて、応答文字列を作成する。
【0166】
次のS0021では、CPU31は、S0020にて作成した応答文字列を出力(チャットサーバ1に対して送信)する。このS0021を完了した後、CPU31は、処理をS0004へ戻し、新たなイベントの発生を待つ。
【0167】
一方、所定周期(例えば、1分間)のタイムアップが発生した時に実行されるS0022では、CPU31は、日時指定メッセージテーブル14内において、「指定日時」欄に記載された日時が現在時刻以前である伝言メッセージを調べる。
【0168】
次のS0023では、CPU31は、S0022で調べた結果に基づいて、該当する伝言メッセージが有るか否かをチェックし、なければ、処理をS0025へ進める。これに対して、該当する伝言メッセージが有る場合、CPU31は、処理をS0024へ進める。
【0169】
S0024では、CPU31は、日時指定メッセージテーブル14における「指定日時」欄に記載された日時が現在時刻以前である行の記載内容を、メッセージテーブル13へ移動する(請求項16に相当)。この際、CPU31は、日時指定メッセージテーブル14の「指定日時」欄に記載されていた日時を、メッセージテーブル13の「受信日時」欄へ書き込む。このS0024を完了すると、CPU31は、処理をS0025へ進める。
【0170】
S0025では、CPU31は、アラーム管理テーブル17内において、「指定時刻」欄に記載された時刻が現在時刻以前である通知メッセージを調べる。
【0171】
次のS0026では、CPU31は、S0025で調べた結果に基づいて、該当する通知メッセージが有るか否かをチェックし、なければ、処理をS0004へ戻して、新たなイベント発生を待つ。これに対して、該当する通知メッセージが有る場合、CPU31は、処理をS0027へ進める。
【0172】
S0027では、CPU31は、アラーム管理テーブル17における「指定日時」欄に記載された日時が現在時刻以前である行の「通知メッセージ」欄に記載された文字列(通知メッセージ)を、同じ行の「登録者」に記載されたニックネームを宛先として付して、通知する(その旨の文字列をチャットサーバに対して送信する)(請求項38に相当)。
【0173】
次のS0028では、CPU31は、S0027にて通知された通知メッセージが記載されていた行の記載内容を、アラーム管理テーブル17から削除する。このS0028を完了すると、CPU31は、処理をS0004へ戻し、新たなイベント発生を待つ。
【0174】
<疑似クライアントの動作>
以下、上記のように構成される本実施形態による疑似クライアント3と任意のクライアント2との間でなされる会話を、具体的に説明する。
【0175】
〔伝言〕
何れかの利用者がチャンネルに接続した時に会話をしたかった相手がそのチャンネルにいなかった場合、若しくは、先にチャンネルとの接続を切断した利用者に対して伝えたい事がある場合に、その利用者は、下記の形式のメッセージ本文に、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『伝言 user02 来週の金曜日の打ち合わせは中止になりました』
ここで、“伝言”は動作指示単語,“user02”は相手先利用者のニックネーム,“来週の金曜日の打ち合わせは中止になりました”は伝言メッセージの内容である。
【0176】
このメッセージを検出した疑似クライアント3は、相手のニックネーム及び伝言メッセージの内容を、メッセージテーブル13に登録する(S0403)。
【0177】
その後、この相手先利用者が何れかのチャンネルに接続すると、疑似クライアント3は、その利用者からのJOINメッセージを検出することによって、その利用者宛の伝言メッセージをメッセージテーブル13から探し出し、その利用者宛の伝言メッセージがある旨を、例えば以下のような形式で通知する(S0013)。
『伝言があるんだわん>user02 (『伝言みせて』でみれるんだわん)』
【0178】
但し、このような通知を行った後、所定時間(例えば3分間)以内において、当該相手先利用者が別のチャンネルに対して接続した場合には、伝言メッセージがある旨は通知されず(S0012)、所定時間を経過した後に他のチャンネルに接続した場合に限って、再度の通知がなされる(S0013)。
【0179】
なお、伝言メッセージがある旨は、相手先利用者が何れかのチャンネルに接続した後においても、通知される。即ち、相手先利用者が何れかの宛先を付したメッセージを送信すると、疑似クライアント3は、そのメッセージを検出することによって、その利用者宛の伝言メッセージをメッセージテーブル13から探し出し、その利用者宛の伝言メッセージがある旨を通知する(S0009)。但し、その利用者に対して過去所定時間(例えば3分)内に通知を行っていた場合には、疑似クライアント3は通知を行わず(S0008)、所定時間を経過した後にメッセージを検出した場合に限って、通知を行う。従って、相手先がチャンネルに接続しているにも拘わらず発言者がそれに気付かずに伝言メッセージの依頼を行った場合や、相手先が接続時における通知を無視してしまった場合においても、伝言メッセージがある旨が、確実に相手先利用者に通知される。
【0180】
さらに、各利用者は、自己宛の伝言メッセージがあるか否かを、任意に、疑似クライアント3に対して問い合わせることができる。この場合、問い合わせを行う利用者は、下記形式のメッセージ本文に、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『伝言ある?』
【0181】
このメッセージを検出した疑似クライアント3は、このメッセージの発言者宛の伝言メッセージをメッセージテーブル13から探し出し、その発言者宛の伝言メッセージがある旨を、例えば以下のような形式で通知する(S0503)。
『1件のメッセージがあるんだわん』
【0182】
これに対して、発言者宛の伝言メッセージがない場合には、疑似クライアント3は、例えば以下のような形式で通知する(S0504)。
『ないんだわん』
【0183】
以上のようにして自己宛の伝言メッセージがある旨を通知された相手先利用者は、任意に、自己宛の伝言メッセージの送信を求めることができる。この場合、その利用者は、以下の形式のメッセージ本文に、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『伝言みせて』
【0184】
このメッセージを検出した疑似クライアント3は、このメッセージの発言者宛の伝言メッセージをメッセージテーブル13から探し出し、探し出した全ての伝言メッセージを、例えば以下の形式で、依頼者名とともに発言者宛に送信する(S0603)。
『user01(受信日時):来週の金曜日の打ち合わせは中止になりました』
ここで、“user01”は、伝言メッセージの依頼者のニックネームを示す。
【0185】
続いて、疑似クライアント3は、伝言メッセージを送信中である旨を、例えば以下の形式で依頼者に対して通知する(S0604)。
『user02さんが伝言を読んでるんだわん』
“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【0186】
続いて、疑似クライアント3は、送信完了した全メッセージをメッセージテーブル13から削除する(S0605)。
【0187】
なお、依頼者が疑似クライアント3に対して伝言メッセージの依頼をした後にチャンネルに対する接続を切断してしまった場合には、依頼者は、伝言メッセージが送信中である旨の上述した通知を読むことができない。そこで、本実施形態においては、伝言メッセージの依頼をした利用者が任意に伝言メッセージが相手先へ通知されたか否かを問い合わせできる手段が、用意されている。具体的には、伝言メッセージの依頼をした利用者は、以下の形式のメッセージ本文に、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『伝言どうかな?』
【0188】
このメッセージを検出した疑似クライアント3は、この利用者によって過去に依頼された伝言メッセージのうちメッセージテーブル13内に残っている(即ち、未だ相手先利用者に送信されていない)ものの全てを、例えば以下の形式で依頼元利用者に提示する(S0703)。
『user02(受信日時):来週の金曜日の打ち合わせは中止になりました見ていないのがあるんだわん』
ここで、“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【0189】
なお、依頼者が疑似クライアント3に対して伝言メッセージの依頼をした後に伝言を取り消すべき事情が発生した場合には、依頼者は、その伝言メッセージを取り消すことができる。その場合、依頼者は、以下の形式のメッセージ本文に、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『伝言 user02 消して』
ここで、“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【0190】
このメッセージを検出した疑似クライアント3は、この発言者によって過去に依頼された伝言メッセージのうちメッセージテーブル13内に残っている(即ち、未だ相手先利用者に送信されていない)ものの全てを、例えば以下の形式で発言者に提示した後に(S0406)、それらの伝言メッセージをメッセージテーブル13から削除する(S0407)。
『user02(受信日時):来週の金曜日の打ち合わせは中止になりました消したんだわん』
ここで、“user02”は、伝言メッセージの相手先利用者のニックネームを示す。
【0191】
〔指定伝言〕
例えば誕生日のメッセージや季節のあいさつ等は、伝言の依頼後直ちに相手先利用者へ通知されるのではなく、指定された日時に通知されることが求められる。そこで、本実施形態においては、相手先へ通知される日時を指定して伝言メッセージを預ける手段が、用意されている。具体的には、通知日時の指定を付して伝言メッセージを依頼する利用者は、下記の形式のメッセージ本文に、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『指定伝言 user03 2000/02/03 10:00 誕生日おめでとう』
ここで、“指定伝言”は動作指示単語,“user03”は相手先利用者のニックネーム,“2000/02/03”は指定された年月日,“10:00”は指定された時刻,“誕生日おめでとう”は伝言メッセージの内容である。
【0192】
このメッセージを検出した疑似クライアント3は、指定された年月日及び時刻が現在日時以前であれば、上述した通常の伝言メッセージと同じ扱いを行うが(S0805)、指定された年月日及び時刻が現在日時よりも先であれば、相手先利用者のニックネーム,指定日時(指定された年月日及び時刻)及び伝言メッセージの内容を、日時指定メッセージテーブル14に登録する(S0803)。
【0193】
その後、疑似クライアント3は、所定周期(例えば、1分)がタイムアップする毎に、日時指定メッセージテーブル14に登録された指定日時を現在日時が過ぎたかどうかを調べ(S0022)、現在日時が指定日時を越えた場合には、その指定日時を受信日時とした上で、その指定日時に対応した伝言メッセージを、メッセージテーブル13へ移す(S0024)。以後、この伝言メッセージは、指定日時に依頼された通常の伝言メッセージとして、上述したのと同様に取り扱われる。従って、相手先利用者は、その伝言メッセージを、依頼者が指定日時に依頼したものと認識する。
【0194】
〔連絡〕
例えば、何れのチャンネルにも接続していない利用者に対して緊急に連絡したい事情がある場合には、通常の伝言メッセージのように、その利用者が何れかのチャンネルに接続するのを待ってその伝言メッセージを通知するのでは、常に確実にメッセージが通知されるという保証がない。そのため、本実施例においては、そのような緊急なメッセージを、電子メールで直接その相手方利用者にメッセージを通知したり、携帯電話やポケットベルのようにIPアドレスを有する携帯端末へメッセージを通知したり、FAXへメッセージを送信する手段が、用意されている。
【0195】
その前提として、相手方利用者へ連絡するためのメディア(伝達方法種別)及び連絡先アドレスが、連絡先登録テーブル15に登録されている必要がある。そのためには、何れかの利用者が、下記の形式のメッセージ本文を、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信しておかなければならない。
『user04 の連絡先は email 09012345678@email.phone.co.jp』
ここで、“user04”は連絡先が登録される利用者のニックネーム,“email”は伝達方法種別(電子メール),“09012345678@email.phone.co.jp”は連絡先アドレス(携帯電話の電子メールアドレス)である。
【0196】
このメッセージを検出した疑似クライアント3は、メッセージ中のニックネーム,伝達方法種別及び連絡先アドレスを対応付けて、連絡先登録テーブル15に登録する(S0902)。
【0197】
このようにして伝達方法種別及び連絡先アドレスが連絡先登録テーブル15に登録されている利用者に対する連絡を依頼する利用者は、下記の形式のメッセージ本文を、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『連絡 user04 至急私の自宅に電話ください』
ここで、“連絡”は動作指示単語,“user04”は連絡相手先のニックネーム,“至急私の自宅に電話ください”は伝達対象メッセージである。
【0198】
このメッセージを検出した疑似クライアント3は、連絡先登録テーブル15を検索することによって、このニックネームに対応する伝達方法種別及び連絡先アドレスを読み出す(S1001)。そして、読み出した伝達方法種別“email”に対応したバックエンドサーバ(メールサーバ)に対して、連絡先アドレスに向けて伝達対象メッセージを伝達することを依頼する(S1003〜S1005)。その結果、このバックエンドサーバ(メールサーバ)によって、伝達対象メッセージが、確実に連絡相手先へ伝達される。
【0199】
〔利用者の接続状況調査〕
上述した伝言や連絡は、相手先がチャンネルに対して現に接続しているのであれば、通常のメッセージ送信を行えば事足りる。従って、これら伝言や連絡の依頼をする前に、依頼を行おうとする利用者は、相手先がチャンネルに接続しているか否か、若しくは、相手方がチャットサーバ1に接続しているか否かを、知らなければならない。しかしなら、チャットシステムにおいては、各利用者は、自らが接続しているチャットサーバ1のチャンネルに対して誰が現に接続しているのかについての正確な情報を、持たされていない。そのため、本実施例においては、各利用者の接続情報を各利用者が疑似クライアント3に対して問い合わせるための手段が、二通り用意されている。
【0200】
そのうちの一つは、正確性は多少劣るが疑似クライアント3が単独で処理する故に迅速に解答がなされるものである。疑似クライアント3は、この解答を行うために、常時、各チャンネルへ送信された全ての利用者からのメッセージを監視して、各チャンネルにおいて各利用者から送信された最後(最新)のメッセージの送信時刻(前回の発言時刻),及び、そのメッセージから抽出された特定キーワード(各利用者がチャンネルとの接続を切断することを示唆する言葉)を、チャンネル管理テーブル12に記録している(S0111)。そして、自らが接続しているチャンネルに対して特定の他の利用者が現に接続しているか否かを問い合わせようとする利用者は、下記の形式のメッセージ本文を、疑似クライアント3のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『user05 いる?』
ここで、“user05”は、問い合わせ対象である他の利用者のニックネームである。
【0201】
このメッセージを検出した疑似クライアント3は、チャンネル管理テーブル12を検索することによって、そのチャンネルにその利用者がいるかどうかを判定する(S1101)。具体的には、チャンネル管理テーブル12においてその利用者が最後にした発言中の特定キーワードが登録されている場合には、疑似クライアント3は、例えば下記形式の解答を行う(S1103)。
『帰った可能性があるわん(10:00 ばいばい)』
ここで、“10:00”は前回の発言時刻であり、“ばいばい”は前回の発言中の特定キーワードである。
【0202】
これに対して、特定キーワードが登録されていない場合には、疑似クライアント3は、例えば下記形式の解答を行う(S1104)。
『いるわん』
【0203】
各利用者の接続情報を各利用者が疑似クライアント3に対して問い合わせるための手段の他の一つは、疑似クライアント3がチャットサーバ1と連携することによって正確な解答を行うものである。チャットサーバ1は、この解答を行うために、各チャンネルに現に接続しているクライアント2の情報を、常時管理している。そして、特定の他の利用者がチャットサーバ1の何れかのチャンネルに接続しているのか否かを問い合わせようとする利用者は、下記の形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『user06 どこにいる?』
ここで、“user06”は、問い合わせ対象である他の利用者のニックネームである。
【0204】
このメッセージを検出した疑似クライアント3は、チャットサーバ1に対して、その利用者がどのチャンネルに接続中であるかの調査を、whoisコマンド等を用いて依頼する(S1201〜S1203)。この依頼を受けたチャットサーバ1は、その利用者が現に接続中の全チャンネルの特定情報,若しくは、どのチャンネルにも接続していない旨を解答する。この解答を受けた疑似クライアント3は、何れかのチャンネルにその利用者が現に接続中であれば、下記形式の解答を行う(S1206)。
『#patent,#planning にいるだわん』
ここで、“#patent”,“#planning”は、夫々、チャンネルの名称である。
【0205】
〔通知〕
例えば、チャットサーバ1のシステム管理者が、このチャットサーバ1の各チャンネルに接続している全利用者に対して管理上の通知を行う場合には、各チャンネル毎に、同じメッセージを送信しなければならない。そこで、本実施形態においては、疑似クライアント3に対して1回メッセージを送信するだけで、そのメッセージが全チャンネルへ転送される手段が、用意されている。具体的には、このような通知を行おうとする利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『通知 メンテナンスのため間もなく抜けます』
ここで、“通知”は動作指示単語であり、“メンテナンスのため間もなく抜けます”は、伝言メッセージである。
【0206】
このメッセージを検出した疑似クライアント3は、チャンネル管理テーブル12を参照して、自らが現在接続している全てのチャンネルに対して、伝言メッセージ,依頼者名及び依頼時刻を送信する(S1301)。これにより、各チャンネルに接続している全ての利用者が、その通知を読むことができる。
【0207】
〔辞書検索〕
本実施形態においては、チャット中に疑似クライアント3に対して辞書検索を依頼する発言をすれば、疑似クライアント3がバックエンドサーバである辞書サーバに対する検索を代行するので、別段の検索ツールがなくても辞書検索を行うことができる。この場合、辞書検索を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『dict -t sample』
ここで、“dict”は辞書機能を呼び出すための動作指示単語であり、“-t”は対象文字の翻訳文を検索するための指定であり、“sample”は辞書対象文字である。
【0208】
このメッセージを検出した疑似クライアント3は、文法解析により、“sample”という単語の翻訳依頼であると、判断する(S1401,S1402)。そして、予めシステムに登録しておいたバックエンドサーバ4である辞書サーバに対して、ネットワークインターフェース又はAPIを通じて問い合わせを行い(S1403〜S1405)、その応答結果を、例えば下記形式で、会話中のクライアントからのメッセージとして依頼者宛へ応答する(S1408)。
『[sample] sample.n(全体・種類を代表する)見本(全体・種類を代表する)標本
,見本,標本:サンプル,試供品;
[sample] sample.v見本で試す;標本抽出をする;経験する,試す;
[sample] sample.adj見本になる
以上、3項目(11件)あったんだわん』
【0209】
〔ホームページ検索〕
本実施形態においては、チャット中に疑似クライアント3に対してホームページ検索を依頼する発言をすれば、疑似クライアント3がバックエンドサーバであるポータルサイトに対する検索を代行するので、別途ブラウザを立ち上げなくてもホームページ検索を行うことができる。この場合、ホームページ検索を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『find search チャットシステム』
ここで、“find”は検索機能を呼び出すための動作指示単語であり、“seach”はポータルサイトのサーバ名であり、“チャットシステム”は検索対象文字である。
【0210】
このメッセージを検出した疑似クライアント3は、文法解析により、“チャットシステム”というキーワードを“search”によって検索することの依頼であると、判断する(S1501〜S1503)。そして、予めシステムに登録しておいたバックエンドサーバ4である“search”に対して、ネットワークインターフェース又はAPIを通じて問い合わせを行い(S1504,S1505)、その応答結果を連携しているWebサーバに書き込み、そのページのURL情報及び情報件数を、例えば下記形式で、依頼者宛に応答する(S1506〜S1510,S1512)。
『http://www.pochi.server.ne.jp/pochi/sample/1.htmlに結果をまとめたんだわん。123件あったんだわん』
【0211】
なお、バックエンドサーバからの応答結果内に1件も情報が含まれていない場合には、疑似クライアント3は、得られた情報の件数が0件である旨のみを、例えば下記形式で、依頼者宛に応答する(S1511,S1512)。
『0件あったんだわん』
【0212】
〔個人情報検索〕
本実施形態においては、チャット中に疑似クライアント3に対して個人情報検索を依頼する発言をすれば、疑似クライアント3がバックエンドサーバである個人情報管理サーバに対する検索を代行するので、別途検索ツールを立ち上げなくても個人情報検索を行うことができる。この場合、個人情報検索を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『find ldap mail=tyamada@bld-z.pochi.co.jp』
ここで、“find”は検索機能を呼び出すための動作指示単語であり、“ldap”は検索サーバの名称であり、“mail=tyamada@bld-z.pochi.co.jp”は検索条件(電子メールアドレスが“tyamada@bld-z.pochi.co.jp”であること)である。
【0213】
このメッセージを検出した疑似クライアント3は、文法解析により、メールアドレスが“tyamada@bld-z.pochi.co.jp”である人物の情報検索を“ldap”サーバによって検索することの依頼であると、判断する(S1501〜S1503)。そして、予めシステムに登録しておいたバックエンドサーバ4である“ldap”サーバに対して、ネットワークインターフェース又はAPIを通じて問い合わせを行い(S1517,S1518)、その応答結果の全項目のうち依頼者のクライアント2で表示可能な範囲の項目を、例えば下記形式で、依頼者宛に応答する(S1521,S1523)。
『会社名=POCHI Corporation
所蔵 =ソフトウェア事業部開発部
名前 =山田 太郎
メール=tyamada@bld-z.pochi.co.jp
事業所=ビルディング−Z
電話 :内線=1234-5678,外線=03-9876-5432
FAX:内線=1234-6789,外線=03-9876-4321
以上だわん』
【0214】
なお、上記検索条件は、その一部をワイルドカード(*)に置き換えることができる。その場合には、検索条件は、ワイルドカード以外の部分を共通とする全てのキーワードの論理和と等価になる。従って、検索サーバからの応答結果の項目数は莫大なものとなるので、疑似クライアント3は、このようなあいまい検索の場合に限っては、検索サーバからの応答結果の全項目のうち予め設定された出力対象項目についてのみ、依頼者宛に応答する(S1522,S1523)。例えば、検索依頼のメッセージが以下のようなものだったとする。
『find ldap mail=suzuki@*』
【0215】
この場合に依頼者宛に応答される文字列は、例えば、以下のようになる。
『鈴木 太郎 事業所A 03-5678-1234 suzuki@bld-a.pochi.co.jp
鈴木 次郎 事業所B 044-432-9876 suzuki@bld-b.pochi.co.jp
鈴木 花子 事業所C 045-478-1234 suzuki@bld-c.pochi.co.jp
以上、3件あったんだわん』
【0216】
また、上述したように連絡先登録テーブル15にそのニックネーム及び連絡先アドレスが登録されている利用者に関しては、検索条件としてそのニックネームが指定されていても、疑似クライアント3は、連絡先登録テーブル15を参照することによってそのニックネームを連絡先アドレスに変換して、検索サーバに問い合わせをすることができる(S1514〜S1516)。例えば、ニックネーム“user07”に対して連絡先アドレス“tyamada@bld-z.pochi.co.jp”が連絡先登録テーブル15に登録されている場合には、以下のような検索依頼のメッセージに対しても、上述したように応答することができる。
『find ldap user07』
【0217】
〔会議室予約〕
本実施形態においては、チャット中に疑似クライアント3に対して会議室予約又は予約状況確認を依頼する発言をすれば、疑似クライアント3がバックエンドサーバである事業所毎のカレンダーサーバに対して、そのカレンダーサーバによって管理されている会議室等の共用設備に対する予約申込又は予約状況参照を代行するので、別段のツールを準備しなくても済む。
【0218】
具体的には、会議室予約を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『会議室予約 事業所A 1152会議室 2000/02/03 13:00-18:00 特許連絡会』
ここで、“会議室予約”は情報検索機能呼び出しのための動作指示単語であり、“事業所A”はカレンダーサーバの指定であり、“1152会議室”は予約対象会議室であり、“2000/02/03”は予約対象年月日であり、“13:00-18:00”は予約対象時間帯であり、“特許連絡会”は使用目的である。
【0219】
このメッセージを検出した疑似クライアント3は、文法解析により、“事業所A”のカレンダーサーバに対して“1152会議室”を“2000/02/03”の“13:00-18:00”に“特許連絡会”のために使用することを予約する依頼であると、判断する(S1601)。そして、バックエンドサーバ4である事業所Aのカレンダーサーバに対して、ネットワークインターフェース又はAPIを通じて問い合わせを行い(S1602〜S1604)、その応答結果を、例えば下記形式で、依頼者宛に応答する(S1605〜S1607)。
『カレンダーサーバ:事業所A
予約場所:1152会議室
予約日時:2000/02/03 13:00-18:00
予約メモ:特許連絡会
以上を予約したわん』
【0220】
また、会議室の予約状況参照を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『会議室参照 事業所A 1152会議室 2000/02/03 13:00-18:00』
ここで、“会議室参照”は情報検索機能呼び出しのための動作指示単語であり、それ以外の文節の内容は、会議室予約の場合と同じである。
【0221】
このメッセージを検出した疑似クライアント3は、文法解析により、“事業所A”のカレンダーサーバに対して“1152会議室”の“2000/02/03”の“13:00-18:00”における予約状況を確認する依頼であると、判断する(S1701)。そして、バックエンドサーバ4である事業所Aのカレンダーサーバに対して、ネットワークインターフェース又はAPIを通じて問い合わせを行い(S1702〜S1704)、その応答結果を、例えば下記形式で、依頼者宛に応答する(S1705〜S1707)。
『カレンダーサーバ:事業所A
予約者:山田 太郎
2000/02/03 13:00-18:00:特許連絡会
以上だわん』
【0222】
なお、上記予約状況確認に対してカレンダーサーバが未予約である旨を応答してきた場合には、その応答結果は、例えば下記形式で、依頼者宛に応答される。
『予約ははいってないんだわん』
【0223】
〔予定参照〕
本実施形態においては、チャット中に疑似クライアント3に対して特定個人の予定参照を依頼する発言をすれば、疑似クライアント3がバックエンドサーバである事業所毎のカレンダーサーバに対して、そのカレンダーサーバによって管理されている当該特定個人のスケジュールの参照を代行するので、別段のツールを準備しなくても済む。
【0224】
具体的には、特定個人の予定参照を依頼しようとする利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『予定参照 事業所A 社員B 2000/02/03 13:00-18:00』
ここで、“予定参照”は情報検索機能呼び出しのための動作指示単語であり、“事業所A”はカレンダーサーバの指定であり、“社員B”は予定参照対象者の本名であり、“2000/02/03”は予定参照対象年月日であり、“13:00-18:00”は予定参照対象時間帯である。
【0225】
このメッセージを検出した疑似クライアント3は、文法解析により、“事業所A”のカレンダーサーバに対して“社員B”の“2000/02/03”の“13:00-18:00”における予定参照依頼であると、判断する(S1801)。そして、バックエンドサーバ4である事業所Aのカレンダーサーバに対して、ネットワークインターフェース又はAPIを通じて問い合わせを行い(S1806〜S1808)、その応答結果を、例えば下記形式で、依頼者宛に応答する(S1809〜S1811)。
『カレンダーサーバ:事業所A
2000/02/03 13:00-18:00:特許連絡会
以上だわん』
【0226】
なお、予定参照を依頼する利用者は、予定参照対象者の本名及び担当カレンダーサーバの設置事業所名をその対象者のニックネームに関連付けて予め予定参照支援テーブル16に登録しておけば、上記予定参照依頼のメッセージにおいて本名(社員B)及びカレンダーサーバの指定(事業所A)の代わりにニックネーム(user08)を書き込めば足りるようになる。具体的には、依頼者は、予め、下記形式の二つメッセージ本文を、夫々、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『user08 の名前は 社員B』
『user08 のカレンダーサーバは 事業所A』
【0227】
これらのメッセージを検出した疑似クライアント3は、“社員B”,“事業所A”及び“user08”を、互いに関連付けて予定参照支援テーブル16に登録する(S1902,S2002)。以後、この社員Bについての予定参照を依頼する利用者は、上記形式の代わりに、下記形式のメッセージ本文を用いることが可能になる。
『予定参照 user08 2000/02/03 13:00-18:00』
【0228】
このメッセージを検出した疑似クライアント3は、予定参照支援テーブル16を参照して、“user08”を“事業所A”“社員B”と置き換える(S1803〜S1805)。そして、上述したのと同様の処理を行って、同じ応答結果を依頼者宛に応答する(S1806〜S1811)。
【0229】
また、上述したように予定参照支援テーブル16に自らのニックネーム“user08”,本名“社員B”及び担当カレンダーサーバの設置事業所名“事業所A”が登録されている利用者が何れかのチャンネルに接続すると、その利用者からのJOINメッセージを受信した疑似クライアント装置3は、予定参照支援テーブル16を参照することによってその利用者のニックネーム“user08”に対応する本名及び担当カレンダーサーバの設置事業所名が夫々“社員B”,“事業所A”であると認識する(S0014)。すると、疑似クライアント3は、バックエンドサーバ4である事業所Aのカレンダーサーバに対して、ネットワークインターフェース又はAPIを通じて、社員Bの以後24時間の予定を問い合わせ(S0016〜S0018)、その応答結果を、例えば下記形式で、依頼者宛に応答する(S0019〜S0021)。
『=user08= 本日の予定:
=user08= 13:00-18:00:特許連絡会
=user08= 以上だわん』
【0230】
〔アラーム〕
上述した指定伝言は、主に、依頼者以外の他の利用者を宛先とするものであり、相手先利用者が新規接続するか何らかのメッセージ送信を行わない限りその相手先利用者によって読まれることのないものであったが、指定時間になったら直ちに依頼者自身宛にメッセージが送信されれば、依頼者は、このメッセージをアラームとして利用することができる。そこで、本実施形態においては、そのようなアラームの手段が、用意されている。具体的には、アラーム設定を依頼する利用者は、下記形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として付して、チャンネルへ送信する。
『アラーム 17:00 歯医者に行く時間』
ここで、“アラーム”は時間経過通知のための動作指示単語であり、“17:00”はアラームを求める指定時刻であり、“歯医者に行く時間”は通知メッセージである。
【0231】
このメッセージを検出した疑似クライアント3は、指定時刻(17:00)及び通知メッセージ(歯医者に行く時間)を依頼者のニックネーム(user09)に関連付けてアラーム管理テーブル17に登録する(S2104)。
【0232】
なお、依頼者は、アラーム設定を依頼するメッセージ本文において、指定時刻の代わりに、現在から何分経過後にアラームを求めるかを指定する指定時間を書き込むこともできる。この場合のメッセージ本文の形式は、以下の通りとなる。
『アラーム 60歯医者に行く時間』
ここで、“60”が指定時間である。
【0233】
このメッセージを検出した疑似クライアント3は、指定時間“60”によって指定された60分を現在時刻に加算することによって、指定時刻に変換する(S2103)。その後、上述したのと同様にして、アラーム管理テーブル17に対する登録を行う(S2104)。
【0234】
その後、疑似クライアント3は、所定周期(例えば、1分)がタイムアップする毎に、アラーム管理テーブル17に登録された指定時刻(17:00)に現在日時が達したか否かを調べ(S0025)、現在日時が指定時刻(17:00)になった場合には、その指定時刻(17:00)に対応した通知メッセージ(歯医者に行く時間)を、例えば下記形式で、それに対応したニックネーム(user09)の利用者宛に通知するとともに(S0027)、アラーム管理テーブル17上から削除する(S0028)。
『歯医者に行く時間 なんだわん>user09』
【0235】
〔キーワード対応処理〕
本実施形態においては、予めキーワード群に応答文字列を対応付けておくことにより、チャット中でなされたこれらキーワード群を含む発言に対応した文字列を、疑似クライアント3の発言として、チャンネルへ送信することができる。
【0236】
具体的には、予め、何れかのチャンネルに接続している何れかの利用者が、キーワード群と文字列とを対応させる「メモ」の登録を依頼するために、下記の形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として、チャンネルへ送信する。
『メモ user10,ホームページ http://www.foo.bar.ne.jp/home/user10』
ここで、“メモ”は情報登録のための動作指定単語であり、カンマで区切られて並べられた“user10”及び“ホームページ”は登録対象キーワード群であり、スペースを置いて続く“http://www.foo.bar.ne.jp/home/user10”はキーワード群に対応付けられる文字列である。
【0237】
このメッセージを検出した疑似クライアント3は、文法解析により、“user10”及び“ホームページ”というキーワード群と文字列“http://www.foo.bar.ne.jp/home/user10”とを対応付けて、キーワード登録テーブル18に登録する(S2201,S2202)。
【0238】
一方、疑似クライアント3は、常時、各チャンネルに各利用者から送信された全ての発言(メッセージ)を監視しており(S0107)、キーワード登録テーブル18に登録されている何れかのキーワード群を全て含む発言(メッセージ)を検出すると、キーワード登録テーブル18においてそのキーワード群に対応付けられて登録されている文字列を、そのチャンネルへ送信する(S0309,S0310)。上記「メモ」の登録後、例えば、以下のような発言(メッセージ)が検出されたとする。
『user10 さんのホームページアドレスって、何ですか?』
【0239】
すると、疑似クライアント3は、キーワード登録テーブル18に登録されているキーワード群“user10”,“ホームページ”がこの発言(メッセージ)中に含まれている事を検出し、そのキーワード群に対応付けられてキーワード登録テーブル18に登録されている文字列“http://www.foo.bar.ne.jp/home/user10”に従って、以下の形式の応答を行う(S0305)。
『http://www.foo.bar.ne.jp/home/user10だわん』
【0240】
なお、キーワード群と文字列とを対応させる「メモ」の登録を依頼する利用者は、キーワード群と文字列との対応を特定のチャンネルでのみ有効とするように指定することができる。この場合、その利用者は、下記の形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として、チャンネルへ送信する。
『メモ user10,ホームページ,#sample http://www.foo.bar.ne.jp/home/user10』
ここで、カンマに続く“#sample”はチャンネルの指定である。
【0241】
このメッセージを検出した疑似クライアント3は、#から始まる文節である“#sample”を、チャンネル指定と認識して、キーワード群及び文字列に対応付けてキーワード登録テーブル18に登録する(S2202)。
【0242】
以後、チャンネル名が“#sample”であるチャンネル以外において、“#sample”に対応したキーワード群“user10”,“ホームページ”を含む発言(メッセージ)がなされても、疑似クライアント3は、その発言(メッセージ)を無視する(S0303)。そして、チャンネル名が“#sample”であるチャンネルにおいて“#sample”に対応したキーワード群“user10”,“ホームページ”を含む発言(メッセージ)がなされた場合のみ、そのキーワード群に対応付けられてキーワード登録テーブル18に登録されている文字列“http://www.foo.bar.ne.jp/home/user10”を応答する(S0305)。
【0243】
ところで、各利用者は、以上のようにしてキーワード登録テーブル18に登録された全ての「メモ」の内容を確認することができる。この場合には、「メモ」の内容の確認を求める利用者は、下記の形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として、チャンネルへ送信する。
『メモ一覧』
ここで、“メモ一覧”は情報参照のための動作指示単語である。
【0244】
このメッセージを検出した疑似クライアント3は、キーワード登録テーブル18に登録されている全ての情報をhtmlファイルに変換し、環境設定により定められた指定のWebサーバに書き込むと同時に、対応するURLを生成する。そして、そのURLを、例えば下記形式で、依頼者宛に通知する(S2302,S2304,S2305)。
『http://www.pochi.server.ne.jp/pochi/sample/2.htmlにメモ一覧をまとめたんだわん。23件あったんだわん』
【0245】
なお、この「メモ」の内容の確認を求める際には、何れかのチャンネルについてのみ有効な「メモ」に限ってその内容を確認することも可能である。この場合、確認を求める利用者は、下記の形式のメッセージ本文を、疑似クライアント2のニックネーム(pochi)を宛先として、チャンネルへ送信する。
『メモ一覧 #sample』
ここで“#sample”は、チャンネルの指定である。
【0246】
このメッセージを検出した疑似クライアント3は、“#sample”に関連付けられてキーワード登録テーブル18に登録されている情報のみをhtmlファイルに変換し、環境設定により定められた指定のWebサーバに書き込むと同時に、対応するURLを生成する。そして、そのURLを、例えば下記形式で、依頼者宛に通知する(S2303,S2304,S2305)。
『http://www.pochi.server.ne.jp/pochi/sample/3.htmlに#sampleのメモ一覧をまとめたんだわん。11件あったんだわん』
【0247】
以上の説明は、キーワード群が発言中に検出された時にそのまま出力される文字列(単純テキスト)をキーワード登録テーブル18に登録することの説明であるが、単純テキストではなく、特殊文字列($@,$%,$=)を含む文字列をキーワード登録テーブル18に登録することも可能である。
【0248】
具体的には、以下の内容を有する“dice.txt”なるファイル名の文書ファイルがあるとする。
『1




6』
【0249】
この場合、各利用者は、特殊文字列“$@”に続けることによって、このファイル名“dice.txt”を、キーワード登録テーブル18に文字列として登録することができる。即ち、登録を求める利用者は、下記の形式のメッセージ本文に疑似クライアント2のニックネーム(pochi)を宛先としてチャンネルへ送信する。
『メモ さいころ,$@disc.txt』
【0250】
その後、疑似クライアント3は、キーワード群“さいころ”を含むメッセージを検出すると、特殊文字列“$@”に続くファイル名“disc.txt”が示すファイルから任意の1行を読み出して、応答する(S0309,S0310)。この場合、メッセージを送信した利用者と疑似クライアント3との会話は、例えば、以下の様になる。
『<user11>さいころ
<pochi> 4
<user11>さいころ
<pochi> 2』
【0251】
また、以下の内容を有する“news.txt”なるファイル名の文書ファイルがあるとする。
『news1-1
news1-2
news1-3
news2-1
news2-2』
【0252】
この場合、各利用者は、特殊文字列“$%”に続けることによって、このファイル名“news.txt”を、キーワード登録テーブル18に文字列として登録することができる。即ち、登録を求める利用者は、下記の形式のメッセージ本文に疑似クライアント2のニックネーム(pochi)を宛先としてチャンネルへ送信する。
『メモ ニュース,$%news.txt』
【0253】
その後、疑似クライアント3は、キーワード群“ニュース”を含むメッセージを検出すると、特殊文字列“$%”に続くファイル名“news.txt”が示すファイルからデリミタ(例えば、空行)で区切られた任意の1文を読み出して、応答する(S0309,S0310)。この場合、メッセージを送信した利用者と疑似クライアント3との会話は、例えば、以下の様になる。
『<user12>ニュース
<pochi> news2-1
<pochi> news2-2
<user12>ニュース
<pochi> news1-1
<pochi> news1-2
<pochi> news1-3』
【0254】
また、各利用者は、特殊文字列“$=”に続けることによって、指示対象処理(S0308)を求めるメッセージを、キーワード登録テーブル18に文字列として登録することができる。即ち、登録を求める利用者は、下記の形式のメッセージ本文に疑似クライアント2のニックネーム(pochi)を宛先としてチャンネルへ送信する。
『メモ 利用者A,いますか? $=user13いる?』
ここで、“user13いる?”は図24に示す指示対象処理を求めるためのメッセージ本文の内容である。
【0255】
その後、疑似クライアント3は、キーワード群“利用者A”,“いますか?”を含むメッセージを検出すると、特殊文字列“$=”に続くメッセージ本文に基づいて、その動作指示単語又は指定文節(いる?)に対応した指示対象処理(図24)を実行する(S0308)。
【0256】
以上に説明した本実施形態によると、チャットサーバ1の各チャンネルに接続した利用者は、そのチャンネルに他のクライアント2が接続していなくても、所定の形式のメッセージをそのチャンネルへ送信すれば、そのメッセージの内容に従った処理を疑似クライアント3が実行するので、チャットに接続している時間を有効に活用することができる。また、チャンネルに複数の利用者が接続している場合においても、疑似クライアント3は、各利用者からの発言(メッセージ)の内容に応じて所定の処理を実行するので、各利用者は、チャットシステム以外の別段のツールを用いることなく会話中における指示によって、疑似クライアント3に様々な処理を実行させて、会話をサポートさせることができる。
【0257】
【発明の効果】
以上説明したように、本発明の疑似クライアント装置によれば、チャットサーバが提供する特定のチャンネルに対して接続してきた利用者のクライアント端末に対して別個のクライアントとして振る舞い、このクライアント端末から送信されたメッセージ内容に応じて、このクライアント端末との間で情報の授受を自動的に行うことができる。
【図面の簡単な説明】
【図1】 本発明の原理図
【図2】 本発明の実施の形態であるチャットシステムの全体構成を示すブロック図
【図3】 疑似クライアント装置の内部構成を示すブロック図
【図4】 チャンネル管理テーブルの構成を示す図
【図5】 メッセージテーブルの構成を示す図
【図6】 日時指定メッセージテーブルの構成を示す図
【図7】 連絡先登録テーブルの構成を示す図
【図8】 予定参照支援テーブルの構成を示す図
【図9】 アラーム管理テーブルの構成を示す図
【図10】 キーワード登録テーブルの構成を示す図
【図11】 疑似クライアントプログラムに従ってCPUが実行する処理のメインルーチンを示すフローチャート
【図12】 疑似クライアントプログラムに従ってCPUが実行する処理のメインルーチンを示すフローチャート
【図13】 疑似クライアントプログラムに従ってCPUが実行する処理のメインルーチンを示すフローチャート
【図14】 図11のS0005にて実行されるサブルーチンを示すフローチャート
【図15】 図14のS0105又は図16のS0308にて実行されるサブルーチンを示すフローチャート
【図16】 図14のS0108にて実行されるサブルーチンを示すフローチャート
【図17】 動作指示単語=「伝言」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図18】 動作指示単語=「伝言ある?」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図19】 動作指示単語=「伝言みせて」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図20】 動作指示単語=「伝言どうかな?」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図21】 動作指示単語=「指定伝言」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図22】 指定文節=「の連絡先は」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図23】 動作指示単語=「連絡」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図24】 指定文節=「いる?」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図25】 指定文節=「どこにいる?」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図26】 動作指示単語=「通知」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図27】 動作指示単語=「dict」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図28】 動作指示単語=「find」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図29】 動作指示単語=「find」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図30】 動作指示単語=「会議室予約」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図31】 動作指示単語=「会議室参照」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図32】 動作指示単語=「予定参照」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図33】 指定文節=「の名前は」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図34】 指定文節=「カレンダーサーバは」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図35】 動作指示単語=「アラーム」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図36】 動作指示単語=「メモ」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図37】 動作指示単語=「メモ一覧」の場合に図15のS0202にて実行されるサブルーチンを示すフローチャート
【図38】 チャットの概念の説明図
【符号の説明】
1 チャットサーバ
2 クライアント
3 疑似クライアント
4 バックエンドサーバ
11 疑似クライアントプログラム
12 チャンネル管理テーブル
13 メッセージテーブル
14 日時指定メッセージテーブル
15 連絡先登録テーブル
16 予定参照支援テーブル
17 アラーム管理テーブル
18 キーワード登録テーブル
31 CPU
32 RAM
33 ハードディスク

Claims (5)

  1. チャットサーバを介して他のクライアント装置とチャットを行う疑似クライアント装置であって、
    伝言メッセージ及びその宛先とを互いに対応付けて保持するメッセージテーブルと、
    前記他のクライアント装置から前記チャットサーバへ送信される発言の内容を監視する監視手段と、
    前記監視手段によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段と、
    前記識別手段によって所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ及びその宛先を、前記メッセージテーブルに登録し、前記識別手段によって他の所定の文章条件を満たすと識別された発言があった場合には、その発言を送信したクライアントの識別情報が宛先として対応付けられている伝言メッセージを発言として前記チャットサーバへ送信し、その伝言メッセージ及びその宛先を前記メッセージテーブルから削除する処理実行手段と
    を備えたことを特徴とする疑似クライアント装置。
  2. チャットサーバを介して他のクライアント装置とチャットを行う疑似クライアント装置であって、
    伝言メッセージ及びその宛先とを互いに対応付けて保持するメッセージテーブルと、
    前記他のクライアント装置から前記チャットサーバへ送信される発言の内容を監視する監視手段と、
    前記監視手段によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段と、
    前記識別手段によって所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ及びその宛先を、前記メッセージテーブルに登録し、前記メッセージテーブルに宛先として登録されているクライアントが前記チャットサーバに発言を送信した時に、前記メッセージテーブルに登録されている宛先に対して伝言メッセージが有る旨のメッセージ情報を、発言として前記チャットサーバへ送信する処理実行手段と
    を備えたことを特徴とする疑似クライアント装置。
  3. 前記処理実行手段は、前記識別手段によって更に他の所定の文章条件を満たすと識別された発言があった場合には、その発言を送信したクライアントが過去に送信した発言に含まれていた伝言メッセージのうち前記メッセージテーブルに現に登録されているものを、発言として前記チャットサーバへ送信する
    ことを特徴とする請求項記載の疑似クライアント装置。
  4. 前記処理実行手段は、前記識別手段によって更に他の所定の文章条件を満たすと識別された発言があった場合には、その発言を送信したクライアントが過去に送信した発言に含まれていた伝言メッセージを前記メッセージテーブルから削除する
    ことを特徴とする請求項記載の疑似クライアント装置。
  5. チャットサーバを介して他のクライアント装置とチャットを行う疑似クライアント装置であって、
    伝言メッセージ及びその宛先とを互いに対応付けて保持するメッセージテーブルと、
    伝言メッセージ,その宛先,及び指定日時を互いに対応付けて保持する日時指定メッセージテーブルと、
    前記他のクライアント装置から前記チャットサーバへ送信される発言の内容を監視する監視手段と、
    前記監視手段によって監視された発言の内容が所定の文章条件を満たしているか否かを識別する識別手段と、
    前記識別手段によって所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ及びその宛先を、前記メッセージテーブルに登録し、前記識別手段によって他の所定の文章条件を満たすと識別された発言があった場合には、その発言に含まれている伝言メッセージ,その宛先及び指定日時を前記日時指定メッセージテーブルに登録し、現在日時が前記指定日時に達した場合には、その指定日時に対応付けられて前記日時指定メッセージテーブルに登録されている前記伝言メッセージ及びその宛先を前記メッセージテーブルに移動する処理実行手段と
    を備えたことを特徴とする疑似クライアント装置。
JP28794199A 1999-10-08 1999-10-08 疑似クライアント装置、疑似クライアントプログラムを格納したコンピュータ可読媒体、及び、チャットシステム Expired - Fee Related JP4172886B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28794199A JP4172886B2 (ja) 1999-10-08 1999-10-08 疑似クライアント装置、疑似クライアントプログラムを格納したコンピュータ可読媒体、及び、チャットシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP28794199A JP4172886B2 (ja) 1999-10-08 1999-10-08 疑似クライアント装置、疑似クライアントプログラムを格納したコンピュータ可読媒体、及び、チャットシステム
US09/671,101 US7013326B1 (en) 1999-10-08 2000-09-27 Chat system, dummy client system for chat system, and computer readable medium storing dummy client program

Publications (2)

Publication Number Publication Date
JP2001109689A JP2001109689A (ja) 2001-04-20
JP4172886B2 true JP4172886B2 (ja) 2008-10-29

Family

ID=17723729

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28794199A Expired - Fee Related JP4172886B2 (ja) 1999-10-08 1999-10-08 疑似クライアント装置、疑似クライアントプログラムを格納したコンピュータ可読媒体、及び、チャットシステム

Country Status (2)

Country Link
US (1) US7013326B1 (ja)
JP (1) JP4172886B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000041080A1 (fr) * 1999-01-04 2000-07-13 Fujitsu Limited Procede et dispositif d'assistance vocale
KR100413921B1 (ko) * 2000-11-29 2004-01-07 백철화 팝이메일과 채팅의 동시 수행 방법
JP2002324188A (ja) * 2001-04-25 2002-11-08 Tsubasa System Co Ltd オンライン取引方法及びオンライン取引プログラム
JP2003099382A (ja) * 2001-09-20 2003-04-04 Sharp Corp コミュニケーションシステム及び情報処理プログラムを記録した記録媒体
US20030231338A1 (en) * 2002-05-31 2003-12-18 Tatsuyoshi Haga Network image forming apparatus system and a method of registering the image forming apparatus for use in a network
WO2003105015A1 (en) 2002-06-01 2003-12-18 Akonix Systems, Inc. Systems and methods for a protocol gateway
US7818565B2 (en) * 2002-06-10 2010-10-19 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US20080196099A1 (en) * 2002-06-10 2008-08-14 Akonix Systems, Inc. Systems and methods for detecting and blocking malicious content in instant messages
US7657616B1 (en) 2002-06-10 2010-02-02 Quest Software, Inc. Automatic discovery of users associated with screen names
US7707401B2 (en) * 2002-06-10 2010-04-27 Quest Software, Inc. Systems and methods for a protocol gateway
US7774832B2 (en) * 2002-06-10 2010-08-10 Quest Software, Inc. Systems and methods for implementing protocol enforcement rules
US7428590B2 (en) * 2002-06-10 2008-09-23 Akonix Systems, Inc. Systems and methods for reflecting messages associated with a target protocol within a network
US7225226B2 (en) 2002-09-27 2007-05-29 International Business Machines Corporation Chat messaging channel redirection
EP1639487A4 (en) * 2003-06-27 2008-06-18 Akonix Systems Inc Context sensitive transfer with active listening and active alerts
US7363295B2 (en) * 2004-04-19 2008-04-22 Yahoo! Inc. Techniques for inline searching in an instant messenger environment
WO2006047201A2 (en) * 2004-10-23 2006-05-04 Linspire, Inc. Deferred email message system, service and client
JP2006302146A (ja) * 2005-04-22 2006-11-02 Ricoh Co Ltd 情報管理システム、情報管理方法、プログラム及び記録媒体
US7756981B2 (en) 2005-11-03 2010-07-13 Quest Software, Inc. Systems and methods for remote rogue protocol enforcement
US7636779B2 (en) * 2006-04-28 2009-12-22 Yahoo! Inc. Contextual mobile local search based on social network vitality information
US7917154B2 (en) 2006-11-01 2011-03-29 Yahoo! Inc. Determining mobile content for a social network based on location and time
US8108501B2 (en) 2006-11-01 2012-01-31 Yahoo! Inc. Searching and route mapping based on a social network, location, and time
US8145708B2 (en) * 2006-11-10 2012-03-27 Microsoft Corporation On-line virtual robot (bot) security agent
US8161026B2 (en) * 2007-01-30 2012-04-17 Mckesson Information Solutions Holdings Limited Method, computer program product and apparatus for capturing inexact date information
US20100250592A1 (en) * 2009-03-31 2010-09-30 Paquet Vincent F Unifying Web And Phone Presence
US9641498B2 (en) * 2013-03-07 2017-05-02 Fiserv, Inc. Single sign-on processing for associated mobile applications
US9015328B2 (en) 2013-03-07 2015-04-21 Fiserv, Inc. Single sign-on processing for associated mobile applications
JP6573535B2 (ja) * 2015-11-17 2019-09-11 エヌ・ティ・ティ・コムウェア株式会社 情報処理装置、情報処理方法、及びプログラム
JP2018128843A (ja) 2017-02-08 2018-08-16 株式会社リコー 情報処理システム、端末装置、情報処理方法およびプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664126A (en) * 1992-07-24 1997-09-02 Kabushiki Kaisha Toshiba Human interface system for communicating networked users
US6021433A (en) * 1996-01-26 2000-02-01 Wireless Internet, Inc. System and method for transmission of data
JP3909914B2 (ja) 1996-06-28 2007-04-25 富士通株式会社 電子メール表示方法、情報通信システム、電子メールセンタ、チャットサーバ及び記録媒体
US5987503A (en) * 1996-06-28 1999-11-16 Fujitsu Limited System and method for displaying an electronic mail containing a keyword detected in a chat session message
US6282511B1 (en) * 1996-12-04 2001-08-28 At&T Voiced interface with hyperlinked information
US6038296A (en) * 1997-10-07 2000-03-14 Lucent Technologies Inc. Internet/intranet user interface to a multimedia messaging system
US6311182B1 (en) * 1997-11-17 2001-10-30 Genuity Inc. Voice activated web browser
JPH11184786A (ja) * 1997-12-19 1999-07-09 Fujitsu Ltd チャットシステム,チャットサーバ,クライアント及び記録媒体
JP3277875B2 (ja) * 1998-01-29 2002-04-22 ヤマハ株式会社 演奏装置、サーバ装置、演奏方法および演奏制御方法
US6393461B1 (en) * 1998-02-27 2002-05-21 Fujitsu Limited Communication management system for a chat system
US6212548B1 (en) * 1998-07-30 2001-04-03 At & T Corp System and method for multiple asynchronous text chat conversations
JP3685938B2 (ja) * 1998-12-18 2005-08-24 富士通株式会社 通信支援方法及び通信支援システム
JP2000276482A (ja) * 1999-03-25 2000-10-06 Matsushita Electric Ind Co Ltd 文書検索装置及び文書検索方法
US6332120B1 (en) * 1999-04-20 2001-12-18 Solana Technology Development Corporation Broadcast speech recognition system for keyword monitoring
US6519571B1 (en) * 1999-05-27 2003-02-11 Accenture Llp Dynamic customer profile management
US20020059098A1 (en) * 2000-11-16 2002-05-16 Shinichi Sazawa Method for managing an imaginary store, method for using the imaginary store, and recording medium in which an imaginary store managing program is stored

Also Published As

Publication number Publication date
US7013326B1 (en) 2006-03-14
JP2001109689A (ja) 2001-04-20

Similar Documents

Publication Publication Date Title
US10096320B1 (en) Acquiring information from sources responsive to naturally-spoken-speech commands provided by a voice-enabled device
US9990683B2 (en) Systems and methods for acquiring, accessing, and analyzing investigative information
US10489397B2 (en) Methods, systems, and products for searching interactive menu prompting systems
US9912628B2 (en) Computer, internet and telecommunications based network
JP2015201219A (ja) 文脈相関エンジン
US8671192B2 (en) Internet use monitoring system
US7685247B2 (en) System for publishing and converting messages from identified, authorized senders
US5946687A (en) Geo-enabled personal information manager
US6633867B1 (en) System and method for providing a session query within the context of a dynamic search result set
US8095551B2 (en) Annotating shared contacts with public descriptors
US6195657B1 (en) Software, method and apparatus for efficient categorization and recommendation of subjects according to multidimensional semantics
US8230034B2 (en) Automatic display of email distribution lists
US7765228B2 (en) Method and system for data collection for alert delivery
US6023722A (en) High-availability WWW computer server system with pull-based load balancing using a messaging and queuing unit in front of back-end servers
US6839745B1 (en) System and method for generating reports in a telecommunication system
US5974406A (en) Automated matching, scheduling, and notification system
US8510392B2 (en) Method and apparatus for automatic notification and response
US8224924B2 (en) Active email collector
US6925458B2 (en) System and method for providing an activity schedule of a public person over a network
US8073920B2 (en) Service authorizer
US7945621B2 (en) Methods and apparatuses for recording and viewing a collaboration session
US7092945B2 (en) Method and system for obtaining a user's personal address information
US5819267A (en) Know-how management apparatus, and method
US6546005B1 (en) Active user registry
US7725354B2 (en) Interface for generating business partners

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070213

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070515

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070713

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071116

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080729

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080812

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110822

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120822

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130822

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees