DE202011110895U1 - Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen - Google Patents

Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen Download PDF

Info

Publication number
DE202011110895U1
DE202011110895U1 DE202011110895.7U DE202011110895U DE202011110895U1 DE 202011110895 U1 DE202011110895 U1 DE 202011110895U1 DE 202011110895 U DE202011110895 U DE 202011110895U DE 202011110895 U1 DE202011110895 U1 DE 202011110895U1
Authority
DE
Germany
Prior art keywords
document
changeset
client
clients
real
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.)
Expired - Lifetime
Application number
DE202011110895.7U
Other languages
English (en)
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of DE202011110895U1 publication Critical patent/DE202011110895U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • 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/169Annotation, e.g. comment data or footnotes

Abstract

Einen Server zur Bereitstellung eines Dokuments für eine Vielzahl von Clienten zur Echtzeitbearbeitung, umfassend: einen oder mehrere Prozessor(en); und Speicher, auf dem ein oder mehrere Programme zur Ausführung des einen oder der mehreren Programme durch den einen oder die mehreren Prozessoren gespeichert sind, inkl. Anweisungen zum: Senden von Kopien des Dokuments zur Echtzeitbearbeitung an die Vielzahl von Clienten; Abrufen des jeweiligen Changesets für zwei oder mehrere jeweilige Clienten aus der Vielzahl von Clienten, wobei ein jeweiliges Changeset eine oder mehrere Änderungen an der jeweiligen Kopie des Dokuments beim jeweiligen Clienten repräsentiert; Erzeugen eines Ergebnis-Changesets übereinstimmend mit den jeweiligen Changesets; und dem Senden des Ergebnis-Changesets an die Vielzahl von Clienten zum Aktualisieren der jeweiligen Kopien des Dokuments bei der Vielzahl von Clienten.

Description

  • TECHNISCHES GEBIET
  • Dies betrifft die gemeinsame Bearbeitung von elektronischen Dokumenten, inklusive, aber nicht beschränkt auf Systeme für gemeinsame Bearbeitung von mehreren Arten elektronischer Dokumente in Echtzeit.
  • HINTERGRUND
  • Elektronische Dokumente sind in vielen Bereichen unseres Lebens verbreitet. Solche elektronischen Dokumente können von Desktop-Computern und tragbaren Computergeräten (z. B. Laptops, Personal Digital Assistants (PDAs), Mobiltelefone und tragbare Computer) aus bearbeitet werden.
  • Manchmal müssen mehrere Editoren ein Dokument gleichzeitig bearbeiten. Die Eingaben von mehreren Editoren für eine Echtzeit-Bearbeitung zu koordinieren ist jedoch kein triviales Problem. Daher besteht Bedarf nach neuen Methoden und Systemen, um elektronische Dokumente in Echtzeit durch Eingaben mehrerer Editoren bearbeiten zu können.
  • ZUSAMMENFASSUNG
  • Im Folgenden werden einige Ausführungsformen (z. B. Server-Systeme, Client-Systeme oder Geräte und Methoden für den Betrieb solcher Systeme oder Geräte), welche keine der oben beschriebenen Einschränkungen und Nachteile aufweisen, genauer vorgestellt. Die Methoden, Systeme und graphischen Benutzeroberflächen dieser Ausführungsformen ermöglichen es, Kopien eines Dokuments für die Echtzeitbearbeitung zu versenden oder Informationen in Hinblick auf Änderungen an diesem Dokument zu verbreiten.
  • Wie unten ausführlich beschrieben beinhalten manche Ausführungsformen der Erfindung eine Methode, welche ein Dokument für mehrere Clients zur Echtzeitbearbeitung bereitstellt. Dazu gehört auch, Kopien des Dokuments an mehrere Clients für die Echtzeitbearbeitung zu versenden. Die jeweiligen Changesets von zwei oder mehr der jeweiligen Clients werden aus der Vielzahl von Clients abgerufen. Ein entsprechendes Changeset stellt eine oder mehrere Änderungen an der entsprechenden Kopie des Dokument beim jeweiligen Client dar. Ein Ergebnis-Changeset wird in Übereinstimmung mit dem jeweiligen Changeset erzeugt. Das Ergebnis-Changeset wird an die Vielzahl der Clients versendet, um die entsprechende Kopie des Dokuments bei der Vielzahl der Clients zu aktualisieren.
  • Ein Server-System welches ein Dokument für eine Vielzahl von Clients bereitstellt, damit diese es in Echtzeit bearbeiten, beinhaltet einen oder mehrere Prozessoren und Speicher. In letzteren sind ein oder mehrere Programme zur Ausführung durch diesen Prozessor oder diese Prozessoren gespeichert. Das eine oder die mehreren Programme haben Anweisungen, die Kopien des Dokuments zur Echtzeitbearbeitung an die Vielzahl der Clients zu versenden. Außerdem haben sie Anweisungen, die entsprechenden Changesets für zwei oder mehr der jeweiligen Clients aus der Vielzahl der Clients abzurufen. Ein entsprechendes Changeset stellt eine oder mehrere Änderungen an der entsprechenden Kopie des Dokument beim jeweiligen Client dar. Das eine oder die mehreren Programme haben auch Anweisungen, die Ergebnis-Changesets für die jeweiligen Changesets zu erzeugen. Sie haben auch Anweisungen, die Ergebnis-Changesets an die Vielzahl der Clients zu versenden, um die entsprechenden Kopien des Dokuments bei der Vielzahl der Clients zu aktualisieren.
  • Ein Speichermedium, welches von einem Computer gelesen werden kann, speichert ein oder mehrere Programme, die von einem oder mehreren Prozessoren eines Servers für die Ausführung konfiguriert wurden. Das eine oder die mehreren Programme haben Anweisungen, die Kopien des Dokuments für die Echtzeitbearbeitung an die Vielzahl der Clients zu versenden. Sie haben auch Anweisungen, die entsprechenden Changesets zweier oder mehrerer Clients aus der Vielzahl der Clients abzurufen. Ein entsprechendes Changeset stellt eine oder mehrere Änderungen an der entsprechenden Kopie des Dokuments beim jeweiligen Client dar. Das eine oder die mehreren Programme haben Anweisungen, ein Ergebnis-Changeset, welches mit den jeweiligen Changesets übereinstimmt, zu erzeugen. Sie haben auch Anweisungen, die Ergebnis-Changesets an die Vielzahl von Clients zu versenden, um die entsprechenden Kopien des Dokuments bei der Vielzahl der Clients zu aktualisieren.
  • Eine Methode, die ein Dokument für Echtzeitbearbeitung verarbeitet zeigt zumindest einen Teil der jeweiligen Kopie des Dokuments an. Sie empfängt die Eingaben des jeweiligen Benutzers des Clients für die Bearbeitung des Dokuments. Sie versendet mit der Eingabe übereinstimmende Dokumentinformationen an einen Server, der mit einer Vielzahl von Clients verbunden ist. Sie empfängt das Ergebnis-Changeset, um die jeweiligen Kopien des Dokuments beim Client zu aktualisieren. Das Ergebnis-Changeset beschreibt die Änderungen am Dokument basierend auf Änderungen an den jeweiligen Kopien des Dokuments bei zwei oder mehr Clients aus der Vielzahl von Clients. Die entsprechende Kopie des Dokuments wird beim Client übereinstimmend mit dem Ergebnis-Changeset aktualisiert.
  • Ein Client, der ein Dokument für die Echtzeitbearbeitung verarbeitet, hat einen oder mehrere Prozessoren und Speicher. In letzteren sind ein oder mehrere Programme zur Ausführung durch diesen Prozessor oder diese Prozessoren gespeichert. Das eine oder die mehreren Programme haben Anweisungen, zumindest einen Teil der jeweiligen Kopie des Dokuments anzuzeigen. Sie haben auch Anweisungen, Eingaben der jeweiligen Benutzer des Clients zur Bearbeitung des Dokuments zu empfangen. Das eine oder die mehreren Programme haben auch Anweisungen, mit den Eingaben übereinstimmende Dokumentinformationen an einen Server zu versenden, der mit einer Vielzahl von Clients verbunden ist. Sie haben auch Anweisungen, ein Ergebnis-Changeset zu empfangen, um die entsprechende Kopie des Dokuments beim Client zu aktualisieren. Das Ergebnis-Changeset beschreibt die Änderungen am Dokument basierend auf Änderungen an den jeweiligen Kopien des Dokuments bei zwei oder mehr Clients aus der Vielzahl von Clients. Das eine oder die mehreren Programme haben außerdem Anweisungen, die entsprechende Kopie des Dokuments beim Client übereinstimmend mit dem Ergebnis-Changeset zu aktualisieren.
  • Ein computerlesbares Speichermedium, speichert ein oder mehrere Programme, die so konfiguriert sind, um sie von einem oder mehreren Prozessoren eines Clients auszuführen. Das eine oder die mehreren Programme haben Anweisungen, zumindest einen Teil der jeweiligen Kopie des Dokuments anzuzeigen. Sie haben auch Anweisungen, Eingaben der jeweiligen Benutzer des Clients zur Bearbeitung des Dokuments zu empfangen. Das eine oder die mehreren Programme haben auch Anweisungen, mit den Eingaben übereinstimmende Dokumentinformationen an einen Server zu versenden, der mit einer Vielzahl von Clients verbunden ist. Sie haben auch Anweisungen, ein Ergebnis-Changeset zu empfangen, um die entsprechende Kopie des Dokuments beim Client zu aktualisieren. Dabei beschreibt das Ergebnis-Changeset die Änderungen an dem Dokument basierend auf den Änderungen an den entsprechenden Kopien des Dokuments bei zwei oder mehr Clients aus der Vielzahl von Clients. Das eine oder die mehreren Programme haben außerdem Anweisungen, die entsprechende Kopie des Dokuments beim Client übereinstimmend mit dem Ergebnis-Changeset zu aktualisieren.
  • Eine Methode, um ein Dokument für eine Vielzahl von Clients bereitzustellen, damit diese es in Echtzeit bearbeiten, beinhaltet das Versenden einer ersten Kopie dieses Dokuments an einen ersten der vielen Clients. Eine zweite Kopie des Dokuments wird an einen zweiten der vielen Clients versendet. Ein erstes Changeset wird beim ersten Client und ein zweites Changeset beim zweiten Client abgerufen. Das erste Changeset beschreibt eine oder mehrere Änderungen an der ersten Kopie des Dokuments beim ersten Client. Das zweite Changeset beschreibt eine oder mehrere Änderungen an der zweiten Kopie des Dokuments beim zweiten Client. Ein Ergebnis-Changeset wird erzeugt, welches zumindest mit dem ersten und zweiten Changeset übereinstimmt. Das Ergebnis Changeset wird an den ersten Client zur Aktualisierung der ersten Kopie des Dokuments, und an den zweiten Client zur Aktualisierung der zweiten Kopie des Dokuments gesendet.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Das Blockdiagramm in veranschaulicht ein modellhaft verteiltes Computersystem in Übereinstimmung mit einigen Ausführungsformen.
  • Das Blockdiagramm in veranschaulicht ein Dokumentenmanagement-System in Übereinstimmung mit einigen Ausführungsformen.
  • Das Blockdiagramm in veranschaulicht einen Client in Übereinstimmung mit einigen Ausführungsformen.
  • Das Blockdiagramm in veranschaulicht beispielhafte Einträge in der Benutzerdatenbank in Übereinstimmung mit einigen Ausführungsformen.
  • Das Blockdiagramm in veranschaulicht beispielhafte Einträge in der Dokumentendatenbank in Übereinstimmung mit einigen Ausführungsformen.
  • veranschaulicht ein beispielhaftes Textdokument in Übereinstimmung mit einigen Ausführungsformen
  • veranschaulicht eine beispielhafte Benutzeroberfläche für Echtzeit Blogging gemäß einigen Ausführungsformen.
  • ist ein High-Level Ablaufdiagramm, welches Prozesse veranschaulicht, die von Clients und einem Dokumentenmanagement-System in Übereinstimmung mit einigen Ausführungsformen durchgeführt werden.
  • und sind Flussdiagramme, welche ein Verfahren zur Bereitstellung eines Dokuments an eine Vielzahl von Kunden zur Echtzeitbearbeitung gemäß einigen Ausführungsformen darstellen.
  • ist ein Flussdiagramm, welches eine Methode darstellt, mit der ein Dokument zur Echtzeitbearbeitung verarbeitet wird, die bei einem Client in Übereinstimmung mit einigen Ausführungsformen durchgeführt wird.
  • ist ein Flussdiagramm, welches ein Verfahren zur Bereitstellung eines Dokuments an eine Vielzahl von Clients zur Echtzeitbearbeitung gemäß einigen Ausführungsformen darstellt.
  • ist ein Flussdiagramm, welches eine beispielhafte Methode zur gemeinsamen Überarbeitung eines Textdokuments gemäß einem Ausführungsbeispiel der Erfindung darstellt.
  • ist ein Flussdiagramm, welches eine beispielhafte Methode zur gemeinsamen Überarbeitung eines Textdokuments gemäß einem Ausführungsbeispiel der Erfindung darstellt.
  • ist ein Flussdiagramm, welches eine Methode zum Aktualisieren von Changesets in Übereinstimmung mit einigen Ausführungsformen veranschaulicht.
  • ist ein Flussdiagramm, welches die Lieferung eines Echtzeit-Blogs gemäß verschiedenen Ausführungsformen der Erfindung veranschaulicht.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • Es folgt eine Beschreibung von Methoden und Systemen zur Bereitstellung eines Dokuments zur Echtzeitbearbeitung. Auf gewisse Ausführungsformen der Erfindung wird verwiesen, diese Beispiele werden in den begleitenden Zeichnungen dargestellt. Obwohl die Erfindung in Zusammenhang mit den Ausführungsformen beschrieben wird, gilt es als selbstverständlich, dass die Erfindung nicht auf diese bestimmten Ausführungsformen beschränkt ist. Ganz im Gegenteil, die Erfindung soll Alternativen, Abänderungen und Entsprechungen abdecken, welche die Reichweite und den Geist der beigefügten Ansprüche respektieren.
  • In der folgenden Beschreibung werden zum vollständigen Verständnis der vorliegenden Erfindung außerdem zahlreiche spezifische Einzelheiten dargelegt. Es wird jedoch für jede fachkundige Person ersichtlich sein, dass nicht alle spezifische Einzelheiten für den Einsatz der Erfindung des Patentgegenstands notwendig sind. In anderen Fällen werden dem Fachmann mit durchschnittlichem Wissen wohl bekannte Methoden, Prozeduren und Netzwerke nicht näher beschrieben, um nicht von Aspekten der vorliegenden Erfindung abzulenken.
  • Es versteht sich außerdem, dass trotz der allfälligen Verwendung von Begriffen wie erstens, zweitens, etc. bei der Beschreibung vieler Elemente, diese nicht auf diese Begriffe beschränkt sind. Diese Begriffe werden nur verwendet, um ein Element vom anderen zu unterscheiden. Ein erster Kontakt könnte beispielsweise als ein zweiter Kontakt bezeichnet werden und gleichermaßen könnte ein zweiter Kontakt als ein erster Kontakt bezeichnet werden, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Der erste Kontakt und der zweite Kontakt sind beides Kontakte, aber sie sind nicht ein und derselbe Kontakt.
  • Die Begriffe, die hier zur Beschreibung der Ausführungsformen verwendet werden, dienen ausschließlich der Beschreibung einzelner Ausführungsformen und beabsichtigen nicht die Erfindung auf diese zu beschränken. Wie in der Beschreibung der Erfindung und den angehängten Ansprüchen verwendet, sollen die Singularformen „ein“, „eine“, „einer“ und „der“, „die“, „das“ ebenso die Pluralformen beinhalten, sofern aus dem Zusammenhang nicht eindeutig etwas Anderes hervorgeht. Es versteht sich außerdem, dass die Begriffe "und/oder", so wie sie hier verwendet werden, auf jegliche und alle möglichen Kombinationen eines oder mehrerer der verbundenen Artikel aus der Liste Bezug nehmen und diese miteinschließen. Es versteht sich außerdem, dass die Begriffe „umfasst“ und/oder „umfassend“ bei Verwendung mit dieser Spezifizierung das Vorhandensein von aufgeführten Funktionen, vollständigen Einheiten, Schritten, Vorgängen, Elementen und/oder Komponenten festlegt, jedoch nicht das Vorhandensein oder das Hinzufügen einer oder mehrerer Funktionen, vollständiger Einheiten, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen hiervon ausschließt.
  • Die hier verwendete Bedeutung des Begriffs "Falls" kann je nach Kontext als "wenn" oder "bei" oder "als Folge der Festlegung" oder "als Folge der Festlegung" oder "gemäß einer Festlegung, dass (eine zur Vorausgehenden erklärte Bedingung wahr oder nicht wahr ist) ausgelegt werden. Desgleichen kann der Satz „wenn festgestellt wird“ oder „wenn [ein angegebener Zustand oder Ereignis] entdeckt wird“ je nach Zusammenhang eventuell ausgelegt werden als „bei Feststellen“ oder „als Folge der Festlegung“ oder „bei Entdecken (des angegebenen Zustands oder Ereignisses)“ oder „als Folge der Entdeckung (des angegebenen Zustands oder Ereignisses)“.
  • Der hier verwendete Begriff "Blog" bezieht sich auf ein Web-Protokoll, welches als Teil einer Art Webseite oder als Webseite Benutzern ermöglicht, Kommentare, Ereignisbeschreibungen oder sonstiges Bild-, Foto- und/oder Videomaterial einzugeben. Solche Eingabehandlungen in Form von Kommentaren, Beschreibungen und sonstigen Materialien werden oft als "einen Blog posten" oder "in einem Blog posten" bezeichnet. Manche Blogs ermöglichen nur hierzu berechtigten Benutzern Einträge zu posten. Manche Blogs ermöglichen nur zugriffsberechtigten Benutzern, gepostete Blogs (d. h. Einträge) anzuzeigen. In manchen Ausführungsformen nennt man das Posten eines Blogs "Blogging". "Blogging" bezieht sich in wieder anderen Ausführungsformen auf den Zugriff auf Blogs (d. h. auf den Besuch einer Webseite, die ein Webprotokoll als Teil integriert). Ein Blog kann auch ein elektronisches Forum sein, in dem einer oder mehrere Benutzer Inhalte für einen oder mehrere andere Benutzer zur Ansicht bereitstellen. In der Regel stellen Blogs mit der Zeit mehr als einen Blogeintrag bereit.
  • Es werden Systeme in vielen Ausführungsformen veröffentlicht, welche die gemeinsame Bearbeitung von Dokumenten, wie etwa Textdokumente, und computerimplementierte Methoden zur gemeinsamen Bearbeitung von Textdokumenten ermöglichen. Beispielhafte Systeme umfassen ein Host-Computersystem, wie etwa einen Server, der über ein Netzwerk mit jedem einzelnen einer Vielzahl von Clientencomputersystemen verbunden ist. In manchen Ausführungsformen führen Computersysteme von Host und Client eine webbasierte Applikation zur gemeinsamen Textbearbeitung aus. Diese wird manchmal als Webapplikation bezeichnet. Sie umfasst einen Hostcode, der vom Hostcomputersystem ausgeführt wird, und einen Clientencode, der in Verbindung mit der jeweiligen Browserapplikation ausgeführt wird, welche auf jedem der Clientencomputersysteme läuft. Die webbasierte Applikation zur gemeinsamen Textbearbeitung kann auch für andere Dokumente verwendet werden, beispielsweise für Grafiken, Tabellen und ähnliche. Textdokumente werden hier lediglich als Beispiel behandelt. Die veranschaulichten Methoden sind zwar textdokumentbezogen, die gleichen Methoden können jedoch auch für die gemeinsame Bearbeitung anderer Dokumentenarten verwendet werden.
  • In manchen Ausführungsformen verwalten sowohl der jeweilige Clientencode wie auch der entsprechende Hostcode das Textdokument parallel auf ihren jeweiligen Computersystemen. Ein Clientencode eines ersten Clientencomputersystems empfängt von Benutzer angegebene Bearbeitungen am Textdokument, wie beispielsweise eingefügte oder gelöschte Buchstaben, verändert das lokal verwaltete Textdokument entsprechend und überträgt die Bearbeitungen an den Hostcode des Hostcomputersystems. Der Hostcode erstellt eine mit den empfangenen Bearbeitungen übereinstimmende neue Version des Textdokuments, bestimmt eine geeignete Aktualisierung für die verschiedenen Clientencodes, die auf den anderen Clientencomputersystemen ausgeführt werden, und liefert dann die Aktualisierung an die anderen Clientencodes. Die anderen Clientencodes verwenden die Aktualisierung, um die Bearbeitungen des ersten Clientencomputersystems in ihre lokal verwaltete Kopie des Textdokuments einzuarbeiten. Dadurch dass Bearbeitungen oft genug an das Hostcomputersystem und die Aktualisierungen schnell an die andern Clientencomputersysteme gesendet werden, können dem Benutzer die Bearbeitungen andere Benutzer in Echtzeit angezeigt werden.
  • In manchen Ausführungsformen wird die Echtzeitbearbeitung von Dokumenten verwendet, um mehreren Benutzern einen Echtzeit-Blog bereitzustellen. Ein Echtzeitblog ist typischerweise ein Blog, in dem ein Mastereditor Dokumenteninhalte, wie etwa Wörter, Buchstaben, Bilder oder sonstige Objekte bereitstellt, und dieser Inhalt den Betrachtern des Blogs in Echtzeit angezeigt wird. Ein Benutzer, der mit dem Browser einen Echtzeitblog im Internet betrachtet, kann die Objekte des Mastereditors in Echtzeit angezeigt bekommen, sowie sie von diesem bereitgestellt werden. Der Benutzer kann dabei zusehen, wie einzelne Buchstaben oder Wörter im Blog verändert werden, je nachdem welche Granularitätsstufe auf die Benutzereingaben angewendet wird. Echtzeitblogs werden wahlweise verwendet, um über aktuell ablaufende Ereignisse zu berichten. Die Verwendung der Echtzeitbearbeitung von Dokumenten bedeutet, dass der Blogautor (z. B. der Mastereditor) die von anderen betrachtete Ansicht des Blogs im Zuge seiner Änderung am Blog fortlaufend aktualisiert. Manche Inhalte eines Echtzeitblog (z. B. Blogeinträge) enthalten sowohl statische wie auch Echtzeitelemente (d. h. Inhalte, die in Echtzeit aktualisiert werden).
  • In manchen Ausführungsformen kann der Inhalt von Echtzeitblogs von mehr als einem Editor bearbeitet werden (z. B. von Junioreditoren, denen Bearbeitungsrechte typischerweise vom Mastereditor gewährt werden). Wahlweise werden den Clients Änderungen von Junior- und Mastereditoren beide in Echtzeit angezeigt, so wie sie vorgenommen werden. Master- und Junioreditoren können beide gleichzeitig Änderungen am selben Blogeintrag vornehmen, ohne den Bloginhalt zu sperren. In manchen Ausführungsformen werden Änderungen am vorherigen Bloginhalt markiert, um darauf hinzuweisen, dass der Inhalt geändert wurde, wohingegen neue Inhalte ohne Markierung hinzugefügt werden. Die von einem Editor vorgenommenen Änderungen, werden automatisch im Blog und bei den Clients, die den Blog betrachten, aktualisiert, ohne dass der Editor weiteres unternehmen muss, z. B. ohne explizite Aktualisierungsbefehle des Editors.
  • Ein Objekt, das sich nicht automatisch auf Eingabe durch den Editor hin in Echtzeit aktualisiert, wird hier statischer Blogeintrag oder statisches Dokument genannt. Eine Aktualisierung kann erfolgen, wenn diese vom Editor explizit initialisiert wird, nachdem der Editor den Blogeintrag oder einen wesentlichen Teil davon fertiggestellt hat. In einem statischen Blog muss der Editor typischerweise jede Aktualisierung getrennt initialisieren.
  • Ein Mastereditor kann auch das Hinzufügen von Kommentaren zum Echtzeitblog steuern. Beispielsweise kann ein Mastereditor bestimmen, dass jeder Kommentare von jedem Clienten aus hinzufügen darf, oder dass eine ausgewählte Benutzer- und/oder Clientengruppe Kommentare zum Blog hinzufügen darf. Kommentare von anderen Benutzern werden wahlweise in Echtzeit hinzugefügt. Während beispielsweise ein Mastereditor Material zu einem Blogeintrag hinzufügt, kann ein zweiter Benutzer simultan Kommentare zu diesem Blogeintrag hinzufügen. Die Benutzer bekommen den Kommentar wahlweise in Echtzeit angezeigt. Insbesondere kann jeder Buchstabe oder jedes Wort des Kommentars anderen Benutzern (und dem Masterbenutzer) angezeigt werden, sowie diese durch den zweiten Benutzer geliefert werden. Wie in 6 gezeigt, ist ein Kommentar wahlweise mit einem bestimmten Teil eines Blogeintrags oder mit dem gesamten Blogeintrag verbunden.
  • Für Ereignisse, die zeitnah zu ihrer Ursache eintreten, d. h. ohne unnötige Verzögerung, wird hier der Begriff Echtzeit verwendet. Ein Echtzeitdokument ist beispielsweise ein Dokument, dessen Änderungen verfügbar sind, sobald diese empfangen werden, und das auf die Verfügbarkeit dieser Änderungen hin aktualisiert wird. Die mit den Benutzereingaben übereinstimmende Überarbeitung eines Dokuments in Echtzeit (d. h. innerhalb eines vorgegebenen Zeitrahmens, z. B. 0,1 Sekunden oder 0,5 Sekunden), wird hier Echtzeitbearbeitung genannt. In manchen Ausführungsformen umfasst Echtzeitbearbeitung den Erhalt einer Benutzereingabe, die benutzereingabenkonforme Überarbeitung eines Dokuments und das Senden des überarbeiteten Dokuments (oder des überarbeiteten Teils des Dokuments) an eine Vielzahl von Benutzern, die mit dem Dokument in Verbindung stehen – all dies in Echtzeit. Eine Echtzeitbearbeitungsplattform umfasst Systeme und Verfahren zur Echtzeitüberarbeitung mindestens eines Dokuments, übereinstimmend mit den Eingaben eines Editors (oder eines Benutzers). Die Granularität solcher Eingaben kann auf der Stufe von Buchstaben oder Worten liegen (z. B. kann jede Eingabe einen einzelnen Buchstaben oder ein einzelnes Wort umfassen).
  • 1 ist ein Blockdiagramm, das ein mit bestimmten Ausführungsformen übereinstimmendes, beispielhaft verteiltes Computersystem 100 darstellt. In 1 umfasst das System 100 einen oder mehr Clientencomputer 120 (auch Clientencomputersysteme genannt), Kommunikationsnetzwerk(e) 130 und Hostserversystem 110 (auch ein Dokumentmanagementsystem oder ein Hostcomputersystem genannt). System 100 umfasst in der Regel zwei oder mehr Clientencomputer 120. Verschiedene Ausführungsformen von Hostserversystem 110 implementieren das in diesem Dokument beschriebene Dokumentmanagementsystem.
  • Clientencomputer 120 kann ein beliebiges Computergerät aus einer Vielzahl von Auswahlmöglichkeiten sein (z. B. Internetkiosk, persönlicher digitaler Assistent, Mobiltelefon, Gaminggerät, Desktopcomputer, Laptop, Handheld-Computer oder Kombinationen daraus), das zur Aktivierung der unten beschriebenen Aktivitäten verwendet wird. Clientencomputer 120 wird hier auch als Client(s) bezeichnet. Zum Client 120 gehört eine grafische Benutzeroberfläche (GUI) 111. Client 120 wird unten mit Bezug auf 3 genauer beschrieben. Client 120 ist über ein Kommunikationsnetzwerk 130 mit einem Hostserversystem 110 verbunden. Das GUI 111 dient zur Anzeige eines Dokuments oder von Teilen eines Dokuments, so wie unten genauer beschrieben. Hostserversystem 110 erbringt Dokumentenverwaltungsdienste für eine Benutzergemeinschaft (z. B. Mitarbeiter eines Unternehmens, Mitglieder einer Organisation oder Gruppe, Besucher eines Webprotokolls (auch Blog genannt) usw.), die von Client-120-Geräten auf Dokumente zugreifen.
  • Hostserversystem 110 umfasst einen oder mehr Server(s), wie beispielsweise Server 112, die an das Kommunikationsnetzwerk 130 angeschlossen sind. Wahlweise sind der eine oder die mehreren Server an Kommunikationsnetzwerk 130 über einen Front-End-Server 122 angeschlossen (z. B. ein Server, der eingehende Anforderungen zum geeigneten Server von System 110 vermittelt (und wahlweise analysiert) und der Antworten und/oder sonstige Informationen, die als Antworten auf Anforderungen von Clients gesendet werden formatiert). Front-End-Server 122 kann, so er vorhanden ist, ein webbasierter Server sein, der webbasierte Applikationen an Hostserversystem 110 liefert. Front-End-Server 122 kann, so er vorhanden ist, auch Kommunikationen zu und von anderen Zielen, wie beispielsweise einem Autorisierungssystem (nicht abgebildet), weiterleiten.
  • Hostserversystem 110 umfasst Benutzerdatenbank 114, Dokumentendatenbank 116 und wahlweise Überarbeitungsdatenbank 118. In manchen Ausführungsformen umfasst Hostserversystem 110 auch eine oder mehrere andere Datenbanken oder kann auf diese zugreifen. Dazu gehört z. B. eine Anzeigendatenbank (nicht abgebildet). Server 112 umfasst Applikationen 138 einschließlich Echtzeitbloggingapplikation 140. Echtzeitbloggingapplikation 140 enthält Empfangsmodul 142, Changesetmodul 144 und/oder Steuermodul für Bearbeitungsrechte 146. Server 112 kommuniziert mit internen Datenbanken des Hostserversystems 110, wie Benutzerinformationsdatenbank 114, Dokumentendatenbank 116 und Überarbeitungsdatenbank 118 (optional) unter Verwendung eines lokalen Netzwerks, interner Kommunikationsbusse oder anderweitig geeigneter Mechanismen oder einer Kombination von Mechanismen.
  • Server 112 kommuniziert mit Clienten 120 über den Front-End-Server 122 (so vorhanden) und Kommunikationsnetzwerk(en) 130. In manchen Ausführungsformen ist das Kommunikationsnetzwerk 130 das Internet. In anderen Ausführungsformen kann das Kommunikationsnetzwerk 130 ein beliebiges lokales Netzwerk (LAN), Fernnetz (WAN), innerstädtisches Netzwerk oder eine Kombination solcher Netzwerke sein. In manchen Ausführungsformen ist Server 112 ein webbasierter Server, der Dokumente anhand geeigneter Kommunikationsprotokoll verwaltet. Alternativ kann es auch ein Intranet-Server sein, falls der Server 112 innerhalb eines Intranets verwendet wird.
  • Applikation 138 umfasst Applikationsprogramme, die auf dem Server 112 ausgeführt werden, einschließlich Echtzeitbloggingapplikation 140, die zur Verwaltung eines online Dokumentenverwaltungssystems verwendet wird. In manchen Ausführungsformen umfasst Applikation 138 ein Modul zur Verarbeitung von Benutzerinformationen (nicht abgebildet), in der das Modul zur Verarbeitung von Benutzerinformationen Zugriff und Aktualisierung der Benutzerinformationsdatenbank 114 unterstützt. Benutzerinformationsdatenbank 114 speichert verschiedenen Informationen zu den Benutzern des Hostserversystems 110, einschließlich Benutzereinstellungen, Bearbeitungsrechte, Authentifizierungsinformationen usw. Benutzerinformationsdatenbank 114 wird unten mit Bezug auf 4A genauer beschrieben.
  • Empfangsmodul 142 nimmt Changesets und/oder Eingaben von Clients 120 entgegen. Changesetmodul 144 verwaltet und aktualisiert Changesets und/oder Dokumente übereinstimmend mit eingegangenen Changesets oder Eingaben. In einigen Ausführungsformen werden die Dokumente in der Dokumentendatenbank 116 gespeichert. In manchen Ausführungsformen werden die Changesets in Dokumentendatenbank 116 oder Überarbeitungsdatenbank 118 gespeichert, so diese vorhanden sind.
  • Dokumentendatenbank 116 speichert verschiedene Informationen zu Dokumenten, die auf dem Hostserversystem 110 gespeichert sind (z. B. Dokumentenkennung, Inhalt, Bearbeitungsrechte, Überarbeitungsverlauf usw.). In manchen Ausführungsformen speichert Dokumentendatenbank 116 auch Changesets und/oder Eingaben, die von Clients 120 stammen. Dokumentendatenbank 116 ist unten mit Bezug auf 4B genauer beschrieben.
  • Überarbeitungsdatenbank 118 ist wahlweise in Hostserversystem 110 enthalten. Überarbeitungsdatenbank 118 kann Changesets und/oder Eingaben, die von Clients 120 stammen enthalten. In einigen Ausführungsformen enthält Überarbeitungsdatenbank 118 mehrerer Versionen eines entsprechenden Dokuments (z. B. Versionen vor und nach der benutzereingabenkonformen Bearbeitung). In manchen Ausführungsformen enthält Überarbeitungsdatenbank 118 den Bearbeitungsverlauf für ein oder mehr Dokumente. In manchen Ausführungsformen ist Überarbeitungsdatenbank 118 in Dokumentendatenbank 116 enthalten.
  • Server 112 ist im Wesentlichen dafür konfiguriert, gewisse Aspekte von Hostserversystem 110 (Dokumentverwaltungssystem) zu verwalten. Dazu gehört Überarbeitungsinformationen von Clients 120 zu empfangen (z. B. Changesets und/oder Eingaben) und Überarbeitungsinformationen an andere Clients 120 zu übertragen (mit oder ohne diese weiterzuverarbeiten).
  • Das Hostserversystem 110 wird wahlweise als Teil des Hauptdokumentverwaltungssystems implementiert, das Dokumentverwaltungsdienste für allgemeine Zwecke bereitstellt. Alternativ kann das Hostserversystem 110 als Bloggingsystem implementiert werden, das Dokumentverwaltungsdienste ausschließlich für das Bloggen bereitstellt.
  • In manchen Ausführungsformen umfassen die Hostserversysteme 110 und 112 mehr und/oder weniger zusätzliche Module, Funktionen oder Datenbanken. Die im Hostserversystem 110 und Server 112 abgebildeten Module stellen Funktionen dar, die von bestimmten Ausführungsformen durchgeführt werden.
  • Das Blockdiagramm in 2 veranschaulicht Hostserversystem 110, welches auch Dokumentverwaltungssystem genannt wird. Hostserversystem 110 umfasst im Allgemeinen eine oder mehrere Recheneinheiten (CPUs) 202, ein oder mehrere Netzwerk- oder andere Kommunikationsschnittstellen 204, einen Speicher 206 und einen oder mehrere Kommunikationsbusse 208, um diese Komponenten miteinander zu verbinden. In manchen Ausführungsformen können die Kommunikationsbusse 208 Schaltkreise enthalten (manchmal als Chipsätze bezeichnet), welche Kommunikationen zwischen Systemkomponenten untereinander verbinden und steuern. In einigen anderen Ausführungsformen enthält Hostserversystem 110 eine Benutzerschnittstelle (nicht abgebildet) (z. B. eine Benutzerschnittstelle mit einem Bildschirmgerät, einer Tastatur und einer Maus oder einem anderen Zeigegerät). Es ist aber eher üblich, dass Hostserversystem 110 von verschiedenen Clientensystemen (z. B. 120) aus gesteuert und verwendet wird.
  • Der Speicher 206 von Hostserversystem 110 umfasst einen Hochgeschwindigkeitsspeicher mit Zufallszugriff, wie beispielsweise DRAM, SRAM, DDR RAM oder andere Festkörperspeichervorrichtungen mit Zufallszugriff; und es kann einen nichtflüchtigen Speicher umfassen, wie zum Beispiel eine oder mehrere Magnetplattenspeichervorrichtungen, optische Plattenspeichervorrichtungen, Flashspeichervorrichtungen oder andere nichtflüchtige Festkörperspeichervorrichtungen. Speicher 206 kann optional ein oder mehrere Speichergeräte umfassen, die sich entfernt von der/den CPU(s) 202. befinden. Speicher 206 oder alternativ der/die permanente/n Speichergerät/e innerhalb des Speichers 206 bestehen aus einem nichtflüchtigen computerlesbaren Datenspeicher. In einigen Ausführungsformen speichert der Speicher 206 oder das computerlesbare Speichermedium des Speichers 206 die folgenden Programme, Module und Datenstrukturen oder eine Teilmenge davon ab:
    • • Betriebssystem 210, das Verfahren zur Abwicklung von verschiedenen grundlegenden Systemdienstleistungen und zur Ausführung von Aufgaben, die von der Hardware abhängen, beinhaltet;
    • • ein Netzwerkkommunikationsmodul (oder Anweisungen) 212, das zur Verbindung des Hostserversystem 110 mit anderen Computern (z. B. Clients 120) über ein oder mehrere Netzwerkschnittstellen 204 und ein oder mehrere Kommunikationsnetzwerke 130 (1), wie z.B. das Internet, andere Weitverkehrsnetzwerke, lokale Netzwerke, drahtlose Stadtnetze und ähnliche verwendet wird;
    • • Server 112 für die Verwaltung bestimmter Aspekte des Hostserversystems 110, einschließlich der Dokumentverwaltungsdienste; und
    • • Präsentationsmodul 220, das Ergebnisse von Server 112 (z. B. Echtzeitbloggingapplikation 140) zur Anzeige bei jeweiligen Clients formatiert; Präsentationsmodul 220 kann beispielsweise den Inhalt eines jeweiligen Dokuments als Webseite oder XML-Dokument erzeugen; in manchen Ausführungsformen wird das Präsentationsmodul 220 durch den Front-End-Server 122 ausgeführt, der einen der Server umfasst, die das Dokumentverwaltungssystem implementieren; das Präsentationsmodul 220 ist ein Modul der Echtzeitbloggingapplikation 140.
  • In manchen Ausführungsformen enthält Server 112 folgende Programme, Module und Datenstrukturen, oder eine Teilmenge davon:
    • • Applikation 138, einschließlich Echtzeitbloggingapplikation 140, um die Hauptfunktionen eines Dokumentverwaltungssystems durchzuführen; Applikation 138 kann wahlweise andere Applikationen 218 enthalten;
    • • Benutzerinformationsdatenbank 114, die Benutzerinformationen speichert (siehe 4A);
    • • Dokumentendatenbank 116, die Dokumente sowie Informationen (z. B. Metadaten) zu den abgelegten Dokumenten speichert (z. B. Dokumenttitel, Dokumenttyp, Erstellungsdatum, erster Autor, letzte Aktualisierung, Zeitstempel, Speicherort usw.); und
    • • Optionale Überarbeitungsdatenbank 118, die Überarbeitungsinformationen zu den Dokumenten speichert, die in der Dokumentendatenbank 116 abgelegt sind (z. B. Changesets, Zeitstempel, Editor, Bearbeitungsrechte, Bearbeitungsrechtesteuerung usw.); ansonsten können Informationen zu Bearbeitungsrechten und Bearbeitungsrechtesteuerung in Benutzerdatenbank 114 und/oder Dokumentendatenbank 116 gespeichert werden.
  • Echtzeitbloggingapplikation 140 verarbeitet typischerweise dokumentbezogene Anforderungen und Eingaben von Clienten 120 und liefert diesen Antworten. In manchen Ausführungsformen umfasst Echtzeitbloggingapplikation 140 Echtzeitblogging-Clientenschnittstellenprogramm 216 und/oder Applikationsverteilermodul 222.
  • Das Echtzeitblogging-Clientschnittstellenprogramm 216 handhabt Anforderungen und Eingaben von Clienten 120 und sendet diesen Informationen. In manchen Ausführungsformen enthält das Echtzeitblogging-Clientschnittstellenprogramm 216:
    • • Empfangsmodul 142, das Changesets und/oder Einträge von Clienten 120 über Kommunikationsschnittstelle 204 und/oder Kommunikationsnetzwerk 212 empfängt;
    • • Changesetmodul 144, das Changesets und/oder Dokumente übereinstimmend mit empfangenen Changesets oder Einträgen verwaltet und aktualisiert; und
    • • Modul 146 zur Steuerung der Bearbeitungsrechte, das Bearbeitungsrechte eines jeweiligen Benutzers basierend auf Informationen, die in der Benutzerinformationsdatenbank 114 und/oder Dokumentendatenbank 116 gespeichert sind, verwendet, überprüft und aktualisiert.
  • Applikationsverteilermodul 222, so vorhanden, verteilt einen Satz von Anweisungen an Clienten 120. Diese beziehen sich auf das Anzeigen eines Dokuments, den Empfang von Benutzereinträgen und/oder die Aktualisierung des Dokuments usw. In manchen Ausführungsformen wird der Satz von Anweisungen als eine Webapplikation verteilt. In manchen Ausführungsformen wird der Satz von Anweisungen auf einer Webseite als eingebettete Applikation verteilt (die auf Java Script, Java Applet, Ajax, Comet, Active X oder Programmiersprachen und -werkzeugen jeder beliebigen anderen Art basieren können). In manchen Ausführungsformen wird der Satz von Anweisungen in Clienten 120 als Erweiterungspaket, Softwareerweiterung und/oder Werkzeugleiste für die jeweilige Browser-Applikation (z. B. 314 in 3) verteilt.
  • Jedem der oben benannten Module und Applikationen entspricht ein Satz von Anweisungen, um eine oder mehrere der oben beschriebenen Funktionen durchzuführen. Diese Module (d. h. Sätze von Anweisungen) müssen nicht als separate Softwareprogramme, Verfahren oder Module implementiert werden, daher können verschiedene Teilmengen dieser Module in verschiedenen Ausführungsformen kombiniert oder auf andere Weise neuangeordnet werden. In manchen Ausführungsformen kann der Speicher 206 eine Teilmenge der vorstehend bezeichneten Module und Datenstrukturen speichern. Ferner kann der Speicher 206 zusätzliche, vorstehend nicht beschriebene Module und Datenstrukturen speichern.
  • Anhand der getrennten Blöcke aus 1 und 2 sollen nicht Funktionselemente der Ausführungsformen strukturell, sondern vielmehr manche Ausführungsformen funktional beschrieben werden. Ein Fachexperte kann erkennen, dass die funktionellen Elemente in der eigentlichen Implementierung gruppiert oder über mehrere Komponenten verteilt sind. In der Praxis und wie unter Fachleuten auf dem Gebiet bekannt, könnten gesondert dargestellte Elemente kombiniert und einige getrennt werden. Dokumentendatenbank 116 ist beispielsweise In manchen Ausführungsformen auf dem Server 112 gespeichert. In anderen Ausführungsformen wird Dokumentendatenbank 116 anhand von einem oder mehreren Servern implementiert, deren Hauptaufgabe darin besteht, Dokumenteninformationen zu verarbeiten und zu speichern. In manchen Ausführungsformen ist Überarbeitungsdatenbank 118 in Dokumentendatenbank 116 enthalten und umgekehrt. In manchen Ausführungsformen ist Benutzerdatenbank 114 mit in Dokumentendatenbank 116 enthalten und umgekehrt. In manchen Ausführungsformen sind Benutzerdatenbank 114, Dokumentendatenbank 116 und/oder Überarbeitungsdatenbank 118 in einem externen Datenbankserver untergebracht, der sich an einem physikalisch von Server 112 getrennten Standort befindet. Benutzerdatenbank 114, Dokumentendatenbank 116 und/oder Überarbeitungsdatenbank 118 können auf einem oder mehreren Servern implementiert werden.
  • Die tatsächliche Serveranzahl, die verwendet wird, um ein Hostserversystem 110 zu implementieren und wie die Funktionen unter ihnen zugewiesen werden, variiert von einer Implementierung zur anderen und kann teilweise von der Menge des Datenverkehrs abhängen, die das System während der Spitzenverbrauchszeiträume als auch während der durchschnittlichen Nutzungszeiträume verarbeiten muss. Sie kann auch von der Datenmenge abhängen, die im Dokumentverwaltungssystem gespeichert ist. Außerdem können einer oder mehrere der Blöcke in 1 auf einem oder mehreren Servern implementiert werden, die entwickelt wurden, um die beschriebene Funktionalität zu liefern. Obwohl gewisse Funktionen hierin mit Bezug auf Client-120- und Server-112-Implementierung beschrieben werden, sind die Ausführungsformen nicht auf diese Unterscheidung eingeschränkt. Zumindest einige der Funktionen, die hierin als Teil von Server 112 beschrieben werden, können ganz oder teilweise auf Client 120 implementiert werden oder umgekehrt.
  • Das Blockdiagramm in 3 veranschaulicht einen Clienten, gemäß einiger Ausführungsformen auch Clientensystem oder Clientengerät genannt. Zu Client 120 gehört eine Benutzerschnittstelle 300, die typischerweise ein Anzeigegerät 301 und eine oder mehrere Eingabegeräte 303 wie etwa Tastatur und Maus oder ein anderes Zeigegerät umfasst. Client 120 enthält wie oben erwähnt eine graphische Benutzerschnittstelle (GUI) 111, die auf dem Anzeigegerät 301 angezeigt wird. Client 120 umfasst im Allgemeinen zum Verbinden dieser Komponenten eine oder mehrere Verarbeitungseinheiten (CPUs) 302, ein oder mehrere Netzwerk- oder andere Kommunikationsschnittstellen 304, einen Speicher 306 und einen oder mehrere Kommunikationsbusse 308. Die Kommunikationsbusse 308 können eine Schaltung (auch Chipsatz genannt) enthalten, die die Kommunikationen zwischen den Systemkomponenten miteinander verbindet und steuert.
  • Speicher 306 umfasst einen Hochgeschwindigkeits-Speicher mit Zufallszugriff, wie beispielsweise DRAM, SRAM, DDR RAM oder andere Festkörperspeichervorrichtungen mit Zufallszugriff; und es kann einen nichtflüchtigen Speicher umfassen, wie zum Beispiel eine oder mehrere Magnetplattenspeichervorrichtungen, optische Plattenspeichervorrichtungen, Flashspeichervorrichtungen oder andere nichtflüchtige Festkörperspeichervorrichtungen. Speicher 306 kann auch mehrere Speichergeräte enthalten, die sich entfernt von der CPU/den CPUs 302 befinden. Speicher 306 oder alternativ der/die permanente/n Speichergerät/e innerhalb des Speichers 306 bestehen aus einem nichtflüchtigen computerlesbaren Datenspeicher. In einigen Ausführungsformen speichert der Speicher 306 oder das nichtflüchtige computerlesbare Speichermedium des Speichers 306 die folgenden Programme, Module und Datenstrukturen oder eine Teilmenge davon ab:
    • • Betriebssystem 310, das Verfahren zur Abwicklung von verschiedenen grundlegenden Systemdienstleistungen und zur Ausführung von Aufgaben, die von der Hardware abhängen, beinhaltet;
    • • Netzwerk-Kommunikationsmodul 312 (oder Anweisungen), das zum Verbinden des Clienten 120 mit anderen Computern (z.B.: Hostserversystem 110 und andere Clienten 120) über ein oder mehrere Kommunikationsnetzwerk-Schnittstellen 304 und ein oder mehrere Kommunikationsnetzwerke 130 (1) verwendet wird, wie das Internet, andere Weitverkehrsnetzwerke, lokale Netzwerke, drahtlose Stadtnetze und so weiter;
    • • Browserapplikation 314; die Browserapplikation 314 oder die Erweiterung, Softwareerweiterung oder Werkzeugleiste der Browserapplikation umfasst einen Clientenassistenten 316, der Datenformatierungs- und/oder -verwaltungsaufgaben handhabt, indem er eine Dokumentbearbeitungsplattform bereitstellt. Dies würde ansonsten zumindest teilweise durch Präsentationsmodul 220 gehandhabt (2);
    • • Echtzeitbloggin-Webseite 318, eine vom Hostserversystem 110 empfangene Webseite, mittels derer ein Dokument zumindest teilweise auf GUI 111 angezeigt werden kann; Echtzeitblogging-Webseite 318 kann wahlweise Echtzeitblogging-Modul 320 enthalten, das als auszuführender Code in Webseite 318 eingebettet ist;
    • • (optionale) Dokumentdaten 322, eine lokal gespeicherte Kopie zur Bearbeitung und/oder Anzeige eines entsprechenden Dokuments; Dokumentdaten 322 enthalten (wahlweise) Metadaten zum Dokument (z. B. Dokumenttitel, Dokumenttyp, Erstellungsdatum, erster Autor, Zeitstempel der letzten Aktualisierung, Speicherort, Bearbeitungsrechte, Bearbeitungsrechtesteuerung usw.), wenn sie beim Clienten 120 gespeichert sind; in manchen Ausführungsformen sind Dokumentdaten 322 auf Webseite 318 enthalten; und
    • • (optionale) Changesetdaten 324, die Überarbeitungen/Änderungen an einem Dokument beschreiben (z. B. in Dokumentdaten 322 gespeichert und/oder in die Echtzeitblogging-Webseite 318 eingebunden); Changesetdaten 324, falls beim Client 120 eingebunden, beinhaltet typischerweise ein erstes Changeset 326-1 und ein zweites Changeset 326-2; Changesetdaten 324 wahlweise als drittes Changeset 326-3 und/oder Ergebnis-Changeset 328 eingebunden.
  • In manchen Ausführungsformen beinhaltet Client 120 eine Vielzahl von Echtzeitblogging-Webseiten. In einigen Ausführungsformen beinhaltet Client 120 eine Vielzahl von Echtzeitbearbeitungsplattformen. Client 120 kann beispielsweise eine Echtzeitbearbeitungsplattform für den Haupttext des Blogs beinhalten und eine oder mehrere Echtzeitbearbeitungsplattformen für Kommentare, die dem Blog teilweise oder ganz zugewiesen sind. Diese Echtzeitbearbeitungsplattformen werden wahlweise zusammen (d. h. gleichzeitig) angezeigt.
  • Client 120 beinhaltet in manchen Ausführungsformen eine Dokumentbearbeitungsapplikation (nicht abgebildet), die Browserapplikation 314 und Echtzeitblogging-Webseite 318 ersetzt oder ergänzt. Die Dokumentbearbeitungsapplikation beinhaltet in diesen Ausführungsformen Funktionen des Clientenassistenten 316 und/oder Echtzeitbloggingmoduls 320 sowie zusätzliche Module, die zur Eingabeverarbeitung (z. B. von Eingabegerät 303), Changesetverwaltung (z. B. 324) und Dokumentdatenaktualisierung 322 erforderlich sind.
  • Client 120 kann in manchen Ausführungsformen ein "dünner Client" sein, der Browserapplikation 314 beinhaltet, welche die vom Hostserversystem 110 empfangene Echtzeitblogging-Webseite 318 anzeigt. In dieser Ausführungsform zeigt Client 120 lediglich die Echtzeitblogging-Webseite an und führt gegebenenfalls Programme aus, die in der Echtzeitblogging-Webseite 318 eingebettet sind. Er beinhaltet aber keine zusätzliche Software. Die in der Echtzeitblogging-Webseite 318 eingebetteten Programme bringen in manchen Ausführungsformen Dokumentdaten ins Anzeigeformat. In Ausführungsformen mit dünnen Clienten handhabt das Hostserversystem 110 die Dokumentanzeige und die dokumentbezogene Verarbeitung von Daten, die nicht von Benutzern eingegeben werden (z. B. Ermittlung von Changesets, wie etwa ersten Changesets und/oder Ergebnis-Changesets).
  • Das Blockdiagramm in 4A veranschaulicht eine exemplarische Informationsdatenbank 114 und einen exemplarischen Benutzerdatensatz 402-2, gemäß manchen Ausführungsformen. Benutzerinformationsdatenbank 114 speichert Benutzerdatensätze 402 (z. B. 402-1 bis 402-N, wobei N für die Anzahl Datensätze steht.
  • Benutzerdatensatz 402 beinhaltet die folgenden Benutzerdaten bzw. eine Teilmenge oder Obermenge davon:
    • • Benutzerkennung 410, die einen Benutzer von Hostserversystem 110 eindeutig identifiziert;
    • • Benutzermetadaten 412 (z. B. Kontoerstellungsdatum, Datum der letzten Anmeldung, die zuletzt durchgeführten Aktivitäten, Klicks auf zuletzt verwendete Dokumente (oder deren Dokumentkennungen);
    • • Bearbeitungsrecht 414, das Aufschluss über die Bearbeitungsrechte eines Benutzers gibt (z. B. nur lesen, lesen und bearbeiten, und lesen, erstellen und bearbeiten von Dokumenten); Bearbeitungsrecht 414 ist in manchen Ausführungsformen dokumentabhängig (ein Benutzer darf beispielsweise Dokument A lesen und bearbeiten, aber Dokument B nur lesen) oder kategorieabhängig (der Benutzer darf beispielsweise Dokumente aus Kategorie A lesen und bearbeiten, aber Dokumente aus Kategorie B nur lesen);
    • • Bearbeitungsrechtesteuerung 416, die Aufschluss darüber gibt, ob ein Benutzer zur Steuerung der Bearbeitungsrechte anderer Benutzer berechtigt ist;
    • • Benutzerdefinierte Kennzeichnungen 418, die verwendet werden, um die durch den betreffenden Benutzer vorgenommenen Änderungen auszuweisen (z. B. ein Benutzername, Spitzname, Namenskürzel des Benutzers, oder andere eindeutige Zeichenfolgen usw.);
    • • Clientengeräte-Kennung/Typ 420 beschreibt Typ und Kennung eines Clientengeräts (z. B. 120); Clientengeräte-Kennung/Typ 420 kann in manchen Ausführungsformen verwendet werden, um Webseiten zu formatieren;
    • • Benutzereinstellungen 422 (z. B. Anzeigestil, Dokumentenbearbeitungseinstellungen (z. B. andere Editoren während der Bearbeitung eines Dokuments ausschließen) usw.);
    • • Benutzer-Authentifizierungsinformationen 428, die zur Authentifizierung des Benutzers erforderliche Angaben (z. B. Kennwort usw.) und/oder den Status/das Ergebnis einer Authentifizierung beinhalten (z. B. Authentifizierung erfolgreich/fehlgeschlagen/abgelaufen usw.);
    • • (optionaler) Benutzer-Onlinestatus 426, der den Onlinestatus eines Benutzers angibt (z. B. angemeldet, abgemeldet, beim Tippen, beim Lesen usw.);
    • • (optionale) IP-Adresse 430, die dem Benutzer zugewiesen ist; und
    • • (optionale) E-Mail-Adresse 430 des Benutzers.
  • Ein jeweiliger Benutzer kann in manchen Ausführungsformen einer Vielzahl von Clientengeräten zugewiesen sein (z. B. Mobiltelefon, Heimcomputer, Arbeitscomputer), und Benutzerinformationsdatenbank 114 kann einen entsprechenden Benutzerdatensatz 402 für ein entsprechendes Clientengerät beinhalten, das dem entsprechenden Benutzer zugewiesen ist. Alternativ kann Benutzerinformationsdatenbank 114 einen entsprechenden Benutzerdatensatz 402 samt Clientengeräte-Kennung/Typ für das dem Benutzer zugewiesene Clientengerät enthalten.
  • Das Blockdiagramm in 4B stellt gemäß mancher Ausführungsformen eine exemplarische Dokumentendatenbank 116 und einen exemplarischen Dokumentendatensatz 440-2 dar. Dokumentendatenbank 116 speichert Dokumentendatensatz 440 (zum Beispiel 440-1 bis 440-X, wobei X die Anzahl der Datensätze darstellt).
  • Dokumentendatensatz 440 enthält folgende Benutzerdaten oder eine Teilmenge oder Obermenge davon:
    • • Dokumentenkennung 442 zur eindeutigen Identifizierung eines auf Hostserversystem 110 gespeicherten Dokuments;
    • • Dokument-Metadaten 444 (z. B. Dokumenttitel, Dokumenttyp, Erstellungsdatum, erster Autor, Zeitstempel der letzten Aktualisierung, Speicherort usw.);
    • • Bearbeitungsrechte 446 zur Anzeige der Bearbeitungsrechte (z. B. 456) der jeweiligen Benutzer und der Rechte zur Steuerung von Bearbeitungsrechten anderer Benutzer (z. B. Bearbeitungsrechtesteuerung 458);
    • • Zeitstempel 448 (z. B. Zeit/Datum der Erstellung, Zeit/Datum des letzten Zugriffs, Zeit/Datum der letzten Überarbeitung usw.);
    • • Inhalt 450 (z. B. Haupttext des Dokuments); und
    • • Überarbeitungsverlauf 452.
  • Bearbeitungsrechte 446 zeigen an, ob jeweilige Benutzer über Bearbeitungsrechte verfügen (z. B. Bearbeitungsrechte am jeweiligen Dokument). Manche Ausführungsformen zeigen die Bearbeitungsrechte an einem Dokument für den jeweiligen Benutzer in binärer Form an (ja/nein oder wahr/falsch). In manchen Ausführungsformen sind die Bearbeitungsrechte auf mehrere Ebenen verteilt oder kombinierbar. Dementsprechend zeigen Sie an, ob der jeweilige Benutzer gewisse Teile des Dokuments bearbeiten (der Benutzer kann beispielsweise einen Kommentar posten, aber nicht den Haupttext bearbeiten) oder gewisse Arten von Bearbeitungen durchführen darf (der Benutzer darf dem Dokument beispielsweise Text hinzufügen, aber den Text nicht löschen oder überarbeiten). Bearbeitungsrechte 446 beinhalten in manchen Ausführungsformen Zugriffsrechte (ob der entsprechende Benutzer das jeweilige Dokument beispielsweise verwenden/sehen darf).
  • Der Bearbeitungsverlauf 452 beinhaltet in manchen Ausführungsformen einen oder mehrere Überarbeitungsdatensätze 460. Überarbeitungsdatensätze 460 werden wie gezeigt für ein entsprechendes Ergebnis-Changeset erzeugt (die Erstellung eines Ergebnis-Changesets generiert beispielsweise einen Überarbeitungsdatensatz). Alternativ kann ein entsprechender Überarbeitungsdatensatz 460 die Überarbeitungen/Bearbeitungen beinhalten, die von einem jeweiligen Benutzer und/oder innerhalb eines gegebenen Zeitraums vorgenommen wurden.
  • Überarbeitungdatensatz 460 (z. B. 460-2) beinhaltet in manchen Ausführungsformen:
    • • Überarbeitungsnummer 462, die den jeweiligen Überarbeitungsdatensatz 460 eindeutig identifiziert;
    • • Überarbeitungsmetadaten 464 (z. B. ein Zeiger auf das Dokument, eine Abfolge von Einträgen/Changesets seitens der Kunden usw.);
    • • Zeitstempel 466, der den Erstellungs- oder Aktualisierungszeitpunkt des jeweiligen Überarbeitungsdatensatzes angibt 460;
    • • Changeset(s) 474, die ein oder mehrere Changesets beinhalten (z. B. Changesets 468-1 bis 468-R), die von Clienten empfangen werden;
    • • Autorschaft 476, die einen oder mehrere Benutzer (oder Autoren) angibt, die das Dokument bearbeitet haben; jeder Autor 470-1 kann eine Benutzerkennung des Autors (z. B. 410) oder einen Zeiger auf eine Benutzerkennung beinhalten; und
    • • Ergebnis-Changeset 472, das gemäß den Changesets oder Eingaben einer Vielzahl von Clienten generiert wird.
  • Die Anzahl von Autoren in Autorenschaft 470 entspricht häufig der Anzahl von Changesets in Changesets 468 (jeder Autor schickt beispielsweise ein Changeset). Die Anzahl von Autoren muss jedoch nicht unbedingt der Anzahl von Changesets entsprechen. Bestimmte Changesets können beispielsweise aus verschiedenen Gründen ignoriert werden (der Autor hatte beispielsweise kein Bearbeitungsrecht, das Changeset war redundant usw.). Manche Autoren können mehrere Changesets senden, die in einem einzigen Überarbeitungsdatensatz gesammelt werden.
  • Die Graphik in 5 zeigt wie ein Textdokument 500 gemäß mancher Ausführungsformen in einem Fenster 510 einer Anzeige (z. B. 301, 3) angezeigt wird. In einem Textdokument können Zeichen wie etwa Nummern, Symbole, Leerzeichen und Satzzeichen enthalten sein. Sämtliche Zeichen von Textdokument 500 sind indiziert. Der Index beginnt beim ersten Zeichen beispielsweise mit Null (0). Das Textdokument 500 ist wahlweise auch über eine Länge bestimmbar, definiert als die Gesamtsumme der Zeichen. Textdokument 500 hat in dieser Darstellung eine Länge von 24. Der Index dient den Changesets mancher Ausführungsformen dazu, Änderungen an Textzeichenfolgen und/oder Textdokumenten darzustellen.
  • Ein Changeset repräsentiert eine Reihe von Änderungen an einer Version des Textdokuments. Die Änderungen können beinhalten, dass ein oder mehrere Zeichen zur Version des Textdokuments hinzugefügt oder aus dieser gestrichen werden. Wenn ein Changeset auf eine bestimmte Version des Textdokuments angewendet wird, dann ermöglicht dies eine neue Version des Textdokuments zu generieren. Es wird daher Anklang finden, dass jede beliebige Version eines Textdokuments auch als eine geordnete Reihe von Changesets dargestellt werden kann, wobei das erste Changeset zu einer Anfangsversion des Textdokuments gehört. Die Anfangsversion des Textdokuments kann ein leeres Textdokument oder ein bei verschiedenen Instanzen bereits vorhandenes Textdokument sein.
  • Manche Ausführungsformen haben kanonische Changsets. Das bedeutet hier, dass die im Speicher vorhandene Repräsentation eines Dokuments nur einem Changeset entspricht. Unterschiedliche Repräsentationen eines Dokuments im Speicher entsprechen also unterschiedlichen Changesets. Kanonische Changesets sind als solche daher vergleichbar. Manche Ausführungsformen können auch kompakte Changesets haben. Wenn Changesets auf mehr als einem Weg im Speicher repräsentiert werden können, dann wird dasjenige verwendet, das am wenigsten Bytes einnimmt.
  • Ein Changeset kann auf viele Wege repräsentiert werden. In manchen Ausführungsformen wird ein Changeset anhand des folgenden Formats repräsentiert: (l → l')[c1, c2, c3, ...] wobei l die Länge einer Version des Textdokuments 500 vor Ausführung der Änderung und l' die Länge der nächsten Version des Textdokuments 500 nach Ausführung der Änderung ist. Die Anordnung [c1, c2, c3, ...] gibt an, welche Zeichen aus der vorherigen Version beibehalten und welche Zeichen zur neuen Version hinzugefügt werden. Beibehaltene Zeichen werden mittels ihres Indexwerts aus der vorherigen Version des Textdokuments 500 dargestellt und gelöschte Zeichen werden weggelassen. Neue Zeichen erscheinen, so wie sie sind. Das Changeset eines Textdokuments 500, dessen erste Version "charge" und dessen nachfolgende Version "changes" lautet, würde beispielsweise so aussehen: (6 → 7)[0, 1, 2, n, 4, 5, –s] was in kompakterer Form auch so dargestellt werden kann: (6 → 7)[0–2, n, 4, 5, s]. Die Repräsentation der weiteren Veränderung von "changes" zu "hangs" wäre als zusätzliches Beispiel ein Changeset mit: (7 → 5)[1–4, 6]. Es wird darauf hingewiesen, dass jedes Changeset eigene Indexreihen bildet. Diese beginnen bei Null, sodass im Beispiel oben die Zeichen mit den Indizes 1–4 in der vorherigen Version des Textdokument auf die Indizes 0–3 im vorliegenden Changeset abgebildet werden. Zeichen 6 aus dem vorherigen Index wird zu Zeichen 4 im neuen Index.
  • Im folgenden Beispiel wird veranschaulicht, wie sich ein Textdokument als eine geordnete Reihe von Changesets darstellen lässt. A stellt in diesem Beispiel ein erstes Changeset dar, welches zu einer ersten, leeren (Anfangs-)Version des Textdokuments gehört, und B ein zweites Changeset, welches zu einer zweiten Version des Textdokuments gehört. A = (0 → 5)[H, e, 1, 1, o] B = (5 → 11)[0–4,, w, o, r, 1, d] Die dritte Version dieses Textdokument lautet "Hello World" und kann als AB dargestellt werden. Hierin wird darauf als Zusammensetzung von A und B verwiesen. Changesets unterliegen beim Schließen der Zusammensetzung, d. h. dass das Ergebnis der Zusammensetzung zweier Changesets immer ein weiteres Changeset ergibt. Es wird deutlich, dass die Zusammensetzung AB zu einem einzigen Changeset, C, reduziert werden kann, wobei C = (O → 11)[H, e, 1, 1, o,, w, o, r, 1, d]. In Kurzschrift AB = C. Im Folgenden wird Q verwendet, um eine Textdokumentversion zu repräsentieren, dahingehen dass QA, QB usw. Versionen des Textdokuments so darstellen, wie sie von den entsprechenden Changesets A and B geändert wurden.
  • Denn bei Echtzeitbearbeitung kann mehr als ein Changeset auf dieselbe Version des Textdokuments angewendet werden. Angenommen zwei Benutzer verwenden zwei unterschiedliche Clienten-Computersysteme 120. Beide machen an derselben Version des Textdokuments Q. eine Änderung. Die Changesets sind aber möglicherweise nicht zusammensetzbar und auch wenn sie es wären, könnte diese Zusammensetzung keinen Sinn ergeben. Das Textdokument, das jeder der Benutzer ändern möchte, hat beispielsweise eine Länge n und die beiden empfangenen Changesets sind: A = (n → na)[... na Zeichen], und B = (n → nb)[... nb Zeichen] wobei n ≠ na ≠ nb. Wird A auf das Textdokument QA angewendet, dann hat das Ergebnis eine Länge von na. Daher kann B nicht weiter auf die Zusammensetzung angewendet werden, da B eine Anfangslänge von n erfordert. A kann ebenso wenig auf die Zusammensetzung von B mit dem Textdokument QB angewendet werden, welches eine Länge von nb hätte, denn A erfordert auch eine Anfangslänge von n.
  • Zusammenführen ist ein Prozess, in dem ein einziges Changeset aus zwei Changesets berechnet wird, die beide zur Anwendung auf dieselbe Version eines Textdokuments gedacht sind. Zusammenführen versucht den Zweck beider Changesets zu bewahren. Ein Ergebnis-Changeset wird in manchen Ausführungsformen als Mischung von A und B bezeichnet und als m(A, B) dargestellt.
  • Folgende Regeln sind für die exemplarische Implementierung gemischter Changesets konzipiert worden, um die Absicht der jeweiligen Benutzer zu bewahren. Erstens, m(A, B) = m(B, A). Ein Zeichen wird in m(A, B) beibehalten, wenn das Zeichen in A und B erhalten bleibt. Wenn eines der beiden Changesets ein Zeichen löscht, dann wird die Absicht des Benutzers, dieses Zeichen zu löschen, bewahrt. Die Mischung m(A, B) beinhaltet alle Zeichen, die in einem der beiden Changesets eingefügt werden. Die Absicht der Benutzer, Zeichen einzufügen, bleibt hier erhalten. Wenn beide Changesets dasselbe Zeichen an demselben Ort im Textdokument einfügen, dann erscheint das Zeichen infolgedessen zweimal in der nachfolgenden Version des Textdokuments.
  • Die Mischung m(A, B) bewahrt außerdem zusammenhängende Zeichen aus beiden Changesets. Zusammenhängend in ein Changeset eingefügte Zeichen werden als Lauf bezeichnet. Läufe aus unterschiedlichen Changesets werden typischerweise nicht vermischt und bewahren so wiederum die Absicht der Benutzer Läufe zusammenzuhalten. Läufe werden in nachfolgenden Changeset-Beispielen in Anführungs- und Schlusszeichen gesetzt, um die Zeichen als aufrecht erhaltene Läufe zu kennzeichnen. Die Mischung m(A, B) bewahrt auch die Beziehung zwischen Einfügungen aus jedem der beiden Changesets samt den beibehaltenen Zeichen. Wenn also in einem der beiden Changesets ein oder mehrere Zeichen zwischen zwei beibehaltenen Zeichen eingefügt werden, dann bleiben diese in m(A, B) zwischen denselben beiden beibehaltenen Zeichen und bewahren somit die Absicht jedes Benutzers, Zeichen an einer bestimmten Stelle im Textdokument einzufügen.
  • Wo unterschiedliche Zeichen oder Läufe zwischen den beiden gleichen beibehaltenen Zeichen eingefügt werden, gehen die Einfügungen eines Changesets notwendig denjenigen des anderen Changesets voran. Hier braucht es eine Regel, um zu ermitteln, welches Zeichen oder welcher Lauf dem anderen vorangeht, und obwohl die Regel willkürlich sein kann, sollte sie durchweg angewendet werden. Die Regel kann beispielsweise festlegen, dass die Reihenfolge sich nach der alphabetischen Ordnung der Benutzer richtet. Bei Einfügungen von zwei Changesets, eines von einem Benutzer namens "bob25" und das andere von einem Benutzer namens "Tinman", kommen die von bob25 an erster Stelle.
  • Nützlich sind auch andere Changesets, die in Fällen berechnet werden, in denen viele Benutzer dasselbe Textdokument bearbeiten und die eine geänderte Version des Textdokuments aktualisieren, welche auf einem Clientencomputersystem 120 hinterlegt ist. Ein erster Benutzer ändert beispielsweise eine Version des Textdokuments Q und A ist ein Changeset, das die Änderung repräsentiert. Der erste Benutzer sieht QA auf der Anzeige des Clienten-Computersystems 120. Ein zweiter Benutzer ändert auch dieselbe Version von Textdokument Q, B ist ein Chageset, das die Änderung repräsentiert, und der zweite Benutzer sieht QB auf der Anzeige des Clienten-Computersystems 120. Obwohl der Hostcode, der auf dem Hostserversystem 110 ausgeführt wird, m(A, B) berechnen kann, um zur nächsten Version von Q zu gelangen, brauchen die Clienten-Computersysteme 120 m(A, B) nicht, müssen aber sehr wohl wissen, wie QA oder QB geändert werden können, um zur nächsten Version von Q zu gelangen. Dementsprechend wird ein Changeset, welches "Folge" genannt wird, berechnet.
  • Wie unten genauer beschrieben sendet ein Mandaten-Computersystem 120 ein Changeset A und empfängt ein Changeset B, während das zweite Clienten-Computersystem 120 B sendet und A empfängt. Damit beide Clienten-Computersysteme 120 synchronisiert werden, sodass beide weiterhin dasselbe Textdokument Q, zusammengesetzt aus m(A, B), anzeigen, dann QAB’ = QBA’ = Qm(A, B) wobei A' und B’ die Folge-Changesets sind. In folgender Abhandlung können A' auch als f(B, A) and B' als f(A, B) dargestellt werden and daher Af(A, B) = Bf(B, A) = m(A, B) = m(B, A).
  • So wie Mischungen werden Folgen nach Regeln berechnet und es gibt viele mögliche Regelwerke, die hierfür eingesetzt werden können. Ein exemplarisches Regelwerk für die Berechnung von Folgen beinhaltet drei Regeln. Die erste Regel für eine Folge f(A, B) ist, dass Einfügungen in A zu beibehaltenen Zeichen in f(A, B) werden. Die zweite Regel besagt, dass Einfügungen in B als eingefügte Zeichen in f(A, B) gelten. Zu guter Letzt werden Zeichen, die in A und B beibehalten werden, in f(A, B) beibehalten.
  • Als Beispiel dient eine Version des Textdokuments Q mit dem Wortlaut "Baseball". Ein erster Benutzer ändert "Baseball" zu "Basil", indem er "sebal" mit "si" ersetzt, während ein zweiter Benutzer "Baseball" zu "below" ändert, indem er "as" und "ba" löscht und das "1" am Ende durch "ow" ersetzt. Demnach gilt, Q = (0 → 8)[b, a, s, e, b, a, 1, 1]; A = (8 → 5)[0, 1, “si”, 7]; B = (8 5)[0, e, 6, “ow”]; m(A, B) = (8 → 6)[0, e, “si”, “ow”] = (8 → 6)[0, “esiow”]; B’ = f(A, B) = (5 → 6)[0, e, 2, 3, “ow”]; und A’ = f(B, A) = (5 → 6)[0, 1, “si”, 3, 4]. Es ist ersichtlich, dass AB’ = BA’ = m(A, B) = (8 → 6)[0, “esiow”].
  • Kehren wir zum Betrieb des Clienten-Computersystems 120 bei der Ausführung des Clientencodes zurück: Das Clienten-Computersystem 120 verwaltet in manchen Ausführungsformen drei Changesets, A, X und Y, als Variablen im Speicher, wobei A eine aktuelle Version des Textdokuments samt jenen Changesets darstellt, die zum Hostserversystem 110 gesendet und von diesem bestätigt werden (während Ausführung des Hostcodes); X repräsentiert jegliche Änderungen, die dem Hostserversystem 110 (z. B. 326-1, 3) vorgelegt, aber noch nicht von diesem bestätigt wurden; und Y repräsentiert Änderungen, die dem Hostserversystem 110 noch nicht vorgelegt worden sind (z. B. 326-2, 3). Die Zusammensetzung von A, X und Y ergibt das lokale Textdokument, Lokales Textdokument = AXY.
  • Das Clienten-Computersystem 120 unterhält in manchen Ausführungsformen ein Fenster, W, welches jenen Teil des lokalen Textdokuments darstellt, der gerade für die Anzeige des Clienten-Computersystems 120 zur Ansicht für den Benutzer bereitgestellt wird. Der Unterhalt des Fensters ist nicht unbedingt notwendig, weil das lokale Textdokument immer ausgehend von A, X, und Y ermittelt und dann ein Teil des lokalen Textdokuments ausgewählt und angezeigt werden kann. Der Unterhalt des Fensters liefert jedoch höhere Leistung bei der Arbeit mit umfangreichen Textdokumenten.
  • Der auf einem Clienten-Computersystem 120 ausgeführte Clientencode ist in manchen Ausführungsformen so konfiguriert, um fünf Operationen durchzuführen, die das lokale Textdokument über Änderungen, die von Benutzern des Clienten-Computersystems 120 und anderer Clienten-Computersysteme 120 vorgenommen wurden, auf dem Laufenden zu halten. Eine erste Operation stellt eine Verbindung mit dem Hostserversystem 110 her und baut das lokale Textdokument auf. Eine zweite Operation ermöglicht, lokal Änderungen an den lokalen Textdokumenten vorzunehmen. Eine dritte Operation sendet lokal vorgenommene Änderungen an das Hostserversystem. Eine vierte Operation empfängt eine Bestätigung der Änderungen vom Hostserversystem und aktualisiert A und X. Eine fünfte Operation empfängt ein Changeset eines anderen Clienten-Computersystems 120 vom Hostserversystem 110 und ändert A, X und Y entsprechend.
  • Bei der ersten Operation stellt der Client (dessen Operationen vom Clientencode gesteuert werden) eine Verbindung zum Hostserversystem 110 her und baut das lokale Textdokument auf. Der Client kann sich mit dem Hostserversystem 110 beispielsweise per Angabe der geeigneten URL für das Hostserversystems 110 verbinden. Bei Verbindung zum Hostserversystem 110 wird diesem möglicherweise eine Browser-Cookie geliefert, welches eine eindeutige Kennung für das Clienten-Computersystem 120 angibt. Fehlt dieses Cookie, dann wird dem Clienten-Computersystem 120 bei Verbindung mit dem Hostserversystem 110 alternativ eine eindeutige Kennung zugewiesen und in einem Browser-Cookie gespeichert.
  • Die Kennungszuweisung kann auf verschiedenem Wege erfolgen. Je nach Ausführungsform wird die eindeutige Kennung entweder vom Clienten-Computersystem 120 (dessen Operationen vom Clientencode gesteuert werden) oder vom Hostserversystem 110 (dessen Operationen vom Hostcode gesteuert werden) erzeugt. Exemplarisch setzt sich die eindeutige Kennung aus der IP-Adresse des Clienten-Computersystems 120, der aktuellen Zeitstempelnummer und einer Zufallszahl zusammen, z. B. so: "18.4.234.1.9837459873.2345878927349." In anderen Ausführungsformen wählen das Clienten-Computersystem 120 oder der Host eine eindeutige Kennung aus einer Reihe vordefinierter eindeutiger Kennungen aus.
  • Der Aufbau des lokalen Textdokuments gehört, wie zuvor erwähnt, auch zur ersten Operation. Der Aufbau des lokalen Textdokuments kann die Festlegung der Anfangswert für A, X und Y umfassen. Das Clienten-Computersystem 120 empfängt die A-Werte vom Hostserversystem 110. Sie stammen aus der aktuellen Version des Textdokuments, welches hier als HEADTEXT bezeichnet wird. X und Y werden auf Identität gesetzt, so dass also gilt: A = (0 → N)[<ursprünglicher Text>]; X = (N → N)[O, 1, 2,... N – 1]; und Y = (N → N)[O, 1, 2,... N – 1]. Daraus lässt sich folgendes erkennen: Bei Zusammensetzung mit einem anderen Changeset verändert die Identität (im Folgenden IN genannt) dieses nicht.
  • Die erste Operation umfasst in manchen Ausführungsformen den Aufbau und die Anzeige eines Fensters W. Wenn die Länge von A, die in W maximal mögliche Länge überschreitet, dann kann W beim Aufbau der Index von A, angefangen bei Null, zugewiesen werden, bis die maximal mögliche Länge erreicht ist.
  • Die zweite Operation ermöglicht, dass lokal Änderungen am lokalen Textdokument vorgenommen werden. Hier macht ein Benutzer die Bearbeitung E anhand eines Eingabegeräts des Clienten-Computersystems 120. Das Clienten-Computersystem 120 aktualisiert Y, indem es die Zusammensetzung YE berechnet. Die Aktualisierung von Y kann auch so dargestellt werden Y ← YE wobei "←" Zuordnung bedeutet. Gemeint ist hiermit, dass Y eine Variable im Speicher ist, welche die nicht vorgelegten Änderungen trägt, und einen neuen Wert, YE zugewiesen bekommt. In jenen Ausführungsformen, in denen W verwendet wird, umfasst die zweite Operation auch die Aktualisierung von W: W ← WE. In anderen Ausführungsformen berechnet das Clienten-Computersystem 120 die Zusammensetzung AXY
    mit dem aktualisierten Y und zeigt das Ergebnis erneut an.
  • Die dritte Operation umfasst das Senden lokal vorgenommener Änderungen, Y, an das Hostserversystem 110. Die dritte Operation beinhaltet drei Aufgaben. Die erste Aufgabe dieser Operation teilt dem Hostserversystem 110 Y mit. Hier wird Y samt eindeutiger Kennung an das Hostserversystem 110 gesendet. Die zweite Aufgabe weist Y an X zu, X←Y
    und die dritte Aufgabe weist Y erneut die Identität zu. Y ← IN.
  • Das Clienten-Computersystem 120 führt die dritte Operation in einer exemplarische Ausführungsform alle 500 ms aus. 500 ms wird hier als exemplarischer Schwellenwert für Echtzeitbearbeitung verwendet. In einigen Ausführungsformen teilt das Clienten-Computersystem 120 Y dem Hostserversystem 110 häufiger als alle 500 ms mit, zum Beispiel alle 450 ms, alle 400 ms, alle 350 ms, alle 300 ms, alle 250 ms, alle 200 ms, alle 150 ms, alle 100 ms oder alle 50 ms. Über 500 ms beginnen sich die Verzögerungen bei der Synchronisation bemerkbar zu machen. Wenn 500 ms ohne Erhalt der Eingangsbestätigung vom Hostserversystem 110 verstreichen, wiederholt sich diese dritte Operation in manchen Ausführungsformen so lange nicht, bis diese Eingangsbestätigung eingeht. Auch unterbleibt diese dritte Operation in Fällen, in denen Y die Identität ist, was bedeutet, dass keine Bearbeitungen in diesem Zeitintervall vorgenommen wurden.
  • Bei der vierten Operation empfängt das Clienten-Computersystem 120 eine Bestätigung vom Hostserversystem 110 und aktualisiert daraufhin A und X. Um A zu aktualisieren setzt das Clienten-Computersystem 120 AX zusammen und weist A die Zusammensetzung zu. A ← AX. Um X zu aktualisieren, weist das Clienten-Computersystem 120 X die Identität zu. X ← IN Die Identität wird X erst nach Eingang der Empfangsbestätigung und Aktualisierung von A zugewiesen, sodass keine Bearbeitungen verloren gehen. Es wird darauf hingewiesen, das bei allfällig auftretenden Verzögerungen in der Kommunikation mit dem Hostserversystem 110, z. B. wegen einer langsamen Verbindung, das Clienten-Computersystem 120 (dessen Operationen durch den Clientencode gesteuert werden) dem Benutzer ermöglicht, weiter an der lokalen Kopie des Textdokuments zu arbeiten.
  • Die fünfte Operation empfängt ein Changeset B von einem anderen Clienten-Computersystem 120 und ändert A, X und Y entsprechend. A, X und Y werden durch folgende Zuweisung geändert: A ← AB; X ← f(B, X); und Y ← f(f(X, B), Y).
  • Die Änderung von W ist in manchen Ausführungsformen auch Teil der fünften Operation. Hier wird ein auf W anwendbares Changeset D ermittelt, sodass W ← WD wobei D = f(Y, f(X, B)).
  • Auch der auf dem Hostserversystem 110 laufende Hostcode führt einige Operationen aus. Das Hostserversystem 110 unterhält (währender Ausführung des Hostcodes) eine geordnete Liste von Überarbeitungsdatensätzen. Die Datenstruktur eines Überarbeitungsdatensatz umfasst ein Changeset und Angaben zur Autorenschaft. Eine exemplarische Überarbeitung lautet wie folgt:
    {Changeset, eindeutige Kennung, Überarbeitungsnummer}
    wobei die eindeutige Kennung das Clienten-Computersystem 120 identifiziert, das mit dem Changeset assoziiert ist. Die Überarbeitungsnummer wird sequenziell zugewiesen. Vereinbarungsgemäß haben einige Ausführungsformen Null als erste Überarbeitungsnummer. Wahlweise verwaltet das Hostserversystem 110 auch den HEADTEXT und aktualisiert diese Variable für jeden, der aufeinander folgenden Überarbeitungsdatensätze. Alternativ kann der HEADTEXT bei Bedarf durch die geordnete Zusammensetzung der Changesets erfolgen, die in den Überarbeitungsdatensätzen enthalten sind.
  • Wie oben in Bezug auf das Clienten-Computersystem 120 erwähnt, verbindet sich jedes Clienten-Computersystem 120 mit dem Hostserversystem 110 und baut ein lokales Textdokument auf. Das Hostserversystem 110 akzeptiert auf der anderen Seite die Verbindung, aktualisiert eine Liste verbundener Clienten-Computersysteme 120 mit der eindeutigen Kennung des sich verbindenden Clienten-Computersystems 120, sendet den HEADTEXT an das sich verbindende Clienten-Computersystem 120 und assoziiert die Überarbeitungsnummer des gesendeten HEADTEXTS mit der eindeutigen Kennung. Die Überarbeitungsnummer wird in manchen Ausführungsformen auch mit dem HEADTEXT gesendet und parallel durch das Clienten-Computersystem 120 verwaltet. Das Hostserversystem 110 kann in manchen Ausführungsformen auch zusätzliche Informationen in Verbindung mit der eindeutigen Kennung speichern. Dazu gehört beispielsweise ein Bildschirmname des Benutzers, der bei Verbindung des Clienten-Computersystem 120 mit dem Hostserversystem 110 bezogen werden kann.
  • Wenn das Hostserversystem 110 ein Changeset C von einem Clienten-Computersystem 120 empfängt, dann aktualisiert das Hostserversystem 110 die anderen verbundenen Clienten-Computersysteme 120 und speichert einen neuen Überarbeitungsdatensatz ab. Das Hostserversystem 110 assoziiert zur Durchführung dieser Aufgabe zuerst C mit der Überarbeitungsnummer rc aus der aktuellsten Überarbeitung des sendenden Clienten-Computersystems 120. Das Clienten-Computersystem 120 überträgt in manchen Ausführungsformen die Überarbeitungsnummer mit dem Changeset, während in anderen Ausführungsformen das Hostserversystem 110 mitverfolgt, wie die Überarbeitungsnummern jedes Clienten-Computersystems 120 mit jeder Überarbeitung weiter zunehmen. In wieder anderen Ausführungsformen überträgt das Clienten-Computersystem 120 die Überarbeitungsnummer und das Hostserversystem 110 verfolgt die Überarbeitungsnummern zwecks Redundanz- und Fehlerkontrolle gleichfalls mit (die Überarbeitungsnummern sollten übereinstimmen).
  • Anschließend berechnet das Hostserversystem 110 ein Folge-Changeset C mit Bezug zur aktuellsten Version des Textdokuments, die vom Hostserversystem 110 aufbewahrt wird. Die aktuellste Überarbeitungsnummer wird dabei rh genannt und das Subskript repräsentiert den HEADTEXT. Der Hostserversystem 110 berechnet C für die Überarbeitung rh durch Berechnung der Folge f(Qrc + 1, C), wobei Qrc+1 die nächste sequenzielle Version des Textdokuments bezeichnet, und wiederholt dies für jede nachfolgende Version bis die aktuellste Version erreicht ist. Die letzte Folge C’ wird dann, wahlweise mit der nächsten Überarbeitungsnummer, an jedes Clienten-Computersystem 120 übermittelt, außer an jenes von dem das Changeset stammt. Das Hostserversystem 110 sendet eine Bestätigung an das Clienten-Computersystem 120, von dem das Changeset stammt. Zuletzt erstellt das Hostserversystem 110 einen neuen Überarbeitungsdatensatz C’, die neue Überarbeitungsnummer und die eindeutige Kennung für das Clienten-Computersystem 120, von dem das Changeset stammt. Dann fügt es den neuen Überarbeitungsdatensatz der Überarbeitungsliste hinzu.
  • 6 veranschaulicht gemäß mancher Ausführungsformen einen exemplarischen Echtzeitblogeintrag (z. B. Webpage 318), der auf einem Clienten-Computersystem 120 eines Benutzers angezeigt wird. Der exemplarische Blogeintrag enthält in dieser Darstellung Inhalte, wie sie von einem Blogger, der Live von einer Veranstaltung berichtet, erstellt werden können. Um zu veranschaulichen, dass es sich um Inhalt zeitechter Art handelt, wird jeder Absatz zu Beginn mit einem Zeitstempel 605 versehen. Typischerweise werden alle abgebildeten Zeichen dem Clienten Buchstabe um Buchstabe oder Wort für Wort in Echtzeit geliefert, sowie sie vom Mastereditor empfangen werden. Die Zeichen oder Wörter können, wie andernorts hierin erörtert, als Changesets geliefert werden. Der Inhalt wird im Hauptfeld 610 angezeigt und kann Text sowie andere Objekte wie etwa Bild 615 beinhalten.
  • Neuer Inhalt wird am Ende 620 des Blogs in Echtzeit hinzugefügt, so wie vom Zeitstempel angezeigt. Änderungen, die vom Mastereditor (ein Benutzer mit Bearbeitungs- und Bearbeitungsrechtesteuerung) oder Junioreditor (ein Benutzer mit Bearbeitungs- aber ohne Bearbeitungsrechtesteuerung) an bereits vorhandenem Inhalt vorgenommen werden, können wahlweise markiert werden. Die Markierungen 625 zeigen beispielsweise, dass das Wort "kommt" eingefügt und das Wort "ovation" korrigiert ist. Die Markierungen haben in manchen Ausführungsformen eine vom Rest des Inhalts unterschiedene Farbe.
  • Der exemplarische Blogeintrag von 6 beinhaltet mehrere Kommentare 625A625c. Diese Kommentare sind wahlweise mit bestimmten Objekten innerhalb des Blogeintrags (z. B. mit einem bestimmten Wort, Satz, Absatz, Bild usw.) verbunden. Zum Beispiel ist der Kommentar 625A mit dem Wort "dieser" und der Kommentar 625B mit dem Bild 615 assoziiert. Ein Kommentar kann auch mit einem anderen Kommentar assoziiert sein. Der Kommentar 625c ist ein Kommentar zu einem Kommentar und ist mit dem Kommentar 625B assoziiert. Eine Reihe von Kommentaren können miteinander assoziiert sein und eine Kommentardiskussion bilden. In manchen Ausführungsformen sind die assoziierten Kommentare sichtbar mit Objekten (z. B. einem oder mehreren Wörtern, einem oder mehreren Sätzen, einem Teil des Inhalts, einem anderen Kommentar oder einem Teil eines anderen Kommentars) verbunden, auf die sie sich beziehen. Das mit Kommentar 625A assoziierte Wort "dieser" ist beispielsweise sichtbar hervorgehoben (z. B. durch Hervorhebung oder durch einen Kasten um das Wort), und die Assoziation des Worts "dieser" mit dem Kommentar 625A ist durch eine Verbindungslinie kenntlich gemacht. In ähnlicher Weise wird die Assoziation von Kommentar 625B und Kommentar 625C durch eine Verbindungslinie kenntlich gemacht.
  • Die Kommentare sind in machen Ausführungsformen selbst Echtzeitdokumente, deren Inhalt mehreren Benutzern in Echtzeit angezeigt wird, sowie er von den mehreren Benutzern empfangen wird. Kommentare können ähnliche Eigenschaften wie der Blogeintrag haben, der im Hauptfeld 610 angezeigt wird. Dementsprechend können einer oder mehrere Editoren Kommentare in manchen Ausführungsformen bearbeiten und/oder mit anderen Kommentaren assoziieren. Kommentare erben in manchen Ausführungsformen Eigenschaften der mit ihnen assoziierten Objekte (z. B. haben Kommentare die gleiche Farbe, die gleiche Schriftart, die gleiche Größe, die gleiche Hintergrundfarbe, die gleiche Markierungsfarbe usw. wie mit ihnen assoziierte Objekte). Wenn dem Blogeintrag Inhalt und gleichzeitig ein oder mehrere Kommentare hinzugefügt werden, dann wird dieser Inhalt und/oder diese Kommentare für andere Benutzern als ein oder mehrere Changesets in Echtzeit bereitgestellt.
  • Der beispielhafte Blogeintrag in 6 beinhaltet ferner mehrere optionale Benutzeroberflächenobjekte, z. B. Schaltflächen, die auf einer grafischen Benutzeroberfläche angezeigt werden. Dazu gehört eine Schaltfläche "Speichern" 630, die für einen Mastereditor, Junioreditor oder anderen Benutzer konfiguriert ist, um den aktuellen Blog im statischen Arbeitsspeicher zu speichern. Wenn ein Editor die Schaltfläche "Speichern" betätigt, dann wird dadurch in manchen Ausführungsformen das Senden einer Nachricht an das Hostserversystem 110 initiiert, dahingehend dass der aktuelle Stand eines Echtzeitblogs in den Speicher kopiert wird (z. B. 206 oder 306),
  • Eine Feststelltaste 635 ist dafür konfiguriert, einen Echtzeitblog in einen statischen Blog zu verändern. Wenn sie von einem Benutzer an einem Clienten 120 betätigt wird, kann die Feststelltaste dazu dienen, Änderungen am Blog zu verhindern, bis der Benutzer Gelegenheit hatte, den Inhalt zu überprüfen. Mittels einer Live-Schaltfläche 640 kann der Benutzer dann den Blog entsperren und erneut in einen Echtzeitblog verwandeln. Dem Benutzer werden dann Änderungen am Blog angezeigt, die aufgetreten sind, während der Blog gesperrt war. Mittels der Live-Schaltfläche 640 kann ein Benutzer einen statischen Blog in einen Echtzeitblog verwandeln. Ein Editor kann sich der Feststelltaste 635 bedienen, um die laufende Aktualisierung des Blogs vorübergehend zu unterbinden. Dies ermöglicht es dem Editor eine Reihe von Änderungen vorzunehmen, die später durch Drücken der Live-Taste 640 zur Aktualisierung des Blogs verwendet werden.
  • Eine Kommentarschaltfläche 645 ist dafür konfiguriert, dem Blog durch einen Editor oder anderen Benutzer einen Kommentar anzufügen. Der angefügte Kommentar ist wahlweise mit einem bestimmten Teil, z. B. Text oder Objekt, innerhalb des Blogs oder innerhalb eines bereits vorhandenen Kommentars assoziiert. Die in 6 dargestellten Steuerelemente dürfen in manchen Ausführungsformen von Editoren und/oder anderen Benutzern verwendet werden.
  • Das High-Level-Flussdiagramm in 7 veranschaulicht Prozesse, die gemäß mancher Ausführungsformen von Clienten und einem Dokumentverwaltungssystem durchgeführt werden. Der Fachmann wird bemerken, dass eine oder mehrere der beschriebenen Vorgänge durch Hardware, Software oder eine Kombination davon ausgeführt werden können, wie sie in einem oder mehreren Rechensystemen enthalten sein können. Client 120 kann in manchen Ausführungsformen Teile der vom Hostserversystem 110 durchgeführten Operationen übernehmen.
  • Ein entsprechender Client 120 (beispielsweise 120-1 oder 120-2) ist in 7 ein Computer oder anderes Gerät, das von einem Benutzer verwendet wird. Das Hostserversystem 110 sendet (702) Kopien eines Dokuments an eine Vielzahl von Clienten (z. B. Clienten 120-1 und 120-2). Die Vielzahl von Clienten 120 sendet in manchen Ausführungsformen zuerst eine Anzeige- und/oder Bearbeitungsanfrage für das Dokument und das Hostserversystem 110 beantwortet diese, indem es Kopien des Dokuments an die Vielzahl der Clienten 120 schickt.
  • Der entsprechende Client 120 zeigt einen Teil des Dokuments an (704) und empfängt (706) Eingaben von entsprechenden Benutzern. Der entsprechende Client 120 verwaltet (708) wahlweise eine Reihe von Changesets (z. B. 468, 4B). Die Reihe von Changesets beschreibt Änderungen am Dokument. Der entsprechende Client 120 sendet (710) Informationen zur Änderung des Dokuments (z. B. Eingaben wie etwa Tastaturanschläge oder ein Changeset, welches basierend auf den Eingaben ermittelt wird) zum Hostserversystem 110.
  • Das Hostserversystem (110) erhält (712) die Changesets, beispielsweise vom entsprechenden Clienten 120 oder indem es sie basierend auf den Eingaben des Clienten 120 erzeugt. Ausgehend von den erhaltenen Changesets erzeugt (714) das Hostserversystem 110 ein Ergebnis-Changeset und sendet (716) das Ergebnis-Changeset an die Vielzahl von Clienten (z. B. 120-1 und 120-2). Das Hostserversystem 110 kann so Änderungen von Client 120-1 zu Client 120-2 übermitteln und umgekehrt.
  • Der entsprechende Client 120 empfängt (718) das Ergebnis-Changeset und aktualisiert (720) das Dokument oder die Kopie des Dokuments, die beim entsprechenden Clienten 120 gespeichert ist. Der entsprechende Client 120 aktualisiert (722) wahlweise den Satz an Changesets, der vom entsprechenden Clienten 120 verwaltet wird.
  • Die Flussdiagramme in 8A und 8B stellen gemäß manchen Ausführungsformen ein Verfahren zur Bereitstellung eines Dokuments für eine Vielzahl von Clienten dar, damit diese es in Echtzeit bearbeiten. Das Hostserversystem 110 beinhaltet in manchen Ausführungsformen einen Server mit einem oder mehreren Prozessoren und Speichern, in dem ein oder mehrere Programme gespeichert sind, um diese durch den einen oder die mehreren Prozessoren ausführen zu lassen.
  • Der Server sendet (802) Kopien des Dokuments zur Echtzeitbearbeitung an die Vielzahl von Clienten. Der Server sendet beispielsweise entsprechende Kopien des Dokuments aus der Dokumentendatenbank 116 (z. B. eine entsprechende Kopie, die einen Teil des Inhalts (450) enthält) an entsprechende Clienten (z. B. 120) unter Verwendung des Echtzeitblogging-Schnittstellenprogramms 216. In einigen Ausführungsformen als Ergebnis erhalten jeweiligen Kunden die jeweiligen Kopien des Dokuments und Speichern der empfangenen Kopien (beispielsweise 322, 3).
  • Vor Versenden der Kopien des Dokuments sendet der Server in manchen Ausführungsformen ein Browser-Erweiterungspaket an die Vielzahl von Clienten 120. Das Browser-Erweiterungspaket beinhaltet Anweisungen für den Empfang von einem oder mehreren Changesets, die Aktualisierung der entsprechenden Kopien des Dokuments basierend auf den empfangenen Changesets und die Anzeige dieser aktualisierten Kopien des Dokuments. Eine Kopie des Browser-Erweiterungspakets wird in Verbindung mit der jeweiligen Browserapplikation 314 beim entsprechenden Clienten 120 ausgeführt.
  • Der Server (816) sendet in manchen Ausführungsformen den Inhalt des Dokuments in einer Webseite zur Echtzeitbearbeitung an die Vielzahl von Clienten. Die Webseite ist so konfiguriert, dass sie Eingaben eines jeweiligen Benutzers eines Clienten zur Bearbeitung des Dokuments empfängt, wenn sie bei einem jeweiligen Benutzer mit Bearbeitungsrechten angezeigt wird.
  • Die Webseite beinhaltet Anweisungen, um Eingaben der jeweiligen Benutzer zu empfangen, die diese beim jeweiligen Clienten zur Bearbeitung des Dokuments eingeben. Die Webseite beinhaltet in manchen Ausführungsformen Anweisungen, um Eingaben an den Server zu senden. Die Anweisungen werden in manchen Ausführungsformen anhand des Applikationsverteilermoduls 222 auf der Webseite erstellt und/oder eingebettet.
  • Die Webseite beinhaltet in manchen Ausführungsformen Anweisungen, um die Webseite automatisch zu aktualisieren (z. B. in Übereinstimmung mit einem empfangenen Ergebnis-Changeset).
  • Der Server erzeugt in manchen Ausführungsformen ein entsprechendes Changeset für den entsprechenden Clienten, welches mit den vom entsprechenden Clienten gesendeten Eingaben übereinstimmt (z. B. erzeugt der Server das entsprechende Changeset übereinstimmend mit den entsprechenden Tastaturanschlägen, die vom entsprechenden Clienten gesendet werden). Eingaben beinhalten Tastaturanschläge, einen Zeichendatenstrom oder ähnliches. Die Eingaben beinhalten in manchen Ausführungsformen Spracheingaben, die über Stimmerkennung zu Text konvertiert werden.
  • Die Webseite (818) beinhaltet in manchen Ausführungsformen Anweisungen (z. B. Echtzeitbloggingmodul 320, 3) zu: Ermittlung des jeweiligen Changesets, übereinstimmend mit den Eingaben; und Senden des jeweiligen Changesets an den Server. Das jeweilige Changeset wird durch den entsprechenden Clienten in manchen Ausführungsformen an den Server gesendet: wenn ein vordefiniertes Zeitintervall verstrichen und eine vordefinierten Anzahl von Zeichen oder Wörtern erreicht ist; als Antwort auf eine Anforderung des Servers, das entsprechende Changeset zu senden; als Antwort auf eine Benutzereingabe (z. B. wenn ein Benutzer eine Taste drückt); oder eine Kombination des vorherigen.
  • Der Server sendet (820) eine Bestätigung des entsprechenden Changesets an den jeweiligen Clienten. Die Webseite beinhaltet Anweisungen, um einen Satz an Changesets beim entsprechenden Clienten zu verwalten. Der Satz an Changesets umfasst: ein erstes Changeset (z. B. 326-1), das nicht an den Server übermittelte Änderungen repräsentiert; ein zweites Changeset (z. B. 326-2), welches an den Server übermittelte, aber nicht von diesem bestätigte Änderungen repräsentiert. Die Webseite enthält auch Anweisungen, um das erste Changeset an den Server zu senden; und Anweisungen, um das zweite Changeset als Antwort auf die Empfangsbestätigung des jeweiligen Changesets vom entsprechenden Clienten zu aktualisieren. Wenn der entsprechende Client die Empfangsbestätigung vom Server erhält, aktualisiert der Client in manchen Ausführungsformen das erste und das zweite Changeset.
  • Der Satz an Changesets, der beim jeweiligen Clienten verwaltet wird, umfasst in manchen Ausführungsformen ein drittes Changeset (z. B. 326-3), welches an den Server übermittelte und von diesem bestätigte Änderungen repräsentiert.
  • Die Webseite beinhaltet (822) in manchen Ausführungsformen Anweisungen, um den Satz an Changesets übereinstimmend mit dem Ergebnis-Changeset zu aktualisieren. Das Echtzeitbloggingmodul 320 kann beispielsweise Anweisungen beinhalten, um den Satz an Changesets (z. B. 326-1, 326-2 und 326-3) übereinstimmend mit dem Ergebnis-Changeset (z. B. 328), so wie oben in Bezug auf 5 beschrieben, zu aktualisieren.
  • Die Webseite beinhaltet (824) in manchen Ausführungsformen Anweisungen zu Empfang des Ergebnis-Changesets, um die jeweilige Kopie des Dokuments beim jeweiligen Clienten zu aktualisieren; und zur mit dem Ergebnis-Changeset (z. B. Echtzeitbloggingmodul 320) übereinstimmenden Aktualisierung der jeweiligen Kopie des Dokuments beim jeweiligen Clienten.
  • Die Webseite beinhaltet (826) in manchen Ausführungsformen Anweisungen, um die echtzeitige Anzeige von Änderungen am Dokument auszuwählen. Die Anweisungen, um die echtzeitige Anzeige von Änderungen am Dokument auszuwählen, sind mit einem Benutzeroberflächenobjekt auf der Webseite assoziiert (z. B. Live-Schaltfläche 640, 6). Bei Umschalten der Webseite vom statischen in den Live-Status werden wahlweise eines oder mehrere Changesets an den Clienten geliefert. Diese Changesets repräsentieren jegliche Unterschiede zwischen dem angezeigten statischen und dem aktuellen Status des Blogs. Die Webseite wird in manchen Ausführungsformen anhand dieser auf der Benutzerauswahl basierenden Changesets aktualisiert.
  • Das Dokument beinhaltet (828) in manchen Ausführungsformen zumindest einen Teil des Webprotokolls (siehe z. B. 6). Das Dokument beinhaltet in manchen Ausführungsformen Anweisungen, um Kommentare und Änderungen am Dokument zu empfangen. Ein Changeset kann in manchen Ausführungsformen Änderungen an einem oder mehreren Kommentaren beinhalten. Dies ermöglicht dem Server, Kommentare von einem der vielen Clienten zu empfangen und den Kommentar an die anderen Mitglieder der Clientenmenge zu senden, damit diese in Echtzeit Buchstabe um Buchstabe oder Wort für Wort angezeigt werden.
  • Der Server verwaltet (830) in manchen Ausführungsformen einen Überarbeitungsdatensatz für den entsprechenden Clienten (z. B. Überarbeitungsdatensatz 460 in der Dokumentendatenbank 116, 4B).
  • Der Server ruft (804) das jeweilige Changeset für zwei oder mehr der jeweiligen Clienten aus der Clientenvielzahl ab. Ein entsprechendes Changeset (z. B. 468) repräsentiert eine oder mehrere Änderungen an einer entsprechenden Kopie des Dokuments bei einem entsprechenden Clienten. Der Server ruft die entsprechenden Changesets 326 für einen oder mehrere Clienten 120 ab (z. B. empfängt der Server entsprechende Changesets 326, die bei einem oder mehreren Clienten gespeichert sind, anhand des Empfangsmoduls 142). In manchen Ausführungsformen beinhaltet dies, dass das erste Changeset (z. B. 326-1) bei den beiden oder mehreren entsprechenden Clienten abgerufen wird. Der Server ermittelt entsprechende Changesets in manchen Ausführungsformen basierend auf mindestens einem Teil der Informationen (z. B. Tastaturanschläge usw.), die von einem oder mehreren Clienten empfangen werden.
  • Der Server weist (806) in manchen Ausführungsformen dem Mastereditor die Bearbeitungsrechtsteuerung zu. Die Bearbeitungsrechtsteuerung ist so konfiguriert, dass damit ein Bearbeitungsrecht des entsprechenden Clienten verändert werden kann. Der Server aktualisiert beispielsweise Bearbeitungsrechtsteuerung 416 in der Benutzerinformationsdatenbank 114 anhand des Bearbeitungsrecht-Steuerungsmodul 146, um anzuzeigen, dass ein entsprechender Client, der mit einem entsprechenden Benutzer assoziiert ist, Bearbeitungsrechtsteuerung hat (z. B. wenn der entsprechende Benutzer ein Mastereditor ist). Die Bearbeitungsrechtsteuerung ermöglicht beispielsweise dem Mastereditor, den Blog zu verändern, anderen Benutzern Bearbeitungs- und/oder Kommentarrechte am Blog zu gewähren und/oder mit dem Blog assoziierte Kommentare zuzulassen. Die Zuweisung von Bearbeitungsrechten beinhaltet in manchen Ausführungsformen die Authentifizierung eines jeweiligen Benutzers (z. B. anhand eines Kennworts oder ähnlicher Zugriffskontrollmechanismen). Changesets von den beiden oder mehreren jeweiligen Clienten abzurufen, beinhaltet den Empfang der entsprechenden Changesets von den beiden oder mehreren jeweiligen Clienten, wenn die beiden oder mehreren jeweiligen Clienten das Bearbeitungsrecht haben. Der Server ignoriert entsprechende Changesets, die von Clienten gesendet werden, die kein Bearbeitungsrecht haben.
  • Der jeweilige Client, der mit dem Mastereditor assoziiert ist, darf wiederum ein Bearbeitungsrecht eines oder mehrerer Clienten ändern (z. B. gewähren und/oder entfernen).
  • Das Bearbeitungsrecht (808) umfasst in manchen Ausführungen ein Bearbeitungsrecht für Kommentare. Der Server sendet den Inhalt eines Dokuments in einer Webseite zur Echtzeitbearbeitung an eine Vielzahl von Mandaten. Die Webseite ist so konfiguriert, dass sie währender Anzeige bei einem Clienten mit Bearbeitungsrecht einen oder mehrere Kommentare zum Dokument erhalten und diesen oder diese Kommentare an den Server übermitteln kann. Das jeweilige Changeset vom entsprechenden Clienten zu erhalten, beinhaltet das jeweilige Changeset vom entsprechenden Clienten zu erhalten, wenn der entsprechende Client das Bearbeitungsrecht für Kommentare hat und das jeweilige Changeset mindestens einen Teil eines entsprechenden Kommentars zum Dokument beinhaltet. Wenn das Ergebnis-Changeset den entsprechenden Kommentar beinhaltet, dann wird der entsprechende Kommentar als Teil der Webseite 318 angezeigt (z. B. Kommentar 625A625C, 6).
  • Der Server erzeugt (810) ein mit den jeweiligen Changesets übereinstimmendes Ergebnis-Changeset. Das Ergebnis-Changeset ist in manchen Ausführungsformen eine Mischung des entsprechenden Changesets für den jeweiligen Clienten, so wie oben in Bezug auf 5 beschrieben. Das Erzeugen eines Ergebnis-Changeset beinhaltet in manchen Ausführungsformen, das Ergebnis-Changeset zu erzeugen, welches mit den jeweiligen Changesets übereinstimmt, die nach dem Erzeugen eines vorherigen Changesets abgerufen werden. Das Erzeugen eines Ergebnis-Changeset beinhaltet in manchen Ausführungsformen, das Ergebnis-Changeset zu erzeugen, welches mit den jeweiligen Changesets übereinstimmt, die innerhalb eines vordefinierten Zeitraums abgerufen werden.
  • Der Server sendet (812) das Ergebnis-Changeset an die Vielzahl von Clienten, um die jeweiligen Kopien des Dokuments bei der Vielzahl von Clienten zu aktualisieren. Der Server sendet das Ergebnis-Changeset beispielsweise aus Dokumentendatenbank 116 anhand des Echtzeitblogging-Clientenschnittstellenprogramms 216, und der Client empfängt und speichert das Ergebnis-Changeset (z. B. 328, 3). Der Client aktualisiert in manchen Ausführungsformen das beim Clienten gespeicherte Dokument anhand des Ergebnis-Changesets.
  • Der Server aktualisiert (814) in manchen Ausführungsformen das auf dem Server gespeicherte Dokument übereinstimmend mit dem entsprechenden Changeset. Das Aktualisieren des auf dem Server gespeicherten Dokuments, kann anhand der Echtzeitblogging-Applikation 140 durchgeführt werden, oder genauer anhand des Changesetmoduls 144, so wie oben in Bezug auf 5 beschrieben.
  • Beachten Sie, dass Einzelheiten des oben in Bezug auf Verfahren 800 beschriebenen Prozesse in analoger Form auch auf die unten beschriebenen Verfahren anwendbar sind, einschließlich Verfahren 900 und 1000. Der Kürze wegen werden diese Details nachstehend nicht wiederholt.
  • Das Flussdiagramm in 9 stellt gemäß einiger Ausführungsformen ein Verfahren zur Verarbeitung eines Dokuments dar, damit es in Echtzeit bei einem Clienten bearbeitet werden kann. Das Verfahren wird in gewissen Ausführungsformen bei einem Clienten durchgeführt, der einen oder mehrere Prozessoren und Speicher hat. Letzterer speichert ein oder mehrere Programme, die durch den einen oder die mehreren Prozessoren ausgeführt werden, um das Verfahren durchzuführen (z. B. Client 120, 3).
  • Der Client zeigt (902) zumindest einen Teil der jeweiligen Kopie des Dokuments an.
  • der Client erhält (904) Eingänge von einem jeweiligen Benutzer des Clients für die Bearbeitung des Dokuments (z. B. Tastatureingaben usw.).
  • Der Client sendet (906) mit Eingaben übereinstimmende Dokumenteninformationen an einen Server, der mit einer Vielzahl von Clienten verbunden ist. Die Dokumenteninformationen werden in manchen Ausführungsformen dann vom Clienten an den Server gesendet: zu einem vordefinierten Zeitintervall; nach einer vordefinierten Anzahl von Zeichen oder Wörtern; als Antwort auf eine Anforderung vom Server; als Antwort auf eine Eingabe von einem Benutzer (z. B. wenn ein Benutzer eine Taste drückt); oder eine beliebige Kombination davon.
  • Das Senden der Dokumenteninformationen umfasst in manchen Ausführungsformen das Senden der Eingaben an den Server (der Client sendet beispielsweise die Tastaturanschläge an den Server).
  • Der Client ermittelt (908) in manchen Ausführungsformen ein entsprechendes Changeset, das mit den Eingaben übereinstimmt. Das entsprechende Changeset repräsentiert eine oder mehrere Änderungen am Dokument beim Clienten. Das Senden der Dokumenteninformation umfasst das Senden eines entsprechenden Changesets (z. B. 326, 3).
  • Der Client verwaltet (910) in manchen Ausführungsformen einen Satz an Changesets beim Clienten. Der Satz an Changesets umfasst: ein erstes Changeset (z. B. 326-1), das nicht an den Server übermittelte Änderungen repräsentiert; ein zweites Changeset (z. B. 326-2), welches an den Server übermittelte, aber nicht von diesem bestätigte Änderungen repräsentiert. Der Client zeigt die Changesets mit mindestens einem Teil des Dokuments an. Das Senden der jeweiligen Changesets umfasst das Senden des ersten Changesets (z. B. 326-1)
  • Ferner umfasst der Satz an Changesets in manchen Ausführungsformen ein drittes Changeset (z. B. 326-3), welches an den Server übermittelte und von diesem bestätige Änderungen repräsentiert.
  • Der Client zeigt in manchen Ausführungsformen eine Untermenge der Änderungen an, die im Changesets-Satz repräsentiert sind. Manche Änderungen, die in dem Satz an Changesets repräsentiert sind, können beispielsweise nicht angezeigt werden, weil die Änderungen außerhalb des angezeigten Teilbereichs des Dokuments liegen.
  • Der Client empfängt (912) ein Ergebnis-Changeset (z. B. 328), um die entsprechende Kopie des Dokuments beim Clienten zu aktualisieren. Das Ergebnis-Changeset beschreibt die Änderungen am Dokument basierend auf Änderungen an den jeweiligen Kopien des Dokuments bei zwei oder mehr Clients aus der Vielzahl von Clients. Die vom Ergebnis-Changeset repräsentierten Änderungen beinhalten in manchen Ausführungsformen Änderungen an einer entsprechenden Kopie des Dokuments beim Clienten.
  • Der Client aktualisiert (914) die entsprechende Kopie des Dokuments beim Clienten übereinstimmend mit dem Ergebnis-Changeset, so wie dies oben in Bezug auf 5 beschrieben ist.
  • Der Client aktualisiert (916) in manchen Ausführungsformen einen Satz an Changesets übereinstimmend mit dem Ergebnis-Changeset, so wie dies oben in Bezug auf 5 beschrieben ist. In manchen Ausführungsformen können Änderungen im ersten Changeset, die bereits im Ergebnis-Changest abgebildet sind, gelöscht werden, um redundante Änderungen zu vermeiden.
  • Das Flussdiagramm in 10 stellt gemäß einiger Ausführungsformen ein Verfahren dar, um ein Dokument für eine Vielzahl von Clienten bereitzustellen, damit diese es in Echtzeit bearbeiten. Das Verfahren wird in manchen Ausführungsformen beim Hostserversystem 110 durchgeführt. Das Hostserversystem 110 beinhaltet in manchen Ausführungsformen einen Server mit einem oder mehreren Prozessoren und Speichern, in dem ein oder mehrere Programme gespeichert sind, um diese durch den einen oder die mehreren Prozessoren ausführen zu lassen.
  • Der Server sendet (1002) eine erste Kopie des Dokuments an einen ersten Clienten aus der Vielzahl von Clienten (z. B. Operation 702 zu Client 120-1, 7).
  • Der Server sendet (1004) eine zweite Kopie des Dokuments an einen zweiten Clienten aus der Vielzahl von Clienten (z. B. Operation 702 zu Client 120-2, 7).
  • Der Server ruft (1006) ein erstes Changeset beim ersten Clienten ab (z. B. Operation 712 in Verbindung mit Client 120-1, 7). Das erste Changeset repräsentiert eine oder mehrere Änderungen an der ersten Kopie des Dokuments beim ersten Clienten (z. B. Changeset 326-1 bei Client 120-1).
  • Der Server ruft (1008) ein zweites Changeset beim zweiten Clienten ab (z. B. Operation 712 in Verbindung mit Client 120-1, 7). Das zweite Changeset repräsentiert eine oder mehrere Änderungen an der zweiten Kopie des Dokuments beim zweiten Clienten (z. B. Changeset 326-1 bei Client 120-2).
  • Der Server erzeugt (1010) ein Ergebnis-Changeset, welches zumindest mit dem ersten und dem zweiten Changeset übereinstimmt (z. B. Changeset 326-1 von Clienten 120-1 und 120-2).
  • Der Server sendet (1012) das Ergebnis-Changeset an den ersten Clienten, um die erste Kopie des Dokuments zu aktualisieren (z. B. Operation 716 zu Client 120-1, 7).
  • Der Server sendet (1014) das Ergebnis-Changeset an den zweiten Clienten, um die zweite Kopie des Dokuments zu aktualisieren (z. B. Operation 716 zu Client 120-2, 7).
  • Der Server sendet (1016) in manchen Ausführungsformen das Ergebnis-Changeset an einen dritten Clienten, um die dritte Kopie des Dokuments gleichzeitig mit dem Versand des Ergebnis-Changesets an den ersten und zweiten Clienten zu aktualisieren.
  • 1114 beschreiben verschiedene Verfahren der Erfindung in Übereinstimmung mit manchen Ausführungsformen. In manchen Ausführungsformen werden die Verfahren und/oder Operationen, die in 1114 dargestellt sind, in oben beschriebenen Verfahren verwendet, einschließlich Verfahren 800, 900 und 1000. Die Verfahren und/oder Operationen, die in 1114 dargestellt sind, können außerdem in manchen Ausführungsformen oben beschriebene Verfahren und Operationen ergänzen. Verfahren 900, das oben in Bezug auf 9 beschrieben ist, kann eine oder mehrere Operationen von Verfahren 1400, welches unten in Bezug auf 12 beschrieben ist, beinhalten.
  • Das Flussdiagramm in 11 stellt Verfahren 1300 exemplarisch dar, welches gemäß einer exemplarischen Ausführungsform der Erfindung dazu dient, ein Textdokument gemeinsam zu überarbeiten. Das Verfahren 1300 kann beispielsweise durch ein Hostserversystem 110 sowie durch einen Server durchgeführt werden.
  • Das Verfahren 1300 umfasst, die Definition einer neuen Version des Textdokuments als Antwort auf eine Bearbeitung und die Aktualisierung eines oder mehrerer Clientencomputersysteme, damit diese mit der neuen Version übereinstimmen. Das Definieren einer neuen Version des Textdokuments umfasst folgende Operationen: Operation 1310 zum Empfang eines ersten Changesets samt Bearbeitungsangabe für eine erste Version eines Textdokuments. Operation 1320 zur Definition eines zweiten Changesets basierend auf dem ersten Changeset, wobei das zweite Changeset dafür definiert ist, eine zweite Version des Textdokuments zu verändern. Operation 1330 zur Definition eines Überarbeitungsdatensatzes, der das zweite Changeset und die Autorenschaft des ersten Changesets beinhaltet. Und Operation 1340 zum Eintrag des Überarbeitungsdatensatzes auf der geordneten Liste von Überarbeitungsdatensätzen. Das Aktualisieren eines oder mehrerer Clientencomputersysteme, um diese mit der neuen Version in Einklang zu bringen, umfasst Operation 1350 zur Übermittlung des zweiten Changesets an einen oder mehrere Clientencomputersysteme.
  • Die Operation 1310 umfasst den Empfang eines ersten Changesets, welches eine Bearbeitungsangabe für eine erste Version eines Textdokuments macht. Das erste Changeset kann beispielsweise von einem ersten Clientencomputersystem 120 empfangen werden. Die Bearbeitung kann beispielsweise wenigstens eine Zeicheneinfügung und/oder wenigstens eine Zeichenlöschung in der ersten Version des Textdokuments repräsentieren. Das erste Changeset gibt in manchen Ausführungsformen an, wenn sich die Länge der ersten Version des Textdokuments durch eine Bearbeitung verändert hat, welche Indexwerte die beibehaltenen Zeichen in der ersten Version des Textdokuments haben und welchen Indexwert ein eingefügtes Zeichen mit Bezug auf die Indexwerte der beibehaltenen Zeichen hat. Zeichenlöschungen werden in manchen Ausführungsformen dadurch gekennzeichnet, dass ihr Indexwert nicht im Changeset auftaucht. Das erste Changeset gibt wahlweise auch eine Überarbeitungsnummer für die erste Version des Textdokuments an.
  • Die Operation 1320 umfasst, dass ein zweites Changeset basierend auf dem ersten Changeset definiert wird, wobei das zweite Changeset zur Veränderung einer zweiten Version des Textdokuments definiert wird. Die zweite Version des Textdokuments ist hier die aktuellste Version des Textdokuments (wird hierin auch HEADTEXT genannt). Die zweite Version ist eine auf die erste Version des Textdokuments folgende Version – etwa wenn ein anderes Changeset mit einer Bearbeitungsangabe von einem anderen Clientencomputersystem 120 kurz vor Empfang des ersten Changesets aus Operation 1310 empfangen wird. Das zweite Changeset gibt dementsprechend an, wie die Bearbeitungsangabe aus dem ersten Changeset in die aktuellste Version des Textdokuments einzufügen ist. Das zweite Changeset basiert auf dem ersten Changset, insofern als das zweite Changeset ein Folge-Changeset ist, um Bearbeitungen des ersten Changesets zu integrieren.
  • Die Operation 1330 umfasst, dass ein Überarbeitungsdatensatz definiert wird, der das zweite Changeset und die Autorenschaft des ersten Changesets beinhaltet. Die Autorenschaft des ersten Changesets kann eine eindeutige Kennung sein, die mit demjenigen Clientencomputersystem 120 assoziiert ist, von dem das erste Changeset empfangen wurde. Die Autorenschaft wird in manchen Ausführungsformen mit dem ersten Changeset empfangen. Die Ermittlung der Autorenschaft erfolgt in anderen Ausführungsformen über das Hostcomputersystem 120, indem es nachverfolgt, welches verbundene Clientencomputersystem 120 welchen TCP-Port verwendet und indem es darauf achtet, durch welchen TCP-Port das Changset empfangen wurde. Das Definieren des Überarbeitungsdatensatzes kann in manchen Fällen auch umfassen, dass eine Überarbeitungsnummer mitgeliefert wird, wobei die Überarbeitungsnummer in manchen Ausführungsformen sequenziell zugewiesen wird.
  • Die Operation 1340 umfasst, dass der Überarbeitungsdatensatz einer geordneten Liste von Überarbeitungsdatensätzen hinzugefügt wird. Diese Operation kann umfassten, dass der Überarbeitungsdatensatz in einem Speicher gespeichert wird. Die Operation 1350 umfasst, dass das zweite Changeset an einen oder mehrere Clientencomputersysteme 120 übermittelt wird.
  • Das Flussdiagramm in 12 stellt Verfahren 1400 exemplarisch dar, welches gemäß einer exemplarischen Ausführungsform der Erfindung dazu dient, ein Textdokument gemeinsam zu Überarbeiten. Das Verfahren 1400 kann beispielsweise durch ein Clientencomputersystem 120 wie etwa einem Computer durchgeführt werden. Das Verfahren 1400 umfasst, dass das Textdokument durch lokal erstellte Bearbeitungen überarbeitet wird und dass diese Bearbeitungen an ein Hostserversystem 110 geliefert werden. Die Überarbeitung des Textdokuments durch lokal erstellte Bearbeitungen umfasst, dass eine Operation 1410 das lokale Textdokument aufbaut. Die Überarbeitung des Textdokuments umfasst, dass Operation 1420 eine Bearbeitung von einem Eingabegerät empfängt und dass Operation 1430 ein erstes Changeset aktualisiert, um die Bearbeitung aufzunehmen. Bearbeitungsbereitstellung an das Hostserversystem 110 umfasst, dass Operation 1440 das erste Changeset samt Bearbeitung an das Hostserversystem 110 sendet und dass Operation 1450 das erste Changeset samt Bearbeitung einem zweiten Changeset und dem ersten Changeset die Identität zuweist. Das Verfahren 1400 umfasst, dass Operation 1460 eine Bestätigung vom Hostserversystem 110 empfängt, dass Operation 1470 nach Erhalt der Bestätigung dem dritten Changeset die Zusammensetzung aus einem dritten und dem zweiten Changeset zuweist und dass Operation 1480 nach Zuweisung der Zusammensetzung zum dritten Changeset dem zweiten Changeset die Identität zuweist.
  • Das Verfahren 1400 beinhaltet wahlweise Operation 1410, welche das lokale Textdokument aufbaut, was wiederum umfasst, dass dem ersten und zweiten Changeset die Identität und eine Version des Textdokuments einem dritten Changeset zugewiesen werden. Wo die Zusammensetzung der drei Changesets A, X und Y verwendet wird, um das lokale Textdokument zu repräsentieren, wird die Identität X und Y zugewiesen, während eine Version des Textdokuments, wie etwa HEADTEXT, A zugewiesen wird.
  • In Operation 1420 wird eine Bearbeitung von einem Eingabegerät empfagen. Dabei kann es sich beispielsweise um eine Tastatur des Clientencomputersystems handeln, welches das Verfahren 1400 durchführt. Eine Bearbeitung kann beispielsweise die Einfügung wenigstens eines Zeichens und/oder wenigstens eine Zeichenlöschung in einer Version des Textdokuments repräsentieren. In Operation 1430 wird das erste Changeset aktualisiert, um die Bearbeitung einzuschließen. Hier wird beispielsweise Changeset Y in Operation 1430 aktualisiert. Dabei wird die Bearbeitung als ein Changeset E dargestellt, welches Y aktualisiert und dafür die Zusammensetzungen YE berechnen und diese Y zuweisen muss.
  • In Operation 1440 wird das erste Changeset samt Bearbeitung an das Hostserversystem 110 gesendet. Das erste Changeset, welches die Bearbeitung beinhaltet, wird in manchen Ausführungsformen samt Versionsnummer und/oder eindeutiger Kennung an das Hostserversystem 110 gesendet. Das Senden des ersten Changesets mit der Bearbeitung an das Hostserversystem wird in manchen Ausführungsformen binnen 500 ms ab Erhalt der Bearbeitung vom Eingabegerät in Operation 1420 durchgeführt. Nach Erhalt antwortet das Hostserversystem 110 mit einer Bestätigung, welche vom Hostserversystem 110 in Operation 1460 empfangen wird.
  • In Operation 1450 wird das erste Changeset mit der Bearbeitung einem zweiten Changeset zugewiesen und daraufhin wird dem ersten Changeset die Identität zugewiesen. X wird beispielsweise Y zugewiesen und daraufhin wird Y die Identität zugewiesen. Nach der Bestätigung vom Hostserversystem 110 in Operation 1460, wird in Operation 1470 ein drittes Changeset mit dem zweiten Changeset zusammengesetzt und die Zusammensetzung wird dem dritten Changeset zugewiesen. A wird beispielsweise mit X zusammengesetzt und A zugewiesen. Operation 1480 wird nach Zuweisung der Zusammensetzung zum dritten Changeset durchgeführt und umfasst, dass dem zweiten Changeset die Identität (I) zugewiesen wird. Nachdem also A mit X zusammengesetzt und A zugewiesen ist, wird die Identität (I) X zugewiesen.
  • Das Verfahren 1400 umfasst in zusätzlichen Ausführungsformen, dass Operation 1490 Bearbeitungen anderer Clienten in das Textdokument integriert. Operation 1490 wird in Bezug auf 13 genauer beschrieben.
  • Das Flussdiagramm in 13 veranschaulicht gemäß einiger Ausführungsformen ein Verfahren zur Aktualisierung von Changesets. Operation 1490 aus Verfahren 1400 in 13 beinhaltet Operationen zur Aktualisierung der drei Changesets A, X und Y, die in Operationen 14101480 eingesetzt werden. Das Aktualisieren des dritten Changesets A umfasst Operation 1500, die ein viertes Changeset vom Hostserversystem 110 empfängt, wie z. B. Changeset B, indem die Zusammensetzung des dritten mit dem vierten Changeset anhand von Operation 1510 berechnet wird (AB) und die Zusammensetzung des dritten mit dem vierten Changeset dem dritten Changeset A anhand von Operation 1520 zugewiesen wird.
  • Das Aktualisieren des zweiten Changesets X wird durch Operation 1530 durchgeführt, die das Folge-Changeset für das zweite Changeset anhand des vierten Changesets berechnet f(B, X) und einer Operation 1540, die das Folge-Changeset dem zweiten Changsets X zuweist. Das Aktualisieren des ersten Changesets Y wird durch Operation 1550 durchgeführt, indem ein fünftes Changeset als Folge-Changeset des vierten Changesets anhand des zweiten Changesets f(X, B) berechnet wird, durch Operation 1560, die ein sechstes Changeset als Folge-Changeset des ersten Changesets anhand des fünften Changesets f(f(X, B), Y) berechnet und durch Operation 1570, die das sechste Changeset dem ersten Changeset Y zuweist.
  • Das Flussdiagramm in 14 veranschaulicht den Versand eines Echtzeitblogs gemäß einiger Ausführungsformen der Erfindung. Der Echtzeitblog beinhaltet einen oder mehrere Blogeinträge. Jeder diese Einträge umfasst mindestens ein Dokument. Nur ein Blogeintrag ist typischerweise zur gleichen Zeit aktiv, während die anderen Einträge statisch sind. Echtzeitkommentare können jedoch mit einem statischen Blogeintrag assoziiert sein. Die Lieferung eines Echtzeitblogs erfolgt, wie gezeigt, durch Verfahren und Systeme, die hier andernorts erläutert worden sind, um eine Echtzeitbearbeitungsplattform bereitzustellen. Die Operationen, die in 14 dargestellt sind, können in ganz verschiedener Reihenfolge ausgeführt werden.
  • Während einer Operation 1710 zur Öffnung eines Dokuments, wird ein Dokument auf einer Echtzeitbearbeitungsplattform geöffnet. Das Dokument ist mit einem Blogeintrag assoziiert. Mehrere Benutzer können das Dokument wahlweise gleichzeitig bearbeiten, ohne dass Dokument oder einen Teil davon zu sperren.
  • Während einer optionalen Auswahlstellungs-Operation 1715 werden Editoren und Betrachter des Blogs vor die Wahl gestellt, das Dokument als statisches Objekt, das sich ohne ausdrückliche Aktualisierung nicht verändert, oder als Echtzeitdokument, das sich echtzeitig mit der Bearbeitung verändert, anzuzeigen. Die echtzeitigen Änderungen können Buchstabe um Buchstabe oder Wort für Wort oder absatzweise erfolgen. Die Auwahlstellungsoperation 1715 wird wahlweise zu unterschiedlichen Zeiten durchgeführt oder mehrmals während der Lieferung eines Echtzeitblogs.
  • Während einer optionalen Steuerungszuweisungsoperation 1720 wird die Steuerung des Dokuments mindestens einem Benutzer zugewiesen, der als Mastereditor definiert ist. Die Steuerung ist in manchen Ausführungsformen gleichsam mehreren Benutzern zugewiesen oder jedem Benutzer. Der Zuweisungsvorgang beinhaltet wahlweise Sicherheitsvorkehrungen, wie etwa die Verwendung eines Kennworts oder Zertifikats. Steuerungszuweisungsoperation 1720 beinhaltet wahlweise die Delegierung von Rechten durch den Mastereditor oder andere Benutzer. Wie hier erläutert wurde kann diese Delegierung Zugriff, Bearbeitung, das Schreiben von Kommentaren und/oder andere Rechte beinhalten. Der Mastereditor ist wahlweise der Inhaber des Blogs; in diesem Fall kann die Steuerungszuweisungsoperation 1720 durch den Bloginhaber durchgeführt werden, indem er sich beim Blog anmeldet, woraufhin jedes beliebige geöffnete Dokument automatisch zugewiesen wird.
  • Während einer Empfangsanforderungsoperation 1725 werden einer oder mehrere Gäste beim Hostserver 110 von einem oder mehreren Clientencomputersystemen 120 respektvoll empfangen. Diese Anforderungen werden wahlweise in Form einer TCP/IP-Anforderung gestellt, um auf Informationen bei einem bestimmten universellen Ressourcenanzeiger zuzugreifen. Die Anforderung kann beispielsweise durch einen Benutzer erzeugt werden, indem er einen universellen Ressourcenanzeiger auswählt, Dokumentparameter identifiziert und/oder ähnliche Dinge beim Clientencomputersystem 120 vornimmt. Die Anforderung beinhaltet wahlweise die Auswahl, ob das Dokument als statisches oder als Echtzeitdokument angezeigt werden soll.
  • Während einer Zeichenempfangsoperation 1730 empfängt das Hostserversystem 110 Zeichen, andere Objekte, Änderungen und/oder andere Informationen. Die empfangenen Informationen werden typischerweise vom Mastereditor und anderen Editoren empfangen und dazu verwendet, eine Kopie des Dokuments, die beim Hostserversystem 110 gespeichert ist, zu verändern. Die auf den Informationen basierenden Änderungen können Einfügungen, Löschungen und/oder Unterstationen zu vorhandenen Objekten (Text usw.) innerhalb des Dokuments beinhalten oder können zu neuen Objekten führen, die am Ende des Dokuments hinzugefügt werden. Zeichenempfangsoperation 1730 fährt typischerweise während Operationen 17351750 fort, die unten erläutert werden.
  • Während einer Zeichenlieferoperation 1735 werden die Zeichen, die während Zeichenempfangsoperation 1730 empfangen wurden, an ein oder mehrere Clientencomputersysteme 120 in Echtzeit geliefert. Die Informationen werden in einer Form geliefert, die das Aktualisieren von Kopien des Dokuments ermöglicht, die auf Clientencomputersystemen 120 gespeichert sind. In manchen Ausführungsformen werden die Informationen beispielsweise als eine Reihe von einem oder mehreren Changesets geliefert. Verschiedene Changesets können an verschiedene Clientencomputersysteme 120 geliefert werden, je nach Status der jeweiligen Kopien des Dokuments auf jedem dieser Clientencomputersysteme 120. Wenn das Dokument in Echtzeit bei einem oder mehreren Clientencomputersystemen 120 angezeigt wird, dann werden die Changesets in Echtzeit an jene Clientencomputersysteme 120 geliefert, sowie die Informationen vom Hostserversystem 110 empfangen werden.
  • Während einer optionalen Kommentarempfangsoperation 1740 wird ein Kommentar bezüglich des Dokuments und/oder bezüglich eines anderen Kommentars beim Hostserversystem 110 empfangen. Der Kommentar wird typischerweise über ein Netzwerk 130 von einem der Clientencomputersysteme 120 empfangen. Der Kommentar kann als einzelner Objekteblock oder als Objektdatenstrom empfangen werden. Der Kommentar kann beispielsweise als Zeichendatenstrom oder als statischer Zeichensatz empfangen werden. Wenn der Kommentar als Objektdatenstrom empfangen wird, dann kann die Kommentarempfangsoperation 1740 während der Ausführung der unten erläuterten Operationen 1745 und 1750 fortfahren. Bei dem empfangenen Kommentar handelt es sich wahlweise um eine Echtzeitdokument. Ein Echtzeitkommentar kann zu einem statischen Blogeintrag gemacht werden. Ein Kommentar kann empfangen werden, während ein Editor, z. B. der Mastereditor, Änderungen am Dokument vornimmt.
  • Während einer optionalen Kommentarzuweisungsoperation 1745 wird der Kommentar mit dem Dokument, dem Blogeintrag, dem Blog, mit einem bestimmten Objekt innerhalb des Blogs, einem anderen Kommentar, einem Abschnitt, einem Wort, einem Satz oder etwas Ähnlichem assoziiert. Die Einheit, mit der der Kommentar assoziiert wird, hängt wahlweise von Informationen ab, die zusammen mit dem Kommentar vom Clientencomputersystem 120 empfangen wurden. Wenn ein Benutzer beispielsweise angibt, dass ein Kommentar mit einem bestimmten Abschnitt eines (statischen oder echtzeitigen) Blogeintrags assoziiert werden soll, dann wird diese Angabe benutzt, um die richtige Zuweisung beim Hostserversystem 110 zu speichern.
  • Während einer optionalen Kommentarlieferoperation 1750 wird der Kommentar aus der Kommentarempfangsoperation 1740 an einen oder mehrere Clientencomputersysteme 120 geliefert. Der Kommentar wird wahlweise als Echtzeitdokument geliefert. Der Kommentar kann beispielsweise in Echtzeit als Changeset geliefert werden, sowie der Kommentar vom Hostserversystem 110 empfangen wird. Jegliche Zuweisung des Kommentars, die von der Kommentarzuweisungsoperation 1745 vorgenommen wird, wird typischerweise auch an einen oder mehrere Clientencomputersysteme 120 geliefert.
  • Während einer optionalen Dokument-Speichern-Operation 1755 wird das Dokument als statisches Dokument gespeichert. Das Dokument kann beim Hostserversystem 110 oder bei einem oder mehreren Clientencomputersystemen 120 gespeichert werden. Das statische Dokument wird wahlweise als Teil eines statischen Blogeintrags in einem Blog gespeichert, der eine Vielzahl von statischen Blogeinträgen beinhaltet.
  • Obwohl verschiedene Funktionen der Ausführungsformen hierin in Bezug auf Blogs offenbart werden, können diese und andere Funktionen auch auf Chatsysteme angewendet werden, in denen zwei oder mehrere Benutzer mit einander anhand von echtzeitigen Textfenstern chatten.
  • Die vorstehende Beschreibung wurde zum Zweck der Erklärung unter Bezugnahme auf spezifische Ausführungsformen beschrieben. Die oben erläuternden Erörterungen sind jedoch nicht als erschöpfend zu betrachten und beschränken die Erfindung in keiner Weise auf die offenbarten präzisen Formen. Angesichts der obigen Lehren sind viele Modifikationen und Variationen im Rahmen des Möglichen. Die Ausführungsformen wurden gewählt und beschrieben, um die Prinzipien der Erfindungen und ihre praktischen Anwendungen zu beschreiben, um es dadurch anderen Fachleuten zu ermöglichen, die Erfindungen und verschiedenen Ausführungsformen mit verschiedenen Modifizierungen zu nutzen, die für die besondere, erwägte Nutzung geeignet sind.

Claims (4)

  1. Einen Server zur Bereitstellung eines Dokuments für eine Vielzahl von Clienten zur Echtzeitbearbeitung, umfassend: einen oder mehrere Prozessor(en); und Speicher, auf dem ein oder mehrere Programme zur Ausführung des einen oder der mehreren Programme durch den einen oder die mehreren Prozessoren gespeichert sind, inkl. Anweisungen zum: Senden von Kopien des Dokuments zur Echtzeitbearbeitung an die Vielzahl von Clienten; Abrufen des jeweiligen Changesets für zwei oder mehrere jeweilige Clienten aus der Vielzahl von Clienten, wobei ein jeweiliges Changeset eine oder mehrere Änderungen an der jeweiligen Kopie des Dokuments beim jeweiligen Clienten repräsentiert; Erzeugen eines Ergebnis-Changesets übereinstimmend mit den jeweiligen Changesets; und dem Senden des Ergebnis-Changesets an die Vielzahl von Clienten zum Aktualisieren der jeweiligen Kopien des Dokuments bei der Vielzahl von Clienten.
  2. Ein computerlesbares Speichermedium, welches eines oder mehrere Programme speichert, die so konfiguriert sind, dass sie durch einen oder mehrere Prozessoren eines Servers ausgeführt werden, wobei das eine oder die mehreren Programm Anweisungen zum: Senden von Kopien des Dokuments zur Echtzeitbearbeitung an die Vielzahl von Clienten; Abrufen des jeweiligen Changesets für zwei oder mehrere jeweilige Clienten aus der Vielzahl von Clienten, wobei ein jeweiliges Changeset eine oder mehrere Änderungen an der jeweiligen Kopie des Dokuments beim jeweiligen Clienten repräsentiert; Erzeugen eines Ergebnis-Changesets übereinstimmend mit den jeweiligen Changesets; und Senden des Ergebnis-Changesets an die Vielzahl von Clienten zum Aktualisieren der jeweiligen Kopien des Dokuments bei der Vielzahl von Clienten beinhalten.
  3. Ein Client zur Verarbeitung eines Dokuments zur Echtzeitbearbeitung, umfassend: ein Anzeigegerät, einen oder mehrere Prozessor(en); und Speicher, auf dem ein oder mehrere Programme zur Ausführung des einen oder der mehreren Programme durch den einen oder die mehreren Prozessoren gespeichert sind, inkl. Anweisungen zum: das Anzeigen zumindest eines Teils einer jeweiligen Kopie des Dokuments auf dem Anzeigegerät; das Erhalten von Eingaben eines jeweiligen Benutzers des Clienten zur Bearbeitung des Dokuments; das Senden von eingabekonformen Dokumenteninformationen an einen Server, der mit der Vielzahl von Clienten verbunden ist; das Erhalten eines Ergebnis-Changesets zum Aktualisieren der jeweiligen Kopie des Dokuments beim Clienten, wobei das Ergebnis-Changeset Änderungen am Dokument repräsentiert, die auf Änderungen an den jeweiligen Kopien des Dokuments bei zwei oder mehreren Clienten aus der Vielzahl von Clienten beruhen; und das Aktualisieren der jeweiligen Kopie des Dokuments beim Clienten, übereinstimmend mit dem Ergebnis-Changeset.
  4. Ein computerlesbares Speichermedium, welches eines oder mehrere Programme speichert, die so konfiguriert sind, dass sie durch einen oder mehrere Prozessoren eines Clienten ausgeführt werden, wobei das eine oder die mehreren Programme Anweisungen zum: Anzeigen zumindest eines Teils der jeweiligen Kopie des Dokuments; das Erhalten von Eingaben eines jeweiligen Benutzers des Clienten zur Bearbeitung des Dokuments; das Senden von eingabekonformen Dokumenteninformationen an einen Server, der mit der Vielzahl von Clienten verbunden ist; Empfangen eines Ergebnis-Changesets zum Aktualisieren der jeweiligen Kopie des Dokuments beim Clienten, wobei das Ergebnis-Changeset Änderungen am Dokument repräsentiert, die auf Änderungen an den jeweiligen Kopien des Dokuments bei zwei oder mehreren Clienten aus der Vielzahl von Clienten beruhen; und Aktualisieren der jeweiligen Kopie des Dokuments beim Clienten, übereinstimmend mit dem Ergebnis-Changeset, umfassen.
DE202011110895.7U 2010-11-02 2011-10-31 Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen Expired - Lifetime DE202011110895U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US40948810P 2010-11-02 2010-11-02
US61/409,488 2010-11-02

Publications (1)

Publication Number Publication Date
DE202011110895U1 true DE202011110895U1 (de) 2017-01-31

Family

ID=44993907

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202011110895.7U Expired - Lifetime DE202011110895U1 (de) 2010-11-02 2011-10-31 Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen

Country Status (6)

Country Link
US (1) US11036924B2 (de)
EP (1) EP2635977B1 (de)
CN (2) CN106202021A (de)
CA (1) CA2814950C (de)
DE (1) DE202011110895U1 (de)
WO (1) WO2012061297A1 (de)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656290B1 (en) * 2009-01-08 2014-02-18 Google Inc. Realtime synchronized document editing by multiple users
AU2011240674B2 (en) 2010-04-12 2015-04-02 Google Inc. Collaborative cursors in a hosted word processor
CA2795917A1 (en) 2010-04-12 2011-10-20 Google Inc. Real-time collaboration in a hosted word processor
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US9483454B2 (en) * 2011-10-07 2016-11-01 D2L Corporation Systems and methods for context specific annotation of electronic files
US8738706B1 (en) 2011-11-16 2014-05-27 Google Inc. Systems and methods for collaborative document editing
US9348802B2 (en) * 2012-03-19 2016-05-24 Litéra Corporation System and method for synchronizing bi-directional document management
JP5982962B2 (ja) * 2012-03-30 2016-08-31 富士ゼロックス株式会社 データ処理装置、データ処理システム及びプログラム
US9251128B2 (en) * 2012-06-05 2016-02-02 International Business Machines Corporation Replacing a designated character string, or styling within the designated scope of tagged edited content in a document
US20140026028A1 (en) * 2012-07-19 2014-01-23 International Business Machines Corporation Managing webpage edits
US20140082472A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies For Event Processing Of Events For Edits Made Relative To A Presentation, Selecting A Selected Set Of Events; And Generating A Modified Presentation Of The Events In The Selected Set
US9372833B2 (en) 2012-09-14 2016-06-21 David H. Sitrick Systems and methodologies for document processing and interacting with a user, providing storing of events representative of document edits relative to a document; selection of a selected set of document edits; generating presentation data responsive to said selected set of documents edits and the stored events; and providing a display presentation responsive to the presentation data
US20140082473A1 (en) * 2012-09-14 2014-03-20 David H. Sitrick Systems And Methodologies Of Event Content Based Document Editing, Generating Of Respective Events Comprising Event Content, Then Defining A Selected Set Of Events, And Generating Of A Display Presentation Responsive To Processing Said Selected Set Of Events, For One To Multiple Users
CA2791110A1 (en) * 2012-09-25 2014-03-25 Pixton Comics Inc. Collaborative comic creation
US9529785B2 (en) 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
US9462037B2 (en) 2013-01-07 2016-10-04 Google Inc. Dynamically sizing chunks in a partially loaded spreadsheet model
US10956667B2 (en) 2013-01-07 2021-03-23 Google Llc Operational transformations proxy for thin clients
US9311622B2 (en) 2013-01-15 2016-04-12 Google Inc. Resolving mutations in a partially-loaded spreadsheet model
CN104182397B (zh) * 2013-05-21 2018-09-04 北大方正集团有限公司 文档协同处理方法、系统和设备
US20140372369A1 (en) * 2013-06-14 2014-12-18 Microsoft Corporation Managing Changes to Shared Electronic Documents Using Change History
US9537974B2 (en) * 2013-07-03 2017-01-03 Crimson Corporation Systems, methods and media for collaborative caching of files in cloud storage
US9747267B2 (en) * 2013-08-12 2017-08-29 Adobe Systems Incorporated Document editing synchronization
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
KR102113503B1 (ko) 2013-08-26 2020-06-05 삼성전자주식회사 전자 장치 및 전자 장치에서 컨텐츠 제공 방법
US9348803B2 (en) 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
US10331777B2 (en) * 2013-12-31 2019-06-25 Barnes & Noble College Booksellers, Llc Merging annotations of paginated digital content
US10586216B2 (en) * 2014-03-13 2020-03-10 Microsoft Technology Licensing, Llc User work schedule identification
US10318618B2 (en) * 2014-06-18 2019-06-11 Microsoft Technology Licensing, Llc Consistent views of partitioned data in eventually consistent systems
US9785693B2 (en) * 2014-06-30 2017-10-10 Microsoft Technology Licensing, Llc Intelligent conflict detection and semantic expression of document edits
US10331775B2 (en) 2014-10-15 2019-06-25 Microsoft Technology Licensing, Llc Collaborative document editing using state-based revision
US20160127428A1 (en) * 2014-11-04 2016-05-05 Valentin Flunkert Data Collaboration in an Enterprise Environment
CN105988976B (zh) * 2015-02-16 2019-09-27 珠海金山办公软件有限公司 一种文档审阅标注的显示方法和装置
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
US10565297B2 (en) * 2015-06-26 2020-02-18 Microsoft Technology Licensing, Llc. Rumored changes for real-time coauthoring
CN105069331A (zh) * 2015-08-07 2015-11-18 苏州博优赞信息科技有限责任公司 基于计算机二进制编码格式的权限控制方法
US11783120B2 (en) * 2015-08-26 2023-10-10 Roar Software Pty Ltd. System and process for generating an internet application
CN105117382B (zh) * 2015-08-28 2020-04-28 百度在线网络技术(北京)有限公司 一种文档协同方法及装置
CN105227986A (zh) * 2015-09-24 2016-01-06 小米科技有限责任公司 同步处理方法及装置
WO2017083346A1 (en) * 2015-11-09 2017-05-18 Nexwriter Limited Collaborative document creation by a plurality of distinct teams
US10620967B2 (en) * 2015-11-18 2020-04-14 Lenovo (Singapore)Pte Ltd Context-based program selection
CN106844395A (zh) * 2015-12-03 2017-06-13 山大鲁能信息科技有限公司 多人同步在线文档编辑方法及装置
CN106933782A (zh) * 2015-12-30 2017-07-07 阿里巴巴集团控股有限公司 一种文本资源文件的比对方法及装置
US9667676B1 (en) * 2016-01-29 2017-05-30 Dropbox, Inc. Real time collaboration and document editing by multiple participants in a content management system
US10642940B2 (en) * 2016-02-05 2020-05-05 Microsoft Technology Licensing, Llc Configurable access to a document's revision history
US10122729B2 (en) * 2016-03-21 2018-11-06 Alfresco Software, Inc. Management of collaborative content item modification
US20180074998A1 (en) * 2016-09-13 2018-03-15 Microsoft Technology Licensing, Llc Visual feedback for broken text selection
US10789423B2 (en) * 2016-12-19 2020-09-29 Sap Se Controlling a collaborative data preparation process
US11960525B2 (en) * 2016-12-28 2024-04-16 Dropbox, Inc Automatically formatting content items for presentation
US9998286B1 (en) 2017-02-17 2018-06-12 Accenture Global Solutions Limited Hardware blockchain consensus operating procedure enforcement
CN108459833B (zh) * 2017-02-17 2021-10-01 北京京东尚科信息技术有限公司 用于显示文本的方法、系统和装置
US10291413B2 (en) * 2017-02-17 2019-05-14 Accenture Global Solutions Limited Hardware blockchain corrective consensus operating procedure enforcement
US20180316637A1 (en) * 2017-05-01 2018-11-01 Microsoft Technology Licensing, Llc Conversation lens for context
US10747728B2 (en) * 2017-08-10 2020-08-18 Microsoft Technology Licensing, Llc Edit and share unsupported files through instantly generated preview
US10592595B2 (en) 2017-09-29 2020-03-17 Dropbox, Inc. Maintaining multiple versions of a collection of content items
US10922426B2 (en) 2017-09-29 2021-02-16 Dropbox, Inc. Managing content item collections
US11222162B2 (en) 2017-09-29 2022-01-11 Dropbox, Inc. Managing content item collections
US11038973B2 (en) 2017-10-19 2021-06-15 Dropbox, Inc. Contact event feeds and activity updates
US10970457B2 (en) 2017-11-22 2021-04-06 Citta LLC Collaboration mechanism
US11157149B2 (en) * 2017-12-08 2021-10-26 Google Llc Managing comments in a cloud-based environment
CN108229917B (zh) * 2018-01-04 2021-07-30 四川隧唐科技股份有限公司 项目数据分析方法及系统
US11194964B2 (en) 2019-03-22 2021-12-07 International Business Machines Corporation Real-time assessment of text consistency
CN110019279B (zh) * 2019-04-11 2020-12-04 北京字节跳动网络技术有限公司 在线文档的协同更新方法、装置、设备及存储介质
CN110502488A (zh) * 2019-08-14 2019-11-26 北京字节跳动网络技术有限公司 在线文档的处理方法、装置、终端及存储介质
US11741055B2 (en) * 2019-10-24 2023-08-29 Docscorp Group Pty Ltd Managing file revisions from multiple reviewers
CN111428453B (zh) * 2019-12-31 2023-09-05 杭州海康威视数字技术股份有限公司 批注同步过程中的处理方法、装置以及系统
US11392581B2 (en) * 2020-01-28 2022-07-19 Salesforce.Com, Inc. System and method for providing dynamically grouped search results from a hierarchy
CN111460432B (zh) * 2020-04-02 2023-05-19 抖音视界有限公司 在线文档权限控制方法、装置、设备及计算机可读介质
CN111950981B (zh) * 2020-08-07 2023-07-18 中国联合网络通信集团有限公司 文档修订管理方法
US20220109651A1 (en) * 2020-10-07 2022-04-07 Microsoft Technology Licensing, Llc Interactive components for user collaboration
US20220115019A1 (en) * 2020-10-12 2022-04-14 Soundhound, Inc. Method and system for conversation transcription with metadata
CN112231322A (zh) * 2020-10-30 2021-01-15 苏州承儒信息科技有限公司 一种基于大数据的公共教育培训素材共享系统及工作方法
CN112380813A (zh) * 2020-11-03 2021-02-19 中国直升机设计研究所 一种基于修订模式的多人文档协作架构及方法
US20220171744A1 (en) * 2020-12-01 2022-06-02 Sony Interactive Entertainment LLC Asset management between remote sites
CN114765640B (zh) * 2021-01-04 2024-04-23 腾讯科技(深圳)有限公司 一种待办事项的显示方法、相关装置、设备及存储介质
JP7075689B1 (ja) * 2021-07-19 2022-05-26 株式会社BoostDraft 変更履歴統合プログラム、及び変更履歴統合システム
CN114115623B (zh) * 2021-11-24 2024-01-12 北京达佳互联信息技术有限公司 信息展示方法和装置及信息传输方法和装置
CN113971551B (zh) * 2021-12-27 2022-04-19 深圳至简天成科技有限公司 一种在线面试的实时评估方法及系统

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809170A (en) 1987-04-22 1989-02-28 Apollo Computer, Inc. Computer device for aiding in the development of software system
US5671428A (en) 1991-08-28 1997-09-23 Kabushiki Kaisha Toshiba Collaborative document processing system with version and comment management
US5649200A (en) 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
JPH06324928A (ja) 1993-05-14 1994-11-25 Mitsubishi Electric Corp ログ生成装置とファイルの異なるバージョンの調停のための装置及び異なる場所にあるコンピュータファイルの異なるバージョンを調停するための装置
US5806078A (en) 1994-06-09 1998-09-08 Softool Corporation Version management system
US5675802A (en) 1995-03-31 1997-10-07 Pure Atria Corporation Version control system for geographically distributed software development
US5805889A (en) 1995-10-20 1998-09-08 Sun Microsystems, Inc. System and method for integrating editing and versioning in data repositories
US6157934A (en) * 1995-10-24 2000-12-05 Ultimus, L.L.C. Method and apparatus for using distributed spreadsheets in a client/server architecture for workflow automation
US6006239A (en) * 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5890176A (en) 1996-04-24 1999-03-30 International Business Machines Corp. Object-oriented document version tracking method and apparatus
US5940082A (en) 1997-02-14 1999-08-17 Brinegar; David System and method for distributed collaborative drawing
US6181736B1 (en) 1997-03-25 2001-01-30 Nxi Communications, Inc. Network communication system
US6230185B1 (en) * 1997-07-15 2001-05-08 Eroom Technology, Inc. Method and apparatus for facilitating communication between collaborators in a networked environment
US6792454B2 (en) 1998-02-04 2004-09-14 Interwoven, Inc. System and method for website development
US6915336B1 (en) 1998-06-05 2005-07-05 Instant Services.Com, Inc. Real time internet communication system
US6212548B1 (en) 1998-07-30 2001-04-03 At & T Corp System and method for multiple asynchronous text chat conversations
US6715129B1 (en) * 1999-10-13 2004-03-30 International Business Machines Corporation Achieving application-specific document content by transcoding using Java Server Pages
US7130807B1 (en) 1999-11-22 2006-10-31 Accenture Llp Technology sharing during demand and supply planning in a network-based supply chain environment
JP2003521061A (ja) * 2000-01-25 2003-07-08 オートデスク,インコーポレイテッド インターネット上で建築図面へのアクセスを提供し、処理する方法および装置
US6772216B1 (en) 2000-05-19 2004-08-03 Sun Microsystems, Inc. Interaction protocol for managing cross company processes among network-distributed applications
GB0018042D0 (en) * 2000-07-21 2000-09-13 Monsell Edm Ltd Method of and software for recordal and validation of changes to markup language files
US7047281B1 (en) * 2000-08-08 2006-05-16 Fineground Networks Method and system for accelerating the delivery of content in a networked environment
WO2002012997A1 (en) * 2000-08-08 2002-02-14 Fineground Networks Method and system for parameterized web documents
US7756391B1 (en) 2000-09-01 2010-07-13 Matrox Electronic Systems Ltd. Real-time video editing architecture
US6681382B1 (en) 2000-09-18 2004-01-20 Cisco Technology, Inc. Method and system for using virtual labels in a software configuration management system
US7222156B2 (en) 2001-01-25 2007-05-22 Microsoft Corporation Integrating collaborative messaging into an electronic mail program
US7310687B2 (en) * 2001-03-23 2007-12-18 Cisco Technology, Inc. Methods and systems for managing class-based condensation
US20040205538A1 (en) * 2001-04-05 2004-10-14 International Business Machines Corporation Method and apparatus for online integration of offline document correction
US7496841B2 (en) 2001-12-17 2009-02-24 Workshare Technology, Ltd. Method and system for document collaboration
US7222138B2 (en) 2002-02-20 2007-05-22 Sun Microsystems, Inc. Versioning application programming interface and method for using versioning functionality
US7200668B2 (en) * 2002-03-05 2007-04-03 Sun Microsystems, Inc. Document conversion with merging
US7188140B1 (en) 2002-03-13 2007-03-06 At&T Corp. System and method for providing enhanced persistent communications
US7644392B2 (en) 2002-04-12 2010-01-05 Telelogic Technologies North America, Inc. System and method for active configuration management
US20040073581A1 (en) 2002-06-27 2004-04-15 Mcvoy Lawrence W. Version controlled associative array
US7111044B2 (en) 2002-07-17 2006-09-19 Fastmobile, Inc. Method and system for displaying group chat sessions on wireless mobile terminals
US7228319B1 (en) 2002-12-30 2007-06-05 Sap Aktiengesellschaft File comparison of locally synched files
US7613773B2 (en) 2002-12-31 2009-11-03 Rensselaer Polytechnic Institute Asynchronous network audio/visual collaboration system
US7197751B2 (en) * 2003-03-12 2007-03-27 Oracle International Corp. Real-time collaboration client
JP3787633B2 (ja) 2003-04-21 2006-06-21 独立行政法人情報通信研究機構 実時間コンテンツ編集システム
US20050044531A1 (en) 2003-06-09 2005-02-24 Erc-Ip, Llc Methods and systems for deploying computer source code
US7299450B2 (en) 2003-06-17 2007-11-20 Microsoft Corporation Undoing changes in a software configuration management system
US7640506B2 (en) 2003-06-27 2009-12-29 Microsoft Corporation Method and apparatus for viewing and managing collaboration data from within the context of a shared document
AU2003903994A0 (en) 2003-07-31 2003-08-14 Canon Kabushiki Kaisha Collaborative editing with automatic layout
US20050076068A1 (en) 2003-09-22 2005-04-07 Fowler Paul C. System and method of synchronizing data in multi-user computer network
US7461151B2 (en) 2003-11-13 2008-12-02 International Business Machines Corporation System and method enabling future messaging directives based on past participation via a history monitor
GB2409541A (en) 2003-12-23 2005-06-29 Mandorla Technology Ltd Editable information management system and method
US20050166154A1 (en) 2004-01-22 2005-07-28 Wilson Richard M. Enhanced instant message status message area containing time/date stamped entries and editable by others
US7233951B1 (en) 2004-02-18 2007-06-19 Microsoft Corporation Spreadsheet grid-like control for a web-based collaboration system
US7818679B2 (en) 2004-04-20 2010-10-19 Microsoft Corporation Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
JP2007537650A (ja) 2004-05-14 2007-12-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 受信者から受信者へメッセージを伝送する方法、メッセージ伝送システム及びメッセージ変換手段
US7593943B2 (en) 2005-01-14 2009-09-22 Microsoft Corporation Method and system for synchronizing multiple user revisions to a shared object
US7584268B2 (en) 2005-02-01 2009-09-01 Google Inc. Collaborative web page authoring
US7444328B2 (en) 2005-06-06 2008-10-28 Microsoft Corporation Keyword-driven assistance
US8255362B2 (en) 2005-06-08 2012-08-28 rPath Methods, systems, and computer program products for provisioning software using local changesets that represent differences between software on a repository and a local system
US20060288055A1 (en) 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a networked file repository in which a parent branch has a shadow associated therewith
US20060288054A1 (en) 2005-06-08 2006-12-21 Johnson Michael K Methods, systems, and computer program products for provisioning software via a file repository in which a version string is used to identify branches of a tree structure
US8868524B2 (en) 2005-08-25 2014-10-21 International Business Machines Corporation Floating merge selection viewer
US20070050234A1 (en) 2005-08-25 2007-03-01 Scott Corlett On-line design system and method
KR20070043353A (ko) * 2005-10-21 2007-04-25 유아이넷주식회사 웹 기반 시스템 환경하에서 다중 사용자간 실시간 동시협업형 문서 처리 방법
GB0523887D0 (en) 2005-11-24 2006-01-04 Ibm Methods, apparatuses and computer programs for achieving text summarization
CN1838111B (zh) * 2006-02-14 2010-10-06 北京北大方正电子有限公司 一种编辑文档并记录修改痕迹的方法
US7509388B2 (en) 2006-02-23 2009-03-24 International Business Machines Corporation System and method for displaying IM session history as time-based calendar events
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
US8214395B2 (en) 2006-04-21 2012-07-03 Microsoft Corporation Tracking and editing a resource in a real-time collaborative session
US20070250531A1 (en) 2006-04-24 2007-10-25 Document Advantage Corporation System and Method of Web Browser-Based Document and Content Management
US7503007B2 (en) 2006-05-16 2009-03-10 International Business Machines Corporation Context enhanced messaging and collaboration system
US20070294283A1 (en) * 2006-06-06 2007-12-20 Julie MaCkay System, method and software application for managing meta-language documents
US20080059539A1 (en) * 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
US7895512B2 (en) * 2006-09-21 2011-02-22 International Business Machines Corporation Capturing and processing change information in a web-type environment
CA2565847A1 (en) 2006-10-27 2008-04-27 Cognos Incorporated System and method for controlling model editing and merging
US8954500B2 (en) 2008-01-04 2015-02-10 Yahoo! Inc. Identifying and employing social network relationships
US7849443B2 (en) 2006-12-13 2010-12-07 International Business Machines Corporation Method and apparatus for managing selective and subtractive merges in a software configuration
US9124650B2 (en) * 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US8205150B2 (en) * 2007-01-22 2012-06-19 Cfph, Llc Document changes
US8683342B2 (en) 2007-02-28 2014-03-25 Red Hat, Inc. Automatic selection of online content for sharing
US8762327B2 (en) 2007-02-28 2014-06-24 Red Hat, Inc. Synchronizing disributed online collaboration content
CN101315621B (zh) 2007-05-29 2010-10-06 北京书生国际信息技术有限公司 一种实现文档共享编辑的方法
US8087000B2 (en) 2007-06-05 2011-12-27 International Business Machines Corporation Synchronizing codes from multiple software configuration management systems
US8219971B2 (en) 2007-08-20 2012-07-10 International Business Machines Corporation System and method for source code sectional locking for improved management
CN101127644A (zh) * 2007-08-30 2008-02-20 复旦大学 一种大规模协同环境下的因果并发检测方法
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) 2007-12-06 2011-09-27 Microsoft Corporation Document merge
WO2009105735A2 (en) * 2008-02-21 2009-08-27 Globalenglish Corporation Web-based tool for collaborative, social learning
US20090228555A1 (en) 2008-03-08 2009-09-10 International Business Machines Corporation Automated contact list determination based on collaboration history
US20090249224A1 (en) * 2008-03-31 2009-10-01 Microsoft Corporation Simultaneous collaborative review of a document
US9507651B2 (en) 2008-04-28 2016-11-29 Microsoft Technology Licensing, Llc Techniques to modify a document using a latent transfer surface
US7974948B2 (en) 2008-05-05 2011-07-05 Microsoft Corporation Automatically capturing and maintaining versions of documents
US7899883B2 (en) 2008-06-13 2011-03-01 Microsoft Corporation Merging versions of documents using multiple masters
WO2010028169A2 (en) 2008-09-05 2010-03-11 Fotonauts, Inc. Reverse tagging of images in system for managing and sharing digital images
JP5344460B2 (ja) 2008-09-29 2013-11-20 インターナショナル・ビジネス・マシーンズ・コーポレーション 編集装置、編集プログラム、および編集方法
US20100095198A1 (en) * 2008-10-15 2010-04-15 Apple Inc. Shared comments for online document collaboration
US9152644B2 (en) 2008-12-30 2015-10-06 Novell, Inc. Systems and methods for providing collaborative editing
US8136031B2 (en) * 2009-03-17 2012-03-13 Litera Technologies, LLC Comparing the content of tables containing merged or split cells
US20100257457A1 (en) 2009-04-07 2010-10-07 De Goes John A Real-time content collaboration
US8612380B2 (en) * 2009-05-26 2013-12-17 Adobe Systems Incorporated Web-based collaboration for editing electronic documents
US9298834B2 (en) * 2009-05-26 2016-03-29 Adobe Systems Incorporated User presence data for web-based document collaboration
EP2438571A4 (de) 2009-06-02 2014-04-30 Yahoo Inc Selbstfüllendes adressbuch
US10540427B2 (en) 2009-12-31 2020-01-21 International Business Machines Corporation Automated file merging through content classification
JP5710156B2 (ja) * 2010-05-31 2015-04-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンテンツ・データ中のオブジェクトの共同編集を可能にする方法、並びにそのコンピュータ・システム及びコンピュータ・プログラム
US20120062712A1 (en) * 2010-09-11 2012-03-15 Spatial View Inc. Delivery of device-specific stereo 3d content
US8434002B1 (en) * 2011-10-17 2013-04-30 Google Inc. Systems and methods for collaborative editing of elements in a presentation document

Also Published As

Publication number Publication date
CN106202021A (zh) 2016-12-07
EP2635977B1 (de) 2019-09-11
US20120110445A1 (en) 2012-05-03
AU2011323624A1 (en) 2013-05-09
WO2012061297A1 (en) 2012-05-10
CN103238150B (zh) 2016-08-17
EP2635977A1 (de) 2013-09-11
CN103238150A (zh) 2013-08-07
CA2814950A1 (en) 2012-05-10
CA2814950C (en) 2017-06-27
US11036924B2 (en) 2021-06-15

Similar Documents

Publication Publication Date Title
DE202011110895U1 (de) Echtzeitsynchronisierte Bearbeitung von Dokumenten durch mehrere Benutzer für das Bloggen
DE69736748T2 (de) Editierumgebung für objektmodelle und verfahren zu deren anwendung
DE10135445B4 (de) Integriertes Verfahren für das Schaffen einer aktualisierbaren Netzabfrage
DE102013222290A1 (de) System und Verfahren zur gemeinsamen Nutzung von Ermittlungsergebnisdaten
DE202011110879U1 (de) Rich-Content in einem Textverarbeitungssystem auf Browserbasis
DE112015002695T5 (de) Systeme und Verfahren zum Bearbeiten einer Datei in einer nicht nativen Anwendung unter Verwendung einer Anwendungs-Engine
DE202012013445U1 (de) System, um Offline Zugriff in einem gehosteten Dokument-Service zur Verfügung zu stellen
DE202010018482U1 (de) Bereitstellung eines Zugangs zu einer Unterhaltung in einem gehosteten Unterhaltungssystem
DE202012013447U1 (de) Inline-Benutzeradressierung in Chat- und Dokumentbearbeitungssitzungen
DE69628374T2 (de) Datenverwaltungssystem
DE112017006106T5 (de) Erzeugen von, Zugreifen auf und Anzeigen von Abstammungsmetadaten
DE112013000916T5 (de) System zum Anzeigen und Bearbeiten von Artefakten an einem zeitbezogenen Referenzpunkt
DE112016005374T5 (de) Identifizieren von Abfragemustern und zugeordneten aggregierten Statistikdaten unter Suchabfragen
DE202015009292U1 (de) Erzeugung eines Aktivitätsflusses
DE112015003926B4 (de) Verfahren, System und Computerprogramm zum Publish/Subscribe-Messaging unter Verwendung einer Nachrichtenstruktur
DE10151648B4 (de) Verfahren und Vorrichtung zum Erfassen und Speichern von während einer computerbasierten Sitzung gemachten Notizen
DE112013003300T5 (de) Schrittweise Vorbereitung von Videos auf die Lieferung
DE102021128519A1 (de) Dokumentzugangskontrolle auf grundlage von dokumentkomponenten-layouts
DE102015008619A1 (de) Verfahren und Vorrichtung zum Verfassen von elektronischen Postnachrichten beginnend von existierenden Nachrichten in einem elektronischen Postprogramm
WO2012017056A1 (de) Verfahren und vorrichtung zur automatischen verarbeitung von daten in einem zellen-format
DE112012000780T5 (de) Verarbeiten von Berechtigungsprüfungsdaten
DE112007002327T5 (de) Persistente Sperren auf Ressourcen zur Steuerung der Nebenläufigkeit
DE102015122028A1 (de) Verfahren und Gerät zum Aktualisieren von Kontakten
DE19955003A1 (de) Objekte mit selbstreflektierenden Objekt-Relevanzfunktionen
DE10115380A1 (de) Verfahren zum Ändern eines Parameters eines Betriebssystems eines Computersystems

Legal Events

Date Code Title Description
R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
R151 Utility model maintained after payment of second maintenance fee after six years
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: MAIKOWSKI & NINNEMANN PATENTANWAELTE PARTNERSC, DE

R152 Utility model maintained after payment of third maintenance fee after eight years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0017240000

Ipc: G06F0040166000

R071 Expiry of right