-
TECHNISCHES GEBIET
-
Die offenbarten Ausführungsformen beziehen sich im Allgemeinen auf das Verwalten von Benutzeranmeldungen auf einem Server. Insbesondere beziehen sich die offenbarten Ausführungsformen auf Verfahren und Systeme zur Verwendung eines Cookies mit Informationen für mehrfache Benutzernamen, um mehrfache Benutzeranmeldungen über einen Einzelbrowser (bei einem Einzel-Client) auf einem Server unter Verwendung der mehrfachen Benutzernamen zu verwalten.
-
HINTERGRUND
-
Computernetzwerke spielen eine wichtige Rolle in unserem Leben, da mehr Menschen Zugang zu den Computernetzwerken erhalten (z. B. zum Internet) und die Computernetzwerke für mehr Aktivitäten nutzen. Mehr Menschen benutzen zunehmend mehr als ein Konto (z. B. E-Mail-Adressen) für den Zugang zu Ressourcen in den Computernetzwerken.
-
Anmelden ist ein Vorgang, um den Zugriff auf Computersysteme zu kontrollieren, der in der Regel zur Authentifizierung von autorisierten Benutzern beim Zugang zu Computersystemen über Computernetzwerke verwendet wird. Ein Anmeldevorgang kann dazu verwendet werden, Schutz vor dem Zugriff durch unbefugte Benutzer bereitzustellen. Darüber hinaus können mit dem Anmeldevorgang jeweilige Benutzer identifiziert werden, sodass für die jeweiligen Benutzer relevante Informationen bereitgestellt werden können.
-
Cookies in Webbrowsern werden vielfach dazu verwendet, um Anmeldesitzungen über die Computernetzwerke zu verwalten oder zu ermöglichen. Herkömmliche Cookies sind jedoch nicht darauf ausgelegt, mehrfache Anmeldungen (hier manchmal als gleichzeitig aktive Anmeldungen bezeichnet) unter mehrfachen Benutzernamen über einen Einzelbrowser auf einer einzelnen Website zu verwalten. Daher besteht ein Bedarf an einem neuen Verfahren und System zur Verwaltung von mehrfachen Anmeldungen unter mehrfachen Benutzernamen über einen Einzelbrowser auf einer einzelnen Website.
-
ZUSAMMENFASSUNG
-
Eine Reihe von Ausführungsformen (z. B. Server-Systemen, Client-Systemen oder Vorrichtungen und Verfahren zum Betrieb derartiger Systeme oder Vorrichtungen), die die vorstehend beschriebenen Einschränkungen und Nachteile überwinden, werden nachstehend näher erläutert. Diese Ausführungsformen stellen Verfahren, Systeme und grafische Benutzeroberflächen (GUIs) zur Verwendung eines Cookies bereit, um mehrfache Anmeldungen unter mehrfachen Benutzernamen über einen Einzelbrowser zu verwalten bzw. zu ermöglichen und Dokumentinformationen, die einem ausgewählten Benutzernamen entsprechen, zu senden.
-
Wie nachstehend näher erläutert, beinhalten einige Ausführungsformen der Erfindung ein computerimplementiertes Verfahren, das das Empfangen einer Anforderung von Dokumentinformationen von einem jeweiligen Client-System beinhaltet. Das Verfahren beinhaltet ebenfalls das Empfangen eines Cookies vom jeweiligen Client-System, das eine Vielzahl von Benutzernamen identifiziert, die über das jeweilige Client-System auf dem Server-System angemeldet sind. Die Vielzahl von angemeldeten Benutzernamen beinhaltet einen ersten Benutzernamen und einen zweiten Benutzernamen, der sich vom ersten Benutzernamen unterscheidet. Das Verfahren beinhaltet ferner das Umleiten der empfangenen Anforderung an eine Adresse, die einem aus der Vielzahl von angemeldeten Benutzernamen ausgewählten Benutzernamen zugewiesen ist, und das Empfangen der umgeleiteten Anforderung. Das Verfahren beinhaltet als Antwort auf die umgeleitete Anforderung auch das Verarbeiten der Anforderung als eine von dem ausgewählten Benutzernamen ausgehende Anforderung und das Senden von Dokumentinformationen entsprechend der Anforderung des ausgewählten Benutzernamens an das jeweilige Client-System.
-
Computerimplementiertes Verfahren, das das Empfangen einer Anforderung von Dokumentinformationen von einem jeweiligen Client-System beinhaltet. Die Anforderung beinhaltet einen Benutzerschlüssel. Das Verfahren beinhaltet ebenfalls das Empfangen eines Cookies vom jeweiligen Client-System, das eine Vielzahl von Benutzernamen identifiziert, die über das jeweilige Client-System auf dem Server-System angemeldet sind. Die Vielzahl von angemeldeten Benutzernamen beinhaltet einen ersten Benutzernamen und einen zweiten Benutzernamen. Das Verfahren beinhaltet ferner, wenn der Benutzerschlüssel zum ersten Benutzernamen passt, das Senden von dem ersten Benutzernamen entsprechenden Dokumentinformationen an das jeweilige Client-System. Das Verfahren beinhaltet auch, wenn der Benutzerschlüssel zum zweiten Benutzernamen passt, das Senden von dem zweiten Benutzernamen entsprechenden Dokumentinformationen an das jeweilige Client-System.
-
Ein computerimplementiertes Verfahren beinhaltet das Bereitstellen einer Internetseite für den Zugriff auf Dokumentinformationen von einem Server-System für ein jeweiliges Client-System. Die Internetseite beinhaltet ein vom Benutzer wählbares Objekt zur Auswahl eines Benutzernamens aus einer Vielzahl von im Server-System über das jeweilige Client-System angemeldeten Benutzernamen. Das Verfahren beinhaltet auch das Empfangen einer Anforderung von Dokumentinformationen, die einem aus der Vielzahl von Benutzernamen ausgewählten Benutzernamen entsprechen. Das Verfahren beinhaltet ferner als Antwort auf den Empfang der Anforderung das Senden von Dokumentinformationen entsprechend der Anforderung an das jeweilige Client-System.
-
Ein computerimplementiertes Verfahren beinhaltet das Empfangen eines ersten Cookies von einem jeweiligen Client-System, das wenigstens einen ersten Benutzernamen beinhaltet, der über das jeweilige Client-System im Server-System angemeldet ist. Die Anmeldeinformationen für einen zweiten Benutzernahmen werden vom jeweiligen Client-System empfangen. Die Anmeldeinformationen für den zweiten Benutzernamen werden authentifiziert. Wenn die Anmeldeinformationen für den zweiten Benutzernamen authentifiziert sind, wird ein zweites Cookie so generiert, dass das zweite Cookie wenigstens den ersten Benutzernamen und den zweiten Benutzernamen beinhaltet. Das zweite Cookie wird an das jeweilige Client-System gesendet. In einer typischen Implementierung ersetzt das zweite Cookie das erste Cookie in einer Cookie-Datenbank (Cookie Cache) beim jeweiligen Client-System.
-
Ein System umfasst einen oder mehrere Prozessoren für das Ausführen von Programmen und Speicherkapazität für ein oder mehrere Programme zur Ausführung durch den einen oder mehrere Prozessoren, wobei das eine oder mehrere Programme Befehle umfassen, die von dem einen oder mehreren Prozessoren ausgeführt werden, um irgendeine der Ausführungsformen der vorgenannten Verfahren auszuführen.
-
Ein computerlesbares Speichermedium speichert ein oder mehrere Programme, die zur Ausführung durch einen Computer konfiguriert sind, wobei das eine oder mehrere Programme Befehle für die Ausführung irgendeiner der Ausführungsformen der vorgenannten Verfahren umfasst.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Zum besseren Verständnis der vorgenannten Aspekte der Erfindung sowie ihrer zusätzlichen Aspekte und Ausführungsformen wird auf die nachfolgende Beschreibung der Ausführungsformen verwiesen, in Verbindung mit den nachfolgenden Zeichnungen, bei denen die entsprechenden Bezugsnummern auf die entsprechenden Teile in den Figuren Bezug nehmen.
-
1 ist ein Blockdiagramm, das ein exemplarisches verteiltes Computersystem gemäß manchen Ausführungsformen darstellt.
-
2 ist ein Blockdiagramm, das gemäß einigen Ausführungsformen ein Dokumentsystem darstellt.
-
3 zeigt in einem Blockdiagramm einen Client gemäß manchen Ausführungsformen.
-
4 ist ein Blockdiagramm, das ein/en exemplarisches/en Cookie-Baum/Verzeichnis und ein exemplarisches Cookie gemäß manchen Ausführungsformen darstellt.
-
5A–5D stellen exemplarische Benutzerschnittstellen dar, die gemäß manchen Ausführungsformen mit der mehrfachen Anmeldung verknüpft sind.
-
6A–6C sind detaillierte Flussdiagramme, die Vorgänge darstellen, die von einem Client und einem Dokumentsystem gemäß manchen Ausführungsformen ausgeführt werden.
-
7A und 7B sind Flussdiagramme, die ein Verfahren zur Verwaltung mehrfacher Anmeldungen auf einem Server gemäß manchen Ausführungsformen darstellen.
-
8A und 8B sind Flussdiagramme, die ein Verfahren zur Verwaltung mehrfacher Anmeldungen auf einem Server gemäß manchen Ausführungsformen darstellen.
-
Gleiche Bezugsnummern beziehen sich in allen Zeichnungen auf die dazugehörigen Teile.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Es werden Verfahren und Systeme zur Verwaltung von mehrfachen Anmeldungen mithilfe eines Cookies beschrieben. Auf gewisse Ausführungsformen der Erfindung wird verwiesen, diese Beispiele werden in den begleitenden Zeichnungen dargestellt. Obwohl die Erfindung in Zusammenhang mit den Ausführungsformen beschrieben wird, gilt es als selbstverständlich, dass die Erfindung nicht auf diese bestimmten Ausführungsformen beschränkt ist. Ganz im Gegenteil, die Erfindung soll Alternativen, Abänderungen und Entsprechungen abdecken, welche die Reichweite und den Geist der beigefügten Ansprüche respektieren.
-
Darüber hinaus werden in der folgenden Beschreibung zahlreiche spezifische Details dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu vermitteln. Es wird jedoch für jede fachkundige Person ersichtlich sein, dass nicht alle spezifische Einzelheiten für den Einsatz der Erfindung des Patentgegenstands notwendig sind. In anderen Fällen sind Verfahren, Vorgehensweisen, Komponenten und Netzwerke, die dem Fachmann hinlänglich bekannt sind, nicht näher beschrieben, um Aspekte der vorliegenden Erfindung nicht zu verdecken.
-
Es ist außerdem selbstverständlich, dass obgleich die Begriffe erste/r/s, zweite/r/s usw. hierin verwendet werden können, um verschiedene Elemente zu beschreiben, diese Elemente nicht durch diese Begriffe beschränkt werden sollten. Diese Begriffe werden nur verwendet, um ein Element vom anderen zu unterscheiden. Ein erster Kontakt könnte beispielsweise als ein zweiter Kontakt bezeichnet werden und gleichermaßen könnte ein zweiter Kontakt als ein erster Kontakt bezeichnet werden, ohne vom Umfang der vorliegenden Erfindung abzuweichen. Der erste Kontakt und der zweite Kontakt sind beides Kontakte, aber sie sind nicht ein und derselbe Kontakt.
-
Die in der Beschreibung der Ausführungsformen hier verwendeten Begriffe dienen dazu, nur bestimmte Ausführungsformen zu beschreiben und sind nicht als die Erfindung einschränkend gedacht. Wie in der Beschreibung der Erfindung und den angehängten Ansprüchen verwendet, sollen die Singularformen „ein“, „eine“, „einer“ und „der“, „die“, „das“ ebenso die Pluralformen beinhalten, sofern aus dem Zusammenhang nicht eindeutig etwas anderes hervorgeht. Es ist außerdem selbstverständlich, dass der wie hierin verwendete Begriff „und/oder“ sich auf jegliche und alle möglichen Kombinationen einer oder mehrerer verbundener aufgeführter Elemente bezieht und diese beinhaltet. Es ist weiterhin selbstverständlich, dass die Begriffe „umfasst“, und/oder „umfassend“ bei Verwendung in dieser Beschreibung das Vorhandensein von aufgeführten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder das Hinzufügen einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon ausschließen.
-
Wie hierin verwendet, kann der Begriff „falls“ je nach Zusammenhang eventuell ausgelegt werden als „wenn“ oder „bei“ oder „als Folge der Festlegung“ oder „als Folge der Entdeckung. Desgleichen kann der Satz „wenn festgestellt wird“ oder „wenn [ein angegebener Zustand oder Ereignis] entdeckt wird“ je nach Zusammenhang eventuell ausgelegt werden als „bei Feststellen“ oder „als Folge der Festlegung“ oder „bei Entdecken (des angegebenen Zustands oder Ereignisses)“ oder „als Folge der Entdeckung (des angegebenen Zustands oder Ereignisses)“.
-
Wie hierin verwendet, bezieht sich der Begriff „URL“ auf einen einheitlichen Ressourcenanzeiger (Uniform Resource Locator), der synonym mit einem einheitlichen Bezeichner für Ressourcen (Uniform Resource Identifier; URI) verwendet wird.
-
1 ist ein Blockdiagramm, das gemäß bestimmten Ausführungsformen ein exemplarisches verteiltes Computersystem 100 darstellt. In 1 beinhaltet das System 100 einen oder mehrere Client-Computer 102, ein Kommunikationsnetzwerk 106 und ein Dokumentsystem 108. Verschiedene Ausführungsformen des Dokumentsystems 108 implementieren die im vorliegenden Dokument beschriebenen Anmeldeverfahren.
-
Client-Computer 102 können eines von einer Reihe von Rechengeräten (z. B. Internet-Kiosk, persönlicher digitaler Assistant, Mobiltelefon, Spiele-Endgerät, Desktop-Computer, Laptop-Computer, Handheld-Computer oder Kombinationen davon) sein, um die nachstehend beschriebenen Aktivitäten zu ermöglichen. Client-Computer 102 können hierin auch als Client(s) bezeichnet werden. Client 102 beinhaltet für gewöhnlich eine grafische Benutzeroberfläche (GUI) 111. Client 102 wird nachstehend unter Bezugnahme auf 3 näher beschrieben. Client 102 ist mit dem Dokumentsystem 108 über das Kommunikationsnetzwerk 106 verbunden. Wie nachstehend näher erläutert, wird die GUI 111 zur Anzeige von Dokumentinformationen und Anmeldeseiten verwenden. Das Dokumentsystem 108 stellt einer Gemeinschaft von Anwendern (z. B. den Angestellten einer Firma, den Mitgliedern einer Organisation oder Gruppe, Freunden, Familienangehörigen usw.) Dokumentdienste (z. B. Dokumenterstellung, Bearbeitung, gemeinsame Benutzung, E-Mail-Versand und Visualisierungsdienste) bereit, die über die Clients 102 auf das Dokumentsystem 108 zugreifen.
-
Das Dokumentsystem 108 beinhaltet einen oder mehrere Server wie den mit dem Kommunikationsnetzwerk 106 verbundenen Server 112. Optional sind der eine oder mehrere Server mit dem Kommunikationsnetzwerk 106 über einen Front-End-Server 122 verbunden (z. B. einem Server, der eingehende Anfragen an den entsprechenden Server des Systems 108 übermittelt (und optional parst) und der Antworten und/oder andere Informationen formatiert, die als Antwort auf Anfragen an Clients gesendet werden). Der Front-End-Server 122 kann, wenn vorhanden, ein Webserver sein, der webbasierten Zugriff auf das Dokumentsystem 108 bereitstellt. Der Front-End-Server 122 kann auch, wenn vorhanden, Kommunikation an und von andere/n Bestimmungorte/n wie einem Remote-Dokumentenserver routen.
-
Das Dokumentsystem 108 beinhaltet eine Benutzerinformationsdatenbank 116 und eine Dokumentendatenbank 120. In manchen Ausführungsformen beinhaltet das Dokumentsystem 108 auch bzw. hat Zugriff auf eine oder mehrere andere Datenbanken wie eine Anmeldedatenbank (nicht gezeigt), die Anmeldeinformationen speichert. Der Server 112 beinhaltet ein Modul 114 zur Verarbeitung von Dokumentanforderungen, ein Modul 124 zur Anmeldungsverarbeitung und Anwendungen 128. Der Server 112 kommuniziert mit dokumentsysteminternen Datenbanken 108 wie einer Benutzerinformationsdatenbank 116 und Dokumentendatenbanken 120 und in manchen Ausführungsformen einer Anmeldedatenbank (nicht gezeigt), die ein lokales Netzwerk verwendet, mittels internen Kommunikationsbussen oder mittels irgendeines anderen geeigneten Mechanismus oder einer Kombination von Mechanismen.
-
Der Server 112 kommuniziert mit den Clients 102 über den Front-End-Server 122 (wenn vorhanden) und dem (den) Kommunikationsnetzwerk(en) 106. In manchen Ausführungsformen ist das Kommunikationsnetzwerk 106 das Internet. In anderen Ausführungsformen kann das Kommunikationsnetzwerk 106 jedes lokale Netzwerk (LAN), Weitverkehrsnetzwerk (WAN), breitbandige Netzwerk oder eine Kombination dieser Netzwerke sein. In manchen Ausführungsformen ist der Server 112 ein Webserver, der Dokumentanforderungen unter Anwendung geeigneter Kommunikationsprotokolle verwaltet. Alternativ kann es auch ein Intranet-Server sein, falls der Server 112 innerhalb eines Intranets verwendet wird.
-
Die Anwendungen 128 beinhalten Anwendungsprogramme zum Verwalten eines Online-Dokumentsystems. In manchen Ausführungsformen beinhalten Anwendungen 128 auch ein Modul zur Verarbeitung von Benutzerinformationen, wobei das Modul zur Verarbeitung von Benutzerinformationen den Zugriff auf die und die Aktualisierung der Benutzerinformationsdatenbank 116 unterstützt. Die Benutzerinformationsdatenbank 116 speichert verschiedene mit den Benutzern des Dokumentsystems 108 verknüpfte Informationen einschließlich Benutzerpräferenzen, Anzeigestilen und optional andere Informationen wie Anmeldeinformationen. In manchen Ausführungsformen speichert eine Anmeldedatenbank (nicht gezeigt) die Anmeldeinformationen. Die Dokumentendatenbank 120 speichert Informationen zu verschiedenen Dokumentarten sowie Daten (z. B. Dokumentinhalte).
-
Das Modul 114 zur Verarbeitung von Dokumentanforderungen fragt gespeicherte Dokumentinformationen ab. Das Modul 114 zur Verarbeitung von Dokumentanforderungen unterstützt den Zugriff auf die und die Aktualisierung der Dokumentendatenbank 120 und in manchen Ausführungsformen die Benutzerinformationsdatenbank 116. In manchen anderen Ausführungsformen unterstützt das Modul 124 zur Verarbeitung von Dokumentanforderungen auch den Zugriff auf und die Aktualisierung von einer Anmeldedatenbank (nicht gezeigt).
-
In manchen Ausführungsformen speichert die Dokumentendatenbank 120 Informationen (z. B. Metadaten) über verschiedene Dokumente in der Dokumentendatenbank. Eine nicht erschöpfende Beispielaufzählung dieser Informationen beinhaltet Dokumentkennung, Autor, Zugriffssteuerungsliste, Zeitstempel (z. B. Zeitstempel für ein oder mehrere Erstellungsdaten, Überarbeitungshistorie, letzter Aktualisierungszeitpunkt, letzter Zugriffszeitpunkt usw.) und Dokumentart (z. B. Textverarbeitungsdokument, Tabelle, Präsentationsdatei usw.). In manchen Ausführungsformen speichert die Dokumentendatenbank 120 auch Dokumentdaten (z. B. Inhalte) oder Informationen über eine Adresse der Dokumentdaten (z. B. einen Hinweis auf einen Remote-Server).
-
In manchen Ausführungsformen beinhaltet die Benutzerinformationsdatenbank 116 Benutzerinformationsaufzeichnungen mit für die Anzeige der Dokumentinformationen maßgeblichen Informationen. Die Benutzerinformationsaufzeichnungen für einen jeweiligen Benutzer kann beispielsweise zusätzlich zu Erkennungsangaben für den Benutzer Dokumentenordner und Standardanzeigeeinstellungen beinhalten (z. B. ein bestimmtes Dokument, den Inhalt eines bestimmten Ordners, eine Liste von mit einer bestimmten Dokumentverarbeitungsanwendung verknüpfte Liste (z. B. eine Textverarbeitung, Tabelle oder Präsentationsanwendung) oder eine Liste aller Dokumente).
-
Im Wesentlichen ist der Server 112 so konfiguriert, um bestimmte Aspekte des Dokumentsystems 108 zu verwalten, einschließlich der Verwaltung von Anmeldeanfragen von einem jeweiligen Client 102.
-
Optional wird das Dokumentsystem 108 als Teil eines Dokument-Sharing-Systems implementiert, das Dokumentdienste (z. B. Dokumenterstellung, Bearbeitung, gemeinsame Benutzung, E-Mail-Versand und Visualisierungsdienste) einer Gemeinschaft von Anwendern (z. B. den Angestellten einer Firma, den Mitgliedern einer Organisation oder Gruppe usw.) bereitstellt.
-
In manchen Ausführungsformen beinhalten das Dokumentsystem 108 und der Server 112 weniger und/oder zusätzliche Module, Funktionen oder Datenbanken. Die im Dokumentsystem 108 und Server 112 gezeigten Module stellen Funktionen dar, die in bestimmten Ausführungsformen ausgeführt werden.
-
2 ist ein Blockdiagramm, das das Dokumentsystem 108 gemäß manchen Ausführungsformen darstellt. Das Dokumentsystem 108 beinhaltet für gewöhnlich einen oder mehrere Prozessoren (CPUs) 202, eine oder mehrere Netzwerk- oder anderen Kommunikationsschnittstellen 204, den Speicher 206 und einen oder mehrere Kommunikationsbusse 208, um diese Komponenten miteinander zu verbinden. In manchen Ausführungsformen beinhalten Kommunikationsbusse 208 eine Schaltung (manchmal Chipsatz genannt), die die Kommunikation zwischen den Systemkomponenten miteinander verbindet und steuert. In manchen anderen Ausführungsformen beinhaltet das Dokumentsystem 108 eine Benutzerschnittstelle (nicht gezeigt) (z. B. eine Benutzerschnittstelle mit einem Anzeigegerät, einer Tastatur und einer Maus oder einem anderen Zeigegerät), aber für gewöhnlich wird das Dokumentsystem 108 von verschiedenen Client-System gesteuert und von diesen darauf zugegriffen.
-
Der Speicher 206 des Dokumentsystems 108 beinhaltet Schnellspeicher wie DRAM, SRAM, DDR RAM oder andere Solid-State-Arbeitsspeichereinheiten, und kann nichtflüchtigen Speicher wie ein oder mehrere Magnetplattenspeichergeräte, optische Plattenspeichergeräte, Flash-Speicher-Geräte oder andere nichtflüchtige Solid-State-Speichergeräte beinhalten. Speicher 206 kann optional ein oder mehrere Speichergeräte umfassen, die sich entfernt von der/den CPU(s) 202. befinden. Speicher 206 oder alternativ die nichtflüchtige(n) Speichereinrichtung(en) innerhalb des Speicher 206 umfasst bzw. umfassen ein computerlesbares Speichermedium. Das computerlesbare Speichermedium des Speichers 206 ist ein nichtflüchtiges computerlesbares Medium zum Speichern von Informationen. In einigen Ausführungsformen speichern der Speicher 206 oder das computerlesbare Speichermedium des Speichers 206 die folgenden Programme, Module und Datenstrukturen oder eine Teilmenge davon:
- • Betriebssystem 210, das Verfahren zur Abwicklung von verschiedenen grundlegenden Systemdienstleistungen und zur Ausführung von Aufgaben, die von der Hardware abhängen, beinhaltet;
- • Netzwerk-Kommunikationsmodul (oder Befehle) 212, das zum Verbinden des Dokumentsystems 108 mit anderen Computern (z. B. Clients 102) über die eine oder mehrere Kommunikationsschnittstellen 204 und ein oder mehrere Kommunikationsnetzwerke 106 (1) verwendet wird, wie das Internet, andere Weitverkehrsnetzwerke, lokale Netzwerke, breitbandige Telekommunikationsnetze und so weiter;
- • Dokument-Engine 214, die Dokumentinformationsanforderungen von Clients 102 empfängt und Antworten an diese bereitstellt; und
- • Präsentationsmodul 224, das die Ergebnisse von der Dokument-Engine 214 zum Anzeigen bei den jeweiligen Clients formatiert; das Präsentationsmodul 224 kann beispielsweise eine Internetseite oder ein XML-Dokument generieren, das Dokumentinformationen beinhaltet; in manchen Ausführungsformen wird das Präsentationsmodul 224 vom Front-End-Server 122 ausgeführt, der einen der Server umfasst, die das Dokumentsystem 108 ausführen; optional ist das Präsentationsmodul 224 ein Modul der Dokument-Engine 214.
-
In manchen Ausführungsformen beinhaltet die Dokument-Engine 214 die folgenden Programme, Module und Datenstrukturen bzw. eine Teil- oder Obermenge davon:
- • ein oder mehrere zum Server 112 dazugehörige Servermodule 230 in 1 zum Verwalten bestimmter Aspekte des Dokumentsystems 108 einschließlich eines Moduls 124 zur Anmeldungsverarbeitung und Anwendungen 128 einschließlich eines Moduls 216 zur Verarbeitung von Dokumentanforderungen zum Ausführen der Primärfunktionen eines Online-Dokumentsystems; das Modul 216 zur Verarbeitung von Dokumentanforderungen beinhaltet ein Client-Schnittstellenprogramm (oder Modul) 217 zum Empfangen von Anforderungen von Dokumentinformation von und zum Erzeugen von Antworten auf die Anforderungen; die Anwendung 128 kann wahlweise andere Anwendungen 218 beinhalten;
- • Benutzerinformationsdatenbank 116, die Aufzeichnungen für Benutzer speichert; und
- • Dokumentdatenbank 120, die Dokumente 222 (z. B. Dokumentinhalte) speichert und möglicherweise auch andere Dokumentdaten (z. B. Autor, Zugriffssteuerungsliste, Zeitstempel, Dokumentgröße, Dokumentart usw.).
-
Jede(s) der vorstehend bezeichneten Module und Anwendungen entspricht einem Befehlssatz zum Ausführen einer oder mehrerer oben beschriebener Funktionen. Diese Module (d. h. Sätze an Anweisungen) müssen nicht als separate Softwareprogramme, Vorgehensweisen oder Module ausgeführt werden und daher können verschiedene Untergruppen dieser Module kombiniert oder in verschiedenen Ausführungsformen anders arrangiert werden. In manchen Ausführungsformen kann der Speicher 206 eine Teilmenge der vorstehend bezeichneten Module und Datenstrukturen speichern. Ferner kann der Speicher 206 zusätzliche, vorstehend nicht beschriebene Module und Datenstrukturen speichern.
-
Ungeachtet der diskreten Blöcke in 1 und 2 sollen diese Figuren eine Funktionsbeschreibung mancher Ausführungsformen anstatt eine Strukturbeschreibung von Funktionselementen in den Ausführungsformen darstellen. Ein Fachexperte kann erkennen, dass die funktionellen Elemente in der eigentlichen Implementierung gruppiert oder über mehrere Komponenten verteilt sind. In der Praxis und wie unter Fachleuten auf dem Gebiet bekannt, könnten gesondert dargestellte Elemente kombiniert und einige getrennt werden. In manchen Ausführungsformen gehört die Benutzerinformationsdatenbank 116 beispielsweise zum Server oder ist im Server 112 gespeichert. In anderen Ausführungsformen wird die Benutzerinformationsdatenbank 116 unter Verwendung eines oder mehrerer Server implementiert, deren Hauptfunktion im Speichern und Verarbeiten von Benutzerinformationen besteht. In manchen Ausführungsformen beinhaltet die Dokumentdatenbank 120 die Benutzerdatenbank 116 oder umgekehrt. In manchen Ausführungsformen kann die Dokumentdatenbank 120 auf einem oder mehreren Remote-Servern implementiert werden.
-
Die tatsächliche Anzahl von Servern für die Implementierung des Dokumentsystems 108 und die Zuweisung der Merkmale untereinander ist bei jeder Implementierung anders und kann zum Teil von der Datenverkehrsmenge abhängen, die das System während der Spitzennutzungszeiten sowie während der durchschnittlichen Nutzungszeiten bewältigen muss, und auch von der vom Dokumentsystem 108 gespeicherten Datenmenge. Darüber hinaus kann einer oder mehrere der Blöcke (z. B. Server 112, Dokumentdatenbank 120) in 1 auf einem oder mehreren Servern, die dafür ausgelegt sind, die beschriebene Funktionalität bereitzustellen, implementiert werden. Obwohl sich die Beschreibung hierin auf bestimmte bei Client 102 implementierte Funktionen und bestimmte bei Server 112 implementierte Funktionen bezieht, sind die Ausführungsformen nicht auf diese Unterscheidungen beschränkt. Die Funktionen, die hierin als Teil des Server 112 beschrieben wurden, können beispielsweise komplett oder teilweise in Client 102 implementiert werden, und umgekehrt.
-
3 ist ein Blockdiagramm, das gemäß manchen Ausführungsformen einen Client darstellt, auch Client-Systeme oder Client-Geräte genannt. Die Clients 102, wie in diesen Figuren gezeigt, sind zur Verwendung durch einen Teilnehmer (hierin auch „der Benutzer“ genannt) des Dokumentsystems 108 konfiguriert. Der Client beinhaltet eine Benutzerschnittstelle 300, die für gewöhnlich ein Anzeigegerät 301 und eine oder mehrere Eingabegeräte 303 wie eine Tastatur und eine Maus oder ein anderes Zeigegerät beinhaltet. Wie zuvor erwähnt, der Client 102 enthält eine grafische Benutzeroberfläche (GUI) 111, die auf der Anzeigevorrichtung 301 angezeigt wird. Der Client 102 besteht für gewöhnlich aus einem oder mehreren Prozessoren (CPUs) 302, einer oder mehrerer Netzwerk- oder anderen Kommunikationsschnittstellen 304, Speicher 306 und einem oder mehreren Kommunikationsbussen 308, um diese Komponenten zu verbinden. Die Kommunikationsbusse 308 können eine Schaltung (auch Chipsatz genannt) enthalten, die die Kommunikationen zwischen den Systemkomponenten miteinander verbindet und steuert.
-
Der Speicher 306 beinhaltet einen Schnellspeicher wie DRAM, SRAM, DDR RAM oder andere Solid-State-Arbeitsspeichereinheiten, und kann nichtflüchtigen Speicher wie ein oder mehrere Magnetplattenspeichergeräte, optische Plattenspeichergeräten, Flash-Speicher-Geräte oder andere nichtflüchtige Solid-State-Speichergeräte beinhalten. Speicher 306 kann auch mehrere Speichergeräte enthalten, die sich entfernt von der CPU/den CPUs 302 befinden. Speicher 306 oder alternativ die nichtflüchtige(n) Speichereinrichtung(en) innerhalb des Speicher 306 umfasst bzw. umfassen ein computerlesbares Speichermedium. Das computerlesbare Speichermedium des Speichers 306 ist ein nichtflüchtiges computerlesbares Medium zum Speichern von Informationen. In einigen Ausführungsformen speichert der Speicher 306 oder das computerlesbare Speichermedium des Speichers 306 die folgenden Programme, Module und Datenstrukturen oder eine Teilmenge davon:
- • Betriebssystem 310, das Verfahren zur Abwicklung von verschiedenen grundlegenden Systemdienstleistungen und zur Ausführung von Aufgaben, die von der Hardware abhängen, beinhaltet;
- • Netzwerk-Kommunikationsmodul 312, das zum Verbinden des Clients 102 mit anderen Computern (z. B. mit dem Dokumentsystem 108 und anderen Clients 102) über die eine oder mehrere Kommunikationsnetzwerk-Schnittstellen 304 (verdrahtet oder drahtlos) und ein oder mehrere Kommunikationsnetzwerke 106 (1) verwendet wird, wie das Internet, andere Weitverkehrsnetzwerke, lokale Netzwerke, breitbandige Telekommunikationsnetze und so weiter;
- • Webbrowser-Anwendung 314; optional beinhaltet eine Webbrowser-Anwendung 314 oder eine Erweiterung, ein Plug-in oder eine Werkzeugleiste der Browseranwendung ein Modul zur Dokumentverarbeitung 316, das Datenformatierungs- und/oder Verwaltungsaufgaben bearbeitet, von denen wenigstens einige ansonsten vom Präsentationsmodul 220 (2) bearbeitet würden;
- • Dokumentdaten 318, die Dokumentanzeigeseiten (z. B. Dokumentanzeigeseite 1 (320) und Dokumentanzeigeseite 2 (322) usw.) enthalten; eine jeweilige Dokumentanzeigeseite ist für gewöhnlich eine Internetseite (oder ein XML-Dokument oder Ähnliches), die vom Dokumentsystem 108 empfangen wird; die jeweilige Dokumentanzeigeseite beinhaltet Dokumentinformationen zur Anzeige auf der GUI 111; in manchen Ausführungsformen beinhaltet die jeweilige Dokumentanzeigeseite eingebettete Befehle für den Empfang von dokumentenbezogenen Eingaben durch einen Computeranwender (z. B. eine Aufforderung, ein angezeigtes Dokument zu bearbeiten oder ein anderes Dokument anzuzeigen) und für die Formatierung von Dokumentdaten zur Anzeige auf der GUI 111; alternativ bzw. zusätzlich können Befehle für den Empfang von dokumentenbezogenen Eingaben durch den Computeranwender und/oder für die Formatierung von Dokumentdaten zur Anzeige in einem dokumentverarbeitenden Modul 316, wie oben erwähnt, implementiert werden; und
- • Cookie Cache 324, das einen Cookie-Baum 326 (auch Cookie-Verzeichnis genannt) und wenigstens ein Cookie 328 beinhaltet; der Cookie-Baum 326 beinhaltet Informationen, die angeben, in welchem Pfad und/oder in welcher Domain ein entsprechendes Cookie zur Anwendung konfiguriert ist, das wenigstens eine Cookie 328 beinhaltet jeweilige Cookies, die auf einer oder mehreren Dokumentanzeigeseiten (z. B. 320 und 322) verwendet werden; optional wird ein Cookie-Baum 326 als eine Trie-Datenstruktur implementiert.
-
Optional beinhaltet der Speicher 306 zusätzliche andere Anwendungen oder Komponenten.
-
4 ist ein Blockdiagramm, das einen exemplarischen Cookie-Baum 326 (auch Cookie-Verzeichnis genannt) und ein exemplarisches Cookie 328 gemäß manchen Ausführungsformen darstellt. Der Cookie-Baum 326 wird für gewöhnlich im Cookie Cache 324 eines Clients 102, wie in 3 gezeigt, abgelegt. Der Cookie-Baum 326 speichert Einträge in den Cookie-Baum, zum Beispiel Eintrag 1 (412-1) bis Eintrag m (412-m), wobei m die Anzahl der Einträge (oder die Anzahl der Einträge für eine jeweilige Webbrowser-Anwendung oder die Anzahl von Einträgen für ein jeweiliges Benutzerkonto des Clients) darstellt. Ein jeweiliger Eintrag in den Cookie-Baum (z. B. Eintrag 412-m) beinhaltet ein Feld zum Speichern von Cookie-URL-Informationen 408-m, die einen Teil eines Cookie-URL-Pfads oder einen vollständigen URL-Pfad umfassen können. Die Einträge 412 in den Cookie-Baum werden hierin auch Knoten des Cookie-Baums genannt. Wenn der Cookie-Baum 326 als ein Trie oder eine andere Baumdatenstruktur implementiert wird, beinhalten die Cookie-URL-Informationen in einem beliebigen Eintrag für gewöhnlich nur den Teil des Cookie-URL-Pfads, der nicht von den Elternknoten (Einträgen) im Cookie-Baum 326 angegeben ist. Die Cookie-URL-Information 408 identifiziert entweder allein oder zusammen mit der Cookie-URL-Information der Elternknoten den Pfad einer Website, auf der das entsprechende Cookie verwendet werden soll.
-
Wenn ein entsprechender Eintrag 412-m in den Cookie-Baum „ein Cookie beinhaltet“, dann beinhaltet der Eintrag auch einen Hinweis auf ein entsprechendes Cookie (z. B. Cookie 328-m). In manchen Implementierungen (z. B. in Implementierungen, die den Cookie-Baum in einem Trie speichern) sind manche Cookie-Einträge 412 „nur“ Elternknoten, die zwar Cookie-URL-Informationen speichern, aber keine eigenen Cookies haben. Daher kann der Cookie-Baum 326, wenn der Cookie-Baum 326 Einträge für mehrere Cookies beinhaltet, die zwar alle dieselbe Eltern-URL aufweisen wie beispielsweise www.a.b, aber kein Cookie für diese Eltern-URL im Cookie Cache 324 gespeichert wurde, einen Knoten (d. h. Eintrag 412) für die Eltern-URL beinhalten, die keinen Hinweis 410 auf ein Cookie 328 aufweist. In anderen Implementierungen entsprechen alle Einträge 412 im Cookie-Baum den Cookies 328 im Cookie Cache 324.
-
In manchen Implementierungen beinhaltet ein jeweiliges Cookie (z. B. Cookie 328-m) die folgenden Daten oder eine Teil- oder Obermenge davon für jeden Benutzernamen bzw. jedes Benutzerkonto, das in das Dokumentsystem über einen Einzelbrowser des Clients 102 angemeldet ist:
- • Benutzerkennung 402, die einen Benutzernamen oder ein Benutzerkonto, die über den Client 102 im Dokumentsystem 108 angemeldet sind;
- • (optional) Authentifizierungszeit 404, die den Zeitpunkt identifiziert, zu dem eine jeweilige Benutzerkennung 402 (im Cookie 328-m) authentifiziert wurde;
- • (optional) Letzte Aktivitätszeit 406, die den letzten Zeitpunkt identifiziert, zu dem eine jeweilige Benutzerkennung 402 (im Cookie 328-m) verwendet wurde, um Informationen an das Dokumentsystem 108 zu senden bzw. von diesem zu empfangen; in manchen Ausführungsformen beinhaltet das Cookie 328-m eine jeweilige letzte Aktivitätszeit 406 für jede Benutzerkennung 402 im Cookie 328 und die jeweilige letzte Aktivitätszeit 406 identifiziert den letzten Zeitpunkt, zu dem die entsprechende Kennung 402 verwendet wurde, um Informationen an das Dokumentsystem 108 zu senden bzw. von diesem zu empfangen.
-
In manchen Ausführungsformen beinhaltet ein Cookie (z. B. Cookie 328-m) auch die folgenden Daten oder eine Teil- oder Obermenge davon für jeden Benutzernamen bzw. jedes Benutzerkonto, die im Dokumentsystem über einen Einzelbrowser des Clients 102 angemeldet sind:
- • einen Domainnamen, der die einer jeweiligen Benutzerkennung 402 (im Cookie 328-m) zugewiesenen Domain identifiziert;
- • ein Ablaufdatum, das das Ablaufdatum der Authentifizierung einer jeweiligen Benutzerkennung 402 identifiziert; und
- • websitespezifische Informationen, wie als ein oder mehrere Paare eines variablen Namens dargestellt (auch variables Attribut genannt) und einen variablen Wert oder eine Reihe von Werten; diese websitespezifischen Informationen können, wenn vorhanden, von dem Dokumentsystem 108 in Verbindung mit der entsprechenden Benutzerkennung 402 verwendet werden.
-
In manchen Ausführungsformen beinhaltet der Cookie-Baum 326 das (die) Cookie(s) 328. In manchen Ausführungsformen beinhaltet das Cookie 328 Eintrags-/Knoteninformationen 408. In diesen Ausführungsformen wird abgesehen von den Cookies 328 kein Cookie-Baum 326 beibehalten.
-
Die 5A–5D zeigen exemplarische Benutzerschnittstellen, die gemäß manchen Ausführungsformen mehrfacher Anmeldung zugewiesen sind.
-
5A stellt eine exemplarische Benutzerschnittstelle 502-A dar, die auf einer GUI 111 eines Clients 102 angezeigt wird. Die Benutzerschnittstelle 502-A in 5A beinhaltet eine URL 504 (hierin manchmal die Anfrage-URL genannt), Benutzerinformation 516 und Dokumentinformation (z. B. „Dokument 1“). Die URL 504 beinhaltet das Folgende oder eine Teil- oder Obermenge davon:
- • Schema 506, das einen Typ einer entsprechenden Ressource identifiziert (z. B. „http“, das angibt, dass die Ressource eine Hypertext-Übertragungsprotokoll-Ressource ist; „Datei“, was angibt, dass die Ressource eine Datei auf lokalen oder Netzwerkdateisystemen usw. ist) oder ein Protokoll für den Zugriff auf eine entsprechende Ressource (z. B. „http“, was ebenfalls angibt, dass ein http-Protokoll notwendig ist, um auf die entsprechende Ressource zuzugreifen; „ftp“, was angibt, dass ein ftp-Protokoll notwendig ist, um auf die entsprechende Ressource zuzugreifen (in einem Webbrowser oder einer separaten ftp-Anwendung); „mailto“, was angibt, dass eine E-Mail-Anwendung notwendig ist, um an die entsprechende Ressource zu mailen (z. B. eine E-Mail-Adresse), usw.);
- • eine Adresskennung 507, die einen Domainnamen (auch Hostname genannt) 508 beinhaltet; der Domainname identifiziert einen Namen eines oder mehrerer Server, die Dokumentdienste bereitstellen;
- • Pfad 510, der eine Adresse der Ressource innerhalb der durch den Domainnamen 508 gekennzeichneten Domain identifiziert; in manchen Ausführungsformen beinhaltet die Adresskennung 507 einen Domainnamen 508, beinhaltet aber keinen Pfad 510, in welchem Fall ein Server, der die URL 504 empfängt, eine von einem Standardpfad (z. B. Benutzerverzeichnis) stammende Ressource identifiziert; und
- • (optional) Query String 511, der einem Server (z. B. Dokumentsystem 108) bereitzustellende Parameter identifiziert; für gewöhnlich beinhaltet ein Query String Name-Wert-Paare (z. B. einen Namen für eine erste Variable und einen Wert für die erste Variable, einen Namen für eine zweite Variable und einen Wert für die zweite Variable usw.); der Query String 511 beinhaltet beispielsweise ein erstes Name-Wert-Paar 512-1 und ein zweites Namen-Wert-Paar 512-2; das erste Name-Wert-Paar 512-1 beinhaltet eine Variable „docid“ (Dokumentkennung) mit einem entsprechenden Wert „0123abCDef4567“ und das zweite Name-Wert-Paar 512-2 beinhaltet eine Variable „hl“ mit einem entsprechenden Wert „en“. Der Query String kann eine beliebige Anzahl an Name-Wert-Paaren beinhalten. Manche URLs beinhalten keinen Query String, viele URLs jedoch schon. In den meisten Implementierungen enthält die URL für den Zugriff auf ein spezifisches Dokument von einem Online-Dokumentdienst wenigstens ein Name-Wert-Paar 512 in einem Query String 511, um das Dokument, auf das zugegriffen werden soll, zu identifizieren. In anderen Implementierungen jedoch verwendet die URL für den Zugriff auf ein spezifisches Dokument einen Pfad 510 oder eine Kombination aus einem Pfad 510 und einem oder mehreren Name-Wert-Paaren 512 in einem Query String 511, um das Dokument, auf das zugegriffen werden soll, zu identifizieren.
-
In 5A beinhaltet die Benutzerinformation 516 einen Benutzernamen (z. B. „james@gmail1.com”). Der Benutzername kann eine E-Mail-Adresse oder irgendeine andere geeignete Benutzerkennung oder Kennungsbezeichnung (z. B. einen Spitznamen oder einen Künstlernamen) sein.
-
Wenn der Query String 511 eine docid-Variable und einen entsprechenden Wert (z. B. 512-1) beinhaltet, wird der docid-Wert dazu verwendet, ein entsprechendes Dokument abzurufen. Als Antwort auf den Empfang einer Anforderung mit einer Dokumentkennung und bei Feststellung, dass die Anforderung von einem für das Dokument zugriffsberechtigten Benutzer stammt oder wenn anderweitig festgestellt wird, dass der Anforderung nachzukommen ist, sendet der Server eine Internetseite einschließlich des jeweiligen Dokuments an einen Client 102 und der Client 102 zeigt die Internetseite einschließlich des jeweiligen Dokuments auf einer GUI 111 des Clients 102 an.
-
In manchen Ausführungsformen beinhaltet ein Teil des Pfads oder des Query Strings Informationen (z. B. einen „Benutzerschlüssel“), die mit dem Benutzernamen übereinstimmen. Der Pfad 510 beispielsweise beinhaltet einen String „gmail1.com/view“, der mit dem Domainnamen „gmail1.com“ des Benutzernamens „james@gmail1.com“ übereinstimmt. Alternativ kann der Pfad den vollständigen Benutzernamen „james@gmail1.com“ beinhalten. In wieder anderen Implementierungen kann der Query String 511 den vollständigen Benutzernamen „james@gmail1.com“ oder den mit dem Benutzernamen übereinstimmenden Domainnamen „gmail1.com“ beinhalten. In diesem Beispiel gibt der „/view“-Teil des Pfads 510 die vom Client angeforderte Art des Dokumentzugriffs an. Zusätzliche Beispiele von Zugriffsart-Strings, die im Pfad 510 beinhaltet sein könnten, sind „/edit“ oder ein Null-String (um den Lese-Schreib-Zugriff auf ein Dokument zu ermöglichen), „/preview“ (zur Voransicht eines Dokuments) und „/create“ (zur Erstellung eines neuen Dokuments).
-
In manchen Ausführungsformen ist der Pfad oder der Query String aus Sicherheitsgründen (z. B. um die Manipulation des Pfads und/oder des Query Strings für unbefugte Aktivitäten zu erschweren) verschlüsselt (d. h. enthält verschlüsselte Informationen). In manchen Ausführungsformen beinhaltet der Pfad und/oder der Query String ein Rautezeichen, das vom Server dazu verwendet wird, entsprechende Pfad- oder Query String-Informationen nachzusehen oder anderweitig zu identifizieren.
-
In manchen Ausführungsformen beinhaltet die Benutzerinformation 516 eine Benutzerauswahlschaltfläche 517.
-
5B stellt eine exemplarische Benutzerschnittstelle dar, die als Antwort auf eine Auswahl des Benutzers der Benutzerauswahlschaltfläche 517 angezeigt wird. Die Benutzerschnittstelle 502-B in 5B beinhaltet eine Anzeige des aktuell angemeldeten Benutzernamens 518-1 (z. B. „james@gmail1.com“) und eine Menüoption, um sich bei einem anderen Konto 520 anzumelden.
-
5C stellt eine exemplarische Benutzerschnittstelle 502-C dar, die als Antwort auf eine Auswahl der Menüoption durch den Benutzer, sich in einem anderen Konto 520 anzumelden, angezeigt wird. In manchen Ausführungsformen wird die Benutzerschnittstelle 502-B in einem ersten Tab (manchmal Browser-Tab oder Anwendungs-Tab genannt) eines Webbrowsers beim Client 102 angezeigt. Die Auswahl der Menüoption, um sich bei einem anderen Konto 520 anzumelden, startet das Öffnen eines zweiten Tabs im Webbrowser und das Anzeigen eines Anmeldefensters (z. B. die Benutzerschnittstelle 502-C) im zweiten Tab, während die Benutzerschnittstelle 502-B im ersten Tab beibehalten wird. Dies erlaubt einem Benutzer, Dokumentinformationen entsprechend einer Vielzahl von jeweiligen Benutzernamen in einer entsprechenden Vielzahl von jeweiligen Tabs zu sehen. Wenn Dokumentinformationen für eine Vielzahl von unterschiedlichen Benutzernamen in einer Vielzahl von gleichzeitig aktiven Tabs angezeigt werden, muss der Benutzer nur unterschiedliche Tabs auswählen, um zwischen den verschiedenen Dokumentinformationssätzen zu wechseln. Ferner ist festzuhalten, dass ein Benutzer mehrere Tabs unter einem einzelnen Benutzernamen öffnen kann, um auf mehr als ein Dokument oder mehr als einen Satz Dokumentinformationen unter demselben Benutzernamen zuzugreifen, während ein oder mehrere andere Tabs aktiv sind, in denen der Benutzer unter einem oder mehreren anderen Benutzernamen auf Dokumentinformationen zugreift.
-
Die Benutzerschnittstelle 502-C in 5C beinhaltet eine URL 504-C, die einem Benutzeranmeldebildschirm entspricht, und einen Anmeldebildschirm, auf dem ein Benutzer eine E-Mail-Adresse (z. B. 530-1) und ein Passwort (z. B. 530-2) zum Anmelden bereitstellen kann. In manchen Ausführungsformen beinhaltet die Benutzerschnittstelle 502-C auch eine Liste von Benutzernamen (z. B. 534), die aktuell über einen jeweiligen Client 102 (oder über einen jeweiligen Webbrowser 314 beim jeweiligen Client 102) auf einem entsprechenden Server angemeldet sind (z. B. Dokumentsystem 108). In manchen Ausführungsformen beinhaltet die Benutzerschnittstelle 502-C auch eine vom Benutzer wählbare Schaltfläche (z. B. 532), um das Senden der Anmeldeinformationen (z. B. die E-Mail-Adresse und das Passwort) an den entsprechenden Server zu starten.
-
5D stellt eine exemplarische Benutzerschnittstelle dar, die als Antwort auf eine Anmeldung eines Benutzers angezeigt wird, der einen anderen Benutzernamen verwendet (z. B. „james_k@gmail2.com“) und eine Benutzerauswahlschaltfläche 517 auswählt. Die Benutzerschnittstelle 502-D in 5D beinhaltet die Benutzerinformation 516, die angibt, dass der Benutzer Dokumentinformationen empfängt, die einem Benutzernamen „james_k@gmail2.com“ entsprechen. Darüber hinaus beinhaltet die Benutzerschnittstelle 502-D ein Benutzerauswahlmenü, das die auf dem Server (z. B. Dokumentsystem 108) bereits angemeldeten Benutzernamen wie „james@gmail1.com“ und „james_k@gmail2.com“ und eine Menüoption für das Anmelden bei noch einem weiteren Konto beinhaltet. Entgegen eines herkömmlichen Anmeldevorgangs, wonach ein erster angemeldeter Benutzername „james@gmail1.com“ abgemeldet wird, wenn ein zweiter Benutzername „james_k@gmail2.com“ zum Anmelden auf demselben Server (z. B. Dokumentsystem 108) verwendet wird, behält diese Benutzerschnittstelle mehrere auf demselben Server (z. B. Dokumentsystem 108) angemeldete Benutzernamen bei und erlaubt die Auswahl eines Benutzernamens, wenn auf Dokumente, die auf dem Server (z. B. Dokumentsystem 108) abgelegt sind, zugegriffen wird.
-
Die Benutzerschnittstelle 502-D beinhaltet auch eine URL 504-D. Die URL 504-D in 5D beinhaltet ein Schema 506, einen Domainnamen 508, einen Pfad 510 und einen Query String 511. Der Pfad 510 in 5D beinhaltet einen Benutzerschlüssel, „gmail2.com“, der dem Domainnamen des zuletzt angemeldeten Benutzernamens (oder des zuletzt verwendeten Benutzernamens) „james_k@gmail2.com“ entspricht. Wie vorstehend unter Bezugnahme auf 5A erörtert, beinhaltet der Benutzerschlüssel in manchen Implementierungen den vollständigen Benutzernamen james_k@gmail2.com des zuletzt verwendeten Benutzernamens. In manchen Ausführungsformen ist der Benutzerschlüssel im Query String 512 der URL 504-D anstatt im Pfad 510 enthalten. In manchen Ausführungsformen ist der Pfad und/oder der Query String verschlüsselt oder beinhaltet verschlüsselte Informationen.
-
In 5D ist festzuhalten, dass der Query String 511 nicht die „docid“-Variable enthält und infolgedessen zeigt die Benutzerschnittstelle 502-D einen Satz (oder eine Liste) von Dokumenten an, die dem Benutzernamen (z. B. „james_k@gmail2.com“) anstatt einem bestimmten Dokument (z. B. einem bestimmten einer docid (Dokumentenkennung) entsprechenden Dokument). In manchen Ausführungsformen vergleicht der Server (z. B. Dokumentsystem 108) als Antwort auf eine Anforderung seitens eines bestimmten Benutzernamens, auf ein spezifisches Dokument (angegeben durch eine docid) zuzugreifen, den Benutzernamen mit der Zugriffssteuerungsliste (ACL) für das angegebene Dokument. Führt dieser Vergleich zur Feststellung, dass der Benutzername keine Zugriffsrechte für das Dokument hat, ändert der Server die URL 504-D in der Anforderung und stellt das entsprechende Dokument dem Benutzer nicht bereit. Wenn beispielsweise der Benutzername „james_k@gmail2.com“ keine Zugriffsrechte für ein bestimmtes „Dokument 1“ hat, stellt der Server (z. B. Dokumentsystem 108) eine Liste von dem Benutzernamen „james_k@gmail2.com“ zugewiesenen Dokumente an Stelle des Dokuments 1 bereit. Hierzu ändert der Server die URL in der Anforderung an die URL, eine Liste von dem Benutzernamen zugewiesenen (d. h. für ihn zugänglichen) anzufordern.
-
In manchen Ausführungsformen beinhaltet die Liste von Dokumenten Dokumentpositionen 540 (z. B. 540-1 bis 540-4, wie in 5D gezeigt), von denen jede ausgewählt werden kann, um auf ein entsprechendes Dokument zuzugreifen. Die Auswahl der Dokumentposition 540-2 beispielsweise startet den Zugriff auf den September-Bericht mit Datum vom 15.09.2009.
-
Wenn der Benutzer einen zweiten Browser-Tab für eine Anmeldung mit dem zweiten Benutzernamen geöffnet hat, wird der zweite Tab nach der Anmeldung beibehalten und für die Anzeige der dem zweiten Benutzernamen entsprechenden Dokumentinformation verwendet. Wenn die Benutzerschnittstelle 502-B beispielsweise nach dem Anmelden im ersten Tab und die Benutzerschnittstelle 502-C im zweiten Tab angezeigt wird, wird nach dem Anmelden der zweite Tab beibehalten und die Benutzerschnittstelle 502-D wird im zweiten Tab angezeigt. Der erste und zweite Tab sind gleichzeitig aktiv und ermöglichen dem Benutzer, auf Dokumentinformationen für jeden der gleichzeitig angemeldeten Benutzernamen zuzugreifen, indem er einfach den entsprechenden Browser-Tab auswählt.
-
Die 6A–6C sind detaillierte Flussdiagramme, die Vorgänge darstellen, die von einem Client 102 und einem Dokumentsystem 108 gemäß manchen Ausführungsformen ausgeführt werden. Der Fachmann wird bemerken, dass eine oder mehrere der beschriebenen Vorgänge durch Hardware, Software oder eine Kombination davon ausgeführt werden können, wie sie in einem oder mehreren Rechensystemen enthalten sein können. In manchen Ausführungsformen können Teile des durch das Dokumentsystem 108 ausgeführten Vorgangs durch den Client 102 ausgeführt werden.
-
In 6A fordert (602) Client 102 Dokumentinformationen vom Dokumentsystem 108 an. In manchen Ausführungsformen umfasst die Anforderung eine http-Anfrage an eine dem Dokumentsystem 108 entsprechende URL (z. B. „http://docs.google.com“).
-
Das Dokumentsystem 108 empfängt die Anforderung. Wenn der Client 102 vom Dokumentsystem 108 nicht authentifiziert wurde (z. B. beinhaltete die Anforderung kein gültiges Cookie, das angibt, dass der Benutzer für das Dokumentsystem 108 authentifiziert ist), sendet (604) das Dokumentsystem 108 eine Anmeldeseite (z. B. eine Anmeldeseite analog zu der in 5C gezeigten Benutzerschnittstelle 502-C) an den Client 102.
-
Der Client 102 empfängt die Anmeldeseite vom Dokumentsystem und empfängt eine Anmeldekennung (z. B. eine E-Mail-Adresse) und ein Passwort für einen ersten Benutzernamen von einem Benutzer. Der Client 102 sendet (606) die Anmeldekennung (z. B. „james@gmail1.com“) und das Passwort an das Dokumentsystem 108.
-
Das Dokumentsystem 108 authentifiziert (608) den ersten Benutzernamen anhand der Anmeldekennung und des Passworts (z. B. durch Verwendung des Moduls zur Anmeldungsverarbeitung 124 in den 1 und 2). In manchen Ausführungen beinhaltet die Authentifizierung das Vergleichen der Anmeldekennung und des Passworts mit Informationen, die in der Benutzerinformationsdatenbank 116 gespeichert sind.
-
In manchen Ausführungsformen antwortet das Dokumentsystem 108 auf die Anforderung (gegebenenfalls nach einer erfolgreichen Anmeldung) durch Umleiten der Anforderung von Dokumentinformationen, indem es, wie nachstehend unter Bezugnahme auf die Operation 624 und die Operation 714 beschrieben, eine Umleitungs-Internetseite an den Client 102 sendet.
-
Das Dokumentsystem 108 sendet (610) ein Cookie und die angeforderte Dokumentinformation an den Client 102. In diesem Beispiel beinhaltet die Dokumentinformation eine Liste von dem ersten Benutzernamen zugewiesenen Dokumenten. Das an den Client gesendete Cookie 328-1A beinhaltet Informationen über den ersten Benutzernamen (z. B. „james@gmail1.com“), der vom Client 102 während des Anmeldevorgangs 604–606–608 bereitgestellt wird.
-
Der Client 102 empfängt (612) das Cookie und die Dokumentinformation und zeigt (614) die Dokumentinformation auf einer GUI 111 an. Das empfangene Cookie wird für gewöhnlich in einem Cookie Cache 324 (3) beim Client 102 gespeichert und für gewöhnlich wird ein Cookie-Baum oder Cookie-Verzeichnis aktualisiert, um die Hinzufügung des empfangenen Cookies zum Cookie Cache wiederzugeben.
-
In 6B, wenn der Client 102 mit einer anderen Anmeldekennung (z. B. einem anderen Benutzernamen als dem für den Zugriff auf Dokumentinformationen verwendeten letzten Benutzernamen) Dokumentinformationen anfordert (616), sendet (618) das Dokumentsystem 108 eine Anmeldeseite (z. B. die in 5C gezeigte Benutzerschnittstelle 502-C) an den Client 102. In manchen Ausführungsformen sendet der Client 102 ein Cookie (z. B. Cookie 328-1A) mit der Anforderung und informiert damit das Dokumentsystem 108 über die über den Client 102 aktuell angemeldeten Benutzernamen. Wie an anderer Stelle in diesem Dokument erläutert, sind die im Cookie identifizierten Benutzernamen für gewöhnlich Benutzernamen, die im Dokumentsystem über eine Einzelbrowseranwendung beim Client 102 angemeldet sind. Optional verifiziert das Dokumentsystem 108 die Benutzernameninformation im Cookie und wenn der Benutzername, unter dem die Anforderung abgesendet wurde, aktuell nicht angemeldet ist, wird die Anmeldeseite vom Dokumentsystem 108 an den Client 102 gesendet.
-
Der Client 102 empfängt die Anmeldeseite und sendet (620) die Anmeldekennung und ein Passwort für einen zweiten Benutzernamen (z. B. „james_k@gmail2.com“) zusammen mit dem Cookie (z. B. Cookie 328-1A) an das Dokumentsystem 108. Das Dokumentsystem 108 authentifiziert (622) den zweiten Benutzernamen und leitet (624) die Anforderung von Dokumentinformationen um. Das Umleiten beinhaltet die Änderung der URL in der empfangenen Anforderung, um einen aktiven (oder ausgewählten) Benutzernamen anzugeben, der der bereitzustellenden Dokumentinformation zugewiesen ist. Die URL wird beispielsweise auf „http://docs.google.eom/a/gmail2.com“ geändert, wobei der Pfad „/a/gmail2.com“ zur Identifizierung eines entsprechenden Benutzernamens (z. B. eines Benutzernamens in der Domain „gmail2.com“) verwendet wird. Die Umleitungsoperation wird nachstehend unter Bezugnahme auf Operation 714 in 7A erläutert.
-
Das Dokumentsystem 108 sendet (626) ein Mehrbenutzer-Cookie und die angeforderte Dokumentinformation an den Client. Die Dokumentinformation enthält beispielsweise eine Liste von dem zweiten Benutzernamen zugewiesenen Dokumenten. Das Mehrbenutzer-Cookie enthält Informationen über den ersten Benutzernamen und den zweiten Benutzernamen. Tatsächlich fügt das Dokumentsystem 108 den zweiten Benutzernamen dem Cookie 328-1A hinzu, um Cookie 328-1B zu ergeben.
-
Der Client 102 empfängt (628) das Mehrbenutzer-Cookie 328-1B und die Dokumentinformation und zeigt (630) die Dokumentinformation auf der GUI 111 an. Der Client speichert auch das Mehrbenutzer-Cookie 328-1B in seinem Cookie Cache und macht das Mehrbenutzer-Cookie so für die Rücksendung an das Dokumentsystem 108 verfügbar, wenn der Client danach eine Anforderung an das Dokumentsystem 108 sendet.
-
In 6C fordert (632) der Client 102 einer anderen angemeldeten Anmeldekennung (z. B. dem ersten Benutzernamen) zugewiesene Dokumentinformation an. Der Client 102 sendet auch die Mehrbenutzer-Cookies (z. B. Cookie 328-1B). Die Anforderung beinhaltet einen Benutzerschlüssel (z. B. „/a/gmail1.com“), der zur Identifizierung eines entsprechenden Benutzernamens (z. B. eines Benutzernamens in der Domain „gmail1.com“) verwendet wird. Von den Benutzernamen in Cookie 328-1B wird „james@gmail.com“ als der entsprechende Benutzername ausgewählt, da der Domainname „james@gmail1.com“ zum Benutzerschlüssel passt. Als Antwort auf die Anforderung sendet (634) das Dokumentsystem 108 Dokumentinformationen, die dem ausgewählten Benutzernamen (z. B. „james@gmail1.com“) entsprechen. In manchen Ausführungsformen sendet das Dokumentsystem 108 auch das Mehrbenutzer-Cookie (z. B. Cookie 328-1B). Optional beinhaltet das an den Client zurückgesendete Mehrbenutzer-Cookie aktualisierte Informationen (z. B. eine aktualisierte letzte Aktivitätszeit) im Vergleich mit dem von Client 102 mit der Anforderung übersandten Mehrbenutzer-Cookie. Der Client 102 empfängt die Dokumentinformation und zeigt (636) die Dokumentinformation auf der GUI 111 an.
-
Die 7A und 7B sind Flussdiagramme, die ein Verfahren 700 zur Verwaltung mehrerer Anmeldungen auf einem Server gemäß manchen Ausführungsformen darstellen. Das Verfahren wird auf einem Server-System mit einem oder mehreren Prozessoren und Speicherkapazität für ein oder mehrere Programme ausgeführt, die von einem oder mehreren Prozessoren (z. B. Dokumentsystem 108) ausgeführt werden.
-
Das Server-System empfängt (702) von einem jeweiligen Client-System eine Anforderung von Dokumentinformationen. Die Anforderung kann beispielsweise eine http-Anfrage nach Dokumentinformationen vom Dokumentsystem 108 (z. B. „http://docs.google.com“) sein.
-
In einem Beispiel beinhaltet (704) die angeforderte Dokumentinformation eine Liste von Dokumenten, auf die der Requester (z. B. ein bestimmter Benutzername) Zugriff hat. In diesem Beispiel beinhaltet die Anforderung einen Pfad oder einen Query String, um anzuzeigen, dass die Anforderung eine Liste von Dokumenten betrifft.
-
In einem anderen Beispiel beinhaltet (706) die Anforderung von Dokumentinformationen einen Dokumentenschlüssel und die Dokumentinformationen beinhalten ein dem Dokumentenschlüssel entsprechendes Dokument. In einer Implementierung dieser exemplarischen Ausführungsform beinhaltet die Anforderung einen Dokumentenschlüssel (z. B. „0123456“) im Query String (z. B. „?docid=0123456“) einer URL (z. B. „http://docs.google.com/?docid=0123456“). In anderen Implementierungen beinhaltet die Anforderung den Dokumentenschlüssel im Pfad der Anforderungs-URL (d. h. der in einer an das Dokumentsystem gesendeten HTTP-Anfrage enthaltenen URL). Alternativ ist der Dokumentenschlüssel in dem empfangenen Cookie enthalten. In manchen Ausführungsformen, wenn die Anforderungs-URL keinen Pfad oder Query String enthält, um anzugeben, dass die Anforderung ein bestimmtes Dokument betrifft (z. B. enthält die Anforderung keinen Dokumentenschlüssel), wird die Anforderung als Anforderung einer Liste von Dokumenten eingestuft und es wird eine Liste von Dokumenten als Antwort auf die Anforderung bereitgestellt.
-
In manchen Implementierungen ist der in einer Anforderung eines spezifischen Dokuments enthaltene Dokumentenschlüssel benutzerspezifisch. In manchen Implementierungen jedoch sind manche Dokumentenschlüssel offene Schlüssel, die jedem Zugriff gewähren (d. h. solche Dokumentenschlüssel sind nicht benutzerspezifisch).
-
Das Server-System empfängt (708) vom jeweiligen Client-System ein Cookie, das eine Vielzahl von Benutzernamen identifiziert, die auf dem Server-System über das jeweilige Client-System angemeldet sind. In einem Beispiel beinhaltet die Vielzahl von angemeldeten Benutzernamen einen ersten Benutzernamen und einen zweiten Benutzernamen, der sich vom ersten Benutzernamen unterscheidet (z. B. das Cookie 328-1B in 6C, das den ersten Benutzernamen „james@gmail1.com“ und den zweiten Benutzernamen „james_k@gmail2.com“) beinhaltet.
-
Im vorstehenden Beispiel ist (710) der erste Benutzername in dem empfangenen Cookie in einer ersten Domain und der zweite Benutzername in dem empfangenen Cookie ist in der zweiten Domain. Die erste Domain unterscheidet sich von der zweiten Domain. Der erste Benutzername „james@gmail1.com“ ist beispielsweise in der ersten Domain „gmail1.com“ und der zweite Benutzername „james_k@gmail2.com“ ist in der zweiten Domain „gmail2.com“. Die erste Domain „gmail1.com“ unterscheidet sich von der zweiten Domain „gmail2.com“.
-
In den meisten, aber nicht unbedingt allen, Fällen, einschließlich des aktuellen Beispiels, sind alle Benutzernamen in dem empfangenen Cookie demselben Nutzer beim jeweiligen Client-System zugewiesen (712); der Benutzer hat sich auf dem Server-System mit der Vielzahl von Benutzernamen über einen Einzelbrowser des jeweiligen Client-Systems angemeldet. Derselbe Benutzer kann sich beispielsweise auf dem Server-System (z. B. Dokumentsystem 108) mit der Vielzahl von Benutzernamen (z. B. „james@gmail1.com“ und „james_k@gmail2.com“) über den Einzelbrowser des Clients 102 anmelden. Ein herkömmliches Cookie im Einzelbrowser enthält nur einen einzelnen Benutzernamen (z. B. entweder „james@gmail1.com“ oder james_k@gmail2.com, aber nicht beide).
-
Die hier beschriebenen Ausführungsformen funktionieren gleichermaßen gut, wenn zwei (oder mehr) unterschiedliche Benutzer mit zwei oder mehr unterschiedlichen Benutzernamen auf dem Dokumentenserver über denselben Browser beim Client 102 angemeldet sind, solange die Benutzer sich gegenseitig hinsichtlich ihrer Dokumente auf dem Dokumentenserver vertrauen. In den hier beschriebenen Ausführungsformen sind Dokumente, die allen Benutzernamen, die aktuell angemeldet und innerhalb des Cookies identifiziert sind, zugewiesen sind, für den aktuellen Benutzer des Browsers beim Client zugänglich. In manchen alternativen Ausführungsformen ist ein Passwort erforderlich, wenn der Benutzer zwischen Benutzernamen wechselt, um auf unterschiedliche Dokumentensätze zuzugreifen, aber dies schmälert die leichte Zugänglichkeit der Dokumente des Benutzers. In wieder einer anderen alternativen Ausführungsform beinhaltet die Benutzerprofilinformation, die vom Dokumentsystem oder einem zugewiesen System gespeichert sind, eine Liste aller dem Dokumentsystem (oder dem zugewiesenen System) bekannten Benutzernamen, die demselben Benutzer zugewiesen werden sollen, und das Dokumentsystem erlaubt mehrfache Anmeldungen durch den Benutzer nur für diese Benutzernamen.
-
Das Server-System leitet (714) die empfangene Anforderung an eine Adresse um, die einem aus der Vielzahl von angemeldeten Benutzernamen ausgewählten Benutzernamen zugewiesen ist. In manchen Ausführungsformen beinhaltet das Umleiten die Änderung der Anforderung (d. h. der URL) in Übereinstimmung mit dem ausgewählten Benutzernamen. Wenn der ausgewählte Benutzername beispielsweise „james@gmail1.com“ lautet, wird die URL in der Anforderung (z. B. „http://docs.google.com“) geändert in „http://docs.google.com/gmail1.com“, „http://docs.google.eom/a/gmail1.com“, „http://docs.google.eom/a/james@gmail1.com“ oder „http://docs.google.eom/a/james_at_gmail1.com“. Die URL in der Anforderung wird analog geändert, wenn der ausgewählte Benutzername „james@gmail2.com“ lautet.
-
In manchen Ausführungsformen beinhaltet das Umleiten die Bereitstellung einer Internetseite einschließlich eines html-Umleitungscodes und der geänderten URL an den Client 102. Der Umleitungscode enthält beispielsweise einen Umleitungsstatuscode wie 302, der eine temporäre Umleitung angibt, oder einen beliebigen anderen geeigneten Statuscode. Bei Empfang der Internetseite mit dem html-Umleitungscode und der geänderten URL sendet die Browseranwendung bei Client 102 automatisch eine neue http-Anfrage an das Server-System (z. B. Dokumentserver 108) mit der geänderten URL und startet somit den Vorgang der Bearbeitung einer eingehenden Anforderung beim Dokumentsystem neu. Alternativ kann das Server-System eine umgeleitete Internetseite direkt (d. h. mittels Server-Scripting) bereitstellen, ohne dem Client eine Internetseite mit einem http-Umleitungscode zu senden.
-
Das Server-System empfängt (716) die umgeleitete Anforderung (z. B. die geänderte URL). Das Server-System verarbeitet (718) als Antwort auf die umgeleitete Anforderung diese als eine Anforderung seitens des ausgewählten Benutzernamens und sendet dem jeweiligen Client-System Dokumentinformationen, die der Anforderung seitens des ausgewählten Benutzernamens entsprechen. Wenn der ausgewählte Benutzername beispielsweise „james@gmail1.com“ lautet, sendet der Dokumentserver 108 dem Benutzernamen „james@gmail1.com“ entsprechende Dokumentinformationen (z. B. eine Liste von Dokumenten).
-
In manchen Ausführungsformen beinhaltet (720) das Verarbeiten der Anforderung als eine Anforderung seitens des ausgewählten Benutzernamens die Kontrolle, ob der ausgewählte Benutzer Zugriff auf die Dokumentinformation hat. In manchen Ausführungsformen beinhaltet die Kontrolle den Vergleich des Benutzernamens mit einer Zugriffssteuerungsliste für die Dokumentinformation (z. B. autorisierte Benutzernamen für ein entsprechendes Dokument oder einen Dokumentensatz (z. B. eine Liste von Dokumenten)). Optional beinhaltet die Kontrolle das Abrufen einer Zugriffssteuerungsliste für die Dokumentinformation (z. B. von der Dokumentdatenbank 120). Optional wird die Kontrolle bei einem Server innerhalb des Server-Systems, das ACL-bezogene Dienste ausführt, durchgeführt.
-
Alternativ beinhaltet (722) das Verarbeiten der Anforderung als eine Anforderung seitens des ausgewählten Benutzernamens die Kontrolle, ob irgendein Benutzername aus der Vielzahl der Benutzernamen, die in dem empfangenen Cookie identifiziert wurden, Zugriff auf die Dokumentinformation hat. Wenn der Benutzer beispielsweise unter dem ersten und zweiten Benutzernamen angemeldet ist: „james@gmail1.com“ und „james_k@gmail2.com“, kontrolliert das Dokumentsystem 108, ob entweder „james@gmail1.com“ oder „james_k@gmail2.com“ Zugriff auf die Dokumentinformation hat. Mit anderen Worten, selbst wenn der ausgewählte Benutzername (z. B. „james@gmail1.com“) keinen Zugriff auf die Dokumentinformation hat, stellt das Dokumentsystem 108 die Dokumentinformation bereit, wenn irgendein anderer Benutzername unter der Vielzahl von Benutzernamen (z. B. „james_k@gmail2.com“) in dem empfangenen Cookie Zugriff auf die Dokumentinformation hat.
-
In manchen Ausführungsformen beinhaltet (724) das Verarbeiten der Anforderung als eine Anforderung seitens des ausgewählten Benutzernamens die Identifizierung eines Benutzernamens unter der Vielzahl von Benutzernamen (in dem empfangenen Cookie), der die höchste Zugriffsebene für die Dokumentinformation besitzt. Wenn der Benutzer beispielsweise sowohl unter dem ersten als auch dem zweiten Benutzernamen angemeldet ist: „james@gmail1.com“ und „james_k@gmail2.com“, kontrolliert das Dokumentsystem 108, ob entweder „james@gmail1.com“ oder „james_k@gmail2.com“ eine höchste Zugriffsebene für die Dokumentinformation hat. Wenn der erste Benutzername einen Nur-Lese-Zugriff und der zweite Benutzername einen Lese-Schreib-Zugriff hat, stellt das Dokumentsystem 108 die Dokumentinformation mit dem Lese-Schreib-Zugriff bereit, ungeachtet dessen, ob der ausgewählte Benutzername der erste Benutzername oder der zweite Benutzername ist.
-
In manchen Ausführungsformen beinhaltet (726) die Anforderung von Dokumentinformationen einen Benutzerschlüssel und der ausgewählte Benutzername aus der Vielzahl von angemeldeten Benutzernamen wird in Übereinstimmung mit dem Benutzerschlüssel und der Vielzahl von den durch das Cookie identifizierten Benutzernamen ausgewählt. Der Benutzerschlüssel kann beispielsweise der vollständige Benutzername (z. B. „james@gmail1.com“), ein Teil des Benutzernamens (z. B. die Domain „gmail1.com“, „gmail1“ oder „1“) oder irgendein anderer Schlüssel sein, der den Benutzernamen eindeutig identifiziert (z. B. eine Raute, die durch Anwendung einer Rautenfunktion dem Benutzernamen hinzugefügt wird, oder ein entsprechender Wert). In manchen Ausführungsformen ist der Benutzerschlüssel verschlüsselt.
-
In manchen Ausführungsformen umfasst (730) der Benutzerschlüssel wenigstens einen Teilbereich eines Pfads in der Anforderung von Dokumentinformationen. Der Benutzerschlüssel („gmail1.com“) ist beispielsweise Teil des Pfads in der Anforderungs-URL (z. B. „http://docs.google.eom/a/gmail1.com“). In manchen Ausführungsformen umfasst der Benutzerschlüssel wenigstens einen Teilbereich eines Query Strings in der Anforderung der Dokumentinformation (z. B. „http://docs.google.com/?userid=gmail1.com“).
-
In manchen Ausführungsformen beinhaltet (728) das Senden von Dokumentinformationen an das jeweilige Client-System das Senden einer Internetseite einschließlich der Dokumentinformation an das jeweilige Client-System. Die Internetseite beinhaltet zwei oder mehrere Verknüpfungen und eine jeweilige Verknüpfung der zwei oder mehreren Verknüpfungen beinhaltet den Benutzerschlüssel. Die Benutzerschnittstelle 502-D in 5D beinhaltet beispielsweise eine Liste von Dokumenten und die Liste von Dokumenten beinhaltet die Dokumentpositionen 540. Jede Dokumentposition 540 beinhaltet eine Verknüpfung (in 5D nicht gezeigt) mit dem entsprechenden Dokument in der Dokumentdatenbank 120. Jede Verknüpfung beinhaltet den Benutzerschlüssel (z. B. wird die erste Verknüpfung auf „http://docs.google.com/a/gmail1.com/?docid=123456789“ verwiesen und die zweite Verknüpfung wird auf „http://docs.google.com/a/gmail1.com/?docid=ABCDEFGHI“) verwiesen. Dies erlaubt dem Dokumentsystem 108, den ausgewählten Benutzernamen zu identifizieren, wenn ein verknüpftes Dokument ausgewählt wird.
-
In einem anderen Beispiel beinhaltet die an das jeweilige Client-System gesendete Dokumentinformation eine Internetseite, die eine erste Verknüpfung und eine zweite Verknüpfung aufweist, die jeweils denselben Dokumentenschlüssel, aber einen unterschiedlichen Benutzerschlüssel enthalten. In diesem Beispiel beinhaltet die erste Verknüpfung einen ersten Benutzerschlüssel und die zweite Verknüpfung beinhaltet einen zweiten Benutzerschlüssel. Die Internetseite kann beispielsweise eine erste als „das Dokument als james@gmail1.com ansehen“ bezeichnete Verknüpfung und eine zweite als „das Dokument als james_k@gmail2.com ansehen“ bezeichnete Verknüpfung enthalten. Die erste Verknüpfung wird auf „http://docs.google.com/a/gmail1.com?docid=0123456“ und die zweite Verknüpfung auf „http://docs.google.com/a/gmail2.com?docid=0123456“ verwiesen. Ganz allgemein kann die an einen jeweiligen Client gesendete Dokumentinformation mehrere Verknüpfungen mit einem oder mehreren Dokumenten beinhalten und diese Verknüpfungen können je nach Implementierung und auch abhängig von der spezifischen, an das Server-System gesendeten Anforderung entweder denselben Benutzerschlüssel oder unterschiedliche Benutzerschlüssel beinhalten.
-
Festzuhalten ist, dass Details der vorstehend mit Bezug auf das Verfahren 700 beschriebenen Vorgänge auch analog auf nachstehend beschriebene Verfahren zutreffen einschließlich des Verfahrens 800. Der Kürze wegen werden diese Details nachstehend nicht wiederholt.
-
Die 8A und 8B sind Flussdiagramme, die ein Verfahren zur Verwaltung mehrfacher Anmeldungen auf einem Server gemäß manchen Ausführungsformen darstellen. Das Verfahren wird auf einem Server-System mit einem oder mehreren Prozessoren und Speicherkapazität für ein oder mehrere Programme ausgeführt, die von einem oder mehreren Prozessoren (z. B. Dokumentsystem 108) ausgeführt werden.
-
Das Server-System empfängt (802) von einem jeweiligen Client-System eine Anforderung von Dokumentinformationen, wobei die Anforderung einen Benutzerschlüssel enthält (siehe z. B. die Beschreibung der Operation 702).
-
In einem Beispiel beinhaltet (804) die angeforderte Dokumentinformation eine Liste von Dokumenten, auf die der Requester zugreifen kann (siehe z. B. die Beschreibung von Operation 704).
-
In einem anderen Beispiel beinhaltet (806) die Anforderung von Dokumentinformationen einen Dokumentenschlüssel und die angeforderten Dokumentinformationen beinhalten ein dem Dokumentenschlüssel entsprechendes Dokument (siehe z. B. die Beschreibung von Operation 706).
-
In manchen Ausführungsformen umfasst (808) der Benutzerschlüssel wenigstens einen Teilbereich eines Pfads in der Anforderung von Dokumentinformationen (siehe z. B. die Beschreibung von Operation 730).
-
Das Server-System empfängt (810) vom jeweiligen Client-System ein Cookie, das eine Vielzahl von Benutzernamen identifiziert, die über das jeweilige Client-System auf dem Server-System angemeldet sind. In einem Beispiel beinhaltet die Vielzahl von angemeldeten Benutzernamen einen ersten Benutzernamen und einen zweiten Benutzernamen (siehe z. B. die Beschreibung von Operation 708).
-
In manchen Ausführungsformen ist (812) die Vielzahl von Benutzernamen einem Benutzer des jeweiligen Client-Systems zugewiesen und der Benutzer ist auf dem Server-System mit der Vielzahl von Benutzernamen über einen Einzelbrowser auf dem jeweiligen Client-System angemeldet (siehe z. B. die Beschreibung von Operation 712).
-
Wenn der Benutzerschlüssel zum ersten Benutzernamen passt, sendet (814) das Server-System dem jeweiligen Client-System Dokumentinformationen, die dem ersten Benutzernamen entsprechen. Mit anderen Worten, die Anforderung wird als Anforderung seitens des ersten Benutzernamens verarbeitet. Wenn der Benutzerschlüssel (z. B. „gmail1.com“) beispielsweise zu einem Benutzernamen im Cookie (z. B. „james@gmail1.com“) passt, sendet das Dokumentsystem 108 die mit dem passenden Benutzernamen (z. B. „james@gmail1.com“) übereinstimmenden Dokumentinformationen. In manchen Ausführungsformen gilt der Benutzerschlüssel als passend zum ersten Benutzernamen, wenn der Benutzerschlüssel wenigstens zu einem Teil des ersten Benutzernamens passt (z. B. passt „gmail1.com“ zu einem Teil von „james@gmail1.com“).
-
In manchen Ausführungsformen beinhaltet (818) das Verarbeiten der Anforderung als eine von einem ausgewählten Benutzernamen (aus der Vielzahl von Benutzernamen in dem empfangenen Cookie) ausgehende Anforderung die Kontrolle, ob der ausgewählte Benutzer Zugriff auf die Dokumentinformation hat (siehe z. B. die Beschreibung von Operation 720).
-
Alternativ oder zusätzlich beinhaltet (820) das Verarbeiten der Anforderung als eine seitens des ausgewählten Benutzernamens ausgehende Anforderung die Kontrolle, ob irgendein Benutzername aus der Vielzahl von im empfangenen Cookie identifizierten Benutzernamen Zugriff auf die Dokumentinformation hat (siehe z. B. die Beschreibung von Operation 722).
-
In manchen Ausführungsformen beinhaltet (822) das Verarbeiten der Anforderung als eine vom ausgewählten Benutzernamen ausgehende Anforderung das Identifizieren eines Benutzernamens aus der Vielzahl von Benutzernamen (in dem empfangenen Cookie), der eine höchste Zugriffssteuerungsebene für die Dokumentinformation besitzt (siehe z. B. die Beschreibung von Operation 724).
-
In manchen Ausführungsformen sendet das Server-System, wenn der Benutzerschlüssel zu zwei oder mehreren Benutzernamen aus der Vielzahl von Benutzernamen passt, einem ersten angemeldeten Benutzernamen unter den passenden Benutzernamen entsprechende Dokumentinformationen. Alternativ sendet das Server-System, wenn der Benutzerschlüssel zu zwei oder mehreren Benutzernamen aus der Vielzahl von Benutzernamen passt, Dokumentinformationen, die einem zuletzt verwendeten Benutzernamen unter den passenden Benutzernamen entsprechen. In wieder anderen Ausführungsformen sendet das Server-System, wenn der Benutzerschlüssel zu zwei oder mehreren Benutzernamen aus der Vielzahl von Benutzernamen passt, Dokumentinformationen, die irgendeinem der passenden Benutzernamen entsprechen (z. B. wenn der Benutzerschlüssel zum ersten und zweiten Benutzernamen passt, sendet das Server-System dem ersten Benutzernamen entsprechende Dokumentinformationen und dem zweiten Benutzernamen entsprechende Dokumentinformationen).
-
Wenn der Benutzerschlüssel zum zweiten Benutzernamen im empfangenen Cookie passt, sendet (816) das Server-System dem jeweiligen Client-System Dokumentinformationen, die dem zweiten Benutzernamen entsprechen (siehe z. B. die Beschreibung von Operation 724).
-
In manchen Ausführungsformen enthält (824) der Benutzerschlüssel einen Domainnamen. In einem Beispiel ist der erste Benutzername im empfangenen Cookie in einer ersten Domain und ein zweiter Benutzername im empfangenen Cookie ist in einer zweiten Domain (z. B. ist der erste Benutzername „james@gmail1.com“ in der Domain „gmail1.com“ und der zweite Benutzername „james_k@gmail2.com“ ist in der Domain „gmail2.com“). Die erste Domain unterscheidet sich von der zweiten Domain. Der Benutzerschlüssel gilt als zum ersten Benutzernamen passend, wenn der Benutzerschlüssel zur ersten Domain passt (z. B. wenn der Benutzerschlüssel „gmail1.com“ lautet, gilt der Benutzerschlüssel als passend zu dem ersten Benutzernamen „james@gmail1.com“). Der Benutzerschlüssel gilt als zum zweiten Benutzernamen passend, wenn der Benutzerschlüssel zur zweiten Domain passt (z. B. wenn der Benutzerschlüssel „gmail2.com“ lautet, gilt der Benutzerschlüssel als passend zum ersten Benutzernamen „james@gmail2.com“).
-
In dem vorstehenden Beispiel umfasst (826) der Domainname im Benutzerschlüssel einen Namen der ersten Domain und der zweiten Domain. Genauer gesagt lautet im vorstehenden Beispiel der Domainname im Benutzerschlüssel entweder „gmail1.com“ oder „gmail2.com“.
-
In manchen Ausführungsformen beinhaltet (828) das Senden von Dokumentinformationen an das jeweilige Client-System das Senden einer Internetseite einschließlich der Dokumentinformationen an das jeweilige Client-System. Wenn die Dokumentinformation eine Liste von Dokument ist, auf die ein jeweiliger Benutzername, der dem Benutzerschlüssel entspricht, zugreifen kann, beinhaltet die Internetseite für gewöhnlich eine oder zwei Verknüpfungen und eine jeweilige Verknüpfung der zwei oder mehr Verknüpfungen beinhaltet den Benutzerschlüssel (siehe z. B. die Beschreibung von Operation 728).
-
In manchen Ausführungsformen empfängt das Server-System eine Abmeldeanforderung vom jeweiligen Client-System. In manchen Ausführungsformen meldet das Server-System als Antwort auf die Abmeldeanforderung den ausgewählten Benutzernamen vom Server-System ab. Das Server-System entfernt den ausgewählten Benutzernamen aus dem Cookie. Die übrigen Benutzernamen aus der Vielzahl von Benutzernamen bleiben auf dem Server-System angemeldet. In manchen Ausführungsformen meldet das Server-System als Antwort auf die Abmeldeanforderung die Vielzahl von Benutzernamen (d. h. alle im empfangenen Cookie identifizierten Benutzernamen) vom Server-System ab.
-
Wie unter Bezugnahme auf die 6B dargestellt, wird ein computerimplementiertes Verfahren zum Hinzufügen eines Benutzernamens zu einem Cookie gemäß manchen Ausführungsformen beschrieben. Das computerimplementierte Verfahren wird auf einem Server-System mit einem oder mehreren Prozessoren und Speicherkapazität für ein oder mehrere durch den einen oder mehreren Prozessoren ausgeführte Programme (z. B. Dokumentsystem 108) ausgeführt.
-
Das Server-System empfängt von einem jeweiligen Client-System ein erstes Cookie, das wenigstens einen ersten Benutzernamen beinhaltet, der über das jeweilige Client-System auf dem Server-System angemeldet ist. In 6B beispielsweise empfängt das Dokumentsystem 108 ein Cookie, das den ersten Benutzernamen „james@gmail1.com“ als Antwort auf Operation 620 beinhaltet. In manchen Ausführungsformen beinhaltet das Cookie Informationen zur Identifizierung des ersten Benutzernamens (z. B. ein dem ersten Benutzernamen zugewiesenes Rautenzeichen) anstatt den ersten Benutzernamen direkt zu beinhalten.
-
Das Server-System empfängt vom jeweiligen Client-System Anmeldeinformationen für einen zweiten Benutzernamen. In 6B beispielsweise empfängt das Dokumentsystem 108 die Anmeldekennung und das Passwort für einen zweiten Benutzernamen, „james_k@gmail2.com“, als Antwort auf Operation 620.
-
Das Server-System authentifiziert die Anmeldeinformation für den zweiten Benutzernamen (siehe z. B. die Beschreibung von Operation 608).
-
Wenn die Anmeldeinformation für den zweiten Benutzernamen authentifiziert ist, erzeugt das Server-System ein zweites Cookie, sodass das zweite Cookie wenigstens den ersten Benutzernamen und den zweiten Benutzernamen enthält (z. B. beinhaltet das zweite Cookie 328-1B den ersten Benutzernamen „james@gmail1.com“ und den zweiten Benutzernamen „james_k@gmail2.com“.
-
Das Server-System sendet das zweite Cookie an das jeweilige Client-System (siehe z. B. die Beschreibung von Operation 626). In einer typischen Implementierung ersetzt das zweite Cookie das erste Cookie in einer Cookie-Datenbank (Cookie Cache) beim jeweiligen Client-System.
-
Wendet man sich der Benutzerschnittstelle (UI) zu, wird gemäß manchen Ausführungsformen ein Verfahren zum Bereitstellen einer UI beschrieben, um mehrfache Anmeldungen auf einem Serversystem zu verwalten. Das Verfahren wird auf einem Server-System mit einem oder mehreren Prozessoren und Speicherkapazität für ein oder mehrere Programme ausgeführt, die von einem oder mehreren Prozessoren (z. B. Dokumentsystem 108) ausgeführt werden.
-
Das Server-System stellt einem jeweiligen Client-System eine Internetseite für den Zugriff auf Dokumentinformationen vom Server-System zur Verfügung (z. B. eine Internetseite, die als eine Benutzerschnittstelle 502-D in 5D angezeigt wird). Die Internetseite beinhaltet ein vom Benutzer wählbares Objekt (z. B. Benutzerauswahlschaltfläche 517), um einen Benutzernamen aus einer Vielzahl von Benutzernamen auszuwählen, die über das jeweilige Client-System auf dem Server-System angemeldet sind.
-
Das Server-System empfängt eine Anforderung von Dokumentinformationen, die einem ausgewählten Benutzernamen aus der Vielzahl von Benutzernamen entsprechen. Wenn der Benutzer beispielsweise einen ersten Benutzernamen „james@gmail1.com“ auswählt, empfängt das Server-System eine http-Anfrage „http://docs.google.com/a/gmail1.com“.
-
Das Server-System sendet als Antwort auf den Empfang der Anforderung dem jeweiligen Client-System der Anforderung entsprechende Dokumentinformationen.
-
Die vorstehende Beschreibung wurde zum Zweck der Erklärung unter Bezugnahme auf spezifische Ausführungsformen beschrieben. Die oben erläuternden Erörterungen sind jedoch nicht als erschöpfend zu betrachten und beschränken die Erfindung in keiner Weise auf die offenbarten präzisen Formen. Angesichts der obigen Lehren sind viele Modifikationen und Variationen im Rahmen des Möglichen. Die Ausführungsformen wurden gewählt und beschrieben, um die Prinzipien der Erfindungen und ihre praktischen Anwendungen zu beschreiben, um es dadurch anderen Fachleuten zu ermöglichen, die Erfindungen und verschiedenen Ausführungsformen mit verschiedenen Modifizierungen zu nutzen, die für die besondere, erwägte Nutzung geeignet sind.