JP2011510397A - 構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション - Google Patents

構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション Download PDF

Info

Publication number
JP2011510397A
JP2011510397A JP2010543112A JP2010543112A JP2011510397A JP 2011510397 A JP2011510397 A JP 2011510397A JP 2010543112 A JP2010543112 A JP 2010543112A JP 2010543112 A JP2010543112 A JP 2010543112A JP 2011510397 A JP2011510397 A JP 2011510397A
Authority
JP
Japan
Prior art keywords
client
data element
structured data
client system
update
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.)
Granted
Application number
JP2010543112A
Other languages
English (en)
Other versions
JP5369116B2 (ja
Inventor
ジー.ホーキング ロバート
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.)
Microsoft Corp
Original Assignee
Microsoft 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40851572&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2011510397(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2011510397A publication Critical patent/JP2011510397A/ja
Application granted granted Critical
Publication of JP5369116B2 publication Critical patent/JP5369116B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • H04L65/403Arrangements for multi-party communication, e.g. for conferences
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーションを提供するためのツールおよび技術を開示する。クライアントシステムにより、コラボレーションのために使用可能なパブリッシュされたデータ要素のライブラリを提供するユーザーインターフェースを提供することができる。クライアントは、選択されたデータ要素を要求することができる一方、選択されたデータ要素に関連する一意的な識別子を参照する。他によるコラボレーションのためにデータ要素をパブリッシュするそれらのクライアントは、候補の構造化されたデータ要素の表現を提供するユーザーインターフェースを提供して、パブリッシュのために選択されたそれらのデータ要素の選択を受信することができる。パブリッシュするクライアントは、パブリッシュのための選択されたデータ要素を送信することができる。クライアントシステムは、サーバーまたはコラボレーションサービスと双方向通信することができて、サーバーまたはコラボレーションサービスは、クライアントが他によるアクセスのためにパブリッシュした構造化されたデータ要素を受信することができる。サーバーは、パブリッシュされたデータ要素のそれぞれの一意的な識別子を定義することができて、構造化されたデータ要素および対応する一意的な識別子を種々のクライアントシステムに送信することができる。

Description

本発明は、マルチクライアントのコラボレーションに関し、より詳細には、構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーションに関する。
様々の理由があって、コンピューターシステムおよびアプリケーションのユーザーは、お互いから、より地理的に引き離されるか一面に分布させられるかになっている。そのような距離または分離にもかかわらず、これらのユーザーは、彼らが取り組んでいるかもしれない種々のプロジェクトにおいて共同の作業をしたいことがある。種々のアプリケーションおよびユーティリティにより、コラボレーションをある程度支援することができる。他方において、この分野におけるさらなる開発および改良が進行中である。
構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーションを提供するツールおよび技術を、開示する。クライアントシステム(「クライアント」)により、コラボレーションをするために使用可能なパブリッシュされたデータ要素のライブラリを提供するユーザーインターフェースを提供することができる。クライアントは、選択されたデータ要素を要求することができ、選択されたデータ要素に関連させた一意的な識別子を参照する。他によりコラボレーションをするためにデータ要素をパブリッシュするクライアントは、候補の構造化されたデータ要素の表現を提供するユーザーインターフェースを提供して、パブリッシュするために選択されたデータ要素の選択を受信することができる。次に、パブリッシュするクライアントは、パブリッシュするために選択されたデータ要素を送信することができる。クライアントシステムは、サーバーまたはコラボレーションサービスと双方向通信することができて、クライアントが他によるアクセスのためにパブリッシュした構造化されたデータ要素を受信することができる。サーバーは、パブリッシュされたデータ要素に対してそれぞれ一意的な識別子を定義することができて、構造化されたデータ要素および対応する一意的な識別子を種々のクライアントシステムへ送信することができる。
上述の主題を、方法、コンピューター制御装置、コンピューター処理、コンピューターシステムとして、または例えばコンピューター読み取り可能な媒体等の製造品としてさらに実装することができる。これらおよび種々の他の特徴は、以下の「発明を実施するための形態」を読むことにより、および添付の図面を精査することにより明らかになるであろう。
本発明の概要を提供して、以下の「発明を実施するための形態」においてさらに説明する簡略化された形において概念の選択を導入する。本発明の概要は、主張される主題の重要な特徴または主要な特徴を識別することを意図せず、本発明の概要を使用して、主張される主題の範囲を制限することを意図してもいない。さらに、主張される主題は、本開示のあらゆる部分に示されるあらゆるまたは全ての不利益を解決する実装に制限されない。
構造化されたデータ要素にアクセスして更新するマルチクライアントのコラボレーションを可能にするシステム環境またはオペレーティング環境を例示するブロック図である。 コラボレート・クライアント・システムがサーバーからの構造化されたマスターデータにアクセスできるようにする処理のブロック、データおよびフローを組み合わせた図である。 クライアントシステムがローカルな指定を構造化されたデータ要素に適用できるようにする処理のブロック、データおよびフローを組み合わせた図である。 異なるクライアントテーブル内のマスター・テーブル・データに対してなされる進行中の変更または修正を操作するための処理のブロック・データ・フローの組み合わせ図である。 2つ以上のクライアントテーブル構造間において共有されるマスターテーブル構造の例を例示するブロック図である。 1つのクライアントテーブルがマスターテーブルから実行されたデータを変更するときに起こることがある更新を例示するブロック図である。 1つのクライアントテーブルからの更新のためにマスターテーブルから伝わることができる更新を例示するブロック図である。
以下の詳細な説明は、構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーションを可能にするための技術に向けられる。用語の「構造化されたデータ要素」を、本明細書において、可能性のある実装を制限することなしに、全体にわたる構造的なスキームのコンテキスト内に生じるデータ要素を引用するのに使用する。例えば、上記の構造的なスキームを、スプレッドシートまたはそのコンポーネント内に実装することができる。これらのスプレッドシートコンポーネントは、ワークブック、テーブル、行、列、セル、またはその一部分を含むことができる。可能性のある実装を制限することなしに、単に本説明を容易にするために、以下の階層を、例示的なスプレッドシートの専門用語を参照して示す。
Figure 2011510397
本明細書において説明される主題が、コンピューターシステム上のオペレーティングシステムおよびアプリケーションプログラムの実行と共に実行するプログラムモジュールの一般的コンテキストにおいて示される一方、当業者は、他の実装を、他のタイプのプログラムモジュールと組み合わせて行うことができることを認識するであろう。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、および個別のタスクを実行する、または個別の抽象データ型を実装する他のタイプの構造を含む。さらに、当業者は、本明細書において説明される主題を、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサ系のまたはプログラム可能な家庭用電化製品、ミニコンピューター、メインフレームコンピューター等を含む他のコンピューターシステム構成において実践することができることを、理解するであろう。
以下の詳細な説明において、本明細書の一部を形成する添付の図面を参照して、図面は、具体的な実施形態または実施例の実例として示される。図面を参照すると、いくつかの図面を通して同様の番号が同様の要素を表して、構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション用のツールおよび技術の側面を、説明する。
図1は、一般に100により示され、複数のクライアントシステムが共同で構造化されたデータ要素にアクセスして更新することを可能にするシステムまたは操作環境を例示する。これらのシステム100は、1つまたは複数のサーバーシステム102を含むことができて、図1が2台のサーバー102aおよび102n(まとめてサーバー102)の例を提供する。しかし、本明細書において説明の実装は、あらゆる数のサーバーを含むことができる。
サーバー102は、1つまたは複数のクライアントシステム104と通信することができて、図1が104aおよび104n(まとめてクライアントシステム104)により示すような2台のクライアントシステムの例を提供する。サーバーおよびクライアントシステムは、1つまたは複数のネットワーク106上でお互いに通信することができて、ネットワーク106は、あらゆる適切なネットワーク技術および信号送信技術を使用して構成されるローカルエリアまたはワイドエリアのネットワークを表現することができる。ネットワーク106は、例えばインターネット等を含むことができる。これらのネットワークは、無線および/または有線の通信性能を提供することができる。
サーバーおよびクライアントは、適切なリンク108を介してネットワーク106と通信することができる。図1は、それぞれ、サーバー102a、102nおよびクライアント104a、104nと関連するリンク108a、108b、108c、および108nを例示する。これらのリンク108は、サーバーおよびクライアントシステムがネットワークに接続することを可能にするハードウェアおよび/またはソフトウェアコンポーネントを表現する。これらのコンポーネントには、ネットワークアダプター、プロトコルスタック等を含むことができる。
サーバー、クライアントシステムおよびネットワークを描くために図1において使用されるグラフィカルな要素は、単に例示を容易にするためであって、本明細書において説明の可能性のある実装を制限するために選択されるものではない。さらに詳細には、図1は、クライアントシステム104aが、ラップトップ、ノートブック、または他のモバイルシステムとして特徴づけられるかどうかに関わらず、ポータブル・コンピューティング・システムである例を示す。クライアントシステム104nは、固定またはデスクトップのシステムを表現する。しかしながら、本明細書の説明は、制限されないが、ワイヤレスPDA(personal digital assistants)、スマートフォン等を含む他の形式のクライアントシステムを意図する。
サーバー102をより詳細に参照すると、サーバーは、個別の実装に対して適切であるとして選択される個別のタイプまたはアーキテクチャを有することができる1つまたは複数のプロセッサ110を含むことができる。プロセッサ110は、プロセッサ110との互換性のために選択される1つまたは複数のバスシステム112に連結することができる。
サーバー102は、コンピューター読み取り可能な記憶媒体114の、1つまたは複数のインスタンスを含むことができて、バスシステム112に接続される。バスシステムは、プロセッサ110がコンピューター読み取り可能な記憶媒体114に、またはコンピューター読み取り可能な記憶媒体114から、コードおよび/またはデータを読み込むことを可能する。媒体114は、制限されないが、半導体、磁気材料、光学等を含むあらゆる適切な技術を使用して実装される記憶要素を表現できる。媒体114は、RAM、ROM、フラッシュ、または他のタイプとして分類されるかどうかに関わらず、メモリコンポーネントを含むことができて、さらにハードディスクドライブを表現できる。
記憶媒体114は、命令の1つまたは複数のモジュール116を含むことができて、その命令は、プロセッサ110にロードされて実行されると、構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーションを可能にするクライアントシステムに対する、サービスの組の提供をサーバー102にさせる。本説明を通して詳述されるように、これらのサーバー側のコラボラティブサービスにより、クライアントシステムにおける1人または複数のユーザー(後の図面に示す)が、マスターテーブル118内に記憶される構造化されたデータにアクセスすることを可能にすることができる。本説明は、スプレッドシートアプリケーションのコンテキストにおいて構造化されたデータに関する例を提供するが、本明細書に説明される原理は、本明細書の説明の範囲および精神を逸脱することなく、他の用途に拡張することができる。一般に、コラボラティブ・サービス・モジュール116は、点線120で示すように、マスターテーブル118へのアクセス、およびマスターテーブル118との間のデータの転送を管理する。
クライアントシステム104をより詳細に参照すると、クライアントシステムは、1つまたは複数のプロセッサ122を含むことができる。これらのプロセッサは、クライアントシステムに対して適切であるとして選択され、サーバー内のプロセッサ110と同じタイプまたはアーキテクチャを有しても有しなくても良い。プロセッサ122は、プロセッサ122との互換性のために選択される1つまたは複数のバスシステム124に連結することができ、従って、サーバー内のプロセッサ112と同じタイプまたはアーキテクチャをであってもなくても良い。
クライアントシステムは、バスシステム124に連結されるコンピューター読み取り可能な記憶媒体126の1つまたは複数のインスタンスを含むことができる。バスシステム124は、プロセッサ122がコンピューター読み取り可能な記憶媒体126に、またはコンピューター読み取り可能な記憶媒体126から、コードおよび/またはデータを読み込むことを可能する。一般に、記憶媒体114の全体的な説明は、記憶媒体126に適用されるため、ここでは繰り返さない。
記憶媒体126は、命令の1つまたは複数のモジュール128を含むことができて、その命令は、プロセッサ122にロードされて実行されると、クライアントシステム102に、サーバー側モジュール116と協働してコラボラティブサービスを提供させる。本説明を通して詳述されるように、これらのクライアント側のコラボラティブサービスにより、クライアントシステムのユーザーが、構造化されたデータをマスターテーブル118からクライアント側の、すなわちローカルなテーブル130にロードすることを可能にすることができる。一般に、コラボラティブ・サービス・モジュール128は、点線132で示すように、クライアントテーブル130へのアクセス、およびクライアントテーブル130との間のデータの転送、を管理する。
図1に例示するように、サーバー側サービス116およびクライアント側サービス128の協働により、ワークフローが、点線134により一般に表現されるように、サーバーとクライアントシステムとの間を通ることを可能にすることができる。後に続く図面および説明は、コラボレーションワークフロー134について詳述されるが、これらのワークフローは、一般的に、コマンドフロー、データフロー、およびサーバー102においてホストされる構造化されたデータをコラボレートするクライアントシステム104(および関連するユーザー)に関する他の処理を表す。
図1は、サーバー102nおよびクライアントシステム104nのコンポーネントについて詳述するが、これらの説明は、サーバー102aおよびクライアントシステム104aについて同様に適用できる。これらの説明はまた、図1に示されないが本明細書において提供される技術の実装に含むことができるサーバーまたはクライアントシステムにも適用できる。
なお、図1は、サーバーシステムおよびクライアントシステムを含む例示の実装を示すが、他の実装が可能である。例えば、サーバーにより実行されるものとして本明細書に説明される機能性を、クライアントに分配することができる。より具体的には、クライアントには、他のクライアントと通信するサービスが含まれて、本明細書に説明されるサーバー機能を実行することができる。このようにして、サーバー機能を、クライアント自体へ分散および分配することができる。
図1に示すようなシステム環境または操作環境100を説明したが、次に、図2に示す構造化されたデータ要素にアクセスして更新するマルチクライアントのコラボレーションに関する処理フローおよびデータフローの説明に進み、議論する。特に、図2は、一般に200により示され、クライアントシステムが、サーバーからの構造化されたマスターデータにコラボラティブにアクセスすることを可能にする処理フローおよびデータフローを例示する。可能性のある実装を制限するのではなく、説明を容易にするために、図2は、前の図面から参照符号を繰り越して、同様の要素を参照する。
図2は、クライアントテーブル130の例を繰り越して、クライアントテーブル130aの例が図1からのクライアントシステム104aと関連して、クライアントテーブル130nの例がクライアントシステム104nと関連する。さらに、図2は、サーバー102と関連するマスターテーブル118の例を繰り越す。クライアント側のコラボラティブサービス128aおよび128nのそれぞれのインスタンスが、クライアントテーブル130aおよび130nを管理して、サーバー側のコラボラティブサービス116が、マスターテーブル118を管理する。さらに、図2は、コラボレーションワークフロー134のインスタンスを提供して、ワークフロー134aがクライアント側のコラボラティブサービス128aとの間を行き来して、ワークフロー134nがクライアント側のコラボラティブサービス128nとの間を行き来する。図2を見ると理解されるように、図2に示す種々のデータフローを、コラボレーションワークフロー134aおよび134nについてさらに詳述する。
処理フローおよびデータフロー200をより詳細に参照すると、ブロック202は、1つまたは複数の構造化されたデータ要素がクライアントシステムからサーバーへパブリッシュされるように、ユーザーが要求することを可能にするユーザーインターフェース(UI)を提供するクライアントシステム(例えば、クライアント側サービス128nに関連するクライアントシステム104n)を表す。そのような構造化されたデータ要素の例は、テーブルを含むことができて、テーブルは、行と列とにより配列されて、その交点に定義されるセルを有するデータ構造の集合を表す。これらのセルは、ユーザーにより選択またはプログラムされるようなデータ、式、またはラベルを含むことができる。ブロック202は、明示的なユーザーコマンドに応答してUIを提供することを含むことができる、または、ある組の条件に応答して自動的にUIを提供することを含むことができる。
ブロック202に提供されるUIに応答して、ユーザー204は、1つまたは複数のテーブルをパブリッシュするために選択することができる。例えば、ユーザーは、それぞれ異なる機能を実行するための複数の異なるテーブルまたはワークシートをプログラムして、1つまたは複数のこれらのテーブルまたはワークシートをパブリッシュするために選択し、他のユーザーがこれらのテーブルまたはワークシートを用いた作業で共同の作業をすることを可能にする。ユーザーは、同じワークシートから複数のテーブルをパブリッシュすることを選択することができる。ユーザーは、テーブルまたはワークシートの全体をパブリッシュするために選択しても良いし、その一部分を選択しても良い。図2では、そのようなテーブルの選択を206で示し、処理ブロック208は、これらの選択206を受信することを表現する。例えば、ブロック208には、マウスのクリック、選択、またはハードウェアおよび/もしくはソフトウェアにより搬送されるような適切な信号および/またはイベントで表されるユーザーからの他の応答の表示を受信することを含むことができる。
ブロック210は、ユーザーがパブリッシュのために選択したテーブルを送信することまたは伝送することを表現する。図2では、これらの選択されたテーブルを212で示す。図2に明示的には示されないが、ブロック202、208および210は、あらゆる回数繰り返されて、ユーザーが、他のユーザーにパブリッシュするために構造化されたデータの複数のインスタンスを選択することを可能にすることができる。
サーバー側サービス116に関連するサーバーにおいて、ブロック214は、1つまたは複数のクライアントシステムに、テーブル(例えば、212)がパブリッシュされて実行に使用できるという通知を送信することを表現する。可能性のある実装を制限することなく、本明細書において使用される用語の「パブリッシュ」は、テーブルを共通の場所またはライブラリに置くことを引用することができる。ただし、あらゆる数の他のクライアント(および/または対応するユーザー)が、これらのパブリッシュされたテーブルを介して閲覧できて、1つまたは複数のこれらのテーブルをコラボレーションするために選択することができる。実装において、パブリッシュされたテーブルのこれらの場所またはライブラリは、不定の数のクライアントまたはユーザーがライブラリにアクセスして、コラボレーション用のテーブルの共有されたコピーを取得することができるという意味において、制約がないとすることができる。既定のクライアントがテーブルをパブリッシュするときに、そのクライアントは、最終的に他のどのクライアントがパブリッシュされたテーブルを共有するのか分からないであろう。
図2は、使用可能なテーブルの通知を216により示して、これらのテーブル216は、クライアントサービス128nによりパブリッシュされるようなテーブル212を、他のクライアントサービスおよび関連するクライアントシステムによりパブリッシュされる他のテーブルも同様に、含むことができる。使用可能なテーブル216を、ライブラリへ体系化することができて、パブリッシュされた種々のテーブルへのエントリを含むことができる。
サーバーシステムおよびクライアントシステムは、クライアントシステムにより選択可能な、候補のデータ要素(例えば、上に与えた例示的な階層構造において示すように、テーブル、データコラボレーション構造、またはそのあらゆる部分)の組を体系化する1つまたは複数のプロトコルを定義することができる。これらのプロトコルは、これらの候補のデータ要素のうちのどれが、個別のクライアントシステムにより選択されたのかを識別することができる。例えば、これらのプロトコルにより、候補のデータ要素を体系化し、一意的な識別子を候補のデータ要素のそれぞれと関連付けることができる。可能性のある実装を制限するのではなく、本明細書において容易に参照できるように、本説明は、これらの候補のデータ要素に関連づけられた一意的なデータポイント識別子にをそれぞれ引用する。従って、ブロック214は、これらの識別子のインスタンスを、サーバーシステムからクライアントシステムへパブリッシュされる使用可能なテーブル216内の要素にそれぞれ関連付けることを含むことができる。コラボレーションサービス128および116は、ユーザーが識別子を見ることを明示的に選択しない場合、これらの識別子をユーザーに対して見えないように保持する。加えて、パブリッシュまたはコントリビュートするクライアントに関連するコラボレーションサービス128nは、個別のクライアントによりパブリッシュまたはコントリビュートされるそれらのテーブルに関連する識別子を受信して、これらのパブリッシュおよびコントリビュートされるテーブルへの変更を、後に追跡し一致させることを容易にすることができる。
クライアント側サービス128aに関連する他のクライアントシステム(例えば、104a)において、ブロック218は、テーブル、ワークブック、または他のクライアントによりパブリッシュされ、従ってクライアントシステム104aが実行するのに使用可能である他の構造化されたデータ要素を公開するUIを提供することを表現する。クライアントシステム104aに関連するユーザー220は、このUIをレビューして、UIで提供される1つまたは複数の使用可能な構造化されたデータ要素を選択することができる。図2は、これらの選択を222により示す。
次に、ブロック224は、クライアント・サービス・モジュール128aが、構造化されたデータ要素(例えば、テーブル、ワークシート、行、列、またはそのような構造化されたデータ要素他の構造)の選択をユーザーから受信することを表現する。例えば、ブロック224(上述のブロック208と同様に)は、マウスのクリック、選択、またはハードウェアおよび/またはソフトウェアにより搬送されるような適切な信号および/またはイベントで表現されるユーザーからの他の応答の表示を受信することを含むことができる。
ブロック226は、ユーザーがどのテーブルを選択したかについての表示を、クライアントシステムが送信することを表現する。ユーザーが1つまたは複数のこれらの使用可能なテーブルを選択した後、ブロック226は、228で示すように、ユーザーがどのテーブルまたはデータ要素を選択したかを、サーバーシステムに通知することができる。これらの通知または表示228は、図2に示すように、選択されたデータ要素の識別子を含むことができる。
マスターテーブル118を保持するサーバーシステムにおいて、ブロック230は、クライアントシステムから選択228を受信することを表現する。上記のように、選択228は、選択されたデータ要素に対応する1つまたは複数の識別子を参照する。次に、ブロック232は、選択されたデータ要素をマスターテーブル(例えば、118)から検索することを表現する。ブロック232は、選択228に含まれる入力された識別子をマスターテーブルへのインデックスとして使用することを含むことができる。ブロック234は、選択されたデータ要素を、これらのデータ要素を要求したクライアントシステムに送信することを表現する。図2は、これらの送信されるデータ要素を236により示す。
クライアントシステムにおいて、ブロック238は、ユーザーが以前に選択(すなわち選択222)した要求されたデータ要素を受信することを表現する。図2は、クライアントテーブル130aが、別のクライアントテーブル130nからパブリッシュされるデータ要素を受信する例を例示する。一方において、ここに図3に示すように、あらゆる数のクライアントテーブルが、このクライアントテーブル130nからパブリッシュされるデータ要素を受信することができる。加えて、あらゆる数のクライアントテーブルが、データ要素をパブリッシュして、他のユーザーと共同の作業をすることができる。
制限ではなく、説明を明確にするために、処理フローおよびデータフロー200の説明は、図2に見られるページから離れる参照部分により示されるように、図3へ続く。議論は、図3へ進んで、説明を続ける。
図3は、一般に300により示され、クライアントシステムが、サーバーから受信した構造化されたマスターデータにローカルフォーマットを適用することを可能にする処理フローおよびデータフローを例示する。可能性のある実装を制限するのではなく、説明を容易にするために、図3は、前の図面から参照番号を繰り越して、同様の要素を参照する。
図3に示すように、クライアントテーブル130aが、図2から繰り越される。さらに、図3は、別のクライアントシステムにより保持される別のクライアントテーブル130mを与えるが、この別のクライアントシステムもまた、1つまたは複数のデータ要素をサーバーシステムに要求して受信したと仮定する。図3は、クライアント側のコラボラティブサービス128mを例示して、クライアントテーブル130mを保持している。クライアントテーブル130mが受信したデータ要素は、クライアントテーブル130aが要求して受信したものと同一とすることができる、または同一でないとすることができる。
クライアントテーブル130aを参照すると、図2からの処理は、ブロック302に進み、マスターテーブルから受信したデータ要素をローカルなクライアントテーブル130aにマージすることを表現する。例えば、クライアントテーブル130aは、クライアントテーブル130aに関連するユーザーに個人的なまたはローカルな、あるデータを保持することができて、パブリッシュされたデータ要素のいくつかの要素を要求して、ローカルまたは個人的なデータを増加させることができる。従って、ブロック302は、サーバーシステムから受信したような、パブリッシュされたデータ要素(例えば、図2の236)を、クライアントテーブル130aに記憶されるあらゆるローカル/個人的な情報に統合することを含むことができる。さらに、ブロック302は、これらのデータ要素がクライアントテーブル130aに統合された後、パブリッシュされたデータ要素と共に受け取られるようなあらゆる識別子またはインデックスの情報を保持することを含むことができる。以下にさらに説明するように、識別子またはインデックスの情報により、クライアントテーブル130a内にローカルになされる変更の追跡を可能にすることができて、これらの変更をサーバーシステムに戻して報告することおよびその変更を複数のコラボレートするクライアントシステムにわたり伝えることを可能にすることができる。
ブロック304は、あらゆるローカルなフォーマッティング、ソート、フィルタリング、またはローカルなユーザー(例えば、220)により要求されるような他のローカルなカスタマイズを適用することを表現する。例えば、ローカルなユーザーは、自分のデータが一定の色、境界線、影等により提供されるよう要求することができる。別の例において、ローカルなユーザーは、コマンドを発行して、ローカルなテーブルを、ある方法でソートすることができる。さらに別の例において、ローカルなユーザーは、コマンドを発行して、あるデータをローカルなテーブル内においてフィルタリングまたは非表示にすることができる。
ブロック306は、ローカルなテーブルをユーザー220に提供すること、あらゆるローカルに指定されるフォーマッティング、フィルタリング、ソート、または他の操作をローカルなテーブルに適用させること、およびサーバーシステムから受信したあらゆるマスターデータ要素を統合させることを表現する。ブロック306は、マスターデータ要素をハイライトすることまたは別のやり方で示すことを含むことができて、どのデータがローカルであるか、どのデータが外部であるか(すなわち、サーバーシステムからなのか他のクライアントシステムからなのか)を、ローカルなユーザー220が容易に把握できるようにする。図3は、308により、ローカルな指定310(例えば、フォーマッティング、ソート、フィルタリング、または同様のカスタマイズ)に応答して、ユーザー220に提供されるようなローカルなテーブルを示す。
クライアントテーブル130mおよび関連するコラボレーションサービス128mを他に受信することを参照すると、ブロック312、314、および316は、ブロック302、304、および306において説明した処理に対応して、他のローカルなクライアントテーブル130mに対して実行される。特に、ブロック314には、フォーマッティング、ソート、フィルタリング、または、ユーザー320により指定されるローカルな指定またはコマンド318に応答して、ローカルなクライアントテーブル130mをローカルにカスタマイズすること、を含むことができる。図3では、322にて、ユーザー320に対して提供されるようなローカルなテーブルを示す。しかし、ローカルなクライアントテーブル130aに対するローカルな指定310は、ローカルなクライアントテーブル130mに対するローカルな指定318とは異なり得る。このようにして、クライアントシステム(より具体的には、サービス128aおよび128m)では、異なるユーザー220および320が、自分たちのローカルなテーブル130aおよび130mを自分たちの指定に従って異なってカスタマイズすることを可能にすることができる。例えば、ユーザー220および230は、自分たちのローカルなテーブル130aおよび130mを異なってソートまたはフィルタリングすることができる。
点線324および326で示すように、ローカルなテーブル130aおよび130mには、サーバーシステムから受け取られた少なくともいくつかのマスターデータ要素を、マスターデータ要素がローカルなテーブルに統合された状態において含むことができる。識別子は、ローカルなテーブル内においてマスターデータ要素を識別して体系化する働きをすることができる。可能性のある実装を制限するのではなく、例示を容易にするために、処理フローおよびデータフロー300の説明は、図3に示すページから離れる参照部分により示されるように、図4に続く。
図4は、それぞれ異なるクライアントテーブル内のマスター・テーブル・データに対してなされる進行中の変更または修正を操作することに関連する処理フローおよびデータフロー400を例示する。さらに、図4は、それらの変更または修正をマスターテーブルに統合すること、およびそれらの変更を様々な異なるクライアントシステムにわたり伝えることを例示する。可能性のある実装するのではなく、説明を容易にするために、図4では、前の図面から参照番号を繰り越し、同様の要素を参照する。
図3からのページから離れる参照部分を始まりとし、ブロック402は、1つまたは複数のコマンドをユーザー(例えば、ユーザー220)から受信することを表現する。これらのコマンドは、一般に、ローカルデータまたは個人的データを対象とするかに関わらないクライアントテーブル130aに対するあらゆる更新、または、サーバーシステムから受け取られたマスターデータ対するあらゆる更新、を表すことができる。図4では、これらのコマンドを一般に404で示す。
ユーザーがマスターテーブルから受信したデータ要素を更新したインスタンスにおいて、ブロック406は、マスター・テーブル・データに対する更新をサーバーシステムに送信することを表現する(例えば、サービス116)。図4は、これらの更新を408により示し、これらの更新は、クライアントレベルで変更されたデータ要素に対応する識別子を参照することができる。更新408は、識別子、関係する列への参照、および新しい値が含まれるそれぞれの変更記録を含むことができる。変更は、効率化のためにバッチ処理することができる。さらに、変更は、クライアントがネットワークから切断されるとき、またはむしろオフラインのモードにあるときに、バッチ処理をすることができる。
サーバーシステムにおいて、ブロック410は、マスターテーブルに対する更新408を受信することを表現する。次に、ブロック412は、クライアントシステムから受信したこれらの更新をマスターテーブルにマージすることを表現する。ブロック412は、更新408から識別子を取り出すこと、示される識別子に対応す、マスターテーブルの一部分(例えば、118)にアクセスすること、およびマスターテーブルの適切な部分を更新することを含むことができる。
コラボラティブサービスコンポーネント128mを参照すると、このサービスコンポーネントは、別のユーザー(例えば、320)に、このコンポーネント128mにより管理されるクライアントテーブル(例えば、図3の130m)を更新することを可能にすることができる。より具体的には、ブロック414は、更新コマンドをユーザー320から受信することを表現して、図4は、これらのコマンドを416により示す。コマンド416に応答して、サービスコンポーネント128mは、クライアントテーブルを適宜更新することができる。ブロック402について上に議論したように、これらの更新は、ローカル/個人的データに対する更新を、クライアントテーブルに包含されるマスターデータに対する更新も同様に、含むことができる。ユーザーコマンドにより、結果としてマスターデータ要素に対する変更がなされる場合、ブロック418は、マスターデータ要素が結び付けられるサーバーシステムに対するあらゆるそのような更新を送信することを表現する。図4は、これらの更新を420により示す。
サーバー側コラボレーションサービス116に戻り、(上述の)ブロック410は、クライアントサービスコンポーネント128aからの更新だけでなく、クライアントサービスコンポーネント128mからの更新も受信することを含むことができる。言い換えると、ブロック410は、更新408および/または更新420を、図4には示されない他のクライアントからの更新も同様に、受信することを含むことができる。加えて、ブロック412は、これらの更新を、サーバーシステムにより保持されるマスターテーブルに統合することまたはマージすることを含むことができる。識別子は、この統合することまたはマージすることを、マスターデータのどの部分がクライアントシステムにより変更されたのかを指定することによって、容易にすることができる。全てのクライアントシステムにわたってまとめられた、これらの識別子は、マスターデータのどの部分を更新してクライアントに再パブリッシュするのかを示すであろう。
ブロック422は、マスターテーブルに対する更新を異なるクライアントにわたってパブリッシュすることを表現する。より具体的には、クライアントサービスコンポーネント128mが、サーバーシステムに結び付けられる、あるマスターデータを変更したと仮定すると、ブロック422は、これらの変更または更新をクライアントサービスコンポーネント128aにパブリッシュすることを含むことができる。さらに、ブロック422は、これらの変更を、マスターデータをサブスクライブしたあらゆる他のクライアントシステムにパブリッシュすることを含むことができる。HTTPのコンテキストにおいて、ブロック422は、クライアントからのポーリングに応答するサーバー側サービスを含むことができる。
同様にして、クライアントサービスコンポーネント128aがサーバーシステムに結び付けられる、あるマスターデータに変更を加えた場合、ブロック422は、この変更を、クライアントサービスコンポーネント128mおよびマスターデータをサブスクライブしているあらゆる他のクライアントシステムにパブリッシュすることを含むことができる。図4は、424において、クライアントサービスコンポーネント128aへパブリッシュされるマスターテーブル更新を示して、426において、クライアントサービスコンポーネント128mへパブリッシュされるマスターテーブル更新を示す。これらの更新は、個々の変更により影響を受けるマスターテーブルの識別子を参照することができる。
クライアントサービスコンポーネント128aにおいて、ブロック428は、他のクライアントシステムによりマスター・テーブル・データに対してなされる変更を示すテーブル更新424を受信することを表現する。次に、ブロック430は、これらの更新をローカルなクライアントテーブル(例えば、図3の130a)にマージすることを表現する。識別子パラメーターは、マスター・テーブル・データのどの部分を更新するのかをクライアントサービスコンポーネント128aが判定することを可能することにより、ブロック430を容易にすることができる。ブロック432は、更新されたマスター・テーブル・データをユーザー220に提供することを表現する。ブロック432は、更新されたマスター・テーブル・データを、クライアントシステムにより保持されるあらゆるローカルデータまたは個人的データと共に提供することを含むことができる。
他のクライアントサービスコンポーネント128mを参照すると、一般に、ブロック434、436、および438は、ブロック428、430、および432に対応する。従って、ブロック434が、マスターテーブル更新426を受信することを表現して、ブロック436が、これらの更新をクライアントシステムにおけるローカルデータ表示にマージすることを表現して、ブロック438が、これらのマージされた更新をクライアントシステムのユーザーに対して提供することを表現する。
両方のクライアントシステムにおいて、クライアントサービスコンポーネント128aおよび128mは、ユーザー220および320が、彼らに提供されるデータ要素と双方向通信し続ける限り、図4に示すブロックを無期限に繰り返すことができる。従って、クライアントサービスコンポーネント128aは、矢印440により示されるように、ブロック402、406、428、430、および432をあらゆる回数繰り返すことができる。同様に、クライアントサービスコンポーネント128mは、矢印442により示されるように、ブロック414、418、434、436、および438をあらゆる回数繰り返すことができる。
上述の方法において、複数のクライアントシステムは、共有されるデータ要素(例えば、スプレッドシートのテーブル)に、コラボラティブにアクセスすることができる。いくつか場合において、複数のクライアントが、これらの共有されるデータ要素に同時にアクセスすることができる。他の場合において、いくつかのクライアントは、オフライン中になされたあらゆる変更を、次にクライアントがオンラインになるときに一致させることによって、オフラインモードであるとすることができる。更新が、同時に、お互いに順番に、またはお互いに非同期的に、生じることができる。これらのクライアントのどれかは、1つのクライアントによりなされた更新を、同じデータ要素を共有する他のあらゆるクライアントへ伝えることによって、これらの共有されるデータ要素を更新することができる。サーバーシステムは、共有されるデータ要素に割り当てられる識別子を使用して、これらの更新または変更をマージする、または一致させることができる。図2〜4において、処理フロー200、300、および400について説明したが、議論は、次に、図5〜7により示される、構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーションを可能にするための上述の技術の動作例の説明に進む。
図5では、一般に500により示され、2つ以上のクライアントテーブル構造間において共有されるマスターテーブル構造の例を例示する。説明の例として、可能な実装を制限しないが、図5〜7は、前の図面から参照番号を繰り越して、同様の要素を参照することができる。例えば、クライアントサービスコンポーネント128aは、クライアントテーブル130aを管理することができ、マスターサービスコンポーネント116は、マスターテーブル118を管理することができ、クライアントサービスコンポーネント128mは、クライアントテーブル130mを管理することができる。参照および説明の例として、図5は、コラボラティブ・サービス・コンポーネント128aを介してクライアントテーブル130aにアクセスする「スティーブ」という名前の架空のユーザー、およびコラボラティブ・サービス・コンポーネント128mを介してクライアントテーブル130mにアクセスする「ミリアム」という名前の架空のユーザーを例示する。図5〜7において示される例を説明する目的のために、可能な実装を制限しないが、スティーブとミリアムとは、例えば本願発明の特許出願人から利用可能なアプリケーションのEXCEL(登録商標)のファミリ等のスプレッドシート型のアプリケーションを使用していると仮定する。これらの例を挙げているが、本明細書の説明は、これらの個別の製品またはそのバージョンに限定されず、様々な製品および/またはあらゆる個別のベンダーから入手可能なバージョンにおいて実装することができる。
図5は、マスターテーブル118の例を与え、本明細書において「LiveTable」と名付けられ、サーバー(例えば、図1の102)上に実行しているワークブックmaster.Xlsx502を含む。LiveTable118は、ワークブックの残りの部分に基づいていくつかの計算を実行する計算の(すなわち、「Calc」)列504を含むことができる。以下の例において説明するように、calc列は、サーバー上に存在するデータ、および/またはスティーブ、ミリアムおよび他等のコラボレートしているユーザーにより提供されるデータに基づいて値を算出する式を含むことができる。ワークブック502が在庫の追跡および管理のために構成されると仮定すると、ワークブックは、行506の第1の品目に関する情報を与えて、行508の第2の品目に関する情報を与えることができる。列510は、そのような品目の数または量を与えて、列512は、これらの品目がどこにあるかを示して、列514は、これらの品目に名前を付けることができる。これらの行と列との交点により定義されるセルは、列と行とにより伝えられる情報の個別のインスタンスを提供して記述する。
クライアントテーブル130aを参照すると、ユーザーのスティーブは、管理者であり、彼は、「AdminInventory.xls」という名前のワークブック516を開いて、LiveTableの少なくとも一部を、そのLiveTableから実行されるデータを修正するための命令とともにクライアントテーブル130aにインポートしたと仮定する。例えば、スティーブが、行506および508の値の現在のインスタンスをマスターテーブルから受信したと仮定する。図5は、これらのインポートされた行を、クライアントテーブル130a内において実行されるとして、506aおよび506bにより示す。さらに、スティーブが、504aにより示すように、calc列504をマスターテーブルからインポートしたと仮定する。クライアントテーブル130aは、列504aにおいて示されるように、資産「Foo」に対して計算された値の300、および資産「Bar」に対して計算された値の2000を含む。一般に、ワークブック516の列は、ワークブック502の列に従って配置される。
クライアントテーブル130mを参照すると、ユーザーのミリアムは、アナリストであり、彼女は、「InventoryAnalysis.xls」という名前のワークブック518を開いていると仮定する。このワークブック518には、少なくともLiveTableの一部分を含むことができて、行506mおよび508mがマスターテーブル118からの行506および508に対応して、ワークブック518の列は、一般に、ワークブック502の列に従って配置される。ワークブック518は、「Total」とラベル付けされた行520が含まれ、行520に注目させている。行520は、calc列504mから計算された値を合計して、ワークブック502のcalc列504に対応する。さらに、ミリアムのワークブック518は、ミリアム、スティーブ、およびマスターテーブル118からのデータを実行する他のあらゆるユーザーにより報告されるような、「Bar」品目の数を合計する行522を含むことができる。セル524では、「Bar」品目を数えるために使用される総和の式を定義することができる。ワークブック502、516、および518の初期のレイアウトを説明したが、議論は、次に、図6および7に示される、共有される情報の変更をどのように処理するかについての説明に進む。
図6は、一般に600により示され、1人のコラボレートしているユーザーがマスターテーブルから実行されるデータを更新するときに結果として生じる更新を例示する。これらの例において、ユーザーのスティーブは、新しい行602を(図5から繰り越される)彼のワークブック516に追加する。この新しい行602は、「Bar」品目に追加のデータを提供して、これらの品目の20がLocation「レドモンド」において使用可能であることを示す。ワークブック516に対するこの更新により、図4に例示されるデータフロー408の例を提供することによって、クライアントシステムはマスターテーブルからの情報を更新する。従って、図6は、参照番号408を繰り越して、ローカルな変更により生じるマスターテーブルに対する更新にラベル付けをして、この場合、行とセルとに対する変更である。
マスターテーブル118において、コラボラティブ・サービス・モジュール116は、更新408を受信する。応答をして、ワークブック502は、新しい行602nを追加して、これを、異なるクライアントシステム間においてコラボレーションのために共有される構造化されたデータ要素内にて、この新しい行を識別する値(例えば、row_id)に関連付ける。さらに、ワークブック502は、新しい行602nの列510、512、514、および504を更新して、更新408を組み込む。従って、マスターテーブルは、資産「Bar」の20個のインスタンスがレドモンドにおいて使用可能であることを示す。加えて、行602n内のセル604は、例としてのcalc列504において定義される式の新しいインスタンスを含む。マスターテーブルおよび関連するワークブック502がどのように変化して、スティーブのクライアントワークブック516からの変更を組み込むかについて説明したが、議論は、これらの変更をどのようにしてスティーブのワークブックおよびミリアムのワークブックに伝えることができるかについての説明に進む。
図7は、一般に700により示され、1つのクライアントテーブルからの更新のために、マスターテーブルから伝わる更新を例示する。スティーブのローカルなテーブルおよびミリアムのローカルなテーブルの特徴を描いている上記の例を続けると、マスターテーブル118およびマスターワークシート502により、スティーブのワークシート516に対してなされた変更に起因する行/セルの変更をミリアムのワークシート518に伝えることができる。図7は、ミリアムのワークシートへのこれらの更新を、行/セルの変更702として示す。従って、コラボラティブサービス128mは、新しい行602mによりミリアムのワークシート518を更新して、他のワークシートに現れる行602および602nに一致する。より詳しくは、識別子(例えば、row_idパラメーター)は、ミリアムの新しい行602mを、マスターテーブルにおいて対応する行602n、およびスティーブのワークシートにおいて対応する行602にリンクさせる、または結び付けることができる。このように、ミリアムのワークシートを更新して、レドモンドにおける20の「Bar」品目を反映する。
ミリアムを新しい行/セルで更新することに加えて、さらに、マスターワークシート502は、スティーブの変更に応答してcalc列504を再計算して、スティーブとミリアムとのテーブルおよびワークシートを再計算された値により更新する。図7は、704により、スティーブのワークシート516に伝えられるようなcalc列への更新を示して、706により、ミリアムのワークシート518に伝えられるようなcalc列への更新を示す。更新702、704、および706により、図4に示されるマスターテーブルの更新424および426の例を与える。しかし、図7は、これらの更新を新しい番号により参照して、種々のクライアントテーブルへの更新の異なるタイプを個々に議論することを容易する。
スティーブのワークシート516において、更新704に応答して、コラボラティブなサービス128aは、セル708aがマスターテーブルのセル604の式により算出されるcalc値を含むために、calc列504aを更新する。示される例において、セル708aは、値「8000」を含む。ミリアムのワークシート518において、更新702および704に応答して、コラボラティブサービス128mは、セル708mがマスターテーブルのセル604により算出されるcalc値(例えば、「8000」)を含むために、calc列504mを更新する。calc列が新しい値(すなわち、708mにおいて値「8000」)を含むので、ミリアムの行520は、セル710の更新された合計「10300」により示されるように、ローカルに更新される。
ミリアムのテーブルが、「Bar」とラベル付けされた品目に起因する計算された値を合計するための行522を含む図5の説明から呼び戻す。新しいセル708mの値「8000」に応答して、セル524は、この値をセル712において以前から存在する値「2000」により合計して、結果として更新された合計「10000」になる。複数のコラボレートするクライアントにわたり伝わる行およびセルの変更について上記の例を説明したが、議論は、種々のタイプの変更についてのより詳細な例を与える。
行を追加および削除する動作は、影響を受ける行のrow_idの情報を送信することを含むことができる。クライアントテーブルが共有されるクライアントテーブルから行を削除すると、クライアントは、そのrow_idを含む通知をサーバーへ送信する。応答をして、マスターテーブル、および共有されるクライアントテーブルに結び付けられる他のクライアントテーブルは、テーブルの行の削除動作を、そのrow_idを含む行に実行する。
クライアントテーブルがテーブルの最後に新しい行を挿入または追加すると、クライアントテーブルは、新しい行の一時的なrow_idを生成することができる。次に、クライアントテーブルは、一時的なrow_idに関して、行追加の通知をサーバーへ送信する。サーバーは、クライアントテーブル(および他のサーバーまたはクライアントテーブル)が新しい行に使用するのであろう不変のrow_idを、生成して戻すことができる。マスターテーブルおよびそれに結び付けられる他のクライアントテーブルは、新しい行を、不変のrow_idによりテーブルへ追加する。テーブル内の新しい行の場所は、送信することができる、または送信することができない。通常、新しい行は、各テーブルの最下部に現れるが、ユーザーが同時に新しい行を追加している場合に上部に現れることがある。いくつかの実装において、新しい行の通知を、あるデータがこれによりサーバーへ送信に使用できるまでクライアントにおいて保留することができる。
少なくともいくつかの実装において、ソートを、クライアントテーブルのローカルなインスタンスのみに、例えば、個別のクライアントに効力のあるローカルな指定(例えば、図3の指定310および318)に応答して適用する。このように、異なるユーザーは、彼ら自身のソートを彼ら自身のクライアントテーブルに適用することができる。新しい行が現れる場合に新しい行がすぐにはソートされず、データが変更される場合に自動的にソートが適用されない。このアプローチにより、影響を受けるテーブル内のユーザーの場所が、新しい行にデータを入力している間に新しい行の下において変更されるのを防ぐことができる。編集または挿入が完了すると、ユーザーは、積極的に作動して、彼らのソートを再び適用することができる。クライアント側サービスにより、常時ソートのオプションをユーザーに提供して、新しいデータを受け取り次第自動的にソートするようにすることができる。このオプションは、分析を実行するクライアントにとって魅力的であるが、データ入力を実行するクライアントにとってそうではない。
クライアント側サービスにより、フィルタリング機能を提供することができて、ソートのように動作することができる。フィルタリング機能を、個別のクライアントにおけるローカルな指定(例えば、図3の310および318)に応答して実行することができる。異なるユーザーは、他のユーザーに影響を与えずに彼ら自身のフィルターを指定することができる。ソートと同様に、フィルターを、ユーザーがデータを入力するように常にデータの場所を変更しないように適合する。常時フィルターのオプションは、常時ソートのオプションと同様の値を含むことができる。
クライアント側サービスにより、総計の行(total-row)の性能を提供することができて、1つまたは複数の列に現れる値を合計する。この総計の行の性能は、クライアントテーブルに対してローカルであり(例えば、ローカルな指定に応答して)、ユーザーはそれを考察するか見るかどうかを選択することができる。同様の考え方を、小計の機能に適用することができる。
異なるユーザーが、どのテーブルスタイルを自分たちのクライアントテーブルに適用するかを選択することができる。これらのテーブルスタイルにより、指定の境界線、影、色、ハイライト、または、異なるユーザーに対して表示されるクライアントテーブルにローカルに適用される他の視覚的カスタマイズ、を指定することができる。1クライアントにおいて(例えば、ローカルな指定に応答して)適用されるローカルなカスタマイズは、通常、他のクライアントにおける表示には影響しない。
ユーザーは、自分のクライアントテーブルの列を、マスターテーブルに影響を与えずに再整理することができる。さらに、これらのユーザーは、マスターテーブルに影響を与えずに、望み通りに列を削除することもできる。
与えられたクライアントテーブルは、1つまたは複数のcalc列を含むと仮定すると、クライアント側サービスは、クライアントテーブルのユーザーがそのクライアントテーブル内のcalc列を編集すること、または変更をマスターテーブルに戻すことを許可しないが、コンシューマースキーマ変更プロトコルを介する場合を除く。そのようなプロトコルを除いて、列を、読み出し専用として取り扱うことができる。
calc列が与えられたテーブルについて全体として内部的な依存関係を含む(例えば、テーブル内で2列を乗じる)場合、calc列への更新を、マスターテーブルからクライアントテーブルへ押し下げて、より速いフィードバックと、オフライン処理によるより良い体験とを与えることができる。マスターテーブルは、次に説明される外部的な依存関係を有するcalc列に関する特徴と類似して、これらのcalc列の式を押し下げないオプションを提供することができる。
calc列が与えられたテーブルについて外部的な少なくとも1つの依存関係を含む場合、実行するクライアントテーブルは、通常、それらの列を評価しない。代わりに、サーバーは、これらのcalc列を評価して、結果の値を実行するクライアントテーブルに押し下げることができる。例えば、これらのcalc列は、私設の式を含むことができて、このメカニズムにより、実際に私設の式を提供または公開することなく、私設の式を使用して計算されるクライアントテーブルの値を送信する方法を提供する。ワークブック全体を再計算するのではなく、これらの列内の値のみをクライアントに送信するので、ネットワークボリュームが削減されて、あらゆるローカルな計算を、クライアントテーブルを実行するワークブックにおいて行うことができる。calc列が例外を有して外部的な依存関係を含む場合、実行するクライアントテーブルを、例外に気づかない状態にしておくことができて、実行するクライアントテーブルは、例外に対して計算された値を受信するであろう。例外が実行するクライアントテーブルに送信される列にある場合、例外の式もまた送信することができる。
クライアントテーブルは、そのクライアントテーブルにのみ存在するcalc列を追加することができる。クライアントテーブルのローカルなcalc列は、新しい行が現れると、上記のcalc列をローカルにおくことができて、calc列をローカルに計算して保持することができる。
同一のマスターワークブックからの複数のマスターテーブルが同一のクライアントワークブックにおいて実行される場合、クライアントワークブックにおける参照を、マスターワークブックに戻って参照することなく、クライアントにおいてローカルに解決することができる。従って、これらの参照に基づくあらゆる式を、マスターワークブックとの通信についてのオーバーヘッドを引き起こすことなく、クライアントにおいてローカルに計算することができる。
一般に、フォーマッティングを、異なるクライアントテーブルに個々に適用する。従って、所定のクライアントテーブル内のセルのフォーマッティングでは、クライアントテーブルのインスタンスのみがフォーマットされる。以下は、実施形態において適用されるいくつかの例外である。
・マスターテーブルの列に適用される数字フォーマッティングを、スキーマの一部として、その列に適用される全ての実行するクライアントテーブルに使用できるようにさせることができる。
・ブロックレベルのファーマットおよびセルのフォーマットを、最も低いレベルの優先度のフォーマッティングとして、実行クライアントテーブルに伝えることができる。
・マスターテーブル上で評価される条件付きフォーマットを、静的マスターフォーマッティングの上の優先度レベルとして、実行クライアントテーブルに伝えることができる。
・オプションを、マスターテーブル上において有効にすることができて、そのオプションが有効な場合、ユーザーが実行するクライアントテーブルにおけるフォーマッティングに対してなす変更をマスターテーブルへ返送して、そしてそこで適用される。
・マスターテーブルにより、フォーマッティングをクライアントテーブルへ降ろすことができる。いくつかのインスタンスにおいて、このフォーマッティングを、条件付きフォーマッティングであるとすることができる。いくつかのインスタンスにおいて、個別のクライアントは、そのクライアントにおけるフォーマッティングに対してローカルな指定(例えば、図3の310および318)を定義することができる。これらのインスタンスにおいて、そのクライアントにおけるコラボラティブ・サービス・モジュール(例えば、128)は、マスターテーブルから降ろされるようなフォーマッティングを、クライアントにおいてローカルな指定により定義されるフォーマッティングに一致させることができる。
一意的な識別子(例えば、row_id)に基づくクライアントテーブル内の追跡を、ユーザーがオフラインモードである間、保持することができる。その後、ユーザーがオンラインになると、追跡を、その後マスターテーブル内に起こった変更に一致させることができる。
ユーザーがマスターワークブックを開く特権を有する場合、ユーザーは、マスターテーブルを編集してスキーマの変更を行うことができる。上記のスキーマの例は、次を含むことができる。
・列削除
・列追加、または
・計算された列の計算の変更、等
ユーザーがこれらの変更を委託すると、変更の結果を、全ての実行するクライアントテーブルに対して、実行するクライアントテーブルが次にマスターテーブルと同期するときに適用することができる。
ユーザーが実行しているマスターテーブルのスキーマを変更したいということを身ぶりにより示す場合、コラボラティブサービスは、彼らの許可、および上記の動作を許可するマスターテーブルにおける設定に従属して、ユーザーに許可する。クライアント側サービスは、ユーザーのローカルな変更をマスターテーブルに送信することができる。ただし、ユーザーのローカルな変更を、マスターテーブルの変更に類似して適用するだろう。
本明細書において説明されるツールおよび技術は、例えば、本願発明の特許出願人から利用可能なSHAREPOINT(登録商標)プラットフォーム、または競合プラットフォーム等、ポータルベースのコラボレーション・ドキュメント管理プラットフォームにより動作することができる。例えば、SHAREPOINT(登録商標)テクノロジーにおけるリストにより、データの格納および編集が可能となり、スプレッドシートアプリケーションの外部において使用可能である。いくつかのインスタンスにおいて、これらのプラットフォームにより、本明細書におけるツールおよび技術に、データベースAPIをマスターテーブル上に公開することを可能にして、他のテクノロジーによるAPIの使用を可能にする。いくつかの場合に、リストは、マスターテーブルと結び付けることが可能であり、リストは、マスターテーブルが変更されると更新される。この特徴により、リストは、マスターテーブルが更新されると更新を受信する、またはマスターテーブルは、リストが変更されると更新を受信することができる。不一致を、出現する場合に、UIによって、または行の個別のマーキングによって処理することができる。
本明細書に示される主題が、コンピューターの構造的特徴、および、コンピューター読み取り可能な媒体に特有の言語で説明されたが、添付の請求項に定義される本発明が必ずしも本明細書に説明された特有の特徴、動作、または媒体に限定されないことは理解されるべきである。むしろ、特有の特徴、動作、および媒体は、請求項を実装する例示の形式として開示される。
上記に説明される主題は、例示のみの目的で提供されるのであり、制限するものとして解釈されるべきではない。例示され説明される例示の実施形態および用途に追随することなく、かつ、以下の請求項に説明される、本発明の真の精神および範囲から逸脱することなく、種々の修正および変更を、本明細書に説明される主題に対してなすことができる。

Claims (20)

  1. 第1のクライアントシステム(128n)によるアクセスのために少なくとも部分的にパブリッシュされたスプレッドシート内の少なくとも1つの構造化されたデータ要素(212)を受信するステップ(214)と、
    前記構造化されたデータ要素に対応するそれぞれの一意的な識別子(216)を定義するステップと、
    前記構造化されたデータ要素および前記一意的な識別子を少なくとも第2のクライアントシステム(128a)へ送信するステップ(234)と、
    少なくとも前記第1のクライアントシステムおよび前記第2のクライアントシステムに対して前記構造化されたデータ要素にコラボラティブにアクセスすることを可能にするステップ(402および414)と、
    前記データ要素に対する少なくとも1つの更新(408または420)を1つのクライアントシステムから受信するステップ(410)であって、前記更新は前記一意的な識別子を参照する、受信するステップと、
    前記一意的な識別子に少なくとも部分的に基づき少なくとも前記データ要素を含むマスターテーブル(118)に前記更新をマージするステップ(412)と
    を備えたことを特徴とする方法。
  2. 前記データを送信するステップは、少なくとも1つのネットワークを介して前記第2のクライアントシステムへデータを送信するステップを含むことを特徴とする請求項1に記載の方法。
  3. 少なくとも前記構造化されたデータ要素の選択を受信するステップであって、前記選択は前記構造化されたデータ要素に対応する前記一意的な識別子を参照する、選択を受信するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  4. 構造化されたデータ要素のマスターの集合から前記構造化されたデータ要素を検索するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  5. 前記第2のクライアントシステムへ前記構造化されたデータ要素を含むライブラリの表現を送信するステップであって、前記構造化されたデータ要素は他のクライアントシステムによるコラボレーションのためにパブリッシュされて、前記複数の構造化されたデータ要素はそれぞれの一意的な識別子に関連する、表現を送信するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  6. 少なくともさらなるクライアントシステムから前記データ要素に対する少なくともさらなる更新を受信するステップであって、さらなる更新は前記データ要素に対して前記一意的な識別子を参照する、さらなる更新を受信するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  7. 前記一意的な識別子に少なくとも部分的に基づき前記データ要素に対する少なくともさらなる更新を前記マスターテーブルにマージするステップをさらに備えたことを特徴とする請求項6に記載の方法。
  8. 少なくとも別のクライアントシステムへ更新をパブリッシュするステップをさらに備えたことを特徴とする請求項1に記載の方法。
  9. 前記構造化されたデータ要素を送信するステップは、スプレッドシート内に定義されるワークブックの少なくとも一部を送信するステップを含むことを特徴とする請求項1に記載の方法。
  10. 少なくとも1つのクライアントテーブルから受信した少なくとも1つの値を参照することによってマスターテーブルの少なくとも1つの列を計算するステップをさらに備えたことを特徴とする請求項1に記載の方法。
  11. スプレッドシート内に定義される複数の構造化されたデータ要素の表現を与えるユーザーインターフェースを提供するステップ(202)と、
    パブリッシュするための前記構造化されたデータ要素の少なくとも1つの選択(206)を受信するステップ(208)と、
    パブリッシュするための前記選択された構造化されたデータ要素(212)を表現するデータを送信するステップ(210)と、
    前記選択された構造化されたデータ要素に関連する一意的な識別子を受信するステップと
    を備えたことを特徴とする方法。
  12. 前記構造化されたデータ要素は、スプレッドシートの少なくとも一部を含み、前記構造化されたデータ要素を表現するデータを送信するステップは、前記構造化されたデータ要素を少なくとも1つのクライアントシステムへパブリッシュするためにネットワークを介して少なくとも1つのサーバーシステムへデータを送信するステップを含むことを特徴とする請求項11に記載の方法。
  13. 前記選択された構造化されたデータ要素を表現するデータを送信するステップは、クライアントシステムが前記構造化されたデータ要素にアクセスして前記構造化されたデータ要素を更新できるようにするためにネットワークを介して少なくとも1つのクライアントシステムへ前記データを送信するステップを含むことを特徴とする請求項11に記載の方法。
  14. 前記構造化されたデータ要素に対する少なくとも1つの更新を送信するステップであって、前記更新は前記構造化されたデータ要素上における少なくとも1つのクライアントシステムとのコラボレーションから生じる、更新を送信するステップと、
    前記構造化されたデータ要素を前記一意的な識別子を使用してマージするステップと
    をさらに備えたことを特徴とする請求項11に記載の方法。
  15. 少なくとも部分的に他のクライアントシステムによるコラボレーションのためにクライアントシステム(104)がパブリッシュしたスプレッドシート内の構造化されたデータ要素(216)のライブラリを与えるユーザーインターフェースを提供するステップ(218)と、
    構造化されたデータ要素の少なくとも1つの選択(222)をユーザーから受信するステップ(224)と、
    前記選択された構造化されたデータ要素を要求するステップ(226)であって、選択は前記選択された構造化されたデータ要素に関連する一意的な識別子(228)を参照する、要求するステップと
    を備えたことを特徴とする方法。
  16. 前記選択された構造化されたデータ要素をスプレッドシートの少なくとも一部から受信するステップと、
    1つまたは複数のクライアントに効力のあるローカルな指定に応答してローカルなフォーマッティング、ローカルなソート、またはローカルなフィルタリングを前記構造化されたデータ要素に適用するステップと
    をさらに備えたことを特徴とする請求項15に記載の方法。
  17. 前記選択されたデータ要素の少なくとも一部を更新するステップであって、前記選択されたデータ要素は計算された列を含む、更新するステップと、
    前記計算された列の更新を受信するステップであって、前記計算された列は更新に応答して再計算される、更新を受信するステップと
    をさらに備えたことを特徴とする請求項15に記載の方法。
  18. 前記構造化されたデータ要素の少なくとも一部を更新するステップは、クライアントによりローカルに保持されるデータ、およびクライアントの外部のソースから受信されるデータに基づき前記構造化されたデータ要素を更新するステップを含むことを特徴とする請求項17に記載の方法。
  19. 前記構造化されたデータ要素に関連するそれぞれの一意的な識別子をライブラリに保持するステップをさらに備え、前記選択されたデータ要素を更新するステップは、前記更新されたデータ要素に関連する一意的な識別子を参照するステップを含むことを特徴とする請求項17に記載の方法。
  20. 前記構造化されたデータ要素の少なくとも一部を更新するステップは、マスターテーブルにより定義される計算された列のローカルな値を計算するステップを含むことを特徴とする請求項17に記載の方法。
JP2010543112A 2008-01-15 2008-12-24 構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション Active JP5369116B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/014,727 2008-01-15
US12/014,727 US8862979B2 (en) 2008-01-15 2008-01-15 Multi-client collaboration to access and update structured data elements
PCT/US2008/088347 WO2009091488A2 (en) 2008-01-15 2008-12-24 Multi-client collaboration to access and update structured data elements

Publications (2)

Publication Number Publication Date
JP2011510397A true JP2011510397A (ja) 2011-03-31
JP5369116B2 JP5369116B2 (ja) 2013-12-18

Family

ID=40851572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010543112A Active JP5369116B2 (ja) 2008-01-15 2008-12-24 構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション

Country Status (12)

Country Link
US (2) US8862979B2 (ja)
EP (1) EP2248035B1 (ja)
JP (1) JP5369116B2 (ja)
KR (1) KR101581970B1 (ja)
CN (1) CN101911046B (ja)
AU (1) AU2008348060B2 (ja)
BR (1) BRPI0821497A2 (ja)
CA (1) CA2707972C (ja)
IL (1) IL206094A (ja)
RU (1) RU2504001C2 (ja)
WO (1) WO2009091488A2 (ja)
ZA (1) ZA201003842B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339329B2 (en) 2014-09-25 2019-07-02 International Business Machines Corporation Controlling access to data in a database

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2487607A3 (en) * 2000-08-29 2013-03-27 Open Text S.A. Tool for collaborative edit/search of dynamic objects
US7707249B2 (en) * 2004-09-03 2010-04-27 Open Text Corporation Systems and methods for collaboration
US7702730B2 (en) 2004-09-03 2010-04-20 Open Text Corporation Systems and methods for collaboration
EP2203877A4 (en) * 2007-10-22 2012-08-01 Open Text SA METHOD AND SYSTEM FOR MANAGING BUSINESS CONTENT
US9461834B2 (en) 2010-04-22 2016-10-04 Sharp Laboratories Of America, Inc. Electronic document provision to an online meeting
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
WO2021144656A1 (en) 2020-01-15 2021-07-22 Monday.Com Digital processing systems and methods for graphical dynamic table gauges in collaborative work systems
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
US20120013539A1 (en) * 2010-07-13 2012-01-19 Hogan Edward P A Systems with gesture-based editing of tables
US9721030B2 (en) * 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
US9053117B2 (en) 2012-04-11 2015-06-09 4Clicks Solutions, LLC Storing application data with a unique ID
US20140082470A1 (en) * 2012-09-19 2014-03-20 4Clicks Solutions, LLC Spreadtree hierarchy system for spreadsheets and related methods
US9460073B2 (en) 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US9785956B2 (en) * 2013-09-26 2017-10-10 Revimedia, Inc. System and method of enhancing a lead exchange process
US10225352B2 (en) * 2013-12-20 2019-03-05 Sony Corporation Work sessions
FR3017454B1 (fr) * 2014-02-12 2017-08-25 Schneider Electric Ind Sas Dispositif electronique de mesure apte a afficher des donnees sous forme d'un code matriciel a deux dimensions, lecteur electronique, installation electronique et procede de transmission associes
US10291664B2 (en) * 2014-05-30 2019-05-14 Brigham Young University Collaborative project modification
CN104991886B (zh) * 2015-07-22 2018-05-22 网易(杭州)网络有限公司 一种数据表的编辑方法、装置与系统
CA2994406A1 (en) 2015-08-06 2017-02-09 Arc Bio, Llc Systems and methods for genomic analysis
US10915584B2 (en) * 2015-09-22 2021-02-09 Dropbox, Inc. Event-related document generation
US11138370B1 (en) * 2016-09-23 2021-10-05 Massachusetts Mututal Life Insurance Company Modifying and using spreadsheets to create a GUI on another device
US11210459B1 (en) 2016-09-23 2021-12-28 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US10540152B1 (en) 2016-09-23 2020-01-21 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US11170164B2 (en) * 2016-12-11 2021-11-09 DataRails LTD. System and method for cell comparison between spreadsheets
US10496737B1 (en) 2017-01-05 2019-12-03 Massachusetts Mutual Life Insurance Company Systems, devices, and methods for software coding
US10977242B2 (en) * 2017-09-07 2021-04-13 Atlassian Pty Ltd. Systems and methods for managing designated content items
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US10592485B1 (en) * 2018-12-31 2020-03-17 Atlassian Pty Ltd Property-based deletion of digital data
US11755825B2 (en) * 2019-09-12 2023-09-12 Workiva Inc. Method, system, and computing device for facilitating private drafting
US11775890B2 (en) 2019-11-18 2023-10-03 Monday.Com Digital processing systems and methods for map-based data organization in collaborative work systems
EP4062313A1 (en) 2019-11-18 2022-09-28 Monday.com Ltd. Collaborative networking systems, methods, and devices
GB202002163D0 (en) * 2020-02-17 2020-04-01 Microsoft Technology Licensing Llc Spreadsheet with reuse functionality
US20240184989A1 (en) 2020-05-01 2024-06-06 Monday.com Ltd. Digital processing systems and methods for virtualfile-based electronic white board in collaborative work systems systems
IL297858A (en) 2020-05-01 2023-01-01 Monday Com Ltd Digital processing systems and methods for improved networking and collaborative work management systems, methods and devices
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
US11100281B1 (en) 2020-08-17 2021-08-24 Workiva Inc. System and method for maintaining links and revisions
US11443108B2 (en) 2020-08-17 2022-09-13 Workiva Inc. System and method for document management using branching
CN112416401B (zh) * 2020-11-23 2023-10-27 北京奇艺世纪科技有限公司 一种数据更新方法、装置及设备
US11687216B2 (en) 2021-01-14 2023-06-27 Monday.com Ltd. Digital processing systems and methods for dynamically updating documents with data from linked files in collaborative work systems
US11100277B1 (en) 2021-02-15 2021-08-24 Workiva Inc. Systems, methods, and computer-readable media for flow-through formatting for links
WO2022212024A1 (en) * 2021-03-31 2022-10-06 Microsoft Technology Licensing, Llc Dynamically limiting the scope of spreadsheet recalculations
US11354362B1 (en) 2021-05-06 2022-06-07 Workiva Inc. System and method for copying linked documents
US12056664B2 (en) 2021-08-17 2024-08-06 Monday.com Ltd. Digital processing systems and methods for external events trigger automatic text-based document alterations in collaborative work systems
US11640495B1 (en) 2021-10-15 2023-05-02 Workiva Inc. Systems and methods for translation comments flowback
US12105948B2 (en) 2021-10-29 2024-10-01 Monday.com Ltd. Digital processing systems and methods for display navigation mini maps
US11599718B1 (en) 2022-03-23 2023-03-07 Acuitive Solutions, Inc. Database system for storing electronic spreadsheets
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes
US12118401B1 (en) 2023-11-28 2024-10-15 Monday.com Ltd. Digital processing systems and methods for facilitating the development and implementation of applications in conjunction with a serverless environment

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250907A (ja) * 1993-02-26 1994-09-09 Nec Corp 分散協調作業支援装置
JPH09146815A (ja) * 1995-11-28 1997-06-06 Nec Corp 分散ファイル管理方法
JPH09269912A (ja) * 1996-04-02 1997-10-14 Canon Inc 情報処理方法とその装置
JPH10289175A (ja) * 1997-04-15 1998-10-27 Canon Inc データ通信端末装置、データ通信方法、データ表示方法および記憶媒体
JP2002297428A (ja) * 2001-03-29 2002-10-11 Toshiba Corp 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム
JP2002297429A (ja) * 2001-03-30 2002-10-11 Toshiba Corp 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム
JP2006092519A (ja) * 2004-09-27 2006-04-06 Microsoft Corp スプレッドシート連鎖計算の多重スレッド処理のための方法およびシステム
JP2007094572A (ja) * 2005-09-27 2007-04-12 Toshiba Corp マスタデータ管理装置及びマスタデータ管理プログラム
US20070233811A1 (en) * 2006-03-31 2007-10-04 Jonathan Rochelle Collaborative online spreadsheet application
US20080077628A1 (en) * 2006-09-22 2008-03-27 International Business Machines Corporation Conflict resolution for distributed processing systems

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0694187B1 (en) 1993-04-13 2001-03-21 Intel Corporation System for computer supported collaboration
US5956715A (en) 1994-12-13 1999-09-21 Microsoft Corporation Method and system for controlling user access to a resource in a networked computing environment
US6009266A (en) * 1995-03-22 1999-12-28 Sun Microsystems, Inc. Methods, apparatus and data structures for managing objects
US5884325A (en) * 1996-10-09 1999-03-16 Oracle Corporation System for synchronizing shared data between computers
US5926816A (en) 1996-10-09 1999-07-20 Oracle Corporation Database Synchronizer
JPH10287175A (ja) 1997-04-14 1998-10-27 Honda Lock Mfg Co Ltd スライドスイッチ用操作ノブ
US6640234B1 (en) * 1998-12-31 2003-10-28 Microsoft Corporation Extension of formulas and formatting in an electronic spreadsheet
WO2001059675A1 (en) * 2000-02-11 2001-08-16 Ryan Mark H Method and system for distributing and collecting spreadsheet information
US7082430B1 (en) 2000-04-17 2006-07-25 Accenture Llp Collaboration planning in a collaborative work tool architecture
US6341292B1 (en) * 2000-05-30 2002-01-22 Outlooksoft Corporation Spreadsheet-based network information exchange with two-part cache
US6681225B1 (en) * 2000-05-31 2004-01-20 International Business Machines Corporation Method, system and program products for concurrent write access to a global data repository
AU2001277868A1 (en) * 2000-07-11 2002-01-21 Juice Software, Inc. A method and system for integrating network-based functionality into productivity applications and documents
AU2001287421A1 (en) * 2000-08-21 2002-03-04 Thoughtslinger Corporation Simultaneous multi-user document editing system
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US6636875B1 (en) * 2000-10-25 2003-10-21 International Business Machines Corporation System and method for synchronizing related data elements in disparate storage systems
US8275974B2 (en) * 2001-01-16 2012-09-25 Outlooksoft Corporation Systems and methods providing dynamic spreadsheet functionality
WO2003014987A2 (en) * 2001-08-09 2003-02-20 International Business Machines Corporation Spreadsheet system and method for transferring the content of input cells between scalable template instances
US20030065527A1 (en) * 2001-09-28 2003-04-03 Zerotime Labs, L.L.C. Financial transfer modeling editor system and method
US20030179230A1 (en) 2002-03-25 2003-09-25 Gerry Seidman Method and apparatus for providing remote peer-to-peer collaborative user interfaces
EP1505510A4 (en) * 2002-04-25 2008-09-10 Ibm COLLABORATION SERVER, COLLABORATION SYSTEM, MEETING ADMINISTRATIVE PROCEDURES AND PROGRAM
US7233951B1 (en) * 2004-02-18 2007-06-19 Microsoft Corporation Spreadsheet grid-like control for a web-based collaboration system
US7225189B1 (en) * 2004-02-19 2007-05-29 Microsoft Corporation Data source write back and offline data editing and storage in a spreadsheet
US7640343B2 (en) * 2004-05-27 2009-12-29 Microsoft Corporation Using resource item lists to consume resource items
US7702730B2 (en) * 2004-09-03 2010-04-20 Open Text Corporation Systems and methods for collaboration
EP1812848A4 (en) * 2004-09-15 2009-04-29 Adesso Systems Inc SYSTEM AND METHOD FOR DATA MANAGEMENT IN A DISTRIBUTED COMPUTER SYSTEM
US7533420B2 (en) 2004-12-09 2009-05-12 Microsoft Corporation System and method for restricting user access to a network document
US8370317B2 (en) * 2005-09-22 2013-02-05 Microsoft Corporation Synchronizing shared resources in a collection
US7752230B2 (en) * 2005-10-06 2010-07-06 Avaya Inc. Data extensibility using external database tables
CA2524527A1 (en) * 2005-10-26 2007-04-26 Ibm Canada Limited - Ibm Canada Limitee Systems, methods and tools for facilitating group collaborations
US20070143674A1 (en) * 2005-12-20 2007-06-21 Kabushiki Kaisha Toshiba LDAP based scan templates
US20070198952A1 (en) * 2006-02-21 2007-08-23 Pittenger Robert A Methods and systems for authoring of a compound document following a hierarchical structure
US20070220415A1 (en) * 2006-03-16 2007-09-20 Morgan Mao Cheng Excel spreadsheet parsing to share cells, formulas, tables or entire spreadsheets across an enterprise with other users
US7512639B2 (en) * 2006-06-15 2009-03-31 International Business Machines Corporation Management of time-variant data schemas in data warehouses

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250907A (ja) * 1993-02-26 1994-09-09 Nec Corp 分散協調作業支援装置
JPH09146815A (ja) * 1995-11-28 1997-06-06 Nec Corp 分散ファイル管理方法
JPH09269912A (ja) * 1996-04-02 1997-10-14 Canon Inc 情報処理方法とその装置
JPH10289175A (ja) * 1997-04-15 1998-10-27 Canon Inc データ通信端末装置、データ通信方法、データ表示方法および記憶媒体
JP2002297428A (ja) * 2001-03-29 2002-10-11 Toshiba Corp 分散データ管理システム、分散データ管理方法及び分散データ管理プログラム
JP2002297429A (ja) * 2001-03-30 2002-10-11 Toshiba Corp 分散トランザクション処理システム、分散トランザクション処理方法及び分散トランザクション処理プログラム
JP2006092519A (ja) * 2004-09-27 2006-04-06 Microsoft Corp スプレッドシート連鎖計算の多重スレッド処理のための方法およびシステム
JP2007094572A (ja) * 2005-09-27 2007-04-12 Toshiba Corp マスタデータ管理装置及びマスタデータ管理プログラム
US20070233811A1 (en) * 2006-03-31 2007-10-04 Jonathan Rochelle Collaborative online spreadsheet application
US20080077628A1 (en) * 2006-09-22 2008-03-27 International Business Machines Corporation Conflict resolution for distributed processing systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10339329B2 (en) 2014-09-25 2019-07-02 International Business Machines Corporation Controlling access to data in a database
US11036878B2 (en) 2014-09-25 2021-06-15 International Business Machines Corporation Controlling access to data in a database

Also Published As

Publication number Publication date
KR101581970B1 (ko) 2015-12-31
EP2248035B1 (en) 2022-09-07
IL206094A (en) 2017-02-28
BRPI0821497A2 (pt) 2015-06-16
US20090182763A1 (en) 2009-07-16
CA2707972C (en) 2017-01-03
AU2008348060B2 (en) 2013-05-16
ZA201003842B (en) 2011-08-31
US8862979B2 (en) 2014-10-14
RU2504001C2 (ru) 2014-01-10
EP2248035A4 (en) 2018-03-07
CN101911046B (zh) 2012-10-10
AU2008348060A1 (en) 2009-07-23
EP2248035A2 (en) 2010-11-10
US20150019947A1 (en) 2015-01-15
RU2010129240A (ru) 2012-02-27
IL206094A0 (en) 2010-11-30
WO2009091488A3 (en) 2009-10-01
KR20100113080A (ko) 2010-10-20
CA2707972A1 (en) 2009-07-23
WO2009091488A2 (en) 2009-07-23
US9880992B2 (en) 2018-01-30
JP5369116B2 (ja) 2013-12-18
CN101911046A (zh) 2010-12-08

Similar Documents

Publication Publication Date Title
JP5369116B2 (ja) 構造化されたデータ要素にアクセスして更新するためのマルチクライアントのコラボレーション
Zimmermann Architectural decisions as reusable design assets
US20190228002A1 (en) Multi-Language Support for Interfacing with Distributed Data
US9436927B2 (en) Web-based multiuser collaboration
US12056163B2 (en) Collaboration activity summaries
Terstyanszky et al. Enabling scientific workflow sharing through coarse-grained interoperability
US20180174104A1 (en) Work routine management for collaborative platforms
US20090024660A1 (en) Automatically moving annotations associated with multidimensional data between live datacubes
US11449469B2 (en) Embedded content object collaboration
US20100332531A1 (en) Batched Transfer of Arbitrarily Distributed Data
EP2168048A1 (en) Automatically targeting and filtering shared network resources
AU2011305936B2 (en) Web page behavior enhancement controls
JP2009069899A (ja) オブジェクト文書作成システム
WO2018136340A1 (en) Application programming interface
Lee et al. An adaptive website system to improve efficiency with web mining techniques
US9965597B2 (en) Collaborative drug discovery system
CN111222166A (zh) 多人在线协同的设计素材共享与管理的方法和装置
Lim et al. Design and implementation of a collaborative team-based cloud storage system
Yao et al. JBrowse Connect: A server API to connect JBrowse instances and users
Débarre Data from: Refining the conditions for sympatric ecological speciation
Celik et al. Depot: Dependency-Eager Platform of Transformations
Carroll et al. Web based analysis
WO2010091370A2 (en) Systems and methods to capture disparate information
JP2001195240A (ja) データ操作方法及びクライアント・サーバーシステム並びにデータ操作用プログラムを記憶した記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121029

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130405

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130805

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130812

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130813

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130816

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130913

R150 Certificate of patent or registration of utility model

Ref document number: 5369116

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250