説明

システム及びメッセージ中継サーバ及び端末装置

【課題】複数の端末装置に実装されたWebブラウザがWebサーバに設けられたメッセージ中継サーバを介してメッセージのやりとりをすることにより各Webブラウザの同期をとるシステムにおいて、メッセージ中継サーバの負担を軽減する。
【解決手段】メッセージ中継サーバ200は、各端末装置120から送信されてきた、該端末装置120におけるWebブラウザ300に実装されたいずれかのアプリケーションソフトウェア304の動作により生じた上り通信メッセージを、受信順にキューに記憶する。端末装置に実装されたWebブラウザ300は、各アプリケーションソフトウェアについて、該アプリケーションソフトウェアがメッセージ中継サーバ200上のキューのどの位置までのメッセージを読み込んだかを管理し、下り通信用リクエストを送信する際に、メッセージ中継サーバ200に通知する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の端末がWebサーバを介して会議などの協働作業を実施する技術に関する。
【背景技術】
【0002】
インターネットの発展により、ユーザがコンピュータに実装されたWebブラウザを利用してWWW(World Wide Web)上に配置されたWebページを閲覧することは一般的に行われている。近年、Webブラウザは、コンピュータとして一般的なPC(Personal Computer)のみならず、携帯電話やゲーム端末、テレビ器、ビデオ機器などにも実装されるようになっている。
【0003】
また従来、遠隔に離れたユーザ同士がネットワークを介して会議などの共同作業を実施するための遠隔協働システムが提案されている。遠隔協働システムの利用形態として、ユーザ同士が同じ資料や図表などを同時に参照、描画したり、ファイルを互いに送受信したりする遠隔会議システムがある。このような遠隔会議システムでは、予めまたは一時的にユーザ同士である期間内の1つのグループを形成し、そのグループに属しているユーザ間で、各端末上で行った操作を操作メッセージとしてやりとりし、各端末で操作メッセージに対応した操作を再現することで遠隔に離れたユーザ間の会議を実現する。このようなグループの参加および期間はセッションとして管理され、セッションが継続している間は、そのセッションのメンバが操作メッセージをやりとりできるように制御される。
【0004】
一般的に、このような遠隔協働システムを実現するために、ユーザが利用する端末で動作するプログラムは、上り通信として自端末で行われた操作を操作メッセージとして他の端末に送信し、下り通信として他の端末から送信された操作メッセージを受信してメッセージに記述されている操作内容を自端末上で実行する機能を持つ。
【0005】
特許文献1には、Webブラウザをクライアントプログラムとして用いた遠隔協働システムが提案されている。このシステムでは、Webサーバ上に配置された表データが更新されるたびに、そのURLはメッセージとして各端末に送信される。各端末において、Webブラウザは、メッセージが示すURLを表示して更新された表データを表示する。
【0006】
また、特許文献2には、Webブラウザにより表示中のWebページに対してある端末のユーザが行ったスクロールやクリック、テキスト入力などの操作をメッセージとして他の端末に送信し、メッセージを受信した他の端末のWebブラウザはそのメッセージに記述されている内容に従って操作を再現することで、表示中のWebページに対する操作を各端末間で同期させるシステムが開示されている。
【0007】
Webブラウザをクライアントプログラムとして利用し、遠隔協働システムにおける操作の同期を実現するためには、メッセージの送信処理(上り通信)及び受信処理(下り通信)の機能を各端末のWebブラウザ上に実装する必要がある。Webブラウザは、他の端末のWebブラウザと直接通信する機能を備えていないため、通常、Webブラウザ間でやりとりされるメッセージを中継する手段(以下メッセージ中継サーバという)をWebサーバに実装し、該メッセージ中継サーバによりWebブラウザ間のメッセージを中継する。
【0008】
WebブラウザとWebサーバとの通信には、HTTP(Hyper Text Transport Protocol)プロトコルが利用される。該プロトコルでは、基本的にWebブラウザがリクエストの送信元となり、WebサーバはWebブラウザからのリクエストを受け取ってからそのリクエストに応じた処理を実施する。したがって、上述したメッセージの上り通信については、通常、WebブラウザがHTTPリクエストを用いてメッセージ中継サーバにメッセージを届ける。一方、下り通信については、メッセージ中継サーバが能動的にWebブラウザに向かって通信を開始する手段がないため、通常の手段では実現できない。
【0009】
特許文献2には、下り通信を実現するための手法が提案されている。この手法では、メッセージ中継サーバは各ブラウザが上がり通信で送信してきたメッセージを保持しておき、Webブラウザは、下り通信のために所定の間隔でメッセージ中継サーバにリクエスト(以下、下り通信用リクエストという)を送信する。そして、メッセージ中継サーバは、Webブラウザからの下り通信用リクエストを受信すると、該リクエストへのレスポンスとして、保持しているメッセージをリクエスト元のWebブラウザに送信する。これにより、完全なリアルタイムではないが所定間隔の遅延をおいて下り通信が実現され、各Webブラウザはメッセージを取得することが可能になる。この手法を、以下ポーリング手法という。
【0010】
上記ポーリング手法を適用したシステムでは、メッセージ中継サーバがWebブラウザからの上り通信で受信したメッセージをすぐに他のWebブラウザに送信することができず、Webブラウザからの定期的な下り通信用リクエストを待つ必要がある。また、メッセージ中継サーバに既にメッセージがあるか否かに関らず、各Webブラウザは任意のタイミングで上り通信でメッセージをサーバに送信する。したがって、Webブラウザからのメッセージを一定期間蓄積するバッファをメッセージ中継サーバに備える必要がある。このバッファは、通常、Webブラウザから受け取ったメッセージを受け取った順に蓄積し、Webブラウザからの下り通信用リクエストがあった時に受け取った順に送信するキューとして実装される。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2003−259323号公報
【特許文献2】特表2002−514332号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
協働作業のセッションに多人数が同時に参加できるシステムの場合、セッション開始当初から全てのWebブラウザがそのセッションに参加しているとは限らず、セッションの途中で参加するWebブラウザが随時増減する可能性がある。途中でセッションに参加したWebブラウザも他のWebブラウザと同じ状態にしなければ協働作業が成り立たないため、途中から参加したWebブラウザに対して、以前送受信されたメッセージを全て送信して、そのメッセージの内容を実行させて他のWebブラウザと同じ状態にするための追い付き処理が行われる。この追い付き処理を実現するためには、セッション開始時からの全てのメッセージを保存しておく必要がある。
【0013】
また、協働作業で行う作業は、ドキュメントのレビュー、CADなどの設計図面の閲覧、オンラインチャット、ファイルの配信など多岐にわたり、Webブラウザにおいてはそれらに対応するアプリケーションも異なる。それぞれのアプリケーションは、各作業を実施するためにメッセージの送受信を行うが、それぞれのアプリケーションが送受信するメッセージの形式はアプリケーション毎に決まっており、ほとんどの場合、異なるアプリケーション同士ではメッセージ内容の互換性はない。したがって、メッセージ中継サーバはキューで管理するメッセージをアプリケーション毎に管理する必要がある。また、全てのWebブラウザで同じアプリケーションが動作しているとは限らず、この場合、各Webブラウザで受信を必要とするメッセージが異なる。
これらの理由により、メッセージ中継サーバではセッション毎にメッセージ蓄積用のキューを用意し、当該キューにおいては、各Webブラウザの追い付き処理用にセッション開始からの全てのメッセージを保存しておく必要がある上に、Webブラウザが通常の状態か追い付き処理中かを管理する必要がある。また、Webブラウザ毎に、アプリケーション毎にキューのどの位置にそのWebブラウザの当該アプリケーションが必要としているメッセージが保存されているかを管理する必要がある。
【0014】
このようなキューの管理処理をメッセージ中継サーバで一元的に実装した場合、全てのWebブラウザ及びそのWebブラウザ上で動作しているアプリケーションの状態の追跡および監視をする必要がある。また、一般にWebブラウザは、ユーザの操作やネットワークの障害などによりその動作が急に停止したりするなどのことにより、その状態を把握できなくなる事態が多々発生する。さらに、メッセージ中継サーバでは、全てのアプリケーション毎にどこまでキューを読み込んだかを逐一管理する必要がある。これでは利用者や端末が増えるとサーバ上での管理が非常に複雑になり、遠隔協働サービスの継続が難しくなる。
【0015】
本発明は、上記事情に鑑みてなされたものであり、遠隔協働システムにおいて、メッセージの管理を簡単にし、メッセージ中継サーバの負荷を軽減できる技術を提供する。
【課題を解決するための手段】
【0016】
本発明の1つの態様は、システムである。このシステムは、複数の端末装置と、該複数の端末装置とネットワークを介して接続されたWebサーバを有する。
端末装置は、ユーザ同士が協働作業をするためのユーザインタフェースとして利用し、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えたWebブラウザが実装されている。
【0017】
Webサーバは、WWW(World Wide Web)を介して各前記Webブラウザと通信可能であり、メッセージ中継サーバが設けられている。このメッセージ中継サーバは、キューを有し、端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順に前記キューに記憶すると共に、端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させる。
【0018】
端末装置は、アプリケーションID管理部とポインタ記憶部を備える。アプリケーションID管理部は、該端末装置のWebブラウザに実装された各アプリケーションソフトウェアに対して、ウェブブラザ毎、かつアプリケーションソフトウェア毎に異なるアプリケーションIDを付与する。ポインタ記憶部は、各前記アプリケーションIDと、該アプリケーションIDに対応するアプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、前記メッセージ中継サーバから最後に受信した当該メッセージタイプを有するメッセージの、前記メッセージ中継サーバの前記キューにおける位置を示す位置情報であるポインタとを対応付けて記憶する。
【0019】
端末装置は、自身のWebブラウザに実装されたいずれかのアプリケーションソフトウェアの動作によりメッセージが生じた際に、該メッセージのメッセージタイプと、該アプリケーションソフトウェアの前記アプリケーションIDと、メッセージ内容とが含まれる前記上り通信メッセージを前記メッセージ中継サーバに送信する。
【0020】
また、端末装置は、所定時間間隔で、前記ポインタ記憶部を参照して、自身のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプとアプリケーションIDとポインタとを対応付けてなるアプリケーションリクエストが含まれる前記下り通信用リクエストを作成して前記メッセージ中継サーバに送信する。その後、該下り通信用リクエストに応じて前記メッセージ中継サーバから返送された、前記キューにおける位置情報とメッセージタイプとメッセージ内容とを対応付けてなる下り通信メッセージを含むレスポンスから、各下り通信メッセージに含まれるメッセージ内容を、該メッセージ内容に対応するメッセージタイプと同一のメッセージタイプを取り扱うアプリケーションソフトウェアに分配すると共に、前記レスポンスから、メッセージタイプ毎の前記位置情報の最大値を取得して、該最大値で前記ポインタ記憶部における該メッセージタイプに対応するポインタを更新する。
前記メッセージ中継サーバは、前記上り通信メッセージを受信した際に、該上り通信メッセージと、該上り通信メッセージの受信順に対応した位置情報とを対応付けて前記キューに記憶し、
【0021】
前記下り通信用リクエストを受信した際に、該下り通信用リクエストに含まれる各アプリケーションリクエストに対して、前記キューから、該アプリケーションリクエストに含まれるポインタが示す位置情報より大きい値を有し、かつ、該アプリケーションリクエストに含まれるメッセージタイプと同一のメッセージタイプに対応する位置情報を選出すると共に、選出したすべての位置情報について、該位置情報と、該位置情報に対応するメッセージタイプと、該位置情報に対応するメッセージ内容とからなる下り通信メッセージを作成して、位置情報の値の小さい順に前記レスポンスとして、リクエスト元の端末装置に送信する。
【0022】
なお、上記態様のシステムを方法や装置に置き換えて表現したもの、該システムに含まれるメッセージ中継サーバと端末装置、及びコンピュータをメッセージ中継サーバまたは端末装置として動作せしめるプログラムも、本発明の態様としては有効である。
【発明の効果】
【0023】
本発明にかかる技術によれば、遠隔協働システムにおいて、メッセージ中継サーバは、各Webブラウザの動作の状態やそのWebブラウザ上で動作しているアプリケーションの種類、各アプリケーションがどこまでキューの中のメッセージを読み込んだかを管理する必要が無くなり、その実装を簡単にすることができる。
【図面の簡単な説明】
【0024】
【図1】本発明の実施の形態にかかるシステムを示す図である。
【図2】図1に示すシステムのWebサーバにおけるメッセージ中継サーバを示す図である。
【図3】図1に示すシステムの端末装置におけるWebブラウザを示す図である。
【図4】図2に示すメッセージ中継サーバにおけるセッション開始時の処理を示すフローチャートである。
【図5】メッセージ中継サーバのセッション管理部により管理されているセッションIDとユーザIDの例を示す図である。
【図6】メッセージ中継サーバのセッション管理部が作成したキューの初期状態の例を示す図である。
【図7】メッセージが蓄積されたときのキューの例を示す図である。
【図8】端末装置において、アプリケーションの処理開始時におけるWebブラウザの処理を示すフローチャートである。
【図9】端末装置のポインタ記憶部に記憶された内容の例を示す図である。
【図10】上り通信時におけるWebブラウザの処理を示すフローチャートである。
【図11】上り通信メッセージの一例を示す図である。
【図12】上り通信時におけるメッセージ中継サーバの処理を示すフローチャートである。
【図13】下り通信に関してのWebブラウザの処理を示すフローチャートである。
【図14】下り通信用リクエストの例を示す図である。
【図15】下り通信用リクエストへのレスポンスの例を示す図である。
【図16】Webブラウザにおけるポインタ記憶部の更新後の例を示す図である。
【図17】下り通信時におけるメッセージ中継サーバの処理を示すフローチャートである。
【発明を実施するための形態】
【0025】
以下、図面を参照しながら、本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【0026】
図1は、本発明の実施の形態にかかるシステム100を示す。システム100は、遠隔に離れたユーザ同士が協働作業を実施するためのものであり、Webサーバ110と、複数の端末装置120とを備え、Webサーバ110と各端末装置120は、インターネットなどのネットワーク130を介して接続されている。
【0027】
各端末装置120には、ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザ300が実装されており、これらのWebブラウザ300は、例えばHTTPプロトコルを用いてWebサーバ110と通信する。Webサーバ110には、各Webブラウザ300間のメッセージを中継するメッセージ中継サーバ200が設けられている。
【0028】
図2は、メッセージ中継サーバ200を示す。メッセージ中継サーバ200は、セッション管理部210と、メッセージ受信部220と、送信メッセージ蓄積部230と、キュー記憶部240と、下り通信レスポンス部250を有する。下り通信レスポンス部250は、送信メッセージ選択部252と、メッセージ送信部254を備える。
【0029】
セッション管理部210は、ユーザ同士の協働作業のセッションを管理し、セッションと後述するキューとの関係を保持する。メッセージ受信部220は、各端末装置120、具体的にはこれらの端末装置120におけるWebブラウザ300から上り通信で送信してきたメッセージ(以下上り通信メッセージという)を受信する。送信メッセージ蓄積部230は、メッセージ受信部220が受信した上り通信メッセージをキュー記憶部240に記憶させる。キュー記憶部240は、セッション毎に用意されたキュー242を有し、各キュー242には、該セッションに属する各Webブラウザ300からの上り通信メッセージが受信順に記憶されている。送信メッセージ選択部252は、Webブラウザ300からの下り通信用リクエストに応じて、キュー記憶部240に記憶された上りメッセージの中から、下り通信用リクエストをしたWebブラウザ300に送信すべきメッセージを選択する。送信メッセージ選択部252は、送信メッセージ選択部252が選択したメッセージを、下り通信用リクエストをしたWebブラウザ300に送信する。
【0030】
図3は、各端末装置120に実装されたWebブラウザ300を示す。Webブラウザ300は、当該Webブラウザ300を利用するユーザを示すユーザIDを管理するユーザID管理部302と、協働作業をするための処理を実行するための複数のアプリケーションソフトウェア(以下単にアプリケーションという)304と、該Webブラウザ300上で動作する各アプリケーション304を管理するためのアプリケーション管理部306と、各アプリケーション304を一意に指定するためのアプリケーションID(一時IDともいう)を管理する一時ID管理部308と、各アプリケーション304で生成されたメッセージを上り通信としてメッセージ中継サーバ200に送信するための上り通信部310と、メッセージ中継サーバ200にリクエスト(下り通信用リクエスト)を送信してメッセージを取得するための下り通信部312と、メッセージ中継サーバ200へ下り通信用リクエストを送信する間隔(リクエスト間隔)を管理する下りタイミング管理部314と、下り通信部312が取得したメッセージを、該メッセージに対応したアプリケーション304に分配するメッセージ分配部316と、上記メッセージがメッセージ中継サーバ200上のキューにおける位置情報と、該メッセージを処理するアプリケーション304とを関連付けて蓄積するポインタ記憶部320とを備える。
【0031】
Webブラウザ300の上記各機能ブロックは、一般にHTML(Hyper Text Markup Language)と呼ばれる記述方法で定義され、さらにはJava(登録商標)Script、ActiveX、Flashなどと一般的に呼称されるWebブラウザ上でプログラムを動作させる仕組みを用いて実装される。
【0032】
次いで、メッセージ中継サーバ200とWebブラウザ300の動作と共に、メッセージ中継サーバ200とWebブラウザ300の各機能ブロックの詳細を説明する。
【0033】
図4は、メッセージ中継サーバ200でのセッション開始時の処理を示すフローチャートである。
まず、メッセージ中継サーバ200において、セッション管理部210は、遠隔協働作業のセッションを作成する(S100)。この時、セッションの開始方法については従来知られている任意の手法を用いてもよい。例えば、セッション管理部210と電話回線交換機とが接続された状態において、電話による通話の開始をセッションの開始とし、通話者同士をセッションの参加者とすればよい。また、別途、端末装置120上のWebブラウザ300からセッション管理部210に接続し、Webブラウザ300側の操作によってセッションの開始とセッションの参加者が定義されるようにしてもよい。
【0034】
セッション管理部210は、当該セッションを示すID(セッションID)と、ユーザを識別するためのID(ユーザID)とを関連付けて管理する。なお、セッションIDとユーザIDを関連付けて記憶する手段としては、セッション管理部210自身であってもよいし、メッセージ中継サーバ200に設けられた別の記憶手段や、メッセージ中継サーバ200以外のデータベースサーバといった別のサーバであってもよい。
【0035】
図5は、セッション管理部210により管理されているセッションIDとユーザIDの例を示す。
図示の例では、「User1」と「User2」はセッション「000001」に参加しており、「UserA」、「UserB」、「UserC」はセッション「000002」に参加している。
【0036】
セッションが開始されると、セッション管理部210は、セッション毎に、該セッションのセッションIDに対応するキューを作成する(S102)。図6は、セッション管理部210がセッション「000001」に対して作成したキューの例を示す。
【0037】
図6に示すように、セッション管理部210が作成したキュー242には、Webブラウザ300から上り通信で送信されてきたメッセージ毎に、「シーケンス番号」と、「一時ID」と、「メッセージタイプ」と、「メッセージ内容」とを対応付けて格納するように構成されている。これらの各項目の意味については後述する。
【0038】
セッション管理部210がキューを作成した段階では、まだメッセージが1つも蓄積されていない。その後、協働作業の開始に従って、各端末装置120におけるWebブラウザ300からメッセージがメッセージ中継サーバ200に送信される。メッセージ中継サーバ200において、送信メッセージ蓄積部230は、メッセージ受信部220により受信したメッセージを、キュー記憶部240における当該キューに蓄積させる。
【0039】
図7は、メッセージがある程度蓄積された後のキューの例を示す。これも、セッション「000001」のキューの一例である。
【0040】
1列目の「シーケンス番号」は、メッセージの受信順に対応し、本実施の形態においては、0から始まり1ずつインクリメントする整数が用いられる。2列目の「一時ID」は、当該メッセージを送信したWebブラウザ300上で動作するアプリケーションを示すIDであり詳細については後述する。3列目の「メッセージタイプ」は、そのメッセージを用いるアプリケーションの種別を表す文字列である。4列目の「メッセージ内容」はメッセージの本体であり、文字だけでなく任意のデータを値であり得る。なお、「「一時ID」と、「メッセージタイプ」と、「メッセージ内容」は、端末装置120から送信されてきた上り通信メッセージに含まれたものである。
【0041】
図7に示すように、例えば、シーケンス番号「0」のメッセージは、一時ID「A0001」を持つアプリケーションから送信されており、メッセージタイプは「CHAT」でメッセージ内容として「HELLO」が指定されている。
【0042】
また、シーケンス番号「3」のメッセージは、一時ID「B0002」を持つアプリケーションから送信されており、メッセージタイプは「FILE」でメッセージ内容として「FILE=BCD.BIN」が指定されている。
【0043】
図8は、端末装置120において、アプリケーション304の処理開始時におけるWebブラウザ300の処理を示すフローチャートである。アプリケーション304の処理は、例えば端末装置120のユーザがWebブラウザ300を用いて起動することにより開始される(S110)。アプリケーション304の起動の仕方は、通常のWebブラウザと同様である。例えば、WebブラウザにURL(Uniform Resource Locator)を指定することで、当該URLに関連づけられたHTMLが読み込まれ、HTML上の定義に応じてWebブラウザ300の各機能ブロックが動作する。この仕組みは通常のWebブラウザを利用した操作と同様であり、ここでは詳細な説明を省略する。
【0044】
アプリケーションの処理が開始されると、アプリケーション管理部306は、ユーザID管理部302を用いて、当該Webブラウザ300を利用しているユーザのユーザIDを取得する(S112)。ユーザIDの取得方法は、従来知られている種々の方法を用いることができる。例えば、HTML中に記述されている、ユーザIDを示す文字列を取得する方法や、Webブラウザに一般的に備えられているCookieという仕組みを利用する方法や、ユーザに入力を促すなどの方法が考えられる。
【0045】
次に、アプリケーション管理部306は、当該Webブラウザ300上で動作するアプリケーション304を初期化すると共に、一時ID管理部308から各アプリケーション304の一時IDを取得する(S114)。
【0046】
一時IDは、Webブラウザ300上で動作しているアプリケーション304を一意に識別するために利用するものである。一時ID管理部308は、アプリケーション304に対して、Webブラウザ300毎にかつアプリケーション毎に異なる一時IDを付与する。同じユーザが複数のWebブラウザ300を利用して同じアプリケーション304を使っている場合でも、Webブラウザ300毎にそれぞれ異なる一時IDが生成される。また、同一Webブラウザ300においてもURLの変更などにより一度アプリケーション304が終了され、アプリケーション304が再度起上げされた場合には、前の一時IDと異なる一時IDが生成される。
【0047】
一時IDの生成は、例えば、メッセージ中継サーバ200上で現在時刻とIPアドレス、乱数などを元に基となる文字列を作成し、Webブラウザ300上でアプリケーション304毎に基となる文字列に番号を追加して一時IDを生成するなどの方法が考えられる。勿論、Webブラウザ300の一時ID管理部308により、自身が設けられた端末装置120のIPアドレスと現在時刻と乱数などを元に基となる文字列を作成するようにしてもよい。
【0048】
次に、アプリケーション管理部306は、ステップS114で取得した各一時IDを、該一時IDに対応するアプリケーション304に渡す(S116)。
【0049】
各アプリケーション304は、渡された一時IDを記憶し、自身固有の初期化処理を実施する。初期化完了後、該アプリケーション304は、初期化の完了と、自身が使用するメッセージタイプとをアプリケーション管理部306に通知する。これにより、アプリケーション管理部306は、各アプリケーション304のメッセージタイプを取得する(ステップS118)。
【0050】
なお、メッセージタイプは、異なるアプリケーション304ではメッセージタイプが異なる条件を満たせば、いかなる文字列であってもよい。
【0051】
アプリケーション管理部306は、アプリケーション304からメッセージタイプを受け取ると、ポインタ記憶部320に、当該アプリケーション304の一時IDと、メッセージタイプと、初期ポインタとを対応付けて記憶させる(S120)。なお、本実施の形態において、初期ポインタとして、メッセージ中継サーバ200のキューにおける「シーケンス番号」の開始値「0」より1つ小さい「−1」が用いられる。なお、ポインタの意義については後述する。
【0052】
図9は、ポインタ記憶部320の記憶内容の一例を示す。図示のように、ポインタ記憶部320は、アプリケーション304の一時IDと、メッセージタイプと、ポインタとを対応付けて記憶している。例えば、一時ID「C00001」と、メッセージタイプ「CHAT」と、ポインタ「−1」とが対応付けられている。これは、一時IDが「C00001」であるアプリケーションの使用するメッセージタイプが「CHAT」であり、ポインタが初期ポインタの「−1」であることを示す。
【0053】
同様に、一時ID「C00002」と、メッセージタイプ「DOC」と、ポインタ「−1」とが対応付けられている。これは、一時IDが「C00002」であるアプリケーションの使用するメッセージタイプが「DOC」であり、ポインタが初期ポインタの「−1」であることを示す。
【0054】
協働作業の開始にしたがって、各端末装置120において操作がなされ、Webブラウザ300から上り通信でメッセージがメッセージ中継サーバ200に送信され、また下り通信でメッセージ中継サーバ200からWebブラウザ300へメッセージが送信される。
【0055】
まず、上り通信について説明する。
図10は、上り通信時におけるWebブラウザ300の処理を示すフローチャートである。Webブラウザ300において、ユーザの操作などに伴ってアプリケーション304からメッセージの送信が生じた際に(S130)、当該アプリケーション304は、メッセージの内容と、エコーバックフラグをアプリケーション管理部306に出力する(S132)。なお、エコーバックフラグは、アプリケーション304がメッセージを送信した場合に該メッセージを自分自身で取得するか否かを示す真/偽値である。詳細については後述するが、本実施の形態において、エコーバックフラグが真であるメッセージがメッセージ中継サーバ200に送信された場合に、このメッセージは、後に下り通信で、該メッセージを上り通信で送信したWebブラウザ300に戻されるようになっている。
【0056】
アプリケーション管理部306は、アプリケーション304からのエコーバックフラグを確認し、その値が真であるときには、当該メッセージに対応する一時IDを、アプリケーション304の一時IDから、一時ID管理部308が生成しない特殊ID(例えば「0」)に変更して、上り通信部310を介して該メッセージを送信する(S134:Yes、S136、S138)。
【0057】
一方、アプリケーション304からのエコーバックフラグの値が偽であるときには、アプリケーション管理部306は、当該アプリケーション304の一時IDでメッセージを送信する(S134:No、S138)。
【0058】
なお、ステップS138において送信されるメッセージは、ユーザID管理部302から取得されたユーザIDと、一時ID(エコーバックフラグが偽の場合は特殊ID)と、メッセージタイプと、メッセージ内容とからなる。上り通信部310は、上り通信用HTTPリクエストによりメッセージを送信する。
【0059】
図11は、上り通信用HTTPリクエストの一例を示す。この例では、メッセージ中継サーバ200のメッセージ受信部220を示す「/Up」に対して、ユーザIDが「User1」であり、メッセージタイプが「CHAT」であり、一時IDが「C0001」であり、メッセージ内容が「こんばんは」であるメッセージが送信される。なお、エコーバックフラグの値が真である場合には、この一時IDの部分は例えば「0」になる。
【0060】
図12は、上り通信時におけるメッセージ中継サーバ200の処理を示すフローチャートである。メッセージ中継サーバ200において、メッセージ受信部220により、上り通信用HTTPリクエストを受信する(S140)。メッセージ受信部220は、受信したリクエストを送信メッセージ蓄積部230に出力する。
【0061】
送信メッセージ蓄積部230は、渡されたリクエストからユーザID、メッセージタイプ、一時ID(特殊IDを含む)を取り出すと共に、セッション管理部210に問合せをし、該ユーザIDに対応するセッションIDを取得する(S142、S144)。そして、送信メッセージ蓄積部230は、キュー記憶部240における、該セッションIDに対応するキューを特定し、該キューのシーケンス番号の最大値を取得する(S146、S148)。
【0062】
送信メッセージ蓄積部230は、取得したシーケンス番号に最大値に1を加算して、加算後のシーケンス番号で該メッセージをキューに追加する(S152)。具体的には、加算後のシーケンス番号と、一時IDと、メッセージタイプと、メッセージ内容とを対応付けてキューに保存する。
【0063】
次いで、下り通信について説明する。
図13は、下り通信について、Webブラウザ300の処理を示すフローチャートである。Webブラウザ300において、アプリケーション管理部306は、下り通信の開始を下りタイミング管理部314に指示する(S150)。このとき、アプリケーション管理部306は、ユーザID管理部302からユーザIDを取得して下りタイミング管理部314に渡す。その後、下り通信のタイミングは、下りタイミング管理部314により管理される。
【0064】
アプリケーション管理部306から下り通信の開始が指示されると、下りタイミング管理部314は、ポインタ記憶部320に登録されている各メッセージタイプとポインタと一時IDを取得する(S152)。下りタイミング管理部314は、ステップS154で取得した各メッセージタイプとポインタと一時IDを下り通信部312に出力して、下り通信用のHTTPリクエストを送信させる(S154)。
【0065】
図14は、下り通信用のHTTPリクエストの一例を示す。なお、分かりやすいように、この例は、下り通信用のHTTPリクエストの主な部分のみを記述したものである。この例では、メッセージ中継サーバ200のメッセージ送信部254を示す「/Down」に対して、ユーザIDが「User1」であり、1つ目のメッセージタイプ、及びそれに対応する一時IDとポインタがそれぞれ「CHAT」、「C0001」、「−1」であり、2つ目のメッセージタイプ、及びそれに対応する一時ID、ポインタがそれぞれ「DOC」、「C0002」、「−1」であるリクエストが送信される。
【0066】
メッセージ中継サーバ200は、下り通信用のHTTPリクエストに応じて、蓄積しているメッセージのうちから送信すべきメッセージを選出して、レスポンスとしてリクエストの送信元のWebブラウザ300に送信する。メッセージ中継サーバ200によるメッセージの選出処理については、後にメッセージ中継サーバ200の処理を説明する際に詳細に説明する。ここで図15を参照してメッセージ中継サーバ200からのレスポンスの一例を説明する。
【0067】
図15に示すレスポンスは、メッセージ中継サーバ200のキュー記憶部240に図7に示すキューが記憶されており、図14に示す下り通信用のHTTPリクエストに対してメッセージ中継サーバ200が送信したものである。レスポンスにおいて、1つのメッセージは、シーケンス番号と、メッセージタイプと、メッセージ内容から構成される。メッセージ間には、区切りを示す文字列が設けられている。なお、図示の例では、メッセージの区切りを示す文字列として、<――区切り――>が用いられているが、メッセージの区切りを示すことができれば、いかなる文字列であってもよい。
【0068】
図15に示す例の場合、シーケンス番号が「0」、「1」、「2」に夫々対応するメッセージが選出され送信されている。なお、レスポンスにおいて、メッセージは、シーケンス番号が小さいほど先になるように配列されている。
【0069】
図13に戻り、Webブラウザ300における下り通信処理を引き続き説明する。
Webブラウザ300において、下り通信部312は、メッセージ中継サーバ200からのレスポンスを受信すると、レスポンスを解析して中に含まれたメッセージを1つずつ取り出してメッセージ分配部316に出力する(S156、S158)。
【0070】
メッセージ分配部316は、下り通信部312から受け取った各メッセージについて、受信順(すなわちレスポンス中の配列順)に、ポインタ記憶部320に記憶された、該メッセージのメッセージタイプと同一のメッセージタイプに対応するポインタの値を、そのメッセージのシーケンス番号に書き換える(S160)。また、メッセージ分配部316は、ポインタ記憶部320から、上記ポインタと同じ行に記憶された一時IDを取得して、該一時IDを有するアプリケーション304に当該メッセージの内容を出力する(S162)。各アプリケーション304は、メッセージの内容に従ってそれぞれ処理を実行する。
【0071】
ステップS158における書換えがなされた後、図9に示すポインタ記憶部320の記憶内容は、図16に示すようになる。図16に示すように、メッセージタイプ「CHAT」と一時ID「C0001」に対応するポインタが「2」になっており、メッセージタイプ「DOC」と一時ID「C0002」に対応するポインタが「1」になっている。
【0072】
その後、一定時間の経過後に、ステップS152から処理が繰り返される(S164、S152〜)。
【0073】
なお、分かりやすいように、図13は、メッセージ中継サーバ200からのレスポンスにメッセージが含まれている場合のフローチャートを示している。ステップS156で受け取ったレスポンスにメッセージが含まれている場合には、ステップS158〜ステップS162の処理が行われずに、所定時間経過後に、ステップS152からの処理が繰り返される。
【0074】
図17は、下り通信時にメッセージ中継サーバ200の処理を示すフローチャートである。メッセージ中継サーバ200において、メッセージ送信部254は、上述した下り通信用のHTTPリクエストを受信すると、リクエストからユーザIDと、メッセージタイプと、一時IDと、ポインタとを取り出して送信メッセージ選択部252に渡す(S170、S172)。以下、下り通信用のHTTPリクエスト中のメッセージタイプ、一時ID、ポインタを夫々リクエストメッセージタイプ、リクエスト一時ID、リクエストポインタと呼ぶ。
【0075】
送信メッセージ選択部252は、セッション管理部210に問い合わせをし、メッセージ送信部254から受け取ったユーザIDに対応するセッションIDを取得する(S174)。そして、各リクエストポインタのうちの最小値を取得ポインタとして、該取得ポインタより大きいシーケンス番号に対応するメッセージが、ステップS174で取得したセッションIDに対応するキューにあるか否かを確認する(S176、S178)。
【0076】
該当するメッセージがある場合、送信メッセージ選択部252は、取得ポインタに1を加算して、加算後の取得ポインタと同じシーケンス番号のメッセージを取得する(S178:Yes、S180、S182)。
【0077】
送信メッセージ選択部252は、ステップS182で取得したメッセージのメッセージタイプと同一のリクエストメッセージタイプがあるか否かを確認し(S184)、無い場合には、ステップS178からの処理に戻る一方(S184:No、S178〜)、ある場合には、該リクエストメッセージタイプに対応するリクエスト一時IDと、ステップS182で取得したメッセージの一時IDが一致するか否かをさらに確認する(S184:Yes、S186)。送信メッセージ選択部252は、一時IDが一致する場合には、ステップS178からの処理に戻る一方(S186:Yes、S178〜)、一時IDが一致しない場合には、該リクエストメッセージタイプに対応するリクエストポインタと、ステップS182で取得したメッセージのシーケンス番号とを比較する(S186:No、S188)。
【0078】
送信メッセージ選択部252は、ステップS188における比較の結果、シーケンス番号がリクエストポインタ以下であるときには、ステップS178からの処理に戻る(S188:No、S178〜)一方、シーケンス番号がリクエストポインタより大きいときには、当該シーケンス番号を、選択シーケンス番号として記憶しておくと共に、ステップS178からの処理に戻る(S188:Yes、S190、S178〜)。
【0079】
処理が進み、キューには、取得ポインタより大きいシーケンス番号に対応するメッセージが無くなると(S178:No)、送信メッセージ選択部252は、ステップS190で記憶したすべての選択シーケンス番号に対応するメッセージをキューから取得してメッセージ送信部254に渡す(S196)。メッセージ送信部254は、送信メッセージ選択部252からのすべてのメッセージを、シーケンス番号が小さい順に並べて、図15に示すレスポンスを作成して、下り通信用のHTTPリクエストの送信元のWebブラウザ300に送信する(S98)。
【0080】
なお、図17に示していないが、リクエストポインタより大きいシーケンス番号に対応するメッセージがキューに無いときに(S178:No)、選択シーケンス番号が1つもない場合には、送信メッセージ選択部252は、送信するメッセージがない旨をメッセージ送信部254に通知し、メッセージ送信部254は、メッセージが含まれないレスポンスをWebブラウザ300に返す。
【0081】
このように、本実施の形態のシステム100において、各Webブラウザ300は、自身に実装された各アプリケーション304を、Webブラウザ毎およびアプリケーション毎に異なる一時IDで管理すると共に、該アプリケーション304が、メッセージ中継サーバ200のキューに格納されたメッセージのうちのどのメッセージまで受信したかを示すポインタ(すなわち最後に受信したメッセージのシーケンス番号)を管理する。そして、上がり通信でメッセージ中継サーバ200にメッセージを送信する際に、メッセージ内容と共に、該メッセージを送信するアプリケーション304の一時ID、メッセージタイプも送信する。
【0082】
メッセージ中継サーバ200は、Webブラウザ300ブラウザからの上がり通信でメッセージを受信すると、セッション毎に設けられたキューに、受信順に1つずつインクリメントするシーケンス番号と、一時IDと、メッセージタイプと、メッセージ内容とを対応付けて蓄積する。
【0083】
そして、下り通信に際して、Webブラウザ300は、自身に実装されたすべてのアプリケーション304について、メッセージタイプ、一時ID、ポインタをメッセージ中継サーバ200に送信して下り通信用のHTTPリクエストをする。ここで、1組の「メッセージタイプ、一時ID、ポインタ」をアプリケーションリクエストと呼ぶ。
【0084】
メッセージ中継サーバ200は、下り通信用のHTTPリクエストを受信すると、各アプリケーションリクエストについて、キューから、該アプリケーションリクエストに含まれるポインタより大きいシーケンス番号を有するメッセージのうちの、該アプリケーションリクエストのメッセージタイプと同一のメッセージタイプを有し、かつアプリケーションリクエストの一時IDと異なるイメージを選出して、レスポンスを作成する。
【0085】
また、Webブラウザ300は、レスポンスを受信すると、受信したメッセージのシーケンス番号でポインタを更新する。
こうすることにより、Webブラウザ300は、自身に実装された各アプリケーション304が、メッセージ中継サーバ200に蓄積されたメッセージのうちの、どのメッセージまで受信したかを管理し、メッセージ中継サーバ200の負担を軽減することができる。
また、アプリケーション304は、自身が送信したメッセージも受信する必要がある場合、エコーバックフラグの値を真にすれば、該アプリケーション304は、当該メッセージを上り通信でメッセージ中継サーバ200に送信する際に、メッセージの一時IDを特殊IDに変更する。こうすることにより、メッセージ中継サーバ200のキューには、このメッセージが特殊IDで記憶され、下り通信の際に、図17に示すフローチャートにおけるS186の比較結果が「No」となる。そのため、このメッセージは、該メッセージを送信したWebブラウザ300にも返送される。
これにより、例えば一時退室などで一度セッションから抜けたWebブラウザが再度同じセッションに参加した場合などにおいて、過去に自分が送信したメッセージも再度受信することができ、追い付き処理を簡単に実現することができる。
【0086】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、さまざまな変更、増減を加えてもよい。これらの変更、増減が加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【0087】
例えば、本実施の形態のシステム100において、上り通信部310と下り通信部312が別々になっているが、これらを1つにまとめてもよい。勿論、メッセージ中継サーバ200におけるメッセージ受信部220とメッセージ送信部254を1つにまとめてもよい。
【0088】
また、メッセージ中継サーバ200のキュー記憶部240において、各キューのメッセージタイプ毎のシーケンス番号の最大値を別途保管しておき、下り通信時に、この最大値とリクエストポインタとを比較して、どのメッセージタイプのメッセージが返信対象になるかの判別をより速くできるようにしてもよい。
【符号の説明】
【0089】
100 システム
110 Webサーバ
120 端末装置
130 ネットワーク
200 メッセージ中継サーバ
210 セッション管理部
220 メッセージ受信部
230 送信メッセージ蓄積部
240 キュー記憶部
242 キュー
250 下り通信レスポンス部
252 送信メッセージ選択部
254 メッセージ送信部
300 Webブラウザ
302 ユーザID管理部
304 アプリケーション
306 アプリケーション管理部
308 一時ID管理部
310 上り通信部
312 下り通信部
314 下りタイミング管理部
316 メッセージ分配部
320 ポインタ記憶部

【特許請求の範囲】
【請求項1】
ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザであって、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えた前記Webブラウザが実装された複数の端末装置と、
ネットワークを介して前記複数の端末装置と接続され、WWW(World Wide Web)を介して各前記Webブラウザと通信可能なウェブサーバであって、キューを有し、端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順に前記キューに記憶すると共に、端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させるメッセージ中継サーバを備えた前記Webサーバとを有するシステムにおいて、
前記端末装置は、
自身のWebブラウザに実装された各アプリケーションソフトウェアに対して、ウェブブラザ毎、かつアプリケーションソフトウェア毎に異なるアプリケーションIDを付与するアプリケーションID管理部と、
各前記アプリケーションIDと、該アプリケーションIDに対応するアプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、前記メッセージ中継サーバから最後に受信した当該メッセージタイプを有するメッセージの、前記メッセージ中継サーバの前記キューにおける位置を示す位置情報であるポインタとを対応付けて記憶するポインタ記憶部とを備え、
自身のWebブラウザに実装されたいずれかのアプリケーションソフトウェアの動作によりメッセージが生じた際に、該メッセージのメッセージタイプと、該アプリケーションソフトウェアの前記アプリケーションIDと、メッセージ内容とが含まれる前記上り通信メッセージを前記メッセージ中継サーバに送信し、
所定時間間隔で、前記ポインタ記憶部を参照して、自身のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプとアプリケーションIDとポインタとを対応付けてなるアプリケーションリクエストが含まれる前記下り通信用リクエストを作成して前記メッセージ中継サーバに送信し、
該下り通信用リクエストに応じて前記メッセージ中継サーバから返送された、前記キューにおける位置情報とメッセージタイプとメッセージ内容とを対応付けてなる下り通信メッセージを含むレスポンスから、各下り通信メッセージに含まれるメッセージ内容を、該メッセージ内容に対応するメッセージタイプと同一のメッセージタイプを取り扱うアプリケーションソフトウェアに分配すると共に、前記レスポンスから、メッセージタイプ毎の前記位置情報の最大値を取得して、該最大値で前記ポインタ記憶部における該メッセージタイプに対応するポインタを更新し、
前記メッセージ中継サーバは、
前記上り通信メッセージを受信した際に、該上り通信メッセージと、該上り通信メッセージの受信順に対応した位置情報とを対応付けて前記キューに記憶し、
前記下り通信用リクエストを受信した際に、該下り通信用リクエストに含まれる各アプリケーションリクエストに対して、前記キューから、該アプリケーションリクエストに含まれるポインタが示す位置情報より大きい値を有し、かつ、該アプリケーションリクエストに含まれるメッセージタイプと同一のメッセージタイプに対応する位置情報を選出すると共に、選出したすべての位置情報について、該位置情報と、該位置情報に対応するメッセージタイプと、該位置情報に対応するメッセージ内容とからなる下り通信メッセージを作成して、位置情報の値の小さい順に前記レスポンスとして、リクエスト元の端末装置に送信することを特徴とするシステム。
【請求項2】
前記メッセージ中継サーバは、前記キューから、前記下り通信用リクエストに含まれる各アプリケーションリクエストに対して位置情報を選出する際に、該アプリケーションリクエストに含まれるアプリケーションIDと異なるアプリケーションIDに対応した各位置情報から選出することを特徴とする請求項1または2に記載のシステム。
【請求項3】
前記端末装置は、
自身から送信したメッセージを受信すると設定された際に、前記アプリケーションリクエストに含まれるアプリケーションIDを、前記アプリケーションID管理部が付与することのない特殊IDに変更してから前記下り通信用リクエストを前記メッセージ中継サーバに送信することを特徴とする請求項2に記載のシステム。
【請求項4】
前記端末装置の前記アプリケーションID管理部は、終了されたアプリケーションソフトウェアが再度起動されたときに、該アプリケーションソフトウェアに対して、付与したことの無いアプリケーションIDを付与し直すことを特徴とする請求項2または3に記載のシステム。
【請求項5】
ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザであって、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えた前記Webブラウザが実装された複数の端末装置とネットワークを介して接続され、WWW(World Wide Web)を介して各前記Webブラウザと通信可能なウェブサーバに設けられたメッセージ中継サーバであって、
端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順に記憶するキューと、
端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させる下り通信レスポンス部とを有し、
前記上り通信メッセージは、該メッセージを発生させたアプリケーションソフトウェアに付与された、Webブラウザ毎かつアプリケーションソフトウェア毎に異なるアプリケーションIDと、該アプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、メッセージ内容とが含まれており、
前記下り通信用リクエストは、当該端末装置のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプと、アプリケーションIDと、当該端末装置が最後に受信した当該メッセージタイプを有するメッセージの、前記キューにおける位置を示す位置情報であるポインタとを対応付けてなるアプリケーションリクエストが含まれており、
前記キューは、端末装置からの上り通信メッセージと、該上り通信メッセージの受信順に対応した位置情報とを対応付けて記憶し、
前記下り通信レスポンス部は、端末装置から下り通信用リクエストを受信した際に、該下り通信用リクエストに含まれる各アプリケーションリクエストに対して、前記キューから、該アプリケーションリクエストに含まれるポインタが示す位置情報より大きい値を有し、かつ、該アプリケーションリクエストに含まれるメッセージタイプと同一のメッセージタイプに対応する位置情報を選出すると共に、選出したすべての位置情報について、該位置情報と、該位置情報に対応するメッセージタイプと、該位置情報に対応するメッセージ内容とからなる下り通信メッセージを作成して、位置情報の値の小さい順に前記レスポンスとして、リクエスト元の端末装置に送信することを特徴とするメッセージ中継サーバ。
【請求項6】
前記下り通信レスポンス部は、前記キューから、前記下り通信用リクエストに含まれる各アプリケーションリクエストに対して位置情報を選出する際に、該アプリケーションリクエストに含まれるアプリケーションIDと異なるアプリケーションIDに対応した各位置情報から選出することを特徴とする請求項5に記載のメッセージ中継サーバ。
【請求項7】
ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザであって、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えた前記Webブラウザが実装された複数の端末装置と、
ネットワークを介して前記複数の端末装置と接続され、WWW(World Wide Web)を介して各前記Webブラウザと通信可能なウェブサーバであって、キューを有し、端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順に前記キューに記憶すると共に、端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させるメッセージ中継サーバを備えた前記Webサーバとを有するシステムにおける前記端末装置であって、
自身のWebブラウザに実装された各アプリケーションソフトウェアに対して、ウェブブラザ毎、かつアプリケーションソフトウェア毎に異なるアプリケーションIDを付与するアプリケーションID管理部と、
各前記アプリケーションIDと、該アプリケーションIDに対応するアプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、前記メッセージ中継サーバから最後に受信した当該メッセージタイプを有するメッセージの、前記メッセージ中継サーバの前記キューにおける位置を示す位置情報であるポインタとを対応付けて記憶するポインタ記憶部とを備え、
自身のWebブラウザに実装されたいずれかのアプリケーションソフトウェアの動作によりメッセージが生じた際に、該メッセージのメッセージタイプと、該アプリケーションソフトウェアの前記アプリケーションIDと、メッセージ内容とが含まれる前記上り通信メッセージを前記メッセージ中継サーバに送信し、
所定時間間隔で、前記ポインタ記憶部を参照して、自身のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプとアプリケーションIDとポインタとを対応付けてなるアプリケーションリクエストが含まれる前記下り通信用リクエストを作成して前記メッセージ中継サーバに送信し、
該下り通信用リクエストに応じて前記メッセージ中継サーバから返送された、前記キューにおける位置情報とメッセージタイプとメッセージ内容とを対応付けてなる下り通信メッセージを含むレスポンスから、各下り通信メッセージに含まれるメッセージ内容を、該メッセージ内容に対応するメッセージタイプと同一のメッセージタイプを取り扱うアプリケーションソフトウェアに分配すると共に、前記レスポンスから、メッセージタイプ毎の前記位置情報の最大値を取得して、該最大値で前記ポインタ記憶部における該メッセージタイプに対応するポインタを更新することを特徴とする端末装置。
【請求項8】
自身から送信したメッセージを受信すると設定された際に、前記アプリケーションリクエストに含まれるアプリケーションIDを、前記アプリケーションID管理部が付与することのない特殊IDに変更してから前記下り通信用リクエストを前記メッセージ中継サーバに送信することを特徴とする請求項7に記載の端末装置。
【請求項9】
前記アプリケーションID管理部は、終了されたアプリケーションソフトウェアが再度起動されたときに、該アプリケーションソフトウェアに対して、付与したことの無いアプリケーションIDを付与し直すことを特徴とする請求項7または8に記載の端末装置。
【請求項10】
ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザであって、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えた前記Webブラウザが実装された複数の端末装置とネットワークを介して接続され、WWW(World Wide Web)を介して各前記Webブラウザと通信可能なウェブサーバに設けられたメッセージ中継サーバによるメッセージ中継方法において、
端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順にキューに記憶する記憶処理と、
端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させる下り通信レスポンス処理とを有し、
前記上り通信メッセージは、該メッセージを発生させたアプリケーションソフトウェアに付与された、Webブラウザ毎かつアプリケーションソフトウェア毎に異なるアプリケーションIDと、該アプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、メッセージ内容とが含まれており、
前記下り通信用リクエストは、当該端末装置のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプと、アプリケーションIDと、当該端末装置が最後に受信した当該メッセージタイプを有するメッセージの、前記キューにおける位置を示す位置情報であるポインタとを対応付けてなるアプリケーションリクエストが含まれており、
前記記憶処理は、端末装置からの上り通信メッセージと、該上り通信メッセージの受信順に対応した位置情報とを対応付けて前記キューに記憶し、
前記下り通信レスポンス処理は、端末装置から下り通信用リクエストを受信した際に、該下り通信用リクエストに含まれる各アプリケーションリクエストに対して、前記キューから、該アプリケーションリクエストに含まれるポインタが示す位置情報より大きい値を有し、かつ、該アプリケーションリクエストに含まれるメッセージタイプと同一のメッセージタイプに対応する位置情報を選出すると共に、選出したすべての位置情報について、該位置情報と、該位置情報に対応するメッセージタイプと、該位置情報に対応するメッセージ内容とからなる下り通信メッセージを作成して、位置情報の値の小さい順に前記レスポンスとして、リクエスト元の端末装置に送信することを特徴とするメッセージ中継方法。
【請求項11】
前記下り通信レスポンス処理は、前記キューから、前記下り通信用リクエストに含まれる各アプリケーションリクエストに対して位置情報を選出する際に、該アプリケーションリクエストに含まれるアプリケーションIDと異なるアプリケーションIDに対応した各位置情報から選出することを特徴とする請求項10に記載のメッセージ中継方法。
【請求項12】
ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザであって、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えた前記Webブラウザが実装された複数の端末装置と、
ネットワークを介して前記複数の端末装置と接続され、WWW(World Wide Web)を介して各前記Webブラウザと通信可能なウェブサーバであって、キューを有し、端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順に前記キューに記憶すると共に、端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させるメッセージ中継サーバを備えた前記Webサーバとを有するシステムにおける前記端末装置によるメッセージ送受信方法であって、
該端末装置のWebブラウザに実装された各アプリケーションソフトウェアに対して、ウェブブラザ毎、かつアプリケーションソフトウェア毎に異なるアプリケーションIDを付与する処理と、
各前記アプリケーションIDと、該アプリケーションIDに対応するアプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、前記メッセージ中継サーバから最後に受信した当該メッセージタイプを有するメッセージの、前記メッセージ中継サーバの前記キューにおける位置を示す位置情報であるポインタとを対応付けて記憶する処理と、
該端末装置のWebブラウザに実装されたいずれかのアプリケーションソフトウェアの動作によりメッセージが生じた際に、該メッセージのメッセージタイプと、該アプリケーションソフトウェアの前記アプリケーションIDと、メッセージ内容とが含まれる前記上り通信メッセージを前記メッセージ中継サーバに送信する処理と、
所定時間間隔で、自身のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプとアプリケーションIDとポインタとを対応付けてなるアプリケーションリクエストが含まれる前記下り通信用リクエストを作成して前記メッセージ中継サーバに送信する処理と、
前記下り通信用リクエストに応じて前記メッセージ中継サーバから返送された、前記キューにおける位置情報とメッセージタイプとメッセージ内容とを対応付けてなる下り通信メッセージを含むレスポンスから、各下り通信メッセージに含まれるメッセージ内容を、該メッセージ内容に対応するメッセージタイプと同一のメッセージタイプを取り扱うアプリケーションソフトウェアに分配すると共に、前記レスポンスから、メッセージタイプ毎の前記位置情報の最大値を取得して、該最大値で、当該メッセージタイプに対応するポインタを更新する処理とを有することを特徴とするメッセージ送受信方法。
【請求項13】
当該端末装置自身から送信したメッセージを受信すると設定された際に、前記アプリケーションリクエストに含まれるアプリケーションIDを、全てのアプリケーションソフトウェアに付与されることのない特殊IDに変更してから前記下り通信用リクエストを前記メッセージ中継サーバに送信することを特徴とする請求項12に記載の端末装置。
【請求項14】
終了されたアプリケーションソフトウェアが再度起動されたときに、該アプリケーションソフトウェアに対して、付与したことの無いアプリケーションIDを付与し直すことを特徴とする請求項12または13に記載のメッセージ送受信方法。
【請求項15】
ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザであって、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えた前記Webブラウザが実装された複数の端末装置とネットワークを介して接続され、WWW(World Wide Web)を介して各前記Webブラウザと通信可能なウェブサーバにメッセージ中継処理を実行させるプログラムであって、
前記メッセージ中継処理は、
端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順にキューに記憶する記憶処理と、
端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させる下り通信レスポンス処理とを有し、
前記上り通信メッセージは、該メッセージを発生させたアプリケーションソフトウェアに付与された、Webブラウザ毎かつアプリケーションソフトウェア毎に異なるアプリケーションIDと、該アプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、メッセージ内容とが含まれており、
前記下り通信用リクエストは、当該端末装置のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプと、アプリケーションIDと、当該端末装置が最後に受信した当該メッセージタイプを有するメッセージの、前記キューにおける位置を示す位置情報であるポインタとを対応付けてなるアプリケーションリクエストが含まれており、
前記記憶処理は、端末装置からの上り通信メッセージと、該上り通信メッセージの受信順に対応した位置情報とを対応付けて前記キューに記憶し、
前記下り通信レスポンス処理は、端末装置から下り通信用リクエストを受信した際に、該下り通信用リクエストに含まれる各アプリケーションリクエストに対して、前記キューから、該アプリケーションリクエストに含まれるポインタが示す位置情報より大きい値を有し、かつ、該アプリケーションリクエストに含まれるメッセージタイプと同一のメッセージタイプに対応する位置情報を選出すると共に、選出したすべての位置情報について、該位置情報と、該位置情報に対応するメッセージタイプと、該位置情報に対応するメッセージ内容とからなる下り通信メッセージを作成して、位置情報の値の小さい順に前記レスポンスとして、リクエスト元の端末装置に送信することを特徴とするプログラム。
【請求項16】
前記下り通信レスポンス処理は、前記キューから、前記下り通信用リクエストに含まれる各アプリケーションリクエストに対して位置情報を選出する際に、該アプリケーションリクエストに含まれるアプリケーションIDと異なるアプリケーションIDに対応した各位置情報から選出することを特徴とする請求項15に記載のプログラム。
【請求項17】
ユーザ同士が協働作業をするためのユーザインタフェースとして利用するWebブラウザであって、前記協働作業を行うための1つ以上のアプリケーションソフトウェアを備えた前記Webブラウザが実装された複数の端末装置と、
ネットワークを介して前記複数の端末装置と接続され、WWW(World Wide Web)を介して各前記Webブラウザと通信可能なウェブサーバであって、キューを有し、端末装置に実装されたWebブラウザ上のアプリケーションソフトウェアの動作により生じ、該端末装置から送信されてきた上り通信メッセージを受信順に前記キューに記憶すると共に、端末装置からの下り通信用リクエストに応じて前記キューに記憶された上り通信メッセージからレスポンスを作成して該端末装置に送信することにより、前記複数の端末装置に実装されたWebブラウザを同期動作させるメッセージ中継サーバを備えた前記Webサーバとを有するシステムにおける前記端末装置にメッセージ送受信処理を実行させるプログラムであって、
前記メッセージ送受信処理は、
該端末装置のWebブラウザに実装された各アプリケーションソフトウェアに対して、ウェブブラザ毎、かつアプリケーションソフトウェア毎に異なるアプリケーションIDを付与する処理と、
各前記アプリケーションIDと、該アプリケーションIDに対応するアプリケーションソフトウェアが取り扱うメッセージのメッセージタイプと、前記メッセージ中継サーバから最後に受信した当該メッセージタイプを有するメッセージの、前記メッセージ中継サーバの前記キューにおける位置を示す位置情報であるポインタとを対応付けて記憶する処理と、
該端末装置のWebブラウザに実装されたいずれかのアプリケーションソフトウェアの動作によりメッセージが生じた際に、該メッセージのメッセージタイプと、該アプリケーションソフトウェアの前記アプリケーションIDと、メッセージ内容とが含まれる前記上り通信メッセージを前記メッセージ中継サーバに送信する処理と、
所定時間間隔で、自身のWebブラウザに実装された各アプリケーションソフトウェアの、メッセージタイプとアプリケーションIDとポインタとを対応付けてなるアプリケーションリクエストが含まれる前記下り通信用リクエストを作成して前記メッセージ中継サーバに送信する処理と、
前記下り通信用リクエストに応じて前記メッセージ中継サーバから返送された、前記キューにおける位置情報とメッセージタイプとメッセージ内容とを対応付けてなる下り通信メッセージを含むレスポンスから、各下り通信メッセージに含まれるメッセージ内容を、該メッセージ内容に対応するメッセージタイプと同一のメッセージタイプを取り扱うアプリケーションソフトウェアに分配すると共に、前記レスポンスから、メッセージタイプ毎の前記位置情報の最大値を取得して、該最大値で、当該メッセージタイプに対応するポインタを更新する処理とを有することを特徴とするプログラム。
【請求項18】
当該端末装置自身から送信したメッセージを受信すると設定された際に、前記アプリケーションリクエストに含まれるアプリケーションIDを、全てのアプリケーションソフトウェアに対して付与されることのない特殊IDに変更してから前記下り通信用リクエストを前記メッセージ中継サーバに送信することを特徴とする請求項17に記載のプログラム。
【請求項19】
終了されたアプリケーションソフトウェアが再度起動されたときに、該アプリケーションソフトウェアに対して、付与したことの無いアプリケーションIDを付与し直すことを特徴とする請求項17または18に記載のプログラム。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2010−225106(P2010−225106A)
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願番号】特願2009−74561(P2009−74561)
【出願日】平成21年3月25日(2009.3.25)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLASH
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】