JP2005071356A - 1台のサーバに格納された共用データ構造について複数のワークステーションが協働する方法およびシステム - Google Patents

1台のサーバに格納された共用データ構造について複数のワークステーションが協働する方法およびシステム Download PDF

Info

Publication number
JP2005071356A
JP2005071356A JP2004237524A JP2004237524A JP2005071356A JP 2005071356 A JP2005071356 A JP 2005071356A JP 2004237524 A JP2004237524 A JP 2004237524A JP 2004237524 A JP2004237524 A JP 2004237524A JP 2005071356 A JP2005071356 A JP 2005071356A
Authority
JP
Japan
Prior art keywords
server
data structure
node
shared data
program according
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004237524A
Other languages
English (en)
Inventor
William M Quinn
ウイリアム・エム・クイン
Kevin Solie
ケビン・ソリー
Matthew A Levy
マシュー・エイ・レヴィ
James Johnston
ジェームズ・ジョンストン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2005071356A publication Critical patent/JP2005071356A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)

Abstract

【課題】 データ構造についての協働的オペレーションのための方法、システム、およびプログラムを提供する。
【解決手段】 システムはサーバとこのサーバに接続された複数のクライアントとを備えている。一実例では、サーバはドキュメント・オブジェクト・モデル(DOM)がマークアップ・ファイルにアクセスして操作しうるように構成されかつ制御されている。クライアントはリモート・ワークステーションにおいてデータ構造についてオペレーションを実行し、コンテナを呼び出してデータ構造の変更に備え、データ構造についてのオペレーションをコンテナ中に封緘し、封緘した変更をサーバに送付するように構成されかつ制御されている。サーバはたとえばドキュメント・オブジェクト・モデル(DOM)に従って変更をデータ構造に入力し、入力した変更をサーバに接続された他のクライアントに反映させるように構成されかつ制御されている。
【選択図】 図2

Description

本発明は複数のユーザが複数のワークステーションで1台のサーバ(またはサーバ群)を用いて共用データを並行かつ協働して生成し変更して同期を容易にするシステム、方法、およびプログラムに関する。
今日、様々な協働(collaboration)システムが存在する。その中には、Lotus Sametime(TM)、様々なウェブ会議ソリューション、および拡大インスタント・メッセージ・ソリューションなどが含まれる。様々な協働システムは多くの標準プロトコルと標準APIを使用しているが、各協働システムは独自性のある製品である。また、それらにはすべて共通の技術上の問題点がいくつかあるが、それらは各々それ自身の課題を有するとともに他とは異なる(多くの場合、独自の)プログラミング・モデルを有する。これにより、開発コストが増大している。
したがって、標準に準拠した共用データ構造の変更をサポートした共通かつ既存のプロトコルとAPIを使用する協働システムが明白に求められている。
本発明の方法、システム、およびプログラムは共通かつ既存のプロトコルとAPIを用いて標準準拠のデータ構造またはファイルの変更を実質的にリアルタイムでサポートする協働システムを提供する。特に、本発明の方法、システム、およびプログラムはデータおよびデータ構造についての協働的オペレーションを備えている。本発明に係るシステムは1つのサーバとこのサーバに接続された複数のクライアントとを備えている。データ構造は共用データ構造、たとえばサーバに格納された共用マークアップ言語ファイルである。サーバはドキュメント・オブジェクト・モデル(DOM)が共用データ構造(たとえば共用マークアップ言語ファイル、遷移データ構造、格納データ構造)にアクセスして操作しうるように構成されかつ制御されている。クライアントはリモート・ワークステーションにおいてデータ構造(たとえばドキュメントまたは他のファイル)についてオペレーションを実行し、ラッパを呼び出してデータ構造に対する変更に備え、データ構造についてのオペレーションをラッパ中にラップまたは封緘し、ラップまたは封緘した変更をサーバに送付するように構成されかつ制御されている。サーバは標準のプロトコル(たとえばドキュメント・オブジェクト・モデル(DOM))に従って変更をデータ構造に入力し、入力した変更をサーバに接続された他のクライアントに反映させるように構成されかつ制御されている。
本発明の方法、システム、およびプログラムは共通かつ既存のAPIを用いてデータ構造の変更をサポートしている。アプリケーションの機能がAPIを呼び出すと、変更は関連するすべてのファイルに通知される。様々なワークステーション上のデータとデータ構造の表現、共用データ構造とDOMによって、本発明の方法、システム、およびプログラムは変更を均一な態様で同期させている。これはマルチポイント通信管理、同期データ転送、最適化データ転送、およびバージョン互換性によって達成している。
XMLドキュメントを用いて機能の共用特性を封緘することにより、新たなリアルタイム協働を生成することができる。
〔定義〕
ここで使用するXML(Extensible Markup Language)はW3C(World Wide Web Consortium)が、共通の情報フォーマットを作成し当該フォーマットと日付をたとえばワールド・ワイド・ウェブ、イントラネット、および他の任意の場所で共用する柔軟な方法のために出した公式の勧告である。XML自体は今日のウェブ・ページの言語であるHTML(Hypertext Markup Language)に似ている。XMLとHTMLは両方ともページのコンテンツすなわちファイルを記述するマークアップ・シンボルを備えている。しかし、HTMLが表示するとともに相互作用する方法の観点からのみウェブ・ページのコンテンツ(主としてテキストとグラフィック・イメージ)を記述するのに対して、XMLは記述するデータの内容の観点からコンテンツを記述する。たとえば、マークアップ・タグ中に配置された「phone _num 」なる語によって後に続くデータが電話番号であることを表わすことができる。このことが意味するのは、XMLファイルはプログラムによって純粋にデータとして処理することができる、あるいはXMLファイルは同様のデータとともに別のコンピュータに格納することができる、あるいはXMLファイルはHTMLファイルと同様に表示することができる、ということである。たとえば、受信中のコンピュータのアプリケーションが電話番号をどのように処理する必要があるのかに応じて、当該電話番号を格納し、表示し、あるいはダイヤルすることができる。XMLが「拡張可能(extensible)」であるのは、HTMLとは異なりそのマークアップ・シンボルが無限であり自己定義性だからである。
ここで使用する「DOM(Document Object Model)」はW3Cが開発したドキュメント・オブジェクト・モデル・プログラミング・インタフェース仕様を意味する。これはエンド・ユーザがXMLファイルを作成しそれを変更するのを容易にするものである。XMLファイルはテキストとして格納されたXMLドキュメントである。このようなドキュメントはプログラム・オブジェクトとして当該オブジェクト中にそのコンテンツとデータを含めることができる。また、このようなドキュメントは「メソッド」と呼ばれるオブジェクト指向プロシージャを担持することができる。ドキュメント・オブジェクト・モデル(DOM)は2レベルのインタフェース・インプリメンテーション、すなわちDOMコアとDOM HTMLを提供する。DOMコアはXMLをサポートするとともに次レベルの基礎を成すものである。DOM HTMLはモデルをHTMLドキュメントに拡張するものである。DOM内では、任意のHTML要素またはXML要素はプログラミングによって個別にアドレス可能である。DOMそのものは言語に依存しないから、汎用のインタフェース定義言語を用いて記述することができる。
ここで使用する「ラッパ(wrapper)」はオブジェクトをデータおよびメソッドとして格納し移動させ、オブジェクトにそのデータ型を変えることなく機能を付加するオブジェクト指向プログラミング構成体を意味する。ラッパは関数呼び出しをそれらが呼び出しているオブジェクトに委譲させる。
ここで使用する「マークアップ言語」はファイルを印刷または表示したときにそれがどのように見えるべきかを示すため、あるいはドキュメントの論理構造またはドキュメントのメタデータを記述するためにテキストすなわち文書処理ファイルのある場所に挿入されたキャラクタまたは他のシンボルから成る列を備えた言語を意味する。マークアップ・インジケータは「タグ」と呼ばれることが多い。
ここで使用する「協働ソフトウェア」はデータ、ドキュメント、およびファイルを同期をとって処理するソフトウェア、ならびに通常は分散ワークグループ、コミュニティ、および会社で他者とともにファイル、ドキュメント、タスク、プロジェクト、および意思決定をすべて実質的にリアルタイムで同期をとって処理するソフトウェアを意味する。
ここで説明する方法、システム、およびプログラムはサーバ・ベースかつリアル・タイムの協働システムである。このシステムは開放APIを使用する。
開放APIをDOMモデルとともに、そして任意実行事項として標準ベースのマークアップ言語とともに使用すると、アプリケーションは既存のDOMメソッドを用いて分散クライアントの間でデータ・モデルを同期させることが可能になるとともに、これをリアルタイムで行なうことが可能になる。すなわち、開発者はDOMがあたかもローカルでしかないようにそれを変更するが、変化はすべてのクライアントに「透過的に(transparently)」反映される。リアルタイム同期と組み合わされたリアルタイム協働は同期プロセスであり、「チェックアウト−チェックイン」システムではない。
分散システムの間におけるリアルタイム・マルチポイント通信の手段としのDOMによって、協働的XMLオブジェクト(たとえばホワイトボード、プレゼンテーション、アジェンダ、スプレッドシート、ドキュメントなど)におけるリアルタイム協働が容易になる。このシステムによって、モデルはリアルタイムで変更される。これらの変更はユーザにリアルタイムで通知される。ユーザが変更を生成するとき、サーバは変更をモニタしている。
APIはデータ構造(たとえばマークアップ言語ドキュメント)の変更をサポートしている。そして、複数のワークステーションが複数の場所で(仮想)データベースを共用している。DOM APIを使用することにより、DOMモデルは複数のワークステーションを駆動することができる。これらのワークステーションは仮想サーバを含むサーバ群、およびサーバ・グループ中の特定のサーバに接続されている。サーバ上では、データ構造(たとえば共用データ構造)は特定の名前空間に対応付けられている。
上記データベースは複数のワークステーションに関するモデルを備えた共用(仮想)データベースである。XMLファイルに加えた変更は1台のワークステーションにおけるエンドユーザが共用ドキュメントを変更するときその中で処理する。これは(既定義の)APIを用いてデータ構造を変更することにより行なう。
サーバは共用データ用のデータ・モデルとしてマークアップ言語(通常はXML)を用いることができるとともに、DOM APIを用いてデータ・モデルを操作しモニタすることができる。好適なマークアップ言語はXMLである。なぜなら、共用XMLドキュメントの操作およびXMLドキュメントの変更をサポートする共通かつ既存のXML APIが多数存在するからである。
XMLドキュメントは共用特性を封緘する。これはXMLの動的データ構造モデルの一側面である。XMLデータ・モデルでは、この動的データ構造モデルはリアルタイム協働モデルに対応している。
DOM APIはXMLデータ・モデルを操作する。XMLデータ・モデルとDOMとを組み合わせると、特定のサーバに接続するとともに特定の名前空間に対応付ける機能を備えた共用XMLが実現する。
共用XMLとDOMとを相互作用させると、送付済みのデータ変化とデータ同期方法とが透過的に決まる。すなわち、共用XMLとDOMとの組み合わせはそれ自体1つの同期ツールである。
共用XMLに新たなメッセージを付加するには共用XML APIを呼び出す。これを説明する例を以下に示す。
<ChatSession name='chat1'>
<Message>
<Sender>Bill Quinn</sender>
<Test>Hi, how are you?</test>
</Message>
<Message>
<Sender>Matt Levy</Sender>
<Text>Fine, and you?</Text>
</Message>
</ChatSession>
同様に、
<Whiteboard>
<Page name="page1">
<Annotation>
type='text'
x='22'
y='14'...>
Hello World
</Annotation>
</Page>
</Whiteboard>
これを図1と図2に示す。図1はデータ構造(ここではホワイトボード)を生成するアプリケーション、当該データ構造の生成、およびそれに使用するDOM APIを示す図である。図1において、アプリケーション11は関数newPage() を用い、ドキュメントに新たな<Page>要素を生成するDOM API15を使用してホワイトボード13に新たなページを生成している。
図2はサーバ210、クライアント211、212、ホワイトボード221、222、ホワイトボード・オブジェクト用のラッパすなわちコンテナ231、232、およびDOM API241、242を示す図である。
共用XMLは既存のAPIの上に存在するラッパである。共用XMLは既存のAPIの上に存在するラッパであるから、共用XMLはdocまたはdocsに加えられた意図的な変更をモニタする。そして、これらの変更はメッセージとして送付される。これらの変更は共用XMLドライバに通知される。これらはすべてのリモート・クライアントに反映される。リモート・クライアントでは、ラッパが意図的な変更をモニタしている。これらの変更はインプリメントすべきサーバに送付されるとともに、ワークステーションにも送付される。
共用XMLは2つのクライアントが同一のデータ構造を有するようなデータ構造を表わしている。この場合、背景インフラストラクチャを利用すると、データは複数のワークステーションをまたぐことが可能になる。共用データ構造はAPI(たとえばXML API)が背景インフラストラクチャにつながった階層構造をしている。
DOM(Document Object Model)はラップしたDOMImplementaionによってファクトリを構築している。ラップしたDOMImplementaionでは、共用ドキュメントを生成する元を成すインプリメンテーションはDomImplementaionである。DOM APIで特定されている他のすべての要素を生成するには共用ドキュメントを使用する。ラップしたDOMImplementaionはクライアントがサーバをサブスクライブする手段を備えている。ここで使用する「サーバ(Server)」にはサーバ・クラスタと仮想サーバが含まれる。サーバは名前空間(たとえば「meeting.id」)を提供するのに加え、ワークステーションのエンドユーザがDocument(なる名前の)ドキュメントから成る特定の組をサブスクライブするのを可能にするとともに遅れて参加したものをリフレッシュする機能も提供する。これは名前空間における完全なドキュメントによって、そして名前空間においてドキュメントをロックすることによって行なう。
ラップしたDOMImplementaionによって、複数の変更を同期した態様で処理することが可能になる。このことの一側面を挙げると、DOMインプリメンテーションによって、ドキュメント操作の複数のバッチを1つの原子ユニット、すなわちトランザクションとして扱うことが可能になる。
また、ロックの欠如を含む「失敗(fail)」する操作を表示しそれから回復する機能も含まれる。プログラム製品は既存のDOMノードをラップしているから、失敗は例外をスローする(投じる)ことにより表示する。
下に存在するDOMインプリメンテーションをラップするすなわちフックするには「ノード(Node)」を用いる。各ノードはオブジェクト・モデルにおけるオブジェクトである。サブノードはサブタイプのノードへの「継承」によりローカルDOM(共用DOMの対等なオブジェクト)における各ノードごとにオブジェクト指向プログラミングの意味で「継承する」ことができる。すなわち、共用ノードはローカル・ノードをラップしすなわち包含し、オペレーションを実行するときにそれを代行者として使用する。
このことの一側面は各共用ノードごとに一意のユーザID(UID)を確立することである。これにより、共用ノードは親ノードのID、DocumentのUID、および名前空間に気付く。
少なくとも1つのローカル・ワークステーションにおける変更の検出について。変更の検出は始めのアプリケーションが、あるノードにおける標準のDOM APIメソッドを呼び出すことによって行なう。ラッパは(ファイルまたはドキュメントとしての)データ構造の操作に気付き、オペレーションがノード、Parent Nodes(親ノード)、Documents (ドキュメント)、およびNamespaces(名前空間)と関係するときに当該オペレーションをエンコードする。これはローカルDOMで検出された変更をエンコードすることにより行なう。それは有限個数のオペレーションにおいて「Create node (ノードの作成)」「Add node(ノードの付加)」、「Remove node (ノードの削除)」、「Change node value(ノード値の変更) 」として実現されている。これを行なうメッセージはほとんどないから、デコードするのが容易である。これらのメッセージはクライアントでエンコードされ、サーバへ送付される。サーバでは、それらはデコードされ解釈されたのち、他のクライアントへ転送される。
永続性が実現している場合、サーバはリモートの(すなわち個別のワークステーションの観点からの)操作によって変更をDOMオブジェクトに適用する。サーバはサブスクライブしているすべてのクライアントに変更を反映させる。クライアントは必要なNode(ノード)、Parent Node (親ノード)のUIDを含むメッセージをデコードする。メッセージは正確なドキュメントへ転送したのち、操作を適用する特定の共用ノードへ転送することができる。
サーバ上のSynchronization Entity(同期エンティティ)すなわちEngine(エンジン)は共用データ構造に関連付けられているとともにすべての場所にある共用ドキュメントに同期している。これを行なうにはAPIを使用する。ローカルの変更は様々なワークステーションの場所にあるすべての同様のアプリケーションに通知する。
APIは変更の「検出」を示すメッセージをサーバに送付する。APIは他のローカルのワークステーション上の変更を当該変更を扱うサーバに送付する。変更はすべてのワークステーションに通知する。そして、変更はローカル・コピーがローカルに適用する。
永続的なDOM用のサーバ・モデルには2つの「テーブル」の形をした平坦化関係リストがある。1つはすべてのドキュメントから成るリストであり、名前空間、ドキュメントID、およびトランザクション番号を備えている。ドキュメントはこのテーブルを用いて「ロック」する。ロックは単一の行に収めることができる。
他のテーブルはDocument Nodes(ドキュメント・ノード)すなわちそれらの親ノードを含むすべてのノード、およびそれらが包含するドキュメントのリストを備えている。これが可能になるのは、すべてのメッセージが名前空間、ドキュメント、親ノード、およびノードそれ自体用のUIDを備えているからである。
DOM状態は平坦関係モデルに格納することができる。これにより、RDBMSのモデルとツールを適用することが可能になる。また、DOM状態をRDBMSに保持することが可能になる。この結果、共用XMLサーバに必要なメモリ量を少なくすることが可能になる。
本発明のさらなる側面は共用XMLサーバをクラスタ化して規模を変更させることができる点である。これにより、単一の障害点を避けることが可能になる。
DOMモデルと共用XMLとを組み合わせると、DOMサーバにおいてトランザクションの順番を順序付けるのが容易にもなる。この場合、サーバはオペレーション上の変更をDOMに反映させている。このように、ドキュメントごとに単一のトランザクションが維持されている。また、メッセージを更新するためにトランザクションIDをクライアントに送付する。クライアント自体はメッセージを順序付けるとともに正確な順番でメッセージを処理する機能および能力の双方を備えている。この結果、クライアント・ワークステーションは「メッセージの不整合」を避けることが可能になる。
DOM共用XMLシステムはネットワーク・アーキテクチャと無関係であり、ピア・ツー・ピア・アーキテクチャを必要としない。
以上、いくつかの好適な実施形態と実例によって本発明を説明したが、それにより本発明の範囲を限定することは意図していない。本発明の範囲は特許請求の範囲によってのみ限定される。
データ構造(ここではホワイトボード)を作成するアプリケーション、当該データ構造の作成、およびそれに使用するDOM APIを示す図である。 サーバ、クライアント、ホワイトボード、ホワイトボード・オブジェクト、およびDOM APIを示す図である。
符号の説明
11 アプリケーション
13 ホワイトボード
15 DOM API
210 サーバ
211 クライアント1
212 クライアント2
221 ホワイトボード
222 ホワイトボード
231 ラッパDOMオブジェクト
232 ラッパ
241 実際のDOMオブジェクト
242 実際のDOMオブジェクト

Claims (70)

  1. 1台のサーバに格納された共用データ構造について複数のワークステーションが協働する方法であって、前記サーバは共用データ構造に複数のユーザがアクセスして操作しうるように構成されるとともに制御されており、
    (a)前記共用データ構造にアクセスし、または前記共用データ構造を作成するために、アプリケーションを開くステップと、
    (b)前記サーバに接続するステップと、
    (c)リモート・ワークステーションにおいて前記共用データ構造についてオペレーションを実行するステップと、
    (d)前記共用データ構造に加える変更用のラッパを呼び出すステップと、
    (e)前記共用データ構造についての前記オペレーションを少なくとも1つのメッセージに封緘するステップと、
    (f)前記メッセージを前記サーバに送付するステップと、
    (g)前記サーバにおいて前記変更を前記共用データ構造に入力するステップと、
    (h)入力した前記変更を前記サーバに接続された他のクライアント・ワークステーションに反映させるステップと
    を備えた
    方法。
  2. 前記方法をリアルタイムで実行する、
    請求項1に記載の方法。
  3. 前記共用データ構造が、会議用ホワイトボード、プレゼンテーション、アジェンダ、スプレッドシート、およびドキュメントから成る群から選択されている、
    請求項1に記載の方法。
  4. 前記サーバが、ドキュメント・オブジェクト・モデル(DOM)に従って共用データ構造に複数のユーザがアクセスして操作しうるように構成されるとともに制御されている、
    請求項1に記載の方法。
  5. 少なくとも1つのAPIによって前記サーバに接続するステップ
    を備えた、
    請求項1に記載の方法。
  6. 前記サーバに接続し、前記共用データ構造に付随する前記サーバ上の名前空間に接続するステップ
    を備えた、
    請求項1に記載の方法。
  7. 前記サーバが、前記ワークステーションにおいて前記共用データ構造についてのオペレーションをリアルタイムでモニタする、
    請求項1に記載の方法。
  8. (a)クライアント・ワークステーションにおいてデータ構造中の変更を検出するステップと、
    (b)ラッパを呼び出し、前記オペレーションをエンコードするステップと
    を備えた、
    請求項7に記載の方法。
  9. ドキュメント・オブジェクト・モデル(DOM)に従ってXMLマークアップ言語ファイルを操作しモデル化するステップ
    を備えた、
    請求項1に記載の方法。
  10. 前記共用データ構造がXMLデータ・モデルに準拠している、
    請求項9に記載の方法。
  11. データ構造を個別のクライアント・ワークステーションに同期させるステップ
    を備えた、
    請求項9に記載の方法。
  12. ラップしたDOMImplementaionアプリケーションからDOMオブジェクトを生成するステップ
    を備えた、
    請求項9に記載の方法。
  13. 複数のドキュメント変更を1つの原子ユニットとして適用するステップ
    を備えた、
    請求項9に記載の方法。
  14. 下にあるDOMアプリケーションをラッパ中にノードとしてラップするステップ
    を備えた、
    請求項9に記載の方法。
  15. 各ノードがDOMモデル中のオブジェクトである、
    請求項14に記載の方法。
  16. サブノードが前記ノードから継承している、
    請求項15に記載の方法。
  17. 前記サブノードが、ドキュメント、ドキュメントの要素、および要素の属性から成る群から選択されている、
    請求項16に記載の方法。
  18. ローカル・ワークステーションにおけるDOMファイル中の各ノードが前記サーバにおける共用ノード中のオブジェクトに関連付けられている、
    請求項17に記載の方法。
  19. 共用ノードがローカル・ノードをラップしている、
    請求項18に記載の方法。
  20. 各ノードが一意のユーザID(UID)を備えている、
    請求項19に記載の方法。
  21. 前記共用ノードが親ノードのIDを知っている、
    請求項20に記載の方法。
  22. 前記共用ノードがドキュメントのIDを知っている、
    請求項20に記載の方法。
  23. 前記共用ノードが名前空間を知っている、
    請求項20に記載の方法。
  24. 共用ノードがローカル・ノードをラップしている、
    請求項19に記載の方法。
  25. 前記ローカル・ノードが前記共用ノードをオペレーション用の代行者として用いている、
    請求項21に記載の方法。
  26. 前記DOMモデルに適用することによって変更を検出するステップ
    を備えた、
    請求項1に記載の方法。
  27. 前記変更がラッパを呼び出す、
    請求項26に記載の方法。
  28. ローカルDOMモデルについての変更を検出するステップと、
    検出した前記変更をエンコードするステップと
    を備えた、
    請求項24に記載の方法。
  29. クライアントにおいて検出した前記変更をエンコードするステップと、
    検出した前記変更をサーバに送信するステップと、
    サーバにおいて前記変更をインプリメントするステップと
    を備えた、
    請求項28に記載の方法。
  30. 前記サーバにおいて前記変更を同期的に適用するステップと、
    前記変更を前記クライアントに反映させるステップと
    を備えた、
    請求項29に記載の方法。
  31. 1台のサーバに格納された共用データ構造について複数のワークステーションが協働するプログラムであって、前記サーバは共用データ構造に複数のユーザがアクセスして操作しうるように構成されるとともに制御されており、
    コンピュータに、
    (a)前記共用データ構造にアクセスし、または前記共用データ構造を作成するために、アプリケーションを開くステップと、
    (b)前記サーバに接続するステップと、
    (c)リモート・ワークステーションにおいて前記共用データ構造についてオペレーションを実行するステップと、
    (d)前記共用データ構造に加える変更用のラッパを呼び出すステップと、
    (e)前記共用データ構造についての前記オペレーションを少なくとも1つのメッセージに封緘するステップと、
    (f)前記メッセージを前記サーバに送付するステップと、
    (g)前記サーバにおいて前記変更を前記共用データ構造に入力するステップと、
    (h)入力した前記変更を前記サーバに接続された他のクライアント・ワークステーションに反映させるステップと
    を実行させる
    プログラム。
  32. 前記方法をリアルタイムで実行する、
    請求項31に記載のプログラム。
  33. 前記共用データ構造がマークアップ言語ファイルである、
    請求項31に記載のプログラム。
  34. 前記マークアップ言語ファイルがXMLファイルである、
    請求項33に記載のプログラム。
  35. 前記マークアップ言語ファイルが、会議用ホワイトボード、プレゼンテーション、アジェンダ、スプレッドシート、およびドキュメントから成る群から選択されている、
    請求項33に記載のプログラム。
  36. 少なくとも1つのAPIによって前記サーバに接続するステップ
    を備えた、
    請求項31に記載のプログラム。
  37. 前記サーバに接続し、前記共用データ構造に付随する前記サーバ上の名前空間に接続するステップ
    を備えた、
    請求項31に記載のプログラム。
  38. 前記サーバが、前記ワークステーションにおいて前記マークアップ言語ファイルについてのオペレーションをリアルタイムでモニタする、
    請求項31に記載のプログラム。
  39. (a)クライアント・ワークステーションにおいてデータ構造中の変更を検出するステップと、
    (b)コンテナを呼び出し、前記オペレーションをエンコードするステップと
    を備えた、
    請求項38に記載のプログラム。
  40. ドキュメント・オブジェクト・モデル(DOM)に従って前記共用データ構造を操作しモデル化するステップ
    を備えた、
    請求項31に記載のプログラム。
  41. データ構造を個別のクライアント・ワークステーションに同期させるステップ
    を備えた、
    請求項40に記載のプログラム。
  42. ラップしたDOMImplementaionアプリケーションからDOMオブジェクトを生成するステップ
    を備えた、
    請求項40に記載のプログラム。
  43. 複数のドキュメント変更を1つの原子ユニットとして適用するステップ
    を備えた、
    請求項40に記載のプログラム。
  44. 下にあるDOMアプリケーションをコンテナ中にノードとしてラップするステップ
    を備えた、
    請求項40に記載のプログラム。
  45. 各ノードがDOMモデル中のオブジェクトである、
    請求項44に記載のプログラム。
  46. サブノードが前記ノードから継承している、
    請求項45に記載のプログラム。
  47. 前記サブノードが、ドキュメント、ドキュメントの要素、および要素の属性から成る群から選択されている、
    請求項46に記載のプログラム。
  48. ローカル・ワークステーションにおけるDOMファイル中の各ノードが前記サーバにおける共用ノード中のオブジェクトに関連付けられている、
    請求項47に記載のプログラム。
  49. 共用ノードがローカル・ノードを封緘している、
    請求項48に記載のプログラム。
  50. 各ノードが一意のユーザID(UID)を備えている、
    請求項49に記載のプログラム。
  51. 前記共用ノードが親ノードのIDを知っている、
    請求項50に記載のプログラム。
  52. 前記共用ノードがドキュメントのIDを知っている、
    請求項50に記載のプログラム。
  53. 前記共用ノードが名前空間を知っている、
    請求項50に記載のプログラム。
  54. 共用ノードがローカル・ノードをラップしている、
    請求項53に記載のプログラム。
  55. 前記ローカル・ノードが前記共用ノードをオペレーション用の代行者として用いている、
    請求項54に記載のプログラム。
  56. 前記DOMモデルに適用することによって変更を検出するステップ
    を備えた、
    請求項31に記載のプログラム。
  57. 前記変更がラッパを呼び出す、
    請求項56に記載のプログラム。
  58. ローカルDOMモデルについての変更を検出するステップと、
    検出した前記変更をエンコードするステップと
    を備えた、
    請求項54に記載のプログラム。
  59. クライアントにおいて検出した前記変更をエンコードするステップと、
    検出した前記変更をサーバに送信するステップと、
    サーバにおいて前記変更をインプリメントするステップと
    を備えた、
    請求項58に記載のプログラム。
  60. 前記サーバにおいて前記変更を同期的に適用するステップと、
    前記変更を前記クライアントに反映させるステップと
    を備えた、
    請求項59に記載のプログラム。
  61. 1つのサーバおよび前記サーバに接続された複数のクライアントを備え、前記サーバに格納された共用データ構造について協働するシステムであって、
    (a)前記サーバが、複数のユーザが共用データ構造にアクセスして操作しうるように構成されかつ制御されており、
    (b)前記クライアントが、
    (i)リモート・ワークステーションにおいて前記共用データ構造についてオペレーションを実行し、
    (ii)ラッパを呼び出して前記共用データ構造の変更に備え、
    (iii)前記共用データ構造についてのオペレーションを前記ラッパ中に封緘し、
    (iv)封緘した前記変更を前記サーバに送付する
    ように構成されかつ制御されており、
    (c)前記サーバが、
    (i)前記サーバにおいて前記変更を前記共用データ構造に入力し、
    (ii)入力した前記変更を前記サーバに接続された他のクライアントに反映させる
    ように構成されかつ制御されている
    システム。
  62. 前記システムがリアルタイムで動作する、
    請求項61に記載のシステム。
  63. 前記共用データ構造がマークアップ言語ファイルである、
    請求項61に記載のシステム。
  64. 前記マークアップ言語ファイルがXMLファイルである、
    請求項63に記載のシステム。
  65. 前記マークアップ言語ファイルが、前記クライアントにおける会議用ホワイトボード、プレゼンテーション、アジェンダ、スプレッドシート、およびドキュメントから成る群から選択されている、
    請求項63に記載のシステム。
  66. 前記サーバが、共用データ構造を名前空間に関連付けている、
    請求項61に記載のシステム。
  67. 前記サーバが、
    (a)クライアントにおいて前記共用データ構造についてのオペレーションをリアルタイムでモニタしており、
    (b)前記クライアントにおいて前記共用データ構造中の変更を検出し、
    (c)ラッパを呼び出し、前記オペレーションをエンコードする、
    請求項61に記載のシステム。
  68. 前記サーバが、ドキュメント・オブジェクト・モデル(DOM)に従って前記共用データ構造を操作しモデル化するように構成されかつ制御されている、
    請求項67に記載のシステム。
  69. 前記サーバが、データ構造を個別のクライアントに同期させるように構成されかつ制御されている、
    請求項68に記載のシステム。
  70. 前記システムが、ラップしたDOMImplementation アプリケーションからDOMオブジェクトを生成するように構成されかつ制御されている、
    請求項68に記載のシステム。
JP2004237524A 2003-08-20 2004-08-17 1台のサーバに格納された共用データ構造について複数のワークステーションが協働する方法およびシステム Pending JP2005071356A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/644,170 US20050044145A1 (en) 2003-08-20 2003-08-20 Collaboration method and system

Publications (1)

Publication Number Publication Date
JP2005071356A true JP2005071356A (ja) 2005-03-17

Family

ID=34194018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004237524A Pending JP2005071356A (ja) 2003-08-20 2004-08-17 1台のサーバに格納された共用データ構造について複数のワークステーションが協働する方法およびシステム

Country Status (2)

Country Link
US (1) US20050044145A1 (ja)
JP (1) JP2005071356A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009508231A (ja) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション アプリケーション間でのxmlデータのリアルタイム同期
US9110877B2 (en) 2004-09-30 2015-08-18 Microsoft Technology Licensing, Llc Method and apparatus for utilizing an extensible markup language schema for managing specific types of content in an electronic document
JP2017504104A (ja) * 2013-12-05 2017-02-02 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン グラフ状データ構造の効率的で低遅延の同期のための装置、システムおよび方法
KR20190052759A (ko) * 2017-11-09 2019-05-17 주식회사 한글과컴퓨터 페이지 변경 편집 명령에 기초하여 돔 객체들을 편집하는 웹 문서 편집 장치 및 이의 동작 방법

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108483B2 (en) * 2004-01-30 2012-01-31 Microsoft Corporation System and method for generating a consistent user namespace on networked devices
US20050218739A1 (en) * 2004-04-01 2005-10-06 Microsoft Corporation System and method for sharing objects between computers over a network
US7954050B2 (en) * 2004-06-25 2011-05-31 Icesoft Technologies Canada Corp. Systems and methods for rendering and increasing portability of document-based user interface software objects
US7730394B2 (en) * 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7617234B2 (en) * 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) * 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7877460B1 (en) * 2005-09-16 2011-01-25 Sequoia International Limited Methods and systems for facilitating the distribution, sharing, and commentary of electronically published materials
JP4859198B2 (ja) * 2005-12-22 2012-01-25 キヤノン株式会社 情報処理装置、情報処理方法、プログラム、記憶媒体
US8161457B2 (en) * 2007-03-06 2012-04-17 International Business Machines Corporation Detection of errors caused by interactions of independent software vendor code with host code
US8453136B1 (en) * 2007-03-06 2013-05-28 Cadence Design Systems, Inc. Change tracking and incremental synchronization of EDA design and technology data
US8499238B2 (en) 2007-07-11 2013-07-30 International Business Machines Corporation Manipulating design models by editing generated reports
US20090144654A1 (en) * 2007-10-03 2009-06-04 Robert Brouwer Methods and apparatus for facilitating content consumption
US7904515B2 (en) * 2007-10-09 2011-03-08 International Business Machines Corporation Solution for managing multiple related discussion threads in an online collaboration environment
US20100306642A1 (en) * 2007-11-23 2010-12-02 Koninklijke Philips Electronics N.V. Co-browsing (java) scripted html documents
US9436927B2 (en) * 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
US7979451B2 (en) * 2008-03-19 2011-07-12 International Business Machines Corporation Data manipulation command method and system
US7979470B2 (en) * 2008-03-19 2011-07-12 International Business Machines Corporation Data manipulation process method and system
US8843816B2 (en) * 2008-04-25 2014-09-23 Microsoft Corporation Document collaboration by transforming and reflecting a document object model
US20110010629A1 (en) * 2009-07-09 2011-01-13 Ibm Corporation Selectively distributing updates of changing images to client devices
US20110258538A1 (en) * 2010-03-31 2011-10-20 Heng Liu Capturing DOM Modifications Mediated by Decoupled Change Mechanism
FR2992445B1 (fr) * 2012-06-22 2014-07-04 Snecma Procede de synchronisation de donnees d'algorithmes de calculateurs asynchrones d'aeronef
US9613011B2 (en) 2012-12-20 2017-04-04 Cable Television Laboratories, Inc. Cross-reference of shared browser applications
US9639623B2 (en) * 2012-12-20 2017-05-02 Cable Television Laboratories, Inc. Method for remotely controlling a video playing within a first web page at a first device from a second device using a document object model
US9946691B2 (en) 2013-01-30 2018-04-17 Microsoft Technology Licensing, Llc Modifying a document with separately addressable content blocks
US9471556B2 (en) 2013-01-30 2016-10-18 Microsoft Technology Licensing, Llc Collaboration using multiple editors or versions of a feature
CN103532829A (zh) * 2013-09-03 2014-01-22 国家电网公司 一种基于xmpp协议的即时通信系统电子白板接入方法
CN103761092B (zh) * 2014-01-20 2017-01-11 中国科学院软件研究所 一种基于知识社群的在线源码协同分析和分享方法及装置
US9940311B2 (en) * 2014-03-03 2018-04-10 International Business Machines Corporation Optimized read/write access to a document object model
US11074273B2 (en) * 2014-03-07 2021-07-27 International Business Machines Corporation Framework for continuous processing of a set of documents by multiple software applications
US9785637B2 (en) * 2014-03-18 2017-10-10 Google Inc. System and method for computing, applying, and displaying document deltas
CN109753610A (zh) * 2019-01-29 2019-05-14 百度在线网络技术(北京)有限公司 技能的分享方法和装置
US11386395B1 (en) 2020-06-29 2022-07-12 Asana, Inc. Systems and methods to generate agendas for one-on-one meetings
US11282036B1 (en) * 2020-07-28 2022-03-22 Asana, Inc. Systems and methods to generate agendas for group meetings
US11995129B2 (en) * 2021-02-16 2024-05-28 Radical Hq Limited System and method for annotating website content

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5758150A (en) * 1995-10-06 1998-05-26 Tele-Communications, Inc. System and method for database synchronization
JP3610718B2 (ja) * 1997-01-31 2005-01-19 富士通株式会社 電子会議システム
US6029171A (en) * 1997-02-10 2000-02-22 Actioneer, Inc. Method and apparatus for group action processing between users of a collaboration system
US6425016B1 (en) * 1997-05-27 2002-07-23 International Business Machines Corporation System and method for providing collaborative replicated objects for synchronous distributed groupware applications
US6192394B1 (en) * 1998-07-14 2001-02-20 Compaq Computer Corporation Inter-program synchronous communications using a collaboration software system
US6321252B1 (en) * 1998-07-17 2001-11-20 International Business Machines Corporation System and method for data streaming and synchronization in multimedia groupware applications
US8006177B1 (en) * 1998-10-16 2011-08-23 Open Invention Network, Llc Documents for commerce in trading partner networks and interface definitions based on the documents
US6295513B1 (en) * 1999-03-16 2001-09-25 Eagle Engineering Of America, Inc. Network-based system for the manufacture of parts with a virtual collaborative environment for design, developement, and fabricator selection
US6446113B1 (en) * 1999-07-19 2002-09-03 Groove Networks, Inc. Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
JP3490369B2 (ja) * 2000-02-15 2004-01-26 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテンツ情報の取得方法、コラボレーション・システム及びコラボレーション・サーバー
WO2002005119A1 (en) * 2000-07-07 2002-01-17 Consilient, Inc. Method and apparatus for providing process-container platforms
AU2001288757A1 (en) * 2000-09-01 2002-03-13 Op40, Inc. System, method, uses, products, program products, and business methods for distributed internet and distributed network services
US7028306B2 (en) * 2000-12-04 2006-04-11 International Business Machines Corporation Systems and methods for implementing modular DOM (Document Object Model)-based multi-modal browsers
US6801604B2 (en) * 2001-06-25 2004-10-05 International Business Machines Corporation Universal IP-based and scalable architectures across conversational applications using web services for speech and audio processing resources
US20040103147A1 (en) * 2001-11-13 2004-05-27 Flesher Kevin E. System for enabling collaboration and protecting sensitive data
US20040003043A1 (en) * 2002-06-20 2004-01-01 International Business Machines Corporation Remote control of document objects in a collaborative environment
US20040177094A1 (en) * 2003-03-06 2004-09-09 Sun Microsystems, Inc. Association of application specific code with nodes of a document object model using extensions to an XML schema
US20040230893A1 (en) * 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with node privileges

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110877B2 (en) 2004-09-30 2015-08-18 Microsoft Technology Licensing, Llc Method and apparatus for utilizing an extensible markup language schema for managing specific types of content in an electronic document
JP2009508231A (ja) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション アプリケーション間でのxmlデータのリアルタイム同期
JP2017504104A (ja) * 2013-12-05 2017-02-02 フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン グラフ状データ構造の効率的で低遅延の同期のための装置、システムおよび方法
KR20190052759A (ko) * 2017-11-09 2019-05-17 주식회사 한글과컴퓨터 페이지 변경 편집 명령에 기초하여 돔 객체들을 편집하는 웹 문서 편집 장치 및 이의 동작 방법
KR102000542B1 (ko) * 2017-11-09 2019-07-16 주식회사 한글과컴퓨터 페이지 변경 편집 명령에 기초하여 돔 객체들을 편집하는 웹 문서 편집 장치 및 이의 동작 방법

Also Published As

Publication number Publication date
US20050044145A1 (en) 2005-02-24

Similar Documents

Publication Publication Date Title
JP2005071356A (ja) 1台のサーバに格納された共用データ構造について複数のワークステーションが協働する方法およびシステム
Rezayat The enterprise-web portal for life-cycle support
CA2625184C (en) Remote read-write access to disparate data stores
Leggett et al. Viewing Dexter with open eyes.
EP1601164B1 (en) WEB service application protocol and SOAP processing model
US7225425B2 (en) Rapid application integration
US9436700B2 (en) Methods and program products for communicating file modifications during a collaboration event
Hughes et al. MetaWeb: bringing synchronous groupware to the World Wide Web
JP2003505760A (ja) ダイナミクス・マネージャを備えたコンピュータ・システムによるアクティビティに基づくコラボレーションのための方法及びその装置
WO2008134894A1 (en) Xml push and remote execution of a wireless application
Gross et al. Sens-ation: a service-oriented platform for developing sensor-based infrastructures
Milosavljević et al. Software architecture of distributed client/server library circulation system
US20040163037A1 (en) System and method for invoking WebDAV methods via non-WebDAV protocols
CN101952815A (zh) 基于姿态的协作
Koch The collaborative multi-user editor project IRIS
Grundy et al. Building multi-device, component-based, thin-client groupware: issues and experiences
Milosavljevic et al. Software architecture of distributed client/server library circulation system
El Saddik et al. JASMINE: Java application sharing in multiuser interactive environments
WO2014138346A1 (en) Digital notification enhancement system
US20140047459A1 (en) Integrating software solution units
Fox et al. Community grids
US20060026285A1 (en) Systems and methods for transmitting electronic data
Krebs et al. Supporting collaboration in heterogeneous environments
Mervyn et al. A ‘plug-and-play’computing environment for an extended enterprise
Wang et al. Enhancing IoT Service Interface Through AsyncAPI with Extensions

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080304

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080304

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20080304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20080424

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081028