DE202010018483U1 - System zum Zusammenführen von Bearbeitungen für eine Konversation in einem gehosteten Konversationssystem - Google Patents

System zum Zusammenführen von Bearbeitungen für eine Konversation in einem gehosteten Konversationssystem Download PDF

Info

Publication number
DE202010018483U1
DE202010018483U1 DE202010018483.5U DE202010018483U DE202010018483U1 DE 202010018483 U1 DE202010018483 U1 DE 202010018483U1 DE 202010018483 U DE202010018483 U DE 202010018483U DE 202010018483 U1 DE202010018483 U1 DE 202010018483U1
Authority
DE
Germany
Prior art keywords
edits
sequence
conversation
client
merged
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
DE202010018483.5U
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 DE202010018483U1 publication Critical patent/DE202010018483U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • G06Q50/40
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1831Tracking arrangements for later retrieval, e.g. recording contents, participants activities or behavior, network status
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms

Abstract

Serversystem, das Folgendes umfasst: einen Prozessor oder mehrere Prozessoren; Speicher; und ein oder mehrere Programme, die im Speicher für die Ausführung durch einen oder mehrere Prozesse gespeichert sind, die einen oder mehreren Programme, die Anweisungen für das Hosten einer Vielzahl von Konversationen enthalten, einschließlich Hosten, für eine entsprechende Konversation: das Empfangen einer ersten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Teilnehmer an der Konversation und die Umwandlung der ersten Sequenz von Bearbeitungen in eine erste zusammengeführte Sequenz von Bearbeitungen; das Empfangen einer zweiten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem zweiten Teilnehmer an der Konversation und die Umwandlung der zweiten Sequenz von Bearbeitungen in eine zweite zusammengeführte Sequenz von Bearbeitungen; das Reagieren auf das Feststellen, dass die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es die erste zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine erste umgewandelte Sequenz von Bearbeitungen zu produzieren und die zweite zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine zweite umgewandelte Sequenz von Bearbeitungen zu produzieren; und das Senden der ersten Sequenz der umgewandelten Bearbeitungen an den zweiten Teilnehmer und der Sequenz der zweiten umgewandelten Sequenz von Bearbeitungen an den ersten Teilnehmer; das Anwenden der ersten Sequenz von Bearbeitungen gefolgt von der zweiten umgewandelten Sequenz von Bearbeitungen am ersten Teilnehmer auf die entsprechende Inhaltseinheit der Konversationen erzeugt das gleiche Ergebnis wie die Anwendung der zweiten Sequenz von Bearbeitungen gefolgt von der ersten umgewandelten Sequenz von Bearbeitungen am zweiten Teilnehmer auf die entsprechende Inhaltseinheit der Konversation.

Description

  • TECHNISCHES GEBIET
  • Die dargelegten Ausführungsformen beziehen sich im Allgemeinen auf Kommunikationssysteme. Im Besonderen beziehen sich die dargelegten Ausführungsformen auf Methoden, Systeme und Benutzeroberflächen zur Übertragung, Empfang und Wiedergabe von elektronischen Nachrichten. Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • HINTERGRUND
  • Eine Vielzahl von elektronischen Kommunikationssystemen, einschließlich der elektronischen Emailsysteme („Email”) und Instant Messaging Systeme (IM), sind bekannt. In beiden Systemen, Email und IM, können einzelne Nachrichten weitergeleitet und beantwortet werden. Jedoch ist es in beiden Systemen, Email und IM, relativ schwierig oder umständlich lediglich auf einzelne Passagen von Nachrichten zu antworten oder nur einzelne Passagen weiterzuleiten. Außerdem ist es schwierig bei Nachrichten mit mehreren Leveln (z. B. eine Unterhaltung, die verschiedene Nachrichten und Antworten zu unterschiedlichen Themen oder Unterthemen enthält) dem logischen Kontext zumindest einiger der enthalten Nachrichten der Unterhaltung zu folgen. In gleicher Weise kann der logische Kontext verloren gehen, wenn ein Teilnehmer mittendrin in die Unterhaltung einsteigt.
  • Instant Messaging wird auch als elektronischer Chat bezeichnet. Ein beliebtes elektronisches Chatprogramm ist zum Beispiel Instant Messenger, eine eingetragene Marke von America Online. Ein elektronischer Chat ist, in Bezug auf die Funktion und die Struktur, mit einem Telefongespräch vergleichbar. Es gibt im Allgemeinen keine logische Struktur in einer Unterhaltung innerhalb eines elektronischen Chats. Es gibt lediglich eine Zeitachse.
  • Da die Nutzer von einer Vielzahl an Geräten (z. B. Laptop, Mobiltelefon, elektronischer Pager, Set Top Box, etc.) auf die elektronischen Nachrichten zugreifen, wäre es hilfreich von jedem dieser Geräte einen uneingeschränkten Zugang auf die gesamte Unterhaltung zu haben und damit in der Lage zu sein, den logischen Kontext der Beiträge jedes Nutzers innerhalb der Unterhaltung nachzuverfolgen.
  • ZUSAMMENFASSUNG DER DARGELEGTEN AUSFÜHRUNGSFORMEN
  • In einem Punkt der Erfindung hostet ein Serversystem eine Vielzahl von Konversationen. Für die jeweilige Konversation erhält das Serversystem eine erste Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation vom ersten Teilnehmer an der Konversation und konvertiert die erste Sequenz von Bearbeitungen in eine erste zusammengeführte Sequenz von Bearbeitungen. Für die jeweilige Konversation erhält das Serversystem eine zweite Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation vom zweiten Teilnehmer an der Konversation und konvertiert die zweite Sequenz von Bearbeitungen in eine zweite zusammengeführte Sequenz von Bearbeitungen. Das Serversystem reagiert auf die Feststellung, dass die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es die erste zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine erste umgewandelte Sequenz von Bearbeitungen zu produzieren und die zweite zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine zweite umgewandelte Sequenz von Bearbeitungen zu produzieren. Die erste umgewandelte Sequenz unterscheidet sich von der ersten zusammengeführten Sequenz. Das Serversystem sendet die erste umgewandelte Sequenz von Bearbeitungen an den zweiten Teilnehmer und die zweite umgewandelte Sequenz von Bearbeitungen an den ersten Teilnehmer. Die Anwendung der ersten Sequenz von Bearbeitungen gefolgt von der zweiten umgewandelten Sequenz von Bearbeitungen am ersten Teilnehmer auf die entsprechende Inhaltseinheit der Konversationen erzeugt das gleiche Ergebnis wie die Anwendung der zweiten Sequenz von Bearbeitungen gefolgt von der ersten umgewandelten Sequenz von Bearbeitungen am zweiten Teilnehmer auf die entsprechende Inhaltseinheit der Konversation. Bei einigen Ausführungsformen werden die Anweisungen zur Ausführung der Abläufe, die obenstehend beschrieben wurden, in einem geeigneten Speichermedium des Serversystems gespeichert, um von einem oder mehreren Prozessoren innerhalb des Serversystems verarbeitet zu werden. In einigen Ausführungsformen hat das Serversystem einen oder mehrere Prozessor/en, Speicher und ein oder mehrere Programme, die die obenstehend beschriebenen Abläufe durchführen. Dabei werden ein oder mehrere Programme in dem Speicher gespeichert und konfiguriert, um von einem oder mehreren Prozessor/en ausgeführt zu werden, um die Anweisungen durchzuführen.
  • In einem anderen Punkt der Erfindung hostet das Serversystem eine Vielzahl an Unterhaltungen. Für die jeweilige Konversation erhält das Serversystem eine Sequenz von ersten Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Client, verwendet von einem ersten Teilnehmer an der Konversation und erhält eine Sequenz von zweiten Bearbeitungen der gleichen entsprechenden Inhaltseinheit von einem zweiten Client, verwendet von einem zweiten Teilnehmer an der Konversation während sich überlappenden Zeiträumen. Das Serversystem reagiert auf die Feststellung, dass die Sequenz von ersten Bearbeitungen und die Sequenz von zweiten Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es Bearbeitungen in der Sequenz der ersten Bearbeitungen umwandelt, um eine Sequenz von ersten umgewandelten Bearbeitungen produziert und Bearbeitungen in der Sequenz der zweiten Bearbeitungen umwandelt, um eine Sequenz von zweiten umgewandelten Bearbeitungen zu produzieren. Die Sequenz der ersten umgewandelten Bearbeitungen unterscheidet sich von der Sequenz der ersten Bearbeitungen. Die Umwandlung am Serversystem berücksichtigt (A) Bearbeitungen an der Inhaltseinheit, die bei den ersten und zweiten Client durchgeführt wurden, (B) sekundäre Umwandlungen der ersten umgewandelten Bearbeitungen, die beim zweiten Client generiert wurden, um Konflikte zwischen den ersten umgewandelten Bearbeitungen und den Bearbeitungen zu lösen, die beim zweiten Client vorgenommen wurden, in eine entsprechende Kopie der Inhaltseinheit beim zweiten Client, und (C) sekundäre Umwandlungen der zweiten umgewandelten Bearbeitungen, die beim ersten Client generiert wurden, um Konflikte zwischen den zweiten umgewandelten Bearbeitungen und den Bearbeitungen zu lösen, die beim ersten Client vorgenommen wurden, in eine entsprechende Kopie der Inhaltseinheit beim ersten Client. Das Serversystem sendet die Sequenz der ersten umgewandelten Bearbeitungen an den zweiten Client und die Sequenz der zweiten umgewandelten Bearbeitungen an den ersten Client. Ein konsistenter Konversationszustand am Serversystem und bei den ersten und zweiten Clients resultiert aus der Umwandlung, von den sekundären Umwandlungen, die beim zweiten und ersten Client generiert wurden – von der Anwendung auf eine entsprechende Kopie der Inhaltseinheit beim den ersten Client Bearbeitungen, entsprechend der umgewandelten Sequenz von zweiten Bearbeitungen und der sekundären Umwandlungen, die beim ersten Client generiert wurden. Bei einigen Ausführungsformen werden die Anweisungen zur Ausführung der Abläufe, die obenstehend beschrieben wurden, in einem geeigneten Speichermedium des Serversystems gespeichert, um von einem oder mehreren Prozessoren innerhalb des Serversystems verarbeitet zu werden. In einigen Ausführungsformen hat das Serversystem einen oder mehrere Prozessor/en, Speicher und ein oder mehrere Programme, die die obenstehend beschriebenen Abläufe durchführen. Dabei werden ein oder mehrere Programm/e in dem Speicher gespeichert und konfiguriert, um von einem oder mehreren Prozessor/en ausgeführt zu werden, um die Anweisungen durchzuführen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Diverse Ausführungsformen der Erfindung werden in der folgenden Beschreibung der Ausführungsformen offenbart, im Zusammenhang mit den folgenden Zeichnungen, in denen ähnliche Referenznummern sich auf die entsprechenden Teile in den Abbildungen (FIG) beziehen.
  • 1 ist ein Blockdiagramm, das ein Beispiel für ein geteiltes Computersystem gemäß bestimmten Ausführungsformen in der Erfindung veranschaulicht.
  • 2 ist ein Blockdiagramm, das ein Beispiel für ein geteiltes System veranschaulicht, das einen Konversationsserver und Clients umfasst, die durch ein oder mehrere Kommunikationsnetzwerke gemäß bestimmten Ausführungsformen in der Erfindung koppelt.
  • 3A3C sind Blockdiagramme von Datenstrukturen für jeweils eine Konversationsdatenbank, eine Teilnehmerliste und ein Konversationsprotokoll, gemäß bestimmten Ausführungsformen in der Erfindung.
  • 4 ist ein Blockdiagramm, das eine Datenstruktur für eine Benutzerdatenbank gemäß bestimmten Ausführungsformen in der Erfindung veranschaulicht.
  • 5A5E sind Flussdiagramme, die ein Verfahren zum Hosten von Konversationen an einem Server gemäß bestimmten Ausführungsformen in der Erfindung veranschaulichen.
  • 6 ist ein Blockdiagramm einer Vielzahl von gelinkten Konversationsserver-Systemen mit Mechanismen zur Einholung und Verteilung von Benutzer-Online-Anwesenheitsinformationen gemäß bestimmten Ausführungsformen in der Erfindung.
  • 7 ist ein Blockdiagramm eines Konversationsservers für ein gehostetes Konversationssystem gemäß bestimmten Ausführungsformen in der Erfindung.
  • 8 ist ein Blockdiagramm eines Clients, der einen Benutzer hat, der gemäß bestimmten Ausführungsformen in der Erfindung an einer oder mehreren Konversationen in einem gehosteten Konversationssystem teilnimmt.
  • 9A9B veranschaulichen eine Reihe von Fenstern, die aufeinanderfolgende Bearbeitungen einer Konversation durch eine Vielzahl von Teilnehmern sowie die Wiedergabe dieser Bearbeitungen zeigen.
  • 10 veranschaulicht eine Reihe von Fenstern, die den einzel- und teambasierten Aufbau einer Konversation zeigen.
  • 11A–B sind Flussdiagramme, die ein Verfahren zum Bearbeiten, zur Wiedergabe und zum Aufbau von Konversationen zeigen, die an einem Server gehostet werden gemäß bestimmten Ausführungsformen in der Erfindung.
  • 12 veranschaulicht ein Prozessdiagramm, das die Gleichzeitigkeitssteuerung zwischen einer Vielzahl von potenziell gegensätzlichen Bearbeitungen aufzeigt, die von einer Vielzahl von Teilnehmern erhalten wurden.
  • 13 veranschaulicht zwei Sequenzen von separaten Bearbeitungsverfahren, die beide an der gleichen Inhaltseinheit durchgeführt wurden, wobei eine Sequenz von einem ersten Teilnehmer und eine zweite Sequenz von einem zweiten Teilnehmer an einer Konversation erhalten und anschließend umgewandelt wird.
  • 14 veranschaulicht erste und zweite Sequenzen von Bearbeitungsverfahren, die auf eine Inhaltseinheit einer elektronischen Konversation angewandt werden, die entsprechend von einem ersten Teilnehmer und einem zweiten Teilnehmer erhalten wurden, sowie umgewandelte Sequenzen von zusammengeführten Bearbeitungsverfahren entsprechend der ersten und zweiten erhaltenen Sequenzen von Bearbeitungsverfahren.
  • 15 ist ein Flussdiagramm, das ein Verfahren zur Gleichzeitigkeitssteuerung an einem Server und bei einem Client darstellt, wenn eine Vielzahl von Teilnehmern an einer Konversation potenziell gegensätzliche Bearbeitungen an der Konversation vornehmen.
  • Ähnliche Referenznummern beziehen sich in den Zeichnungen auf entsprechende Teile.
  • BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Verfahren, Systeme, Benutzerschnittstellen und weitere Aspekte der Erfindung werden beschrieben. Auf gewisse Ausführungsformen der Erfindung wird verwiesen, diese Beispiele werden in den begleitenden Zeichnungen dargestellt. Auch wenn die Erfindung in Verbindung mit den Ausführungsformen beschrieben wird, wird die Erfindung nicht auf diese speziellen Ausführungsformen beschränkt sein. Ganz im Gegenteil, die Erfindung beinhaltet Alternativen, Abänderungen und Entsprechungen, welche die Reichweite und den Geist der beigefügten Ansprüche respektieren. Die Spezifikationen und Zeichnungen sind dementsprechend als erläuternd und nicht als einschränkend anzusehen.
  • Des Weiteren werden in der folgenden Beschreibung zahlreiche spezifische Details aufgeführt, um ein gutes Verständnis der vorliegenden Erfindung zu übermitteln. Es wird jedoch für jede fachkundige Person ersichtlich sein, dass nicht alle spezifische Einzelheiten für den Einsatz der Technologie des Patentgegenstands notwendig sind. An anderen Stellen werden Methoden, Prozeduren, Komponenten und Netzwerke, die auch einem durchschnittlichen Vertreter der Kunst hinreichend bekannt sind nicht näher erläutert, um die Aspekte der dargestellten Erfindung nicht zu verschleiern.
  • 1 ist ein Blockdiagramm, das ein Beispiel für ein geteiltes Computersystem 100 gemäß bestimmten Ausführungsformen in der Erfindung veranschaulicht. Das Computersystem 100 beinhaltet eine Vielzahl an Clients 110. Nutzer der Clients 110 (nachfolgend auch als Client Geräte oder Client Systeme bezeichnet) sind Teilnehmer 112 in Unterhaltungen, die von einer Gruppe an Unterhaltung Serversystemen 130 gehostet werden (man dies auch Unterhaltung Serversystem). Die Clients 100 können aus einer beliebigen Anzahl von Geräten bestehen (z. B. Internetkiosk, persönliche digitale Assistenten, Mobiltelefone, Spielvorrichtungen, Desktop PCs, Laptops, Handheld PCs, Tablet PCs oder einer Kombination der Genannten), die genutzt werden um die unten beschriebenen Aktivitäten zu ermöglichen. Jeder Client 110 ist mit einem Netzwerk 120 verbunden, welches aus jeder beliebigen Anzahl an Netzwerken bestehen kann (z. B. Internet, Intranet, lokales Netzwerk, Weitverkehrsnetzwerk, verdrahtetes Netz, optisches Netzwerk oder einer Kombination der Genannten). Allgemeiner formuliert, die Clients 100 und die Konversationsserver 130 sind miteinander verbunden mittels einem oder mehrerer Netzwerke 120.
  • Ein entsprechender Client 110-B führt eine Client-Anwendung 114 aus, die den Zugriff des Client 110 auf einen entsprechenden gehosteten Konversationsserver 130 erleichtert. Diese Client-Anwendung 114 kann sich einer graphischen Benutzeroberfläche bedienen. Die Client-Anwendung kann zum Beispiel ein Webbrowser oder eine Browseranwendung wie etwa Firefox (eingetragenes Markenzeichen der Mozilla Foundation), Internet Explorer (eingetragenes Markenzeichen der Microsoft Corporation), Safari (eingetragenes Markenzeichen von Apple Inc.) oder Chrome (eingetragenes Markenzeichen von Google Inc.).
  • Während ein System 100 einen einzelnen Konversationsserver 130 umfassen kann, kann das System 100 in anderen Ausführungsformen mehrere Konversationsserver 130 umfassen. Zum Beispiel können mehrere Unterhaltungsserver 130-A und 130-B von unterschiedlichen Dienstleistern gehostet werden, wie etwa den jeweiligen Dienstleistern 116-A und 116-B. In manchen Ausführungen sind die Dienstleister Internet Service Provider (IPS), die einen Unterhaltungsservice anbieten. Wahlweise können einige oder alle dieser Dienstleister spezialisierte Unterhaltungs-Dienstleister sein. Wenn ein System 100 mehrere Unterhaltungsserver 130 beinhaltet, können die Unterhaltungsserver 130 entweder direkt, über ein lokales Netzwerk (LAN) oder über ein Netzwerk 120 miteinander verbunden sein.
  • Die Konversationsserver 130 hosten Konversationen zwischen Teilnehmern 112. Konkret hostet jeder Unterhaltungsserver 130 Unterhaltungen im Auftrag einer Gruppe an Nutzern. Zumindest einige dieser Nutzer sind Abonnenten des hostenden Unterhaltungssystems 100 und haben deshalb Nutzerkonten. Wie untenstehend ausführlicher erklärt, müssen einige der Teilnehmer einer Unterhaltung nicht zwingend auch Abonnenten des hostenden Unterhaltungssystems sein. Wenn ein neuer Inhalt durch einen der Teilnehmer zu der Unterhaltung hinzugefügt wird oder eine andere Änderung an der Unterhaltung durch einen der Teilnehmer vorgenommen wird, werden die Updates an alle Unterhaltungsserver 130, die die Unterhaltung für Teilnehmer hosten, gesendet. Diese Hostserver senden dann wiederum die Updates an die Clients 110, die von den Teilnehmern der Unterhaltung genutzt werden. Die Updates der Unterhaltung können sehr zeitnah an die Clients 110 der aktiven Teilnehmer der Unterhaltung gesendet werden (z. B. innerhalb einer oder zwei Sekunden). Optional erhalten die Clients 110 von passiven Teilnehmern 112, die online und in das Unterhaltungssystem 100 eingeloggt sind, die aber momentan der Unterhaltung nicht folgen oder nicht an der Unterhaltung teilnehmen, die Information, dass die Unterhaltung aktualisiert wurde, ohne dass sie die Updates der Unterhaltung erhalten. In mindestens einigen Ausführungsformen wird die aktualisierte Konversation vom Konversationsserver 130, der Konversationen für diesen Benutzer hostet, auf den Client des Teilnehmers heruntergeladen, wenn der Teilnehmer die Konversation „eröffnet” (zum Betrachten auswählt).
  • 2 ist ein Blockdiagramm des Systems 200, das beispielhafte Ausführungsformen eines Konversationsservers 130 und den Client-Systemen 210 und 220 veranschaulicht. Das System 200 beinhaltet ein Kommunikationsnetzwerk 120, wie oben beschrieben, verbunden mit einem Unterhaltungsserver 130 und einer Vielzahl an Clients, einschließlich des Clients 210. Client 210 entspricht einem jeweiligen Client 110 aus 1 und wird manchmal hier als „Teilnehmer-Client” bezeichnet, da der Benutzer von Client 110/210 ein Teilnehmer an einer oder mehreren Konversationen ist, die vom Konversationsserver 130 gehostet werden. Das System 200 beinhaltet zumindest einen Teilnehmer-Client 210. Der Teilnehmer-Client 210 beinhaltet optional einen Browser 212, wie etwa einen Webbrowser oder eine andere Browser-Anwendung, um die Teilnehmerinteraktion mit dem jeweiligen Unterhaltungsserver 130 zu erleichtern. Der Browser 212 beinhaltet (oder steuert) Üblicherweise eine virtuelle Maschine (z. B. Java Virtual Machine) zur Ausführung von Software, die in die Webseiten und andere Dokumente, die vom Browser 212 erstellt werden, eingebunden sind. In einigen Ausführungsformen führt der Browser 212 eine Unterhaltungsanwendung 214 aus, die zumindest zum Teil in die Webseite eingebunden ist. Die Webseite (die man als „gehostete Konversations-Webseite” bezeichnen kann) wird von einem Server, wie z. B. dem Konversationsserver 130, auf den Client 210 heruntergeladen wird und ausführbare Anweisungen, die von der virtuellen Maschine des Browsers 212 im Client 210 ausgeführt werden. Der Browser 212 und die Unterhaltungsanwendung 214 bilden zusammen die Client-Anwendung 114 der . Die Unterhaltungsanwendung 214 vereinfacht die Teilnehmerinteraktion mit dem Unterhaltungsserversystem 130.
  • In einigen anderen Ausführungsformen ist die Konversationsanwendung 214 ein Plug-In oder eine Erweiterung der Browser-Anwendung 212.
  • System 200 umfasst die Option Nicht-Abonnenten-Clients 220. Clients von Nicht-Abonnenten 220 erlauben Nutzern, die kein Konto beim Unterhaltungssystem haben zumindest auf eingeschränkte Weise an der gehosteten Unterhaltung teilzunehmen. Die Teilnahme an gehosteten Unterhaltungen kann auf verschiedene Art eingeschränkt werden. Zum Beispiel, könnte ein Nutzer, der kein Abonnent ist, die Erlaubnis haben eine Unterhaltung zu lesen und ihr neue Inhalte hinzuzufügen, aber keine Berechtigung haben bereits in der Unterhaltung vorhandene Inhalte zu ändern, auf bestimmte bereits in der Unterhaltung enthaltene Teile zu antworten oder die Unterhaltung erneut wiederzugeben.
  • Nicht-Abonnenten-Clients 220 greifen auf besondere Weise auf das Konversationsserversystem 130 zu, die sich von der Weise unterscheidet, die von Clients 210 angewandt wird, deren Benutzer Abonnenten des gehosteten Konversationssystems sind. Ein Beispiel für einen Nicht-Abonnent-Client 220 ist ein Weblog(„Blog”)-Server 226, der einen Weblog-Client 228 hat. Wie unten beschrieben kann eine gehostete Unterhaltung einen Weblog 228 (auch Weblog Client genannt) als Teilnehmer der Unterhaltung beinhalten. In diesem Fall wird der Inhalt der gehosteten Unterhaltung im Weblog veröffentlicht. Die veröffentlichte Unterhaltung ist sichtbar im Weblog 228, der vom Weblog Server 226 gehostet wird. Genauer gesagt, wenn ein Weblog 228 der Konversation als Teilnehmer hinzugefügt wird, wird der Inhalt der Konversation vom Konversationsserver 130, der die Konversation hostet, an den Weblog 228 übertragen (auch als „gepostet” bezeichnet). Nachdem der Weblog 228 als Teilnehmer hinzugefügt wurde, wird neu zur Unterhaltung hinzugefügter Inhalt vom Unterhaltungsserver 130, die die Unterhaltung hostet, auch an den Weblog 228 übertragen. Ein Nutzer (z. B. ein Nutzer eines anderen Clients 110, ), der den Inhalt vom Weblog 228 sieht (z. B. weil er die URL, die mit dem Weblog 228 verbunden ist, gehostet vom Weblog Server 226, besucht), kann auch den Inhalt der auf dem Weblog veröffentlichten Unterhaltung sehen.
  • Ein weiteres Beispiel für einen Nicht-Abonnenten-Client 220 ist ein E-Mail-Server 224, der E-Mail-Clients 222 umfasst. Inhalt von gehosteten Unterhaltungen kann zu einem oder mehreren Email-Clients 222 von einem oder mehreren Email-Servern 224 gesendet werden. Insbesondere wenn ein Nutzer eines Email-Client 222 zu einer Unterhaltung hinzugefügt wird, wird der Inhalt der Unterhaltung (und der Inhalt der anschließend zu der Unterhaltung hinzugefügt wird) zum Email. Client 222 übertragen vom Unterhaltungsserver 130, der die Unterhaltung hostet.
  • Weblogs und e-Mailserver sind ebenfalls Beispiele für „automatisierte Clients”. Andere Beispiele für automatisierte Clients schließen Services ein, wie etwa archivierende Services, Übersetzungsservice, Rechtschreibe- und Grammatik-Prüfung Services die genutzt werden könnten, um Dienstleistungen für andere Teilnehmer der gehosteten Unterhaltung anzubieten.
  • In einigen Ausführungen können die E-Mail-Clients 222 und Weblog-Clients 228 Inhalte lesen, jedoch keinen Inhalt zu einer gehosteten Konversation beitragen und sind somit lediglich Zuschauer. Allerdings erhalten zumindest einige „E-Mail-Teilnehmer” (d. h. Benutzer von E-Mail-Clients) oder „Weblog-Teilnehmer” (d. h. Weblog-Clients) in einigen anderen Ausführungsformen Erstellungsfunktionen (die Fähigkeit, einer Konversation Inhalte hinzuzufügen).
  • In einigen Ausführungsformen umfasst ein Konversationsserver 130 einen Front-End- oder Konversationsengine oder einen Konversationsengine 246 zur Verwaltung von Konversationen und Kommunikationen mit Clients, sowie einen oder mehrere Zusatzservices (Module, Anwendungen oder Server) 250 zur Verwaltung der Services im Zusammenhang mit Konversationen. In einigen Ausführungsformen beinhalten die Hilfsdienste 250 Rechtschreibeprüfungen 252, Sprachübersetzung oder Lokalisierungsservices 256 und verwalten Attachments 258 zu den Unterhaltungen. Unterhaltungsserver 130 beinhaltet außerdem Onlinepräsenzdienste 248, die Nutzern erlauben, den Onlinestatus von anderen Nutzern zu sehen (z. B. andere Abonnenten der hostenden Unterhaltungssystems), wie es ausführlicher untenstehend mit Referenz zu beschrieben wird. Der Server 130 beinhaltet eine Nutzer Datenbank 270, wie sie in untenstehend ausführlich beschrieben wird.
  • Der Front-End- oder Konversationsengine 246 verwendet (oder umfasst alternativ) einen Aktualisierungs-, Zugriffs- und Such-/Abfrage-Engine 260, um dem Teilnehmer Zugriff auf die Konversationen und Suchfunktionen während der Konversationen zu gewähren. In einigen Ausführungsformen ein oder mehrere Unterhaltungsindizes 264 sind inverse Indizes, die Wörter oder Begriffe in Unterhaltungen den Unterhaltungen zuordnen, in denen sie auftauchen. Der/die eine/mehrere Unterhaltungsindex/indizes 264 wird/werden genutzt, um Unterhaltungen in einer gehosteten Unterhaltungsdatenbank 262, die exakt zu den spezifischen Suchanfragen passen. Wenn neuer Inhalt zu den Unterhaltungen in der Unterhaltungsdatenbank 262 hinzugefügt wird, werden der eine/die mehreren Unterhaltungsindex/indizes 264 aktualisiert, um den hinzugefügten Inhalt über die Ausführung von Suchanfragen zugänglich zu machen. Die Unterhaltungsdatenbank 262 wird ausführlicher untenstehend in beschrieben.
  • Als Option umfasst der Konversationsserver 130 ein SMTP-Gateway 242 zur Erleichterung der E-Mail-Kommunikation mit einem oder mehreren E-Mail-Servern 224.
  • In der folgenden Erörterung ist ein Abonnent ein Benutzer, für den ein Konversationsserver 130 (z. B. ein beliebiger Konversationsserver 130 in einem Satz von Konversationsservern 130, die Konversationsservices bereitstellen) eine Benutzerakte bzw. ein -profil pflegt (siehe 402, 4, wie im Folgenden beschrieben).
  • Wie im Folgenden detaillierter beschrieben, pflegt der Konversationsserver 130 in einigen Ausführungsformen eine Liste 414 (4) mit Konversationen, an denen der Benutzer/Abonnent teilnimmt, für einen entsprechenden Benutzer/Abonnenten. Der Konversationsserver 130 aktualisiert den Status (Konversationsstatus 438-1, 4) jeder dieser Konversationen in der Benutzer-Konversationsliste 414, wenn sich der Status der entsprechenden Konversation ändert. Wenn der Unterhaltungsserver 130 dem Nutzer eine angefragte Liste an Unterhaltungen (z. B. als Reaktion auf eine Suchanfrage des Nutzers) sendet (üblicherweise beinhaltet diese eine Untermenge der kompletten Gruppe an Unterhaltungen, in denen der Nutzer Teilnehmer ist), beinhaltet die Liste die Statusinformationen aller gelisteten Unterhaltungen. Die Statusinformation in der Liste ist normalerweise eine Untermenge des Unterhaltungsstatus 438, denn es wird lediglich ein Teil des Unterhaltungsstatus (z. B. ob ein Inhalt in den Unterhaltungen bis jetzt von einem Nutzer noch nicht gesehen wurde) benötigt, wenn die Liste der Unterhaltungen angezeigt wird.
  • 3A ist ein Blockdiagramm, das Beispiel-Datenstrukturen für die Konversationsdatenbank 262 veranschaulicht. Auch wenn die meisten Unterhaltungen eine einzelne Gruppe an Teilnehmern haben, die den gesamten Inhalt der Unterhaltung teilen, gibt es manche Unterhaltungen (nachfolgend Unterhaltungscontainer genannt), die eine kompliziertere Struktur haben. Insbesondere kann eine erste Konversation dazu führen, dass eine beliebige Anzahl von „Seitenkonversationen” von diversen Subsets der Teilnehmer in der ersten Konversation auftreten und kann darüber hinaus zusätzliche Teilnehmer umfassen. Ein Unterhaltungscontainer kann z. B. von zwei oder mehr Teams an Teilnehmer (z. B. Team A und Team B) genutzt werden, um ein Abkommen zu verhandeln oder um ein Dokument, eine Präsentation oder ähnliches, gemeinsam zu bearbeiten. Um den Bedürfnissen aller Teilnehmer gerecht zu werden, wird eine erste Konversation (manchmal als Primärkonversation oder Masterkonversation bezeichnet) mit allen Teilnehmern gestartet, und vor dort aus ergeben sich „private Konversationen”, die den Teilnehmern in den jeweiligen Teams erlauben, privat mit anderen Teilnehmern des Teams zu kommunizieren und dabei dennoch Zugriff auf den gesamten Inhalt der ersten Konversation zu haben. Üblicherweise hat jede private Unterhaltung eine Gruppe an Teilnehmern, die zumindest einen Teilnehmer der primären Unterhaltung ausschließt. Optional kann eine private Unterhaltung einen oder mehrere zusätzliche Teilnehmer (z. B. einen Berater), der nicht an der primären Unterhaltung teilnimmt, einschließen. Jeder Teilnehmer hat nur Zugang zu dem Inhalt der Unterhaltungen, an denen er teilnimmt. Üblicherweise haben die Teilnehmer des Teams A Zugang zum Inhalt von der privaten Unterhaltung des Teams A und zu der primären Unterhaltung. Wohingegen die Teilnehmer des Teams B Zugang zum Inhalt von der privaten Unterhaltung des Teams B und zu der primären Unterhaltung haben.
  • 3A ist ein Blockdiagramm, das Beispiel-Datenstrukturen veranschaulicht, die sowohl einfache Konversationen (d. h. einzelne Konversationen ohne zugehörige private Konversationen) als auch Konversationscontainer, die mehrere Konversationen enthalten (manchmal als Primärkonversationen und eine oder mehrere Sub-Konversationen bezeichnet) unterstützen.
  • Konversationsdatenbank 262 umfasst eine Vielzahl von Konversationscontainerdaten 302-1 bis 302-N, von denen jede die Daten für einen Konversationscontainer enthält. Wenn der jeweilige Unterhaltungscontainer nur eine Unterhaltung beinhaltet, ist der einzige Eintrag in dem entsprechenden Eintrag für den Unterhaltungscontainer 302, der für eine einfache Unterhaltung, wie er dargestellt durch den Unterhaltungseintrag 310 wird. Im Allgemeinen beinhaltet der Eintrag eines Unterhaltungscontainers 302 einen oder mehrere Unterhaltungseinträge 301-1 bis 310-C. Jeder Unterhaltungseintrag 310 enthält Daten der entsprechenden Unterhaltung, einschließlich:
    • • Konversationscontainer-Kennung 329, die den Konversationscontainer im Konversationssystem 110/200, der den Konversationscontainerdaten 302 entspricht, in denen sich die Konversationsdaten 310 befinden, eindeutig identifiziert;
    • • Konversationskennung 330, die zusammen mit der Konversationscontainerkennung 329 die Konversation im Konversationssystem 100/200 eindeutig identifiziert, die den Konversationsdaten 310 entspricht (d. h. eine Konversation kann nur mit einem einzigen Konversationscontainer verknüpft werden);
    • • Konversations-Metadaten 322;
    • • Konversationsprotokoll 324 (manchmal als Verlaufsprotokoll bezeichnet); und
    • • eine oder mehrere Inhaltsbeiträge 326-1 bis 326-n; und
    • • ein Verlaufsprotokoll 360.
  • Konversations-Metadaten 322 sind Metadaten für die Konversation, entsprechend den Konversationsdaten 310 und identifiziert durch die Konversationskennung 310. In einigen Ausführungsformen beinhalten die Metadaten der Unterhaltung 322 einen Zeitstempel 331 der Erstellung der Unterhaltung (gibt Datum und Uhrzeit der Erstellung der Unterhaltung an) und eine Liste der Teilnehmer 332 (ausführlicher beschrieben in ) der Unterhaltung. Die Metadaten 322 können weitere Metadaten umfassen, wie Metadaten, die Tags 325 identifizieren (z. B. System- und/oder vom Benutzer zugewiesene Label, die „öffentlich” sind und daher allen Teilnehmern an der Konversation zur Verfügung stehen), die mit der Konversation zusammenhängen, sowie weitere Merkmale der entsprechenden Konversation, die mit den Konversationsdaten 310 verbunden sind.
  • Wenn ein Konversationscontainer mehr als eine Konversation enthält, umfasst die Teilnehmerliste 332 für die Primärkonversation des Konversationscontainers gewöhnlich alle Teilnehmer an allen Konversationen im Konversationscontainer. In einigen Ausführungsformen jedoch, können private Unterhaltungen (d. h. Unterhaltungen, die nicht die primäre Unterhaltung sind) im Unterhaltungscontainer zusätzliche Teilnehmer haben, die nicht Teilnehmer der primären Unterhaltung sind. Dadurch haben üblicherweise die privaten Unterhaltungen im Unterhaltungscontainer eine Teilnehmerliste 332, die zumindest einen Teilnehmer enthält, der auch an der primären Unterhaltung teilnimmt und optional einen oder mehrere Teilnehmer einschließt, die nicht an der primären Unterhaltung desgleichen Unterhaltungscontainers teilnimmt.
  • Darüber hinaus wird für alle privaten Konversationen, jedoch nicht für die Primärkonversation, eine übergeordnete ID/Einfügungsposition 333 zur Verfügung gestellt. Die Parent ID/Insertion Position 333 identifiziert den Ursprung der privaten Unterhaltung und auch die Position innerhalb der identifizierten Ursprungsunterhaltung, an der der Inhalt der privaten Unterhaltung angezeigt werden soll, wenn Teilnehmer der privaten Unterhaltung ihn ansehen. Üblicherweise ist die primäre Unterhaltung der Ursprung des Unterhaltungscontainers. Aber in einigen Fällen kann der Ursprung einer privaten Unterhaltung auch eine andere private Unterhaltung sein, die weiter oben in der Hierarchie (oder Grafik) der Unterhaltungen im Unterhaltungscontainer sein. Wenn ein Teilnehmer einer privaten Unterhaltung den Unterhaltungscontainer, der die private Unterhaltung enthält, ansieht, kann er sowohl den Inhalt dieser Unterhaltung als auch den der primären Unterhaltung sehen (ausgehend davon, dass er auch Teilnehmer der primären Unterhaltung ist). In einer weniger häufigen Kommunikationssituation, in der der Nutzer zwar an der privaten Unterhaltung teilnimmt, nicht aber an der primären Unterhaltung, wird der Nutzer nur den Inhalt der privaten Unterhaltungen im Unterhaltungscontainer sehen, an der/denen er teilnimmt.
  • In einigen Ausführungsformen zeichnet das Konversationsprotokoll 324 (3C) sämtliche Änderungen an der Konversation auf, einschließlich Änderungen des Inhalts der Konversation, sowie an der Gruppe von Teilnehmern und andere Merkmale der Konversation. Auf das Unterhaltungsprotokoll 324 wird zugegriffen, wenn ein Teilnehmer einmalig oder mehrfach den Status einer Unterhaltung sehen will oder den Inhalt einer Einheit innerhalb der Unterhaltung. Das Unterhaltungsprotokoll 324 kann zum Beispiel die Abfolge von Inhaltsänderungen einer Unterhaltung rekonstruieren oder nachverfolgen. Dies wird manchmal auch „Wiedergeben” oder „Wiedergabe” der Konversation genannt. Die Wiedergabe einer Unterhaltung kann auf verschiedene Weise ausgeführt werden, einschließlich des Vor- und Zurückspulens und der Funktion Updates wahlweise für einen Teil oder für die gesamte Unterhaltung anzuzeigen.
  • Ein entsprechender Inhaltsbeitrag 326 (auch als Inhaltseinheit oder „Blip” bezeichnet) in einer Konversation kann eine Nachricht sein, wie eine E-Mail- oder Sofortnachricht. Weitere Inhaltsbeiträge 326 in einer Konversation können Dokumente sein (z. B. ein Bericht, eine Meeting-Tagesordnung, usw.), oder Bilder, Präsentationen, Audiodateien, Videodateien oder nahezu irgendwelche anderen Arten von elektronischen Dokumenten oder Inhalten. In einigen Ausführungsformen gibt es kaum eine oder gar keine Unterscheidung zwischen Emailnachrichten und anderen Arten von Beiträgen zur Unterhaltung. In einigen Ausführungsformen enthalten die Daten in einem Unterhaltungsprotokoll 310 für jeden Beitrag zur Unterhaltung 326:
    • • eine Inhaltskennung 342 (z. B. ein Wert, der den Inhaltsbeitrag eindeutig identifiziert, entweder global innerhalb des Konversationssystems oder lokal innerhalb einer bestimmten Konversation);
    • • Inhaltseinheiten-Metadaten 346, die die Merkmale des Inhaltsbeitrags 326 identifizieren;
    • • optional, ein oder mehrere Anhänge 344 (z. B. Bilder, Videos, Dokumente, Dateien, Archive, Audio, Animation, Links usw.); und
    • • der Inhalt 349 (z. B. Text, Bilder, Dokumenteninhalte, usw.) des Inhaltbeitrags 326.
  • In einigen Ausführungsformen umfassen die Inhaltseinheiten-Metadaten 346 für eine Inhaltseinheit 326 Folgendes:
    • • einen ersten Zeitstempel 341-1, der das Datum und die Uhrzeit zeigt, an dem die Inhaltseinheit zum ersten Mal erstellt wurde (der Konversation hinzugefügt wurde) und eine entsprechende Sequenznummer 343-1, die dem Status der Konversation entspricht, als die Inhaltseinheit zum ersten Mal erstellt wurde;
    • • ein letzter Zeitstempel 341-2, der das letzte Datum und die Uhrzeit zeigt, als die Inhaltseinheit bearbeitet wurde, und eine entsprechende Sequenznummer 343-2, die dem Status der Konversation entspricht, als die letzte Bearbeitung an der Inhaltseinheit stattfand; es ist von Nutzen, sowohl den ersten als auch den letzten Zeitstempel und die Sequenznummern zu haben (z. B.) bei der Wiedergabe von Änderungen an der Inhaltseinheit, oder bei der Wiedergabe von Änderungen an einem Teil der Konversation, die die Inhaltseinheit umfasst; und
    • • Kennungen 352 (z. B. Teilnehmeradressen) der Beiträger oder Autor(en) der Inhaltseinheit, optional sortiert nach der Reihenfolge der ersten Beiträge jedes Autors an die Inhaltseinheit; während die meisten Inhaltseinheiten einen einzigen Autor haben, können Inhaltseinheiten auch gemeinsam verfasst werden, d. h. es gibt mehrere Autoren.
  • In einigen Ausführungsformen umfassen die Metadaten 346 für eine Inhaltseinheit 326 u. a. Folgendes:
    • • übergeordnete Kennung 354 dient als Kennung oder Hinweis auf die übergeordnete Inhaltseinheit, für die dieser Inhaltsbeitrag die Reaktion bzw. die Antwort darstellt;
    • • Position 350 bietet einen Hinweis auf die Position dieser Inhaltseinheit in einer Konversation; die Position 350 kann verwendet werden, um zu steuern, wie die Inhaltseinheit angezeigt wird, wenn zwei oder mehr Inhaltseinheiten der Konversation angezeigt werden; und
    • • optional, Geschwister 358 dieses Inhaltsbeitrags (d. h. Kennungen oder Hinweise auf Geschwisterinhaltseinheiten, die weitere Reaktionen oder Antworten an die dieser Inhaltseinheit übergeordnete Inhaltseinheit darstellen).
  • Gewöhnlich umfassen die Metadaten 346 für eine Inhaltseinheit 326 mindestens einen Wert (z. B. Position 350 oder übergeordnete Kennung 354), die die Position der Inhaltseinheit 326 in der Konversation identifiziert bzw. repräsentiert.
  • Ein Konversationsindex 264 (siehe 2) erlaubt schnellen Zugriff auf Konversationen in der Konversationsdatenbank 262 über Indexsuchen.
  • 3B ist ein Blockdiagramm, das Datenstrukturen für die Teilnehmerliste 332 in den Konversations-Metadaten 322 (3A) von Konversationsdaten 310 veranschaulicht. Eine Teilnehmerliste 332 enthält eine Vielzahl an Teilnehmerprotokollen 362, eines für jeden der Teilnehmer einer jeweiligen Unterhaltung. In einigen Ausführungsformen beinhaltet jedes Teilnehmerprotokoll 362 die folgenden Informationen oder eine Untermenge der folgenden Informationen:
    • • eine Konversationskennung 371;
    • • Eine Teilnehmeradresse 372, die auch als Teilnehmerkennung bezeichnet wird; die Teilnehmeradresse identifiziert eindeutig den Teilnehmer aus sämtlichen Teilnehmern an Konversationen im Konversationssystem 100 (1);
    • • ein Pro-Benutzer-Konversationsstatus 373; zum Beispiel kann der Konversationsstatus 373 den gelesenen/ungelesenen Status 374 dieser Konversation bzgl. des entsprechenden Teilnehmers entsprechend zu den Teilnehmerdaten 362 anzeigen; der Konversationsstatus 372 kann Informationen dazu umfassen, welche Inhaltsbeiträge in der Konversation vom Teilnehmer angesehen wurden und welche noch nicht;
    • • der Konversationsstatus 373 für einen Konversationsteilnehmer kann Flaggen 376 umfassen; optional können die Flaggen 376 eine Ignorierflagge 377 umfassen (wird manchmal als Stummschaltungsflagge bezeichnet), die, wenn sie vorliegt, darauf hinweist, dass der Teilnehmer das Konversationssystem angewiesen hat, den Teilnehmer nicht über Aktualisierungen der Konversation in Kenntnis zu setzen;
    • • der Konversationsstatus 373 für einen Konversationsteilnehmer kann private Labels (manchmal „Ordner” oder „Ordnerbezeichnungen” genannt) 378 umfassen, die von diesem Teilnehmer dieser Konversation zugewiesen wurden, die nur vom Teilnehmer verwendet werden dürfen (z. B. bei der Suche nach Konversationen kann der Teilnehmer ein privates Label als einen der Suchbegriffe eingeben); private Labels können von Teilnehmern genutzt werden, um ihnen dabei zu helfen, Konversationen zu organisieren und um Konversationen leichter finden zu können, indem sie nach den Labeln suchen, die ihnen zugewiesen wurden; es wird erwähnt, dass es sich bei den Tags 325 um öffentliche Informationen handelt, die allen Teilnehmern an einer Konversation zur Verfügung stehen, während die privaten Label jedes Teilnehmers privat für den jeweiligen Teilnehmer sind; der Konversationsstatus 373 für einen Konversationsteilnehmer kann einen Betrachterhinweis 379 umfassen, der entweder den Teil der aktuell vom Teilnehmer betrachteten Konversation enthält (und die Position des Cursors des Benutzers in einer entsprechenden Inhaltseinheit, wenn der Benutzer Eingaben oder Einträge tätigt), oder den Teil der Konversation, der zuletzt vom Teilnehmer betrachtet wurde, wenn der Teilnehmer die Konversation derzeit weder anzeigt noch betrachtet;
    • • optional, weitere Metadaten, die mit diesem entsprechenden Teilnehmer bzgl. dieser spezifischen Konversation zusammenhängen.
  • Eine weitere optionale Flagge 376 im Pro-Benutzer-Konversationsstatus 373 für einen entsprechenden Teilnehmer ist eine Erinnerungsflagge. Wenn er Teil des Pro-Benutzer-Konversationsstatus 373 ist, umfasst Pro-Benutzer-Konversationsstatus 373 ebenfalls einen entsprechenden Zeitstempel, der das Datum und die Uhrzeit (oder ein Paar Zeitstempel zur Angabe von Daten/Uhrzeiten) umfasst, bei dem der Teilnehmer erinnert wird, auf die Konversation oder einen Teil hiervon zu achten, oder optional eine Benutzer-ID, die den Benutzer identifiziert, der die Erinnerung veranlasst hat (in einigen Ausführungsformen können Erinnerungen von einem Benutzer nicht nur an ihn selbst, sondern auch an andere Teilnehmer an der Konversation); und optional einen Inhaltsbereichshinweis zur Festlegung eines Teils der Konversation, die das Objekt der Erinnerung ist.
  • Eine weitere optionale Flagge 376 im Pro-Benutzer-Konversationsstatus 373 für einen entsprechenden Teilnehmer ist eine Ping-Flagge. Eine Ping-Flagge ist Teil des Pro-Benutzer-Konversationsstatus 373, wenn ein anderer Teilnehmer einen Ping (dies ist eine Form der Benachrichtigung oder Sofortnachricht) an den Teilnehmer (gewöhnlich handelt es sich hier um einen Online-Teilnehmer) gesendet hat, oder wenn der Teilnehmer einen Ping an einen anderen Teilnehmer gesendet hat. Die Alarm-Markierung, wenn sichtbar, zeigt der Client-Anwendung an, dass eine Alarm-Markierung (z. B. eine Pop-up Box) anzeigt werden soll
  • Viele der Informationen (z. B. Konversationsstatus 373) in den Teilnehmerdaten 362 sind privat für diesen Teilnehmer und werden nicht mit anderen Teilnehmern an der Konversation oder anderen Benutzern im Konversationssystem geteilt. In einigen Ausführungsformen wird die Cursorposition (siehe 379, 3B) jedes Teilnehmers, der eine Inhaltseinheit aktiv bearbeitet oder der neuen Text in eine Konversation eingibt, veröffentlich und kann von anderen Teilnehmern an der Konversation gesehen werden, es sei denn, der entsprechende Teilnehmer hat sich entschlossen, die Veröffentlichung seiner Cursorposition zu unterdrücken; in diesem Fall wird dieser Aspekt des Konversationsstatus 373 des Teilnehmers nicht als privat für den Teilnehmer betrachtet. Wenn eines eine Vielzahl an aktiven Teilnehmern gibt, die die gleiche Unterhaltung bearbeiten, wird die Information über die Cursor-Positionsinformation für jeden aktiven Teilnehmer an die Clients der aktiven Teilnehmer übermittelt (über ihre hostenden Unterhaltungsserver). Beim jeweiligen Teilnehmer des Clients wird eine Vielzahl an Cursor-Positionen (entsprechend der Vielzahl der unterschiedlichen Teilnehmer) gleichzeitig angezeigt, wenn die Cursor-Positionen nahe genug beieinanderliegen, dass eine gleichzeitige Anzeige möglich ist.
  • Wie oben beschrieben pflegt der Server 140 in einigen Ausführungsformen für alle entsprechenden Konversationsdaten 310 einen Konversationsstatus 373 für jeden entsprechenden Teilnehmer 362 der entsprechenden Konversation bzgl. des jeweiligen Teilnehmers. Der Server 130 bietet dem jeweiligen Teilnehmer (z. B., für den Client, der dem Teilnehmer die Unterhaltung anzeigt) den Status der jeweiligen Unterhaltung in Bezug auf den jeweiligen Teilnehmer an. In einigen Ausführungsformen beinhaltet das, dass dem Teilnehmer (z. B. für den Client, den der Teilnehmer nutzt) den Lesestatus der Inhaltseinheiten der jeweiligen Unterhaltung in Bezug auf den Teilnehmer (d. h., er zeigt an, welche Inhaltseinheiten durch welchen Teilnehmer bereits gelesen oder angesehen wurden (im aktuellen Status), und welche nicht) zur Verfügung zu stellen. In einigen Ausführungsformen beinhaltet die Bereitstellung des Unterhaltungsstatus 373 der jeweiligen Unterhaltung in Bezug auf den jeweiligen Teilnehmer auch das Anbieten von Markierungen 378, spezifiziert vom jeweiligen Teilnehmer für die jeweilige Unterhaltung.
  • In einigen Ausführungen beinhaltet der Status 373 der entsprechenden Konversation bzgl. des entsprechenden Teilnehmers die Bereitstellung von Metadaten (z. B. die Ignorierflagge 377), um die entsprechende Konversation im Einklang mit den Anweisungen des Teilnehmers zu ignorieren. Dies bietet dem Teilnehmer die Option Unterhaltungen mit einer Regel zu verwalten, um Unterhaltungen zu archivieren und um eine Überlastung im Inhaltsdisplay zu vermeiden. Wenn ein Teilnehmer zum Beispiel eine Konversation mit einem systemdefinierten Label „ignore” oder „mute” markiert, wird die Ingorier-Statusflagge 377 für den Teilnehmer gesetzt (für die markierte Konversation), und die Konversation wird anschließend ähnlich einer archivierten Nachricht oder Konversation behandelt (bzgl. dieses bestimmten Teilnehmers). Weitere Teilnehmer an der Konversation können diese Konversation immer noch auf ihrer Liste von aktiven Konversationen sehen, wenn sie die Konversation nicht mit dem „Ignorier”-Label markiert haben.
  • In einigen Ausführungsformen wird der Pro-Benutzer-Konversationsstatus 373 für jeden Teilnehmer an jeder gehosteten Konversation in der Konversationsdatenbank 262 gespeichert, wie in 3A dargestellt. In anderen Ausführungsformen wird der nutzerabhängige Unterhaltungsstatus 373 für jeden Teilnehmer von jeder gehosteten Unterhaltung in der Nutzerdatenbank 400 gespeichert, wie untenstehend ausgeführt. In weiteren Ausführungsformen werden Informationen zum Pro-Benutzer-Konversationsstatus 373 (für jeden Teilnehmer an jeder gehosteten Konversation) in einer separaten Datenbank oder auf einem Server gespeichert (manchmal als „Benutzerergänzungs”-Datenbank oder -Server bezeichnet), die separat von der Konversationsdatenbank 262 und der Benutzerdatenbank 400 ist. Optional können Hinweise zur nutzerabhängigen Information zum Unterhaltungsstatus 373 (z. B. Protokolle) in der Nutzer-Supplement Datenbank 400 und in der Unterhaltungsdatenbank 262 gespeichert werden. Alternativ dazu werden solche Hinweise nicht gespeichert und der nutzerabhängige Unterhaltungsstatus 373 eines bestimmten Nutzers von einer entsprechenden Unterhaltung wird abgerufen. Üblicherweise von der Nutzer-Supplement Datenbank für die Übermittlung zu einem Client, der an der Unterhaltung teilnimmt, auf einer Anfrage-Basis. Außerdem wird er im Einklang mit den Operationen (z. B.: Inhalte lesen, Endinhalte eingeben, Inhalte bearbeiten etc.), die vom Teilnehmer durchgeführt werden, aktualisiert.
  • Wie im Folgenden detaillierter beschrieben, speichert der Konversationsserver 130 in einigen Ausführungsformen eine Kontaktliste (416, beschrieben in 4), die mit dem entsprechenden Abonnenten verknüpft ist. In einigen Ausführungsformen wird die Kontaktliste in der Nutzerdatenbank 270 ( ) oder 400 ( ) gespeichert.
  • Wenn eine Konversation zur Anzeige für den Benutzer an einen Client gesendet wird, erhält der Client nur einen Teil der Konversationsdaten 310 (3A) für diese Konversation. In einigen Ausführungsformen enthält der Teil des Unterhaltungsprotokolls 310, der an den Client gesendet und von ihm gespeichert wird nicht das Unterhaltungsprotokoll 324 und den Unterhaltungsstatus 373 anderer Teilnehmer (mit Ausnahme der Cursor-Position der anderen aktuell aktiven Teilnehmer der Unterhaltung, die diese Übertragung ihrer Cursor-Position nicht geblockt haben). In einigen Ausführungsformen wird das Unterhaltungsprotokoll 324 nur an den Client 110 gesandt, wenn der Teilnehmer beim Client eine Wiedergabe der Unterhaltung, einen nutzerspezifischen Teil der Unterhaltung oder eine Statusübersicht der Unterhaltung zu einem bestimmten Zeitpunkt oder Punkt in der Vergangenheit angefordert hat.
  • 3C ist ein Blockdiagramm, das gemäß einiger Ausführungsformen Datenstrukturen für das Konversationsprotokoll 324 veranschaulicht. Das Unterhaltungsprotokoll 324 enthält eine zeitlich geordnete Sequenz der Protokolleinträge 385-1 bis 385-C (auch als Logeintrag bezeichnet). Ein jeweiliger Protokolleintrag 385 beinhaltet eine Inhalts-ID 386, die Inhaltseinheit (wenn es eine gibt), die durch die Änderungen des Inhalts aktualisiert wird, die im Protokolleintrag 385 hinterlegt sind, Metadaten 388, die in den Änderungen des Inhalts aufgezeichnet sind, Verlinkungen 394 (z. B. eine oder mehrere Hinweise oder Dateinamen) zu Attachments, die der Unterhaltung hinzugefügt wurden durch die Änderungen des Inhalts und eine Liste der Inhaltsbearbeitungen oder -änderungen 396, die in den Protokolleinträgen hinterlegt sind. Die Metadaten 388 beinhalten einen Zeitstempel 389 und/oder eine Sequenznummer, welche eindeutig die Reihenfolge der Änderungen an der Unterhaltung im Protokolleintrag identifiziert, relativ zu den Änderungen an der Unterhaltung in anderen Protokolleinträgen der gleichen Unterhaltung. Die Metadaten 388 identifizieren außerdem eine Liste an Autoren (auch als Beitragende bezeichnet) 390 der Änderungen an der Unterhaltung im Protokolleintrag und die Startposition 392 der Änderungen an der Unterhaltung, die im Protokolleintrag 385 hinterlegt sind. Während die Autorenliste 390 nur einen Autor für die meisten Protokolleinträge 385 nennen wird, kann ein einziger solcher Protokolleintrag 385 eine Liste 390 aller Autoren enthalten, die zur Änderung der Inhaltseinheit beigetragen haben und vom Protokolleintrag 385 aufgezeichnet wurden. Dies ist der Fall, wenn mehrere Autoren eine Inhaltseinheit innerhalb einer kurzen Zeit oder während sich überschneidender Zeiträume bearbeiten oder ändern. In einigen Ausführungsformen ist die Startposition 392 enthalten in den Änderungen der Unterhaltung 396 als ein Startpunkt oder eine Positionssetzung der ersten Änderung 396. In diesen Ausführungsformen haben die Protokolleinträge kein separates Feld für die Startposition 392.
  • 4 ist ein Blockdiagramm, das eine Datenstruktur für eine Benutzerdatenbank 400 gemäß bestimmten Ausführungsformen in der Erfindung veranschaulicht. Die Datenbank 400 beinhaltet eine Vielzahl von Nutzereinträgen 402. In einigen Ausführungsformen enthält jeder Nutzereintrag 402:
    • • eine Benutzerkennung 410 für einen Abonnenten des gehosteten Konversationssystems;
    • • Benutzer-Metadaten 412, die Informationen über den oder für den Benutzer enthalten;
    • • eine Liste von Konversationen 414, an denen der Benutzer teilnimmt;
    • • die Kontaktliste 416 des Benutzers (gewöhnlich eine Liste von Kontakten 416, die sich auf den Benutzer bezieht und für ihn persönlich ist);
    • • optional, Label 418 definiert vom Benutzer zur Kennzeichnung oder Klassifizierung Konversationen;
    • • optional eine Client-Gerätekennung und/oder Typ 420 eines Clientgeräts, das vom Benutzer verwendet wird, um mit dem Konversationsserver zu kommunizieren, oder als Alternative, die Kennung und die Art von Clientgeräten, die der Benutzer in der Vergangenheit im Zusammenhang mit dem Konversationsserver verwendet hat; in einigen Ausführungsformen kann auch der Clienttyp (Desktop, Handy, usw.) verwendet werden, um festzulegen, welcher Inhalt von Konversationen an den Benutzer gesendet wird;
    • • optional, Einstellungen 422 des Benutzers, wenn dieser an einer Konversation 422 teilnimmt;
    • • optional, ein Inversindex 424, der mit dem Benutzer verknüpft wird;
    • • ein aktueller Onlinestatus 426 des Benutzers (z. B. offline, online, besetzt, abwesend, usw.);
    • • Authentifizierungsinformationen 428 für den Benutzer (z. B. Benutzername, Passwort und optional weitere Werte zur Authentifizierung des Benutzers);
    • • optional, weitere Daten, die sich auf den Benutzer beziehen, wie eine oder mehrere Blog-URLs 430, E-Mail-Adressen 432, usw.
  • Die Konversationsliste 414, die mit einem Benutzer verbunden ist, umfasst eine Vielzahl von Benutzer-Konversationsdaten 434, alle Daten beziehen sich auf eine Konversation, an der der Benutzer teilnimmt. Jeder Eintrag zu Gesprächen des Nutzers 434 enthält:
    • • eine Konversationskennung 436, die die entsprechende Konversation identifiziert, und
    • • Informationen zum Pro-Benutzer-Konversationsstatus 438, die die gleiche sein kann wie der (oder ein Hinweis sein kann auf den) Konversationsstatus 373 in den Teilnehmerdaten 362 der Konversationsdaten 310. Wie obenstehend beschrieben, können nutzerabhängige Informationen zum Unterhaltungsstatus in einigen Ausführungsformen in einer separaten Datenbank oder einem separaten Server (auch Nutzer Supplement Datenbank oder Server genannt). In diesem Fall enthält der Eintrag zur Unterhaltung des Nutzers 434 einen Identifikator der Unterhaltung 436, aber keine Information zum nutzerabhängigen Unterhaltungsstatus 438.
  • Wie weiter oben erwähnt, umfasst das System in einigen Ausführungsformen einen separaten Pro-Benutzer-Inversindex 424 für jeden Benutzer des Systems; jeder solche Index 424 ist ein Index, der die Begriffe, Label, Tags usw. der Konversationen zuordnet, an denen der Benutzer teilnimmt (und optional die Inhaltseinheiten bei den Konversationen oder Positionen innerhalb dieser Konversationen), die diese Begriffe, Label, Tags usw. enthalten. Diese nutzerabhängigen Indizes ermöglichen ein schnelles Indexieren und ein schnelles Suchen in den Unterhaltungen, an denen der Nutzer teilnimmt. In einigen Ausführungsformen werden zusätzliche Indizes (manchmal „große Wellen”-Indizes genannt) verwendet, um schnelles Indexen und Zugriff auf „große Wellen”-Konversationen mit einer größeren Anzahl von Teilnehmern zu erlauben (z. B. mehr als ein Schwellenwert, wie 500 oder 100). In diesen Ausführungsformen wird der Inhalt von „großen Wellen”-Konversationen nicht in den Pro-Benutzer-Indizes 424 indiziert, sondern stattdessen in einem oder mehreren „große Wellen”-Indizes. Ähnlich werden in einigen Ausführungsformen, bei denen Gruppen von Benutzern als Gruppe an Konversationen teilnehmen, zusätzliche Pro-Gruppen-Indizes verwendet, um diese Konversationen zu indizieren und schnelle Suchfunktionen durch die Konversationen zu bieten; und die Konversationen (sofern zutreffen), an denen ein bestimmter Benutzer nur als Gruppenmitglied teilnimmt sind nicht Bestandteil des Benutzers Pro-Benutzer-Inversindexes 424. Deshalb können mehrere Indizes durchsucht werden, wenn der Nutzer eine nutzerspezifische Anfrage zur Suche nach Unterhaltungen ausführt. Die Suchergebnisse aus mehreren Indizes werden zusammengefasst bevor die Suchergebnisse dem anfragenden Nutzer mitgeteilt werden.
  • In einigen Ausführungsformen stellt der Server 130 die gleichen Inhalte einer Konversation für alle Teilnehmer an der Konversation bereit und gibt jedem Online-Teilnehmer Online-Anwesenheitsinformationen für die anderen Teilnehmer an der gleichen Konversation. In einigen Ausführungsformen erlaubt der Server dem Teilnehmer einer Unterhaltung die Veröffentlichung der Information zur Onlinepräsenz vor den anderen Teilnehmern zu verstecken. In einigen Ausführungsformen erlaubt der Server einem Teilnehmer an einer Konversation, seine Online-Anwesenheitsinformationen für andere Teilnehmer an der Konversation zu veröffentlichen (d. h. die Veröffentlichung der Online-Anwesenheit des Teilnehmers nur an Benutzer zu veröffentlichen, die vom Teilnehmer festgelegt wurden, oder, als Alternative, die Veröffentlichung der Online-Anwesenheit des Teilnehmers an Benutzer zu deaktivieren, die speziell vom Teilnehmer festgelegt wurden).
  • In einigen Ausführungsformen stellt der Server 130 den gleichen Inhalt für jeden Teilnehmer bereit, formatiert Inhalte der Konversationen, so dass diese mit einem oder mehreren Inhaltstypen kompatibel sind, für dessen Erhalt ein Clientgerät 110, das mit einem bestimmten Teilnehmer assoziiert wurde, konfiguriert wurde, und überträgt den formatierten Inhalt an das Clientgerät.
  • In einigen Ausführungsformen, bei der Auslieferung von Inhalten einer Konversation an bestimmte Clients (z. B. an ein Handy oder ein PDA), formatiert der Konversationsserver 130 den Inhalten, indem er Multimediadaten, die mit dem Inhalt verknüpft sind komprimiert (z. B. um die Bandbreitenanforderungen zu reduzieren). In einigen Ausführungsformen stellt der Server eine Untermenge an Multimediadaten, die mit dem Inhalt verknüpft sind (z. B., ein Thumbnail Bild oder kurze Audio/Video Clips) für den Client bereit. In einigen Ausführungsformen entfernt der Server Multimediadaten (z. B., Pufferstreifen aus Multimedia und bietet nur Text an), die mit dem Inhalt verknüpft sind und an den Client geliefert werden.
  • In einigen Ausführungsformen authentifiziert der Konversationsserver 130 einen Benutzer anhand von Authentifizierungsinformationen 428, bevor er dem Benutzer Inhalte aus Konversationen bereitstellt.
  • In einigen Ausführungsformen sendet der Konversationsserver 130 Inhalte aus Konversationen, in denen der jeweilige Benutzer ein Teilnehmer an einem Weblog ist (z. B. Weblogserver 226 oder Weblogclient 228), wie in den Benutzerdaten für diesen Benutzer 402 festgelegt (z. B. über die Blog-URL 430). Wenn der jeweilige Teilnehmer einer Unterhaltung ein automatisierter Client ist, wird der Inhalt der Unterhaltung an den automatisierten Client gesendet. Der automatisierte Client kann ein Weblog, ein Emailserver oder Account, oder ein Service Provider wie etwa ein Übersetzungsservice, eine Rechtschreibeprüfung oder ähnliches, sein.
  • 5A5E sind Flussdiagramme, die Verfahren zum Hosten von Konversationen an einem Server gemäß bestimmten Ausführungsformen in der Erfindung veranschaulichen. Diese Methoden werden von Anweisungen reguliert, die in einem kompatiblen Speichermedium abgelegt sind und von einem oder mehreren Prozessoren, die auf einem oder mehreren Servern liegen, ausgeführt werden. Jede der Operationen, die in den aufgeführt ist, kann den Anweisungen entsprechen, die im kompatiblen Speichermedium abgelegt sind. Das kompatible Speichermedium kann eine magnetische oder optische Speicherplatte, Festkörperspeicher wie Flash Memory oder andere permanente Speichergeräte enthalten. Die kompatiblen Anweisungen, die im kompatiblen Speicher abgelegt sind, sind in Quellcode, Assembly Language Code, Objektcode oder einem anderen Anweisungsformat gefasst, das von einem Prozessor ausgeführt oder gelesen werden kann.
  • 5A zeigt ein Verfahren 500 für das Hosten von Konversationen an einem Server. Ein Server hostet (502) eine Vielzahl an Unterhaltungen, wobei jede eine identifizierte Gruppe an Nutzern besitzt. Der Server ist üblicherweise einer von einer Vielzahl Servern, die Unterhaltungen in einem gehosteten Unterhaltungssystem hosten.
  • Der Server (506) stellt die gleichen Inhalte der Konversation für alle Teilnehmer an der Konversation bereit. In einigen Ausführungsformen stellt der Server auch (508) Informationen zur Onlinepräsenz von jedem der mehrheitlichen Unterhaltungsteilnehmer den anderen Teilnehmern der Unterhaltung zur Verfügung. Der Server empfängt (510) Inhalte von einer Vielzahl an Teilnehmern der Unterhaltung und übermittelt den erhaltenen Inhalt an die anderen Teilnehmer der Vielzahl an Teilnehmern.
  • Der Server stellt (512), wenn ein zusätzlicher Teilnehmer zur Konversation hinzugefügt wurde, den gleichen Inhalt der Konversation an diesen zusätzlichen Teilnehmer bereit, den er den identifizierten Teilnehmern bereitgestellt hat, und er fügt den zusätzlichen Teilnehmer zur identifizierten Teilnehmergruppe hinzu. Wie obenstehend beschrieben, wenn ein Nutzer einen Client nutzt, der in der Lage ist den kompletten Inhalt der Unterhaltung zu empfangen, wird der komplette Inhalt der Unterhaltung an den Client, der aktuell vom zusätzlichen Teilnehmer genutzt wird, gesendet. In einigen Ausführungsformen umfasst der „gesamte Inhalt der Konversation” den gesamten Inhalt, der von vorherigen Teilnehmern zur Konversation hinzugefügt wurde, bevor der zusätzliche Teilnehmer zur Konversation hinzugefügt wurde, sowie jeglichen automatisch generierten Inhalt (z. B. vom Serversystem generierter Inhalt), der Bestandteil der Konversation war, als der zusätzliche Teilnehmer hinzugefügt wurde. So erhält der Teilnehmer, auch wenn er später zur Unterhaltung hinzugefügt wurde, den Inhalt, der zur Unterhaltung beigetragen wurde, bevor der Teilnehmer der Unterhaltung hinzugefügt wurde. Es ist verständlich, dass die Teilnehmer sich um die Sicherheit ihrer persönlichen Daten, die mit einer Unterhaltung und/oder dem Inhalt, der von Ihnen beigetragen wird, verknüpft sind, sorgen. Dementsprechend werden derartige datenschutzrechtlichen Bedenken in einigen Ausführungsformen auf diverse Weisen in Betracht gezogen, einschließlich, jedoch nicht beschränkt auf Teilnehmern zu gestatten, an „privaten Konversationen” (wie im Einzelnen oben mit Referenz zu 3A beschrieben) teilzunehmen; Teilnehmern zu gestatten, einen Nachrichtenentwurf im „Teamentwurfmodus” zu erstellen (wie im Folgenden im Einzelnen beschrieben mit Referenz zu 10); Teilnehmern zu gestatten, automatisch ein Teilen ihres Inhalts abzulehnen (z. B. durch Einschränkung des Zugriffs auf Inhalte durch einen bestimmten Teilnehmer, so dass auf diesen nur durch andere Teilnummer zugegriffen werden kann, die spezifisch vom entsprechenden Teilnehmer dafür zugelassen sind); und durch Einschränkung der Fähigkeit von Teilnehmern, auf eine entsprechende Konversation zuzugreifen, wenn diesen dieser Zugriff nicht von einem oder mehreren Teilnehmern an der entsprechenden Konversation genehmigt wurde (z. B. die Genehmigung von der Hälfte der anderen Teilnehmer oder von allen anderen Teilnehmern, bevor ein neuer Teilnehmer zur entsprechenden Konversation hinzugefügt wird).
  • In einigen Ausführungsformen formatiert der Server (514) Inhalte der Konversation, so dass diese mit einem oder mehreren Inhaltstypen kompatibel sind, für deren Erhalt das Clientgerät, das mit einem bestimmten Teilnehmer assoziiert wurde, konfiguriert wurde, und überträgt den formatierten Inhalt an das Clientgerät. In einigen Ausführungsformen formatiert der Server den Inhalt einer Unterhaltung, in dem er zumindest eine der folgenden Aktionen ausführt: Multimediadaten, die mit dem Inhalt verknüpft sind, komprimieren, eine Untermenge an Multimediadaten, die mit dem Inhalt verknüpft sind, anbieten, und Multimediadaten, die mit dem Inhalt verknüpft sind, entfernen (z. B. Video und Audio Daten entfernen, aber den textlichen Inhalt stehenlassen).
  • In einigen Ausführungsformen erhält der Server (518) eine Suchanfrage (häufig Abfrage oder Suchabfrage genannt) von einem Teilnehmer und unterbreitet dem Teilnehmer ein Suchergebnis, einschließlich Inhalten von mindestens einer der Vielzahl von Konversationen, als Antwort auf diese Suchanfrage. Alternativ oder ergänzend als Antwort auf die Suchanfrage stellt der Server (520) dem Teilnehmer ein Suchergebnis zur Verfügung, das eine Liste von einer oder mehreren Unterhaltungen enthält, die der Suchanfrage entsprechen. In einigen Ausführungsformen wird die Suchanfrage durch eine Suchmaschine 260 ( ) durchgeführt, unter Nutzung eines Inverse Index 264 des Inhalts der Unterhaltung, um die Unterhaltungen zu identifizieren, die der Suchanfrage entsprechen.
  • 5B zeigt eine Fortsetzung des Verfahrens 500 in 5A. Ein Server pflegt (530) für jeden entsprechenden Teilnehmer einen Status der entsprechenden Konversation bzgl. des jeweiligen Teilnehmers, und stellt dem entsprechenden Teilnehmer (z. B. dem Client, der aktuell vom Teilnehmer verwendet wird, um die Konversation zu betrachten) den Status der jeweiligen Konversation mit Referenz zum entsprechenden Teilnehmer bereit. In einigen Ausführungsformen beinhaltet dies, dass dem Teilnehmer (z. B. dem Client, den der Teilnehmer nutzt) der Lesestatus der Inhaltseinheiten der jeweiligen Unterhaltung, bezogen auf den Teilnehmer, zur Verfügung gestellt wird (532) (d. h. anzuzeigen, welche Inhaltseinheiten bereits gelesen wurden und welche nicht). In einigen Ausführungsformen beinhaltet (534) der Status der jeweiligen Unterhaltung bezogen auf den Teilnehmer zur Verfügung gestellt wird die Bereitstellung von Bezeichnungen, wenn anwendbar, spezifiziert vom jeweiligen Teilnehmer der jeweiligen Unterhaltung.
  • In einigen Ausführungsformen umfassen die Metadaten die für eine Konversation bzgl. eines bestimmten Teilnehmers (536) Metadaten, um die entsprechende Konversation im Einklang mit den Anweisungen des Teilnehmers zu ignorieren. Zum Beispiel können die Ignorieren Metadaten der Suchmaschine 260 ( ) des Unterhaltungsservers zur Verfügung gestellt werden. In einigen Ausführungsformen stellt der Server (538) formatierte Informationen entsprechend dem Unterhaltungsstatus zur Verfügung. Die formatierte Information wird bei der Anzeige der Unterhaltung oder Teilen der Unterhaltung genutzt. In einigen Ausführungsformen enthalten die formatierten Informationen eine oder mehrere des Folgenden: Farbe (z. B. des Texts, Hintergrund, Rahmen), Schriftart, Einrückung, Position (z. B. hochgestellt oder tiefgestellt), etc.
  • In einigen Ausführungsformen speichert der Server (540) für jeden betroffenen Teilnehmer eine Kontaktliste, die mit dem entsprechenden Teilnehmer verknüpft ist.
  • In einigen Ausführungsformen prüft der Server (542) (anhand der Authentifizierungsinformationen 428), dass der Teilnehmer die Rechte hat, den Inhalt einer Konversation zu empfangen, bevor er diesem Inhalte bereitstellt.
  • In einigen Ausführungsformen pflegt der Server (544) eine Gruppe von Teilnehmern an einer entsprechenden Konversation, einschließlich einem oder mehreren Abonnenten des Serversystems und einem e-Mailempfänger, der durch eine E-Mail-Adresse identifiziert wurde.
  • In einigen Ausführungsformen pflegt der Server (546) eine Gruppe von Teilnehmern an einer entsprechenden Konversation, einschließlich einem oder mehreren Abonnenten des vom Server gehosteten Konversationssystems und einem Weblog, auf dem Inhalte der Konversation gepostet sind.
  • zeigt eine Fortsetzung des Verfahrens 500 in 5A. In einigen Ausführungen pflegt der Server (550) für einen entsprechenden Benutzer (des von einer Gruppe von Servern gehosteten Konversationssystems, das den Server umfasst) eine Liste von Konversationen, an denen der Benutzer teilnimmt. Der Server aktualisiert den Status von jeder Unterhaltung auf der Liste, wenn sich der Status der jeweiligen Unterhaltung ändert. Auf Anfrage des Nutzers (z. B. vom Client der vom Nutzer genutzt wird) sendet der Server dem Nutzer eine Liste, die zumindest einen Teil der Liste an Unterhaltungen, an denen der Nutzer teilnimmt, enthält. Die Liste enthält die Statusinformationen der gelisteten Unterhaltungen. In einigen Ausführungsformen ist jeder jeweilige Nutzer, für den der Server eine Liste an Unterhaltungen verwaltet (552), ein Abonnent des Unterhaltungssystems.
  • 5D zeigt ein Verfahren 560 für das Hosten von elektronischen Nachrichten. Ein Server hostet (562) eine Vielzahl an Unterhaltungen. Der Server stellt den Inhalt einer Unterhaltung einer Vielzahl an Clients, die mit den Teilnehmern der Unterhaltung verknüpft sind, bereit (564), einschließlich der Bereitstellung aller Inhalte einer Unterhaltung, die der Client laut Konfiguration erhalten soll.
  • Der Server empfängt (566) Inhalte von den jeweiligen Teilnehmern an der Konversation und überträgt mindestens einen Teil der empfangenen Inhalte an die Clients, die mit anderen Teilnehmern an der Konversation verknüpft sind. Der Server stellt außerdem dem Client, der mit dem zusätzlichen Teilnehmer verknüpft ist, den gesamten Inhalt der Unterhaltung bereit (568), den der Client, der mit dem zusätzlichen Teilnehmer verknüpft ist, laut Konfiguration erhalten soll.
  • 5E zeigt ein Verfahren 570 für das Hosten von elektronischen Nachrichten. Für zumindest einen aus einer Vielzahl an Servern, von denen jeder mit einer unterschiedlichen Untergruppe an Nutzern verknüpft ist, hostet ein Server (572) Unterhaltungen, die von der jeweiligen Untergruppe an Nutzern initialisiert werden. Der Server erhält (574) Inhalt von den jeweiligen Teilnehmern der Unterhaltung und stellt den Inhalt für die anderen Teilnehmer der Unterhaltung bereit. Für Teilnehmer, die mit anderen Unterhaltungsservern verknüpft sind, wird der Inhalt an diese anderen Unterhaltungsserver übertragen. Der Inhalt wird an die Teilnehmer übertragen, wenn sie sich einloggen und den Inhalt der Unterhaltung anfragen.
  • Der Server stellt (576) ebenfalls, wenn ein zusätzlicher Teilnehmer zur Konversation hinzugefügt wurde, den gesamten Inhalt der Konversation an einen Client bereit, der mit diesem Teilnehmer verknüpft ist, oder, als Alternative, sämtliche Inhalte der Konversation, für deren Empfang der Client, der mit diesem zusätzlichen Teilnehmer verknüpft ist, konfiguriert wurde. In einigen Ausführungsformen stellt der Server (578) eine einheitliche Ansicht der Unterhaltung für eine Vielzahl an Teilnehmern bereit.
  • 6 ist ein Blockdiagramm eines Konversationssystems 600, das gemäß bestimmten Ausführungsformen in der Erfindung eine Vielzahl von gelinkten Konversationsservern 130 umfasst. 6 veranschaulicht eine logische Kopplung der Konversationsserver 130 miteinander und mit Clients zur Überwachung und Berichterstattung des Online-Status (Anwesenheit) der Benutzer des Systems. Das Netzwerk 600 beinhaltet Unterhaltungsserver 130-A, 130-B und 130-C. Das Unterhaltungssystem 600 kann mehr oder weniger Unterhaltungsserver beinhalten als in gezeigt. Jeder Unterhaltungsserver 130 hostet Unterhaltung für eine Gruppe an Nutzern 138. (Zum Beispiel kann jeder Unterhaltungsserver 130 Unterhaltungen hosten, die von Hunderten oder sogar Tausenden von Nutzern initialisiert werden.) Der Unterhaltungsserver 130-A wird den Nutzern 138-A zugeordnet; der Unterhaltungsserver 130-B wird den Nutzern 138-B zugeordnet; und der Unterhaltungsserver 130-N wird den Nutzern 138-N zugeordnet. Jeder Unterhaltungsserver 130 enthält einen entsprechende Statusmonitor 134 (134-A, 134-B, 134-N) und einen entsprechenden Statussammler 136 (136-A, 136-B, 136-N).
  • Wenn ein Benutzer seinen Online-Status von offline auf online ändert (z. B. wenn er durch seine Anmeldung im Konversationssystem seinen Status von offline auf online ändert), wird diese Änderung des Status von einem entsprechenden Statusmonitor 134 erkannt (z. B. ein Statusmonitor im Konversationsserver 130 wurde dem Benutzer zugeordnet). Der Statusmonitor 134 am Konversationsserver, dem der Benutzer zugeordnet wurde, erhält eine Nachricht oder erkennt auf andere Art die Änderung im Online-Status dieses Benutzers auf „online” (oder „aktiv”, „besetzt” oder einen anderen angemessenen Status). Darüber hinaus zeichnet der Statussammler 136 am Konversationsserver den Online-Status der Kontakte in der Kontaktliste des Benutzers 416 auf. Während manche der Kontakte in der Kontaktliste dem gleichen Konversationsserver zugeordnet sein können, sind weitere Kontakte in der Kontaktliste des Benutzers anderen Konversationsservern zugewiesen.
  • Der Statussammler 136 des Konversationsservers, dem der Benutzer zugeordnet ist, zeichnet den Online-Status der Kontakte dieses Benutzers auf, einschließlich jenen, die anderen Konversationsservern zugeordnet sind, und leitet mindestens einen Teil der gesammelten Statusinformationen an den Benutzer weiter (d. h. an das Clientgerät oder an das aktuell vom Benutzer verwendete System). In einigen Ausführungsformen überträgt der Statussammler Anfragen nach Statusinformationen der Kontakte des Benutzers an die anderen Konversationsserver, und die Konversationsserver, denen die Kontakte zugeordnet sind, antworten auf diese Anfragen. In einigen Ausführungsformen bestimmt der Statussammler die Unterhaltungsserver, denen die Kontakte zugeordnet sind und sendet eine Anfrage nach Statusinformationen an diese Unterhaltungsserver. In einigen Ausführungsformen kann die Zuordnung der Nutzer zu den Unterhaltungsservern einem Index aller Nutzer entnommen werden. Eine Kopie dieses Index und von Teilen dieses Index kann auf allen Unterhaltungsservern gespeichert sein.
  • Wenn z. B. Benutzer A1 der Benutzer 138-A, der dem Konversationsserver 130-A zugeordnet ist, seinen Online-Status von offline auf online ändert, sendet eine Clientanwendung beim Client, der vom Benutzer A1 verwendet wird, eine Nachricht an das Konversationssystem 600 und meldet, dass der Benutzer A1 online ist. Der Statusmonitor 134-A des Unterhaltungsservers 130-A erhält eine Nachricht und aktualisiert den Status von Nutzer A1 auf Online. Der Statusmonitor 134-A anderer Unterhaltungsserver erhält entweder keine Nachricht oder ignoriert die Nachricht, weil Nutzer A1 nicht den anderen Unterhaltungsservern zugeordnet ist. Der Statussammler 136-A des Unterhaltungsservers 130-A bezieht eine Kontaktliste für den Nutzer A1 (z. B. durch Zugriff auf die Kontaktliste 416 des Nutzers A1). Durch Nutzung dieser Kontaktliste sammelt der Statussammler 136-A Statusinformationen von den Unterhaltungsservern, denen die Kontakte zugeordnet sind. Daher greift der Statussammler 136-A auf die Statusinformationen des Kontakts zu, die auf dem Konversationsserver 130-A gespeichert sind, wenn ein Kontakt dem Konversationsserver 130-A zugeordnet wird. Wenn ein Kontakt dem Konversationsserver 130-B zugeordnet wird, kommuniziert der Server 130-A mit dem Konversationsserver 132-0, um die Statusinformationen zu erhalten. Eine ähnliche Vorgehensweise wird angewandt, wenn ein jeweiliger Kontakt dem Unterhaltungsserver 130-C zugeordnet wird.
  • 7 ist ein Blockdiagramm eines Konversationsservers 700 (auch manchmal als Konversationssystem bezeichnet) gemäß einer Ausführungsform in der vorliegenden Erfindung. Der Konversationsserver 700 umfasst eine oder mehrere Verarbeitungseinheiten (CPUs) 702, eine oder mehrere Kommunikationsschnittstellen 704, Speicher 706 und einen oder mehrere Kommunikationsbusse 708 zum Verbinden dieser Komponenten. Die Übertragungswege 708 können Schaltkreise beinhalten (auch als Chipsätze bezeichnet), die die Kommunikation zwischen den Systemkomponenten miteinander verbinden und kontrollieren. Der Unterhaltungsserver 700 beinhaltet optional (aber nicht üblicherweise) eine Nutzerschnittstelle, die Anzeigegerät und eine Tastatur enthält.
  • Speicher 706 umfasst Hochgeschwindigkeits-RAM, wie z. B. DRAM, DRAM, SRAM, DDR RAM oder andere RAM SST-Speichergeräte und kann nichtflüchtigen Speicher, wie eine oder mehrere Magnetplattenspeichergeräte, optische Speichergeräte, Flash-Speichergeräte oder andere nichtflüchtige SST-Speichergeräte umfassen. Der Speicher 706 kann wahlweise ein oder mehrere Speichergeräte beinhalten, die sich remote von der CPU/den CPUs 702 befinden. Speicher 706 oder alternativ der/die permanente/n Speichergerät/e innerhalb des Speichers 706 bestehen aus einen kompatiblen Speicher. In einigen Ausführungsformen speichert der Speicher 706 oder das kompatible Speichermedium 706 die folgenden Programme, Module und Datastrukturen oder eine Untermenge dieser:
    • • ein Betriebssystem 710, das Verfahren zur Handhabung diverser Systemdienste und zur Durchführung hardwareabhängiger Aufgaben umfasst;
    • • ein Netzwerks-Kommunikationsmodul 712, das zum Anschließen des Konversationsservers 700 an andere Computer über eine oder mehrere Kommunikations-Netzwerkschnittstellen 704 und an ein oder mehrere Kommunikationsnetzwerke, wie das Internet, an ein anderes WAN-Netzwerk, LAN-Netzwerk, MAN-Netzwerke usw. verwendet wird; und
    • • ein Konversationsengine 714, der gehostete Konversationsdienste am Server 700 für eine Vielzahl von Benutzern bietet; in einigen Ausführungsformen entspricht der Konversationsengine 714 dem Element 246 in 2.
  • Der Konversationsengine 714 kann die folgenden Module, oder eine Teilmenge dieser Module umfassen:
    • • ein Such-/Zugriffsmodul 716 (in einigen Ausführungsformen entspricht dies dem Element 260 in 2) zur Durchführung von Suchen in der Konversationsdatenbank 726; die Suchen in der Konversationsdatenbank 726 können benutzerspezifische Suchen 718 sowie serverspezifische Suchen 720 umfassen (z. B. eine Suche nach Konversationen im Posteingang eines Benutzers);
    • • eine Benutzerdatenbank 722 (in einigen Ausführungsformen entspricht dies dem Element 270 in 2 und Element 400 in 4) zur Speicherung von Informationen, die die Benutzer des Systems betreffen;
    • • Benutzerdatenbank-Verwaltungsmodule 724 zur Verwaltung der Benutzerdatenbanken 722 (z. B. zur Erstellung von neuen Benutzerdaten und zur Aktualisierung von vorhandenen Benutzerdaten);
    • • Konversationsdatenbank 726 (in einigen Ausführungsformen entspricht dies dem Element 262 in 2 und 3);
    • • Konversationsverwaltungsmodule 728 zur Verwaltung der Konversationsdatenbank 726; und
    • • Hilfsservicemodul(e) 250; wie oben beschrieben, kann jeder bestimmte Hilfsservice, der in einem gehosteten Konversationssystem angeboten wird, von Modulen innerhalb eines Konversationsservers 700 oder anderen Servern gestellt.
  • In einigen Ausführungsformen umfassen die Konversationsverwaltungsmodule 728 die folgenden Module, oder eine Teilmenge dieser Module:
    • • ein Satz Konversations-Aktualisierungsmodule 730 zur Aktualisierung einer Konversation mit von einem oder mehreren Teilnehmern vorgenommenen Änderungen, einschließlich einem oder mehreren der folgenden: ein Inhaltsmodul Hinzufügen/Löschen 732 zum Hinzufügen und Löschen von Inhalten einer Konversation; ein geteiltes Inhaltsbeitragsmodul 734 zum Teilen eines Inhaltsbeitrags (326, 3A) in einer Konversation in zwei oder mehrere separate Inhaltsbeiträge; ein kooperatives Bearbeitungsmodul 736, das die gleichzeitige Bearbeitung einer Konversation oder eines Inhaltsbeitrags (Inhaltseinheit) von einer Vielzahl von Teilnehmern erlaubt; und ein Modul zum Hinzufügen eines Teilnehmers zur Konversation 738, mit dem man der Konversation einen neuen Teilnehmer hinzufügt;
    • • Inhaltswiedergabemodul 740 zur Wiedergabe von Bearbeitungen an einer Konversation oder an einem Dokument (oder einem vom Benutzer festgelegten Teil der Konversation oder des Dokuments);
    • • Inhaltsformatierungsmodul 742 zur Formatierung von Inhalten, um diese an die Konfiguration eines Clients anzupassen; (die Konfiguration eines Clients für einen entsprechenden Benutzer kann durch ein Element 420, 4, der Benutzerdaten 402 für den jeweiligen Benutzer festgelegt werden);
    • • Inhaltsveröffentlichungsmodul 744 zur Veröffentlichung von Inhalten einer Konversation an eine E-Mail-Adresse; die E-Mail-Adresse kann durch ein Element 432, 4, der Benutzerdaten 402 für den jeweiligen Benutzer festgelegt werden);
    • • Modul für Inhaltsveröffentlichungen an einen Weblog 746 („Blog”) zur Veröffentlichung von Inhalten einer Konversation an einen Weblog; die URL oder Netzwerkposition des Weblogs kann durch ein Element 430, 4, der Benutzerdaten 402 für den jeweiligen Benutzer festgelegt werden);
    • • Modul zum Löschen/Archivieren von Konversationen 748 zum Löschen oder Archivieren einer Konversation aus dem Posteingang oder Konversationsbetrachter eines Benutzers;
    • • Modul zum Kopieren von Anhängen an eine neue Konversation 750 zum Kopieren von Anhängen einer Konversation an eine andere Konversation, ohne weitere Inhalte der Konversation zu kopieren;
    • • Modul zur Übertragung von Konversationen 752 zum Übertragen von Inhalten einer Konversation an einen Client oder an einen anderen Konversationsserver (z. B. zur Auslieferung an einen Benutzer/Client, der vom anderen Konversationsserver bedient wird); und
    • • Modul zur Übertragung von Konversationslisten 754 zum Übertragen von Konversationslisten an einen Client oder an einen anderen Konversationsserver (z. B. zur Auslieferung an einen Benutzer/Client, der vom anderen Konversationsserver bedient wird).
  • Jedes der weiter oben identifizierten Elemente kann in einem oder mehreren der o. g. Speichergeräte gespeichert werden und entspricht einem Satz Anweisungen zur Durchführung von einer der oben beschriebenen Funktionen. Die oben genannten Module oder Programme (d. h. Sätze von Befehlen) brauchen nicht als separate Softwareprogramme, Verfahren oder Module umgesetzt werden, und damit können verschiedene Untermengen dieser Module kombiniert oder auf andere Weise neu angeordnet werden. In einigen Ausführungsformen kann im Speicher 706 eine Teilmenge der vorstehend angegebenen Module und Datenstrukturen gespeichert sein. Weiterhin können im Speicher 706 zusätzliche vorstehend nicht beschriebene Module und Datenstrukturen gespeichert sein.
  • Obwohl 7 einen Konversationsserver zeigt, ist 7 eher als eine Funktionsbeschreibung der diversen Funktionen gedacht, die in einer Gruppe von Servern vorhanden sind, als ein Strukturdiagramm der hier beschriebenen Ausführungsformen. In der Praxis, und wie von Fachleuten anerkannt werden wird, könnten die getrennt dargestellten Elemente kombiniert und einzelne Elemente getrennt werden. So könnten beispielsweise einige Elemente, die in 7 getrennt gezeigt werden, auf einem einzigen Server implementiert sein, und einzelne Elemente könnten von einem oder mehreren Servern implementiert werden. Die wirkliche Anzahl der Server, die genutzt werden, um ein System an Unterhaltungsservern zu implementieren und wie die Eigenschaften unter ihnen aufgeteilt sind, wird sich von einer Implementation zur anderen unterscheiden und kann auch teilweise abhängen von der Höhe des Datenverkehrs, die in Stoßzeiten oder in den durchschnittlichen Nutzungszeiten vom System bewältigt.
  • 8 ist ein Blockdiagramm eines Clients, der einen Benutzer hat, der gemäß bestimmten Ausführungsformen in der Erfindung an einer oder mehreren Konversationen in einem gehosteten Konversationssystem teilnimmt. Der Client 800 umfasst eine oder mehrere Verarbeitungseinheiten (CPUs) 802, eine oder mehrere Netzwerk- oder andere Kommunikationsschnittstellen 804, Speicher 806 und einen oder mehrere Kommunikationsbusse 808 zum Verbinden dieser Komponenten. Die Datenübertragungswege für Kommunikation 808 können Schaltkreise (auch Chipsätze genannt) beinhalten, die die Systemkomponenten miteinander verbinden und kontrollieren. Der Client 800 beinhaltet üblicherweise eine Benutzeroberfläche 805. In einigen Ausführungsformen beinhalten die Benutzeroberfläche ein Anzeigegerät, eine Tastatur und ein Zeigegerät (nicht dargestellt), während in anderen Ausführungsformen (z. B. ein Mobiltelefon oder ein PDA) die Benutzeroberfläche einen Touchscreen beinhaltet.
  • Speicher 806 umfasst Hochgeschwindigkeits-RAM, wie z. B. DRAM, DRAM, SRAM, DDR RAM oder andere RAM SST-Speichergeräte und kann nichtflüchtigen Speicher, wie eine oder mehrere Magnetplattenspeichergeräte, optische Speichergeräte, Flash-Speichergeräte oder andere nichtflüchtige SST-Speichergeräte umfassen. Der Speicher 806 kann optional ein oder mehrere Speichergeräte enthalten, die getrennt von der/n CPU(s) 802 sind. Speicher 806 oder alternativ der/die permanente/n Speichergerät/e innerhalb des Speichers 806 bestehen aus einem kompatiblen Speicher. In einigen Ausführungsformen speichert der Speicher 806 oder das kompatible Speichermedium 806 die folgenden Programme, Module oder Datenstrukturen oder eine Untermenge dieser:
    • • ein Betriebssystem 810, das Verfahren zur Handhabung diverser Systemdienste und zur Durchführung hardwareabhängiger Aufgaben umfasst;
    • • ein Netzwerks-Kommunikationsmodul 812, das zum Anschließen des Clients 800 an andere Computer über eine oder mehrere Kommunikations-Netzwerkschnittstellen 804 und an ein oder mehrere Kommunikationsnetzwerke, wie das Internet, an ein anderes WAN-Netzwerk, LAN-Netzwerk, MAN-Netzwerke usw. verwendet wird;
    • • ein Browser oder eine andere Clientanwendung 814 zum Betrachten und Interagieren mit Webseiten und anderen Inhalten, einschließlich Konversationen in einem gehosteten Konversationssystem;
    • • eine Konversationswebseite 815, die von einem Konversationsserver erhalten wird (z. B. wie in 7 gezeigt) und über den Browser oder eine andere Clientanwendung 814 angezeigt wird;
    • • Konversationsdaten 820, die den Inhalt einer Konversation enthalten, der von einem Konversationsserver heruntergeladen wurde, von denen alle oder ein Teil davon auf der Konversationswebseite 815 angezeigt werden;
    • • eine Konversationsliste 826, eine Liste von Konversationen, die von einem Konversationsserver heruntergeladen wurde (z. B. als Antwort auf eine Anfrage von einem Benutzer des Clients oder als Teil einer Benutzerschnittstelle, die auf der Konversationswebseite 815 angezeigt wird);
    • • eine Kontaktliste 828 oder ein Teil der Kontaktliste des Benutzers des Clients; die Kontaktliste kann separat vom oder zusammen mit einem Konversationssystem gepflegt werden;
    • • optional weitere Datenstrukturen 830 (z. B. eine Liste von Labels, die vom Benutzer definiert wurden); und
    • • optional weitere Anwendungen 832 zur Durchführung durch den Client 800.
  • In einigen Ausführungsformen umfasst die Konversationswebseite 815 ein Clientkonversationsmodul 818 oder einen weiteren Clientassistenten, der in der Webseite 815 eingebettet ist. Das Modul für die Client Unterhaltung 818 umfasst ausführbare Anweisungen, die vom Client ausgeführt werden 800; zum Beispiel kann das Modul für die Client Unterhaltung 818 Anweisungen beinhalten, die von einer Virtual Machine (z. B. einer Java Virtual Machine) als Teil des Browser 814 durchgeführt werden. Die Webseite der Unterhaltung 815 beinhaltet eine Benutzeroberfläche für die Unterhaltung, die Icons enthält, die verschiedene Aufgaben ausführen kann, wenn sie vom Nutzer aktiviert werden. Sie erlauben dem Nutzer eine Unterhaltungsliste anzufordern, eine Unterhaltung zur Anzeige auszuwählen, verschiedene Teile einer Unterhaltung anzuzeigen, an einer Unterhaltung teilzunehmen (z. B. durch das Hinzufügen von Inhalt oder das Ändern von Inhalt der Unterhaltung), neue Unterhaltungen zu starten, Anhänge herunterzuladen und so weiter. Icons auf der Benutzeroberfläche der Unterhaltung können als Links fungieren, um Prozeduren oder Anweisungen im Client Modul für Unterhaltungen 818 auszuführen. Das zuvor erwähnte Unterhaltungsprotokoll 820 und die Unterhaltungsliste 826 können, in einigen Ausführungsformen, heruntergeladen werden als Antwort auf Anweisungen, die vom Client Modul für Unterhaltungen 818 oder von anderen Client Assistenten, die in die Webseite 815 eingebettet sind, an den Unterhaltungsserver gesendet wurden.
  • Die Konversationsdaten 820 umfassen eine Clientversion oder Teilmenge der Konversationsdaten 310 für eine bestimmte Konversation, die oben beschrieben und in 3A aufgezeigt wird. Das Client Unterhaltungsprotokoll 820 beinhaltet Metadaten der Unterhaltung 822 (z. B. eine Liste der Teilnehmer und deren Onlinestatus) und Inhaltsbeiträge 824, die der Inhalt der Unterhaltung sind, die vom Client benötigt werden. Abhängig von der Implementation und den Möglichkeiten des Clients 800, kann das Unterhaltungsprotokoll 820 optional Anhänge, sofern vorhanden, der Unterhaltung enthalten. So können die Anhänge zu einigen Clients (z. B. Desktop PC und Laptop) heruntergeladen werden, wohingegen das bei anderen nicht möglich ist (z. B. Mobiltelefone und PDAs). In einigen Ausführungsformen werden die Anhänge der Unterhaltung nicht heruntergeladen, bis der Nutzer dies anfragt. Alternativ werden in einigen Ausführungsformen Thumbnail Bilder und/oder Bruchstücke (d. h. ausgewählter Text, sofern vorhanden) aus manchen oder allen Anhängen automatisch zum Client 800 heruntergeladen zusammen mit dem primären Inhalt der Unterhaltung und der gesamte Inhalt der Anhänge wird nur auf Anfrage des Nutzers zum Client 800 heruntergeladen.
  • Jedes der oben aufgeführten Module entspricht einem Satz Anweisungen zur Durchführung der oben beschriebenen Funktionen. Die oben genannten Module oder Programme (d. h. Sätze von Befehlen) brauchen nicht als separate Softwareprogramme, Verfahren oder Module umgesetzt werden, und damit können verschiedene Untermengen dieser Module kombiniert oder auf andere Weise neu angeordnet werden. In einigen Ausführungsformen kann der Speicher 806 oder das kompatible Speichermedium 806 eine Untermenge der oben beschriebenen Module und Datenstrukturen speichern. Außerdem kann der Speicher 806 oder das kompatible Speichermedium 806 zusätzliche Module und Datenstrukturen speichern, die nicht oben beschrieben sind.
  • 9A9B veranschaulichen eine Reihe von Fenstern, die Bearbeitungen einer Konversation durch eine Vielzahl von Teilnehmern sowie die Wiedergabe dieser Bearbeitungen zeigen.
  • 9A veranschaulicht Veränderungen, die von einer Vielzahl von Teilnehmern an der Konversation vorgenommen wurden. Im folgenden Beispiel gibt es mindestens zwei Teilnehmer an der Konversation, „Joe” und „Pat”.
  • Beim ersten Mal/Schritt 920, hat ein erstes Konversationsfenster 910 eine erste Inhaltseinheit 922, die von einem ersten Teilnehmer (z. B. Joe) eingegeben wurde, der der Originalautor von Inhalt 922 ist. In einigen Ausführungsformen beinhaltet das Unterhaltungsfenster 910 eine Zoomoption 912, um tiefer in die Unterhaltung reinzoomen zu können, eine Antwortoption 914, um auf den Inhalt 922 zu antworten, eine Entwurfsoption 916, um eine Nachricht zu entwerfen oder eine Einstellungsoption 918, um die Einstellungen der Unterhaltung zu ändern. Eine erste Einfügemarke 924 repräsentiert den Punkt (später auch als Cursor-Position bezeichnet), an dem der erste Teilnehmer tippt oder den Inhalt 922 bearbeitet. Während der erste Teilnehmer tippt, löscht oder sich innerhalb des Inhalts 922 bewegt, bewegt sich die Einfügemarke 924, um die Position oder den Abschnitt des Inhalts anzuzeigen, den der Nutzer bearbeitet.
  • In einigen Ausführungsformen kann die Einfügemarke als XML-Tag oder anderer Markierungstag oder -ausdruck definiert werden. In einigen Ausführungsformen können der Inhalt der Einfügemarke, der Stil etc. vom Teilnehmer, vom Systemadministrator etc. ausgewählt oder definiert werden.
  • Bei einem zweiten Mal/Schritt 930, nimmt ein zweiter Teilnehmer (Pat) eine Sequenz von Bearbeitungen am Inhalt 922 vor. Eine zweite Einfügemarke 934 repräsentiert den Punkt, an dem der zweite Teilnehmer (auch als zweiter Nutzer bezeichnet) tippt oder den Inhalt 922 bearbeitet. Der zweite Benutzer fügt den Text „Building B55” 932 zum Inhalt 922 hinzu. Der Originaltext (von Joe) und die Änderungen daran (von Pat) sind Änderungen, die von bestimmten ersten und zweiten Teilnehmern eingegeben wurden.
  • In einigen Ausführungsformen bereitet ein Server (der z. B. die Konversation hostet) die erste Einfügemarkierung zur Anzeige an einer Position vor, die den ersten Bearbeitungen durch den ersten Teilnehmer (Joe) an der Konversation entspricht, und bereitet eine zweite Einfügemarkierung zur Anzeige an einer Position vor, die den zweiten Bearbeitungen durch den zweiten Teilnehmer (Pat) an der Konversation entspricht. Der Server stellt die ersten und zweiten Änderungen und die ersten und zweiten Einfügemarken einem oder mehreren Servern zur Anzeige bereit.
  • In einigen Ausführungsformen können Zeitstempel oder Sequenznummern (z. B. #1, #2, #3 und #4, wie dargestellt) mit neuem Inhalt oder Bearbeitungen von vorhandenem Inhalt verknüpft werden. In einigen Ausführungsformen, wenn ein Zeitstempel genutzt wird, nutzt der Zeitstempel eine einheitliche Basis wie die Zeitbasis des hostenden Servers.
  • Bei einem dritten Mal/Schritt 940 bearbeitet der zweite Benutzer erneut den Inhalt 922, indem er das Wort „zweites” löscht und durch das Wort „drittes” 942 ersetzt. Die zweite Einfügemarkierung 934 steht nun neben dem Wort „drittes”, was auf die Position hinweist, an der der zweite Benutzer arbeitet.
  • Bei einem vierten Mal/Schritt 950 erstellt der erste Benutzer Joe eine neue Nachricht in einem neuen Nachrichtenfenster 952 innerhalb des Konversationsfensters 910 und unter dem ersten Nachrichtenfenster (das den Inhalt 922 der ersten Nachricht enthält) und fügt dem neuen Nachrichtenfenster neuen Inhalt 954 hinzu. Die Einfügemarke 956 repräsentiert einen neuen Punkt, an dem der erste Nutzer (Joe) tippt oder den Inhalt 954 in dem neuen Nachrichtenfenster 952 bearbeitet.
  • In einigen Ausführungsformen wird die Konversation mit der überarbeiteten Inhaltseinheit aktualisiert, wenn neuer Inhalt (z. B. Inhalt 922) oder eine Sequenz von Bearbeitungen (z. B. Bearbeitungen 932, 942) empfangen werden. In einigen Ausführungsformen wird der aktualisierte Inhalt bereitgestellt für einen oder mehrere Server, die eine Unterhaltung für die Teilnehmer (z. B. Joe, Pat, etc.) hosten.
  • In einigen Ausführungsformen prüft ein Server, der die Konversation hostet, auf Konflikte zwischen den ersten Bearbeitungen und den zweiten Bearbeitungen, und wenn ein Konflikt auftritt, setzt der Server einen Teilnehmer, der mit dem Konflikt verknüpft ist, entsprechend hiervon in Kenntnis. Zum Beispiel, wenn Pat versucht einen Teil des Textes zu bearbeiten, der aktuell in einer Weise von Joe bearbeitet wird, sodass die Bearbeitungen in Konflikt stehen (z. B. Pat löscht ein Wort während Joe es schreibt oder Joe löscht einen Paragraphen, den Pat bearbeitet), kommt es zu einem Konflikt und einer oder beide Teilnehmer wird/werden benachrichtigt. In einigen Ausführungsformen werden Konflikte automatisch aufgelöst mittels einer vordefinierten Kontrollprozedur für Gleichzeitigkeit, wie untenstehend ausführlicher beschrieben.
  • 9B veranschaulicht die Wiedergabe von Bearbeitungen an der in 9A dargestellten Konversation. In einigen Ausführungsformen werden Bearbeitungen in chronologischer Reihenfolge wiedergegeben, in der Reihenfolge der Zeitstempel, die mit den Bearbeitungen verknüpft sind. In einigen Ausführungsformen werden die Bearbeitungen in Reihenfolge der Sequenznummern wiedergegeben, die mit ihnen verknüpft sind. Ein Teilnehmer der Unterhaltung kann die Bearbeitungen einer Unterhaltung ansehen, in dem er den Mechanismus zur Wiedergabe nutzt.
  • In einigen Ausführungsformen wird die Konversation unter Anzeige von Änderungen innerhalb eines benutzerspezifischen Teils der Konversation (z. B. ein Textblock, ein Paragraph, eine einzelne Konversationseinheit [Blip] usw.) in chronologischer Reihenfolge wiedergegeben. In einigen Ausführungsformen wird dieser nutzerspezifische Teil einer Unterhaltung wiedergegeben ohne die Änderungen der anderen Teile der Unterhaltung anzusehen. In einem Beispiel ist der nutzerspezifische Teil eine einzelne Inhaltseinheit der Unterhaltung.
  • Bei einem ersten Wiedergabe-Mal/-Schritt, wird der Inhalt 966 in einem Fenster 964 angezeigt. Eine Vorspuloption 962 wird angezeigt und ermöglicht dem Betrachter innerhalb der Wiedergabe der Unterhaltung vorzuspulen.
  • Bei einem zweiten Wiedergabe-Mal/-Schritt, der aufgerufen wird, indem die Vorwärtsoption 962 im Fenster 964 gewählt wird, zeigt der Inhalt 970 Bearbeitungen der Konversation durch den zweiten Teilnehmer (Pat), und der Begriff „Build B” wird hinzugefügt. Eine Zurück-Option 972 wird angezeigt, mit der ein Teilnehmer in der Wiedergabe der Konversation zurückgehen kann; dabei wird die Vorwärtsoption 962 weiterhin angezeigt.
  • Bei einem dritten Wiedergabe-Mal/-Schritt, der durch das Auswählen der Vorwärtsoption 962 im Fenster 964 beim Betrachten des zweiten Wiedergabe-Mals/-Schritts aufgerufen wird, zeigt der Inhalt 980 weitere Bearbeitungen der Konversation durch den zweiten Teilnehmer (Pat), wobei das Wort „zweites” durch „drittes” ersetzt wird.
  • Bei einem vierten Wiedergabe-Mal/-Schritt, der durch das Auswählen der Vorwärtsoption 962 im Fenster 964 beim Betrachten des dritten Wiedergabe-Mals/-Schritts aufgerufen wird, zeigt der Inhalt 990 weitere Bearbeitungen der Konversation (neues Fenster 992 mit Text) durch den ersten Teilnehmer (Joe). Eine Wiedergabeoption 994 erlaubt dem Teilnehmer die Abfolge der Aktualisierungen der Unterhaltungen wiederzugeben. In einigen Ausführungsformen erlaubt eine oder mehrere Wiedergabe/n dem Teilnehmer eine oder mehrere der folgenden Operationen durchzuführen: Wiedergabe der kürzlich erfolgten Bearbeitungen (z. B. neueste nach Zeit oder Nummer), Bearbeitungen durch bestimmte Teilnehmer, Bearbeitungen an einer bestimmten Stelle der Unterhaltung, etc.)
  • In einigen Ausführungsformen zeigt eine Wiedergabe u. U. nur Änderungen durch einen bestimmten Teilnehmer an der Konversation an. Das kann dem Teilnehmer ermöglichen, seine Änderungen nachzuverfolgen oder Änderungen anderer Teilnehmer zu sehen.
  • In einigen Ausführungsformen umfassen Bearbeitungen in der Bearbeitungssequenz einzelne Tastenanschläge einer Sequenz von Tastenanschlägen durch einen bestimmten Teilnehmer an der Konversation. In einigen Ausführungsformen sind eine Vielzahl an bestimmten Bearbeitungen in der Reihenfolge der Bearbeitungen ausgeprägte Tastaturberührungen. In einigen Ausführungsformen sind eine Vielzahl an bestimmten Änderungen in der Reihenfolge von Änderungen bestimmte Wörter. Zum Beispiel umfassen die Bearbeitungen 932 durch den Teilnehmer Pat einen einzigartigen Begriff (Building) und einen einzigartigen Buchstaben (B) und die Bearbeitungen 942 umfassen einen Löschvorgang (Löschen des Begriffs „drittes”) und ein Hinzufügverfahren (Hinzufügen des Wortes „drittes”). In einigen Ausführungsformen wird die Unterhaltung entsprechend aktualisiert, sobald der hostende Server jede dieser bestimmten Bearbeitungen der Unterhaltung empfängt.
  • 10 veranschaulicht Teilnehmer, die eine Nachricht im Entwurfsmodus vorbereiten. Im Entwurfsmodus kann ein Teilnehmer Bearbeitungen, wie das Hinzufügen oder Löschen von Inhalt in einer Unterhaltung, vornehmen und die Bearbeitungen werden von dem hostenden Server der Unterhaltung empfangen. Sie werden aber nicht an die anderen Teilnehmer der Unterhaltung gesendet. Erst, wenn der Teilnehmer den Entwurfsmodus verlässt, z. B. indem er anzeigt, dass er die Bearbeitung abgeschlossen hat, werden die Teilnehmerbearbeitungen vom Server freigegeben (d. h. an die Clients der anderen Teilnehmer geschickt), damit diese von anderen Teilnehmern betrachtet werden können. Der Autor (d. h. der Teilnehmer, der im Entwurfsmodus arbeitet) kann den Inhalt vorbereiten im Wissen, dass die zwischenzeitlichen Änderungen oder Gedanken für die anderen Teilnehmer nicht sichtbar sind, bis der Autor fertig ist.
  • In einigen Ausführungsformen ist die Bearbeitung von Inhalten durch andere Teilnehmer gesperrt, wenn ein Teilnehmer eine Inhaltseinheit (einer Konversation) im Entwurfsmodus bearbeitet. Die Bearbeitung von anderen Inhaltseinheiten der gleichen Unterhaltung durch andere Teilnehmer, ist nicht gesperrt.
  • In einigen Ausführungsformen erlaubt ein „Teamentwurfsmodus” einer Vielzahl von Teilnehmern (z. B. Mitglieder des Teams A), bei der Vorbereitung oder Bearbeitung von Inhalten zusammenzuarbeiten und ihre Bearbeitungen gegenseitig zu betrachten, während dabei Teilnehmer, die nicht zum Team gehören, daran gehindert werden, den Inhalt bzw. die Bearbeitungen zu sehen, bis der Teamentwurfsmodus verlassen wurde. Die Nutzung des Team Entwurfsmodus schützt die Privatsphäre der Teammitglieder während sie zusammenarbeiten, um Inhalte für die Veröffentlichung gegenüber anderen Teilnehmern der Unterhaltung vorzubereiten.
  • Eine Reihe von unterschiedlichen Mechanismen können verwendet werden, um den Teamentwurfsmodus zu verlassen oder um von einem Team von Teilnehmern erstellte Inhalte freizugeben. Zum Beispiel kann man den Team-Entwurfsmodus beenden (oder den vom entsprechenden Team vorbereiteten Inhalt zur Veröffentlichung an die anderen Teilnehmer freigegeben), wenn ein Teammitglied zustimmt, dass die Bearbeitungen veröffentlicht werden sollen. In einigen Ausführungsformen müssen alle Teammitglieder der Veröffentlichung der Bearbeitungen oder Inhalte zustimmen, um den Team-Entwurfsmodus zu beenden, während in anderen Ausführungsformen die Mehrheit der Teammitglieder der Veröffentlichung der Bearbeitungen oder Inhalte zustimmen müssen. In wieder anderen Ausführungsformen müssen ein oder mehrere Senior Teammitglieder bestimmen, wann Bearbeitungen oder Inhalte veröffentlicht werden.
  • Im Teamentwurfsmodus wird die aktualisierte Konversation an einen Server gesendet, der mit einem Teammitglied verknüpft ist, während ein entsprechender Teilnehmer an der Konversation Bearbeitungen an der Konversation vornimmt. In einigen Ausführungsformen werden die Bearbeitungen der Unterhaltung den Servern, die mit Nicht-Teammitgliedern verknüpft sind zur Verfügung gestellt, aber die Anzeige der Bearbeitungen ist verzögert. In einigen Ausführungsformen werden die Bearbeitungen der Konversationen erst dann an einen Server gesendet, der mit einem Nicht-Teammitglied verknüpft ist, wenn der Entwurfsmodus beendet ist.
  • Des Weiteren werden im Teamentwurfsmodus Bearbeitungen der Konversation vom Teilnehmer (Autor) und einem oder mehreren Teammitgliedern empfangen, die Konversation wird aktualisiert und die aktualisierte Konversation wird an den einen oder mehrere Server gesendet, die mit dem entsprechenden Teilnehmer und den anderen Teammitgliedern verknüpft sind.
  • Bei einem ersten Mal/Schritt 1010 bereitet ein erster Autor/Teilnehmer (z. B. Joe, der ein Mitglied von Team A ist) eine Nachricht in Fenster 1012 vor. Eine Zustimmungsoption 1014 (z. B. durch Nutzung eines Zustimmungshäkchens und einem Kreuz 1016 für nicht zugestimmt) zeigt, dass der erste Autor der Nachricht noch nicht zugestimmt hat. Wenn der erste Teilnehmer der Nachricht zustimmt, kann das durch ein Häkchen 1033 in Option 1014 angezeigt werden. Der erste Autor gibt den Inhalt 1011 ein, und eine Einfügemarkierung 1018 zeigt die aktuelle Texteingabe des ersten Autors oder seine Bearbeitungsposition im Inhalt an. In einigen Betriebsmodi wird der Inhalt den Mitgliedern des gleichen Teams wie der erste Autor angezeigt, während der erste Autor den Inhalt 1011 eingibt.
  • Bei einem zweiten Mal/Schritt 1020, nimmt ein zweiter Teilnehmer (Pat, der ebenfalls ein Mitglied von Team A ist) Bearbeitungen am Inhalt 1011 vor (in diesem Beispiel ist dies die Änderung von „$100” auf „$110”), um den aktualisierten Inhalt 1021 zu produzieren. Die zweite Einfügemarke 1026 zeigt den Texteintrag oder die Bearbeitungsposition des zweiten Teilnehmers im Inhalt. Eine Zustimmungsoption 1022 in Verbindung mit dem zweiten Teilnehmer wird im oberen Bereich des Fensters 1012 angezeigt, sowie auch die Funktionen der Zustimmungsoption 1014 in Verbindung mit dem ersten Teilnehmer, wie oben beschrieben. Während der zweite Teilnehmer den Inhalt bearbeitet, wird der aktualisierte Inhalt 1021 den Mitgliedern des gleichen Teams angezeigt.
  • Bei einem dritten Mal/Schritt 1030 genehmigen der erste (Joe) und der zweite (Pat) Teilnehmer die Nachricht zur Veröffentlichung. Das wird angezeigt durch die Häkchen 1033 in Verbindung mit den Zustimmungsoptionen 1014 (für den ersten Teilnehmer Joe) und 1022 (für den zweiten Teilnehmer Pat). Der zugestimmte Inhalt (1031) wird dann für die anderen Teilnehmer der Unterhaltung veröffentlicht.
  • Bei einem vierten Mal/Schritt 1040 werden die von den ersten und zweiten Teilnehmern durchgeführten Bearbeitungen veröffentlicht, so dass die Teilnehmer an der Konversation (z. B. Mitglieder des Teams B) außerhalb von Team A den veröffentlichten Inhalt 1041 nun betrachten können.
  • Im in 10 gezeigten Beispiel findet die gesamte teambasierte Entwurfserstellung und Bearbeitung in einem Nachrichtenfenster 1012 für eine Inhaltseinheit statt. In anderen Ausführungsformen kann ein Entwurf solo oder teambasiert in mehr als einem Fenster oder mehr als einer Inhaltseinheit vorkommen und kann das Hinzufügen von neuen Nachrichten oder das Bearbeiten von bestehenden Nachrichten beinhalten.
  • 11A–B sind Flussdiagramme, die Verfahren zum Bearbeiten, zur Wiedergabe und zum Entwurf von Konversationen zeigen, die an einem Server gehostet werden gemäß bestimmten Ausführungsformen in der Erfindung. Die Methoden werden durch Anweisungen geregelt, die in einem kompatiblen Speichermedium hinterlegt sind und durch einen oder mehrere Prozessoren auf einem oder mehreren Server ausgeführt werden.
  • 11A zeigt ein Verfahren 1100 für das Hosten von Konversationen an einem Server (z. B. in der gehosteten Konversationsdatenbank 262, 2). Ein Server hostet (1102) eine Vielzahl an Unterhaltungen, wobei jede davon eine identifizierte Gruppe an Teilnehmern hat.
  • Der Server empfängt (1104) Inhaltseinheiten (z. B. jede Inhaltseinheit, die als Inhaltsbeitrag 326 gespeichert ist, 3A) von den jeweiligen Teilnehmern an der Konversation und überträgt mindestens Teile der empfangenen Inhalte für die Teilnehmer an der Konversation an die Server, die Konversationen hosten. Optional werden einzelne Tastenanschläge vom Client, den der Autor einer Inhaltseinheit verwendet an weitere Teilnehmer übertragen, während der Autor den Inhalt einer Inhaltseinheit erstellt (1106).
  • Der Server (1108) empfängt eine Sequenz von Bearbeitungen, einschließlich ersten und zweiten Bearbeitungen von der entsprechenden Inhaltseinheit der Konversation von mindestens einem Teilnehmer außer dem ursprünglichen Autor der Inhaltseinheit, um eine überarbeitete Inhaltseinheit zu produzieren. Optional sind die ersten und zweiten Bearbeitungen der Inhaltseinheit Bearbeitungen von bestimmten ersten und zweiten Teilnehmern der Unterhaltung (1110).
  • Optional, oder bei einigen Verfahren wird die Bearbeitung der entsprechenden Inhaltseinheit durch andere Teilnehmer an der Konversation gesperrt (1112), während Bearbeitungen an der Inhaltseinheit durch einen ersten Teilnehmer an der Konversation empfangen werden. Alternativ kann das gleichzeitige Bearbeiten durch mehr als einen Teilnehmer der Unterhaltung freigegeben sein (1113). Wie untenstehend ausführlich beschrieben, werden die Konflikte zwischen gleichzeitigen Bearbeitungen verschiedener Teilnehmer aufgelöst und der daraus resultierende einheitliche Inhalt wird veröffentlicht (oder freigegeben) an alle Teilnehmer der Unterhaltung.
  • In einigen Ausführungsformen wird eine erste Einfügemarkierung (z. B. Einfügemarkierung 924, die Joe in 9A identifiziert) für die Anzeige (1114) an einer Position vorbereitet, die den ersten Bearbeitungen durch den ersten Teilnehmer entspricht, und eine zweite Einfügemarkierung (z. B. Einfügemarkierung 934, die Pat identifiziert) wird zur Anzeige an einer Position vorbereitet, die den zweiten Bearbeitungen eines zweiten Teilnehmers entspricht; dann werden die ersten und zweiten Bearbeitungen sowie die ersten und zweiten Einfügemarkierungen (oder Einfügepositionen) an einen oder mehrere Server gesendet. Aktive Teilnehmer der Unterhaltung (z. B. Teilnehmer, deren Clients aktuell die Unterhaltung anzeigen) können die Einfügemarken, die mit den gleichzeitigen Autoren/Bearbeitern der Inhaltseinheit verknüpft sind.
  • In einigen Ausführungsformen umfasst die Vielzahl von Bearbeitungen in der Sequenz der Bearbeitungen eindeutige Tastenanschläge (1116). In diesen Ausführungsformen zeigen die Clients, die von aktiven Teilnehmern der Unterhaltung genutzt werden, Aktualisierungen/Bearbeitungen der Unterhaltung nahezu zeitgleich zur Eingabe der Aktualisierungen/Bearbeitungen durch den Autor an.
  • In einigen Ausführungsformen umfasst die Vielzahl von Bearbeitungen in der Sequenz der Bearbeitungen eindeutige Wörter (1118). In diesen Ausführungsformen zeigen die Clients, die von aktiven Teilnehmern der Unterhaltung genutzt werden, Wort-für-Wort Aktualisierungen/Bearbeitungen der Unterhaltung nahezu zeitgleich zur Eingabe der Aktualisierungen/Bearbeitungen durch den Autor an.
  • Ein entsprechender Zeitstempel oder eine entsprechende Sequenznummer (1120) wird für jede eindeutige Bearbeitung in der Sequenz von Bearbeitungen an der Inhaltseinheit gespeichert, einschließlich eindeutige Zeitstempel oder Sequenznummern für mindestens die ersten und zweiten Bearbeitungen an der Inhaltseinheit.
  • Die Konversation (1222) wird mit der überarbeiteten Inhaltseinheit aktualisiert und die aktualisierten Konversation wird automatisch an den einen oder an mehrere Server gesendet, die Konversationen für die Teilnehmer an der Konversation hosten.
  • 11B setzt das Verfahren 1100 für das Hosten von Konversationen an einem Server statt, wie in 11A veranschaulicht.
  • In einigen Ausführungsformen wird ein Zeitstempel (z. B. Zeitstempel 1, 2, 3, 4, dargestellt durch 920, 930, 940, 950 usw. in 9A und gespeichert in den Zeitstempeln 341 in 3B) für jede Inhaltseinheit in der Konversation gespeichert (1130).
  • Es werden Daten übertragen (1132), die die Sequenz von Bearbeitungen eines entsprechenden Teilnehmers an der Konversation darstellen, was diesem erlaubt, die Änderungen an der Konversation anhand der Sequenz der Bearbeitungen zu betrachten.
  • In einigen Ausführungsformen oder Verfahren ist es dem entsprechenden Teilnehmer gestattet, Änderungen an der Konversation (1134) (oder einen benutzerspezifischen Teil der Konversation) in chronologischer Reihenfolge zu betrachten, d. h. auch, wenn die Änderungen in der Konversation weiter voneinander entfernt angeordnet sind. Anders ausgedrückt, in einigen Betriebsmodi zeigt die Wiedergabefunktion in einer Clientanwendung die Sequenz der Änderungen an der Unterhaltung in der chronologischen Reihenfolge. Zum Beispiel wird in eine Unterhaltung wiedergegeben, um die Änderungen an der Unterhaltung als Ergebnis des Hinzufügens und des Bearbeitens des Inhalts durch die Teilnehmer der Unterhaltung zu zeigen.
  • In einigen Ausführungsformen oder Verfahren ist es dem entsprechenden Teilnehmer gestattet, eine Sequenz von Änderungen innerhalb eines logischen Teils der Konversation in chronologischer Reihenfolge zu betrachten (1136), z. B. durch die Verwendung der Rückwärts- 972 und Vorwärtstasten 974, um Änderungen in der Konversation navigieren zu können. Anders ausgedrückt, in einigen Betriebsmodi der Ausführung zeigt die Playback Funktion der Clientanwendung eine Sequenz an Änderungen innerhalb eines logischen Teils der Unterhaltung in einer chronologischen Reihenfolge an. Das erlaubt dem Teilnehmer die Sequenzen der Änderungen eines bestimmten für ihn relevanten Teils der Unterhaltung zu sehen, ohne die Änderungen an für ihn nicht relevanten Teilen zu sehen. Zum Beispiel kann der logische Teil der Unterhaltung, für den die Änderungen angezeigt werden, eine einzelne Inhaltseinheit der Unterhaltung (1138) sein. Alternativ kann der logische Teil der Unterhaltung, für den die Änderungen angezeigt werden (wenn die Playback Funktion genutzt wird), eine Vielzahl an nutzergewählten Inhaltseinheiten der Unterhaltung beinhalten.
  • In einigen Ausführungsformen ist es dem entsprechenden Teilnehmer an der Konversation gestattet, Änderungen (1140) an der Konversation zu betrachten, die von einem anderen Teilnehmer an der Konversation vorgenommen wurden, z. B. um alle Änderungen zu betrachten, die vom ersten Teilnehmer Joe oder vom zweiten Teilnehmer Pat vorgenommen wurden, wie in 9A dargestellt.
  • In einigen Ausführungsformen verzögert der Server (1142) die Weiterleitung von Bearbeitungen der Konversation durch einen gewissen Teilnehmer, der im Entwurfsmodus arbeitet und sendet die aktualisierte Konversation an andere Teilnehmer (z. B. an die Server, die Konversationen von anderen Teilnehmern hosten und an die Clients, die von anderen Teilnehmern verwendet werden), bis der jeweilige Teilnehmer den Entwurfsmodus verlässt oder die von ihm durchgeführten Bearbeitungen/Aktualisierungen der Konversation freigibt. Zum Beispiel werden die Bearbeitungen 1011 und 1021 in dem Team erst zur Verfügung gestellt, wenn die Mitglieder von Team A (Joe, Pat) den Bearbeitungen zustimmen und den Entwurfsmodus beenden. In einigen Ausführungsformen wird die Information des Entwurfsmodus oder die Information der Entwurfsannahme im Unterhaltungsstatus des Teilnehmers 372 ( ) der Unterhaltung gespeichert.
  • In einigen Ausführungsformen sendet der Server (1144) die aktualisierte Konversation an einen Server, der mit einem anderen Teammitglied verknüpft ist (z. B. Joe kann Pats Bearbeitungen sehen und umgekehrt), während ein entsprechender Teilnehmer (der Teammitglied ist) Bearbeitungen an der Konversation im Teamentwurfmodus vornimmt. Der Server verzögert die Sendung der Bearbeitungen der Konversation durch den entsprechenden Teilnehmer an einen Server, der mit einem Nicht-Teammitglied verknüpft ist (d. h. Team B kann im Entwurfsmodus die Bearbeitungen von Team A nicht sehen). Nachdem der Entwurfsmodus beendet wurde, stellt der Server die aktualisierte Unterhaltung an den Server, der mit dem Nicht-Mitglied verknüpft ist, bereit, einschließlich der Bearbeitungen der Unterhaltung durch den jeweiligen Teilnehmer. Als Alternative werden im Entwurfsmodus vorgenommene Bearbeitungen vorübergehend an die Server weitergeleitet, die mit allen Teilnehmern an der Konversation verknüpft sind, jedoch werden die Änderungen als Entwurfsmodusänderungen markiert und daher nicht an Teilnehmer außerhalb des Teams von Teilnehmern weitergeleitet, die die Änderungen vornehmen, bis der Entwurfsmodus verlassen wird oder bis die Konversationsaktualisierungen genehmigt oder freigegeben werden (z. B. durch den Teilnehmer oder das Team des Teilnehmers).
  • In einigen Ausführungsformen wird eine separate Konversation erstellt, wenn eine Gruppe oder ein Team von Teilnehmern in einer ersten Konversation die Bearbeitung einer Konversation im Teamentwurfmodus startet. Die Teammitglieder entwerfen Inhalt innerhalb der separaten Unterhaltung und wenn das Team mit dem Entwurf der separaten Unterhaltung fertig ist oder mit einem Teil dieser, wird sie in die erste Unterhaltung eingefügt. An diesem Punkt wird der neue oder bearbeitete Inhalt den anderen Teilnehmern der ersten Unterhaltung zugänglich gemacht.
  • Gleichzeitigkeitssteuerung
  • Das oben erwähnte kooperative Bearbeitungsmodul 736 (7) erlaubt mehreren Teilnehmern (Clients) die gleichzeitige Bearbeitung einer Konversation und bietet Konflikterkennung und -lösung, um festzustellen, ob die Bearbeitungen der Teilnehmer sich widersprechen (d. h. die vordefinierten Clientkriterien erfüllen). Bei einem entsprechenden Client gibt ein Benutzer Konversationsinhalte über eine „optimistische Benutzerschnittstelle” ein und bearbeitet sie; diese Benutzerschnittstelle nimmt an, dass kein Konflikt zwischen der Inhaltseingabe und den Bearbeitungen durch den Benutzer des Clientgeräts und den anderen Teilnehmern an der gleichen Konversation vorliegt, bis sie anderweitig vom Konversationsserver, der Konversationshosting-Dienste für den Client leistet, in Kenntnis gesetzt wird.
  • Mit Bezug auf 15 nehmen ein oder mehrere Teilnehmer einer Konversation Bearbeitungen an einer Konversation an ihrem lokalen Client (1510) vor, der wiederum die Benutzerbearbeitungen (1512) an den Konversationsserver sendet, der Konversationsdienste für den Client leistet. Die Bearbeitungen der Nutzer, die von jedem Teilnehmer vorgenommen werden, werden vom Unterhaltungsserver System empfangen (1520).
  • Wenn gegensätzliche Änderungen (Bearbeitungen) von zwei (oder mehr) Konversationsteilnehmern vorgenommen werden (hier zur einfacheren Erkennung als „Konkurrenzteilnehmer” bezeichnet, im Gegensatz zu anderen Teilnehmern, die derzeit keine gegensätzlichen Bearbeitungen an den Konversationen vornehmen), erfüllen diese gegensätzlichen Bearbeitungen die vordefinierten Konfliktkriterien, und es werden Umwandlungsvorgänge an den Bearbeitungen vorgenommen, die von den Konkurrenzteilnehmern durchgeführt werden, so dass der Status der Konversation an jedem der Clients konsistent bleibt. Anders ausgedrückt, die Transformationsmaßnahmen werden als Antwort auf die Feststellung, dass konkurrierende Teilnehmer in Konflikt stehende Bearbeitungen vorgenommen haben (d. h. Bearbeitungen, die auf vordefinierte Kriterien zutreffen), ausgeführt. Außerdem reduziert der Unterhaltungsserver die Anzahl an Transformationsmaßnahmen, die er ausführen muss, indem er Sequenzen an Bearbeitungen (1522), die bei jedem Client vorgenommen wurden zusammenfasst und dann de Transformationsmaßnahmen in den zusammengefassten Sequenzen, die von konkurrierenden Teilnehmern (1524) stammen, vornimmt. Zumindest eine der daraus resultierenden transformierten Sequenzen unterscheidet sich von der entsprechenden zusammengefassten Sequenz der Bearbeitungen, aus der sie stammt. Die jeweiligen transformierten Sequenzen der Bearbeitungen werden an die Clients der konkurrierenden Teilnehmer (und an jeden anderen aktiven Teilnehmer, zusammen mit der Sequenzinformation (1524, 1534) übertragen, um es jedem Client zu ermöglichen, sowohl die lokal vorgenommen als auch die erhaltenen transformierten Sequenzen der Bearbeitungen in der korrekten Reihenfolge anzuwenden, um einen korrekten aktuellen Status der Unterhaltung (1536) zu reproduzieren.
  • Wenn nicht gegensätzliche Änderungen (Bearbeitungen) von zwei (oder mehr) Konversationsteilnehmern vorgenommen werden, führt der Konversationsserver dennoch Sequenzen der an jedem Client vorgenommenen Bearbeitungen in zusammengeführte Sequenzen von Bearbeitungen (1522) zusammen. Jede dieser zusammengefassten Bearbeitungssequenzen bekommt einen Zeitstempel und/oder eine Sequenznummer (siehe die Beschreibung des Unterhaltungsprotokolls 324, ) und wird an die Clients der Teilnehmer der Unterhaltung (1522, 1530) gesendet, sodass alle Teilnehmer ein einheitliches Protokoll des Unterhaltungsstatus haben. Die jeweiligen Clients wenden die erhaltenen zusammengefassten Änderungssequenzen an, um den lokal gespeicherten Unterhaltungsstatus (1532) zu aktualisieren. Jeder Client, bei dem die Unterhaltung angezeigt wird, aktualisiert die Anzeige der Unterhaltung (1538) im Einklang mit sowohl den lokal vorgenommenen Änderungen als auch den zusammengefassten Änderungssequenzen der anderen Teilnehmer, die er vom Unterhaltungsserver erhält.
  • Im Folgenden eine besondere Situation, die besondere Handhabung des Clients erfordert. Wenn zum Zeitpunkt des Empfangs einer transformierten Änderungssequenz beim Client ein Nutzer, der diesen Client nutzt, weitere in Konflikt stehende Änderungen vorgenommen hat oder potentiell in Konflikt stehen mit Änderungen in der erhaltenen transformierten Änderungssequenz, dann führt der Client eine zweite Transformation des erhaltenen Änderungssequenz durch, die Transformation vorausahnt, die beim Server erfolgen wird, wenn die zusätzliche Änderungen, die beim Client vorgenommen wurden, empfangen werden. Als Ergebnis der zweiten Transformation an der erhaltenen Änderungssequenz und der Transformation, die vom Server an den vom Client vorgenommenen Änderungen, wird der Unterhaltungsstatus bei allen Clients der teilnehmenden Nutzer und bei allen hostenden Servern einheitlich aktualisiert. Anders ausgedrückt, jeder der Clients beinhaltet Anweisungen für Transformationsmaßnahmen, die auf erhaltene Bearbeitungen bei anderen Clients angewandt werden und die Transformationen, die von den Server an den Bearbeitungen, die bei diesen Clientmaßnahmen erfolgen, berücksichtigen. Der Unterhaltungsstatus wird bei jedem Schritt auf diesem Weg durch eine entsprechende Sequenznummer repräsentiert, die sowohl von den Clients als auch vom hostenden Server der Unterhaltung genutzt wird, um sicherzustellen, dass die Transformationen, die bei den Clients und den Servern gemacht werden, koordiniert oder synchronisiert werden und ein einheitlicher Unterhaltungsinhalt produziert wird. (1536).
  • Es wird erwähnt, dass lokal vorgenommene Bearbeitungen kontinuierlich an den Konversationsserver (1512) gesendet werden und so werden die nach der empfangenen umgewandelten Sequenz von Bearbeitungen ebenfalls an den Konversationsserver gesendet, und der Prozess der Generierung von zusammengeführten Sequenzen von Bearbeitungen und die Generierung von umgewandelten Sequenzen von Bearbeitungen wird fortgesetzt. Als Ergebnis reflektiert der Unterhaltungsstatus bei jedem Client eine verschachtelte Sequenz an Änderungen von den aktiven Teilnehmern, wobei einige dieser Änderungssequenzen, transformierte Sequenzen sind, die transformiert wurden, um einen einheitlichen Status der Clients, die von den Teilnehmern der Unterhaltung genutzt werden, zu erhalten.
  • Wie oben erörtert, werden bei einigen Ausführungsformen die Gleichzeitigkeitssteuerungsvorgänge für eine Konversation am Konversationsserversystem 130, das die Konversation hostet, und, sofern notwendig, auch von Clients durchgeführt, die umgewandelte Bearbeitungen erhalten haben, die den Bearbeitungen, die an diesen Clients durchgeführt werden, empfangen.
  • Die Anzahl an Bearbeitungen, die in eine zusammengeführte Bearbeitungssequenz (1522) zusammengeführt werden, hängt, zumindest zum Teil, von der Rate ab, mit der der Teilnehmer Bearbeitungen eingibt. Ein weiterer Faktor, der einen Einfluss auf die Bearbeitung, die zusammengefasst werden, hat, ist die Tatsache, ob die Teilnehmer die gleiche Texteinheit zur gleichen Zeit bearbeiten. Zum Beispiel werden relativ lange Sequenzen und Bearbeitungen zusammengefasst, wenn es keine konkurrierenden Bearbeitungen durch andere Teilnehmer gibt. Jedoch, wenn konkurrierende Bearbeitungen von anderen Teilnehmern vorgenommen werden, gibt es relativ kurze Änderungssequenzen (z. B. bezogen auf Bearbeitungen in einem Zeitraum von N Sekunden, wobei N üblicherweise kleiner oder gleich 0,5 ist). In anderen Ausführungsformen werden die Bearbeitungen (das schließt Inhaltseingabe und auch Revisionen von zuvor eingegeben Inhalt und auch Änderungen an geteilten Metadaten ein) eines Teilnehmers direkt an die anderen Teilnehmer der Unterhaltung gesendet, ohne dass eine Zusammenfassung erstellt wird. Wenn Konflikte festgestellt werden, wird eine Transformation (beim hostenden Unterhaltungsserver oder bei einem anderen Server) für jede individuelle Bearbeitungsaktion eingeleitet, bevor diese an die anderen aktiven Teilnehmer gesendet wird. Wie oben beschrieben, wird eine Second Level Transformation an der jeweiligen erhaltenen transformierten Bearbeitung vorgenommen beim empfangenden Client, wenn die erhaltene transformierende Bearbeitung in Konflikt steht mit einer Bearbeitung, die bei einem lokalen Client vorgenommen wurde und bei der die Zeit der Sequenznummer des Unterhaltungsstatus entspricht.
  • Um die Latenz, welche als Verzögerung zwischen der Eingabe der Bearbeitung und deren Erscheinung bei den Clients anderer Teilnehmer bezeichnet wird, niedrig zu halten, werden Bearbeitungen von Teilnehmern gewöhnlich so schnell wie möglich an die anderen aktiven Teilnehmer gesendet, ohne auf die Zusammenführung der Bearbeitungssequenz zu achten. Eine schnelle Umwandlung und die Weiterleitung der Bearbeitungen während „Live-Konflikten” (wenn zwei oder mehr Teilnehmer den gleichen Teil der Konversation überarbeiten) hält die Teilnehmer genau auf dem Laufenden über den Konversationsstatus während Live-Konflikten. Weil das Zusammenfassen der Aktionen und deren Transformation für die aktiven Teilnehmer die Latenz erhöhen würde, wird das Zusammenfassen der Aktion entweder genutzt oder nicht, oder nur für sehr kleine Zeitfenster während aktuell stattfindender Konflikte. Auf der anderen Seite werden Sequenzen von Aktionen, die kurzen Zeitabständen stattfinden zusammengefasst, für die Protokollierung der Unterhaltungshistorie 324 ( ) zur Wiedergabe. Wie obenstehend angemerkt, kann der Protokolleintrag 385 eine Autorenliste 390 enthalten, die mehrere Autoren einer Änderung des Unterhaltungsstatus identifiziert, wenn mehr als ein Autor die gleiche Unterhaltung zur gleichen Zeit oder in überschneidender Zeitabfolge bearbeitet. Des Weiteren, wenn keine Konflikte zwischen Teilnehmern bestehen, werden ganze Sequenzen von Bearbeitungen vom Start einer Bearbeitungssequenz in eine einzelne Bearbeitungssequenz zusammengeführt, die in einem einzelnen Konversationsprotokoll 385 gespeichert (3C), bis der Benutzer das Symbol oder die Taste „Fertig” wählt.
  • 12 veranschaulicht ein Prozessdiagramm, das die Anwendung der Gleichzeitigkeitssteuerung zwischen einer Vielzahl von potenziell gegensätzlichen Bearbeitungen aufzeigt, die von zwei Teilnehmern erhalten wurden. Das Beispiel in zeigt die Transformationsaktionen von ASCII Text mit XML Tags und Inhalt. Aktionen werden beim ersten Teilnehmer (Client) und beim zweiten Teilnehmer (Client) durchgeführt.
  • Eine erste Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation wird von einem ersten Teilnehmer an der Konversation und die Umwandlung der ersten Sequenz von Bearbeitungen in eine erste zusammengeführte Sequenz von Bearbeitungen (1212) erhalten. Eine zweite Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation wird von einem zweiten Teilnehmer an der Konversation und die zweite Sequenz von Bearbeitungen in eine zweite zusammengeführte Sequenz von Bearbeitungen (1216) erhalten.
  • Die erste zusammengeführte Sequenz von Bearbeitungen (1212) wird umgewandelt, um eine erste umgewandelte Sequenz von Bearbeitungen (1232) und die zweite zusammengeführte Sequenz von Bearbeitungen wird umgewandelt, um eine zweite umgewandelte Sequenz von Bearbeitungen (1222) zu produzieren. Die erste transformierte Änderungssequenz (1232) wird an den zweiten Teilnehmer gesendet und die zweite transformierte Änderungssequenz (1222) wird an den ersten Teilnehmer gesendet. Beim ersten Client wird die erste zusammengefasste Änderungssequenz (1212) auf einen ursprünglichen Unterhaltungsstatus D1 angewandt, um einen zwischenzeitlichen Unterhaltungsstatus D2 zu produzieren und dann wird die zweite transformierte Änderungssequenz (1222) auf den Unterhaltungsstatus D2 angewandt, um einen neuen Unterhaltungsstatus D4 zu produzieren. Beim zweiten Client wird die zweite zusammengefasste Änderungssequenz (1216) auf einen ursprünglichen Unterhaltungsstatus D1 angewandt, um einen zwischenzeitlichen Unterhaltungsstatus D3 zu produzieren und dann wird die erste transformierte Änderungssequenz (1232) auf den zwischenzeitlichen Unterhaltungsstatus D3 angewandt, um einen neuen Unterhaltungsstatus D4 beim ersten Client zu produzieren. So werden die transformierten Änderungssequenzen, 1232 und 1222, erstellt, damit sie, wenn sie auf den Unterhaltungsstatus nach der Applikation der lokal ausgeführten Bearbeitungen (entsprechend der zusammengefassten Änderungssequenz für den Client), der Unterhaltungsstatus bei beiden Clients einen einheitlichen Status hat.
  • Im Beispiel in 12 hat jedes ASCII-Textzeichen die Größe 1 und jeder startende und endende XML-Tag hat die Größe 1. Im Beispiel der bezieht ”Text löschen” sich auf die Komponente Text Löschen in der Aktion und das ”Element löschen” bezieht sich auf die Aktion, ein Element zu löschen. Die Nummer, die der Löschaktion eines Textes oder eines Elements zugeordnet ist, bezieht sich auf die Größe der Elementlöschung. „Hinzufügen eines Elements” wird genutzt, um XML Tags einer Inhaltseinheit hinzuzufügen und „Hinzufügen Text” wird genutzt, um Text hinzuzufügen. Die Transformationen von zusammengefassten Sequenzen der Aktionen zur Inhaltsaktualisierung (Bearbeitungen) berücksichtigen die Position von jeder Aktion in der Inhaltseinheit und auch gedoppelte Aktionen (z. B. ergänzende Aktionen, die den gleichen Text löschen) oder allgemeinere Aktionen, die andere konkurrierende Aktionen irrelevant machen.
  • Der ursprüngliche Konversationsstatus D1 1210 umfasst einen ersten String:
    Figure DE202010018483U1_0002
  • Der zweite (oder überarbeitete) Konversationsstatus D4 1240 umfasst einen zweiten String:
    Figure DE202010018483U1_0003
  • Der mittlere Konversationsstatus D2 1220 umfasst einen dritten String:
    Figure DE202010018483U1_0004
  • Der mittlere Konversationsstatus D3 1230 umfasst einen vierten String:
    Figure DE202010018483U1_0005
  • Die erste zusammengeführte Sequenz von Bearbeitungen 1212 kann wie folgt bearbeitet werden:
    Figure DE202010018483U1_0006
  • Wenn die erste zusammengeführte Sequenz von Bearbeitungen 1212 auf den ursprünglichen Konversationsstatus D1 1210 angewandt wird, ist das Ergebnis ein sofortiger Konversationsstatus D2 1220, wie oben beschrieben. Eine gestrichelte Box 1214 zeigt den Teil des Status an D2, an dem Änderungen an D1 durch die erste zusammengefasste Änderungssequenz vorgenommen wurden 1212.
  • Die zweite zusammengeführte Sequenz von Bearbeitungen 1222 kann wie folgt bearbeitet werden:
    Überspringen 2
    Löschen Text 1
  • Die zweite umgewandelte Sequenz von Bearbeitungen 1222 löscht den Buchstaben „b” 1224 aus dem mittleren Konversationsstatus D2. Das Ergebnis dieser Aktion ist der zweite (oder revidierte) Unterhaltungsstatus D4 1240.
  • Die zweite zusammengeführte Sequenz von Bearbeitungen 1216 kann wie folgt bearbeitet werden:
    Überspringen 2
    Text 3 löschen (z. B. „bed” löschen)
  • Die zweite zusammengeführte Sequenz von Bearbeitungen 1216 löscht die Buchstaben „bed” aus dem ersten Konversationsstatus D1. Das Ergebnis der Anwendung der zweiten Änderungssequenz 1216 auf den ersten Unterhaltungsstatus D1 ist der zwischenzeitliche Unterhaltungsstatus D3 1230.
  • Die erste umgewandelte Sequenz von Bearbeitungen 1232 kann wie folgt bearbeitet werden:
    Figure DE202010018483U1_0007
    Figure DE202010018483U1_0008
  • Die erste umgewandelte Sequenz von Bearbeitungen 1232 ändert den sofortigen Konversationsstatus D3, indem sie das durch die gestrichelte Linie 1234 gekennzeichnete Material in 12 hinzufügt. Das Ergebnis der Aktion ist der zweite Unterhaltungsstatus D4.
  • Es wird erwähnt, dass die Zusammenführung von Bearbeitungssequenzen die Erkennung von gegensätzlichen Bearbeitungen (durch unterschiedliche Benutzer) erleichtert, was wiederum den Aufwand an Computerressourcen für die Gleichzeitigkeitssteuerung reduziert. Konkurrierende Bearbeitungen werden, zum Beispiel, festgestellt, wenn eine Transformation der zusammengefassten Änderungssequenzen zumindest die Position von einer Bearbeitungsaktion ändern würde. Zum Beispiel werden konkurrierende Bearbeitungen festgestellt, wenn die Durchführung einer zusammengefassten ersten Änderungssequenz die Position von zumindest einer Bearbeitungsaktion in der zweiten zusammengefassten Änderungssequenz ändern würde. Ein weiteres Beispiel ist, dass konkurrierende Bearbeitungen festgestellt werden, wenn die zweite zusammengefasste Änderungssequenz die Position von zumindest einer Bearbeitungsaktion in der ersten zusammengefassten Änderungssequenz ändern würde. Konkurrierende Bearbeitungen werden auch festgestellt, wenn die erste und zweite zusammengefasste Änderungssequenz (von zwei unterschiedlichen Teilnehmern) überschneidende Löschaktionen enthalten. Die Transformation einer zusammengefassten Änderungssequenz, für die eine überschneidende Löschaktion (d. h. eine Überschneidung mit einer Bearbeitungsaktion eines anderen Teilnehmers) vorhanden ist, produziert eine transformierte Löschaktion, die weniger Elemente der jeweiligen Inhaltseinheit löscht, als die jeweilige Löschaktion in der zusammengefassten Änderungssequenz.
  • In einigen Ausführungsformen, wenn die ersten und zweiten zusammengeführten Sequenzen von Bearbeitungen überlappende Verfahren umfassen, einschließlich einen redundanten Vorgang, umfasst die zuerst umgewandelte Sequenz von Bearbeitungen den redundanten Vorgang nicht.
  • In einigen Ausführungsformen werden eindeutige Konversations-(oder Inhaltseinheits)-Versionsnummern vor und nach jeder zusammengeführten Sequenz von Bearbeitungsvorgängen mit dem Status einer entsprechenden Konversation (oder Inhaltseinheit) verknüpft. Auf ähnliche Weise sind Versionsnummern mit dem Status der jeweiligen Unterhaltung (oder Inhaltseinheit) vor und nach den transformierten Änderungssequenzen der Aktionen verknüpft. In einigen Ausführungsformen werden bestimmte Zeitstempel mit jeder bestimmten Versionsnummer der Unterhaltung (oder Inhaltseinheit) verknüpft.
  • 13 veranschaulicht eine Sequenz von separaten Bearbeitungsverfahren an einer Inhaltseinheit, die von einem ersten Teilnehmer empfangen wurde sowie eine Sequenz von separaten Bearbeitungsverfahren, die von einem zweiten Teilnehmer an einer Konversation erhalten wird.
  • Ein Startpunkt für diese Sequenz ist ein erster Inhaltseinheitsstatus 1310, der den Text „ABCDEFG” enthält. Eine erste Änderungssequenz wird empfangen vom ersten Teilnehmer und beinhaltet:
    1316: „X” bei 6 einfügen, was zum Text ABCDEFXG führt
    1318: „Y” bei 1 einfügen, was zum Text AYCDEFXG führt
    1350: 3–5 löschen, was zum Text AYBEFXG führt
  • Eine zweite umgewandelte Sequenz von Bearbeitungen wird vom zweiten Teilnehmer empfangen und auf den ersten Teilnehmer angewandt, u. a. wie folgt:
    1352: 3–4 löschen, was zum Text AYBFXG löschen
    1354: „M” bei 5 einfügen, was zum Text AYBFXMG führt
    1356: „N” bei 3 einfügen, was zum Text AYBNFXMG führt.
  • Dies ist der finale Status der Inhaltseinheit 1370.
  • Nochmals wird eine zweite Sequenz von Bearbeitungen von einem zweiten Teilnehmer bzgl. des Startstatus 1310 mit dem Text „ABCDEFG” empfangen, die Folgendes umfasst:
    1312: 3–5 löschen, was zum Text ABCFG führt
    1314: „M” bei 4 einfügen, was zum Text ABCFMG führt
    1330: „N” bei 3 einfügen, was zum Text ABCNFMG führt
  • Eine erste umgewandelte Sequenz von Bearbeitungen wird vom ersten Teilnehmer empfangen und auf den ersten Teilnehmer angewandt, u. a. wie folgt:
    1332: „X” bei 5 einfügen, was zum Text ABCNFXMG führt
    1334: „Y” bei 1 einfügen, was zum Text AYBCNFXMG führt
    1336: 3–5 löschen, was zum Text AYBNFXMG führt.
  • Die ist der finale Status der Inhaltseinheit 1370 und der gleiche Status der Inhaltseinheit, der unter Nutzung der ersten Änderungssequenz und der zweiten transformierten Änderungssequenz erreicht wird.
  • Da es eine Vielzahl von separaten Bearbeitungen gibt, gibt es auch eine Vielzahl von Umwandlungen (angezeigt durch die Vielzahl von Pfeilen/Pfaden vom Inhaltseinheitsstatus 1310 zum Inhaltseinheitsstatus 1370). In dieser Ausführungsform wird jeder Transformation für jeden Pfad kalkuliert, was Prozessorressourcen und Zeit braucht.
  • 14 veranschaulicht 1400 eine Sequenz von zusammengeführten Bearbeitungsverfahren an einer Inhaltseinheit, die von einem ersten Teilnehmer empfangen wurde sowie eine Sequenz von zusammengeführten Bearbeitungsverfahren, die von einem zweiten Teilnehmer an einer Konversation erhalten und anschließend umgewandelt wird.
  • Ein Startpunkt für diese Sequenz ist ein erster Inhaltseinheitsstatus 1410, der den Text „ABCDEFG” enthält und dem Startinhaltseinheitsstatus 1310 aus 13 entspricht.
  • Eine erste umgewandelte Sequenz von Bearbeitungen wird vom ersten Teilnehmer empfangen, u. a. wie folgt:
    1416: 1 überspringen, „Y” einfügen, 1 überspringen, 2 löschen, 2 überspringen, X einfügen, was zum Text AYBEFXG, Inhaltseinheitsstatus 1450 führt.
  • Eine zweite umgewandelte Sequenz von Bearbeitungen wird vom zweiten Teilnehmer empfangen und auf den ersten Teilnehmer angewandt, u. a. wie folgt:
    1452: 3 überspringen, 1 löschen, „N” einfügen, 2 überspringen, M einfügen, was zum Text AYBNFXMG, Endpunkt 1470 führt.
  • Nochmals wird eine zweite zusammengeführte Sequenz von Bearbeitungen von einem zweiten Teilnehmer bzgl. des Startinhaltseinheitsstatus 1410 mit dem Text „ABCDEFG” empfangen, die Folgendes umfasst:
    1412: 3 überspringen, 2 löschen, „N” einfügen, 1 überspringen, „M” einfügen, was zum Text ABCNFMG, Inhaltseinheitsstatus 1430 führt.
  • Eine erste umgewandelte Sequenz von Bearbeitungen wird vom ersten Teilnehmer empfangen und auf den zweiten Teilnehmer angewandt, u. a. wie folgt:
    1432: 1 überspringen, „Y” einfügen, 1 überspringen, 1 löschen, 2 überspringen „X” einfügen, was zum Text AYBNFXMG, Inhaltseinheitsstatus 1470 führt.
  • Dies ist der finale Status der Inhaltseinheit 1470, wie er durch die Anwendung der ersten zusammengefassten Änderungseinheit und der zweiten transformierten zusammengefassten Änderungseinheit erreicht wird.
  • Da die individuellen Bearbeitungen (z. B wie in 13 gezeigt) in eine Sequenz von Bearbeitungen in 14 zusammengeführt werden, sind weniger Umwandlungen gemäß Ausführungsform in 14 notwendig, im Gegensatz zu denen in 13 (gezeigt durch das Paar Pfeile/Pfade vom Punkt 1310 zum Punkt 1370). In dieser Ausführungsform muss für jeden Pfad eine Transformation kalkuliert werden, was eine geringe Prozessorauslastung bedeutet, als bei der Ausführungsform in . Die Ausführungsform in stellt so die Vorteile eines reduzierten Kalkulationsaufwands dar, der durch die Nutzung von zusammengefassten Änderungssequenzen entsteht.
  • Weitere Anwendungen
  • Eine weitere Anwendung, die mit dem Server verknüpft sein kann, der die Konversation hostet, umfasst eine kontextbezogene Rechtschreibprüfung und die korrekte Anwendung. Solch eine Anwendung kann genutzt werden, um gängige Rechtschreibfehler zu finden und absichtlich definierte Wörter zu unterscheiden. Solch eine Anwendung kann ein Fehlermodell nutzen, um zu bestimmen, ob ein Wort richtig geschrieben oder verwendet wurde. Das Modell kann häufige Fehler finden auf Basis der Buchstabenverwechslung, phonetischer Ähnlichkeit, Position in der Unterhaltung oder der Buchstaben und der Nutzung anderer Hilfsmittel. Die Anwendung kann während der Eingabe und Kontextbasiert die Texte prüfen. In einigen Ausführungsformen bietet die Anwendung nutzerspezifische Vergleiche von Wörtern, die der Nutzer häufig verwendet oder die er definiert hat. In einigen Ausführungsformen kann die Anwendung ein Tag mit einem Vorschlag für ein Wort einfügen, dass sie als falsch geschrieben einschätzt, sodass jeder Teilnehmer (nicht nur der Autor) das Wort korrigieren kann, falls notwendig.
  • Eine weitere Anwendung, die mit dem Server verknüpft sein kann, der die Konversation hostet, umfasst eine kontextbezogene Namensanzeige, die kontextbezogene Begriffserklärungen umfasst.
  • In einigen Ausführungsformen erlauben diese Begriffserklärungen Platzeinsparungen bei der Anzeige von Namen. Zum Beispiel kann ein guter Freund oder Arbeitskollege nur mit dem Vornamen oder einem Bild angezeigt werden, wohingegen ein Fremder mit vollem Namen, Titel etc. angezeigt wird. Ein Satz an Regeln (definiert vom System oder dem Nutzer oder beiden) kann genutzt werden, um zu bestimmen, wer und wie er angezeigt wird.
  • Eine weitere Anwendung, die mit dem Server verknüpft sein kann, der die Konversation hostet, umfasst eine Sprachübersetzungsanwendung (Maschinenübersetzung). Die Anwendung zur Maschinenübersetzung kann eine Rechtschreibprüfung und/oder ein kontextsensitives Wörterbuch nutzen, um zwischen den Sprachen zu übersetzen.
  • In einigen Ausführungsformen verwenden dies (und andere) Anwendungen eine Anwendungsprotokollschnittstelle (API), die mit dem Server, der die Konversation hostet, interagiert. In einigen Ausführungsformen erlaubt die Anwendung einem Teilnehmer, einen Platz für den Namen des entsprechenden Teilnehmers und seine persönlichen Anwendungen, die der Teilnehmer mit anderen Teilnehmern teilen kann.
  • Die oben aufgeführte Beschreibung wurde als Erläuterung mit Referenzen auf bestimmte Ausführungsformen formuliert. Jedoch sollen die obenstehenden veranschaulichenden Erörterungen nicht erschöpfend sein oder die Erfindung auf die genauen offenbarten Formen beschränken. Angesichts der obenstehenden Lehren sind viele Modifikationen und Abwandlungen möglich. Die Ausführungsformen wurden gewählt und beschrieben, um die Prinzipien der Erfindung und ihre praktischen Anwendungen zu beschreiben, um es dadurch anderen Fachleuten zu ermöglichen, die Erfindung und ihre verschiedenen Ausführungsformen mit verschiedenen Modifizierungen zu nutzen, die für die besondere, erwägte Nutzung geeignet sind.

Claims (23)

  1. Serversystem, das Folgendes umfasst: einen Prozessor oder mehrere Prozessoren; Speicher; und ein oder mehrere Programme, die im Speicher für die Ausführung durch einen oder mehrere Prozesse gespeichert sind, die einen oder mehreren Programme, die Anweisungen für das Hosten einer Vielzahl von Konversationen enthalten, einschließlich Hosten, für eine entsprechende Konversation: das Empfangen einer ersten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Teilnehmer an der Konversation und die Umwandlung der ersten Sequenz von Bearbeitungen in eine erste zusammengeführte Sequenz von Bearbeitungen; das Empfangen einer zweiten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem zweiten Teilnehmer an der Konversation und die Umwandlung der zweiten Sequenz von Bearbeitungen in eine zweite zusammengeführte Sequenz von Bearbeitungen; das Reagieren auf das Feststellen, dass die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es die erste zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine erste umgewandelte Sequenz von Bearbeitungen zu produzieren und die zweite zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine zweite umgewandelte Sequenz von Bearbeitungen zu produzieren; und das Senden der ersten Sequenz der umgewandelten Bearbeitungen an den zweiten Teilnehmer und der Sequenz der zweiten umgewandelten Sequenz von Bearbeitungen an den ersten Teilnehmer; das Anwenden der ersten Sequenz von Bearbeitungen gefolgt von der zweiten umgewandelten Sequenz von Bearbeitungen am ersten Teilnehmer auf die entsprechende Inhaltseinheit der Konversationen erzeugt das gleiche Ergebnis wie die Anwendung der zweiten Sequenz von Bearbeitungen gefolgt von der ersten umgewandelten Sequenz von Bearbeitungen am zweiten Teilnehmer auf die entsprechende Inhaltseinheit der Konversation.
  2. Serversystem nach Anspruch 1, worin das Umwandeln der ersten zusammengeführten Sequenz von Bearbeitungen eine Position innerhalb der entsprechenden Inhaltseinheit von mindestens einer Bearbeitung in der ersten zusammengeführten Sequenz von Bearbeitungen ändert.
  3. Serversystem, das Folgendes umfasst: einen oder mehrere Prozessor(en); und Speicher für ein oder mehrere Programme zur Ausführung durch einen oder mehrere Prozessoren; das System muss die Mittel umfassen, die zur Ausführung der nachfolgenden Schritte zur Auflösung von Bearbeitungen in elektronische Nachrichten notwendig sind: an dem Serversystem, das eine Vielzahl von Konversationen hostet, wobei dies für die jeweilige Konversation Folgendes beinhaltet: das Empfangen einer ersten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Teilnehmer an der Konversation und die Umwandlung der ersten Sequenz von Bearbeitungen in eine erste zusammengeführte Sequenz von Bearbeitungen; das Empfangen einer zweiten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem zweiten Teilnehmer an der Konversation und die Umwandlung der zweiten Sequenz von Bearbeitungen in eine zweite zusammengeführte Sequenz von Bearbeitungen; das Reagieren auf die Feststellung, dass die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es die erste zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine erste umgewandelte Sequenz von Bearbeitungen zu produzieren und die zweite zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine zweite umgewandelte Sequenz von Bearbeitungen zu produzieren; und das Senden der ersten transformierten Sequenz der umgewandelten Bearbeitungen an den zweiten Teilnehmer und der Sequenz der zweiten umgewandelten Sequenz von Bearbeitungen an den ersten Teilnehmer; das Anwenden der ersten Sequenz von Bearbeitungen gefolgt von der zweiten umgewandelten Sequenz von Bearbeitungen am ersten Teilnehmer auf die entsprechende Inhaltseinheit der Konversationen erzeugt das gleiche Ergebnis wie die Anwendung der zweiten Sequenz von Bearbeitungen gefolgt von der ersten umgewandelten Sequenz von Bearbeitungen am zweiten Teilnehmer auf die entsprechende Inhaltseinheit der Konversation.
  4. Serversystem nach Anspruch 3, worin die vorbestimmten Konfliktkriterien erfüllt werden, wenn eine oder mehrere der folgenden Bedingungen erkannt werden: das Durchführen der ersten zusammengeführten Sequenz von Bearbeitungen würde die Position von mindestens einem Bearbeitungsvorgang in der zweiten zusammengeführten Sequenz von Bearbeitungen ändern; das Durchführen der zweiten zusammengeführten Sequenz von Bearbeitungen würde die Position von mindestens einem Bearbeitungsvorgang in der ersten zusammengeführten Sequenz von Bearbeitungen ändern; die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen umfassen überlappende Löschvorgänge; und die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen umfassen Bearbeitungsvorgänge, die das gleiche Wort in der entsprechenden Inhaltseinheit der Konversation ändern würden.
  5. Serversystem nach Anspruch 3 oder 4, worin die Umwandlung der ersten zusammengeführten Sequenz von Bearbeitungen eine Position innerhalb der entsprechenden Inhaltseinheit von mindestens einer Bearbeitung in der ersten zusammengeführten Sequenz von Bearbeitungen ändert.
  6. Serversystem nach irgendeinem der Ansprüche 3–5, worin, wenn die ersten und zweiten zusammengeführten Bearbeitungen das Überlappen mit Löschvorgängen umfassen, das Umwandeln der ersten zusammengeführten Sequenz von Bearbeitungen den entsprechenden Löschvorgang der ersten zusammengeführten Sequenz von Bearbeitungen verändert und so einen umgewandelten Löschvorgang produziert, der weniger Elemente der jeweiligen Inhaltseinheit löscht als der entsprechende Löschvorgang der ersten zusammengeführten Sequenz von Bearbeitungen.
  7. Serversystem nach irgendeinem der Ansprüche 3–6, worin, wenn die ersten und zweiten zusammengeführten Sequenzen von Bearbeitungen überlappende Verfahren umfassen, einschließlich einen redundanten Vorgang, umfasst die zuerst umgewandelte Sequenz von Bearbeitungen den redundanten Vorgang nicht.
  8. Serversystem nach irgendeinem der Ansprüche 3–7, die weiterhin das Verknüpfen einer ersten Versionsnummer mit der entsprechenden Inhaltseinheit vor der Bearbeitung der ersten Inhaltseinheit mit der ersten Sequenz von Bearbeitungen und der zweiten Sequenz von Bearbeitungen umfasst.
  9. Serversystem nach Anspruch 8, worin bei der Aktualisierung der entsprechenden Inhaltseinheit bei der ersten Sequenz von Bearbeitungen und der zweiten Sequenz von Bearbeitungen eine zweite Versionsnummer mit der entsprechenden aktualisierten Inhaltseinheit verknüpft wird.
  10. Serversystem nach Anspruch 9, das des Weiteren das Verknüpfen von eindeutigen Zeitstempeln mit der ersten und zweiten Versionsnummer umfasst.
  11. Serversystem nach irgendeinem der Ansprüche 3–10, worin die erste Sequenz von Bearbeitungen einen Textbearbeitungsvorgang und einen XML-Bearbeitungsvorgang umfasst.
  12. Computerlesbares Speichermedium, in dem ein oder mehrere Programme gespeichert sind, die zur Ausführung durch einen oder mehrere Prozesse eines Serversystems konfiguriert sind, wobei ein oder mehrere Programme Anweisungen umfassen, die bei ihrer Ausführung Folgendes im Serversystem bewirken: das Speichern von Daten, die eine Vielzahl von Konversationen repräsentieren, einschließlich einer entsprechenden Konversation; das Empfangen einer ersten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Teilnehmer an der Konversation und die Umwandlung der ersten Sequenz von Bearbeitungen in eine erste zusammengeführte Sequenz von Bearbeitungen; das Empfangen einer zweiten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem zweiten Teilnehmer an der Konversation und die Umwandlung der zweiten Sequenz von Bearbeitungen in eine zweite zusammengeführte Sequenz von Bearbeitungen; das Reagieren auf das Feststellen, dass die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es die erste zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine erste umgewandelte Sequenz von Bearbeitungen zu produzieren und die zweite zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine zweite umgewandelte Sequenz von Bearbeitungen zu produzieren; und das Senden der zweiten umgewandelten Sequenz von Bearbeitungen an den ersten Teilnehmer; das Anwenden der ersten Sequenz von Bearbeitungen gefolgt von der zweiten umgewandelten Sequenz von Bearbeitungen am ersten Teilnehmer auf die entsprechende Inhaltseinheit der Konversationen erzeugt das gleiche Ergebnis wie die Anwendung der zweiten Sequenz von Bearbeitungen gefolgt von der ersten umgewandelten Sequenz von Bearbeitungen am zweiten Teilnehmer auf die entsprechende Inhaltseinheit der Konversation.
  13. Computerlesbares Speichermedium, in dem ein oder mehrere Programme gespeichert sind, die zur Ausführung durch einen oder mehrere Prozesse eines Serversystems konfiguriert sind, wobei ein oder mehrere Programme Anweisungen umfassen, die durch einen oder mehrere Prozessoren ausgeführt werden müssen, um die nachfolgenden Schritte zur Auflösung von Bearbeitungen in elektronische Nachrichten ausführen zu können: an dem Serversystem, das eine Vielzahl von Konversationen hostet, wobei dies für die jeweilige Konversation Folgendes beinhaltet: das Empfangen einer ersten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Teilnehmer an der Konversation und die Umwandlung der ersten Sequenz von Bearbeitungen in eine erste zusammengeführte Sequenz von Bearbeitungen; das Empfangen einer zweiten Sequenz von Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem zweiten Teilnehmer an der Konversation und die Umwandlung der zweiten Sequenz von Bearbeitungen in eine zweite zusammengeführte Sequenz von Bearbeitungen; das Reagieren auf die Feststellung, dass die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es die erste zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine erste umgewandelte Sequenz von Bearbeitungen zu produzieren und die zweite zusammengeführte Sequenz von Bearbeitungen umwandelt, um eine zweite umgewandelte Sequenz von Bearbeitungen zu produzieren; und das Senden der ersten transformierten Sequenz der umgewandelten Bearbeitungen an den zweiten Teilnehmer und der Sequenz der zweiten umgewandelten Sequenz von Bearbeitungen an den ersten Teilnehmer; das Anwenden der ersten Sequenz von Bearbeitungen gefolgt von der zweiten umgewandelten Sequenz von Bearbeitungen am ersten Teilnehmer auf die entsprechende Inhaltseinheit der Konversationen erzeugt das gleiche Ergebnis wie die Anwendung der zweiten Sequenz von Bearbeitungen gefolgt von der ersten umgewandelten Sequenz von Bearbeitungen am zweiten Teilnehmer auf die entsprechende Inhaltseinheit der Konversation.
  14. Computerlesbares Speichermedium nach Anspruch 13, worin die vorbestimmten Konfliktkriterien erfüllt werden, wenn eine oder mehrere der folgenden Bedingungen erkannt werden: das Durchführen der ersten zusammengeführten Sequenz von Bearbeitungen würde die Position von mindestens einem Bearbeitungsvorgang in der zweiten zusammengeführten Sequenz von Bearbeitungen ändern; das Durchführen der zweiten zusammengeführten Sequenz von Bearbeitungen würde die Position von mindestens einem Bearbeitungsvorgang in der ersten zusammengeführten Sequenz von Bearbeitungen ändern; die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen umfassen überlappende Löschvorgänge; und die erste Sequenz von Bearbeitungen und die zweite Sequenz von Bearbeitungen umfassen Bearbeitungsvorgänge, die das gleiche Wort in der entsprechenden Inhaltseinheit der Konversation ändern würden.
  15. Computerlesbares Speichermedium nach Anspruch 13 oder 14, worin die Umwandlung der ersten zusammengeführten Sequenz von Bearbeitungen eine Position innerhalb der entsprechenden Inhaltseinheit von mindestens einer Bearbeitung in der ersten zusammengeführten Sequenz von Bearbeitungen ändert.
  16. Computerlesbares Speichermedium nach irgendeinem der Ansprüche 13–15, worin, wenn die ersten und zweiten zusammengeführten Bearbeitungen das Überlappen mit Löschvorgängen umfassen, das Umwandeln der ersten zusammengeführten Sequenz von Bearbeitungen den entsprechenden Löschvorgang der ersten zusammengeführten Sequenz von Bearbeitungen verändert und so einen umgewandelten Löschvorgang produziert, der weniger Elemente der jeweiligen Inhaltseinheit löscht als der entsprechende Löschvorgang der ersten zusammengeführten Sequenz von Bearbeitungen.
  17. Computerlesbares Speichermedium nach irgendeinem der Ansprüche 13–16, worin, wenn die ersten und zweiten zusammengeführten Sequenzen von Bearbeitungen überlappende Verfahren umfassen, einschließlich einen redundanten Vorgang, umfasst die zuerst umgewandelte Sequenz von Bearbeitungen den redundanten Vorgang nicht.
  18. Computerlesbares Speichermedium nach irgendeinem der Ansprüche 13–17, die weiterhin das Verknüpfen einer ersten Versionsnummer mit der entsprechenden Inhaltseinheit vor der Bearbeitung der ersten Inhaltseinheit mit der ersten Sequenz von Bearbeitungen und der zweiten Sequenz von Bearbeitungen umfasst.
  19. Computerlesbares Speichermedium nach Anspruch 18, worin bei der Aktualisierung der entsprechenden Inhaltseinheit bei der ersten Sequenz von Bearbeitungen und der zweiten Sequenz von Bearbeitungen eine zweite Versionsnummer mit der entsprechenden aktualisierten Inhaltseinheit verknüpft wird.
  20. Computerlesbares Speichermedium nach Anspruch 19, das des Weiteren das Verknüpfen von eindeutigen Zeitstempeln mit der ersten und zweiten Versionsnummer umfasst.
  21. Computerlesbares Speichermedium nach irgendeinem der Ansprüche 13–20, worin die erste Sequenz von Bearbeitungen einen Textbearbeitungsvorgang und einen XML-Bearbeitungsvorgang umfasst.
  22. Serversystem, das Folgendes umfasst: einen Prozessor oder mehrere Prozessoren; Speicher; und ein oder mehrere Programme, die im Speicher für die Ausführung durch einen oder mehrere Prozesse gespeichert sind, die eines oder mehrere Programme, die Anweisungen für das Hosten einer Vielzahl von Konversationen enthalten, einschließlich Hosten, für eine entsprechende Konversation: das Empfangen einer Sequenz von ersten Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Client, verwendet von einem ersten Teilnehmer an der Konversation und das Empfangen einer Sequenz von zweiten Bearbeitungen der gleichen entsprechenden Inhaltseinheit von einem zweiten Client, verwendet von einem zweiten Teilnehmer an der Konversation während sich überlappenden Zeiträumen; das Reagieren auf das Feststellen, dass die Sequenz von ersten Bearbeitungen und die Sequenz von zweiten Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es Bearbeitungen in der Sequenz der ersten Bearbeitungen umwandelt, um eine Sequenz von ersten umgewandelten Bearbeitungen produziert und Bearbeitungen in der Sequenz der zweiten Bearbeitungen umwandelt, um eine Sequenz von zweiten umgewandelten Bearbeitungen zu produzieren; worin das Umwandeln am Serversystem Folgendes berücksichtigt (A) Bearbeitungen an der Inhaltseinheit, die bei den ersten und zweiten Client durchgeführt wurden, (B) sekundäre Umwandlungen der ersten umgewandelten Bearbeitungen, die beim zweiten Client generiert wurden, um Konflikte zwischen den ersten umgewandelten Bearbeitungen und den Bearbeitungen zu lösen, die beim zweiten Client vorgenommen wurden, in eine entsprechende Kopie der Inhaltseinheit beim zweiten Client, und (C) sekundäre Umwandlungen der zweiten umgewandelten Bearbeitungen, die beim ersten Client generiert wurden, um Konflikte zwischen den zweiten umgewandelten Bearbeitungen und den Bearbeitungen zu lösen, die beim ersten Client vorgenommen wurden, in eine entsprechende Kopie der Inhaltseinheit beim ersten Client; und das Senden der Sequenz der ersten umgewandelten Bearbeitungen an den zweiten Client und der Sequenz der zweiten umgewandelten Bearbeitungen an den ersten Client; worin ein konsistenter Konversationszustand am Serversystem und bei den ersten und zweiten Clients resultiert aus der Umwandlung, von den sekundären Umwandlungen, die beim zweiten und ersten Client generiert wurden – von der Anwendung auf eine entsprechende Kopie der Inhaltseinheit an den zweiten Client-Bearbeitungen entsprechend der umgewandelten Sequenz der ersten Bearbeitungen und der zweiten Umwandlungen, die am zweiten Client generiert wurden, und vom Anwenden auf eine entsprechende Kopie der Inhaltseinheit an den ersten Client-Bearbeitungen, entsprechend der umgewandelten Sequenz der sekundären Bearbeitungen und den sekundären Umwandlungen, die am ersten Client generiert wurden.
  23. Computerlesbares Speichermedium, in dem ein oder mehrere Programme gespeichert sind, die zur Ausführung durch einen oder mehrere Prozesse eines Serversystems konfiguriert sind, wobei ein oder mehrere Programme Anweisungen umfassen, die bei ihrer Ausführung Folgendes im Serversystem bewirken: das Speichern von Daten, die eine Vielzahl von Konversationen repräsentieren, einschließlich einer entsprechenden Konversation; das Empfangen einer Sequenz von ersten Bearbeitungen einer entsprechenden Inhaltseinheit der Konversation von einem ersten Client, verwendet von einem ersten Teilnehmer an der Konversation und das Empfangen einer Sequenz von zweiten Bearbeitungen der gleichen entsprechenden Inhaltseinheit von einem zweiten Client, verwendet von einem zweiten Teilnehmer an der Konversation während sich überlappenden Zeiträumen; das Reagieren auf das Feststellen, dass die Sequenz von ersten Bearbeitungen und die Sequenz von zweiten Bearbeitungen die vordefinierten Konfliktkriterien erfüllen, indem es Bearbeitungen in der Sequenz der ersten Bearbeitungen umwandelt, um eine Sequenz von ersten umgewandelten Bearbeitungen produziert und Bearbeitungen in der Sequenz der zweiten Bearbeitungen umwandelt, um eine Sequenz von zweiten umgewandelten Bearbeitungen zu produzieren; worin das Umwandeln am Serversystem Folgendes berücksichtigt: (A) Das Bearbeiten an der Inhaltseinheit, die bei den ersten und zweiten Client durchgeführt wurden, (B) sekundäre Umwandlungen der ersten umgewandelten Bearbeitungen, die beim zweiten Client generiert wurden, um Konflikte zwischen den ersten umgewandelten Bearbeitungen und den Bearbeitungen zu lösen, die beim zweiten Client vorgenommen wurden, in eine entsprechende Kopie der Inhaltseinheit beim zweiten Client, und (C) sekundäre Umwandlungen der zweiten umgewandelten Bearbeitungen, die beim ersten Client generiert wurden, um Konflikte zwischen den zweiten umgewandelten Bearbeitungen und den Bearbeitungen zu lösen, die beim ersten Client vorgenommen wurden, in eine entsprechende Kopie der Inhaltseinheit beim ersten Client; und Senden der Sequenz von ersten umgewandelten Bearbeitungen an den zweiten Client sowie das Senden der Sequenz von zweiten umgewandelten Bearbeitungen an den ersten Client; worin ein konsistenter Konversationszustand am Serversystem und bei den ersten und zweiten Clients resultiert aus der Umwandlung, von den sekundären Umwandlungen, die beim zweiten und ersten Client generiert wurden – von der Anwendung auf eine entsprechende Kopie der Inhaltseinheit an den zweiten Client-Bearbeitungen entsprechend der umgewandelten Sequenz der ersten Bearbeitungen und der zweiten Umwandlungen, die am zweiten Client generiert wurden, und vom Anwenden auf eine entsprechende Kopie der Inhaltseinheit an den ersten Client-Bearbeitungen, entsprechend der umgewandelten Sequenz der sekundären Bearbeitungen und den sekundären Umwandlungen, die am ersten Client generiert wurden.
DE202010018483.5U 2009-03-23 2010-03-23 System zum Zusammenführen von Bearbeitungen für eine Konversation in einem gehosteten Konversationssystem Expired - Lifetime DE202010018483U1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16264209P 2009-03-23 2009-03-23
US61/162,642 2009-03-23
US12/729,107 US9294421B2 (en) 2009-03-23 2010-03-22 System and method for merging edits for a conversation in a hosted conversation system
US12/729,107 2010-03-22

Publications (1)

Publication Number Publication Date
DE202010018483U1 true DE202010018483U1 (de) 2017-01-19

Family

ID=42738566

Family Applications (3)

Application Number Title Priority Date Filing Date
DE202010018482.7U Expired - Lifetime DE202010018482U1 (de) 2009-03-23 2010-03-23 Bereitstellung eines Zugangs zu einer Unterhaltung in einem gehosteten Unterhaltungssystem
DE202010018484.3U Expired - Lifetime DE202010018484U1 (de) 2009-03-23 2010-03-23 System für die Bearbeitung eines Gesprächs in einem gehosteten Gesprächssystem
DE202010018483.5U Expired - Lifetime DE202010018483U1 (de) 2009-03-23 2010-03-23 System zum Zusammenführen von Bearbeitungen für eine Konversation in einem gehosteten Konversationssystem

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE202010018482.7U Expired - Lifetime DE202010018482U1 (de) 2009-03-23 2010-03-23 Bereitstellung eines Zugangs zu einer Unterhaltung in einem gehosteten Unterhaltungssystem
DE202010018484.3U Expired - Lifetime DE202010018484U1 (de) 2009-03-23 2010-03-23 System für die Bearbeitung eines Gesprächs in einem gehosteten Gesprächssystem

Country Status (6)

Country Link
US (5) US8639762B2 (de)
EP (3) EP2411924B1 (de)
KR (3) KR20120039513A (de)
CN (3) CN102388377B (de)
DE (3) DE202010018482U1 (de)
WO (3) WO2010111243A2 (de)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814155B2 (en) 2004-03-31 2010-10-12 Google Inc. Email conversation management system
US7269621B2 (en) 2004-03-31 2007-09-11 Google Inc. Method system and graphical user interface for dynamically updating transmission characteristics in a web mail reply
US7912904B2 (en) 2004-03-31 2011-03-22 Google Inc. Email system with conversation-centric user interface
US9819624B2 (en) 2004-03-31 2017-11-14 Google Inc. Displaying conversations in a conversation-based email system
US7979501B1 (en) 2004-08-06 2011-07-12 Google Inc. Enhanced message display
US8102973B2 (en) * 2005-02-22 2012-01-24 Raytheon Bbn Technologies Corp. Systems and methods for presenting end to end calls and associated information
US8434093B2 (en) 2008-08-07 2013-04-30 Code Systems Corporation Method and system for virtualization of software applications
US8776038B2 (en) * 2008-08-07 2014-07-08 Code Systems Corporation Method and system for configuration of virtualized software applications
US8812961B2 (en) * 2009-05-27 2014-08-19 Novell, Inc. Dynamic collaborative techniques
US8793319B2 (en) * 2009-07-13 2014-07-29 Microsoft Corporation Electronic message organization via social groups
US9117203B2 (en) * 2009-09-01 2015-08-25 Nokia Technologies Oy Method and apparatus for augmented social networking messaging
US8521823B1 (en) 2009-09-04 2013-08-27 Google Inc. System and method for targeting information based on message content in a reply
US8954958B2 (en) 2010-01-11 2015-02-10 Code Systems Corporation Method of configuring a virtual application
US9104517B2 (en) * 2010-01-27 2015-08-11 Code Systems Corporation System for downloading and executing a virtual application
US8959183B2 (en) * 2010-01-27 2015-02-17 Code Systems Corporation System for downloading and executing a virtual application
US9229748B2 (en) * 2010-01-29 2016-01-05 Code Systems Corporation Method and system for improving startup performance and interoperability of a virtual application
US9390188B2 (en) * 2010-04-12 2016-07-12 Flow Search Corp. Methods and devices for information exchange and routing
CA2795917A1 (en) 2010-04-12 2011-10-20 Google Inc. Real-time collaboration in a hosted word processor
US20110252339A1 (en) 2010-04-12 2011-10-13 Google Inc. Collaborative Cursors in a Hosted Word Processor
US8763009B2 (en) 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US20130298040A1 (en) * 2010-04-30 2013-11-07 American Teleconferencing Services, Ltd. Systems, Methods, and Computer Programs for Providing Simultaneous Online Conferences
KR20110126421A (ko) * 2010-05-17 2011-11-23 삼성전자주식회사 메시징 서비스에서 그룹별 메시지 대화 제공 방법 및 장치
US9380011B2 (en) 2010-05-28 2016-06-28 Google Inc. Participant-specific markup
US9542091B2 (en) 2010-06-04 2017-01-10 Apple Inc. Device, method, and graphical user interface for navigating through a user interface using a dynamic object selection indicator
US9218359B2 (en) 2010-07-02 2015-12-22 Code Systems Corporation Method and system for profiling virtual application resource utilization patterns by executing virtualized application
US8402041B2 (en) * 2010-07-07 2013-03-19 International Business Machines Corporation Analytics of historical conversations in relation to present communication
US9047584B2 (en) * 2010-09-16 2015-06-02 Facebook, Inc. Web-based user interface tool for social network group collaboration
US9021015B2 (en) 2010-10-18 2015-04-28 Code Systems Corporation Method and system for publishing virtual applications to a web server
US9209976B2 (en) 2010-10-29 2015-12-08 Code Systems Corporation Method and system for restricting execution of virtual applications to a managed process environment
US8700986B1 (en) 2011-03-18 2014-04-15 Google Inc. System and method for displaying a document containing footnotes
US8566708B1 (en) 2011-01-13 2013-10-22 Google Inc. Merging electronic document redraws
US20120197971A1 (en) * 2011-02-01 2012-08-02 Shiarng Llc Enhanced web-browsing system and method
US8510266B1 (en) 2011-03-03 2013-08-13 Google Inc. System and method for providing online data management services
WO2012129336A1 (en) * 2011-03-21 2012-09-27 Vincita Networks, Inc. Methods, systems, and media for managing conversations relating to content
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
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US8583654B2 (en) 2011-07-27 2013-11-12 Google Inc. Indexing quoted text in messages in conversations to support advanced conversation-based searching
WO2013016047A2 (en) * 2011-07-27 2013-01-31 Google Inc. Enabling search for conversation with two messages each having a query term
KR20130015472A (ko) * 2011-08-03 2013-02-14 삼성전자주식회사 디스플레이장치, 그 제어방법 및 서버
US9401884B2 (en) * 2011-08-26 2016-07-26 Sap Se Conversation explorer with split navigation user interface
US8484561B1 (en) * 2011-09-02 2013-07-09 Google Inc. System and method for updating an object instance based on instructions received from multiple devices
US9336137B2 (en) 2011-09-02 2016-05-10 Google Inc. System and method for performing data management in a collaborative development environment
CN103078781A (zh) * 2011-10-25 2013-05-01 国际商业机器公司 用于即时消息系统的方法和即时消息系统
US8949357B2 (en) * 2011-10-28 2015-02-03 Blether Labs LLC Ad hoc group chat using a social networking service
US8738706B1 (en) 2011-11-16 2014-05-27 Google Inc. Systems and methods for collaborative document editing
US8793389B2 (en) * 2011-12-20 2014-07-29 Qualcomm Incorporated Exchanging a compressed version of previously communicated session information in a communications system
US8825778B2 (en) 2012-01-18 2014-09-02 International Business Machines Corporation Selective display of past instant messages
US20140310365A1 (en) * 2012-01-31 2014-10-16 Global Relay Communications Inc. System and Method for Tracking Messages in a Messaging Service
JP6064367B2 (ja) * 2012-05-18 2017-01-25 株式会社リコー 伝送管理システム、伝送システム、及び伝送管理システム用プログラム
US10210480B2 (en) 2012-05-31 2019-02-19 Apple Inc. Avoiding a redundant display of a notification on multiple user devices
US9286276B2 (en) * 2012-06-11 2016-03-15 Google Inc. System and method of document embedding in collaborative editors
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
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
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
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
TW201430593A (zh) * 2013-01-25 2014-08-01 Hon Hai Prec Ind Co Ltd 多國語言網頁轉換系統及方法
US9020120B2 (en) 2013-02-06 2015-04-28 Avaya Inc. Timeline interface for multi-modal collaboration
US20140244618A1 (en) * 2013-02-26 2014-08-28 Dropbox, Inc. Search interface for an online content management system
US9460073B2 (en) * 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US9727544B2 (en) * 2013-05-06 2017-08-08 Dropbox, Inc. Animating edits to documents
US20150088690A1 (en) * 2013-09-23 2015-03-26 MobilePoint Corporation Distributing and using bookmark menus to present information
CN110086704B (zh) * 2014-02-11 2022-03-22 阿里巴巴集团控股有限公司 一种即时通讯未读消息的同步方法和系统
CN104935450B (zh) * 2014-03-19 2018-12-25 新华三技术有限公司 一种访问会话管理方法及其装置
US10503374B1 (en) * 2014-04-05 2019-12-10 Twitter, Inc. Providing content for broadcast by a messaging platform
TWI528269B (zh) * 2014-04-30 2016-04-01 拓集科技股份有限公司 具有組織化之資訊呈現之通訊管理方法及系統,及其電腦程式產品
US9898162B2 (en) 2014-05-30 2018-02-20 Apple Inc. Swiping functions for messaging applications
US9971500B2 (en) 2014-06-01 2018-05-15 Apple Inc. Displaying options, assigning notification, ignoring messages, and simultaneous user interface displays in a messaging application
CN104142784B (zh) * 2014-06-20 2017-07-07 腾讯科技(深圳)有限公司 输入内容的临时存储方法和装置
EP3206341B1 (de) * 2014-11-04 2021-03-17 Huawei Technologies Co., Ltd. Verfahren, vorrichtung und endgerätevorrichtung zur anzeige von nachrichten
US10044662B1 (en) 2014-11-18 2018-08-07 Amazon Technologies, Inc. Email conversation linking
US11902232B1 (en) 2014-11-18 2024-02-13 Amazon Technologies, Inc. Email conversation linking
US11093125B1 (en) 2014-12-09 2021-08-17 Amazon Technologies, Inc. Email conversation linking
KR101622871B1 (ko) * 2015-02-03 2016-05-19 라인 가부시키가이샤 메신저의 대화내용을 관리하는 방법과 시스템 및 기록 매체
US10027615B2 (en) 2015-02-13 2018-07-17 International Business Machines Corporation Personal communication data management in multilingual mobile device
US10057202B2 (en) 2015-02-13 2018-08-21 International Business Machines Corporation Personal communication data management in multilingual mobile device
EP3065190A1 (de) 2015-03-02 2016-09-07 Ecole Polytechnique Fédérale de Lausanne (EPFL) Kleinmoleküliges Lochtransportmaterial für optoelektronische und photoelektrochemische Vorrichtungen
US9912618B2 (en) 2015-03-10 2018-03-06 International Business Machines Corporation Allow hidden and silent observers in a group conversation
US9998416B2 (en) 2015-03-25 2018-06-12 International Business Machines Corporation Selecting subsets of participants in electronic message threads
KR20160136837A (ko) * 2015-05-21 2016-11-30 라인 가부시키가이샤 메신저를 통한 컨텐츠 제공 방법과 시스템 및 기록 매체
US10360287B2 (en) 2015-05-22 2019-07-23 Microsoft Technology Licensing, Llc Unified messaging platform and interface for providing user callouts
US20160344677A1 (en) * 2015-05-22 2016-11-24 Microsoft Technology Licensing, Llc Unified messaging platform for providing interactive semantic objects
US20170109351A1 (en) * 2015-10-16 2017-04-20 Avaya Inc. Stateful tags
US10489506B2 (en) 2016-05-20 2019-11-26 Blackberry Limited Message correction and updating system and method, and associated user interface operation
US10739972B2 (en) 2016-06-10 2020-08-11 Apple Inc. Device, method, and graphical user interface for managing electronic communications
KR101882685B1 (ko) * 2016-07-29 2018-08-24 주식회사 스패로우 클라우드 기반의 서비스 제공 방법
WO2018026033A1 (ko) * 2016-08-04 2018-02-08 주식회사 한글과컴퓨터 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법
US9979823B2 (en) 2016-08-29 2018-05-22 Genesys Telecommunications Laboratories, Inc. Contact center system and method for advanced outbound communications to a contact group
WO2018134878A1 (ja) 2017-01-17 2018-07-26 初実 田中 多言語コミュニケーションシステムおよび多言語コミュニケーション提供方法
US11010601B2 (en) 2017-02-14 2021-05-18 Microsoft Technology Licensing, Llc Intelligent assistant device communicating non-verbal cues
US11100384B2 (en) 2017-02-14 2021-08-24 Microsoft Technology Licensing, Llc Intelligent device user interactions
US10467510B2 (en) 2017-02-14 2019-11-05 Microsoft Technology Licensing, Llc Intelligent assistant
CN108628702B (zh) * 2017-03-24 2021-10-15 北京京东尚科信息技术有限公司 聊天记录的备忘方法、装置、电子设备和存储介质
TWI647609B (zh) * 2017-04-14 2019-01-11 緯創資通股份有限公司 即時通訊方法、系統及電子裝置與伺服器
KR101880507B1 (ko) * 2017-04-21 2018-07-20 주식회사 한글과컴퓨터 웹 문서에 삽입된 도형의 크기 조정을 지원하는 클라이언트 단말 장치 및 그 동작 방법
KR101880508B1 (ko) * 2017-04-27 2018-07-20 주식회사 한글과컴퓨터 웹 문서에서 목록 생성을 지원하는 웹 문서 편집 지원 장치 및 방법
US10691733B2 (en) 2017-07-26 2020-06-23 Rovi Guides, Inc. Methods and systems for replying to queries based on indexed conversations and context
EP3628082A1 (de) * 2017-07-26 2020-04-01 Rovi Guides, Inc. Verfahren und systeme zur wiedergabe von indizierten gesprächen basierend auf der anwesenheit anderer personen
US10817553B2 (en) 2017-07-26 2020-10-27 Rovi Guides, Inc. Methods and systems for playing back indexed conversations based on the presence of other people
CN110678856B (zh) * 2017-10-20 2023-06-27 谷歌有限责任公司 调解树结构数据的副本之间的冲突
US20190207899A1 (en) * 2017-12-28 2019-07-04 Facebook, Inc. Techniques for messaging conversation indexing
US11431662B2 (en) 2017-12-28 2022-08-30 Meta Platforms, Inc. Techniques for message deduplication
US10728187B2 (en) 2018-04-05 2020-07-28 Global Relay Communications Inc. System and method for processing messages with organization and personal interaction controls
US11055426B2 (en) * 2018-07-16 2021-07-06 Faro Technologies, Inc. Securing data acquired by coordinate measurement devices
CN109828957A (zh) * 2019-01-28 2019-05-31 深圳市小满科技有限公司 信息显示方法、装置、电子设备及存储介质
US10944711B2 (en) * 2019-03-28 2021-03-09 Microsoft Technology Licensing, Llc Paginated method to create decision tree conversation
CA3140402A1 (en) * 2019-05-17 2020-11-26 Slice Legal Inc. Conversational user interface system and method of operation
CN110493122B (zh) * 2019-08-29 2022-01-28 北京拉勾网络技术有限公司 一种会话信息的同步方法、装置、计算设备及存储介质
JP2021043719A (ja) * 2019-09-11 2021-03-18 富士ゼロックス株式会社 情報処理装置及びプログラム
CN110752984B (zh) * 2019-10-24 2021-10-15 北京字节跳动网络技术有限公司 一种显示在线文档的方法、装置、电子设备及存储介质
US11316806B1 (en) * 2020-01-28 2022-04-26 Snap Inc. Bulk message deletion
WO2022152403A1 (en) * 2021-01-18 2022-07-21 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for handling a teleconference
US11316818B1 (en) 2021-08-26 2022-04-26 International Business Machines Corporation Context-based consolidation of communications across different communication platforms
US11943190B2 (en) * 2022-06-09 2024-03-26 Microsoft Technology Licensing, Llc Fork and return point selection for sidebar communication threads

Family Cites Families (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US177744A (en) * 1876-05-23 Improvement in concrete pavements
US108402A (en) * 1870-10-18 Improvement in railway-chairs and clamps
US233811A (en) * 1880-10-26 Half to a
US271806A (en) * 1883-02-06 Baker s oven
US277210A (en) * 1883-05-08 Fastener
US306185A (en) * 1884-10-07 simonson
US250506A (en) * 1881-12-06 John w
US228555A (en) * 1880-06-08 f pike
US169269A (en) * 1875-10-26 Improvement in rotary steam-engines
US5671428A (en) 1991-08-28 1997-09-23 Kabushiki Kaisha Toshiba Collaborative document processing system with version and comment management
US5532715A (en) 1991-10-16 1996-07-02 International Business Machines Corporation Visually aging scroll bar
US5900872A (en) * 1995-05-05 1999-05-04 Apple Computer, Inc. Method and apparatus for controlling the tracking of movable control elements in a graphical user interface
US5867995A (en) * 1995-07-14 1999-02-09 Energy Controls International, Inc. Electronic control of refrigeration systems
US5712995A (en) * 1995-09-20 1998-01-27 Galileo Frames, Inc. Non-overlapping tiling apparatus and method for multiple window displays
US6006239A (en) 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5867678A (en) * 1996-12-16 1999-02-02 International Business Machines Corporation Method and system for searching and retrieving specific types of objects contained within a compound document
US6181736B1 (en) * 1997-03-25 2001-01-30 Nxi Communications, Inc. Network communication system
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
US6253202B1 (en) 1998-09-18 2001-06-26 Tacit Knowledge Systems, Inc. Method, system and apparatus for authorizing access by a first user to a knowledge profile of a second user responsive to an access request from the first user
US6590594B2 (en) * 1999-03-25 2003-07-08 International Business Machines Corporation Window scroll-bar
US6624826B1 (en) 1999-09-28 2003-09-23 Ricoh Co., Ltd. Method and apparatus for generating visual representations for audio documents
US6957395B1 (en) * 2000-01-04 2005-10-18 Apple Computer, Inc. Computer interface having a single window mode of operation
US6754677B1 (en) * 2000-05-30 2004-06-22 Outlooksoft Corporation Method and system for facilitating information exchange
US7346848B1 (en) * 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US6988241B1 (en) * 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
US6898760B2 (en) * 2001-01-05 2005-05-24 Microsoft Corporation Reporting status of external references in a spreadsheet without updating
US7222156B2 (en) * 2001-01-25 2007-05-22 Microsoft Corporation Integrating collaborative messaging into an electronic mail program
US6778192B2 (en) 2001-04-05 2004-08-17 International Business Machines Corporation System and method for creating markers on scroll bars of a graphical user interface
US20020163545A1 (en) 2001-05-01 2002-11-07 Hii Samuel S. Method of previewing web page content while interacting with multiple web page controls
JP2003018523A (ja) * 2001-07-03 2003-01-17 Canon Inc 情報管理システム、情報管理方法、撮像装置、撮像装置の制御方法、プログラム、及び記憶媒体
ATE459043T1 (de) * 2001-07-27 2010-03-15 Sap Ag Verfahren und rechnersystem zum bereitstellen und verarbeiten einer beschreibung einer menschschnittstelle
US7770130B1 (en) * 2002-02-07 2010-08-03 Viktor Kaptelinin Non-distracting temporary visual clues for scrolling
US7478170B2 (en) * 2002-03-05 2009-01-13 Sun Microsystems, Inc. Generic infrastructure for converting documents between formats with merge capabilities
US7188140B1 (en) 2002-03-13 2007-03-06 At&T Corp. System and method for providing enhanced persistent communications
US7228317B1 (en) * 2002-06-18 2007-06-05 Yahoo! Inc. Method and apparatus for accelerating and improving access to network files
US7111044B2 (en) * 2002-07-17 2006-09-19 Fastmobile, Inc. Method and system for displaying group chat sessions on wireless mobile terminals
US7058682B2 (en) 2002-07-25 2006-06-06 International Business Machines Corporation Instant messaging blind join
TW594573B (en) * 2002-12-02 2004-06-21 Tatung Corp Method for building up customized desktop of web page
US7185285B2 (en) * 2003-02-19 2007-02-27 Microsoft Corporation User interface and content enhancements for real-time communication
US7380218B2 (en) * 2003-03-27 2008-05-27 International Business Machines Corporation Method and apparatus for managing windows
JP2007502092A (ja) 2003-05-16 2007-02-01 ピカサ インコーポレイテッド ネットワークを通じた画像共有のための方法及びシステム
CN1997980B (zh) 2003-05-16 2011-07-06 谷歌公司 网络化聊天和媒体共享系统和方法
US7299450B2 (en) 2003-06-17 2007-11-20 Microsoft Corporation Undoing changes in a software configuration management system
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US7280776B2 (en) * 2003-08-25 2007-10-09 Lexmark International, Inc. Method and apparatus to control waste toner collection in an image forming apparatus
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
US20080126491A1 (en) 2004-05-14 2008-05-29 Koninklijke Philips Electronics, N.V. Method for Transmitting Messages from a Sender to a Recipient, a Messaging System and Message Converting Means
US7213199B2 (en) * 2004-07-16 2007-05-01 Cognos Incorporated Spreadsheet user-interface for an enterprise planning system having multi-dimensional data store
US20060026502A1 (en) * 2004-07-28 2006-02-02 Koushik Dutta Document collaboration system
US20060053194A1 (en) 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US20060080432A1 (en) * 2004-09-03 2006-04-13 Spataro Jared M Systems and methods for collaboration
US20060075044A1 (en) * 2004-09-30 2006-04-06 Fox Kevin D System and method for electronic contact list-based search and display
US20060117247A1 (en) * 2004-11-30 2006-06-01 Fite William R Web based data collaboration tool
US7665031B2 (en) * 2004-12-08 2010-02-16 Microsoft Corporation Method and system of taskbar button interfaces
US7140536B2 (en) * 2004-12-20 2006-11-28 Microsoft Corporation Method and system for highlighting modified content in a shared document
US7908247B2 (en) * 2004-12-21 2011-03-15 Nextpage, Inc. Storage-and transport-independent collaborative document-management system
US7593943B2 (en) * 2005-01-14 2009-09-22 Microsoft Corporation Method and system for synchronizing multiple user revisions to a shared object
US7426697B2 (en) * 2005-01-18 2008-09-16 Microsoft Corporation Multi-application tabbing system
US20060176831A1 (en) 2005-02-07 2006-08-10 Greenberg Joel K Methods and apparatuses for selecting users to join a dynamic network conversation
US20060212583A1 (en) * 2005-03-17 2006-09-21 Beadle Bruce A Distributing messaging session logs to users entering an already ongoing messaging session
KR100708135B1 (ko) 2005-05-25 2007-04-17 삼성전자주식회사 항목의 블록화를 이용한 스크롤 방법 및 장치
US7444328B2 (en) 2005-06-06 2008-10-28 Microsoft Corporation Keyword-driven assistance
US7587395B2 (en) * 2005-07-27 2009-09-08 John Harney System and method for providing profile matching with an unstructured document
US7734589B1 (en) * 2005-09-16 2010-06-08 Qurio Holdings, Inc. System and method for optimizing data uploading in a network based media sharing system
US8688673B2 (en) * 2005-09-27 2014-04-01 Sarkar Pte Ltd System for communication and collaboration
US7870493B2 (en) * 2005-10-03 2011-01-11 Microsoft Corporation Distributed clipboard
WO2007044806A2 (en) * 2005-10-11 2007-04-19 Aol Llc Ordering of conversations based on monitored recipient user interaction with corresponding electronic messages
US7774421B2 (en) 2005-10-14 2010-08-10 International Business Machines Corporation Mitigating address book weaknesses that permit the sending of e-mail to wrong addresses
US20070124387A1 (en) * 2005-11-22 2007-05-31 Yahoo! Inc. Previous communication updating in instant messaging
GB0523887D0 (en) 2005-11-24 2006-01-04 Ibm Methods, apparatuses and computer programs for achieving text summarization
US20070124737A1 (en) 2005-11-30 2007-05-31 Ava Mobile, Inc. System, method, and computer program product for concurrent collaboration of media
ITMI20052290A1 (it) 2005-11-30 2007-06-01 Pasqua Roberto Della Servizio di messaggistica istantanea con interfaccia utente minimizzata
US7774703B2 (en) 2006-02-09 2010-08-10 Microsoft Corporation Virtual shadow awareness for multi-user editors
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
US7657523B2 (en) 2006-03-09 2010-02-02 Customerforce.Com Ranking search results presented to on-line users as a function of perspectives of relationships trusted by the users
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
US7503007B2 (en) 2006-05-16 2009-03-10 International Business Machines Corporation Context enhanced messaging and collaboration system
US20070294428A1 (en) 2006-06-19 2007-12-20 Ido Guy Method and System for Email Messaging
US20080005269A1 (en) 2006-06-29 2008-01-03 Knighton Mark S Method and apparatus to share high quality images in a teleconference
US8121263B2 (en) 2006-07-21 2012-02-21 Google Inc. Method and system for integrating voicemail and electronic messaging
US7985134B2 (en) * 2006-07-31 2011-07-26 Rovi Guides, Inc. Systems and methods for providing enhanced sports watching media guidance
US20080046512A1 (en) * 2006-08-16 2008-02-21 International Business Machines Corporation Method and system for enhanced electronic communications
WO2008032157A2 (en) * 2006-09-08 2008-03-20 Pfizer Products Inc. Synthesis of 2-(pyridin-2-ylamino)-pyrido[2,3-d]pyrimidin-7-ones
US8893038B2 (en) 2006-10-03 2014-11-18 International Business Machines Corporation Graphical association of task bar entries with corresponding desktop locations
US8954500B2 (en) 2008-01-04 2015-02-10 Yahoo! Inc. Identifying and employing social network relationships
CN101193070B (zh) 2006-12-13 2010-08-18 腾讯科技(深圳)有限公司 即时通信系统、即时通信客户端及即时通信方法
US7716263B2 (en) * 2006-12-15 2010-05-11 International Business Machines Corporation Scalable method and system for providing real time indications of currently open documents
US8554868B2 (en) 2007-01-05 2013-10-08 Yahoo! Inc. Simultaneous sharing communication interface
US7900142B2 (en) * 2007-01-15 2011-03-01 Microsoft Corporation Selective undo of editing operations performed on data objects
US8201086B2 (en) 2007-01-18 2012-06-12 International Business Machines Corporation Spellchecking electronic documents
US8255824B2 (en) * 2007-01-30 2012-08-28 Oracle International Corporation Toolbar/sidebar browser extension
US20080215588A1 (en) 2007-03-02 2008-09-04 Toshiba Europe Gmbh Electronic object sharing system
US7761409B2 (en) * 2007-04-05 2010-07-20 Palo Alto Research Center Incorporated Method and system for the collaborative analysis of information
US20080285588A1 (en) * 2007-05-16 2008-11-20 Unison Technologies Llc Systems and methods for providing unified collaboration systems with combined communication log
US7933952B2 (en) * 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
US8244710B2 (en) * 2007-08-03 2012-08-14 Oracle International Corporation Method and system for information retrieval using embedded links
US8910067B1 (en) 2007-08-10 2014-12-09 The Clic, Inc. Interactive information display through widgets
US20090043848A1 (en) * 2007-08-11 2009-02-12 Alexander Kordun Method and system for providing collaborative moderation and correction of message history in an instant mesaging session
US20090055483A1 (en) * 2007-08-20 2009-02-26 Rooma Madan Enhanced Collaboration in Instant Messaging
JP2010538356A (ja) * 2007-08-28 2010-12-09 レクシスネクシス グループ 文書検索ツール概要優先権の主張本出願は、2007年8月28日出願の米国仮出願番号第60/935,714号の優先権の利益を主張するものであり、ここに引用することによりその全体が本願明細書に組み込まれるものとする。
US7890570B2 (en) * 2007-09-12 2011-02-15 Citrix Systems, Inc. Methods and systems for providing, by a remote machine, access to graphical data associated with a resource provided by a local machine
US8139495B2 (en) 2007-09-13 2012-03-20 Microsoft Corporation Determining quality of communication
US20090150947A1 (en) 2007-10-05 2009-06-11 Soderstrom Robert W Online search, storage, manipulation, and delivery of video content
JP2009093355A (ja) 2007-10-05 2009-04-30 Sony Corp 情報処理装置、コンテンツ提供サーバ、通信仲介サーバ、情報処理方法、コンテンツ提供方法および通信仲介方法
US8788589B2 (en) 2007-10-12 2014-07-22 Watchitoo, Inc. System and method for coordinating simultaneous edits of shared digital data
US8099512B2 (en) * 2007-10-19 2012-01-17 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
US7756824B2 (en) 2007-10-26 2010-07-13 Microsoft Corporation Spreadsheet collaboration between rich and browser clients
US8825758B2 (en) * 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8214760B2 (en) * 2008-01-16 2012-07-03 Microsoft Corporation Window minimization trigger
US20090192845A1 (en) * 2008-01-30 2009-07-30 Microsoft Corporation Integrated real time collaboration experiences with online workspace
US20090199127A1 (en) 2008-01-31 2009-08-06 Microsoft Corporation Previewing target display areas
US9106630B2 (en) * 2008-02-01 2015-08-11 Mandiant, Llc Method and system for collaboration during an event
US20090228555A1 (en) * 2008-03-08 2009-09-10 International Business Machines Corporation Automated contact list determination based on collaboration history
US20090234876A1 (en) * 2008-03-14 2009-09-17 Timothy Schigel Systems and methods for content sharing
US9436927B2 (en) * 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
US10664889B2 (en) * 2008-04-01 2020-05-26 Certona Corporation System and method for combining and optimizing business strategies
US9507651B2 (en) * 2008-04-28 2016-11-29 Microsoft Technology Licensing, Llc Techniques to modify a document using a latent transfer surface
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US7974948B2 (en) * 2008-05-05 2011-07-05 Microsoft Corporation Automatically capturing and maintaining versions of documents
US8202166B2 (en) 2008-05-05 2012-06-19 Microsoft Corporation Multiple-player collaborative content editing
US7949633B1 (en) * 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US8307066B2 (en) * 2008-06-06 2012-11-06 International Business Machines Corporation Automated digital media content filtration based on relationship monitoring
US7899883B2 (en) * 2008-06-13 2011-03-01 Microsoft Corporation Merging versions of documents using multiple masters
US20090319910A1 (en) * 2008-06-22 2009-12-24 Microsoft Corporation Automatic content and author emphasis for shared data
US8285812B2 (en) 2008-06-27 2012-10-09 Microsoft Corporation Peer-to-peer synchronous content selection
US8255923B2 (en) * 2008-07-08 2012-08-28 Avaya Inc. Shared persistent communication thread
US9245238B2 (en) 2008-07-16 2016-01-26 International Business Machines Corporation Dynamic grouping of email recipients
US8306809B2 (en) * 2008-07-17 2012-11-06 International Business Machines Corporation System and method for suggesting recipients in electronic messages
US20100023557A1 (en) 2008-07-28 2010-01-28 Novell, Inc. System and method to extend a file manager user interface
US8819585B2 (en) 2008-10-27 2014-08-26 Microsoft Corporation Child window surfacing and management
US20100125791A1 (en) * 2008-11-14 2010-05-20 Rebelvox, Llc User interface for a telecommunication and multimedia management system and method
US8972506B2 (en) * 2008-12-15 2015-03-03 Verizon Patent And Licensing Inc. Conversation mapping
US9152644B2 (en) * 2008-12-30 2015-10-06 Novell, Inc. Systems and methods for providing collaborative editing
US20100180218A1 (en) * 2009-01-15 2010-07-15 International Business Machines Corporation Editing metadata in a social network
US9935792B2 (en) * 2009-02-24 2018-04-03 Blackberry Limited System and method for switching between conversations in instant messaging applications
US20100223345A1 (en) * 2009-03-02 2010-09-02 Microsoft Corporation Communications application having conversation and meeting environments
US20100235354A1 (en) * 2009-03-12 2010-09-16 International Business Machines Corporation Collaborative search engine system
US20100235216A1 (en) * 2009-03-16 2010-09-16 Microsoft Corporation Integration of pre-meeting and post-meeting experience into a meeting lifecycle
EP2438571A4 (de) 2009-06-02 2014-04-30 Yahoo Inc Selbstfüllendes adressbuch
US8621387B2 (en) 2009-06-08 2013-12-31 Apple Inc. User interface for multiple display regions
US20110010638A1 (en) * 2009-07-10 2011-01-13 Novell, Inc. Presence-enabled inbox
US20110083079A1 (en) * 2009-10-02 2011-04-07 International Business Machines Corporation Apparatus, system, and method for improved type-ahead functionality in a type-ahead field based on activity of a user within a user interface

Also Published As

Publication number Publication date
US9294421B2 (en) 2016-03-22
WO2010111248A3 (en) 2011-05-26
EP2414946B1 (de) 2021-03-10
EP2414946A4 (de) 2017-06-28
DE202010018482U1 (de) 2017-01-19
US20100241749A1 (en) 2010-09-23
EP2411924A4 (de) 2017-06-21
EP2411924B1 (de) 2020-10-21
CN102388377A (zh) 2012-03-21
CN102388377B (zh) 2014-12-03
US20140222924A1 (en) 2014-08-07
EP2411924A2 (de) 2012-02-01
US8984139B2 (en) 2015-03-17
CN102362270A (zh) 2012-02-22
WO2010111248A2 (en) 2010-09-30
KR20120039513A (ko) 2012-04-25
US8700776B2 (en) 2014-04-15
EP2414947A4 (de) 2017-06-28
CN102362270B (zh) 2015-06-03
WO2010111242A3 (en) 2011-03-17
WO2010111243A2 (en) 2010-09-30
US20100241700A1 (en) 2010-09-23
KR20120039514A (ko) 2012-04-25
KR20120039512A (ko) 2012-04-25
DE202010018484U1 (de) 2017-01-19
EP2414946A2 (de) 2012-02-08
CN102362271A (zh) 2012-02-22
EP2414947B1 (de) 2020-06-03
US8949359B2 (en) 2015-02-03
US8639762B2 (en) 2014-01-28
EP2414947A2 (de) 2012-02-08
US20140108576A1 (en) 2014-04-17
CN102362271B (zh) 2014-04-16
WO2010111242A2 (en) 2010-09-30
US20100241718A1 (en) 2010-09-23
WO2010111243A3 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
DE202010018483U1 (de) System zum Zusammenführen von Bearbeitungen für eine Konversation in einem gehosteten Konversationssystem
US9166939B2 (en) Systems and methods for uploading media content in an instant messaging conversation
US8700719B1 (en) Embedded applications with access to attachments in hosted conversations
US9380011B2 (en) Participant-specific markup
US9026935B1 (en) Application user interface with an interactive overlay
DE60127078T2 (de) Vorrichtung für anhaltende Chatsitzungen
US8510399B1 (en) Automated participants for hosted conversations
DE202011110866U1 (de) Identifizierung von Nachrichtenempfängern
DE202012013447U1 (de) Inline-Benutzeradressierung in Chat- und Dokumentbearbeitungssitzungen
DE102011107994A1 (de) System und Verfahren für kontextbezogene Mehrmodell-Echtzeit-Zusammenarbeit
DE202020005670U1 (de) Abfassen von Mitteilungen sozialer Medien, die sich auf mehrere Mitteilungen beziehen
DE202019106796U1 (de) Elektronisches Ereignismanagementsystem
EP1665744A2 (de) Sichere kommunikation zwischen kommunikationspartnern und anzeige von nachrichten
DE202020005729U1 (de) Aufnahme und Präsentation von Medieninhalt
US11875081B2 (en) Shared screen tools for collaboration
US20230244802A1 (en) Managing permissions for collaborative shared documents
DE102022201862A1 (de) Aktualisierung der teilnehmer von besprechungseinladungen in verschiedenen kalendersystemen
EP3525404A1 (de) Vorrichtung und verfahren zum aufnehmen und verarbeiten und ausgeben von synchronisierten messdaten sowie computerprogrammprodukt und verwendung
US11727190B1 (en) Previews for collaborative documents

Legal Events

Date Code Title Description
R151 Utility model maintained after payment of second maintenance fee after six years
R207 Utility model specification
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: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, 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: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right