(57)【要約】ネットワークベースのコラボレーションシステムおよびコラボレーション方法が、ネットワーク（１６）と接続されたクライアント（１４）上の異種のアプリケーション（３０、３２、３４、３６）を用いて、デザインを作成するか、修正するか、またはそうでなければ操作するために使用され得る。このシステムおよび方法は、この異種のアプリケーション間でのデザインのコラボレーションを可能にする。この異種のアプリケーションの各々は、各々の異種のアプリケーション（３０、３２、３４、３６）に認識されるデザインの抽象化レベルで規格化されたアプリケーション状態を交換することによる様々なデザインの抽象化および様々なローカルデータモデルを有する。
2007525745.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された各々のクライアント上で動いている複数の異種のユーザーアプリケーションを用いてデザインを操作するために該ネットワーク上でコラボレーションする、コンピューターによる方法であって、該方法は：
コラボレーションセッションに参加するために、該ネットワーク上でセッションクライアントプロセスをセッションマネージャーに接続する工程；
該セッションマネージャーに接続された他のセッションクライアントプロセスとセッションコントロールメッセージを共有する工程；
該デザインを表すデザインデータを該クライアント上で動いているローカルアプリケーションへロードする工程；
該ローカルアプリケーションの少なくとも１つの状態を表す少なくとも１つのアプリケーション状態ファイルを、該ローカルアプリケーションを用いて該デザインの少なくとも１つの操作に基づいて作成する工程；
少なくとも１つのアプリケーション状態ファイルを該セッションマネージャーを介して該セッションクライアントプロセスから該他のセッションクライアントプロセスへ通信する工程；および
他のローカルアプリケーションによって作成され、該セッションマネージャーを介して該他のセッションクライアントから通信された少なくとも１つのアプリケーション状態ファイルをロードする工程；
を包含する、方法。
【請求項２】
請求項１に記載の方法であって、前記少なくとも１つのアプリケーション状態が、少なくとも１つのアプリケーション状態ファイルを作成するために、規格化されたＸＭＬ構造を用いてコード化され、該少なくとも１つのアプリケーション状態ファイルがＸＭＬメッセージとして通信される、方法。
【請求項３】
請求項２に記載の方法であって、前記ＸＭＬ構造が、デザインデータのタイプのコンテキストにおいて規定された分野特有の仕様に基づいている、方法。
【請求項４】
請求項１に記載の方法であって、前記セッションコントロールおよび前記少なくとも１つのアプリケーション状態ファイルをジャーナルファイル中に保存する工程をさらに包含する、方法。
【請求項５】
請求項１に記載の方法であって、前記コラボレーションセッションをスケジュールする工程をさらに包含する、方法。
【請求項６】
請求項１に記載の方法であって、前記他のセッションクライアントとテキストベースの対話を行う工程をさらに包含する、方法。
【請求項７】
請求項１に記載の方法であって、前記コラボレーションセッションにログインする工程、および該コラボレーションセッションからログアウトする工程をさらに包含する、方法。
【請求項８】
請求項１に記載の方法であって、前記アプリケーション状態ファイルのロードを前記ユーザーが選択した時間で制御する工程をさらに包含する、方法。
【請求項９】
請求項１に記載の方法であって、前記他のアプリケーションファイルによって作成され通信された該アプリケーション状態ファイルに相当するデザイン操作を表示する工程をさらに包含する、方法。
【請求項１０】
請求項１に記載の方法であって、前記デザインが、前記異種のアプリケーション間でデザインイメージを伝送する必要なく操作される、方法。
【請求項１１】
複数の異種のアプリケーションを用いてデザインを操作するためにコラボレーションする、コンピューターによる方法であって、該方法は：
デザインデータをコンピューター上のローカルアプリケーションへロードする工程；
該ローカルアプリケーションを用いて該デザインデータに基づいてデザインを操作する工程；
該ローカルアプリケーションのアプリケーション状態を表す少なくとも１つのアプリケーション状態ファイルを、該ローカルアプリケーションを用いて該デザインの少なくとも１つの操作に基づいて  作成する工程；
該少なくとも１つのアプリケーション状態ファイルの各々をジャーナルファイル中に保存する工程；および
該ジャーナルファイルを別のコンピューターに伝送する工程であって、その結果、該少なくとも１つのアプリケーション状態ファイルが、該別のコンピューター上にロードされ得、該少なくとも１つの操作が、該別のコンピューター上で動いている別の異種のアプリケーションを用いてレビューされ得る、工程
を包含する、方法。
【請求項１２】
請求項１１に記載のコンピューターによる方法であって、該方法が、コラボレーションの非同期方法である、方法。
【請求項１３】
請求項１１に記載のコンピューターによる方法であって、前記ジャーナルファイルが、前記別のコンピューター上で再生される際に対話式命令を提供する、方法。
【請求項１４】
単一のクライアント上で同時に動いている異種のアプリケーション間で動的にコラボレーションする、コンピューターによる方法であって、該方法は：
デザインデータを該クライアント上の該アプリケーションのうちの１つへロードする工程；
該アプリケーションのうちの１つを用いてデザインオブジェクトを操作する工程；
操作される該デザインオブジェクトの名称を反映する少なくとも１つのアプリケーション状態ファイルを作成する工程；
少なくとも１つの他の該アプリケーションの該アプリケーション状態ファイルを、ローカルオペレーティングシステムのインタープロセスメッセージングを用いて動的に通知する工程；
該アプリケーション状態を少なくとも１つの他の該アプリケーションを用いて読み取る工程；および
該少なくとも１つの他の該アプリケーションにおいて対応するデザインオブジェクトを、該アプリケーション状態ファイルに基づいて操作する工程
を包含する、方法。
【請求項１５】
請求項１４に記載のコンピューターによる方法であって、前記デザインを操作する工程が前記デザインオブジェクトをハイライトする工程を包含し、前記該アプリケーションが、前記アプリケーション状態ファイルを読み込む際に前記対応するデザインオブジェクトをハイライトする、方法。
【請求項１６】
請求項１４に記載のコンピューターによる方法であって、前記異種のアプリケーションが双方向にコラボレーションする、方法。
【請求項１７】
ネットワークと接続されたクライアント上で動いている複数の異種のアプリケーションを用いて、デザインを操作するために該ネットワーク上でコラボレーションするコンピューター制御システムであって、該システムは：
ローカルアプリケーションを用いて作成された少なくとも１つのデザイン操作に基づいて、該ローカルアプリケーションによって作成されたアプリケーション状態を表すための、少なくとも１つのアプリケーション状態ファイル；
該ローカルアプリケーションとコラボレーションセッションとの間のインタラクションを同期させ、かつ該アプリケーション状態ファイルを該ネットワーク上で他のクライアントへ通信するための、セッションクライアントモジュール；  
を備える、コンピューター制御システム。
【請求項１８】
請求項１７に記載のコンピューター制御システムであって、前記セッションクライアントモジュールが、以下：
ユーザーとインターフェイスをとるためのユーザーインターフェイス；
前記ローカルアプリケーションとインターフェイスをとるための、第１のアプリケーションプログラミングインターフェイス；および
前記ネットワーク上でセッションマネージャーとインターフェイスをとるための、第２のアプリケーションプログラミングインターフェイス
を備える、コンピューター制御システム。
【請求項１９】
請求項１７に記載のコンピューター制御システムであって、前記コラボレーションセッションの間に、セッションコントロールおよび前記アプリケーション状態を記録するためのセッションジャーナルをさらに備える、コンピューター制御システム。
【請求項２０】
請求項１７に記載のコンピューター制御システムであって、前記アプリケーション状態が、前記少なくとも１つのアプリケーション状態ファイルを作成するために、規格化されたＸＭＬ構造を用いてコード化され、該少なくとも１つのアプリケーション状態ファイルがＸＭＬメッセージとして通信される、コンピューター制御システム。
【請求項２１】
請求項１７に記載のコンピューター制御システムであって、前記セッションクライアントモジュールが、前記デザインのイメージを送信することなしに前記アプリケーション状態ファイルと通信する、コンピューター制御システム。
【請求項２２】
複数の異種のアプリケーションを用いて、デザインを操作するためにコラボレーションするためのコンピューター制御システムであって、該システムは：
デザインデータをコンピューター上のローカルアプリケーションへロードするための手段；
該ローカルアプリケーションを用いて該デザインデータに基づいてデザインを操作するための手段；
該ローカルアプリケーションのアプリケーション状態を表す少なくとも１つのアプリケーション状態ファイルを、該ローカルアプリケーションを用いて少なくとも１つの該デザインの操作に基づいて作成する工程；
各々の該少なくとも１つのアプリケーション状態ファイルをジャーナルファイル中に保存するための手段；および
該ジャーナルファイルを別のコンピューターへ伝送し、その結果、該少なくとも１つのアプリケーション状態ファイルが、該別のコンピューター上でロードされ得、該少なくとも１つの操作が、該別のコンピューター上で動いている別の異種のアプリケーションを用いてレビューされ得るための手段
を備える、コンピューター制御システム。
【請求項２３】
記憶媒体を備えるコンピュータープログラム製品であって、該記憶媒体が、ネットワークと接続されたクライアントコンピューター上の複数の異種のアプリケーションを用いて、デザインを操作するために、該ネットワーク上でコラボレーションするための該媒体中に保存されたコンピューターに読み取り可能なコードを有し、該コンピューターに読み取り可能なコードが：
ユーザーとインターフェイスをとるためのコード；
デザインを操作するために使用されるローカルアプリケーションとインターフェイスをとるためのコード；
セッションマネージャーとネットワーク上でインターフェイスをとるためのコード；および
セッションコントロールおよび少なくとも１つのアプリケーション状態ファイルを該セッションマネージャーへ該ネットワーク上で通信するためのセッションクライアントプロセスを作成するためのコードであって、該アプリケーション状態ファイルが、少なくとも１つの該デザインの操作に基づいて該ローカルアプリケーションによって作成される、コード
を備える、コンピュータープログラム製品。
【請求項２４】
記憶媒体を備えるコンピュータープログラム製品であって、該記憶媒体が、ネットワークと接続されたクライアントコンピューター上の複数の異種のアプリケーションを用いて、デザインを操作するために、該ネットワーク上でコラボレーションするための該媒体中に保存されたコンピューターに読み取り可能なコードを有し、該コンピューターに読み取り可能なコードが：
ユーザーとインターフェイスをとるためのコード；
ローカルアプリケーションとインターフェイスをとるためのコード；
アプリケーション状態ファイルを用いてデザインのために行われた操作に基づいて、少なくとも１つのアプリケーション状態を表す少なくとも１つの該アプリケーション状態ファイルを作成するために、該ローカルアプリケーションに命令するためのコード；
セッションマネージャーとネットワーク上でインターフェイスをとるためのコード；
該少なくとも１つのアプリケーション状態ファイルおよびセッションコントロールを該セッションマネージャーへ送信するためのコード；および
該ローカルアプリケーションに、アプリケーション状態ファイルが受信されていることを通知するためのコード
を備える、コンピュータープログラム製品。
【請求項２５】
請求項２４に記載のコンピュータープログラム製品であって、前記受信されたアプリケーション状態ファイルの前記ローカルアプリケーションへのインスタンス化を制御するためのコードをさらに備える、コンピュータープログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
（技術分野）
本発明は、アプリケーション間でのコラボレーションに関し、そしてより具体的には、異種のデザインアプリケーション間での同期コラボレーションおよび非同期コラボレーションを提供するソフトウェアに関する。
【背景技術】
【０００２】
（背景情報）
様々な場所にいる人々による共通のプロジェクトでのコラボレーションが、より一般的になっている。事実、企業は、共通のプロジェクトに関して同じチームとして働いている地理的に多様で異なる場所からの技術者を有し得る。共通のプロジェクトでコラボレーションすることとは、技術チームの個々のメンバーが共通の場所へ移動するかまたは同じコンピューターネットワークを使用するかのいずれかである。歴史的には、コラボレーションするためにコンピューターネットワークを用いる場合、一人の技術者が、リードして、製品デザインのための考えられる変更を表す見取り図（ｄｒａｗｉｎｇ  ｉｍｇａｇｅ）を、チームの他のメンバーへ伝送する。コラボレーションのコンピューターネットワークシステムは、コラボレーショングループの全てのメンバーを一室の会議室に集め、テーブルの周りに群がりグループリーダーが変更した１枚のデザイン図をレビューしようとすることを試みるよりは、より効率的であり得る。
【０００３】
あるコラボレーションプロジェクト（例えば、電気機械的製品のデザインおよび製造）では、すべてのチームメンバーが、一般的には、同じ製品のデザインおよび製造に向けて働いている。しかし、彼らの分野（ｄｏｍｉａｎ）特有の専門的意見の必要性はそれぞれ、様々なデザインの抽象化（例えば、機能に関する概要、フロアプランナーとの制約に関する取引、配置のレイアウトおよび工程計画、デザインエンクロージャーのメカニズム、製造プロセスとの整合性に関するＤＦＭなど）を使用するために必要であり得る。このことは、ネットワーク上でコラボレーションする際の独特の挑戦を生む。なぜなら、それぞれの分野の専門家が参加することは、コラボレーションセッションの間に様々なアプリケーション、なおさらに同じデザインを同時に参照するための全ての必要性を潜在的に使用することであり得るからである。
【０００４】
図１を参照すると、現在のネットワークベースのデザインのコラボレーションへのアプローチの一例が示される。このアプローチによると、単一のデザインアプリケーション１０が、ネットワーク１６に接続されたサーバー１２またはクライアント１４のいずれか上に位置される。サーバーベースの実行では、アプリケーション１０は、サーバー１２上のホストとされ、そして他の参加しているすべてのクライアント１４は、ネットワーク（例えば、インターネット）を使用して、同じサーバー上でホストとされるセッションを介してそれに接続する。このアプローチの一例は、Ｃｉｔｒｉｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．によって実行されている。クライアントベースの実行では、アプリケーション１０は、クライアント１４のうちの１つの上でホストとされ、そして他の参加している全てのクライアントは、ネットワーク１６を使用して、リモートサーバー１２上でホストとされたセッションを介してそれと接続する。このアプローチの一例は、ＷｅｂＥｘ  Ｓｙｓｔｅｍｓ，Ｉｎｃよって実行されている。
【０００５】
サーバー１２は、クライアント１４でのアプリケーションイメージの転送を含む接続性およびデータトラフィックを管理するためのセッションマネージャー２０を含む。各々のクライアント１４は、ローカルクライアントとセッションとの間でユーザーのインタラクションおよびイメージの表示を同期させる、セッションクライアントプロセス２２を含む。コラボレーションセッションの間には、アプリケーションイメージを含む、セッションコントロールに関するメッセージ２４のフローが存在する。制御するデザインアプリケーションがどこでホストとされるかに関係なく、各クライアント１４は、他の参加者に何が行われたのかを見せる方法で、アプリケーション１０とやり取りすることを可能とされる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のネットワークベースのデザインのコラボレーションへのアプローチは、制限を有する。なぜなら、各ユーザーが、単一のアプリケーションからの単一のイメージを共有するので、このアプローチは、デザイン活動（ｄｅｓｉｇｎ  ａｃｔｉｖｉｔｙ）が、様々なまたは異種のデザインアプリケーション（例えば、様々なＣＡＤツール）の同時使用に関与する場合に、限定される。単一のアプリケーションを共有することもまた、ラインセンスの問題を提示する。アプリケーションユーザーライセンスは、結果としてライセンスの侵害もたらす可能性がある、ネットワーク上でアプリケーションの複数のユーザーを許容していないかもしれない。また、ネットワーク上で実際のイメージを伝送することは、セキュリティーの問題も提示する。コラボレーションセッションの間に交換されるメッセージの不正な傍受は、機密のデザイン図の暴露を結果としてもたらし得る。
【０００７】
従って、異種のアプリケーション（例えば、様々なＣＡＤツール）がデザインイメージを伝送する必要をなく使用されることを可能にする、コラボレーションシステムおよびコラボレーション方法の必要性が存在する。
【課題を解決するための手段】
【０００８】
（要旨）
本発明の一局面では、コンピューター制御システムおよびコンピューターによる方法が、ネットワーク上で同期的にコラボレーションするために提供されて、このネットワーク上に接続された各々のクライアント上で同時に動いている複数の異種のユーザーアプリケーションを用いてデザインを操作する。このシステムおよび方法は、セッションクライアントプロセスをセッションマネージャーにネットワーク上で接続して、コラボレーションセッションに参加しかつこのセッションマネージャーに接続された他のセッションクライアントプロセスとセッションコントロールメッセージを共有することに関する。デザインを表すデザインデータは、クライアント上で動作しているローカルアプリケーションへとロードされ、そして、このローカルアプリケーションの少なくとも１つのアプリケーション状態を表す少なくとも１つのアプリケーション状態ファイルが、デザイン操作に基づき上記ローカルアプリケーションを用いて作成される。アプリケーション状態ファイルは、上記セッションマネージャーを介して、セッションクライアントプロセスから他のセッションクライアントプロセスへと動的に通信される。他のローカルアプリケーションによって作成され、セッションマネージャーを介し他のセッションクライアントから通信されるアプリケーション状態ファイルが、ローカルアプリケーションファイルへロードされる。
【０００９】
本発明の別の局面では、非同期コラボレーションのために使用され得るコンピューター制御システムおよびコンピューターによる方法が提供される。このシステムおよび方法は、デザインデータをコンピューター上のローカルアプリケーションへロードすること、およびそのローカルアプリケーションを用いてデザインを操作することに関する。１つ以上のアプリケーション状態ファイルが作成される。このアプリケーション状態ファイルは、ローカルアプリケーションを用いる少なくとも１つのデザイン操作に基づくローカルアプリケーションのアプリケーション状態を表す。このアプリケーション状態ファイルは、ジャーナルファイル中に保存され、いくらか遅れて別のコンピューターに伝送される。その結果、このアプリケーション状態ファイルは、いくらか遅れて他のコンピューター上でロードされ得、そしてこの操作は、他のコンピューター上で動作している別の異種のアプリケーションを用いてレビューされ得る。
【００１０】
本発明の別の局面では、単一のクライアント上で同時に動作している少なくとも２種の異種のアプリケーション間で動的にコラボレーションするために使用され得るコンピューター制御システムおよびコンピューターによる方法が提供される。このシステムおよび方法は、デザインデータを各々のアプリケーションへロードすることに関する。アプリケーションのうちの１つにおいて、デザインオブジェクトが操作される（例えば、オブジェクトがハイライトされる）ときはいつも、ハイライトされたオブジェクトの名称を反映するアプリケーション状態ファイルが作成され、そして、他のアプリケーションが、ローカルオペレーティングシステムのインタープロセスメッセージングを用いてアプリケーション状態ファイルを動的に通知する。従って、他のアプリケーションは、このアプリケーション状態ファイルを読み込み得、そして同様に、そのデータベール中の対応するデザインオブジェクトを、アプリケーション状態ファイルに基づいて操作し得る。このプロセスは、好ましくは双方向である。
【発明を実施するための最良の形態】
【００１１】
本発明のこれらの他の特徴および利点は、図面とともに、以下の詳細な説明を読むことによってより理解される。  
【００１２】
図２に関して、ネットワークベースの同期コラボレーションシステムおよび方法が、異種のアプリケーション３０〜３６を用いて、デザインに関してコラボレーションするために使用される。このアプリケーション３０〜３６は、それらが様々なデザインの抽象化および様々なローカルデータモデルを使用することにおいて異種である。本発明の文脈において、コラボレーションとは、デザインデータを作成するか、修正するか、注釈をつけるか、レビューするか、それの書類を作成するか、またはそうでなければ操作するために、１つ以上のコンピューター間でのデザインデータの同期的共有または非同期的共有を意味する。上記システムおよび方法は、異種のアプリケーション３０〜３６の各々によって認識されるデザイン抽象化レベルで規格化されたアプリケーション状態を交換することによって、異種のアプリケーション３０〜３６間でのデザインコラボレーションを可能にする。従って、異種のアプリケーション３０〜３６は、アプリケーション間でデザインイメージを伝送する必要なく、デザインに関してコラボレーションするために使用され得る。ネットワークベースの同期コラボレーションシステムおよび方法は、電気的かつ機械的なアセンブリのデザインにおいて利用されるコンピューターによるデザイン（ＣＡＤ）アプリケーションのコンテクストにおける使用に特に適しているが、このシステムおよび方法は、任意のコラボレーション環境において、そして任意のタイプのアプリケーションで使用され得る。
【００１３】
ネットワークベースの同期コラボレーションシステムおよび方法に従って、サーバー１２およびかなり多数のクライアント１４がネットワーク１６に接続される。セッションマネージャー４０は、サーバー１２上に位置され、そしてセッションクライアントプロセス４２は、各クライアント上に位置されかつ各々のローカルユーザーアプリケーション３０〜３６に内蔵される。セッションマネージャー４０は、セッションクライアントプロセス４２間での接続性およびデータトラフィック４６を管理する。データトラフィック４６は、セッションコントロールのためのセッションメッセージ（セッションクライアントプロセス４２のための規格化された命令）を含む。データトラフィック４６はまた、個々のアプリケーション３０〜３６の状態を伝えるアプリケーション状態を含み、これらは、それら自身のコンテクストにおける各アプリケーション３０〜３６によって解釈される。データトラフィック４６は、好ましくは、コラボレーションのために、何もイメージを含まずかつイメージの転送を必要としないが、本発明は、アプリケーション状態と一緒にイメージの転送を除外する必要がない。
【００１４】
例示的な実施形態は、インタネットベースの同期コラボレーションシステムおよび方法であるが、本発明はまた、他のタイプのネットワーク（イントラネットまたはエスクラネットを含むが、限定はされない）上で実施され得る。別の実施形態において、本発明は、スタンドアロンコンピューター（例えば、非同期モード）で実施され得る。
【００１５】
アプリケーション状態は、好ましくは、内蔵インタープリターを介して様々なアプリケーションによる使用のためにデザインされ規格化されたＸＭＬ構造のセットでコード化される。全体のイメージをコード化する代わりに、これらのＸＭＬは、関与するアプリケーション３０〜３６に共通の抽象化レベルに関する状態およびデーターベースオブジェクトを参照する。言い換えると、アプリケーション３０〜３６は、イメージを伝達する代わりに、それらのデータベースと比較してそれらの状態を伝達する。ＣＡＤアプリケーションにおいて、例えば、アプリケーション状態としては、ズーム、パン、ユニット、視感度、色、ハイライトなどが挙げられ得、デザインオブジェクトとしては、レイヤー、クラス、コンポーネント、ピン、ネット、テストポイント、オブジェクトの属性およびプロパティなどが挙げられ得、アノテーションとしては、テキスト、図面、ＵＲＬハイパーリンクなどが挙げられ得る。ＸＭＬフォーマットでのアプリケーション状態ファイルの一例は、図６に示される。
【００１６】
規格化されたＸＭＬメッセージのセットを介してアプリケーション状態を伝える能力は、対話式の事象の共有を可能にする。この能力とは、例えば、このようなオブジェクトを参照し得る、全てのアプリケーションにわたるオブジェクトをハイライトすることである。異種のアプリケーション３０〜３６は、アプリケーション状態を解釈するので、ユーザーは、コラボレーションセッションの間に同じイメージを共有する単一のアプリケーションを使用することに限定されない。ライブのオンラインコラボレーションの間に実際のイメージが交換されない場合、セキュリティーは増強され、それによって不正なイメージの傍受を保護するために暗号化する必要性がなくなる。
【００１７】
クライアント上でローカルに作動するユーザーアプリケーションはまた、ネットワーク上で複数のユーザーが単一のアプリケーションに同時にインタラクトすることに関連する、ライセンスの問題を回避し得る。ライセンスの侵害は、各ユーザーが、そのユーザーがライセンスをもつローカルアプリケーションを使用する際には、それほど起こる可能性は高くない。また、それぞれのクライアント上で作動する分散型の異種のアプリケーションのアーキテクチャーは、サーバー上でプロセスのロードを減少することによって、コラボレーションセッションの対話式の性能を改善する。対話式の性能はまた、グラフィックイメージを転送する必要性を排除することによって改善される。
【００１８】
これらのＸＭＬ構造は、好ましくは外部ファイルを通して規格化されかつ通信される。この外部ファイルは、コラボレーションセッションの制御およびフローに依存しない。セッションマネージャー４０の機能は、好ましくは、クライアント１４間で、クライアントの接続性を管理すること、およびアプリケーション状態ファイルの交換することに限定される。このアプリケーション状態の詳細からのコラボレーションセッション制御の分離は、可撓性を提供する。例えば、ユーザーは、コラボレーションサービス（サーバーベースのセッションマネージャーのプロバイダー）を選択するかまたはアップグレードし得、かつサービスプロバイダーの変更は、特定のデザイン分野におけるコラボレーションの選択肢を限定する可能性が低い。
【００１９】
図３では、ネットベースの同期コラボレーションシステムの一実施形態が、より詳細に記載される。各々のクライアント１４は、ユーザーアプリケーション３０とコラボレーションセッションとの同期的インタラクションのための、ユーザーアプリケーション３０およびセッションクライアントプロセス４２を含む。各クライアント１４は、一般にそのセッションクライアント４２で、同じインテグレーションを複製するが、アプリケーション３０は、他のクライアント１４上のアプリケーションとは異なり得る。クライアント１４上で作成されたアプリケーション状態ファイル５２は、ユーザーアプリケーション３０のアプリケーション状態をキャプチャーする。アプリケーション状態ファイル５２は、好ましくは、ＸＭＬフォーマットにあり、そして分野に特有のＸＭＬ辞書（すなわち、ＤＴＤ）は、特定のデザインの抽象化のためのアプリケーション状態ファイル５２によって使用されたＸＭＬ構造、キーワード、およびタグを規定する。例えば、プリント回路基板のデザインに関して、模式的な抽象化のためのアプリケーション状態ファイルは、物理的なレイアウトの抽象化のためのアプリケーション状態ファイルよりも、様々なＸＭＬ辞書に基づいている。同様にＩＣのデザインも、プリント回路基板のデザインとは異なる辞書を使用する。ユーザーアプリケーション３０は、好ましくは、アプリケーション状態ファイル５２から読み取りかつそれに書き込みためのリーダー／ライター８０を含む。アプリケーション状態ファイル５２の一例は、図６に示される。クライアント１４上に保存されるセッションジャーナルファイル５４は、セッションのアクティビティーのログを保持する。
【００２０】
セッションクライアント４２は、ユーザとのユーザインタラクションのためのユーザーインターフェース６０を含む。クライアント１４は、アプリケーション３０用のユーザーインターフェース６３と同じスクリーン６１上にユーザーインターフェース６０を表示し得る。ユーザーインターフェース６０は、好適には、複数のクライアント１４、オペレーティングシステムプラットフォームおよびアプリケーション３０にわたって、コンシステントなルックアンドフィールを提供する。
【００２１】
ユーザーインターフェース６０は、ユーザーが、セッションクライアントプロセス４２およびローカルユーザーアプリケーション３０の種々の機能およびインタラクションを制御およびモニタすることを可能にする。ユーザーインターフェース６０は、ローカルユーザーアプリケーション３０を開始および終了するために用いられ得、適切なデザインファイルをユーザーアプリケーション３０に位置設定およびロードするために用いられ得る。ユーザーインターフェース６０はまた、セッションマネージャー４０を介して、新たなセッションをスケジュールに入れ、スケジュールに入っているセッションにログインおよびログアウトするために用いられ得る。ユーザーインターフェース６０は、ユーザーアプリケーション３０およびセッションマネージャー４０との全ての通信アクティビティを表示する。ユーザーインターフェース６０は、チャットライン用の形態で、アクティブセッションの参加者間でのチャットスタイルのテキストによる通信を提供するために用いられ得る。ユーザーインターフェース６０は、ユーザーが、別のセッションの参加者へのアプリケーション状態ファイル５２の送受信を制御することを可能にする。ユーザーインターフェース６０はまた、ユーザーが、ユーザーアプリケーション５０によって、アプリケーション状態ファイル５２の読み出しおよび書き込みの開始を制御することを可能にする。ユーザーインターフェース６０はさらに、ユーザーが、ローカルセッションジャーナルファイル５４への書き込みおよびセッションジャーナルファイル５４の再生の開始を制御することを可能にする。
【００２２】
クライアントセッション４２は、外部制御と、セッションマネージャー４０およびローカルユーザーアプリケーション３０とのインタラクションの同期をとるためのアプリケーションプログラミングインタフェース（ＡＰＩ）６４、６８とを含む。セッションクライアント４２とセッションマネージャー４０との間のセッションの同期は、セッション制御６２を介して、適切な業界標準のインターネット通信チャネルを経て提供される。セッション制御６２は、セッションクライアント４２によって規定および実行され、それらは、セッションクライアント４２およびセッションマネージャー４０に、コラボレーションのアクティビティに対して次に何をすべきかについて、命令する。セッション制御６２はまた、アプリケーション状態ファイル５２を、コラボレーションセッションに参加する別のセッションクライアント４２に移す。セッションクライアント４２とユーザーアプリケーション３０との間のセッションの同期は、一組のアプリケーション制御６６を介して、関連のアプリケーションプログラミングインタフェース（ＡＰＩ）６８を経て提供される。アプリケーション制御６６は、セッションクライアント４２によって規定および実行され、それらは、セッションクライアント４２およびアプリケーション３０に、コラボレーションのアクティビティに対して次に何をすべきかについて、命令する。そのような制御の技術上の詳細はオペレーティングシステムによるが、２つの例としては、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステムにおけるＯＬＥオートメーションおよびＵｎｉｘ（登録商標）オペレーティングシステムにおけるソケットがある。
【００２３】
セッションクライント４２はまた、アプリケーション状態ファイル５２およびジャーナルファイル５４とのインタラクションを処理する内部制御を含む。アプリケーション状態ファイル制御７０は、一つ以上のアプリケーション状態ファイル５２をセッションマネージャー４０に、またはセッションマネージャー４０から転送する。セッションジャーナル制御７２は、セッションジャーナルファイル５４にセッションアクティビティを記録し、ユーザーアプリケーション３０に対してセッションジャーナルファイル５４のコンテンツを通信する。
【００２４】
ユーザーアプリケーション３０は、既存のデザインアプリケーションに基づき得る。ここで、この既存のデザインアプリケーションは、ＸＭＬ構造を適切に読み出し、書き込み、および解釈し、制御６６およびＡＰＩ  ６８を介してセッションクライアント４２と統合するようにデザインまたは拡張されている。用いられ得るアプリケーションの一例としては、本明細書において援用され、かつ共有に係る特許出願第０９／８８５，８３４号に記載されている、ＯＨＩＯ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ  Ｉｎｃ．からＩｎｔｅｒＣｏｍｍの名で入手可能なアプリケーション（およびそのＡＰＩ）がある。別の例としては、Ｃａｄｅｎｃｅ  Ｄｅｓｉｇｎ  Ｓｙｓｔｅｍｓ  Ｉｎｃ．からのＡｌｌｅｇｒｏ  ａｎｄ  Ｃｏｎｃｅｐｔの名で入手可能なアプリケーションおよび、これらのアプリケーションとともに用いられるＳＫＩＬＬ  ＡＰＩが挙げられる。
【００２５】
セッションマネージャー４０は、既存のセッションマネージャーに基づき得る。ここで、この既存のデザインアプリケーションは、セッション制御６２を処理し、セッションクライアント４２と統合するようにデザインされている。一例としては、ＷｅｂＥｘ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，Ｉｎｃ．によって提供されているインターネット通信サービスにおいて用いられるセッションマネージャーがある。
【００２６】
図４を参照すると、同期式コラボレーションの一方法が記載されている。ユーザは、セッションマネージャー４０のサービスを用いて、新たなコラボレーションセッションをスケジュールに入れ得る（ステップ１１０）。ユーザは、ユーザ名／パスワードを用いてセッションマネージャー４０にログインし、新たなコラボレーションセッションをスケジュールに入れ、参加者を招待し得る。ユーザはまた、セッション参加者と通信し得る。このプロセスは、適切なデザインデータベースを得るためのプロセスである。例えば、各セッション参加者は、ローカルＰＬＭ手順を用いて、ローカルアプリケーションと互換性のある独自バージョンのデザインデータベースをロードし得る。スケジュールステップは、インプリメンテーションにより、セッションクライアント４２またはインターネットブラウザを用いて、実行され得る。セッションマネージャー４０のサービスへのアクセスはまた、料金に基づいた契約（ｓｕｂｓｃｒｉｐｔｉｏｎ）を要求し得る。
【００２７】
スケジュールどおりの日／時間において、ユーザおよび別の招待されたユーザは、クライアントセッション４２のユーザーインターフェース６０を用いて、セッションマネージャー４０にログインする（ステップ１１２）。セッションログインは、ユーザに、以前に規定したユーザ名およびパスワードを入力することを要求し得る。
【００２８】
一旦セッションマネージャー４０が、コラボレーションセッションが開始され、適切なパーティーが参加したと決定すると、一セッションクライアントから受け取ったセッション制御（制御の始点についての情報を含む）の、全ての参加セッションクライアントとの共有を開始する（ステップ１１４）。ユーザーアプリケーション３０および／またはセッションマネージャー４０と交換した全てのローカルセッションクライアントは、好適には、クライアント１４の各々のローカルセッションジャーナル５４に記録される。
【００２９】
ユーザは、ローカルアプリケーション３０を開始し（ステップ１１６）、関連のデザインデータをユーザーアプリケーションに位置設定およびロードする（ステップ１１８）。セッションクライアント４２とユーザーアプリケーション３０との間のローカルな統合の詳細により、これらのステップは、セッションクライアントまたはユーザーアプリケーション３０のいずれかを介して開始され得る。また、これらのステップは、コラボレーションセッションへのログインの前または後において、ローカルアプリケーション３０によって実行され得る。ローカルアプリケーション３０は、デザインを操作するために用いられ得る（ステップ１２０）。
【００３０】
セッションマネージャー４０によって施行されたユーザセッションの優先度および特権に従って、一人以上のユーザは、セッションクライアント４２ユーザーインターフェース６０を用いて、別の参加者とチャットライン様テキストベースの会話を開始し得る（ステップ１２２）。このテキストは、セッションマネージャー４０に送られ、次いで、発信源を識別する情報とともに、このテキストは、それぞれのユーザーインターフェース６０を介した表示に対して、全ての参加しているセッションクライアント４２に分配される。送信および受信された全てのチャットラインのメッセージは、好適には、クライアント１４の各々のローカルセッションジャーナル５４に記録される。
【００３１】
セッションマネージャー４０によって施行されたユーザセッションの優先度および特権に従って、一人以上のユーザは、セッションクライアント４２ユーザーインターフェース６０を用いて、アプリケーション状態を他のものに通信し得る（ステップ１２４）。特に、ユーザーアプリケーション３０は、デザイン操作に基づいてアプリケーション状態ファイル５２を作成する（例えば、ＸＭＬ構造を用いて）ように、セッションクライアント４２に命令されており、ユーザーアプリケーション３０は、セッションクライアント４２に、アプリケーション状態ファイル５２が生成されたことを通知する。セッションクライアント４２は、適切なセッション制御でアプリケーション状態ファイル５２をセッションマネージャー４０に送信する。セッションマネージャー４０は、適切なセッション制御を用いて、受信したアプリケーション状態ファイル５２を、全てのアクティブな参加者に分配する。全てのアプリケーション状態はまた、好適には、各クライアント１４のローカルセッションジャーナル５４に記録される。
【００３２】
アプリケーション状態ファイル５２が受信されると、セッションクライアント４２は、セッション制御６６をローカルユーザーアプリケーション３０に送信し、それは、新しいアプリケーション状態ファイル５２が利用可能であることを示す。ローカルユーザーアプリケーション３０は、パーサ８０を使用して、新しく到着したアプリケーション状態ファイル５２をロードし、表示の新しい状態を反映する。ローカルセッションクライアントＵＩ６０を使用して、ユーザは、同期化が実際に生じる時間、および、コラボレーションセッションとアクティブな接続をさせることなく、それがどのように実施されるかを制御することができる。セッションクライアント４２が他の参加者（ｐａｒｔｉｃｉｐａｎｔ）から、継続的にアプリケーション状態ファイル５２をバッファする一方で、例えば、ユーザは、それらのユーザーアプリケーション３０において、新しく到着したアプリケーション状態ファイル５２のインスタンス化（ｉｎｓｔａｎｔｉａｔｉｏｎ）を拒否または遅延させ得る。このオンデマンドの同期化により、ユーザは、ユーザーアプリケーション３０を独立して用い、効果を発揮することができ、その一方で、コラボレーションは継続し、次いで、同時的なコラボレーションの交換の詳細を緩める（ｌｏｏｓｅ）ことなく、後に遅れを取り戻すことができる。
【００３３】
コラボレーションは、ステップ１２６において、ユーザーのローカルセッションクライアント４２を使用して、全ての参加しているユーザーがセッションからログアウトするまで継続され得る。セッションクライアント４２は、セッションが、非同期モードにおける全体のコラボレーションセッションを再生するために終了された後、いつでも、ローカルセッションジャーナルファイル５４をリロードすることができる。
【００３４】
ユーザーはまた、コラボレーションセッションにログインすることなく、セッションジャーナルファイル５４を作成するために、セッションクライアント４２を使用するオプションを有する。これは、非同期のコラボレーションの形式である。ジャーナルファイル５４はまた、任意の適切な手段を介して、セッションクライアント４２の外側から全体に生成され得、非同期モードにおいて、セッションクライアント４２を共有し得る。
【００３５】
図５を参照すると、非同期的にコラボレーションする一方法が詳細に記載される。その方法は、上述した同期のコラボレーション方法に類似するが、スケジューリングし、コラボレーションセッションにログインし、およびセッション制御を供給するステップはない。ユーザは、ステップ１２０において、ローカルユーザーアプリケーション３０を開始し、そのデザインデータは、ステップ２１２において、ローカルユーザーアプリケーションにロードされる。デザインは、ステップ２１４において、アプリケーションを使用して操作され、アプリケーション状態ファイルは、ステップ２１６において、そのデザイン操作に基づいて作成される。アプリケーション状態ファイル５２（例えば、ＸＭＬメッセージ）は、ステップ２１８において、ジャーナルファイル５４に記録され、ステップ２２０において、後に、別のユーザーと通信され得、サーバーに接続することなく、非同期のコラボレーションセッションを再生するためにロードされる。これにより、ユーザーは、他のコラボレーションのユーザとは独立して、デザインをレビューすることができる。非同期モードはまた、同期のコラボレーションがスケジュールされ得ない（例えば、時間ゾーンのコンフリクトなどのために）場合、使用され得ない。非同期のコラボレーションはまた、トレーニング、再加工（ｒｅｗｏｒｋ）、電子または機械的なアセンブリのための技術変更指示（ＥＣＯ）などの、命令をオーサ（ａｕｔｈｏｒ）するために使用され得る。
【００３６】
別の命令に従い、コラボレーションは、同じクライアント（図示されず）上で走る二つの異種のアプリケーションに提供される。このことは、両方のアプリケーションが同じクライアント上にて同時に走る一方で、概略的なデザインのための、Ｍｅｎｔｏｒ  Ｇｒａｐｈｉｃｓ  Ｃｏｒｐ．から利用可能であるＰＣＢデザインおよびＤＸデザイナーのための、Ｃａｄｅｎｃｅ  Ｄｅｓｉｇｎ  Ｓｙｓｔｅｍｓ  Ｉｎｃ．から利用可能であるＡｌｌｅｇｒｏなどの、二つのユーザーアプリケーションのそれぞれに、適切なデザインデータをロードすることに関与する。この方法の一例において、デザインオブジェクトは、ユーザーアプリケーションの一つを用いて、デザインオブジェクトをハイライトすることによって修正される。オブジェクトがユーザーアプリケーションの一つにおいてハイライトされるときは常に、アプリケーション状態ファイルが作成され、それは、ハイライトされたオブジェクトの名前を反映し、他のアプリケーションは、例えば、ＭｉｃｒｏｓｏｆｔのＷｉｎｄｏｗｓ（登録商標）上での、ＯＬＥ  Ａｕｔｏｍａｔｉｏｎなどの、ローカルオペレーティングシステムのインタープロセスメッセージングを使用して、このことが通知される。他のユーザーアプリケーションは次いで、このアプリケーション状態ファイルを読み出し、そのデータベースにおいて対応するオブジェクトをハイライトする。このプロセスは、ユーザーアプリケーションの間で双方向であることが好ましい。
【００３７】
実施形態は、ＰＣまたはモバイル機器など（これらに限定されない）を含むコンピュータシステムを使用するコンピュータープログラム製品としてインプリメントされ得る。そのようなインプリメンテーションは、コンピューター可読媒体（例えば、ディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、または固定ディスクなど）などの、有形の（ｔａｎｇｉｂｌｅ）媒体上のいずれかに固定された、一連のコンピューター命令を含み得、媒体を介して、ネットワークに接続された通信アダプターなどの、モデムまたは他のインターフェース機器を介して、コンピュータシステムに転送可能である。その媒体は、有形の媒体（例えば、光学またはアナログ通信線）か、または無線技術（例えば、マイクロ波、赤外線、または他の送信技術など）を用いてインプリメントされる媒体のいずれかであり得る。一連のコンピュータ命令は、システムに関連して、前述した機能の全てまたはその一部を具体化する。そのようなコンピュータ命令は、多くのコンピューター構成またはオペレーティングシステムを用いて、多数のプログラム言語において書き込まれ得ることを当業者は理解すべきである。さらに、そのような命令は、半導体、磁気、光学、または他のメモリ装置などの、任意のメモリ装置に格納され得、光学、赤外線、マイクロ波、または他の送信技術などの、任意の通信技術を使用して転送され得る。そのようなコンピュータープログラム製品は、印刷された、または電気的なドキュメンテーション（例えば、収縮（ｓｈｒｉｎｋ  ｗｒａｐｐｅｄ）ソフトウェア）を添付する着脱可能な媒体として分配され得、コンピュータシステム（例えば、システムＲＯＭまたは固定ディスク上など）を用いてプレロードされ得、あるいは、ネットワーク（例えば、インターネットまたはＷｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂなど）を介して、サーバまたは電子掲示板から分配され得る。もちろん、本発明の一部の実施形態は、ソフトウェア（例えば、コンピュータープログラム製品）およびハードウェアの両方の組み合わせとしてインプリメントされ得る。本発明のさらに他の実施形態は、完全にハードウェア、または完全にソフトウェア（例えば、コンピュータープログラム製品）としてインプリメントされ得る。
【００３８】
本発明の原理がここで記載されているが、本記載は、例示のためだけであって、本発明の範囲を限定するものではないことを当業者は理解すべきである。他の実施形態は、個々で示され記載された例示的な実施形態に付け加えて、本発明の範囲内にて検討される。当業者のうちの一人による修正または代用は、本発明の範囲内のものとして考慮され、それは、本発明の特許請求の範囲によってのみ限定されるものである。
【図面の簡単な説明】
【００３９】
【図１】図１は、既存のネットワークベースのコラボレーションシステムの機能ブロック図である。
【図２】図２は、本発明の一実施形態に従う、ネットワークベースのコラボレーションシステムの機能ブロック図である。
【図３】図３は、本発明の一実施形態に従う、ネットワークベースのコラボレーションシステムにおける、クライアントとサーバーの機能ブロック図である。
【図４】図４は、本発明の一実施形態に従って、同期コラボレーション方法を示すフローチャートである。
【図５】図５は、本発明の一実施形態に従って、非同期コラボレーション方法を示すフローチャートである。
【図６】図６は、アプリケーション状態ファイルの一例を示す。
【図１】
2007525745.tif 000003
【図２】
2007525745.tif 000004
【図３】
2007525745.tif 000005
【図４】
2007525745.tif 000006
【図５】
2007525745.tif 000007
【図６】
2007525745.tif 000008