説明

異種のアプリケーション間での同期コラボレーションおよび非同期コラボレーション

ネットワークベースのコラボレーションシステムおよびコラボレーション方法が、ネットワーク(16)と接続されたクライアント(14)上の異種のアプリケーション(30、32、34、36)を用いて、デザインを作成するか、修正するか、またはそうでなければ操作するために使用され得る。このシステムおよび方法は、この異種のアプリケーション間でのデザインのコラボレーションを可能にする。この異種のアプリケーションの各々は、各々の異種のアプリケーション(30、32、34、36)に認識されるデザインの抽象化レベルで規格化されたアプリケーション状態を交換することによる様々なデザインの抽象化および様々なローカルデータモデルを有する。

【発明の詳細な説明】
【技術分野】
【0001】
(技術分野)
本発明は、アプリケーション間でのコラボレーションに関し、そしてより具体的には、異種のデザインアプリケーション間での同期コラボレーションおよび非同期コラボレーションを提供するソフトウェアに関する。
【背景技術】
【0002】
(背景情報)
様々な場所にいる人々による共通のプロジェクトでのコラボレーションが、より一般的になっている。事実、企業は、共通のプロジェクトに関して同じチームとして働いている地理的に多様で異なる場所からの技術者を有し得る。共通のプロジェクトでコラボレーションすることとは、技術チームの個々のメンバーが共通の場所へ移動するかまたは同じコンピューターネットワークを使用するかのいずれかである。歴史的には、コラボレーションするためにコンピューターネットワークを用いる場合、一人の技術者が、リードして、製品デザインのための考えられる変更を表す見取り図(drawing imgage)を、チームの他のメンバーへ伝送する。コラボレーションのコンピューターネットワークシステムは、コラボレーショングループの全てのメンバーを一室の会議室に集め、テーブルの周りに群がりグループリーダーが変更した1枚のデザイン図をレビューしようとすることを試みるよりは、より効率的であり得る。
【0003】
あるコラボレーションプロジェクト(例えば、電気機械的製品のデザインおよび製造)では、すべてのチームメンバーが、一般的には、同じ製品のデザインおよび製造に向けて働いている。しかし、彼らの分野(domian)特有の専門的意見の必要性はそれぞれ、様々なデザインの抽象化(例えば、機能に関する概要、フロアプランナーとの制約に関する取引、配置のレイアウトおよび工程計画、デザインエンクロージャーのメカニズム、製造プロセスとの整合性に関するDFMなど)を使用するために必要であり得る。このことは、ネットワーク上でコラボレーションする際の独特の挑戦を生む。なぜなら、それぞれの分野の専門家が参加することは、コラボレーションセッションの間に様々なアプリケーション、なおさらに同じデザインを同時に参照するための全ての必要性を潜在的に使用することであり得るからである。
【0004】
図1を参照すると、現在のネットワークベースのデザインのコラボレーションへのアプローチの一例が示される。このアプローチによると、単一のデザインアプリケーション10が、ネットワーク16に接続されたサーバー12またはクライアント14のいずれか上に位置される。サーバーベースの実行では、アプリケーション10は、サーバー12上のホストとされ、そして他の参加しているすべてのクライアント14は、ネットワーク(例えば、インターネット)を使用して、同じサーバー上でホストとされるセッションを介してそれに接続する。このアプローチの一例は、Citrix Systems,Inc.によって実行されている。クライアントベースの実行では、アプリケーション10は、クライアント14のうちの1つの上でホストとされ、そして他の参加している全てのクライアントは、ネットワーク16を使用して、リモートサーバー12上でホストとされたセッションを介してそれと接続する。このアプローチの一例は、WebEx Systems,Incよって実行されている。
【0005】
サーバー12は、クライアント14でのアプリケーションイメージの転送を含む接続性およびデータトラフィックを管理するためのセッションマネージャー20を含む。各々のクライアント14は、ローカルクライアントとセッションとの間でユーザーのインタラクションおよびイメージの表示を同期させる、セッションクライアントプロセス22を含む。コラボレーションセッションの間には、アプリケーションイメージを含む、セッションコントロールに関するメッセージ24のフローが存在する。制御するデザインアプリケーションがどこでホストとされるかに関係なく、各クライアント14は、他の参加者に何が行われたのかを見せる方法で、アプリケーション10とやり取りすることを可能とされる。
【発明の開示】
【発明が解決しようとする課題】
【0006】
上述のネットワークベースのデザインのコラボレーションへのアプローチは、制限を有する。なぜなら、各ユーザーが、単一のアプリケーションからの単一のイメージを共有するので、このアプローチは、デザイン活動(design activity)が、様々なまたは異種のデザインアプリケーション(例えば、様々なCADツール)の同時使用に関与する場合に、限定される。単一のアプリケーションを共有することもまた、ラインセンスの問題を提示する。アプリケーションユーザーライセンスは、結果としてライセンスの侵害もたらす可能性がある、ネットワーク上でアプリケーションの複数のユーザーを許容していないかもしれない。また、ネットワーク上で実際のイメージを伝送することは、セキュリティーの問題も提示する。コラボレーションセッションの間に交換されるメッセージの不正な傍受は、機密のデザイン図の暴露を結果としてもたらし得る。
【0007】
従って、異種のアプリケーション(例えば、様々なCADツール)がデザインイメージを伝送する必要をなく使用されることを可能にする、コラボレーションシステムおよびコラボレーション方法の必要性が存在する。
【課題を解決するための手段】
【0008】
(要旨)
本発明の一局面では、コンピューター制御システムおよびコンピューターによる方法が、ネットワーク上で同期的にコラボレーションするために提供されて、このネットワーク上に接続された各々のクライアント上で同時に動いている複数の異種のユーザーアプリケーションを用いてデザインを操作する。このシステムおよび方法は、セッションクライアントプロセスをセッションマネージャーにネットワーク上で接続して、コラボレーションセッションに参加しかつこのセッションマネージャーに接続された他のセッションクライアントプロセスとセッションコントロールメッセージを共有することに関する。デザインを表すデザインデータは、クライアント上で動作しているローカルアプリケーションへとロードされ、そして、このローカルアプリケーションの少なくとも1つのアプリケーション状態を表す少なくとも1つのアプリケーション状態ファイルが、デザイン操作に基づき上記ローカルアプリケーションを用いて作成される。アプリケーション状態ファイルは、上記セッションマネージャーを介して、セッションクライアントプロセスから他のセッションクライアントプロセスへと動的に通信される。他のローカルアプリケーションによって作成され、セッションマネージャーを介し他のセッションクライアントから通信されるアプリケーション状態ファイルが、ローカルアプリケーションファイルへロードされる。
【0009】
本発明の別の局面では、非同期コラボレーションのために使用され得るコンピューター制御システムおよびコンピューターによる方法が提供される。このシステムおよび方法は、デザインデータをコンピューター上のローカルアプリケーションへロードすること、およびそのローカルアプリケーションを用いてデザインを操作することに関する。1つ以上のアプリケーション状態ファイルが作成される。このアプリケーション状態ファイルは、ローカルアプリケーションを用いる少なくとも1つのデザイン操作に基づくローカルアプリケーションのアプリケーション状態を表す。このアプリケーション状態ファイルは、ジャーナルファイル中に保存され、いくらか遅れて別のコンピューターに伝送される。その結果、このアプリケーション状態ファイルは、いくらか遅れて他のコンピューター上でロードされ得、そしてこの操作は、他のコンピューター上で動作している別の異種のアプリケーションを用いてレビューされ得る。
【0010】
本発明の別の局面では、単一のクライアント上で同時に動作している少なくとも2種の異種のアプリケーション間で動的にコラボレーションするために使用され得るコンピューター制御システムおよびコンピューターによる方法が提供される。このシステムおよび方法は、デザインデータを各々のアプリケーションへロードすることに関する。アプリケーションのうちの1つにおいて、デザインオブジェクトが操作される(例えば、オブジェクトがハイライトされる)ときはいつも、ハイライトされたオブジェクトの名称を反映するアプリケーション状態ファイルが作成され、そして、他のアプリケーションが、ローカルオペレーティングシステムのインタープロセスメッセージングを用いてアプリケーション状態ファイルを動的に通知する。従って、他のアプリケーションは、このアプリケーション状態ファイルを読み込み得、そして同様に、そのデータベール中の対応するデザインオブジェクトを、アプリケーション状態ファイルに基づいて操作し得る。このプロセスは、好ましくは双方向である。
【発明を実施するための最良の形態】
【0011】
本発明のこれらの他の特徴および利点は、図面とともに、以下の詳細な説明を読むことによってより理解される。
【0012】
図2に関して、ネットワークベースの同期コラボレーションシステムおよび方法が、異種のアプリケーション30〜36を用いて、デザインに関してコラボレーションするために使用される。このアプリケーション30〜36は、それらが様々なデザインの抽象化および様々なローカルデータモデルを使用することにおいて異種である。本発明の文脈において、コラボレーションとは、デザインデータを作成するか、修正するか、注釈をつけるか、レビューするか、それの書類を作成するか、またはそうでなければ操作するために、1つ以上のコンピューター間でのデザインデータの同期的共有または非同期的共有を意味する。上記システムおよび方法は、異種のアプリケーション30〜36の各々によって認識されるデザイン抽象化レベルで規格化されたアプリケーション状態を交換することによって、異種のアプリケーション30〜36間でのデザインコラボレーションを可能にする。従って、異種のアプリケーション30〜36は、アプリケーション間でデザインイメージを伝送する必要なく、デザインに関してコラボレーションするために使用され得る。ネットワークベースの同期コラボレーションシステムおよび方法は、電気的かつ機械的なアセンブリのデザインにおいて利用されるコンピューターによるデザイン(CAD)アプリケーションのコンテクストにおける使用に特に適しているが、このシステムおよび方法は、任意のコラボレーション環境において、そして任意のタイプのアプリケーションで使用され得る。
【0013】
ネットワークベースの同期コラボレーションシステムおよび方法に従って、サーバー12およびかなり多数のクライアント14がネットワーク16に接続される。セッションマネージャー40は、サーバー12上に位置され、そしてセッションクライアントプロセス42は、各クライアント上に位置されかつ各々のローカルユーザーアプリケーション30〜36に内蔵される。セッションマネージャー40は、セッションクライアントプロセス42間での接続性およびデータトラフィック46を管理する。データトラフィック46は、セッションコントロールのためのセッションメッセージ(セッションクライアントプロセス42のための規格化された命令)を含む。データトラフィック46はまた、個々のアプリケーション30〜36の状態を伝えるアプリケーション状態を含み、これらは、それら自身のコンテクストにおける各アプリケーション30〜36によって解釈される。データトラフィック46は、好ましくは、コラボレーションのために、何もイメージを含まずかつイメージの転送を必要としないが、本発明は、アプリケーション状態と一緒にイメージの転送を除外する必要がない。
【0014】
例示的な実施形態は、インタネットベースの同期コラボレーションシステムおよび方法であるが、本発明はまた、他のタイプのネットワーク(イントラネットまたはエスクラネットを含むが、限定はされない)上で実施され得る。別の実施形態において、本発明は、スタンドアロンコンピューター(例えば、非同期モード)で実施され得る。
【0015】
アプリケーション状態は、好ましくは、内蔵インタープリターを介して様々なアプリケーションによる使用のためにデザインされ規格化されたXML構造のセットでコード化される。全体のイメージをコード化する代わりに、これらのXMLは、関与するアプリケーション30〜36に共通の抽象化レベルに関する状態およびデーターベースオブジェクトを参照する。言い換えると、アプリケーション30〜36は、イメージを伝達する代わりに、それらのデータベースと比較してそれらの状態を伝達する。CADアプリケーションにおいて、例えば、アプリケーション状態としては、ズーム、パン、ユニット、視感度、色、ハイライトなどが挙げられ得、デザインオブジェクトとしては、レイヤー、クラス、コンポーネント、ピン、ネット、テストポイント、オブジェクトの属性およびプロパティなどが挙げられ得、アノテーションとしては、テキスト、図面、URLハイパーリンクなどが挙げられ得る。XMLフォーマットでのアプリケーション状態ファイルの一例は、図6に示される。
【0016】
規格化されたXMLメッセージのセットを介してアプリケーション状態を伝える能力は、対話式の事象の共有を可能にする。この能力とは、例えば、このようなオブジェクトを参照し得る、全てのアプリケーションにわたるオブジェクトをハイライトすることである。異種のアプリケーション30〜36は、アプリケーション状態を解釈するので、ユーザーは、コラボレーションセッションの間に同じイメージを共有する単一のアプリケーションを使用することに限定されない。ライブのオンラインコラボレーションの間に実際のイメージが交換されない場合、セキュリティーは増強され、それによって不正なイメージの傍受を保護するために暗号化する必要性がなくなる。
【0017】
クライアント上でローカルに作動するユーザーアプリケーションはまた、ネットワーク上で複数のユーザーが単一のアプリケーションに同時にインタラクトすることに関連する、ライセンスの問題を回避し得る。ライセンスの侵害は、各ユーザーが、そのユーザーがライセンスをもつローカルアプリケーションを使用する際には、それほど起こる可能性は高くない。また、それぞれのクライアント上で作動する分散型の異種のアプリケーションのアーキテクチャーは、サーバー上でプロセスのロードを減少することによって、コラボレーションセッションの対話式の性能を改善する。対話式の性能はまた、グラフィックイメージを転送する必要性を排除することによって改善される。
【0018】
これらのXML構造は、好ましくは外部ファイルを通して規格化されかつ通信される。この外部ファイルは、コラボレーションセッションの制御およびフローに依存しない。セッションマネージャー40の機能は、好ましくは、クライアント14間で、クライアントの接続性を管理すること、およびアプリケーション状態ファイルの交換することに限定される。このアプリケーション状態の詳細からのコラボレーションセッション制御の分離は、可撓性を提供する。例えば、ユーザーは、コラボレーションサービス(サーバーベースのセッションマネージャーのプロバイダー)を選択するかまたはアップグレードし得、かつサービスプロバイダーの変更は、特定のデザイン分野におけるコラボレーションの選択肢を限定する可能性が低い。
【0019】
図3では、ネットベースの同期コラボレーションシステムの一実施形態が、より詳細に記載される。各々のクライアント14は、ユーザーアプリケーション30とコラボレーションセッションとの同期的インタラクションのための、ユーザーアプリケーション30およびセッションクライアントプロセス42を含む。各クライアント14は、一般にそのセッションクライアント42で、同じインテグレーションを複製するが、アプリケーション30は、他のクライアント14上のアプリケーションとは異なり得る。クライアント14上で作成されたアプリケーション状態ファイル52は、ユーザーアプリケーション30のアプリケーション状態をキャプチャーする。アプリケーション状態ファイル52は、好ましくは、XMLフォーマットにあり、そして分野に特有のXML辞書(すなわち、DTD)は、特定のデザインの抽象化のためのアプリケーション状態ファイル52によって使用されたXML構造、キーワード、およびタグを規定する。例えば、プリント回路基板のデザインに関して、模式的な抽象化のためのアプリケーション状態ファイルは、物理的なレイアウトの抽象化のためのアプリケーション状態ファイルよりも、様々なXML辞書に基づいている。同様にICのデザインも、プリント回路基板のデザインとは異なる辞書を使用する。ユーザーアプリケーション30は、好ましくは、アプリケーション状態ファイル52から読み取りかつそれに書き込みためのリーダー/ライター80を含む。アプリケーション状態ファイル52の一例は、図6に示される。クライアント14上に保存されるセッションジャーナルファイル54は、セッションのアクティビティーのログを保持する。
【0020】
セッションクライアント42は、ユーザとのユーザインタラクションのためのユーザーインターフェース60を含む。クライアント14は、アプリケーション30用のユーザーインターフェース63と同じスクリーン61上にユーザーインターフェース60を表示し得る。ユーザーインターフェース60は、好適には、複数のクライアント14、オペレーティングシステムプラットフォームおよびアプリケーション30にわたって、コンシステントなルックアンドフィールを提供する。
【0021】
ユーザーインターフェース60は、ユーザーが、セッションクライアントプロセス42およびローカルユーザーアプリケーション30の種々の機能およびインタラクションを制御およびモニタすることを可能にする。ユーザーインターフェース60は、ローカルユーザーアプリケーション30を開始および終了するために用いられ得、適切なデザインファイルをユーザーアプリケーション30に位置設定およびロードするために用いられ得る。ユーザーインターフェース60はまた、セッションマネージャー40を介して、新たなセッションをスケジュールに入れ、スケジュールに入っているセッションにログインおよびログアウトするために用いられ得る。ユーザーインターフェース60は、ユーザーアプリケーション30およびセッションマネージャー40との全ての通信アクティビティを表示する。ユーザーインターフェース60は、チャットライン用の形態で、アクティブセッションの参加者間でのチャットスタイルのテキストによる通信を提供するために用いられ得る。ユーザーインターフェース60は、ユーザーが、別のセッションの参加者へのアプリケーション状態ファイル52の送受信を制御することを可能にする。ユーザーインターフェース60はまた、ユーザーが、ユーザーアプリケーション50によって、アプリケーション状態ファイル52の読み出しおよび書き込みの開始を制御することを可能にする。ユーザーインターフェース60はさらに、ユーザーが、ローカルセッションジャーナルファイル54への書き込みおよびセッションジャーナルファイル54の再生の開始を制御することを可能にする。
【0022】
クライアントセッション42は、外部制御と、セッションマネージャー40およびローカルユーザーアプリケーション30とのインタラクションの同期をとるためのアプリケーションプログラミングインタフェース(API)64、68とを含む。セッションクライアント42とセッションマネージャー40との間のセッションの同期は、セッション制御62を介して、適切な業界標準のインターネット通信チャネルを経て提供される。セッション制御62は、セッションクライアント42によって規定および実行され、それらは、セッションクライアント42およびセッションマネージャー40に、コラボレーションのアクティビティに対して次に何をすべきかについて、命令する。セッション制御62はまた、アプリケーション状態ファイル52を、コラボレーションセッションに参加する別のセッションクライアント42に移す。セッションクライアント42とユーザーアプリケーション30との間のセッションの同期は、一組のアプリケーション制御66を介して、関連のアプリケーションプログラミングインタフェース(API)68を経て提供される。アプリケーション制御66は、セッションクライアント42によって規定および実行され、それらは、セッションクライアント42およびアプリケーション30に、コラボレーションのアクティビティに対して次に何をすべきかについて、命令する。そのような制御の技術上の詳細はオペレーティングシステムによるが、2つの例としては、Microsoft Windows(登録商標)オペレーティングシステムにおけるOLEオートメーションおよびUnix(登録商標)オペレーティングシステムにおけるソケットがある。
【0023】
セッションクライント42はまた、アプリケーション状態ファイル52およびジャーナルファイル54とのインタラクションを処理する内部制御を含む。アプリケーション状態ファイル制御70は、一つ以上のアプリケーション状態ファイル52をセッションマネージャー40に、またはセッションマネージャー40から転送する。セッションジャーナル制御72は、セッションジャーナルファイル54にセッションアクティビティを記録し、ユーザーアプリケーション30に対してセッションジャーナルファイル54のコンテンツを通信する。
【0024】
ユーザーアプリケーション30は、既存のデザインアプリケーションに基づき得る。ここで、この既存のデザインアプリケーションは、XML構造を適切に読み出し、書き込み、および解釈し、制御66およびAPI 68を介してセッションクライアント42と統合するようにデザインまたは拡張されている。用いられ得るアプリケーションの一例としては、本明細書において援用され、かつ共有に係る特許出願第09/885,834号に記載されている、OHIO Design Automation Inc.からInterCommの名で入手可能なアプリケーション(およびそのAPI)がある。別の例としては、Cadence Design Systems Inc.からのAllegro and Conceptの名で入手可能なアプリケーションおよび、これらのアプリケーションとともに用いられるSKILL APIが挙げられる。
【0025】
セッションマネージャー40は、既存のセッションマネージャーに基づき得る。ここで、この既存のデザインアプリケーションは、セッション制御62を処理し、セッションクライアント42と統合するようにデザインされている。一例としては、WebEx Communications,Inc.によって提供されているインターネット通信サービスにおいて用いられるセッションマネージャーがある。
【0026】
図4を参照すると、同期式コラボレーションの一方法が記載されている。ユーザは、セッションマネージャー40のサービスを用いて、新たなコラボレーションセッションをスケジュールに入れ得る(ステップ110)。ユーザは、ユーザ名/パスワードを用いてセッションマネージャー40にログインし、新たなコラボレーションセッションをスケジュールに入れ、参加者を招待し得る。ユーザはまた、セッション参加者と通信し得る。このプロセスは、適切なデザインデータベースを得るためのプロセスである。例えば、各セッション参加者は、ローカルPLM手順を用いて、ローカルアプリケーションと互換性のある独自バージョンのデザインデータベースをロードし得る。スケジュールステップは、インプリメンテーションにより、セッションクライアント42またはインターネットブラウザを用いて、実行され得る。セッションマネージャー40のサービスへのアクセスはまた、料金に基づいた契約(subscription)を要求し得る。
【0027】
スケジュールどおりの日/時間において、ユーザおよび別の招待されたユーザは、クライアントセッション42のユーザーインターフェース60を用いて、セッションマネージャー40にログインする(ステップ112)。セッションログインは、ユーザに、以前に規定したユーザ名およびパスワードを入力することを要求し得る。
【0028】
一旦セッションマネージャー40が、コラボレーションセッションが開始され、適切なパーティーが参加したと決定すると、一セッションクライアントから受け取ったセッション制御(制御の始点についての情報を含む)の、全ての参加セッションクライアントとの共有を開始する(ステップ114)。ユーザーアプリケーション30および/またはセッションマネージャー40と交換した全てのローカルセッションクライアントは、好適には、クライアント14の各々のローカルセッションジャーナル54に記録される。
【0029】
ユーザは、ローカルアプリケーション30を開始し(ステップ116)、関連のデザインデータをユーザーアプリケーションに位置設定およびロードする(ステップ118)。セッションクライアント42とユーザーアプリケーション30との間のローカルな統合の詳細により、これらのステップは、セッションクライアントまたはユーザーアプリケーション30のいずれかを介して開始され得る。また、これらのステップは、コラボレーションセッションへのログインの前または後において、ローカルアプリケーション30によって実行され得る。ローカルアプリケーション30は、デザインを操作するために用いられ得る(ステップ120)。
【0030】
セッションマネージャー40によって施行されたユーザセッションの優先度および特権に従って、一人以上のユーザは、セッションクライアント42ユーザーインターフェース60を用いて、別の参加者とチャットライン様テキストベースの会話を開始し得る(ステップ122)。このテキストは、セッションマネージャー40に送られ、次いで、発信源を識別する情報とともに、このテキストは、それぞれのユーザーインターフェース60を介した表示に対して、全ての参加しているセッションクライアント42に分配される。送信および受信された全てのチャットラインのメッセージは、好適には、クライアント14の各々のローカルセッションジャーナル54に記録される。
【0031】
セッションマネージャー40によって施行されたユーザセッションの優先度および特権に従って、一人以上のユーザは、セッションクライアント42ユーザーインターフェース60を用いて、アプリケーション状態を他のものに通信し得る(ステップ124)。特に、ユーザーアプリケーション30は、デザイン操作に基づいてアプリケーション状態ファイル52を作成する(例えば、XML構造を用いて)ように、セッションクライアント42に命令されており、ユーザーアプリケーション30は、セッションクライアント42に、アプリケーション状態ファイル52が生成されたことを通知する。セッションクライアント42は、適切なセッション制御でアプリケーション状態ファイル52をセッションマネージャー40に送信する。セッションマネージャー40は、適切なセッション制御を用いて、受信したアプリケーション状態ファイル52を、全てのアクティブな参加者に分配する。全てのアプリケーション状態はまた、好適には、各クライアント14のローカルセッションジャーナル54に記録される。
【0032】
アプリケーション状態ファイル52が受信されると、セッションクライアント42は、セッション制御66をローカルユーザーアプリケーション30に送信し、それは、新しいアプリケーション状態ファイル52が利用可能であることを示す。ローカルユーザーアプリケーション30は、パーサ80を使用して、新しく到着したアプリケーション状態ファイル52をロードし、表示の新しい状態を反映する。ローカルセッションクライアントUI60を使用して、ユーザは、同期化が実際に生じる時間、および、コラボレーションセッションとアクティブな接続をさせることなく、それがどのように実施されるかを制御することができる。セッションクライアント42が他の参加者(participant)から、継続的にアプリケーション状態ファイル52をバッファする一方で、例えば、ユーザは、それらのユーザーアプリケーション30において、新しく到着したアプリケーション状態ファイル52のインスタンス化(instantiation)を拒否または遅延させ得る。このオンデマンドの同期化により、ユーザは、ユーザーアプリケーション30を独立して用い、効果を発揮することができ、その一方で、コラボレーションは継続し、次いで、同時的なコラボレーションの交換の詳細を緩める(loose)ことなく、後に遅れを取り戻すことができる。
【0033】
コラボレーションは、ステップ126において、ユーザーのローカルセッションクライアント42を使用して、全ての参加しているユーザーがセッションからログアウトするまで継続され得る。セッションクライアント42は、セッションが、非同期モードにおける全体のコラボレーションセッションを再生するために終了された後、いつでも、ローカルセッションジャーナルファイル54をリロードすることができる。
【0034】
ユーザーはまた、コラボレーションセッションにログインすることなく、セッションジャーナルファイル54を作成するために、セッションクライアント42を使用するオプションを有する。これは、非同期のコラボレーションの形式である。ジャーナルファイル54はまた、任意の適切な手段を介して、セッションクライアント42の外側から全体に生成され得、非同期モードにおいて、セッションクライアント42を共有し得る。
【0035】
図5を参照すると、非同期的にコラボレーションする一方法が詳細に記載される。その方法は、上述した同期のコラボレーション方法に類似するが、スケジューリングし、コラボレーションセッションにログインし、およびセッション制御を供給するステップはない。ユーザは、ステップ120において、ローカルユーザーアプリケーション30を開始し、そのデザインデータは、ステップ212において、ローカルユーザーアプリケーションにロードされる。デザインは、ステップ214において、アプリケーションを使用して操作され、アプリケーション状態ファイルは、ステップ216において、そのデザイン操作に基づいて作成される。アプリケーション状態ファイル52(例えば、XMLメッセージ)は、ステップ218において、ジャーナルファイル54に記録され、ステップ220において、後に、別のユーザーと通信され得、サーバーに接続することなく、非同期のコラボレーションセッションを再生するためにロードされる。これにより、ユーザーは、他のコラボレーションのユーザとは独立して、デザインをレビューすることができる。非同期モードはまた、同期のコラボレーションがスケジュールされ得ない(例えば、時間ゾーンのコンフリクトなどのために)場合、使用され得ない。非同期のコラボレーションはまた、トレーニング、再加工(rework)、電子または機械的なアセンブリのための技術変更指示(ECO)などの、命令をオーサ(author)するために使用され得る。
【0036】
別の命令に従い、コラボレーションは、同じクライアント(図示されず)上で走る二つの異種のアプリケーションに提供される。このことは、両方のアプリケーションが同じクライアント上にて同時に走る一方で、概略的なデザインのための、Mentor Graphics Corp.から利用可能であるPCBデザインおよびDXデザイナーのための、Cadence Design Systems Inc.から利用可能であるAllegroなどの、二つのユーザーアプリケーションのそれぞれに、適切なデザインデータをロードすることに関与する。この方法の一例において、デザインオブジェクトは、ユーザーアプリケーションの一つを用いて、デザインオブジェクトをハイライトすることによって修正される。オブジェクトがユーザーアプリケーションの一つにおいてハイライトされるときは常に、アプリケーション状態ファイルが作成され、それは、ハイライトされたオブジェクトの名前を反映し、他のアプリケーションは、例えば、MicrosoftのWindows(登録商標)上での、OLE Automationなどの、ローカルオペレーティングシステムのインタープロセスメッセージングを使用して、このことが通知される。他のユーザーアプリケーションは次いで、このアプリケーション状態ファイルを読み出し、そのデータベースにおいて対応するオブジェクトをハイライトする。このプロセスは、ユーザーアプリケーションの間で双方向であることが好ましい。
【0037】
実施形態は、PCまたはモバイル機器など(これらに限定されない)を含むコンピュータシステムを使用するコンピュータープログラム製品としてインプリメントされ得る。そのようなインプリメンテーションは、コンピューター可読媒体(例えば、ディスケット、CD−ROM、ROM、または固定ディスクなど)などの、有形の(tangible)媒体上のいずれかに固定された、一連のコンピューター命令を含み得、媒体を介して、ネットワークに接続された通信アダプターなどの、モデムまたは他のインターフェース機器を介して、コンピュータシステムに転送可能である。その媒体は、有形の媒体(例えば、光学またはアナログ通信線)か、または無線技術(例えば、マイクロ波、赤外線、または他の送信技術など)を用いてインプリメントされる媒体のいずれかであり得る。一連のコンピュータ命令は、システムに関連して、前述した機能の全てまたはその一部を具体化する。そのようなコンピュータ命令は、多くのコンピューター構成またはオペレーティングシステムを用いて、多数のプログラム言語において書き込まれ得ることを当業者は理解すべきである。さらに、そのような命令は、半導体、磁気、光学、または他のメモリ装置などの、任意のメモリ装置に格納され得、光学、赤外線、マイクロ波、または他の送信技術などの、任意の通信技術を使用して転送され得る。そのようなコンピュータープログラム製品は、印刷された、または電気的なドキュメンテーション(例えば、収縮(shrink wrapped)ソフトウェア)を添付する着脱可能な媒体として分配され得、コンピュータシステム(例えば、システムROMまたは固定ディスク上など)を用いてプレロードされ得、あるいは、ネットワーク(例えば、インターネットまたはWorld Wide Webなど)を介して、サーバまたは電子掲示板から分配され得る。もちろん、本発明の一部の実施形態は、ソフトウェア(例えば、コンピュータープログラム製品)およびハードウェアの両方の組み合わせとしてインプリメントされ得る。本発明のさらに他の実施形態は、完全にハードウェア、または完全にソフトウェア(例えば、コンピュータープログラム製品)としてインプリメントされ得る。
【0038】
本発明の原理がここで記載されているが、本記載は、例示のためだけであって、本発明の範囲を限定するものではないことを当業者は理解すべきである。他の実施形態は、個々で示され記載された例示的な実施形態に付け加えて、本発明の範囲内にて検討される。当業者のうちの一人による修正または代用は、本発明の範囲内のものとして考慮され、それは、本発明の特許請求の範囲によってのみ限定されるものである。
【図面の簡単な説明】
【0039】
【図1】図1は、既存のネットワークベースのコラボレーションシステムの機能ブロック図である。
【図2】図2は、本発明の一実施形態に従う、ネットワークベースのコラボレーションシステムの機能ブロック図である。
【図3】図3は、本発明の一実施形態に従う、ネットワークベースのコラボレーションシステムにおける、クライアントとサーバーの機能ブロック図である。
【図4】図4は、本発明の一実施形態に従って、同期コラボレーション方法を示すフローチャートである。
【図5】図5は、本発明の一実施形態に従って、非同期コラボレーション方法を示すフローチャートである。
【図6】図6は、アプリケーション状態ファイルの一例を示す。

【特許請求の範囲】
【請求項1】
ネットワークに接続された各々のクライアント上で動いている複数の異種のユーザーアプリケーションを用いてデザインを操作するために該ネットワーク上でコラボレーションする、コンピューターによる方法であって、該方法は:
コラボレーションセッションに参加するために、該ネットワーク上でセッションクライアントプロセスをセッションマネージャーに接続する工程;
該セッションマネージャーに接続された他のセッションクライアントプロセスとセッションコントロールメッセージを共有する工程;
該デザインを表すデザインデータを該クライアント上で動いているローカルアプリケーションへロードする工程;
該ローカルアプリケーションの少なくとも1つの状態を表す少なくとも1つのアプリケーション状態ファイルを、該ローカルアプリケーションを用いて該デザインの少なくとも1つの操作に基づいて作成する工程;
少なくとも1つのアプリケーション状態ファイルを該セッションマネージャーを介して該セッションクライアントプロセスから該他のセッションクライアントプロセスへ通信する工程;および
他のローカルアプリケーションによって作成され、該セッションマネージャーを介して該他のセッションクライアントから通信された少なくとも1つのアプリケーション状態ファイルをロードする工程;
を包含する、方法。
【請求項2】
請求項1に記載の方法であって、前記少なくとも1つのアプリケーション状態が、少なくとも1つのアプリケーション状態ファイルを作成するために、規格化されたXML構造を用いてコード化され、該少なくとも1つのアプリケーション状態ファイルがXMLメッセージとして通信される、方法。
【請求項3】
請求項2に記載の方法であって、前記XML構造が、デザインデータのタイプのコンテキストにおいて規定された分野特有の仕様に基づいている、方法。
【請求項4】
請求項1に記載の方法であって、前記セッションコントロールおよび前記少なくとも1つのアプリケーション状態ファイルをジャーナルファイル中に保存する工程をさらに包含する、方法。
【請求項5】
請求項1に記載の方法であって、前記コラボレーションセッションをスケジュールする工程をさらに包含する、方法。
【請求項6】
請求項1に記載の方法であって、前記他のセッションクライアントとテキストベースの対話を行う工程をさらに包含する、方法。
【請求項7】
請求項1に記載の方法であって、前記コラボレーションセッションにログインする工程、および該コラボレーションセッションからログアウトする工程をさらに包含する、方法。
【請求項8】
請求項1に記載の方法であって、前記アプリケーション状態ファイルのロードを前記ユーザーが選択した時間で制御する工程をさらに包含する、方法。
【請求項9】
請求項1に記載の方法であって、前記他のアプリケーションファイルによって作成され通信された該アプリケーション状態ファイルに相当するデザイン操作を表示する工程をさらに包含する、方法。
【請求項10】
請求項1に記載の方法であって、前記デザインが、前記異種のアプリケーション間でデザインイメージを伝送する必要なく操作される、方法。
【請求項11】
複数の異種のアプリケーションを用いてデザインを操作するためにコラボレーションする、コンピューターによる方法であって、該方法は:
デザインデータをコンピューター上のローカルアプリケーションへロードする工程;
該ローカルアプリケーションを用いて該デザインデータに基づいてデザインを操作する工程;
該ローカルアプリケーションのアプリケーション状態を表す少なくとも1つのアプリケーション状態ファイルを、該ローカルアプリケーションを用いて該デザインの少なくとも1つの操作に基づいて 作成する工程;
該少なくとも1つのアプリケーション状態ファイルの各々をジャーナルファイル中に保存する工程;および
該ジャーナルファイルを別のコンピューターに伝送する工程であって、その結果、該少なくとも1つのアプリケーション状態ファイルが、該別のコンピューター上にロードされ得、該少なくとも1つの操作が、該別のコンピューター上で動いている別の異種のアプリケーションを用いてレビューされ得る、工程
を包含する、方法。
【請求項12】
請求項11に記載のコンピューターによる方法であって、該方法が、コラボレーションの非同期方法である、方法。
【請求項13】
請求項11に記載のコンピューターによる方法であって、前記ジャーナルファイルが、前記別のコンピューター上で再生される際に対話式命令を提供する、方法。
【請求項14】
単一のクライアント上で同時に動いている異種のアプリケーション間で動的にコラボレーションする、コンピューターによる方法であって、該方法は:
デザインデータを該クライアント上の該アプリケーションのうちの1つへロードする工程;
該アプリケーションのうちの1つを用いてデザインオブジェクトを操作する工程;
操作される該デザインオブジェクトの名称を反映する少なくとも1つのアプリケーション状態ファイルを作成する工程;
少なくとも1つの他の該アプリケーションの該アプリケーション状態ファイルを、ローカルオペレーティングシステムのインタープロセスメッセージングを用いて動的に通知する工程;
該アプリケーション状態を少なくとも1つの他の該アプリケーションを用いて読み取る工程;および
該少なくとも1つの他の該アプリケーションにおいて対応するデザインオブジェクトを、該アプリケーション状態ファイルに基づいて操作する工程
を包含する、方法。
【請求項15】
請求項14に記載のコンピューターによる方法であって、前記デザインを操作する工程が前記デザインオブジェクトをハイライトする工程を包含し、前記該アプリケーションが、前記アプリケーション状態ファイルを読み込む際に前記対応するデザインオブジェクトをハイライトする、方法。
【請求項16】
請求項14に記載のコンピューターによる方法であって、前記異種のアプリケーションが双方向にコラボレーションする、方法。
【請求項17】
ネットワークと接続されたクライアント上で動いている複数の異種のアプリケーションを用いて、デザインを操作するために該ネットワーク上でコラボレーションするコンピューター制御システムであって、該システムは:
ローカルアプリケーションを用いて作成された少なくとも1つのデザイン操作に基づいて、該ローカルアプリケーションによって作成されたアプリケーション状態を表すための、少なくとも1つのアプリケーション状態ファイル;
該ローカルアプリケーションとコラボレーションセッションとの間のインタラクションを同期させ、かつ該アプリケーション状態ファイルを該ネットワーク上で他のクライアントへ通信するための、セッションクライアントモジュール;
を備える、コンピューター制御システム。
【請求項18】
請求項17に記載のコンピューター制御システムであって、前記セッションクライアントモジュールが、以下:
ユーザーとインターフェイスをとるためのユーザーインターフェイス;
前記ローカルアプリケーションとインターフェイスをとるための、第1のアプリケーションプログラミングインターフェイス;および
前記ネットワーク上でセッションマネージャーとインターフェイスをとるための、第2のアプリケーションプログラミングインターフェイス
を備える、コンピューター制御システム。
【請求項19】
請求項17に記載のコンピューター制御システムであって、前記コラボレーションセッションの間に、セッションコントロールおよび前記アプリケーション状態を記録するためのセッションジャーナルをさらに備える、コンピューター制御システム。
【請求項20】
請求項17に記載のコンピューター制御システムであって、前記アプリケーション状態が、前記少なくとも1つのアプリケーション状態ファイルを作成するために、規格化されたXML構造を用いてコード化され、該少なくとも1つのアプリケーション状態ファイルがXMLメッセージとして通信される、コンピューター制御システム。
【請求項21】
請求項17に記載のコンピューター制御システムであって、前記セッションクライアントモジュールが、前記デザインのイメージを送信することなしに前記アプリケーション状態ファイルと通信する、コンピューター制御システム。
【請求項22】
複数の異種のアプリケーションを用いて、デザインを操作するためにコラボレーションするためのコンピューター制御システムであって、該システムは:
デザインデータをコンピューター上のローカルアプリケーションへロードするための手段;
該ローカルアプリケーションを用いて該デザインデータに基づいてデザインを操作するための手段;
該ローカルアプリケーションのアプリケーション状態を表す少なくとも1つのアプリケーション状態ファイルを、該ローカルアプリケーションを用いて少なくとも1つの該デザインの操作に基づいて作成する工程;
各々の該少なくとも1つのアプリケーション状態ファイルをジャーナルファイル中に保存するための手段;および
該ジャーナルファイルを別のコンピューターへ伝送し、その結果、該少なくとも1つのアプリケーション状態ファイルが、該別のコンピューター上でロードされ得、該少なくとも1つの操作が、該別のコンピューター上で動いている別の異種のアプリケーションを用いてレビューされ得るための手段
を備える、コンピューター制御システム。
【請求項23】
記憶媒体を備えるコンピュータープログラム製品であって、該記憶媒体が、ネットワークと接続されたクライアントコンピューター上の複数の異種のアプリケーションを用いて、デザインを操作するために、該ネットワーク上でコラボレーションするための該媒体中に保存されたコンピューターに読み取り可能なコードを有し、該コンピューターに読み取り可能なコードが:
ユーザーとインターフェイスをとるためのコード;
デザインを操作するために使用されるローカルアプリケーションとインターフェイスをとるためのコード;
セッションマネージャーとネットワーク上でインターフェイスをとるためのコード;および
セッションコントロールおよび少なくとも1つのアプリケーション状態ファイルを該セッションマネージャーへ該ネットワーク上で通信するためのセッションクライアントプロセスを作成するためのコードであって、該アプリケーション状態ファイルが、少なくとも1つの該デザインの操作に基づいて該ローカルアプリケーションによって作成される、コード
を備える、コンピュータープログラム製品。
【請求項24】
記憶媒体を備えるコンピュータープログラム製品であって、該記憶媒体が、ネットワークと接続されたクライアントコンピューター上の複数の異種のアプリケーションを用いて、デザインを操作するために、該ネットワーク上でコラボレーションするための該媒体中に保存されたコンピューターに読み取り可能なコードを有し、該コンピューターに読み取り可能なコードが:
ユーザーとインターフェイスをとるためのコード;
ローカルアプリケーションとインターフェイスをとるためのコード;
アプリケーション状態ファイルを用いてデザインのために行われた操作に基づいて、少なくとも1つのアプリケーション状態を表す少なくとも1つの該アプリケーション状態ファイルを作成するために、該ローカルアプリケーションに命令するためのコード;
セッションマネージャーとネットワーク上でインターフェイスをとるためのコード;
該少なくとも1つのアプリケーション状態ファイルおよびセッションコントロールを該セッションマネージャーへ送信するためのコード;および
該ローカルアプリケーションに、アプリケーション状態ファイルが受信されていることを通知するためのコード
を備える、コンピュータープログラム製品。
【請求項25】
請求項24に記載のコンピュータープログラム製品であって、前記受信されたアプリケーション状態ファイルの前記ローカルアプリケーションへのインスタンス化を制御するためのコードをさらに備える、コンピュータープログラム製品。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公表番号】特表2007−525745(P2007−525745A)
【公表日】平成19年9月6日(2007.9.6)
【国際特許分類】
【出願番号】特願2006−549500(P2006−549500)
【出願日】平成17年1月11日(2005.1.11)
【国際出願番号】PCT/US2005/000750
【国際公開番号】WO2005/070128
【国際公開日】平成17年8月4日(2005.8.4)
【出願人】(506235904)パラメトリック テクノロジー コーポレーション (1)
【Fターム(参考)】