説明

メッセージ送受信システム、メッセージ送受信方法、メッセージ中継サーバ及びメッセージ送受信用プログラム

【課題】Webブラウザがキャッチアップ時にキャッシュに保存されているメッセージを取得することができるメッセージ送受信システムを提供することを目的とする。
【解決手段】ブラウザを用いたメッセージの送受信を中継するメッセージ中継サーバを備え、メッセージ中継サーバは、メッセージ取得用のリクエストに対するレスポンスとリクエストに含まれるURLとを対応づけて記憶するレスポンス記憶手段10と、新たなリクエストを受信すると、受信したリクエストに対応するレスポンスと対応づけられたURLをレスポンス記憶手段10から抽出するURL抽出手段20とを含み、URL抽出手段20が抽出したURLを用いて、メッセージ取得用のリクエストを生成するリクエスト生成手段30を備えたことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージを送受信するメッセージ送受信システム、メッセージ送受信方法及びメッセージ送受信信用プログラムに関し、特にメッセージを中継できるメッセージ送受信システム、メッセージ送受信方法及びメッセージ送受信用プログラムに関する。また、本発明は、メッセージ送受信システムが備えるメッセージ中継サーバに関する。
【背景技術】
【0002】
インターネットの発展により、一般の利用者が、WWW(World Wide Web)上に配置されたWebページを、コンピュータ上で動作するWebブラウザを用いて閲覧することが、一般的に行われている。Webブラウザは、様々なコンピュータ上で実装されている。そのため、ユーザが、コンピュータとして一般的なPC(Personal Computer)のみならず携帯電話機やゲーム端末、テレビジョン受信機、ビデオ機器などで簡単にWebブラウザを利用できるようになってきている。
【0003】
また一般に、遠隔に離れたユーザ同士がネットワークを介して共同で作業を実施するための遠隔協働システムが提案されており、遠隔会議としてユーザ同士が同じ資料や図を同時に参照、描画したり、ファイルを互いに送受信したりするシステムが提案されている。このような遠隔会議システムでは、予めまたは一時的にユーザ同士がある期間一つのグループを形成する。そして、そのグループに属しているユーザ間で、各端末上で行った操作を操作メッセージとしてやりとりし、各端末で操作メッセージに対応した操作を再現することで遠隔での会議を実現している。また、このようなグループへの参加メンバ及び期間をセッションとして管理する。そして、セッションが継続している間はそのセッションに参加しているメンバが操作メッセージをやりとりできるように制御する。一般的にこのような遠隔協働システムにおいてユーザが利用する端末で動作を制御するプログラムは、上り通信として端末で行われた操作を、操作メッセージとして他の端末に送信するように制御する。そして、上記のプログラムは、逆に、下り通信を行うことによって他のプログラムから送信された操作メッセージを受信して、受信したメッセージに記述されている操作内容を自端末上で実行するように制御する。
【0004】
このような遠隔協働システムとして、Webブラウザをクライアントプログラムとして用いた遠隔協働システムが提案されている。例えば、特許文献1に記載されたシステムでは、サーバ上に配置された表データが更新されるたびに、そのURLをメッセージとして各端末に送信する。そして、メッセージを受信した各端末がWebブラウザを用いてそのURLを表示することで、更新された表データを各ユーザに対して見せることができる。
【0005】
また、特許文献2に記載されたシステムでは、Webブラウザで表示しているWebページに対してユーザが行ったスクロールやクリック、テキスト入力などの操作をメッセージとして他のWebブラウザ(具体的には、Webブラウザを搭載した端末)に送信する。そして、メッセージを受信した他のWebブラウザがそのメッセージに記述されている内容に従って操作を再現することで、Webブラウザに表示されるWebページを同期させている。
【0006】
このようなWebブラウザを用いた遠隔協働システムにおいて、操作の同期を実現するためには、メッセージの送信処理(上り通信)及び受信処理(下り通信)をWebブラウザ上で実装する必要がある。この時、Webブラウザ同士で直接通信する機能がWebブラウザには備わっていないため、Webブラウザは必ずWebサーバと通信する必要がある。そして、このWebサーバ上にメッセージを中継する手段を実装することにより、Webブラウザ間のメッセージ交換が可能となる。
【0007】
この時WebブラウザとWebサーバとが通信するために利用するHTTP(Hyper Text Transport Protocol)プロトコルについては、Webブラウザがリクエストの送信元となる。そして、Webサーバは、Webブラウザからのリクエストを受け取ってから、そのリクエストに応じた処理を実施する。よって、前述したメッセージの上り、下り通信のうち、上り通信では、通常通りWebブラウザからのHTTPを利用したリクエスト(以下、HTTPリクエスト)を用いればWebサーバに届けることが可能であるが、下り通信では、Webサーバから能動的にWebブラウザに向かって通信を開始する手段がないため、通常の手段では実現できない。
【0008】
これを可能とするための手段として、特許文献2に記載されたシステムでは、永続的ポーリングという手法を提案している。これは、下り通信用にある間隔でWebブラウザからメッセージ中継用のサーバにリクエストを送信し、メッセージ中継サーバにメッセージが存在する場合に、そのレスポンスでメッセージを受信することで、完全なリアルタイムではないが、ある間隔の遅延をおいてメッセージを随時取得するという手法である。
【0009】
また、遠隔協働システムにおいて動作しているセッションに対し、途中で新たにユーザがメンバとして加わった場合、新たに加わったメンバが操作するWebブラウザは、当該セッションに参加している他のメンバのWebブラウザと表示及び内部状態を合わせるため、キャッチアップと呼ぶ追随処理を実施する。これは当該セッションにおいてメッセージ中継サーバを介して送受信されたメッセージを最初から順に取得し、そのメッセージに従って操作を再現することで、他のメンバが操作するWebブラウザと表示及び内部状態を同一にすることで実現する。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2003−259323号公報
【特許文献2】特表2002−514332号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
ある期間継続しているセッションがあり、そのセッションに参加しているユーザがWebブラウザの操作を繰り返した場合、当該セッションにおける送受信メッセージがメッセージ中継サーバに順次蓄積されていく。そして、当該セッションに対し新たにユーザが参加した場合、Webブラウザは、キャッチアップにより最初から順にメッセージ中継サーバからメッセージを取得するが、この時なるべく早期に他のブラウザと同じ状態に追いつく必要があるため、できる限りの早さでメッセージを連続して取得する。その際、メッセージ中継サーバには、一時的に通信と負荷とが集中することになり、全体的なパフォーマンスの低下やサービスの一時停止が発生する可能性がある。
【0012】
これを回避するため、メッセージ中継サーバにおいてキャッシュを利用したり、メッセージ中継サーバとWebブラウザとの通信経路の途中にプロキシサーバを設置して、そのキャッシュを利用したりする。例えば、メッセージ中継サーバから一度送信されたメッセージをキャッシュ上に保存し、キャッチアップによる再度の取得時にそのキャッシュに保存されたメッセージを送信することによりメッセージ中継サーバの負荷を軽減するという方法が考えられる。
【0013】
一般的にキャッシュは、リクエストの内容としてブラウザから送信されたURLとサーバから返信されたレスポンスとを関連づけて保存しておき、再度ブラウザから送信されたURLが以前に保存したURLと同じであれば、保存したレスポンスを即座に返信するという仕組みを持つ。
【0014】
しかし、前述したようにWebブラウザによるメッセージ取得要求は、ポーリングによって実現される。通常ポーリングによるメッセージ取得要求は、Webブラウザからリクエストを送信する際、各リクエストのURLを以前に送信したリクエストとは異なるURLで送信される。これは、送信済みのリクエストと同じURLで送信した場合、前述したキャッシュにおいて過去のリクエストと同等であると判定され、メッセージ中継サーバにリクエストが到達せずにキャッシュに保存されたメッセージを返信し続けることとなる。そのため、メッセージ中継サーバにおいて新しいメッセージが蓄積されていても、それをWebブラウザに返信することができなくなるからである。
【0015】
さらに、ポーリングによるメッセージ取得のリクエスト送信時にメッセージ中継サーバ側に送信すべき新規のメッセージがなかった場合、そのレスポンスは中身が空のものになり、ブラウザからの各リクエストに対して、全て意味のある返信が返されているとは限らない。
【0016】
これにより、あるWebブラウザが他のWebブラウザが送信したリクエストのURLを知ることは一概には容易ではなく、また、例え知ることができたとしても、そのリクエストに対してメッセージ中継サーバからメッセージが返信されたかどうかを知ることができない。そのため、他のWebブラウザに対して返信されたメッセージがキャッシュに残っていたとしても、キャッチアップ時のWebブラウザが、キャッシュからメッセージを取得することは一概に容易ではない。
【0017】
そこで、本発明は、Webブラウザがキャッチアップ時にキャッシュに保存されているメッセージを取得することができるメッセージ送受信システム、メッセージ送受信方法、メッセージ中継サーバ及びメッセージ送受信用プログラムを提供することを目的とする。
【課題を解決するための手段】
【0018】
本発明によるメッセージ送受信システムは、複数のブラウザを用いたメッセージの送受信を中継するメッセージ中継サーバを備え、メッセージ中継サーバは、メッセージ取得用のリクエストに対するレスポンスとリクエストに含まれるURLとを対応づけて記憶するレスポンス記憶手段と、新たなリクエストを受信すると、受信したリクエストに対応するレスポンスと対応づけられたURLをレスポンス記憶手段から抽出するURL抽出手段とを含み、URL抽出手段が抽出したURLを用いて、メッセージ取得用のリクエストを生成するリクエスト生成手段を備えたことを特徴とする。
【0019】
本発明によるメッセージ中継サーバは、複数のブラウザを用いたメッセージの送受信を中継するメッセージ中継サーバであって、メッセージ取得用のリクエストに対するレスポンスとリクエストに含まれるURLとを対応づけて記憶するレスポンス記憶手段と、新たなリクエストを受信すると、受信したリクエストに対応するレスポンスと対応づけられたURLをレスポンス記憶手段から抽出するURL抽出手段とを備えたことを特徴とする。
【0020】
本発明によるメッセージ送受信方法は、メッセージ取得用のリクエストに対するレスポンスとリクエストに含まれるURLとを対応づけて記憶部に記憶するレスポンス記憶ステップと、新たなリクエストを受信すると、受信したリクエストに対応するレスポンスと対応づけられたURLを記憶部から抽出するURL抽出ステップと、抽出したURLを用いて、メッセージ取得用のリクエストを生成するリクエスト生成ステップとを含むことを特徴とする。
【0021】
本発明によるメッセージ送受信用プログラムは、複数のブラウザを用いてメッセージの送受信を中継するコンピュータに、メッセージ取得用のリクエストに対するレスポンスとリクエストに含まれるURLとを対応づけて記憶部に記憶する記憶処理と、新たなリクエストを受信すると、受信したリクエストに対応するレスポンスと対応づけられたURLを記憶部から抽出するURL抽出処理と、抽出したURLを用いて、メッセージ取得用のリクエストを生成するリクエスト生成処理とを実行させることを特徴とする。
【発明の効果】
【0022】
本発明によれば、Webブラウザがキャッチアップ時にキャッシュに保存されているメッセージを取得することができる。
【図面の簡単な説明】
【0023】
【図1】本発明によるメッセージ送受信システムの構成の一例を示すブロック図である。
【図2】Webブラウザを搭載したユーザ端末の構成の一例を示すブロック図である。
【図3】メッセージ中継サーバでのセッションの開始処理例を示す流れ図である。
【図4】アプリケーション処理開始時におけるWebブラウザでの処理例を示す流れ図である。
【図5】Webブラウザ及びメッセージ中継サーバでの上り通信処理例を示す流れ図である。
【図6】Webブラウザでの下り通信処理例を示す流れ図である。
【図7】メッセージ送信手段での処理例を示す流れ図である。
【図8】送信メッセージ選択手段での処理例を示す流れ図である。
【図9】メッセージ送信手段に置いてメッセージを返信する際のレスポンス管理手段での処理例を示す流れ図である。
【図10】履歴URLを返信する時のレスポンス管理手段での処理例を示す流れ図である。
【図11】メッセージ送受信システムの最小の構成例を示すブロック図である。
【発明を実施するための形態】
【0024】
以下、本発明の実施形態について図1及び図2を用いて説明する。図1は、本発明によるメッセージ送受信システムの構成の一例を示すブロック図である。図1に示すように、メッセージ送受信システムは、ユーザ同士が遠隔で協働作業をするためのユーザインターフェイスとして利用するWebブラウザ1と、前述したHTTPプロトコルを利用して、Webブラウザ間のメッセージの送受信を中継するWebサーバ上に実装されたメッセージ中継サーバ2と、一般的なキャッシュ機能を有するプロキシサーバ3とを含む。なお、プロキシサーバ3と同等のキャッシュ機能をメッセージ中継サーバ2が備えている場合には、プロキシサーバ3が無くても構わない。
【0025】
Webブラウザ1は、具体的には、プログラムに従って動作するパーソナルコンピュータ等の情報処理装置に搭載される。図2は、Webブラウザを搭載したユーザ端末の構成の一例を示すブロック図である。図2に示すように、Webブラウザ1が搭載された端末は、協働作業をするための処理を実装した1つ又は複数のアプリケーション101と、Webブラウザ1上で動作するアプリケーション101が実施する通信を制御するための通信管理手段102と、アプリケーション101で生成されたメッセージを上り通信としてメッセージ中継サーバ2に送信するための上り通信手段103と、メッセージ中継サーバ2に下り通信(キャッチアップ処理を行うためのリクエスト)を送信してメッセージを取得するための下り通信手段104と、取得したメッセージのメッセージ中継サーバ2上のキュー中の位置情報をそのメッセージを処理するアプリケーション101と関連(対応)づけて蓄積(記憶)するポインタ記憶手段105とを含む。なお、本実施形態において、上り通信とは、他のブラウザに対してメッセージを送信することであり、下り通信とは、他のブラウザからのメッセージを受信することである。
【0026】
前述したWebブラウザ上で動作する各手段は、一般にHTML(Hyper Text Markup Language)と呼ばれる記述方法で定義され、さらにはJavaScript、ActiveX、Flashなどと一般的に呼称されるWebブラウザ上でプログラムを動作させる仕組みを用いて実装する。Javaは、登録商標である。なお、以下、Webブラウザ1やアプリケーション101が処理を実行する、送受信する等の表現を用いるが、具体的には、Webブラウザを搭載した情報処理端末がWebブラウザやアプリケーション101に従って処理を実行することである。
【0027】
メッセージ中継サーバ2は、具体的には、プログラムに従って動作する情報処理装置によって実現される。図1に示すように、メッセージ中継サーバ2は、セッション管理手段201と、メッセージ受信手段202と、メッセージ蓄積制御手段203と、キュー記憶手段204と、メッセージ送信手段205と、送信メッセージ選択手段206と、レスポンス情報記憶手段207と、レスポンス管理手段208とを含む。
【0028】
セッション管理手段201は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。セッション管理手段201は、ユーザ同士の遠隔協働作業のセッションを管理し、そのセッションとキューとの関係を示す情報を保持(記憶又は管理)する機能を備えている。
【0029】
メッセージ受信手段202は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインターフェース部によって実現される。メッセージ受信手段202は、利用者が操作するWebブラウザ1から上り通信を行うことによって送信されたメッセージを受信する機能を備えている。
【0030】
メッセージ蓄積制御手段203は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。メッセージ蓄積制御手段203は、メッセージ受信手段202が受信したメッセージをキュー方式でキュー記憶手段204に記憶させる機能を備えている。
【0031】
キュー記憶手段204は、具体的には、光ディスク装置や磁気ディスク装置などの記憶装置によって実現される。キュー記憶手段204は、セッション毎に用意されたキューを用いて実際にデータを記憶する。
【0032】
メッセージ送信手段205は、具体的には、プログラムに従って動作する情報処理装置のCPU及びネットワークインターフェース部によって実現される。メッセージ送信手段205は、Webブラウザから下り通信によりリクエストを受信して、リクエストで要求されたメッセージ又は既にキャッシュされているメッセージを取得するためのURLを返信する機能を備えている。
【0033】
送信メッセージ選択手段206は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。送信メッセージ選択手段206は、Webブラウザ1から受信した下り通信によるリクエストに応じて、キュー記憶手段204に蓄積されたメッセージの中から、Webブラウザ1に返信するべきメッセージを検索して、キュー中の位置情報(例えば、シーケンス番号)と共にメッセージを取得(抽出)する機能を備えている。
【0034】
レスポンス情報記憶手段207は、具体的には、光ディスク装置や磁気ディスク装置などの記憶装置によって実現される。レスポンス情報記憶手段207は、メッセージ送信手段205から送信されたメッセージのキュー中の位置情報(例えば、シーケンス番号)と、そのキューのセッションIDと、メッセージ送信手段205がWebブラウザから受信したリクエストURLとを対応づけてレスポンス情報として記憶する。
【0035】
レスポンス管理手段208は、具体的には、プログラムに従って動作する情報処理装置のCPUによって実現される。レスポンス管理手段208は、Webブラウザからメッセージ取得のためのリクエストを受信した際に、該当するメッセージを既に送信済みかどうか判断し、送信済みの場合には、その時のリクエストURLを履歴URLとしてメッセージ送信手段205に伝える(出力する)機能を備えている。
【0036】
なお、図1では、2つのWebブラウザがメッセージ中継サーバに接続されているが、2つに限らず、例えば、3つ以上接続しても構わない。
【0037】
次に、メッセージ送受信システムの動作について説明する。図3は、メッセージ中継サーバでのセッションの開始処理例を示す流れ図である。
【0038】
最初に図3を用いてメッセージ中継サーバ2でのセッションの開始処理について述べる。例えば、遠隔会議をするために、ユーザがシステムを起動する操作を行うと、セッション管理手段201は、ユーザの操作に従って、ユーザ同士の遠隔協働作業のセッションを作成する。この時、セッション管理手段201は、セッションの開始方法として、任意の手法を用いて良い。例えば、セッション管理手段201と電話回線交換機とを接続し、電話による通話の開始をセッションの開始とし、通話者同士をセッションの参加者として構わない。また、別途Webブラウザとセッション管理手段201とを接続し、Webブラウザの操作によって、セッションの開始とセッションの参加者とを定義しても構わない。
【0039】
次に、セッション管理手段201は、セッションを示すID(セッションID)とユーザを識別するためのID(ユーザID)とを関連(対応)づけて管理する。セッション管理手段201は、この関連づけを示す情報をセッション管理手段201で記憶しても構わないし、メッセージ中継サーバ2外のデータベースサーバといった別のサーバ上で記憶しても構わない。以下、セッション管理手段201が管理するセッションIDとユーザIDとの例を示す。
【0040】
【表1】

【0041】
表1に示す例では、「User1」及び「User2」が、セッション「000001」に参加しており、「A」、「B」及び「C」が、セッション「000002」に参加している。
【0042】
セッション管理手段201は、セッションを開始すると(ステップS101)、セッションIDに基づいて、そのセッションに対応したキューを作成し、作成したキューをキュー記憶手段204に記憶させる(ステップS102)。なお、本実施形態では、ステップS102でセッション管理手段201が作成するセッション毎にキュー方式でメッセージを格納するための箱(例えば、ファイルなど。なお、記憶装置内にキュー方式で記憶するための所定の記憶領域を確保したようなものでもよい)を単に「キュー」とも表現する。以下、この時作成されるキューの例を示す。
【0043】
【表2】

【0044】
表2は、セッションIDが”000001”で表されるセッションに対するキューの一例である。表2に示すキューの中の各行は、Webブラウザ上で動作するアプリケーションから送信されたメッセージを表す。
【0045】
1列目のシーケンス番号は、該当するセッション中にメッセージ中継サーバで受信したメッセージの順番を示す。本実施形態では、このシーケンス番号に、0から始まり1ずつ増加する整数を用いる。
【0046】
2列目の一時IDは、メッセージを送信したWebブラウザ上で動作するアプリケーションを示すIDであり、詳細については後述する。
【0047】
3列目のメッセージタイプは、そのメッセージを用いるアプリケーションの種別を表しており、任意の文字列を持つ。
【0048】
4列目のメッセージ内容は、メッセージの本体であり、文字だけでなく任意のデータを値として持つ。表2に示す例では、シーケンス番号「0」のメッセージは、一時ID「A0001」を持つアプリケーションから送信されており、メッセージタイプが「CHAT」で、メッセージ内容として「HELLO」が指定されている。また、シーケンス番号「3」のメッセージは、一時ID「B0001」を持つアプリケーションから送信されており、メッセージタイプが「FILE」で、メッセージ内容として「FILE=BCD.BIN」が指定されている。
【0049】
なお、表2では既にキュー中にメッセージが蓄積されているが、キューは、セッション管理手段201がキューを作成した初期段階では、メッセージを一つも含まない空の状態で作成される。
【0050】
次に、図4を用いてアプリケーション処理開始時におけるWebブラウザ1での処理について述べる。図4は、アプリケーション処理開始時におけるWebブラウザでの処理例を示す流れ図である。
【0051】
遠隔協動システム等に参加するために、ユーザがWebブラウザ1を起動する操作すると、Webブラウザ1は、ユーザの操作に従って、アプリケーション101、通信管理手段102、上り通信手段103、下り通信手段104及びポインタ記憶手段105を起動する(ステップS201)。
【0052】
これらの起動については、一般的なWebブラウザと同様に、Webブラウザ1にURL(Uniform Resource Locator)を指定することで、指定したURLに関連づけられたHTMLが読み込まれ、HTML上で定義された101〜105の各手段が動作する。この仕組みは通常のWebブラウザを利用した操作と同等であり、ここではその詳細を省略する。
【0053】
次に、Webブラウザ1上で各手段(101〜105)が動作すると、通信管理手段102は、Webブラウザ1を利用しているユーザのユーザIDを取得する(ステップS202)。通信管理手段102がユーザIDを取得する方法として、例えば、HTML中に記述されている文字列を取得(抽出)する方法や、Webブラウザに一般的に備えられているCookieという仕組みを利用して取得する方法、ユーザに入力を促すなど多種の方法が考えられるが、取得可能であれば、どのような方法を用いてもよい。
【0054】
次に、通信管理手段102は、Webブラウザ1上で動作するアプリケーションを初期化する。この時、通信管理手段102は、Webブラウザ1上で動作しているアプリケーション101を一意に識別するための一時IDを作成する(ステップS203)。
【0055】
そして、通信管理手段102は、作成した一時IDを各アプリケーションに渡す(出力する)(ステップS204)。この一時IDについては、各アプリケーションを識別できれば、どのような値を用いても構わない。
【0056】
次に、各アプリケーション101は、通信管理手段102から出力された一時IDをメモリ等の記憶装置に記憶させる。そして、各アプリケーション101は、それぞれ固有の初期化処理を実施して通信管理手段102に初期化の完了を通知すると共に、各アプリケーション101がそれぞれ使用するメッセージタイプを通知する(ステップS205)。このメッセージタイプは文字列であればどのようなものでも良い。ただし、異なるアプリケーション101間において、同じメッセージタイプを利用しないようにする。
【0057】
次で、通信管理手段102は、メッセージタイプを受け取る(入力する)と、ポインタ記憶手段105に、メッセージタイプと各アプリケーション101の一時IDと共に、初期ポイントとして「−1」を記憶させる(ステップS206)。以下、ポインタ記憶手段105に記憶させる情報の例を示す。
【0058】
【表3】

【0059】
表3に示す例は、メッセージタイプとして「CHAT」と「DOC」とが登録されており、「CHAT」に対応する一時IDが「A0001」であり、「DOC」に対応する一時IDが「A0002」であり、それぞれのポインタが「−1」であることを示している。
【0060】
(上り通信)
次に、図5を用いて上り通信処理について説明する。図5は、Webブラウザ及びメッセージ中継サーバでの上り通信処理例を示す流れ図である。ユーザが、Webブラウザ1上で動作するアプリケーション101上においてメッセージを送信する操作を行うと、アプリケーション101は、ユーザの操作に従って、一時ID、自分のメッセージタイプ及びメッセージの内容を通信管理手段102に渡す(出力する)。そして、通信管理手段102は、ユーザID、一時ID、メッセージタイプ及びメッセージの内容を記述したHTTPを利用したリクエスト(以下、HTTPリクエスト)を生成し、上り通信手段103を利用して、メッセージ中継サーバ2のメッセージ受信手段202に対して送信する。この時、上り通信手段103は、メッセージ送信する。以下、上り通信用のHTTPリクエストの例を示す。
【0061】
POST /Up
UID=User1&MT=CHAT&TID=C0001&MSG=こんばんは
【0062】
上記の例は、メッセージ中継サーバ2のメッセージ受信手段202を示す「/Up」に対して、ユーザIDとして「User1」、メッセージタイプとして「CHAT」、一時IDとして「C0001」、メッセージ内容として「こんばんは」を送信していることを示している。
【0063】
メッセージ中継サーバ2のメッセージ受信手段202は、前述した上り通信用のHTTPリクエストを受信する(ステップS301)。
【0064】
次に、メッセージ受信手段202は、受信したHTTPリクエストからユーザID、メッセージタイプ及び一時IDを抽出して(ステップS302)、メッセージ蓄積制御手段203に渡す(出力する)。
【0065】
次に、メッセージ蓄積制御手段203は、セッション管理手段201に問い合わせて、受け取った(受信した)ユーザIDが参加しているセッションのセッションIDを取得(例えば、セッション管理手段201が記憶部からユーザIDと対応づけて記憶されているセッションIDを抽出し、メッセージ蓄積制御手段203に出力する)する(ステップS303)。
【0066】
次に、メッセージ蓄積制御手段203は、キュー記憶手段204から、取得したセッションIDと関連づけられているキューを取得(抽出)する(ステップS304)。
【0067】
次に、メッセージ蓄積制御手段203は、取得(抽出)したキューに含まれるシーケンス番号のうち、最後の値(すなわち、一番大きな番号であり、時間的に新しいもの)を取得(抽出)する(ステップS305)。
【0068】
次に、メッセージ蓄積制御手段203は、取得(抽出)したシーケンス番号に1を加える(ステップS306)。
【0069】
次に、メッセージ蓄積制御手段203は、1を加えたシーケンス番号と、一時ID、メッセージタイプ及びメッセージ内容を、追加して、キュー記憶手段204が記憶するキューを更新する(ステップS307)。以下、更新後のキューを示す例を表4に示す。
【0070】
【表4】

【0071】
(下り通信)
次に、図6、図7、図8、図9及び図10を用いて下り通信処理について述べる。図6は、Webブラウザでの下り通信処理例を示す流れ図である。図7は、メッセージ送信手段での処理例を示す流れ図である。図8は、送信メッセージ選択手段での処理例を示す流れ図である。図9は、メッセージ送信手段においてメッセージを返信する際のレスポンス管理手段での処理例を示す流れ図である。図10は、履歴URLを返信する時のレスポンス管理手段での処理例を示す流れ図である。例えば、セッションに遅れて参加した場合に、ユーザがキャッチアップを実行するための操作を行うと、Webブラウザ1の通信管理手段102は、下り通信手段104にユーザIDと共に、下り通信を開始する旨の指示を出力する(ステップS401)。
【0072】
下り通信手段104は、まず履歴URL(詳細については後述する)の送信中かどうかを判断する(ステップS402)。
【0073】
ステップS402において、履歴URLを送信中であると判断した場合には、下り通信手段104は、その履歴URLを用いて、さらにHTTPリクエストの付加情報としてユーザIDを指定して、下り通信用のHTTPリクエストを生成し、メッセージ中継サーバ2に送信する(ステップS403)。付加情報の指定方法として、任意のHTTPヘッダーを利用する方法や、Cookieを利用するなどの方法が考えられるが、以下に示す例では、Cookieを利用する方法を用いる。この時のHTTPリクエストは、例えば、下記に示す例のようになる(以下に示す例はHTTPリクエストの主要部分のみ記述)
【0074】
GET/Down?UID=User1&MT1=CHAT&TID1=C0001&PT1=−1&MT2=DOC&TID2=C0002&PT2=−1
Cookie:UID=User3
【0075】
上記のHTTPリクエストは、URL中にメッセージ中継サーバ2のメッセージ送信手段205を示す「/Down」と、ユーザIDとして「User1」とを含み、さらに、一つめのメッセージタイプ、一時ID及びポインタとして、「CHAT」、「C0001」及び「−1」を含む。また、HTTPリクエストは、二つめのメッセージタイプ、一時ID及びポインタとして、「DOC」、「C0002」及び「−1」を含む。また、CookieとしてユーザIDが「User3」であることを示している。
【0076】
ステップS402において、履歴URLを送信中でないと判断した場合には、所定期間経過後(ステップS404)、下り通信手段104は、ポインタ記憶手段105から、登録されているメッセージタイプとそれぞれのポインタとを取得(抽出)する(ステップS405)。
【0077】
そして、下り通信手段104は、ステップS403と同じように、付加情報を追加して、下り通信用のHTTPリクエストを生成し、メッセージ中継サーバ2に送信する(ステップS406)。
【0078】
次に、メッセージ中継サーバ2のメッセージ送信手段205は、前述した下り通信用のHTTPリクエストを受信する(ステップS501)。
【0079】
次に、メッセージ送信手段205は、受信した下り通信用のHTTPリクエストから、ユーザID、メッセージタイプ、一時ID及びポインタをそれぞれ抽出する(ステップS502)。以下、下り通信用のHTTPリクエストに含まれるメッセージタイプ、一時ID、ポインタを、それぞれリクエストメッセージタイプ、リクエスト一時ID、リクエストポインタと呼ぶ。
【0080】
次に、メッセージ送信手段205は、まずCookieに指定されているユーザIDに基づいて、セッション管理手段201から該当するユーザIDが参加しているセッションのセッションIDを取得する(ステップS503)。
【0081】
次に、メッセージ送信手段205は、URL中のユーザIDとCookieのユーザIDとを比較する(ステップS504)。そして、このユーザIDが異なる場合、メッセージ送信手段205は、送信メッセージ選択手段206に対して、セッションID、リクエストメッセージタイプ、リクエスト一時ID及びリクエストポインタを渡す(出力する)。
【0082】
次に、送信メッセージ選択手段206は、キュー記憶手段204から、メッセージ送信手段205から出力されたセッションIDと関連づけられているキューを取得(抽出)する(ステップS601)。
【0083】
次に、送信メッセージ選択手段206は、メッセージ送信手段205から出力されたリクエストポインタの中で一番小さい値を取得ポインタとする(ステップS602)。
【0084】
次に、送信メッセージ選択手段206は、取得ポインタが示す値よりも大きいシーケンス番号を持つメッセージが取得(抽出)したキューにあるか否かを判定する(ステップS603)。
【0085】
該当するメッセージがあると判定した場合、送信メッセージ選択手段206は、取得ポインタに1を加え(ステップS604)、キューから、その取得ポインタと同じシーケンス番号のメッセージを取得(抽出)する(ステップS605)。
【0086】
次に、送信メッセージ選択手段206は、取得(抽出)したメッセージのメッセージタイプが、リクエストメッセージタイプに含まれているか否かを判定する(ステップS606)。
【0087】
ステップS606において、含まれていないと判定した場合には、送信メッセージ選択手段206は、ステップS603に処理を戻す。
【0088】
一方、ステップ606において、含まれていると判定した場合には、送信メッセージ選択手段206は、リクエストメッセージタイプに対するリクエスト一時IDと、取得(抽出)したメッセージの一時IDと比較し、同一であるか否かを判定する(ステップS607)。
【0089】
ステップS607において、同一であると判定した場合には、送信メッセージ選択手段206は、ステップS603に処理を戻す。
【0090】
一方、ステップS607において、同一でないと判定した場合には、送信メッセージ選択手段206は、リクエストメッセージタイプに対するリクエストポインタと、取得(抽出)したメッセージのシーケンス番号とを比較し、リクエストポインタがシーケンス番号より小さいか否かを判定する(ステップS608)。
【0091】
リクエストポインタよりシーケンス番号の方が小さいと判定した場合、又は、リクエストポインタとシーケンス番号とが同じ値であると判定した場合には、送信メッセージ選択手段206は、ステップS603に処理を戻す。
【0092】
リクエストポインタよりシーケンス番号の方が大きい値であると判定した場合には、送信メッセージ選択手段206は、該当するシーケンス番号を選択シーケンス番号として記憶する(ステップS609)。その後、送信メッセージ選択手段206は、ステップS603に処理を戻す。
【0093】
ステップS603において、取得ポインタよりも大きいシーケンス番号を持つメッセージがキューにない(ステップS604〜609の処理によってなくなった)と判定した場合、送信メッセージ選択手段206は、記憶している選択シーケンス番号があるか否かを判定する(ステップS610)。
【0094】
ステップS610において、選択シーケンス番号が一つでもあると判定した場合には、送信メッセージ選択手段206は、記憶している選択シーケンス番号に該当するメッセージをキューから取得(抽出)し(ステップS611)、メッセージ送信手段205に渡す(出力する)。
【0095】
一方、ステップS610において、選択シーケンス番号が一つもないと判定した場合には、送信メッセージ選択手段206は、何もメッセージ送信手段205に渡さない(出力しない)(ステップS612)。
【0096】
次に、メッセージ送信手段205は、送信メッセージ選択手段206から出力されたメッセージがあるか否かを判定する(ステップS505)。
【0097】
ステップS505において、出力されたメッセージがない、すなわち、下り通信用のHTTPリクエストに対するHTTPを利用したレスポンス(以下、HTTPレスポンス)に対し、メッセージが一つもないと判定した場合には、メッセージ送信手段205は、Webブラウザ1に空のレスポンスを返す(送信する)(ステップS506)。
【0098】
一方、ステップS505において、該当するメッセージがあると判定した場合には、メッセージ送信手段205は、シーケンス番号が小さい順にメッセージを並べ、それぞれのメッセージのシーケンス番号、メッセージタイプ及びメッセージ内容を含むHTTPレスポンスを生成し、Webブラウザ1に返す(送信する)(ステップS507)。この時、URL中のユーザIDとCookieのユーザIDとが違っている場合には、メッセージ送信手段205は、HTTPレスポンスに対し付加情報として、異なるユーザIDでのレスポンスを示すキャッシュミス文字列を挿入(付加)する(ステップS508)。これは、例えば、HTTPヘッダーとして挿入(付加)することで実現できる。
【0099】
例えば、キュー記憶手段204に表4に示すようなメッセージが蓄積されている場合に、前述した例のような下り通信用のリクエストを受信した場合には、送信メッセージ選択手段206が抽出する選択シーケンス番号は、「0」、「1」及び「2」となる。この時、Webブラウザ1に返される(送信される)メッセージは以下のようになる。
【0100】
HTTP/1.1 200 OK
X−STATUS: IDILLEGAL
<−− 区切り −−>

CHAT
HELLO
<−− 区切り −−>

DOC
FILE=ABC.DOC
<−− 区切り −−>

CHAT
こんにちは
<−− 区切り −−>
【0101】
上記の例において、「X−STAUS: IDILLEGAL」は、キャッシュミス文字列である。また、<−− 区切り −−>は、メッセージの区切りを表す文字列である。なお、この文字列に限らず、区切りであることがわかれば任意の文字列で構わない。
【0102】
さらに、メッセージ送信手段205は、Webブラウザ1に返した(送信した)メッセージの情報を、Webブラウザ1から送信されてきた下り通信用のHTTPリクエストのURLと共に、レスポンス管理手段208に渡す(出力する)。
【0103】
次に、レスポンス管理手段208は、セッションID、一時ID、メッセージのシーケンス番号及びメッセージタイプが同じである項目(レスポンス情報)が、レスポンス情報記憶手段207に既に記憶されているか否か判定する(S701)。
【0104】
同じものが記憶されていないと判定した場合には、レスポンス管理手段208は、レスポンス情報記憶手段207に、新しく項目を作成し、下り通信用のHTTPリクエストのURLと共に、レスポンス情報として記憶させる(ステップS702)。
【0105】
一方、同じものが記憶されていると判定した場合には、レスポンス管理手段208は、該当するレスポンス情報のうち、URLの項目のみ新しいURLで書き換える(ステップS703)。以下にレスポンス情報記憶手段207が記憶する情報の例を示す。
【0106】
【表5】

【0107】
表5に示す例では、セッションID「000001」に対してシーケンス番号0,1,2のメッセージが返信されており、それぞれの一時ID及びメッセージタイプが表の値の通りである。表5に示す例では、シーケンス番号0及び1のメッセージがWebブラウザに返信された時のURLが、「/Down?UID=User2&MT1=CHAT&TID1=B0001&PT1=−1&MT2=DOC&TID2=B0002&PT2=−1」であることを示している。また、シーケンス番号2のメッセージがWebブラウザに返信された時のURLが、「/Down?UID=User1&MT1=CHAT&TID1=A0001&PT1=1」であることを示している。
【0108】
また、表5に示す例では、セッションID「000002」に対してシーケンス番号0のメッセージが返信されており、その一時IDが「C0002」、メッセージタイプが「FILE」であり、そのメッセージがWebブラウザに返信された時のURLが「/Down?UID=A&MT1=FILE&TID1=A01&PT1=−1」であることを示している。
【0109】
なお、レスポンス情報記憶手段207は、蓄積する下り通信用のHTTPリクエストに関する情報として、URL以外のリクエスト情報を蓄積しても構わない。また、レスポンス情報記憶手段207は、下り通信用のHTTPリクエストに関する情報として、例えば、受信した日時などを蓄積しても構わない。
【0110】
ステップS504において、CookieとURLとのユーザID指定が一致した場合、メッセージ送信手段205は、レスポンス管理手段208に対して、取得したセッションIDに関するレスポンス情報があるか否か確認する(ステップS509)。
【0111】
ステップS509において、レスポンス情報がないと判定した場合には、以降の処理は、ステップS601と同じである。
【0112】
一方、ステップS509において、レスポンス情報があると判定した場合、レスポンス管理手段208は、レスポンス情報記憶手段209が記憶するレスポンス情報のうち、取得したセッションIDを持つレスポンス情報を対象レスポンス情報として取得(抽出)する(ステップS801)。
【0113】
次に、レスポンス管理手段208は、受信したリクエストポインタの中で一番小さい値を取得ポインタとし(ステップS802)、取得ポインタが示す値よりも大きいシーケンス番号を持つレスポンス情報が対象レスポンス情報にあるか否かを判定する(ステップS803)。
【0114】
該当するレスポンス情報があると判定した場合には、レスポンス管理手段208は、取得ポインタに1を加え(ステップS804)、レスポンス情報記憶手段209から、その取得ポインタと同じレスポンス情報を取得(抽出)する(ステップS805)。レスポンス情報を取得(抽出)できない場合には、レスポンス管理手段208は、ステップS803に処理を戻す。
【0115】
取得(抽出)できた場合には、レスポンス管理手段208は、取得(抽出)したレスポンス情報のメッセージタイプが、リクエストメッセージタイプに含まれているか否か判定する(ステップS806)。
【0116】
含まれていないと判定した場合には、レスポンス管理手段208は、ステップS803に処理を戻す。一方、含まれていると判定した場合には、レスポンス管理手段208は、リクエストメッセージタイプに対するリクエスト一時IDと、取得(抽出)したレスポンス情報の一時IDと比較する。そして、レスポンス管理手段208は、リクエスト一時IDとレスポンス情報の一時IDとが同一であるか否か判定する(ステップS807)。
【0117】
ステップS807において、同一であると判定した場合には、レスポンス管理手段208は、ステップS803に処理を戻す。一方、同一でないと判定した場合には、レスポンス管理手段208は、リクエストメッセージタイプに対するリクエストポインタと、取得(抽出)したレスポンス情報のシーケンス番号とを比較する(ステップS808)。
【0118】
リクエストポインタよりシーケンス番号の方が小さい場合、又は同じ値である場合、レスポンス管理手段208は、ステップS803に処理を戻す。
【0119】
リクエストポインタよりシーケンス番号の方が大きい値である場合、レスポンス管理手段208は、取得(抽出)したレスポンス情報に含まれるURLを履歴URLとして、そのシーケンス番号と対応付けて記憶する(ステップS809)。その後、レスポンス管理手段208は、ステップS803に処理を戻す。
【0120】
ステップS803において、取得ポインタよりも大きいシーケンス番号を持つレスポンス情報が対象レスポンス情報になくなったと判定した場合、レスポンス管理手段208は、記憶している履歴URLがあるか否かを判定する(ステップS810)。あると判定した場合、レスポンス管理手段208は、記憶している履歴URLをメッセージ送信手段205に渡す(出力する)(ステップS811)。一方、ないと判定した場合には、レスポン管理手段208は、何も返さない(出力しない)(ステップS812)。
【0121】
次に、メッセージ送信手段205は、レスポンス管理手段208から履歴URLが返された(出力された)か否かを判定する(ステップS510)。返されて(出力されて)いないと判定した場合には、メッセージ送信手段205は、空のレスポンスをWebブラウザに返信する(ステップS506)。
【0122】
返されて(出力されて)いると判定した場合には、メッセージ送信手段205は、重複している履歴URLを一つにまとめる(ステップS511)。そして、メッセージ送信手段205は、それらの履歴URL及びシーケンス番号から履歴URLレスポンスを生成し、Webブラウザに返信する。例えば、User3のユーザIDを持つWebブラウザが、以下に示す下り通信用のHTTPリクエストを送信したとする。
【0123】
/Down?UID=User3&MT1=CHAT&TID1=A0001&PT1=−1&MT2=DOC&TID2=A0002&PT2=−1
Cookie: User3
【0124】
この時の履歴URLレスポンスは以下のようになる。
【0125】
0,1:/Down?UID=User2&MT1=CHAT&TID1=B0001&PT1=−1&MT2=DOC&TID2=B0002&PT2=−1
2:/Down?UID=User1&MT1=CHAT&TID1=A0001&PT1=1
【0126】
履歴URLレスポンスは、各履歴URLで取得できるメッセージのシーケンス番号と、そのURL文字列とを含む。
【0127】
次に、Webブラウザ1の下り通信手段104は、HTTPレスポンス(又は履歴URLレスポンス)を受信する(ステップS407)。そして、下り通信手段104は、受信したレスポンスが空か(すなわち、メッセージも履歴URLも含まれていない)否か判定する(ステップS408)。空であると判定すると、下り通信手段104は、ステップS402に処理を戻す。
【0128】
また、HTTPレスポンス(又は履歴URLレスポンス)が空でないと判定した場合、下り通信手段104は、HTTPレスポンス(又は履歴URLレスポンス)を解析して、メッセージが含まれているか、又は履歴URLが含まれているか判別する(ステップS409)。
【0129】
メッセージが含まれていると判定した場合、下り通信手段104は、レスポンスからメッセージを一つずつ抽出し(ステップS410)、抽出したメッセージを通信管理手段108に渡す(出力する)。
【0130】
次に、通信管理手段108は、下り通信手段104から受け取った(出力された)メッセージのシーケンス番号及びメッセージタイプを取得(抽出)する。そして、通信管理手段108は、ポインタ記憶装置105に記憶されている同じメッセージタイプを持つポインタの値を、取得(抽出)シーケンス番号で書き換える(ステップS411)。以下、シーケンス番号が書き換えられたポインタ記憶手段105が記憶する情報の例について示す。
【0131】
【表6】

【0132】
次に、通信管理手段108は、ポインタ記憶装置105の同じ行に記憶されている一時IDを取得(抽出)し、抽出した一時IDを持つアプリケーションに対して、メッセージに含まれるメッセージ内容を渡す(出力する)(ステップS412)。そして、各アプリケーションは、メッセージの内容に従って、それぞれ処理を実行する。
【0133】
また、ステップS409において、履歴URLが含まれている(すなわち、履歴URLレスポンスを受信した)と判定した場合には、Webブラウザ1は、履歴URLの送信を開始する(ステップS413)。その後、Webブラウザ1は、ステップS403以下を実行する。ただし、ステップS410において、履歴URLレスポンスに含まれているシーケンス番号以外のメッセージを受信した場合には、Webブラウザ1は、それを除外する。
【0134】
この時、下り通信用のHTTPリクエストで示されるURLは、以前他のWebブラウザが送信したものである。そして、Webブラウザとメッセージ中継サーバとの間にプロキシサーバなどのキャッシュ装置が存在する場合、そこにリクエストに対するレスポンスがキャッシュされている可能性が高い。
【0135】
キャッシュ装置にキャッシュされている場合には、キャッシュ装置は、そのキャッシュに含まれるメッセージをWebブラウザに返信する。また、キャッシュに含まれていない場合には、メッセージ中継サーバにリクエストが送信される。この場合、URLに含まれるユーザIDとCookieのユーザIDとが異なるため、ステップS601以降の処理が実行され、メッセージがWebブラウザに返信される。
【0136】
そして、Webブラウザ1は、メッセージを取得(受信)すると、ステップS410以降の処理を実行し、メッセージをアプリケーションに渡す(出力する)。
【0137】
次に、Webブラウザ1は、この時に、受信したHTTPレスポンスの付加情報として、キャッシュミス文字列が指定されているか否かを判定する(ステップS414)。そして、指定されていないと判定した場合には、Webブラウザ1は、次の履歴URLが指定されていれば、それに基づいて再度下り通信用のリクエストを送信する。一方、キャッシュミス文字列が指定されていると判定した場合には、Webブラウザ1は、履歴URLの送信を停止し(ステップS415)、通常の処理に戻す。
【0138】
以上のように、本実施形態では、メッセージ中継サーバは、HTTPリクエストに対応するHTTPレスポンスを、HTTPリクエストに含まれるURLと対応づけて履歴情報としてレスポンス情報記憶手段207に記憶する。そして、メッセージ中継サーバは、Webブラウザから新たなHTTPリクエストを受信すると、受信したリクエストに対応するHTTPレスポンスと対応付けて記憶されているURLを抽出し、Webブラウザに返信する。そのため、Webブラウザがメッセージを取得する際に、返信されたURLを用いることで、キャッシュに蓄積されたメッセージを取得できるようになる。また、キャッシュを有効に利用することにより、メッセージ中継サーバにおいて、Webブラウザ1から受信したリクエストに応じてメッセージを抽出し、抽出したメッセージをWebブラウザ1に返信する処理を省略することができるため、負荷を減少させることが可能となる。
【0139】
次に、本発明によるメッセージ送受信システムの最小構成について説明する。図11は、メッセージ送受信システムの最小の構成例を示すブロック図である。図11に示すように、メッセージ送受信システムは、最小の構成要素として、レスポンス記憶手段10、URL抽出手段20及びリクエスト生成手段30を含む。
【0140】
図11に示す最小構成のメッセージ送受信システムでは、メッセージ取得用のリクエストに対するレスポンスとリクエストに含まれるURLとを対応づけて記憶するレスポンス記憶手段10を備えている。そして、新たなリクエストを受信すると、URL抽出手段20は、受信したリクエストに対応するレスポンスと対応づけられたURLをレスポンス記憶手段10から抽出する。そして、リクエスト生成手段30は、URL抽出手段20が抽出したURLを用いて、メッセージ取得用のリクエストを生成する。
【0141】
従って、図11に示す最小構成のメッセージ送受信システムによれば、キャッチアップ時に、過去にメッセージを取得したURLを用いることができるため、キャッシュに蓄積されたメッセージを取得することができる。また、このことによって、メッセージ中継サーバにおいて、Webブラウザから受信したリクエストに応じてメッセージを抽出し、抽出したメッセージをWebブラウザに返信する処理を省略することができるため、負荷を減少させることが可能となる。
【0142】
なお、本実施形態では、以下の(1)〜(8)に示すようなメッセージ送受信システムの特徴的構成が示されている。
【0143】
(1)メッセージ送受信システムは、複数のWebブラウザ(例えば、Webブラウザ1によって実現される)と、複数のWebブラウザ間でのメッセージの送受信を中継するメッセージ中継サーバ(例えば、メッセージ中継サーバ2によって実現される)とを備え、メッセージ中継サーバは、メッセージ取得用のリクエスト(例えば、HTTPリクエストによって実現される)に対するレスポンス(例えば、セッションIDやシーケンス番号、一時ID、メッセージタイプ)とリクエストに含まれるURL(例えば、履歴URLとして記憶する)とを対応づけて記憶するレスポンス記憶手段(例えば、レスポンス情報記憶手段207によって実現される)と、新たなリクエストを受信すると、受信したリクエストに対応するレスポンスと対応づけられたURLをレスポンス記憶手段から抽出するURL抽出手段(例えば、レスポンス管理手段208によって実現される)とを含み、URL抽出手段が抽出したURLを用いて、メッセージ取得用のリクエストを送信するリクエスト生成手段(例えば、下り通信手段104によって実現される)を備えたことを特徴とする。
【0144】
(2)メッセージ送受信システムにおいて、メッセージ中継サーバは、リクエストを受信すると、受信したリクエストに対応するレスポンスがレスポンス記憶手段に記憶されているか否かを判定する判定手段(例えば、レスポンス管理手段208によって実現される)と、判定手段が記憶されていないと判定すると、送信されたメッセージを記憶する記憶部(例えば、キュー記憶手段204によって実現される)から、受信したリクエストに基づいてメッセージを抽出するメッセージ抽出手段(例えば、送信メッセージ選択手段206によって実現される)とを含み、URL抽出手段は、判定手段が記憶されていると判定すると、受信したリクエストに対応するレスポンスと対応づけられたURLをレスポンス記憶手段から抽出するように構成されていてもよい。
【0145】
(3)メッセージ送受信システムは、ユーザ同士が遠隔で協働作業をするためのブラウザを搭載したユーザ端末と、ユーザ端末と通信するサーバ装置上に実装されたメッセージの送受信を中継するメッセージ中継サーバと、キャッシュ機能を有するプロキシサーバ(例えば、プロキシサーバ3によって実現される)とを備え、ユーザ端末は、協働作業をするための処理を実行するためのアプリケーション(例えば、アプリケーション101によって実現される)と、アプリケーションに従って実行される通信を制御する通信管理手段(例えば、通信管理手段102によって実現される)と、ユーザ端末が生成したメッセージをメッセージ送信要求(例えば、上り通信用のHTTPリクエスト)としてメッセージ中継サーバに送信する上り通信手段(例えば、上り通信手段103によって実現される)と、メッセージ中継サーバにメッセージ取得要求を送信して他のユーザ端末が生成したメッセージを受信する下り通信手段(例えば、下り通信手段104によって実現される)と、メッセージ中継サーバ上のキュー中の受信したメッセージが存在する一の位置情報(例えば、シーケンス番号)と、メッセージを処理するアプリケーションを特定する情報(例えば、一時ID)とを関連づけて記憶するポインタ記憶手段(例えば、ポインタ記憶手段105によって実現される)とを含み、メッセージ中継サーバは、ユーザ同士の遠隔協働作業のセッションを管理し、セッションとセッションにおけるキューとの関係を管理するセッション管理手段(例えば、セッション管理手段201によって実現される)と、ユーザ端末からメッセージ送信要求として送信されたメッセージを受信するメッセージ受信手段(例えば、メッセージ受信手段202によって実現される)と、メッセージをキューに蓄積するメッセージ蓄積制御手段(例えば、メッセージ蓄積制御手段203によって実現される)と、メッセージ蓄積制御手段に従って、セッション毎に用意されたキューにメッセージを記憶するキュー記憶手段(例えば、キュー記憶手段204によって実現される)と、ユーザ端末からのメッセージ取得要求を受信して、メッセージ取得要求で示されるメッセージ又は過去にメッセージを返信した時のメッセージ取得要求の内容(例えば、履歴URL)を返信するメッセージ送信手段(例えば、メッセージ送信手段205によって実現される)と、ユーザ端末からのメッセージ取得要求に応じて、キュー記憶手段に蓄積されたメッセージの中からユーザ端末に返信するべきメッセージを検索して、メッセージのメッセージ中継サーバ内での管理情報と共にメッセージを取得する送信メッセージ選択手段(例えば、送信メッセージ選択手段206によって実現される)と、メッセージ送信手段が送信したメッセージのメッセージ中継サーバ内での管理情報と、メッセージ送信手段が受信したユーザ端末からのメッセージ取得要求の内容とをレスポンス情報として記憶するレスポンス情報記憶手段(例えば、レスポンス情報記憶手段207によって実現される)と、ユーザ端末からメッセージ取得要求を受信する際、メッセージ取得要求で示されるメッセージを既に送信済みかどうか判断し、送信済みの場合には、メッセージ取得要求の内容をメッセージ送信手段に出力するレスポンス管理手段(例えば、レスポンス管理手段208によって実現される)とを含むことを特徴とする。
【0146】
(4)メッセージ送受信システムにおいて、メッセージ送信手段は、ユーザ端末からのメッセージ取得要求に対してメッセージを返信する際、メッセージのメッセージ中継サーバでの管理情報(例えば、セッションIDやシーケンス番号、一時ID、メッセージタイプ)と共にメッセージ取得要求の内容(例えば、URL)をレスポンス情報記憶手段に記憶させるように構成されていてもよい。
【0147】
(5)メッセージ送受信システムにおいて、レスポンス管理手段は、メッセージ送信手段においてユーザ端末からのメッセージ取得要求に対してメッセージを返信する際、取得要求されているメッセージが既に過去に返信されているか否かを判定し、過去に返信していると判定した場合、メッセージを返信した時に受信した下り通信要求の内容(例えば、履歴URL)を取得し、メッセージ送信手段は、レスポンス管理手段が取得したメッセージ取得要求の内容をユーザ端末に送信するように構成されていてもよい。
【0148】
(6)メッセージ送受信システムにおいて、下り通信手段は、メッセージ中継サーバからメッセージ取得要求の内容(例えば、履歴URL)が返信された場合、返信されたメッセージ取得要求の内容に従ってメッセージ取得要求を再度生成し、メッセージ取得要求にユーザ端末を操作しているユーザを示すユーザ情報(例えば、ユーザID)を付加情報として指定するように構成されていてもよい。
【0149】
(7)メッセージ送受信システムにおいて、メッセージ送信手段は、ユーザ端末からのメッセージ取得要求を受信した際、メッセージ取得要求の内容に含まれるユーザ情報とメッセージ取得要求に付加情報として指定されているユーザ情報とを比較し、ユーザ情報が合致しなければ、メッセージ蓄積制御手段によって蓄積されているメッセージを返信する際に、メッセージにキャッシュにミスしたことを示す付加情報(例えば、キャッシュミス文字列)を追加するように構成されていてもよい。
【0150】
(8)メッセージ送受信システムにおいて、下り通信手段は、メッセージ中継サーバからメッセージが返信されてきた場合、返信の付加情報にキャッシュに失敗したことを示す情報が付加されているか否かを確認し、付加されていれば、メッセージ中継サーバから取得したメッセージ取得要求の内容に従ったメッセージ取得要求の再生成を中止するように構成されていてもよい。
【産業上の利用可能性】
【0151】
本発明は、遠隔会議等をする用途に適用可能である。
【符号の説明】
【0152】
1 Webブラウザ
2 メッセージ中継サーバ
3 プロキシサーバ
10 レスポンス記憶手段
20 URL抽出手段
30 リクエスト生成手段
101 アプリケーション
102 通信管理手段
103 上り通信手段
104 下り通信手段
105 ポインタ記憶手段
201 セッション管理手段
202 メッセージ受信手段
203 メッセージ蓄積制御手段
204 キュー記憶手段
205 メッセージ送信手段
206 送信メッセージ選択手段
207 レスポンス情報記憶手段
208 レスポンス管理手段

【特許請求の範囲】
【請求項1】
複数のブラウザを用いたメッセージの送受信を中継するメッセージ中継サーバを備え、
前記メッセージ中継サーバは、
メッセージ取得用のリクエストに対するレスポンスと前記リクエストに含まれるURLとを対応づけて記憶するレスポンス記憶手段と、
新たなリクエストを受信すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記レスポンス記憶手段から抽出するURL抽出手段とを含み、
前記URL抽出手段が抽出した前記URLを用いて、メッセージ取得用のリクエストを生成するリクエスト生成手段を備えた
ことを特徴とするメッセージ送受信システム。
【請求項2】
メッセージ中継サーバは、リクエストを受信すると、受信した前記リクエストに対応するレスポンスがレスポンス記憶手段に記憶されているか否かを判定する判定手段と、
前記判定手段が記憶されていないと判定すると、送信されたメッセージを記憶する記憶部から、受信した前記リクエストに基づいてメッセージを抽出するメッセージ抽出手段とを備え、
URL抽出手段は、前記判定手段が記憶されていると判定すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記レスポンス記憶手段から抽出する
請求項1記載のメッセージ送受信システム。
【請求項3】
ユーザ同士が遠隔で協働作業をするためのブラウザを搭載したユーザ端末と、
前記ユーザ端末と通信するサーバ装置上に実装されたメッセージの送受信を中継するメッセージ中継サーバと、
キャッシュ機能を有するプロキシサーバとを備え、
前記ユーザ端末は、
前記協働作業をするための処理を実行するためのアプリケーションと、
前記アプリケーションに従って実行される通信を制御する通信管理手段と、
当該ユーザ端末が生成したメッセージをメッセージ送信要求として前記メッセージ中継サーバに送信する上り通信手段と、
前記メッセージ中継サーバにメッセージ取得要求を送信して他のユーザ端末が生成したメッセージを受信する下り通信手段と、
前記メッセージ中継サーバ上のキュー中の受信したメッセージが存在する位置の位置情報と、前記メッセージを処理するアプリケーションを特定する情報とを関連づけて記憶するポインタ記憶手段とを含み、
前記メッセージ中継サーバは、
ユーザ同士の遠隔協働作業のセッションを管理し、前記セッションと前記セッションにおけるキューとの関係を管理するセッション管理手段と、
前記ユーザ端末からメッセージ送信要求として送信されたメッセージを受信するメッセージ受信手段と、
前記メッセージをキューに蓄積するメッセージ蓄積制御手段と、
前記メッセージ蓄積制御手段に従って、セッション毎に用意されたキューにメッセージを記憶するキュー記憶手段と、
前記ユーザ端末からのメッセージ取得要求を受信して、該メッセージ取得要求で示されるメッセージ又は過去に当該メッセージを返信した時のメッセージ取得要求の内容を返信するメッセージ送信手段と、
前記ユーザ端末からのメッセージ取得要求に応じて、前記キュー記憶手段に蓄積されたメッセージの中から前記ユーザ端末に返信するべきメッセージを検索して、当該メッセージのメッセージ中継サーバ内での管理情報と共にメッセージを取得する送信メッセージ選択手段と、
前記メッセージ送信手段が送信したメッセージの当該メッセージ中継サーバ内での管理情報と、前記メッセージ送信手段が受信した前記ユーザ端末からのメッセージ取得要求の内容とをレスポンス情報として記憶するレスポンス情報記憶手段と、
前記ユーザ端末からメッセージ取得要求を受信する際、該メッセージ取得要求で示されメッセージを既に送信済みかどうか判断し、送信済みの場合には、メッセージ取得要求の内容を前記メッセージ送信手段に出力するレスポンス管理手段とを
含むことを特徴とするメッセージ送受信システム。
【請求項4】
メッセージ送信手段は、ユーザ端末からのメッセージ取得要求に対してメッセージを返信する際、メッセージのメッセージ中継サーバでの管理情報と共に当該メッセージ取得要求の内容をレスポンス情報記憶手段に記憶させる
請求項3記載のメッセージ送受信システム。
【請求項5】
レスポンス管理手段は、メッセージ送信手段においてユーザ端末からのメッセージ取得要求に対してメッセージを返信する際、取得要求されているメッセージが既に過去に返信されているか否かを判定し、過去に返信していると判定した場合、当該メッセージを返信した時に受信した下り通信要求の内容を取得し、
メッセージ送信手段は、前記レスポンス管理手段が取得した前記メッセージ取得要求の内容をユーザ端末に送信する
請求項3記載のメッセージ送受信システム。
【請求項6】
下り通信手段は、メッセージ中継サーバからメッセージ取得要求の内容が返信された場合、返信された前記メッセージ取得要求の内容に従ってメッセージ取得要求を再度生成し、メッセージ取得要求に当該ユーザ端末を操作しているユーザを示すユーザ情報を付加情報として指定する
請求項3記載のメッセージ送受信システム。
【請求項7】
メッセージ送信手段は、ユーザ端末からのメッセージ取得要求を受信した際、前記メッセージ取得要求の内容に含まれるユーザ情報と前記メッセージ取得要求に付加情報として指定されているユーザ情報とを比較し、ユーザ情報が合致しなければ、メッセージ蓄積制御手段によって蓄積されているメッセージを返信する際に、前記メッセージにキャッシュにミスしたことを示す付加情報を追加する
請求項3記載のメッセージ送受信システム。
【請求項8】
下り通信手段は、メッセージ中継サーバからメッセージが返信されてきた場合、返信の付加情報にキャッシュに失敗したことを示す情報が付加されているか否かを確認し、付加されていれば、前記メッセージ中継サーバから取得したメッセージ取得要求の内容に従ったメッセージ取得要求の再生成を中止する
請求項3記載のメッセージ送受信システム。
【請求項9】
複数のブラウザを用いたメッセージの送受信を中継するメッセージ中継サーバであって、
メッセージ取得用のリクエストに対するレスポンスと前記リクエストに含まれるURLとを対応づけて記憶するレスポンス記憶手段と、
新たなリクエストを受信すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記レスポンス記憶手段から抽出するURL抽出手段とを
備えたことを特徴とするメッセージ中継サーバ。
【請求項10】
リクエストを受信すると、受信した前記リクエストに対応するレスポンスがレスポンス記憶手段に記憶されているか否かを判定する判定手段と、
前記判定手段が記憶されていないと判定すると、送信されたメッセージを記憶する記憶部から、受信した前記リクエストに基づいてメッセージを抽出するメッセージ抽出手段とを備え、
URL抽出手段は、前記判定手段が記憶されていると判定すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記レスポンス記憶手段から抽出する
請求項9記載のメッセージ中継サーバ。
【請求項11】
メッセージ取得用のリクエストに対するレスポンスと前記リクエストに含まれるURLとを対応づけて記憶部に記憶するレスポンス記憶ステップと、
新たなリクエストを受信すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記記憶部から抽出するURL抽出ステップと、
抽出した前記URLを用いて、メッセージ取得用のリクエストを生成するリクエスト生成ステップとを
含むことを特徴とするメッセージ送受信方法。
【請求項12】
リクエストを受信すると、受信した前記リクエストに対応するレスポンスが記憶部に記憶されているか否かを判定する判定ステップと、
記憶されていないと判定すると、送信されたメッセージを記憶する記憶部から、受信した前記リクエストに基づいてメッセージを抽出するメッセージ抽出ステップとを含み、
URL抽出ステップで、記憶されていると判定すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記レスポンス記憶手段から抽出する
請求項11記載のメッセージ送受信方法。
【請求項13】
複数のブラウザを用いたメッセージの送受信を中継するコンピュータに、
メッセージ取得用のリクエストに対するレスポンスと前記リクエストに含まれるURLとを対応づけて記憶部に記憶する記憶処理と、
新たなリクエストを受信すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記記憶部から抽出するURL抽出処理と、
抽出した前記URLを用いて、メッセージ取得用のリクエストを生成するリクエスト生成処理とを
実行させるためのメッセージ送受信用プログラム。
【請求項14】
コンピュータに、
リクエストを受信すると、受信した前記リクエストに対応するレスポンスが記憶部に記憶されているか否かを判定する判定処理と、
記憶されていないと判定すると、送信されたメッセージを記憶する記憶部から、受信した前記リクエストに基づいてメッセージを抽出するメッセージ抽出処理とを実行させ、
URL抽出処理で、記憶されていると判定すると、受信した前記リクエストに対応するレスポンスと対応づけられたURLを前記レスポンス記憶手段から抽出する処理を実行させる
請求項13記載のメッセージ送受信用プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2011−34511(P2011−34511A)
【公開日】平成23年2月17日(2011.2.17)
【国際特許分類】
【出願番号】特願2009−182745(P2009−182745)
【出願日】平成21年8月5日(2009.8.5)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLASH
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】