(57)【特許請求の範囲】
【請求項１】
接続された一以上のクライアント・コンピュータを有するサーバ・コンピュータのためのパーソナル会議方法であって、
（ａ）会議モデル・データをサーバ・コンピュータとクライアント・コンピュータとに格納するステップと、
（ｂ）クライアント・コンピュータからの命令を受信するやいなや前記会議モデル・データを処理するステップと、
（ｃ）前記サーバ・コンピュータから各々のクライアント・コンピュータに前記命令を同報通信を使用して再送するステップとを有し、
前記会議モデル・データのすべてのコピーが前記サーバ・コンピュータに保持された会議モデル・データに一致するように、各クライアント・コンピュータは該クライアント・コンピュータ上に保持された前記会議データ・モデルのコピーに対して同一の処理を実行するパーソナル会議方法。
【請求項２】
サーバ・コンピュータに接続された一台以上のクライアント・コンピュータのための会議方法であって、
（ａ）前記サーバ・コンピュータおよび前記クライアント・コンピュータの各々が会議モデル・データのコピーを格納するステップと、
（ｂ）前記クライアント・コンピュータの一つが会議モデル・データを処理する命令を生成し、サーバ・コンピュータへ前記命令を送るステップと、
（ｃ）前記クライアント・コンピュータの各々がサーバ・コンピュータから命令のコピーを同報通信を使用して受信し、該命令にもとづいて上記クライアント・コンピュータの各々のモデルを処理するステップとを有し、異なるクライアントからの複数の異なる処理命令の後に、前記会議モデル・データの各々のコピーが互いに一致するパーソナル会議方法。
【請求項３】
前記サーバ・コンピュータは、前記会議モデル・データを要求あり次第クライアント・コンピュータへ前記会議モデル・データを送る請求項１または２に記載のパーソナル会議方法。
【請求項４】
上位マシン・バイト・コードの制御下で前記ステップが実行される請求項１ないし３のいずれか一項に記載のパーソナル会議方法。
【請求項５】
クライアント・コンピュータを制御する上位マシン・バイト・コードは、該クライアント・コンピュータで実行されるネットワーク・ブラウザによって前記サーバ・コンピュータからダウンロード可能である請求項４に記載のパーソナル会議方法。
【請求項６】
前記会議モデル・データを処理する前記命令は変数を有するＯｐｃｏｄｅの形態である請求項２ないし５のいずれか一項に記載のパーソナル会議方法。
【請求項７】
会議モデル・データを含みクライアント・コンピュータから命令を受信して該命令にもとづいて前記会議モデル・データを処理する手段とを有するサーバ・コンピュータと、命令を生成して該命令を前記サーバ・コンピュータへ送る手段を有する少なくとも２台のクライアント・コンピュータとを備えるパーソナル会議システムであって、
前記サーバ・コンピュータは、
受信した命令をすべてのクライアント・コンピュータへ同報通信を使用して分散する手段をさらに有し、また
前記少なくとも２台のクライアント・コンピュータの各々は、
会議モデル・データのコピーと、
前記サーバ・コンピュータからの分散された前記命令を同報通信により受信して前記サーバ・コンピュータから受信した命令にもとづいて前記会議モデル・データのコピーを処理する手段とをさらに有し、前記会議モデル・データのすべてのコピーが前記サーバ・コンピュータに保持された会議モデル・データに一致するように、各クライアント・コンピュータは該クライアント・コンピュータ上に保持された前記会議データ・モデルのコピーに対して同一の処理を実行するパーソナル会議システム。
【請求項８】
前記少なくとも２台のクライアント・コンピュータの各々は、前記会議モデル・データを表示するための手段をさらに有する請求項７に記載のパーソナル会議システム。
【請求項９】
会議モデル・データと、該会議モデル・データを処理するための命令を生成して該命令を他のコンピュータへ送る手段と、前記命令にもとづいて前記会議モデル・データを処理する手段とを有し、かつメッセージ通信のために接続した少なくとも２台のコンピュータを有するパーソナル会議システムであって
前記少なくとも２台のコンピュータの一つがサーバ・コンピュータであり、他のコンピュータが該サーバ・コンピュータと接続されたクライアント・コンピュータであり、
前記サーバ・コンピュータは、さらに接続されたクライアント・コンピュータのすべてに受信した命令を同報通信を使用して分散するための手段を有し、さらに、
前記会議モデル・データを処理する手段は、前記サーバ・コンピュータから分散された命令を受信するための手段を有するもので、
異なるコンピュータからの前記処理命令のコピーのシーケンスは前記会議モデル・データの各々のコピーが互いに一致するように、前記会議モデル・データの各々のコピーに対して同時に実行されるパーソナル会議システム。
【請求項１０】
サーバ・オブジェクトおよび複数のクライアント・オブジェクトと、モデル・データと命令メッセージに対して前記モデル・データを処理する手段とを有するモデル・オブジェクトとを有し、また前記複数のクライアント・オブジェクトの各々は、前記モデル・オブジェクトを処理するための命令を生成する手段を有するパーソナル会議システムにおいて、
前記複数のクライアント・オブジェクトの各々は関連したモデル・オブジェクトを有し、また
前記複数のクライアント・オブジェクトの各々は処理命令をモデル・データを含むサーバ・オブジェクトに送る手段をさらに有することによって、
前記モデル・データの各々のコピーが互いに一致するように、実行されるべき異なるクライアント・オブジェクトからの前記処理命令のコピーのシークエンスを前記サーバ・オブジェクトから同報通信により受信し、前記シークエンスをモデル・データのインスタンス上の各モデル・オブジェクトによって同時に実行させるパーソナル会議システム。
【請求項１１】
コンピュータ・ネットワーク全体にわたる伝送のためにモデル・オブジェクトとクライアント・オブジェクトとを実装するための手段をさらに有する請求項１０に記載のパーソナル会議システム。
【請求項１２】
前記モデル・オブジェクトは、現在のモデル・データを含む状態メッセージを発生させ、該状態メッセージを他のオブジェクトに送るために、モデル・オブジェクトを生成する手段をさらに有する請求項１１に記載のパーソナル会議システム。
【請求項１３】
前記モデル・オブジェクトは、前記モデル状態メッセージに送られたものへモデル・データをセットし、それによって一つのモデル・オブジェクトが他のモデル・オブジェクトによってコピーされるために、前記モデル・オブジェクトを生成する手段をさらに有する請求項１２に記載のパーソナル会議システム。
【請求項１４】
さらに、前記サーバ・オブジェクトに関連した集中化されたモデル・オブジェクトを有する請求項１０ないし１３のいずれか一項に記載のパーソナル会議システム。
【請求項１５】
クライアント・オブジェクトに関連したモデル・オブジェトは前記サーバ・オブジェクトに関連した前記モデル・オブジェクトからコピーされる請求項１４に記載のパーソナル会議システム。
【請求項１６】
前記クラスおよびオブジェクトは、上位マシン・バイト・コードにインプリメントされる請求項１０ないし１５のいずれか一項に記載のパーソナル会議システム。
【請求項１７】
クライアント・クラスおよびモデル・クラスは、ダウンロード可能で、かつ前記上位マシン・バイト・コードによって使用可能となるネットワーク・ブラウザによって実行可能な上位マシン・バイト・コード・アプレットを含む請求項１６に記載のパーソナル会議システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パーソナル会議システムに関する。
【０００２】
【従来の技術】
パーソナル会議システムによって、コンピュータ・ユーザはすべての参加者にとって都合のよい場所に移動するかわりに、ユーザ自身のディスクから会議に参加することが可能となる。電話システムが2加入者以上に対する会議呼出を包含するかたちで発達してきたように、コンピュータ・システムは数多くのネットワーク・コンピュータ・ユーザが一つの会議に参加することを可能とするように発達してきた。パーソナル会議を行う一例として、他のコンピュータ・ユーザとリアル・タイムでテキストまたは音声でミーティングを行うことができるインターネットの「チャット・ルーム」を挙げることができる。「チャット・ルーム」型の会議が発展すると、パーソナル会議システムが数多くの参加者によるアプリケーションの共有を試みるアプリケーション型会議となる。これの一例として、参加者が「共通」のホワイト・ボードを利用して同一図面の参照および編集が可能な「ホワイト・ボード」アプリケーションが挙げられる。別の例としては、各参加者がコンピュータ・スクリーン上に表示された分子の修飾および処理を行うことができる分子モデリング・アプリケーションが挙げられる。
【０００３】
いくつかのパーソナル会議システムは、ピア・トゥ・ピア様式でもって実現される。この一例は、ＩＢＭ Ｃｏｒｐｏｒａｔｉｏｎ(以下、ＩＢＭとする）が開発した製品ＰＭ２ＰＭおよびＰｅｒｓｏｎ  ｔｏ  Ｐｅｒｓｏｎ／２である。この環境下で、例えば図１に示されるように、会議マネージメント／呼出マネージャ・プログラム（１８Ａ、１８Ｂ）はネットワーク（１４）全体と通信する１つ以上のネットワーク・アダプタ（１２Ａ、１２Ｂ）のサービスを利用する各コンピュータ（１０Ａ、１０Ｂ）で実行される。 いくつかの特別に書かれたパーソナル会議アプリケーション（１６Ａ、１６Ｂ、１６Ｃ）が会議管理プログラムに接続する。もし会議に共用チョークボードが含まれるならば、例えば、各々の参加しているノード・チョークボード・パーソナル会議アプリケーション（１６Ａ、１６Ｂ、１６Ｃ）が実行されよう。これらのアプリケーションは互いにデータ・パケットを送ることで、会議マネージメント・プログラム（１８Ａ、１８Ｂ）のサービスが利用できる。
【０００４】
しかし、このような構成には以下のような欠点がある。
【０００５】
（ｉ）会議マネージメント・プログラムは同一の共用チョークボードに対応する各ノード上のアプリケーションのデータ（または他のデータ）が同一であるかどうかを確かめる責任を持たないので、アプリケーションは創出しなければならず、またそのように行うためにそれらの間のプロトコールを使用する。
【０００６】
（ｉｉ）各ノードは、その対等物が格納するデータと完全に同一なコピーを格納しないことを決る可能性がある。この設計決定は高速実現を促進する傾向にあるので、しばしばすぐには分からない副作用を伴うエラーとなる。
【０００７】
（ｉｉｉ）もし新規参加者が会議に接続するならば、チョークボード内のデータのコピーはノードの一つから伝達されなければならない。もし各ノード上のデータが同一でなければ、どのデータを送るのが最善か？転送を効率良く行うために、アプリケーションはネットワーク地理学のアプリケーションを必要とし、アプリケーションの実現がさらに複雑化する。新規参加者が会議に接続し、既存のアプリケーションを共有することを望むならば、歩調を合わせなければならない。
【０００８】
（ｉｖ）アプリケーションにおけるこの特別の厄介な問題すべて（歩調合わせを維持するためのピア・トゥ・ピア・プロトコール、転送の接続および切断、地理学の知識）を各種類のアプリケーションで繰り返さなければならない。
【０００９】
（ｖ）システム内に固有の「会合場所（ミーティング・ポイント）」がないので、人は自分自身で会議に参加するための準備が整っていることを示さなくてもよい。純粋にピア・トゥ・ピア・システムでは、いつでも納得のいく電源投入が期待できるサーバは存在しない。
【００１０】
いずれのパーティによる共有されたデータの処理を許さないパーソナル会議の一例は、単純化されたピア・トゥ・ピア、例えばＤａｔａ  Ｃｏｎｎｅｃｔｉｏｎ  Ｌｉｍｉｔｅｄによって開発されたＮｅＷＩ環境の共有ホワイトボード・アプリケーションである。ホワイトボードは、一参加者あたり一面が割り当てられる多数の面を有する。各参加者は該参加者自身の面を利用することができ、この面への変更は他の参加者に送られる。したがって、他の参加者は新たな面を見ることができる（しかし、変更を加えることはできない）。誰もが他者の面上のピクチャを変えることができないので、共有データの共有処理はありえない。なお、「ＮｅＷＩ」はＤａｔａ  Ｃｏｎｎｅｃｔｉｏｎ  Ｌｉｍｉｔｅｄの登録商標である。
【００１１】
単純化されたピア・トゥ・ピアはさらに別の欠点を有する。共有ホワイトボードの例では何らかのユーティリティがそのようなツールによって提供されるけれども、ほとんどの値はデータの共有処理にある。このシステムを実現するのは簡単ではあるが、「会議」のこのような様式では共有処理でのテキスト編集および他の形式を実行することが困難である。
【００１２】
【発明が解決しようとする課題】
したがって、ピア・トゥ・ピア会議システムの主要な問題の一つは、会議モデルの保全性を保つためにすべての宛先／ノードにおいてすべてのデータが同一のオーダに到達しなければならないことである。
【００１３】
異なる種類のパーソナル会議はＩＢＭによって開発されたＸＴＶシステムによって提供される。このシステムは、Ｘｗｉｎｄｏｗｓシステムの改良／変更である。もし種々の参加者から入力イベント（マウスのクリック、キーストローク等）が所定のマシンに伝わり、実行されているプログラムに適用され、さらに参加者へ返送される画面（またはプログラムのウィンドウ）上に変更が生ずるならば、パーソナル会議の基本形態が達成させる。
【００１４】
ＸＷｉｎｄｏｗｓはクライアント・サーバ・システムであり、それによってサーバはユーザ入力を提供する機能を果たし、またサーバの画面上に描く機能を果たす。一般に、各ユーザは該ユーザのマシン上で走るXｓｅｒｖｅｒ（２０）を所有し、またデータ・ストリームはＸＴＶインタセプタを介してＸｓｅｒｖｅｒ（２０）に送られＸ−プロトコルを用いてそれにグラフィック表示させる。Ｘｗｉｎｄｏｗｓがクライアント・サーバであり、またＸ−プロトコルがそれらの間で転送されることから、異なるマシンで実行されるクライアントおよびサーバにとってそれはありふれたことである。 ＸＷｉｎｄｏｗｓはネットワーキングを実現し、さらにこれは共同作業（パーソナル会議として）が望まれる場合に役に立つ。出力に関しては、ＸＴＶ（２２）はクライアント（２４）で実行されているアプリケーションによってサーバ（２６）に送られるＸ−プロトコルを傍受する。それによって、いくつかのＸ−サーバ（２０）へこのデータの出力が広がり、いくつかの参加者に対してプログラム・ウィンドウが見えるようにする。同様に、入力はいくつかのＸサーバ（２０）から引き出され、共有（多重アクセス可能）アプリケーションが実行されているマシンに振り向けられる。ＸＴＶおよびXＷｉｎｄｏｗはＩＢＭの登録商標である。
【００１５】
標準的なＸＷｉｎｄｏｗにおけるクライアントとサーバとのインタラクションを図２に示し、また「中間にある」ＸＴＶ（２２）とのインタラクションを図３に示す。ＸＴＶ（２２）は、いくつかのアプリケーションとサーバとの間で入力および出力トラフィックを転送し、すべての存在する非共同的アプリケーションとともに作業するという利点を有する。
【００１６】
しかし、図２および図３に示した構成は、以下のような欠点（ｉ）〜（ｖ）を有する。
【００１７】
（ｉ）共同的アプリケーション「使用可能（イネーブラ）」ではない。
【００１８】
（ｉｉ）非共同的アプリケーションは一人のユーザを念頭において書かれたものであり、一方キーストロークおよびマウスクリックはいろいろなユーザからのもので、すべてが遅れずに割込する。
【００１９】
（ｉｉｉ）すべてのユーザが全く同じデータのみを見るだけであり、例えば第二のユーザがノーマル・サイズの表示を見ている一方で、第一のユーザが拡大された表示を見ることはできない。
【００２０】
（ｉｖ）アプリケーション・データに対する変更は、数多くの画面の変更（したがって、Ｘ−プロトコル）をもたらすことができ、この問題はすべての参加者に対してその時点で送られるという事実によってさらに悪化させる。
【００２１】
（ｖ）アプリケーションはまさに一つのマシン上でしか実行されず、そのためそれが保持するデータはすべてのマシンが共有ファイル・システム（例えば、ＡＦＳまたはＤＦＳ）を共有するにもかかわらずそのマシンでしかアクセスすることができない。たとえ、マシンが共通のファイル・システムにアクセスするとしても、同一のファイルに対してドライブの文字やパスネームはマシン間で異なるものであってもよい。一般に、遠隔データ処理の場合、遠隔マシン上で実行していることを考慮しなければならない。このことはユーザにとって複雑な物事となる。
【００２２】
パーソナル会議システムのほとんどの種類に当てはまる別の問題は、新規参加者に対してもっとも近くに存在する（ネットワーク速度の面で）参加者を選択することによってネットワーク・パフォーマンスを最適化する試みがなされていないことである。一般に、パーソナル会議システムはデータを任意の既設ノードから新規ノードへ転送する。
【００２３】
Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄの欧州特許ＥＰＯ４９７０２２は、分散オブジェクト準拠コンピュータ・システムに関するもので、該システムでは共有可能なオブジェクトがクライアント・コンポーネントとサーバ・コンポーネントとに分割される。また、システムはサーバ間でのメッセージの送信およびアップデートの受け渡しを行うために互いに通信する多数のサーバ向けに設計されている。
【００２４】
【課題を解決するための手段】
本発明の実施形態例では性能に多数の部門を利用する。モデル（Ｍｏｄｅｌ）／ビュー（Ｖｉｅｗ）／コントローラ（Ｃｏｎｔｒｏｌｌｅｒ）（ＭＶＣと略す）の一つは実行中のアプリケーションで使用される一部門である。そのようなアプリケーションは、明確に定義されたインタフェースおよび責務により３つの論理部に分割される。
【００２５】
モデルは、アプリケーションが表示されて処理可能となるデータである。しかし、モデルそれ自身はデータおよび該データの変更を可能とする入口点（すなわち、方法）のみを含む。モデルは、どのようにしてデータがユーザに対して提示されるかについての概念を持たず、あるいはどのようにして意図するデータの変更／修飾の指示または指定することが許可されるかについての概念を持たない。チョークボード・アプリケーションの例では、モデルは画像を表すビットマップであってもよい。モデルは現在のペンの色、色塗りのスタイル、またはフォント設定等の任意の概念を含むものではない。モデルでのデータの修飾は入力点／方法を介して達成され、さらにモデルの新規の状態は古い状態および入力点（すなわち、入力点は純粋で、汎用データは不使用）に対するパラメータから全体的に決定される。この記述において、入力点／方法はモデルのデータまたは「処理手段」上で処理されることに関連している。
【００２６】
ビューはユーザに対してモデルの現在の状態を示すためのユーザ・インタフェース・コンポネントである。それは、非外部または非グローバル変数にアクセスすることで、どのようにして表示設定されたモデル・データから純粋にモデルを表示するかを決定する。すなわち、特定のモデルを与えることでいつでも同一のビジュアル表示が得られよう。チョークボード・アプリケーションの例では、ビューはウィンドウのクライアント領域にあるモデルのビットマップをスクロールバーとともに表示する。
【００２７】
コントローラは、ユーザによるモデルに対する変更の指定を可能とさせるユーザ・インタフェース・コンポネントである。チョークボード・アプリケーションの例では、コントローラはチョークボード上で矩形（または他のグラフィック・シンボル）を描くことをユーザが決定する場合に生ずるラバーバンディングを表示する役割を果たしている。コントローラはモデル（例えば、矩形の描画）を直接修飾することはせず、むしろこの仕事を実行するためにモデルの入力点を呼び出す。コントローラは、ユーザが行ったペンの色およびフォントに対する現在の変更を保つことができ、またこの情報をモデルに送られた矩形描画命令の一部分として転送される（変更が完全に指定される目的で）。この記述において、コントローラは処理命令または生成手段の生成することに関連している。
【００２８】
効率化のためにモデルに変更が加えられた場合、それ自身のビュー（または複数のビュー）にそれが変更された事実を通知する。これによって、変更を反映させるためにビューがそれ自身を描画することが可能となる。あるいは悪影響を受けるそれ自身の部分を選択的に再描画する。
【００２９】
実際には、コントローラとビューとの違いは、しばしばはっきりとしないものとなる。チョークボードの場合、同一クライアント・ウィンドウはビットマップの現在のビューを表示するとともに、コントローラとの現在のユーザ・インタラクションにもとづいて実施されるラバーバンディングを表示する。
【００３０】
本発明の実施態様は、これらの問題および他の問題の解決を試みている。
【００３１】
接続された一台またはそれを上回る数のクライアント・コンピュータ（３２Ａ、３２Ｂ、３２Ｃ）を有するサーバ・コンピュータ（３０）のためのパーソナル会議方法は、（ａ）会議モデル・データ（６０）をサーバ・コンピュータ（３０）に格納するステップと、（ｂ）クライアント・コンピュータからの命令（６４Ａ）を受信するやいなや会議モデル・データ（６０）を処理（６２）するステップと、（ｃ）サーバ・コンピュータ（３０）から各々のクライアント・コンピュータ（３２Ａ、３２Ｂ、３２Ｃ）に再送するステップとを有し、各クライアント・コンピュータ（３２Ａ、３２Ｂ、３２Ｃ）は該クライアント・コンピュータ上に保持された会議データ・モデルのコピーに対して同一を実行する。それによって、会議モデル・データ（６０）のすべてのコピーはサーバ・コンピュータに保持された会議モデル・データに対応する。
【００３２】
クライアントよりはむしろサーバからアップデートされる会議モデルを各クライアントが持つ会議システムのためのクライアント／サーバ構成を用いることは、あきらかに有利である。任意の（非ブロークン）パーソナル会議システム設計にとって必須の連番（シリアリゼーション）機構が提供される。すべての編集メッセージは、クライアント・コンピュータに送られる際にサーバ・コンピュータを通過するので、中央にシリアリゼーションを行う場所が提供される。サーバ・コンピュータは、すべてのクライアント・コンピュータに対するデータの同時転送を約束することができ、すべてのクライアント・コンピュータ・システムが同一のものを表示することが保証される。
【００３３】
さらなる利点は明らかである。例えば、パーソナル会議システムの設計はモデル／ビュー／コントローラ構成を取り込むことによって明確化され、かつ単純化される。また、会議モデルに対する変更をインターセプトすることおよびクライアント・コンピュータに対する変更を分散させることは、対応する画面のビューを実現するもっとも単純な方法である。そのような設計において、サーバ・コンピュータはいかなるユーザ・インタフェース・コードからも解放されている。
【００３４】
サーバ・コンピュータそれ自身は、永久的な「会合場所」を提供する。この「会合場所」でクライアントは該クライアントの存在および共有された作業への参加意志とを宣伝する。このような利点は、ピア・トゥ・ピア・システムでは特に欠けている。
【００３５】
本発明の第２の態様にもとづくと、サーバ・コンピュータに接続された一台またはそれを上回る数のクライアント・コンピュータのためのパーソナル会議方法を提供するもので、該方法は、（ａ）上記クライアント・コンピュータの各々が会議モデル・データのコピーを格納するステップと、（ｂ）上記クライアント・コンピュータの一つが会議モデル・データを処理する命令を生成し、サーバ・コンピュータへ上記命令を送るステップと、上記クライアント・コンピュータの各々がサーバ・コンピュータからの命令のコピーを受信し、該命令にもとづいて上記クライアント・コンピュータの各々のモデルを処理するステップとを有するもので、さらに、異なるクライアントからの複数の異なる処理命令後に、会議モデル・データの各々のコピーは互いに対応するものとなる。
【００３６】
本発明の第３の態様にもとづいて、サーバ・コンピュータと少なくとも２台のクライアント・コンピュータとを有するパーソナル会議システムを提供する。このシステムにおいて、サーバ・コンピュータは、会議モデル・データと、クライアント・コンピュータから命令を受信し、該命令にもとづいて会議モデル・データを処理する手段とを備え、また、クライアント・コンピュータは、命令を生成し、該命令をサーバ・コンピュータへ送る手段を備え、さらにサーバ・コンピュータが受信した命令をすべてのクライアント・コンピュータへ分散する手段を有し、またクライアント・コンピュータの各々は、さらに会議モデル・データのコピーと、サーバ・コンピュータからの分散された命令を受信し、サーバ・コンピュータから受信した命令にもとづいて会議モデル・データのコピーを処理する手段とを備えることを特徴とする。
【００３７】
本発明の第４の態様にもとづいて、メッセージ通信のために接続した少なくとも２台のコンピュータを有するパーソナル会議システムを提供する。このシステムにおいて、各コンピュータは、会議モデル・データと、会議モデル・データを処理するための命令を生成し、該命令を他のコンピュータへ送る手段と、命令にもとづいて会議モデル・データを処理する手段とを備え、さらにコンピュータの一つがサーバ・コンピュータであり、他のコンピュータが該サーバ・コンピュータと接続されたクライアント・コンピュータであり、サーバ・コンピュータは、さらに接続されたクライアント・コンピュータのすべてに分散するための手段を有し、また処理のための手段は、サーバ・コンピュータから分散された命令を受信するための手段を有する。したがって、異なるコンピュータからの処理命令のシーケンスは会議モデル・データの各々のコピー上で同時に実行されよう。
【００３８】
パーソナル会議システムは、サーバ・オブジェクトおよび複数のクライアント・オブジェクトと、モデル・データ（６０）および命令メッセージ（６４）に対するモデル・データ（６０）を処理する手段（６２）を有するモデル・オブジェクト（３６Ａ）と、モデル・オブジェクト（３６Ａ）を処理するための命令を生成する手段を有する各クライアント・オブジェクト（３６）とを備え、さらに、各クライアント・オブジェクト（３６）は関連したモデル・オブジェクトを有し、各クライアント・オブジェクト（３６）はさらに処理命令をサーバ・オブジェクトに送る手段（３６Ｂ）を有し、それによって、実行されるべき異なるクライアント・オブジェクト（３６）からの命令のシークエンスをモデル・データ（６０）の各インスタンス上の各モデル・オブジェクトによって同時に実行することが可能となる。
【００３９】
好ましくは命令は変数を有するＯｐｃｏｄｅの形態にある。これは会議モデル・データに対する修飾を実装する上で簡便な方法である。修飾はそれを生成したクライアント・コンピュータからサーバ・コンピュータへ、またサーバ・コンピュータから会議に従事するすべてのクライアント・コンピュータへ簡単に分散されることが可能である。明らかに、もし同一の初期会議モデル・データが多くのクライアント・コンピュータに存在するものならば、同一の処理を会議モデル・データのすべてのコピーに適用することで同一モデルが生ずるであろう。
【００４０】
好ましくは、会議に参加することを望み、またサーバ・コンピュータに対してそのような要求を行うクライアント・コンピュータへ会議モデル・データのコピーを送る。これによって、新規のクライアント・コンピュータが任意の場所で会議に参加することを可能とさせ、またその場所で正確かつ信頼性のある会議録のコピーを受け取ることを可能とさせる。好ましい実施形態例では、ブランク・テンプレート会議モデルはクライアント・コンピュータ上に格納され、それの状態はサーバに保持された会議モデル・データの状態に一致するように変更される。
【００４１】
好ましい実施形態例では、サーバ・コンピュータおよびクライアント・コンピュータで実行される方法は、Ｊａｖａ等の上位バイト・コードの制御下にある。これによって、会議の異機種間の移植性が可能となる。マシン上位バイト・コードはクライアント・コンピュータ上で走るネットワーク・ブラウザによってサーバ・コンピュータからダウンロード可能である。このことは、事前にクライアント・コードをインストールしておく必要性がまったくなくワールド・ワイド・ウェブからリアル・タイムでダウンロードすることですでにインターネットに接続されているほとんどのコンピュータの連結性を容易にする。
【００４２】
好ましい実施形態では、各クライアント・コンピュータはコンピュータの画面上に会議モデルをグラフィック表示する。したがって、各クライアント・コンピュータは会議モデル・データがそれ自身の画面上、すなわちビューに表示される方法の細目に適応し、一方で同時に他のクライアント・コンピュータの各々と同様の会議モデル・データを表示する。
【００４３】
好ましい実施形態例では、サーバ・コンピュータは会議モデル・データをグラフィック表示する必要性はないけれどもクライアント・コンピュータ上の会議モデル・データのすべてのコピーを保全する責任を持つことで会議での中心的役割を担う。サーバ・コンピュータ上に集中化された会議モデル・データは、マスタとしての役割を果し、すべてのクライアント・コンピュータに対して歩調を合わせるように強いる。
【００４４】
上位マシン・コードはＪａｖａ仮想マシンに必要とされるバイト・コード等のプラットフォームから独立したコードである。Ｊａｖａバイト・コード等の上位マシン・コードは、アプリケーションから独立したオペレーティング・システム／プラットフォームを提供する。また、Ｊａｖａバイト・コードは再コンパイルすることなしに任意のＪａｖａ使用可能プラットフォーム（Ｊａｖａ実行可能環境を有するオペレーティング・システムまたは仮想マシン）上で実行可能である。ＪａｖａはＳＵＮ  ＭＩＣＲＯＳＹＳＴＥＭＳ  ＣＯＲＰＯＲＡＴＩＯＮの登録商標である。
【００４５】
【発明の実施の形態】
本発明の実施形態例であるクライアント／サーバの構成は、図４に示すように、３台のクライアント・コンピュータ（３２Ａ、３２Ｂ、３２Ｃ）に直接接続したセントラル・サーバ・コンピュータ（３０）を有する。クライアント・コンピュータ（３２Ａ）は、メモリ（３８）および（または）クライアント・コンピュータのディスク上に格納されたクライアント・コード（３６Ａ、３６Ｂ、３６Ｃ）の命令に従って稼働するプロセッサ（３４）を有する。クライアント・コンピュータ（３２Ａ）の映像出力は、プロセッサ（４２）に接続されたモニタまたはＬＣＤ画面等のビデオ周辺機器（４０）を介して行われ、またクライアント・コンピュータ（３２Ａ）に対するユーザ入力はプロセッサ（３４）に接続されたキーボード（４２）またはコンピュータ・マウス（４３）によって行われる。クライアント・コンピュータは、さらにネットワーク・アダプタ（４４）を備える。このネットワーク・アダプタ（４４）の一端はプロセッサに接続し、その他端はコンピュータ・ネットワーク（４６）に接続している。これら２種類のコンピュータ・ネットワークの例として、企業内イントラネットとインターネットとが挙げられる。クライアント・コンピュータの一例は１３３ＭＨｚの４８６マイクロ・プロセッサ、１ギガバイトのハードディスク、１６メガバイトのメモリ、および１６インチのモニタを備えたＩＢＭのＡｐｔｉｖａコンピュータである。
【００４６】
サーバ・コンピュータ（３０）は、該サーバ・コンピュータのメモリ（５２）および（または）ディスク上に格納されたサーバ・コード（５０Ａ、５０Ｂ）（サーバ・プログラム・コード）の命令に従って稼働するプロセッサ（４７）を有する。映像出力は、必ずしも必要としないがプロセッサ（４８）に接続されたモニタまたはＬＣＤ画面等のビデオ周辺機器を介して行うこともできる。また、ユーザ入力も必ずしも必要としないがプロセッサ（４８）に接続されたキーボードまたはコンピュータ・マウスを介して行うことができよう。サーバ・コンピュータ（３０）は、さらにネットワーク・アダプタ（５４）を備える。このネットワーク・アダプタ（５４）の一端はプロセッサ（４８）に接続し、その他端はコンピュータ・ネットワーク（４６）に接続している。これら２種類のコンピュータ・ネットワークの例として、企業内イントラネットとインターネットとが挙げられる。クライアント・コンピュータの一例はＩｎｔｅｌＰ２００ＭＨｚマイクロ・プロセッサ、２０ギガバイトのハードディスク、および６４メガバイトのメモリを備えたＩＢＭのＲＩＳＣ６０００コンピュータである。
【００４７】
クライアント・コード（３６Ａ、３６Ｂ、３６Ｃ）の各々の具体例は、３つの主要部分から構成される。すなわち、会議モデル・オブジェクト（３６Ａ）（ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＭｏｄｅｌクラスのインスタンス）、会議コントローラ・オブジェクト（３６Ｂ）（ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＣｏｎｔｒｏｌｌｅｒクラスのインスタンス）、および会議ビュー・オブジェクト（３６Ｃ）（ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＶｉｅｗクラスのインスタンス）である。クライアント・コードは、サーバに格納されたワールド・ワイド・ウエブ（ＷＷＷ）のページ（５８）に含まれるクライアント・アプレット（５６）を形成する。クライアント・コード（３６）の数多くのインスタンスが存在するのと同じぐらいクライアント・コンピュータ（３２Ａ、３２Ｂ、３２Ｃ）が存在し、クライアント・コードのインスタンスがダウンロードされ、各クライアント・コンピュータ（３２Ａ、３２Ｂ、３２Ｃ）に格納される。
【００４８】
クライアント・コンピュータ（３２Ａ）上にクライアント・コードのインスタンスをダウンロードまたは生成するために、インターネットに接続されたＪａｖａ使用可能ウエブ・ブラウザを有するコンピュータを必要とする。すなわち、クライアント・アプレット（５６）を含む会議ウエブ・ページ（５８）にアクセスし一覧することで、ブラウザはクライアント・コンピュータ（３２Ａ）上にクライアント・アプレット（５６）をコピーする。アプレット（５６）は普通ダウンロードで動作するが、カーソルおよびマウス（４３）を用いてモニタ（４０）上に表示されたボタン・アイコンの選択等のイベント（事像）を行った後でも動作することも可能である。
【００４９】
サーバ・コード（５０Ａ、５０Ｂ）は２つの主要な部分から構成される。すなわち、会議マネージャ（５０Ａ）（会議システム・マネージャ・クラスのインスタンス）および会議モデル・オブジェクト（５０Ｂ）（ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＭｏｄｅｌクラスのインスタンス）である。サーバ・コードに使用される他のサーバ・オブジェクトは、ＳｅｒｖｅｒＭａｉｎオブジェクト（５０Ｃ）、Ｃｏｎｎｅｃｔｉｏｎオブジェクト（５０Ｄ）、およびＳｅｒｖｅｒＭｏｎｉｔｏｒオブジェクト（５０Ｅ）である（図４を参照）。
【００５０】
ＳｅｒｖｅｒＭａｉｎオブジェクト（５０Ｃ）は、クライアントから入ってくるネットワーク接続を傾聴して受け付ける。接続が受信されると、それによってＣｏｎｎｅｃｔｉｏｎクラス（５０Ｄ）のインスタンスが生成される。ＳｅｒｖｅｒＭａｉｎオブジェクトはまた、たった一つの会議システム・マネージャ・オブジェクトを生成し、かつ所有する。
【００５１】
Ｃｏｎｎｅｃｔｉｏｎクラスのインスタンス（５０Ｂ）は、各クライアントに対してＣｏｎｎｅｃｔｉｏｎオブジェクトが存在するように、ネットワーク接続がサーバによって受信されるたびに生成される。それによって個々のクライアントに対する接続が表現される。Ｃｏｎｎｅｃｔｉｏｎオブジェクト（５０Ｄ）は、クライアントから入ってくるメッセージを続けて傾聴し、該メッセージを会議システム・マネージャ・クラスへ送る。また、Ｃｏｎｎｅｃｔｉｏｎオブジェクト（５０Ｄ）はＣｏｎｆｅｒｅｎｃｉｎｇＳｙｓｔｅｍＭａｎａｇｅｒオブジェクト（５０Ｂ）からクライアントへメッセージを送り返す。
【００５２】
ＣｏｎｆｅｒｅｎｃｉｎｇＳｙｓｔｅｍＭａｎａｇｅｒオブジェクト（５０Ｂ）は、サーバに対して同時に起こるマルチ・パーティ会議を管理する。進行中の各会議は、ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＭｏｄｅｌクラス（または詳細にはそれのサブクラスのうちの一つ）のインスタンスによって表される。進行中の各会議はすべてのメッセージで承認される「モデルＩＤ」によってそれ自身のモデル・クラスを識別する。
【００５３】
ＳｅｒｖｅｒＭｏｎｉｔｏｒオブジェクト（５０Ｅ）は、ＣｏｎｆｅｒｅｎｃｉｎｇＳｙｓｔｅｍＭａｎａｇｅｒオブジェクト（５０Ｂ）のアクティビティをグラフィックで表現する。このグラフィックス表示は管理者によって会議システムでのアクティビティを監視する際に利用される。
【００５４】
ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＭｏｄｅｌクラス（５０Ａ）は、すべての会議モデルに対してスーパクラスである。各々の種類のマルチ・パーティ会議はそれ自身の会議アプレット・モデルのサブクラスを生成する。例えば、チャット・アプリケーションのチャット会議モデル、チョークボード・アプリケーションのＣｈａｌｋｂｏａｄＣｏｎｆｅｒｅｎｃｅＭｏｄｅｌ、その他を挙げることができよう。モデル・オブジェクトは、モデル・データ（６０）の形で会議の現在の状況を維持する。それによって、以下の３つの重要なメソッドが提供される。
【００５５】
ａｐｐｌｙＯｐＣｏｄｅ（）  （６２）は、オペランドおよびそれ自身の変数（クライアントからのメッセージで受け取られるのと同様に）をモデルに適用し、それによって更新されるモデルのデータ（６０）（状態）が生ずるであろう。
【００５６】
ｓｅｔＳｔａｔｅ（） （６０）（状態）は、モデルにそれ自身のデータ（６０）（状態）をメッセージに送られたものに設定させる。
【００５７】
ｇｅｔＳｔａｔｅ（） は、モデルにそれ自身の現在の状態が含まれるメッセージを生成させる。
【００５８】
クライアント・コードで使用される他のクライアント・オブジェクトは、Ｓｈａｒｅｒオブジェクト（３６Ｄ）およびＳｈａｒｅｒＲｅａｄｅｒオブジェクト（３６Ｅ）である（図５参照）。
【００５９】
ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＭｏｄｅｌオブジェクト（３６Ａ）はサーバで使用されるオブジェクトと同一であり、以下に記述するサブクラスを有する。
【００６０】
ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＶｉｅｗクラスはすべての会議ビュー・コントローラ（ユーザに対して会議の現在の状態を表示することに使用、例えばチャット会議の追記）のスーパクラスである。各々の種類の会議はそれ自身のＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＶｉｅｗのサブクラスを導入する。クラス・インスタンス（３６Ｃ）のビューはモデルと一対一に対応する。モデルのデータ（６０）が変更されると、それ自身の再描画をさせるビューのｉｎｖａｌｉｄａｔｅ（）メソッドを呼出す。
【００６１】
ＣｏｎｆｅｒｅｎｃｉｎｇＡｐｐｌｅｔＶｉｅｗクラスはすべての会議ビュー・コントローラ（サーバへのメッセージ送信およびサーバからのメッセージ読取りに使用）のスーパクラスであり、コントローラ・オブジェクト（３６Ｂ）を形成する。コントローラ・オブジェクト（３６Ｂ）はビューおよびモデルと一対一の関係にある。ユーザ・アクションがエンド・ユーザ・インタフェースで実行されると、ビューは実行されるべきアクションのコントローラに知らせる。コントローラは、これをメッセージの中に構成してサーバ（３０）へ送る。サーバ（３０）はメッセージを会議のすべてのコントローラへ同報通信する。同様に、コントローラは入ってくるサーバからのメッセージを傾聴し、それを評価のためにモデルのａｐｐｌｙＯｐｃｏｄｅ（）メソッド（６２）へ送る。
【００６２】
Ｓｈａｒｅｒオブジェクト（３６Ｄ）は、サーバとのソケット接続を確立するために、そしてメッセージをそれに送るために会議アプレット・コントローラによって使用される。
【００６３】
ＳｈａｒｅｒＲｅａｄｅｒオブジェクト（３６Ｅ）は入ってくるサーバからのメッセージ（３０）を傾聴し、それを評価のためにモデルへ送る。
【００６４】
実施形態例の初期化は以下の通りである。ＷＷＷブラウザの制御下にあるクライアント・コンピュータ（３２Ａ）はクライアント・アプレット（５０）が含まれるページ（５８）を表示するよう命令される。ページはある種の会議への参加を望むユーザのための会合場所であってもよい。閲覧時、クライアント・アプレット（５６）がサーバ（３０）からクライアント・コンピュータにダウンロードされ、実行時にクライアント・コードのインスタンスが生成される。このクライアント・コードのインスタンスには、会議アプレット・モデル・オブジェクト（３６Ａ）、会議アプレット・コントローラ・オブジェクト（３６Ｂ）、会議アプレット・ビュー・オブジェクト（３６Ｃ）、Ｓｈａｒｅｒオブジェクト（３６Ｄ）、およびＳｈａｒｅｒＲｅａｄｅｒオブジェクト（３６Ｅ）が含まれる。さらに、Ｓｈａｒｅｒオブジェクト（３６Ｄ）の制御下にあるクライアント・コンピュータ（３６Ａ）はサーバ・オブジェクトとソケット接続の確立を試みる。
【００６５】
特定の会議に対するサーバ・コード（５０Ａ〜５０Ｅ）は、第１のクライアントが存在しない会議への接続を要求するとただちに生成される。次のクライアント・コンピュータがソケット接続の確立を試みと、サーバメイン・オブジェクト（５０Ｃ）はコネクション・クラス（５０Ｄ）のインスタンスを生成し、それをクライアント・コンピュータに対応付ける。ＳｅｒｖｅｒＭａｉｎオブジェクト（５０Ｃ）は、（状態）を含むメッセージを生成するゲート・ステート（状態）を呼び出すことによって会議アプレット・モデル・オブジェクト（５０Ａ）にあるモデル・データ（６０）の状態を決定する。このメッセージは、ネットワーク接続を介してサーバのコネクション・オブジェクト（５０Ｄ）によってＳｈａｒｅＲｅａｄｅｒオブジェクト（３６Ｅ）によってそれがピック・アップされるクライアント・オブジェクト（３６Ｅ）に送られる。次にメッセージは、そのモデル・データ（６０）の状態をそのセット・ステート（状態）方法を用いてメッセージに送られるものに変えるクライアントの会議アプレット・モデル・オブジェクト（３６Ａ）に送られる。
【００６６】
ひとたびクライアント・コンピュータが現在のモデル・データ（６０）を格納すると、該コンピュータは演算コード（Ｏｐｃｏｄｅ）を含む更新・メッセージの一定のフローをａｐｐｌｙＯｐＣｏｄｅ（ＯｐＣｏｄｅ）メソッド（６２）を用いてそれ自身を更新するために会議モデル・オブジェクト（３６Ａ）を要求するサーバ（５０Ａ〜５０Ｄ）から受け取る。アップデート・メッセージは会議が進行しているかぎり続く。実際のところ、特定の会議について接続された各々のクライアントに対して、サーバから同一のアップデート・メッセージ（ＯｐＣｏｄｅ）が送られる。このようにして、もし会議モデル・オブジェクトのすべてが開始時に同一のモデルを有し、また順序を同じくして同一のメッセージ・アップデート（ＯｐＣｏｄｅ）を受け取るならば、会議の任意の場所において、任意の会議モデル・オブジェクトのモデル・データ（６０）が一致する。
【００６７】
もしクライアントがモデル・データ（６０）の追加または編集による会議への参加を望むならば、モデル・データ（６０）に対する変更は会議コントローラ・オブジェクト（３６Ｂ）によってオペレーション・コードとして表現され、サーバ・コンピュータ（３０）の会議マネージャ・オブジェクト（５０Ｂ）に送られる。つぎに、会議マネージャ・オブジェクト（５０Ｂ）は参加しているクライアント・オブジェクト（３６）のすべてに対してアップデート・メッセージとしてオペレーション・コードを分配または再送する。各会議モデル・オブジェクト（３６Ａ）は更新・メッセージを受け取り、また各ａｐｐｌｙＯｐＣｏｄｅメソッド（６２）は各々のモデル・データ（６０）の組を更新する。
【００６８】
サーバ（３０）の会議モデル・オブジェクト（５０Ａ）もまたアップデート・メッセージを受け取り、ａｐｐｌｙＯｐＣｏｄｅ（）メソッド（６２）はサーバ・オブジェクトのモデル・データ（６０）を更新する。
【００６９】
本発明の一実施態様は、対話型共同作業環境としての企業イントラネットのために開発されたＩＢＭのＴｅａｍＷｏｒｋｅｒアプリケーションである。モデル・データ（６０）は、多色で書かれたり、描かれたり、あるいは塗られたりする２次元表面を表すチョークボード・アプリケーションで使用されるデータである。図５は、ＴｅａｍＷｏｒｋｅｒのメイン・クラス間のインタラクションを示す。ＴｅａｍＷｏｒｋｅｒの他のクラスは、ＴｅａｍＷｏｒｋｅｒのインフラストラクチャの上に特定の会議アプリケーションを実装し、それらの会議を開始することができるグラフィカル・フロント・エンドを提供するために使用される。
【００７０】
ブラウザにダウンロードされる場合にメイン・アプレット・クラス（５６）が実行される。それによって会議機能をユーザに表示するために使用されるＴｅａｍＷｏｒｋｅｒｗｉｎｄｏｗが生成される（図６）。ＴｅａｍＷｏｒｋｅｒは「チーム」という概念を有し、該チームの各々のメンバーはアプレット内部のＴｅａｍＭｅｍｂｅｒＭｏｄｅｌクラスのインスタンスによって表示される。どのＴｅａｍＭｅｍｂｅｒＭｏｄｅｌも、対応するＴｅａｍＭｅｍｂｅｒＶｉｅｗを有する。このＴｅａｍＭｅｍｂｅｒＶｉｅｗは、パスポートの写真の大きさのウィンドウにチームの構成員の写真を表示することによってメイン・ウィンドウ内にそのチーム・メンバーを表示する。チーム構成員の写真の左側に、ユーザによる会議機能の開始を可能とさせるツールバーが表示される。使用可能な各会議機能はツールバー内のボタンによって表示される。それらのボタンは、クラス・チャット・ボタン（ｃｌａｓｓｅｓ ＣｈａｔＢｕｔｔｏｎ）（マルチ・パーティ・チャット会議を開始あるいは該会議へ参加する際に使用）、ダイアリ・ボタン（ＤｉａｒｙＢｕｔｔｏｎ）（チーム構成員のダイアリを表示する際に使用）、ｅ−メイル・ボタン（ＥＭａｉｌＢｕｔｔｏｎ）（チーム構成員へｅ−メイルを送る際に使用）、ホーム・ページ・ボタン（ＨｏｍｅＰａｇｅＢｕｔｔｏｎ）（チーム・ワーカ・アプレットが動作するウエブ・ブラウザにチーム・メンバーのホーム・ページの表示を要求する際に使用）、メッセージ・ボタン（ＭｅｓｓａｇｅＢｕｔｔｏｎ）（受信側のディスプレイにポップ・アップされるダイレクト・メッセージを他のチーム構成員へ送信する際に使用）、電話ボタン（ＰｈｏｎｅＢｕｔｔｏｎ）（他のチーム・メンバの電話番号を表示する際に使用）、およびジョグル・ボタン（ＪｏｇｇｌｅＢｕｔｔｏｎ）（ジョグルと呼ばれるマルチ・パーティ・ゲームを起動する際に使用）によって実現される。
【００７１】
これらの機能のうちのいくつかは、純粋にクライアントによって実装され（例えば電話番号およびホーム・ページの表示）、他のものはアプリケーションの主体であるチーム・ワーカ・インフラストラクチャを要求する真のマルチ・パーティ会議アプリケーションである。
【００７２】
会議ボタンの一つ（例えば、チャット・ボタン）が押された場合、会議を管理するために新規の会議ビュー（３６Ｃ）、モデル（３６Ａ）、およびコントローラ（３６Ｄ）のインスタンスが生成される。生成された実際のクラスは、会議アプレット・モデル、ビュー、およびコントローラ・クラスのサブクラスであって、これらは所定のタイプの会議に特有なものである。これらのクラスは既に述べたようにして、また既に図示したようにしてチャットを管理するのに使用される。
【００７３】
本発明は、チョークボード・アプリケーションに限定されるものではない。例えば、本発明の別の実施形態例として化学者および生物学者によって使用されるような３次元分子モデリング・アプリケーションが挙げられ、該アプリケーションにおいて本発明が適用されることが特に有益である。モデル・データ（６０）は分子中の種々の原始の種類、場所、および結合を表すものとすることができる。会議ビュー・オブジェクトは任意の方向から分子を見ることができよう。また、会議コントローラ・オブジェクトはユーザによる原子の処理および変更を可能とさせる。そのようなアプリケーションは、特に解像度の高い画像を使用することからプロセッサ・インテンシブであり、モデル・データをクライアント・コンピュータに格納することは主な実用的問題である。このことは、アプリケーションが対処する明細書の序文で概説された問題となる。
【００７４】
プログラミングの性質上、オブジェクト指向プログラミング言語以外のプログラミング言語を用いて本発明を実現することはまったく可能である。
【００７５】
オブジェクト指向環境下では、一台のクライアント・コンピュータが複数の会議に参加することは可能である。
【００７６】
もちろん、サーバ・コンピュータは実施例で述べたような3台のクライアント・コンピュータのみならず任意の数のクライアント・コンピュータに実際に接続することができる。さらに、実施例で示したコンピュータを使用する必然性はなく、本発明は異なる構成で接続された別のタイプのコンピュータを用いて実施してもよい。
【００７７】
以上、クライアント／サーバ環境のためのパーソナル会議方法およびシステムについて説明した。サーバは、共有チョークボードまたは分子モデル等の会議モデル・データ（６０）を格納し、また各クライアントは会議モデル・データ（６０）を持つ。前記クライアントの一つがモデルを編集する場合、モデルを処理するための命令を生成し、該命令をサーバへ送る。サーバは命令の受け取り次第会議モデル・データの処理（６２）を実行し、命令を各々のクライアントへ再送する。そして、各クライアントは同一処理（６２）を各々のコピーされた会議データ・モデル（６０）上で実行する。したがって、異なるクライアントからの複数の異なるオペレーティング命令の後に、会議モデル・データ（６０）は等しいものとなる。
【００７８】
まとめとして、本発明の構成に関して以下の事項を開示する。
（１）接続された一以上のクライアント・コンピュータを有するサーバ・コンピュータのためのパーソナル会議方法であって、
（ａ）会議モデル・データをサーバ・コンピュータに格納するステップと、
（ｂ）クライアント・コンピュータからの命令を受信するやいなや前記会議モデル・データを処理するステップと、
（ｃ）前記サーバ・コンピュータから各々のクライアント・コンピュータに前記命令を再送するステップとを有し、前記会議モデル・データのすべてのコピーが前記サーバ・コンピュータに保持された会議モデル・データに対応するように、各クライアント・コンピュータは該クライアント・コンピュータ上に保持された前記会議データ・モデルのコピーに対して同一の処理を実行するパーソナル会議方法。
（２）サーバ・コンピュータに接続された一台以上のクライアント・コンピュータのための会議方法であって、
（ａ）前記クライアント・コンピュータの各々が会議モデル・データのコピーを格納するステップと、
（ｂ）前記クライアント・コンピュータの一つが会議モデル・データを処理する命令を生成し、サーバ・コンピュータへ前記命令を送るステップと、
（ｃ）前記クライアント・コンピュータの各々がサーバ・コンピュータからの命令のコピーを受信し、該命令にもとづいて上記クライアント・コンピュータの各々のモデルを処理するステップとを有し、異なるクライアントからの複数の異なる処理命令の後に、前記会議モデル・データの各々のコピーは互いに対応するパーソナル会議方法。
（３）前記サーバ・コンピュータは、前記会議モデル・データを要求あり次第クライアント・コンピュータへ前記カンファレンス・モデル・データを送る上記（１）または（２）に記載のパーソナル会議方法。
（４）上位マシン・バイト・コードの制御下で前記ステップが実行される上記（１）ないし（３）のいずれか一項に記載のパーソナル会議方法。
（５）クライアント・コンピュータを制御する上位マシン・バイト・コードは、該クライアント・コンピュータで実行されるネットワーク・ブラウザによって前記サーバ・コンピュータからダウンロード可能である上記（４）に記載のパーソナル会議方法。
（６）前記会議モデル・データを処理する前記命令は変数を有するＯｐｃｏｄｅの形態である上記（２）ないし（５）のいずれか一項に記載のパーソナル会議方法。
（７）会議モデル・データとクライアント・コンピュータから命令を受信して該命令にもとづいて前記会議モデル・データを処理する手段とを有するサーバ・コンピュータと、命令を生成して該命令を前記サーバ・コンピュータへ送る手段を有する少なくとも２台のクライアント・コンピュータとを備えるパーソナル会議システムであって、
前記サーバ・コンピュータは、
受信した命令をすべてのクライアント・コンピュータへ分散する手段をさらに有し、また
前記少なくとも２台のクライアント・コンピュータの各々は、
会議モデル・データのコピーと、
前記サーバ・コンピュータからの分散された命令を受信して前記サーバ・コンピュータから受信した命令にもとづいて前記会議モデル・データのコピーを処理する手段とをさらに有するパーソナル会議システム。
（８）前記少なくとも２台のクライアント・コンピュータの各々は、前記会議モデル・データを表示するための手段をさらに有する上記（７）に記載のパーソナル会議システム。
（９）会議モデル・データと、該会議モデル・データを処理するための命令を生成して該命令を他のコンピュータへ送る手段と、前記命令にもとづいて前記会議モデル・データを処理する手段とを有し、かつメッセージ通信のために接続した少なくとも２台のコンピュータを有するパーソナル会議システムであって
前記少なくとも２台のコンピュータの一つがサーバ・コンピュータであり、他のコンピュータが該サーバ・コンピュータと接続されたクライアント・コンピュータであり、
前記サーバ・コンピュータは、さらに接続されたクライアント・コンピュータのすべてに分散するための手段を有し、さらに、
前記会議モデル・データを処理する手段は、前記サーバ・コンピュータから分散された命令を受信するための手段を有するもので、
異なるコンピュータからの処理命令のシーケンスは前記会議モデル・データの各々のコピーに対して同時に実行されるパーソナル会議システム。
（１０）サーバ・オブジェクトおよび複数のクライアント・オブジェクトと、モデル・データと命令メッセージに対して前記モデル・データを処理する手段とを有するモデル・オブジェクトとを有し、また前記複数のクライアント・オブジェクトの各々は、前記モデル・オブジェクトを処理するための命令を生成する手段を有するパーソナル会議システムにおいて、
前記複数のクライアント・オブジェクトの各々は関連したモデル・オブジェクトを有し、また
前記複数のクライアント・オブジェクトの各々は処理命令をサーバ・オブジェクトに送る手段をさらに有することによって、
実行されるべき異なるクライアント・オブジェクトからの命令のシークエンスをモデル・データのインスタンス上の各モデル・オブジェクトによって同時に実行させるパーソナル会議システム。
（１１）コンピュータ・ネットワーク全体にわたる伝送のためにモデル・オブジェクトとクライアント・オブジェクトとを実装するための手段をさらに有する上記（１０）に記載のパーソナル会議システム。
（１２）前記モデル・オブジェクトは、現在のモデル・データを含む状態メッセージを発生させ、該状態メッセージを他のオブジェクトに送るために、モデル・オブジェクトを生成する手段をさらに有する上記（１１）に記載のパーソナル会議システム。
（１３）前記モデル・オブジェクトは、前記モデル状態メッセージに送られたものへモデル・データをセットし、それによって一つのモデル・オブジェクトが他のモデル・オブジェクトによってコピーされるために、前記モデル・オブジェクトを生成する手段をさらに有する上記（１２）に記載のパーソナル会議システム。
（１４）さらに、前記サーバ・オブジェクトに関連して集中化されたモデル・オブジェクトを有する上記（１０）ないし（１３）のいずれか一項に記載のパーソナル会議システム。
（１５）クライアント・オブジェクトに関連したモデル・オブジェトは前記サーバ・オブジェクトに関連した前記モデル・オブジェクトからコピーされる上記（１４）に記載のパーソナル会議システム。
（１６）前記クラスおよびオブジェクトは、上位マシン・バイト・コードにインプリメントされる上記（１０）ないし（１５）のいずれか一項に記載のパーソナル会議システム。
（１７）クライアント・クラスおよびモデル・クラスは、ダウンロード可能で、かつ前記上位マシン・バイト・コードによって使用可能となるネットワーク・ブラウザによって実行可能な上位マシン・バイト・コード・アプレットを含む上記（１６）に記載のパーソナル会議システム。
【図面の簡単な説明】
【図１】  従来のピア・トゥ・ピア会議システムの一例を示すブロック図である。
【図２】  従来のクライアント／サーバ会議システムの一例を示すブロック図であり、標準的なXWindowにおけるクライアントとサーバとのインタラクションを示す。
【図３】  従来のクライアント／サーバ会議システムの一例を示すブロック図であり、クライアントとサーバとの間に設けられたＸＴＶとのインタラクションを示す。
【図４】  本発明にもとづくパーソナル会議システムの一実施形態例を説明するためのブロック図である。
【図５】  本発明にもとづくパーソナル会議システムをインプリメントする際に使用されるプログラム・クラスを模式的に説明するためのブロック図である。
【図６】  本発明にもとづくパーソナル会議システムに適用されるＩＢＭのTeam Workerアプリケーションのコンピュータ画面を表す図である。
【符号の説明】
３０                      サーバ・コンピュータ
３２Ａ、３２Ｂ、３２Ｃ    クライアント・コンピュータ
３４                      プロセッサ
３６Ａ、３６Ｂ、３６Ｃ    クライアント・コード
３８                      メモリ
４０                      周辺機器
４２                      キーボード
４３                      マウス
４４                      ネットワーク・アダプタ
４７                      プロセッサ
４８                      プロセッサ
５０Ａ−Ｅ                サーバ・コード
５２                      メモリ
５６                      クライアント・アプレット
５８                      ＷＷＷのページ（ウエブ・ページ）
６０                      モデル・データ
【図１】
0003694167.tif 000002
【図２】
0003694167.tif 000003
【図３】
0003694167.tif 000004
【図４】
0003694167.tif 000005
【図５】
0003694167.tif 000006
【図６】
0003694167.tif 000007