DE60003322T2 - Verfahren, vorrichtung und computerprogrammprodukt für die aktivitäts-basierte zusammenarbeit durch ein computersystem ausgestattet mit einem dynamik-manager - Google Patents

Verfahren, vorrichtung und computerprogrammprodukt für die aktivitäts-basierte zusammenarbeit durch ein computersystem ausgestattet mit einem dynamik-manager Download PDF

Info

Publication number
DE60003322T2
DE60003322T2 DE60003322T DE60003322T DE60003322T2 DE 60003322 T2 DE60003322 T2 DE 60003322T2 DE 60003322 T DE60003322 T DE 60003322T DE 60003322 T DE60003322 T DE 60003322T DE 60003322 T2 DE60003322 T2 DE 60003322T2
Authority
DE
Germany
Prior art keywords
data
data change
local
tool
network
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
DE60003322T
Other languages
English (en)
Other versions
DE60003322D1 (de
Inventor
E. Raymond OZZIE
E. Jack OZZIE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Groove Networks Inc
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 Groove Networks Inc filed Critical Groove Networks Inc
Publication of DE60003322D1 publication Critical patent/DE60003322D1/de
Application granted granted Critical
Publication of DE60003322T2 publication Critical patent/DE60003322T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Description

  • GEBIET DER ERFINDUNG
  • Die Erfindung betrifft im Allgemeinen Computer, die zur Kommunikation über ein Netzwerk, wie das Internet, verbunden sind, und insbesondere ein verteiltes computerbasiertes System zum Koordinieren und andersartiges Verwalten von Daten gemäß einem verteilten Datenmodell.
  • STAND DER TECHNIK
  • Das Internet hat eine dynamische, öffentliche Umgebung für die Kommunikation und Interaktion unter seinen Millionen von Benutzern geschaffen. In der Geschäftswelt hat das Internet das Verhältnis zwischen Verkäufer-Hersteller, Hersteller-Vertreiber, Vertreiber-Kunde und anderen neu definiert. Mit der Ausweitung der Internet-Technologie auf interne, gesicherte Netzwerke einzelner Firmen, das "Intranet" oder "private Internet", wie es genannt wird, sind neue Formen einer gemeinsamen Dokumentund Informationsnutzung unter einzelnen Angestellten und Arbeitsgruppen unter Verwendung eines Firmenverzeichnisses und der Netzwerkinfrastruktur möglich geworden. On-Line-Dienste, wie elektronische Anschlagtafeln und Chat Rooms, elektronischer Handel und technische Unterstützung für Produkte, sind im World Wide Web ("WWW" oder "Web".) erhältlich, das über das Internet arbeitet.
  • Das Internet hat als Kern eine Server-Klient-Architektur, in der einzelne Klienten (d. h., Nutzer des Internet-Inhaltes) über computerausführbare Applikationen, wie Browser, mit Servern (d. h., Anbietern von Internet-Inhalten) in Verbindung treten, um Dokumente von Web-Sites zu erhalten. Browser sind Software-Programme, die Personalcomputern ermöglichen, Internet-Dokumente anzufordern, zu empfangen (z. B., herunterzuladen), zu interpretieren und präsentieren, und sich allgemein im Internet zu bewegen. Web-Server haben für gewöhnlich Standard-Schnittstellen für das Ausführen externer Programme, von welchen die häufigste die Common Gateway Interface (CGI) ist. Web-Sites sind Sammlungen von Dokumenten, die für gewöhnlich aus einer Homepage und zugehörigen verknüpften Dokumenten bestehen, die sich auf Servern, fern dem Klienten befinden. Die Dokumente können zusammengesetzte Dokumente sein, die Daten, Graphiken, Bild, Ton und/oder andere Arten von Medien enthalten, wie auch Verknüpfungen zu anderen Dokumenten. Im Prinzip ist das WWW ein Netz miteinander verbundener Dokumente, oder genauer, Dokumentobjekte, die sich an verschiedenen Stellen im Internet befinden.
  • Unter den Dokumentarten im WWW gibt es Dokumente und Skripten. Ein Skript ist ein ausführbares Programm oder ein Satz von Befehlen, der in einer Datei gespeichert ist, die von einem Web-Server abgespielt werden kann, um ein Dokument zu erzeugen, das dann an den Web-Browser zurückgeleitet wird. Zu typischen Skriptaktionen zählen das Abspielen von Bibliothek-Programmen oder anderen Applikationen, um Informationen von einer Datei oder Datenbank zu erhalten, oder das Aussenden einer Anforderung, um Informationen von einem anderen Computer zu erhalten, oder das Einspielen eines Dokuments, das einer gewählten Hypertext-Verknüpfung entspricht. Ein Skript wird auf dem Web-Server gespielt, wenn zum Beispiel ein Benutzer eine bestimmte Hypertext-Verknüpfung im Web-Browser wählt.
  • Der Internet-Technologie liegen Fortschritte in der Standardisierung zugrunde, einschließlich der Personalcomputer-Hardware, Software, der Netzwerkprotokolle und infrastruktureller Vereinbarungen (wie der "Uniform Resource Locator" oder "URL"). URLs stellen Standortadressen für alle Dokumentobjekte im WWW bereit. Ein URL verweist eindeutig auf ein Dokumentobjekt und definiert häufig einen Zugriffsalgorithmus unter Verwendung von Internet-Protokollen.
  • "Internet-Protokolle", wie der Begriff hierin verwendet wird, sind als gegenwärtige oder zukünftige Sprachvereinbarungen und gegenwärtige oder zukünftige Kommunikationsprotokolle definiert, die allgemein akzeptiert und zur Erzeugung von Mitteilungen verwendet werden, einschließlich Dokumenten zur Übertragung über das Internet, beziehungsweise zur Übertragung solcher Mitteilungen über das Internet. Solche Sprachvereinbarungen umfassen zum Beispiel gegenwärtig die Hypertext Markup Language ("HTML") und eXtensible Markup Language ("XML"). Solche Kommunikationsprotokolle umfassen zum Beispiel gegenwärtig das Hypertext Transfer Protocol ("HTTP"), TCP/IP, FTP und GOPHER. Dem Fachmann sind diese Sprachvereinbarungen und Protokolle bekannt.
  • HTML ist eine Sprache, die zum Schreiben von Hypertext-Dokumenten verwendet wird, die Multimediainhalte und Verknüpfungen zu anderen Dokumenten enthalten. Ein HTML-Dokument enthält einen hierarchischen Satz von Markup-Elementen, wobei die meisten Elemente ein Startbegrenzerzeichen, gefolgt vom Inhalt, gefolgt von einem Endbegrenzerzeichen, aufweisen. Begrenzerzeichen sind in Winkelklammern ("<" und ">") eingeschlossen und zeigen, wie das Dokument strukturiert ist und wie das Dokument anzuzeigen ist, wie auch Destinationen und Markierungen für Hypertextverknüpfungen. Es gibt Begrenzerzeichen für Markup-Elemente, wie Titel, Anfangsblöcke, Textattribute, wie fett und kursiv, Listen, Absatzgrenzen, externe Verknüpfungen zu anderen Dokumenten und interne Verknüpfungen zu anderen Teilen desselben Dokuments, graphische Bilder und viele andere Dokumentmerkmale. Viele Bücher sind in Umlauf, die sich auf das Programmieren unter Verwendung der HTML beziehen.
  • XML ist eine weitere der Sprachvereinbarungen, die in den Internet-Protokollen enthalten sind. XML ist mit HTML kompatibel und zu dieser komplementär, zumindest in ihrer aktuellen Version. Es ist eine Standardmöglichkeit, eine Klasse von Datenobjekten, die in Computern gespeichert sind, sogenannte XML-Dokumente, sowie das Verhalten von Programmen, welche diese Dokumente verarbeiten, zu beschreiben. XML-Dokumente bestehen aus Speichereinheiten, sogenannten Instanzen, die entweder Text oder binäre Daten enthalten. Text besteht aus Zeichen, von welchen einige den Zeicheninhalt der Dokumente darstellen und einige das Markup darstellen. Das Markup kodiert eine Beschreibung des Dokuments, wie seine Speicherstruktur und logische Struktur. Ein Software-Modul, als XML-Purozessor bezeichnet, wird zum Lesen von XML-Dokumenten verwendet und bietet Zugriff zu deren Inhalt und Struktur. Weitere Informationen in Bezug auf XML können unter Bezugnahme auf Version 1.0 der XML Spezifikation erhalten werden, die in <HTTP://www.w3.org/XML> verfügbar ist und hier zum Zwecke der Bezugnahme zitiert wird.
  • Ein Web-Server und ein Web-Browser kommunizieren für gewöhnlich unter Verwendung des HTTP-Mitteilungsprotokolls und des darunter liegenden TCP/IP-Datentransportprotokolls des Internets. Im HTTP stellt der Web-Browser eine Verbindung zu einem Web-Server her und sendet eine HTTP-Anforderungsmitteilung an den Server. Als Antwort auf die Anforderungsmitteilung prüft der Web-Server die Berechtigung, führt jede angeforderte Aktion, wie das Herunterladen eines Dokuments, das durch seinen URL identifiziert ist, aus, und sendet eine HTTP-Antwortsmitteilung zurück, die entweder das HTML-Dokument enthält, das sich aus der angeforderten Aktion ergibt, oder eine Fehlermitteilung. Das zurückgesendete Dokument kann einfach eine statische Datei sein, die in dem Web-Server gespeichert ist, oder kann dynamisch unter Verwendung eines Skripts erstellt werden, das als Reaktion auf die Anforderungsmitteilung aufgerufen wird.
  • Zur Nutzung des Internets wurden Werkzeuge und Betriebsmittel in Übereinstimmung mit den Internet-Protokollen entwickelt, einschließlich firmenkriterischer Anwendungen, wie der E-Mail. E-Mail ist eine elektronische Post, durch die Dokumente elektronisch an ausgewählte Adressen gesendet und von diesen empfangen werden. Es wurde geschätzt, dass eine große Mehrheit der Interaktionen auf Internet-Basis durch die Verwendung von E-Mail und anderen browserbasierten Medien erfolgt, die einem "Dokument-Senden/Empfangen"-Modell folgen. Vielleicht betrachten Benutzer auf Grund dieses Modells das Internet häufig an sich als "Peer-to-Peer"-Struktur, wobei Einzelne auf Dokumente zugreifen, die von Einzelnen bereitgestellt wurden, ohne Intervention einer höheren Autorität.
  • Insbesondere wurden Computerspiele für mehrere Spieler entwickelt, die Punkt-zu-Punkt-Kommunikationen verwenden. Eines der Spiele ist in einem Artikel mit dem Titel "AMAZE: a Muliplayer Computer Game", IEEE Software; IEEE Computer Society, Los Alamitos, Band 2, Nr. 3, 1. Mai 1985, S. 30–39, XP000743662 ISSN: 0740–7459, offenbart. Wie in diesem Artikel offenbart, wird das Spiel auf mehreren persönlichen Arbeitsplatzstationen gespielt, die durch ein lokales Netzwerk verbunden sind. Jede Arbeitsplatzstation errechnet den Status einer Spielfigur, die von der Arbeitsplatzstation gesteuert wird, und der Status der Figuren wird über das Netzwerk ausgetauscht. Zur Verringerung der Zusatzkapazität, die durch den Austausch des Status der Figuren notwendig ist, extrapoliert jede Arbeitsplatzstation den Status der Figuren, die nicht von ihr gesteuert werden, und verwendet den extrapolierten Status, um das Spiel zu spielen, bis eine Aktualisierung des realen Status einlangt. Ein anderes Computerspiel für mehrere Spieler, das in U.S. Patent Nr. 5,899,810 offenbart ist, verwendet eine hybride Architektur, wobei das Spiel auf mehreren persönlichen Arbeitsplatzstationen gespielt wird, die durch ein lokales Netzwerk an einen zentralen Server angeschlossen sind. Der Server empfängt Eingänge, die eine örtliche Figurenbewegung betreffen, von jeder Arbeitsplatzstation, berechnet das gesamte Bewegungsschema und leitet dieses Bewegungsschema zu den einzelnen Arbeitsplatzstationen. Die Arbeitsplatzstationen bewegen dann die Figuren in der Nähe der örtlichen Figur. Zur Verbesserung der Systemleistung berechnet jede Arbeitsplatzstation, wenn die Netzwerklatenz signifikant ist, das Ergebnis gewisser Aktionen, die nahe Figuren betreffen, und teilt dieses Ergebnis dem zentralen Server mit, der daraufhin die Ergebnisse zu den anderen Arbeitsplatzstationen weiterleitet.
  • Das Internet ist in der Bereitstellung unterhaltender und nützlicher Kommunikationsmöglichkeiten für Benutzer dynamisch und flexibel, obwohl es nicht alle Bedürfnisse der Benutzer erfüllt. Obwohl Benutzer zunehmend über das Internet interagieren, interagieren sie weiterhin "außerhalb" des Internets auf herkömmlichere Weise, wie durch multimediale (Telefon, Telefax, Whiteboard), multitemporale (Echtzeit, Zustellung über die Nacht) und andere informelle Kommunikationsmittel.
  • Es wäre wünschenswert, das Internet-Musterbeispiel auf persönliche und private Kommunikationen und andere gemeinsame und wechselseitige Aktivitäten zwischen einzelnen Personen und kleinen Gruppen in gemeinsamen privaten Räumen auszuweiten. Solche Interaktionen sollten vorzugsweise spontan, direkt und vertraulich zwischen Personalcomputern von Teilnehmern oder anderen netzwerkfähigen Einrichtungen stattfinden, ohne solche Interaktionen Server-Flaschenhälsen auszusetzen, durch welche der Internet-Verkehr für gewöhnlich zu Web-Sites einer dritten Partei durchgeschleust wird, wo Kommunikationen unterbrochen und Vertrauensbestimmungen verletzt werden können.
  • Es wäre auch wünschenswert, eine Technik bereitzustellen, die Benutzern an verschiedenen fernen Plätzen ermöglicht, Dokumente auf einer Peer-to-Peer-Basis gemeinsam zu benutzen und zu erstellen, während Kopien der Dokumente an lokalen Stellen gespeichert sind. Eine solche Technik sollte jedem der Benutzer ermöglichen, Änderungsanforderungen in Bezug auf die Dokumente zu stellen, wobei diese Änderungen dann asynchron an den Kopien an allen lokalen Stellen in koordinierter Weise durchgeführt werden.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Die Erfindung liegt in einer Einrichtung, einer sogenannten Aktivität, die in einem Personalcomputersystem, einem Kommunikationsgerät oder einer anderen netzwerkfähigen Einrichtung betreibbar ist, zur Ausführung einer gemeinsamen konzentrierten Aufgabe mit anderen, fern angesiedelten Benutzern, wie zum Beispiel eine "Chat"-, Spiel- oder Geschäftsapplikation. Die Aktivität enthält ein Werkzeug zur Erstellung von Datenänderungs-Anforderungen, umfassend Deltas, die auf Benutzerinteraktionen ansprechen. Die Aktivität hat auch eine Datenänderungsmaschine zum Speichern von Daten in einem vorzugsweise nicht flüchtigen Dauerspeicher in Übereinstimmung mit einem Datenmodell. Die Datenänderungsmaschine enthält ein Werkzeug-Ende für den Empfang von Deltas von dem Werkzeug, Versehen der Deltas mit aktivitätsspezifischen Befehlen zur Ausführung der Anforderung, und Senden einer Benachrichtigung bezüglich der Datenänderung, die durch die Delta-Ausführung bewirkt wurde, zu dem Werkzeug. Die Datenänderungsmaschine enthält auch ein Dynamikmanager-Ende für den Empfang von Datenänderungsanweisungen zur Ausführung der Deltas von einem Dynamikmanager, d. h., zur Ausführung der Delta-Befehle, um die angeforderten Datenänderungen vorzunehmen.
  • In einem anderen Aspekt liegt die Erfindung in einem System zum Bereitstellen von Kommunikationen und anderen gemeinsam und wechselseitigen Aktivitäten zwischen Einzelnen und kleinen Gruppen in gemeinsamen privaten Räumen, sogenannten "Teleräumen". In dem System interagieren Teilnehmer oder Mitglieder eines Teleraumes durch netzwerkfähige Einrichtungen, die über ein Netzwerk, z. B. das Internet, miteinander kommunizieren und individuelle lokale Kopien von Teleraumdaten speichern können. Jeder Teleraum ist eine Instantiierung einer oder mehrerer Aktivitäten, die auf jeder der netzwerkfähigen Einrichtungen von Mitgliedern des Teleraumes betreibbar ist. Jede Aktivität enthält ein oder mehrere Werkzeuge zum Initiieren von Datenänderungs-Anforderungen oder Deltas als Reaktion auf Interaktionen von Teleraum-Mitgliedern. Jede Aktivität enthält auch eine oder mehrere Datenänderungsmaschinen, getrennt von den Werkzeugen, zum Verwalten der lokalen Kopie von Teleraumdaten in Übereinstimmung mit einem gemeinsamen Datenmodell. Das Datenmodell ist zum Beispiel aktivitätsspezifisch und vorzugsweise teleraumweit. Jede netzwerkfähige Einrichtung enthält auch einen Dynamikmanager, der auf Deltas anspricht, um die Datenänderungsmaschine anzuweisen, die Deltas auszuführen, indem die angeforderten Änderungen an der lokalen Datenkopie vorgenommen werden, und die Ausführung der Deltas von den verschiedenen netzwerkfähigen Einrichtungen zu koordinieren.
  • In einem weiteren Aspekt kann die Erfindung in einem vernetzten System ausgeführt werden, das mehrere, vorzugsweise netzwerkfähige Einrichtungen an verschiedenen Standorten umfasst, die zur Kommunikation, vorzugsweise gemäß den Internet-Protokollen, verbunden sind. Jede netzwerkfähige Einrichtung hat (a) einen Speicher zum Speichern einer lokalen Kopie aktivitätsbezogener Daten in Übereinstimmung mit einem gemeinsamen Datenmodell, (b) eine oder mehrere Aktivitäten, von welchen jede ein oder mehrere Werkzeuge und entsprechende Datenänderungsmaschinen enthält, wie zuvor beschrieben wurde, (c) einen Kommunikationsmanager zum Veranlassen, dass Deltas unter allen netzwerkfähigen Einrichtungen des vernetzten Systems gemeinsam benutzt werden, die an dem Teleraum teilnehmen, den die Deltas betreffen; und (d) einen Dynamikmanager zum Koordinieren der Ausführung sowohl lokal erzeugter als auch fern erzeugter Deltas. Die Benutzerinteraktionen und die daraus resultierenden Deltas können an jeder der netzwerkfähigen Einrichtungen des vernetzten Systems eingeleitet beziehungsweise erzeugt werden, und die Deltas werden zu jeder der Einrichtungen vorzugsweise über das Netzwerk übertragen. Die Dynamikmanager leiten den Betrieb ihrer lokalen Datenänderungsmaschinen, vorzugsweise um die Ausführung von Deltas zu priorisieren und eine grundlegende Konsistenz der Daten über das vernetzte System aufrecht zu erhalten. Das vernetzte System ermöglicht somit den Benutzern an verschiedenen fernen Stellen, z. B. Daten gemeinsam zu benutzen und zu erstellen oder andere Aktivitäten unabhängig auf einer Peer-zu-Peer-Basis auszuführen, während im Wesentlichen konsistente Kopien der Daten an jeder der netzwerkfähigen Einrichtungen verwaltet werden, so dass diese selbst bei einer Trennung vom Netzwerk verwendet werden können.
  • In einem weiteren Aspekt kann die Erfindung als aktivitätsbasiertes Kollaborationssystem ("activitybased collaboration system" – ABC-System) zur Interaktion zwischen Personen implementiert werden. Das ABC-System enthält mehrere netzwerkfähige Einrichtungen, die z. B. über öffentliche Netzwerke (z. B. das Internet oder weiträumige Netzwerke ("wide area networks" – WANs) oder über private Netzwerke (z. B. lokale Netzwerke ("local area networks" – LANs – oder Intranet), durch Kabel-, faseroptische, Infrarot- (IR) oder anderen Formen von Kommunikationsverbindungen verbunden werden können, um das zuvor beschriebene vernetzte System zu bilden. Jede netzwerkfähige Einrichtung ist mit dem zuvor beschriebenen Speicher und einem Framework ausgestattet, das einen oder mehrere Dynamikmanager enthält. Die netzwerkfähigen Einrichtungen können vorzugsweise an die öffentliche Netzwerkinfrastruktur, persönliche Arbeitsplatzapplikationen und Infrastruktur (manchmal als "persönliches Internet" bezeichnet) und, wenn zutreffend, an ein Firmen-Intranet angeschlossen werden. Das ABC-System verwendet vorzugsweise dynamische, einschnappende Aktivitätskomponenten jeweils zur Ausführung einer bestimmten Aufgabe, wie "Chat", Dokumenterstellung, Spiel, usw. Die Aktivitätskomponenten können Software umfassen, die zum Beispiel als schrumpfverpacktes Produkt bereitgestellt oder über das Netzwerk, z. B. das Internet, heruntergeladen wird. Die Aktivitätskomponenten können durch gemeinsame Applikationsprogrammierungsschnittstellen ("application programming interfaces" – API) mit dem Frame work arbeiten. Daher kann das Framework als Plattform für Applikationen in Form der Aktivitätskomponenten betrachtet werden und dient als solche.
  • Somit kann die Erfindung in Form von separaten Handelsprodukten und Diensten implementiert werden, welche die Bereitstellung der einzelnen Aktivitätskomponenten, des Frameworks für einzelne netzwerkfähige Einrichtungen, und/oder des vernetzten oder ABC-Systems, wie auch der Kommunikationsdienste zur Ausführung von Interaktionen zwischen Einrichtungen, die das System bilden, beinhalten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die oben genannten und weitere Vorteile der Erfindung werden mit Bezugnahme auf die folgende Beschreibung in Verbindung mit den beiliegenden Zeichnungen offensichtlicher, von welchen:
  • 1 ein Blockdiagramm einer beispielhaften Architektur eines herkömmlichen Computersystems ist;
  • 2 ein Blockdiagramm einer herkömmlichen Applikation ist, die auf dem Computersystem von 1 läuft, in dem ein Steuermodul sowohl für die Verbindung mit einer Anzeige oder anderen Benutzerschnittstelle wie auch für das Verwalten von Daten in Übereinstimmung mit einem Datenmodell verantwortlich ist;
  • 3 ein Blockdiagramm eines Systems auf Internet-Basis ist, das sowohl ein Klient-Server-System für das WWW als auch ein Peer-to-Peer-System für ein persönliches Web gemäß einer Ausführungsform der Erfindung zeigt;
  • 4 ein Blockdiagramm eines Teils des ABC-Systems ist, das in dem Computersystem von 1 gemäß einer Ausführungsform der Erfindung implementiert ist;
  • 5 ein Blockdiagramm eines Teiles des ABC-Systems ist, das auf dem Computersystem von 1 implementiert ist, und das typische Teleraum-Applikationen gemäß einer Ausführungsform der Erfindung zeigt; und
  • 6 ein Blockdiagramm eines Teiles des ABC-Systems ist, das für den Schach-Teleraum von 5 implementiert ist.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • A. Terminologie
  • Es könnte sich als nützlich erweisen, zu Beginn einige Begriffe und Abkürzungen zu erklären, die in dieser Beschreibung verwendet werden, einschließlich: Aktivität, Klient, Kommunikationsmanager, Komponente, Steuerung, Delta, Einrichtung, Dynamikmanager, Maschine, Framework, Identität, Mitglied, Navigation, Person, Server, Teleraum, Werkzeug, URL und XML.
  • "Aktivität" bezieht sich auf das, was ein Benutzer tatsächlich mit dem ABC-System macht, um mit anderen Benutzern zu interagieren. Der Begriff "Aktivität" kann abhängig vom Zusammenhang eine von zwei Bedeutungen haben. Von einem "äußeren Standpunkt" bedeutet er eine Laufzeit-Interaktion zwischen dem ABC-System und einem Computerbenutzer, z. B. ermöglicht eine Aktivität dieser Art Benutzern, auf einem gemeinsamen Whiteboard zu zeichnen, oder ermöglicht zwei oder mehreren Benutzern, in Echtzeit zu plaudern. Eine Aktivität in diesem Sinne kann auch ein Hintergrunddienst (d. h., ein Agent) sein, der unter dem Namen des Benutzers auf einer lokalen oder Server-Einrichtung lauft, wie ein Archiv-Serveragent oder ein ankommender Telefax-Agent. Von einem "inneren Standpunkt" eines Software-Designers bedeutet "Aktivität" ein modulares, computerausführbares Programm, das auf einem Personalcomputer eines Benutzers oder einer anderen Form von Einrichtung laufen kann und eine gezielte Aufgabe ausführen kann. Eine Aktivität in diesem Sinne besteht aus zwei Arten von Komponenten, einem Werkzeug und einer Maschine, die zum Zeitpunkt des Designs kombiniert werden, um eine "Aktivitätsmatrize" zu schaffen. Eine Aktivitätsmatrize kann auf zahlreiche Weisen vertrieben werden, zum Beispiel als schrumpfverpackte Software oder als Software, die vom Web heruntergeladen werden kann. Es ist beabsichtigt, dass weit verbreitete Programme, die zur Wortverarbeitung, Tabellenkalkulation usw. verwendet werden, Versionen haben werden, die zur Verwendung in dem ABC-System gestaltet sind und als solches in Form einer Aktivitätsmatrize passend zu ABC-System-Programmierschnittstellen verkauft werden.
  • "Klient" bezieht sich auf einen Personalcomputer eines Benutzers, ein Kommunikationsgerät oder eine andere Form von Einrichtung, die für eine Interaktion zwischen Menschen geeignet ist und an ein Netzwerk, z. B. das Internet, angeschlossen werden kann. Hintergrundprogramme, die auf dem Personalcomputer eines Benutzers laufen, werden als "Client Service Controllers" bezeichnet. Vordergrund-Benutzerschnittstellenprogramme ("user interface programs" – UI-Programme), die auf dem Personalcomputer eines Benutzers laufen, werden als "Client UI Controllers" bezeichnet.
  • "Kommunikationsmanager" bezeichnet einen Mechanismus zum Zuweisen einkommender und ausgehender Deltas zu den richtigen Zielorten. Die Kommunikationsmanager können zum Beispiel als computerausführbares Programm implementiert werden, das lokal initiierte Deltas, die durch ein Werkzeug/Maschinen-Paar zur Übertragung über ein Netzwerk, z. B. das Internet, geschaffen wurden, zu anderen fernen Personalcomputern oder einer anderen Form von netzwerkfähiger Vorrichtung leitet oder zu einem Relais, wenn diese ferne Einrichtung nicht an das Netzwerk angeschlossen ist; und das fern erzeugte Deltas, die über das Netzwerk, z. B. das Internet, empfangen werden, zu einem Dynamikmanager leitet.
  • "Komponente" bezieht sich auf ein computerausführbares Programm und seine Betriebsmittel, die innerhalb einer Aktivität verwendet werden. Alle Komponenten werden durch URLs identifiziert. Es ist beabsichtigt, dass das Web eine globaler Quelle für Komponenten sein kann, wobei Versionen sicher auf eine geeignete Komponentenplattform im ABC-System heruntergeladen werden.
  • "Steuerung" bezieht sich auf ein computerausführbares Programm höchster Ebene, das die "innere" Funktionalität des ABC-Systems treibt. Eine Steuerung wird auf eine bestimmte Plattform abgestimmt, zum Beispiel eine UNIXTM Daemon-Steuerung oder eine Steuerung für Microsoft WindowsTM, die auf einem IntelTM Mikroprozessor-basiertem Computersystem läuft. Zwei allgemeine Arten von Steuerungen sind eine Dienst-Steuerung, die als Hintergrundprozess im Allgemeinen für Benutzer unsichtbar läuft, und eine Benutzerschnittstellen-(UI-)Steuerung, die interaktiv vom Benutzer gesteuert wird.
  • "Delta" bezieht sich auf eine in sich geschlossene Dateneinheit, die eine oder mehrere Werkzeug-Maschinen-Anforderungen (d. h., Benachrichtigungen oder Aufforderungen in Bezug auf gewünschte Änderungen in den Daten) enthält. Werkzeuge initiieren eine Delta-Schaffung durch den Dynamikmanager als Reaktion auf eine Benutzerinteraktion und legen sie Maschinen zur asynchronen Ausführung vor, wie in der Folge beschrieben ist, unter der Leitung eines Dynamikmanagers. Ein Delta hat ein spezifisches Format, einschließlich eines Anfangsblockteils zur Bereitstellung von Steuerinformationen und eines Nutzlastteils zur Bereitstellung von Informationen in Bezug auf die Daten, auf die sich die Anforderung bezieht. Ein einzelnes Delta kann eine oder mehrere Nutzlasten haben und wenn mehrere Nutzlasten verwendet werden, kann jede an Teleraummitglieder mit einzigartigen Einrichtungsfähigkeiten oder Benutzerrollen gerichtet sein. Werkzeuge fordern Informationen in Bezug auf mögliche Datenänderungen von Maschinen zur Anzeige oder anderen Form von Darstellung für Benutzer an und werden asynchron benachrichtigt, wenn Deltas Änderungen in der Anzeige veranlassen.
  • "Einrichtung" bezieht sich auf eine physische Hardware-Einrichtung, wie einen Personalcomputer (PC) oder ein Kommunikationsgerät, das für den vorliegenden Zweck, wenn in diesem Zusammenhang nicht anders angegeben, für gewöhnlich netzwerkfähig ist, d. h., mit anderen netzwerkfähigen Einrichtungen über das Netzwerk, z. B. das Internet unter Verwendung von Internet-Protokollen, kommunizieren kann. Allen Einrichtungen ist von dem ABC-System ein eindeutiger Identitätscode zugeordnet, sie haben URLs und unterscheiden sich von den Personen, welche die Einrichtungen benutzen. Eine Einrichtung beherbergt möglicherweise viele Teleräume. Eine Einrichtung kann zum Beispiel ein PC, ein zellulares Telephon, ein Faxgerät, ein tragbarer Organisationshelfer ("hand-held organizer"), ein Kabel-Fernsehgerät, eine elektronische Unterhaltungseinheit (wie elektronisches Spielzeug und Spiele und ein Stereogerät oder jedes andere derartige Gerät, jede Anlage oder jedes Produkt sein, das netzwerkfähig ist).
  • "Dynamikmanager" bezieht sich auf den Teil des Frameworks des ABC-Systems, der die Schaffung von Deltas erleichtert und deren Ausführung koordiniert. Der Dynamikmanager kann zum Beispiel als computerausführbares Programm implementiert sein, das auf einem Personalcomputer eines Benutzers oder einer anderen Form von netzwerkfähiger Einrichtung läuft.
  • "Endpunkt" bezieht sich auf eine einzigartige Paarung einer Einrichtung und einer Person. Das ABC-System verwendet dieses Konzept als eine Methode zur eindeutigen Unterscheidung einer Person von mehreren Benutzern einer Einrichtung oder von Einrichtungen unter mehreren Computern, die von derselben Person verwendet werden.
  • "Maschine" bezieht sich auf das, was als die "untere Hälfte" einer Aktivität bezeichnet werden kann, welche die Verwaltung und Modifizierung einer dauerhaften Speicherung und von Datenstrukturen innerhalb des ABC-Systems implementiert. Maschinen sind als Komponenten gepackt, haben selbst keine Benutzerschnittstellen, sondern sind vielmehr von ihren entsprechenden Werkzeugen für Benutzerschnittstellen abhängig und sind im Wesentlichen tragbar. Maschinen existieren vorzugsweise ausschließlich zum Bedienen ihrer entsprechenden Werkzeuge. Maschinen arbeiten vorzugsweise in universeller Synchronie.
  • "Framework" bezieht sich auf die "inneren Abläufe" des ABC-Systems und enthält die meisten seiner Untersysteme, einschließlich des Dynamikmanagers, aber keine Benutzerschnittstelle. Das Framework ist ein computerausführbares Programm, das auf einem Personalcomputer eines Benutzers oder einer anderen Form von netzwerkfähiger Einrichtung laufen kann, und sitzt logisch zwischen den Hochpegelsteuerungen und den Aktivitäten.
  • "Identität" ist im Allgemeinen synonym mit "Person", obwohl sie sich allgemein auf einen der Namen bezieht, die durch einen URL dargestellt werden, durch den eine Person von anderen erkannt wird. Dieses Konzept kommt ins Spiel, da das ABC-System die Vorstellung umfasst, dass eine Person viele Identitäten oder angenommene Namen (Alias) und zum Beispiel viele verschiedene URLs haben kann.
  • "Mitglied" bezieht sich auf einen Teilnehmer an oder Subskribenten von einem Teleraum und ist im Allgemeinen synonym mit dem Personenteil (im Gegensatz zu dem Einrichtungsteil) eines Endpunktes, wenn auf die Teleraummitgliedschaft Bezug genommen wird.
  • "Navigation" bezieht sich auf die Tätigkeit, sich zwischen URLs zu bewegen und ist in dem ABC-System mit der Navigation zwischen WEB-Seiten und Sites durch einen Web-Browser identisch.
  • "Person" bezieht sich auf einen Menschen oder einen Server, der als Stellvertreter eines Menschen arbeitet, und bezieht sich allgemeinen auf jemanden, der an Aktivitäten in einem Teleraum teilnimmt. Jede Person hat eine oder mehrere Identitäten, von welchen jede eindeutig mit einem URL identifiziert wird.
  • "Server" bezieht sich auf eine Einrichtung, die für gewöhnlich nicht imstande ist, eine Interaktion zwischen Menschen zu leiten und nur in Form von Hintergrundprogrammen unter Dienststeuerungen laufen kann.
  • "Teleraum" bezieht sich auf einen virtuellen Ort, an dem sich Menschen versammeln, um an einer oder mehreren Aktivitäten teilzunehmen und wo Menschen etwas gemeinsam haben. Die Teleräume und die Ergebnisse der Aktivitäten werden in Speichern in den Personalcomputern von Benutzern oder in anderen Formen von netzwerkfähigen Einrichtungen dauerhaft gespeichert. Ein Teleraum wird synchron zwischen einer Einrichtung eines Benutzers und den Einrichtungen anderer Menschen gehalten. Ein Teleraum stellt die logische Einheit von "Mitgliedschaft" und Zugriff zu Aktivitäten dar. Ein Teleraum ist eine Instantiierung einer oder mehrerer Aktivitäten.
  • "Werkzeug" bezieht sich auf das, was als die "obere Hälfte" einer Aktivität bezeichnet werden kann, welche die Benutzerschnittstellen der Aktivität implementiert. Werkzeuge sind als Komponenten verpackt, initiieren die Delta-Schaffung als Reaktion auf ein Benutzerverhalten und interagieren mit entsprechenden Maschinen der einzelnen Aktivitäten, um bestimmte Aufgaben auszuführen.
  • "URL" ist eine Abkürzung für "Universal Resource Locator", die eine eindeutige strukturierte Adresse einer Quelle, wie eines Dokumentes ist, und in einigen Beispielen ein Verfahren darstellt, mit dem eine Quelle behandelt werden sollte. URLs werden hierin für im Wesentlichen alle dauerhaften Objekte, für den Benutzer sichtbare Objekte und für externe Programme sichtbare Objekte verwendet.
  • "XML" ist, wie zuvor erwähnt, eine Abkürzung für "extended Markup Language", die ein strukturiertes Standard-Datenformat ist, das von SGML abgeleitet und zur Verwendung im Web bestimmt ist. Abhängig vom Zusammenhang bezieht sie sich auch auf eine speicherinterne Objektstruktur, die im ABC-System verwendet wird, die mit der XML-Standardsemantik vereinbar ist. Viele XML-Konzepte werden hierein verwendet, wie "Dokumente", "Elemente", "Begrenzerzeichen", "Attribute", "Werte", "Inhalt", "Instanzen", "Verknüpfungen" und "Hinweisadressen". XML wird hierin zum Beispiel zum Strukturieren von Daten in einem Dokument verwendet.
  • B. Herkömmliches Computersystem
  • 1 zeigt eine herkömmliche Systemarchitektur für ein beispielhaftes Computersystem 100, mit dem die offenbarte Erfindung implementiert werden kann. Das beispielhafte Computersystem von 1 wird jedoch nur zu beschreibenden Zwecken besprochen und sollte nicht als Einschränkung der Erfindung verstanden werden. Die Erfindung ist des Weiteren nicht auf Einrichtungen beschränkt, die herkömmlich als Computersysteme angesehen werden, da sie in jeder von verschiedenen Arten von netzwerkfähigen Einrichtungen implementiert werden kann, einschließlich z. B. Videospielkonsolen, persönliche Geräte oder Kabelfernsehgeräten. Obwohl die folgende Beschreibung sich auf Begriffe beziehen kann, die allgemein in der Beschreibung bestimmter Computersysteme verwendet werden, beziehen sich die beschriebenen Konzepte gleichermaßen auf andere Computersysteme, die Systeme mit Architekturen beinhalten, die der in 1 dargestellten unähnlich sind. Zum Beispiel könnten Kabelfernsehgeräte keinen Massenspeicher enthalten, enthalten aber Video-Tuner, die mit Digitalsignalprozessoren gebaut sind.
  • Das Computersystem 100 enthält eine zentrale Verarbeitungseinheit (CPU) 105, die einen herkömmlichen Mikroprozessor enthalten kann, einen Direktzugriffspeicher ("random access memory" – RAM) 110 für die vorübergehende Speicherung von Informationen, einen Nur-Lese-Speicher ("read only memory" – ROM) 115 zur dauerhaften Speicherung von Informationen. Eine Speichersteuerung 120 ist zur Steuerung des System-RAM 110 vorgesehen. Eine Bus-Steuerung 125 ist zur Steuerung eines Busses 130 vorgesehen und eine Unterbrechungssteuerung 135 wird für den Empfang und die Verarbeitung verschiedener Unterbrechungssignale von den anderen Systemkomponenten verwendet.
  • Eine Massenspeicherung kann durch eine Diskette 142, eine CD-ROM 147 oder eine Festplatte 152 bereitgestellt sein. Daten und Software können mit dem Klient- Computer 100 über entfernbare Medien, wie eine Diskette 142 und CD-ROM 147, ausgetauscht werden. Die Diskette 142 ist in ein Diskettenlaufwerk 141 einsetzbar, das durch die Steuerung 140 an den Bus 130 angeschlossen ist. Ebenso ist die CD-ROM 147 in ein CD-ROM-Laufwerk 146 einsetzbar, das durch eine Steuerung 145 an den Bus 130 angeschlossen ist. Schließlich ist die Festplatte 152 Teil eines Festplattenlaufwerkes 151, das durch eine Steuerung 150 an den Bus 130 angeschlossen ist.
  • Eine Benutzereingabe in das Computersystem 100 kann durch eine Reihe von Einrichtungen erfolgen. Zum Beispiel kann eine Tastatur 156 und eine Maus 157 an den Bus 130 durch eine Tastatur- und Maussteuerung 155 angeschlossen sein. Ein Audio-Umwandler 196, der sowohl als Mikrophon wie auch als Lautsprecher dienen kann, ist durch eine Audio-Steuerung 197 an den Bus 130 angeschlossen. Es sollte für den Durchschnittsfachmann offensichtlich sein, dass andere Eingabevorrichtungen, wie ein Stift und/oder eine Tafel und ein Mikrophon zur Spracheingabe, an den Klient-Computer 100 durch den Bus 130 und eine geeignete Steuerung angeschlossen sein können. Eine DMA-Steuerung 160 ist zur Ausführung des direkten Speicherzugriffs auf den System-RAM 110 vorgesehen. Eine visuelle Anzeige wird von einer Video-Steuerung 165 erzeugt, welche die Video-Anzeige 170 steuert.
  • Das Computersystem 100 enthält auch einen Netzwerkadapter 190, der einen Anschluss des Klient-Computers 100 an ein Netzwerk 195 über einen Bus 191 ermöglicht. Das Netzwerk 195, das ein lokales Netzwerk (LAN), ein weiträumiges Netzwerk (WAN) oder das Internet sein kann, kann Universalkommunikationsleitungen verwenden, die mehrere Netzwerkeinrichtuungen miteinander verbinden.
  • Das Computersystem 100 wird im Allgemeinen durch eine Betriebssystem-Software gesteuert und koordiniert. Unter anderen Computersystem-Steuerfunktionen steuert das Betriebssystem die Zuordnung von Systembe triebsmitteln und führt Aufgaben, wie die Prozessplanung, die Speicherverwaltung, Vernetzungs- und I/O-Dienste aus.
  • C. Herkömmliche Methode zum Steuern eines Datenmodells
  • 2 zeigt ein herkömmliches System 200 zum Steuern eines Datenmodells unter Verwendung einer Technik, die als "Model-View-Control" bekannt ist. Im System 200 speichert und verwaltet ein Datenmodellmodul 202 Daten, zum Beispiel eine Datenbank, in Übereinstimmung mit einem Datenmodell. Ein Steuerungsmodul 204, das auf ein lokal initiiertes Ereignis 206 (wie eine Benutzereingabe) oder auf ein extern initiiertes Ereignis 208 (wie Ereignisbenachrichtigungen, die von fernen Computersystemen empfangen werden) anspricht, leitet einen "Einstellen des aktuellen Wertes"-Befehl zu dem Datenmodellmodul 202, um eine Änderung in den gespeicherten Daten zu veranlassen. Das Steuerungsmodul 204 benachrichtigt eine Ausgabevorrichtung, wie eine Anzeige 206, über die Datenänderung. Die Anzeige 206 erhält die geänderten Daten von dem Datenmodellmodul 202 und aktualisiert die Anzeige der Daten, so dass die aktuellen Daten von einem Benutzer betrachtet werden können. Die oben genannte Technik ist streng vom Ereignis angetrieben und linear im Betrieb. Für gewöhnlich werden interne oder externe Ereignisse, die das Steuerungsmodul 204 veranlassen, eine Datenänderung zu befehlen, in einem FIFO- ("first-in, first-out") Zwischenspeicher im Steuerungsmodul 204 gespeichert und dann in der Reihenfolge bearbeitet, in der die Ereignisbenachrichtigung das Steuerungsmodul erreicht. Für gewöhnlich ist in dem System 200 keine Vorkehrung für globale Konsistenzfragen getroffen, das heißt, zur Gewährleistung, dass Kopien der Modelldaten in dem System 200 mit Daten in anderen fernen Systemen konsistent sind.
  • Die herkömmliche Methode zur Steuerung eines Datenmodells, wie beispielhaft in dem System 200 dargestellt ist, war in einem Zeitalter angebracht, in dem Computersysteme, egal ob Großrechner oder Personalcomputer, in relativer Isolierung arbeiteten. Mit dem Aufkommen des Internets verlangen Computerbenutzer verbesserte Möglichkeiten einer Zusammenarbeit und die Erfindung stellt eine sogenannte "modellvermittelten Steuerung" bereit, in der ein Dynamikmanager Änderungen vermittelt, die durch die Datenänderungsmaschine an dem Datenmodell durchgeführt werden.
  • D. Internet-Musterbeispiel für den Intercomputer-Betrieb
  • 3 zeigt eine Internet-Umgebung 300, in der die vorliegende Erfindung vorteilhaft verwendet werden kann. Vom Standpunkt eines Benutzers aus, kommunizieren in einer herkömmlichen Klient-Server-Ansicht 302 einzelne Klienten 306, 308 getrennt über das Internet 309 mit einem Server 310. Jeder Klient 306, 308 kann eine Anforderung durch das Internet 309 an den Server richten und der Server 310 kann als Reaktion darauf auf die Anforderung reagieren, indem zum Beispiel Dokumente, die auf dem Server gespeichert sind, den Klienten über das Internet 309 bereitgestellt werden. Jeder Server 310 und Klient 306, 308 kann als Personalcomputer implementiert sein, wie in 1 dargestellt ist (wobei einige UI-Komponenten im Falle des Servers fakultativ sind), die zur Ausführung geeigneter Programme imstande sind, wie ein Klient-Browser 311 und/oder eine andere Kommunikationsschnittstelle, wie in der Folge beschrieben wird. In einer Peer-to-Peer-Ansicht 312 der Internet-Nutzung stellen die Computersysteme der Benutzer Peer-Einheiten 314A–D dar und Kommunikationen durch das Internet können von einer Peer-Einheit zu einer anderen geleitet werden, ohne offensichtliche Zwischenstationen. Jede Peer-Einheit 314A–D kann als Personalcomputer, wie die in 1 dargestellten, oder als eine andere Form einer netzwerkfähigen Einrichtung implementiert sein. Die Erfindung kann vorteilhaft entweder in Klienten 306, 308 oder Peer-Einheiten 314A–D implementiert sein, obwohl sich diese Beschreibung auf die Implementierung mit einer Peer-to-Peer-Ansicht des Systems konzentriert.
  • Wie in der Folge ausführlicher erklärt wird, können solche Peer-to-Peer-Kommunikationen direkt oder über eine Relais-Einrichtung 316 erfolgen. Die Relais-Einrichtung 316 ist vorzugsweise eine "Speicher- und Weiterleitungseinrichtung", die Mitteilungen, die für eine Peer-inheit 314 bestimmt sind, die vorübergehend vom Internet getrennt ist, speichert und später, beim einem erneuten Anschluss, die Mitteilungen zu dieser Peer-Einheit weiterleiten kann.
  • E. ABC-Systemarchitektur und -betrieb
  • 4 zeigt das ABC-System 400, das auf einer der Peer-Einheiten 314A-D implementiert ist, wie zum Beispiel der Peer-Einheit 314A. Das ABC-System auf der Peer-Einheit 314A hat ein Framework 402, wenigstens einen Teleraum 404, der eine oder mehrere Aktivitäten 405 instantiiert, und eine Benutzerschnittstelle 405. Das Framework 402 stellt vorzugsweise eine Plattform zum Bedienen einer Reihe von Teleräumen 404 bereit. Das Framework 402 weist vorzugsweise eine Modulkonstruktion auf, mit einer Programmiererschnittstelle, auf der die Aktivitäten laufen und durch welche sie mit den Framework-Komponenten kommunizieren.
  • Das Framework 402 enthält einen Benutzerschnittstellenmanager 408, einen Identitätsmanager 410, einen Teleraummanager 412, einen Aktivitätsmanager 414, einen Speichermanager 416, einen Steuerungsdienstmanager 418, einen Dynamikmanager 420 und einen Kommunikationsmanager 422.
  • Der Benutzerschnittstellenmanager (UI-Manager) 408 ist für die Verwaltung gemeinsam benutzter Dienste für eine Reihe von Benutzerschnittstellensteuerungen (nicht gesondert dargestellt) verantwortlich. Der UI-Manager 408 verwaltet den Entwurf von Aktivitäten innerhalb von Feldern eines Anzeigefensters, und stellt sonst ein gewünschtes Erscheinungsbild ("Look anud Feel") für die Benutzerschnittstelle bereit. Der UI-Manager 408 verwaltet auch die Aktivitätsnavigation (zum Beispiel "gehe zu", "vorwärts", "zurück" usw.) und führt eine Navigationsaufzeichnung.
  • Der Identitätsmanager 410 ist für das Verwalten der Identitäten eines Mitgliedes des Teleraumes verantwortlich. Wie zuvor angeführt, ist eine Identität der Name und der entsprechende URL, durch den jeder Benutzer anderen bekannt ist. Einzelne Benutzer können eine oder mehrere Identitäten haben. Ein Identitätsmanager 410 führt eine Aufzeichnung oder Tabelle, vorzugsweise in XML, der Identitäten. Der Identitätsmanager 410 kann auch eine Aufzeichnung oder Tabelle, vorzugsweise in XML, der URLs von Teleraummitgliedern und ihrer entsprechenden Einrichtungs-URL führen. Als Alternative kann ein eigener Mitgliedermanager implementiert sein.
  • Der Teleraummanager 412 ist für die Verwaltung jedes Teleraumes 404 verantwortlich, der auf der Peer-Einheit 314A geöffnet werden kann. Jeder Teleraum 404 ist eine Instantiierung einer oder mehrerer Aktivitäten. Jeder Teleraum 404 hat einen entsprechenden Aktivitätsmanager 414.
  • Der Aktivitätsmanager 414 ist für das (a) Hinzufügen neuer Aktivitäten zu einem Teleraum, (b) Öffnen bestehender Aktivitäten in einem Teleraum, und (c) Aktualisieren der Teleraumaktivitäten aus neuen Aktivitätsmatrizenversionen verantwortlich. Zum Hinzufügen einer neuen Aktivität ist der Aktivitätsmanager 414 mit dem URL einer Aktivitätsmatrize ausgestattet, öffnet die Matrize und gewinnt die Matrizeninformationen (wie Komponenten-URLs) und leitet diese in den Teleraum weiter. Die Matrize definiert die anfängliche Aktivitätskonfiguration für einen Teleraum. Ein Benutzer kann dem Teleraum 404 später, falls erforderlich, zusätzliche Aktivitäten hinzufügen. Nachdem eine Aktivität hinzugefügt wurde, ist sie "Teil" des Tele raumes und für alle Teleraummitglieder sichtbar. Ein Teleraum hat eine Kennung zum Identifizieren seines Aktivitätsmanagers und Binden des Aktivitätsmanagers und der Daten. Vorzugsweise ist mit jedem Dokument ein lokales Verzeichnis verknüpft, mit XML-Kennungsnamen, die in dem Verzeichnis verwaltet werden, um eine Verknüpfung (Verweisadressen oder Zuordnungen) in einer erweiterbaren, Plattform-unabhängigen Weise zwischen dem Dokument und seinem entsprechenden Teleraum auszudrücken. Jedes Teleraummitglied hat ein Framework und eine Aktivitätsmatrize für den Teleraum, der auf seiner oder ihrer Peer-Einheit 314A–D verfügbar ist.
  • Jede Aktivität enthält ein Werkzeug, wie das Werkzeug 424, und eine Maschine, wie die Maschine 426. Das Werkzeug 424 stellt die Benutzerschnittstellen- (UI-) Fähigkeit für die Aktivität bereit, die über die UI 406 mit einem Mitglied interagiert. Die UI-Interaktion kann UI-Ereignisse enthalten, die zum Beispiel über die Tastatur 156 (1) oder die Maus 157 (1) initiiert werden. Als Reaktion auf solche UI-Ereignisse kann das Werkzeug 424 seine entsprechende Maschine 426 auffordern, Datenmodelländerungen vorzunehmen, indem es bei der Maschine 426 asynchrone Datenänderungsbenachrichtigungen zur asynchronen Aktualisierung von UIs vorlegt, wenn Datenänderungen eintreten. Ein Werkzeug 424 implementiert auch Applikationsprogrammschnittstellen ("application program interfaces" – APIs) für eine Interaktion mit Hintergrunddiensten, die unter der Leitung des Steuerungsmanagers 417 bereitgestellt werden. Die Maschine 426 ist für die Verwaltung und Änderung der Daten verantwortlich, die den Teleraum 404 unterstützen, und/oder sich aus einer Benutzerinteraktion ergeben, die durch das Werkzeug erhalten wird. Die Maschine 426 kann dauerhafte Modelldaten modifizieren und asynchrone Datenänderungsbenachrichtigungen an das Werkzeug 424 ausgeben, beides unter der Leitung und Steuerung des Dynamikmanagers 420, wie in der Folge erklärt wird. Der Speichermanager 416 steuert den Zugriff zu den gespeicherten Daten.
  • Zur Erzeugung einer Aktivitätsmatrize kann ein Software-Entwickler ein Werkzeug und eine Maschine zur Verwendung in dem Framework schreiben oder adaptieren. Eine Aktivitätsmatrize ist eine dauerhafte Darstellung der Werkzeug- und Maschinenkomponenten, die eine Aktivität umfassen. Eine Aktivitätsmatrize kann zum Beispiel als schrumpfverpackte Software vertrieben werden oder zum Beispiel über das Internet auf die Peer-Einheit 314A von einem fernen Server heruntergeladen werden. Die Aktivitätskomponenten können als Web-Dokumente betrachtet werden und werden dauerhaft durch URLs dargestellt. Die Aktivitätsmatrize hat vorzugsweise selbst einen URL, der die Verfolgung der Änderungen im Aktivitätsdesign ermöglicht. Die Aktivitätsmatrize kann eine einzelne Aktivitätsmatrize oder eine Aktivitätssammelmatrize sein. Eine einzelne Aktivitätsmatrize bezieht sich nur auf eine Aktivität, wie den "Chat". Eine Aktivitätssammelmatrize bezieht sich auf eine Sammlung von Aktivitäten, wie "Chat und Entwurf".
  • Zur Verwendung erhält das ABC-System 400 eine Mitgliederidentität über den Identitätsmanager 410, öffnet einen Teleraummanager, fordert beim Teleraummanager eine Öffnung des Teleraumes über einen URL an, und fordert beim Teleraummanager einen Aktivitätsmanager an, und dann öffnet der Aktivitätsmanager eine Aktivität, für gewöhnlich unter Verwendung des URL der Aktivität. Dann ist das ABC-System 400 bereit, dass Mitglieder den Teleraum benutzen können, um die gemeinsamen, zielgerichteten Aufgaben auszuführen, die durch die bestimmte Aktivität geboten werden.
  • 5 zeigt eine beispielhafte Mehrfach-Teleraumnutzung eines ABC-Systems 500 auf den Peer-Einheiten 314A–D. Es sollte offensichtlich sein, dass das ABC-System 500 ein verteiltes System ist. Als solches werden nur die Komponenten der Peer-Einheit 314A beschrieben, da die Peer-Einheiten 314B–D analoge Komponenten haben und somit deren gesonderte Beschreibung nicht notwendig ist.
  • Wie für Peer-Einheit 314A dargestellt, enthält das ABC-System 500 eine Reihe beispielhafter Tele räume, in welchen die Peer-Einheit 314A als Mitglied eingetragen ist, einschließlich eines Autokonstruktions-Teleraumes 502, eines Chat-Teleraumes 504, und eines Schachspiel-Teleraumes 506. Wie ebenso dargestellt, hat eine Peer-Einheit 314 eine Anzahl von Komponenten, die während des Betriebs der Teleräume 502, 504, 506 verwendet werden. Die Peer-Einheit 314A hat einen Speicher 510, der einen Teleraum-Datensatz 508 verwaltet, der jeden der Teleräume 502, 504, 506 auflistet und beschreibt, in dem sie Mitglied ist, und einen Mitglieder-Datensatz 512, der jede der Identitäten von Teleraum-Mitgliedern auflistet und beschreibt, die sich in diesen Teleräumen aufhalten können. Eine UI 512 kann vom Benutzer initiierte Änderungen an den Teleraum- und Mitglieder-Datensätzen 508, 514 empfangen.
  • Jeder der Teleräume 502, 504, 506 instantiiert eine andere der dargestellten Aktivitäten 522, 524, 526. (Als Alternative könnten die dargestellten Aktivitäten 522, 524, 526 in einem einzigen Teleraum vorhanden sein, wobei in diesem Fall alle Mitglieder des einzelnen Teleraumes Zugriff zu jeder der Aktivitäten hätten). Jede Aktivität 522, 524, 526 enthält ein entsprechendes Werkzeug 532, 534, 536, das für die Aktivität spezifisch ist und unter der Steuerung einer entsprechenden Maschine 542, 544, 546 zur Ausführung von Änderungen an einem entsprechenden Datenmodell 552, 554, 556 steht, das in dem Speicher 510 enthalten ist, und das in jedem der Teleräume 502, 504, 506 dauerhaft ist. Zum Beispiel ist der Autokonstruktions-Teleraum 502 ein Beispiel für eine Aktivität 522, die ein Werkzeug 532 in der Form einer CAD-Software ("Computer-Aided Design") enthält, und der Schachspiel-Teleraum 506 ist ein Beispiel für eine Aktivität 526, die ein Werkzeug 536 in der Form eines Software-Schachspiels enthalten kann.
  • Benutzer verfolgen die Aktivitäten 522, 524, 526 der Teleräume 502, 504, 506 über die Benutzerschnittstelle 514, die eine Verbindung zu den Werkzeugen 532, 534, 536 hat, um den Werkzeugen die Benutzeranforderungen zu liefern. Als Reaktion auf die Anforderungen ändern die Maschinen 542, 544, 546 den dauerhaften Status eines entsprechenden Datenmodells 552, 554, 556 im Speicher 510 unter der Steuerung des Dynamikmanagers 501, um einen aktuellen Status wiederzugeben. Zum Beispiel könnte der dauerhafte Zustand der Daten für den Schachspiel-Teleraum 506 ein Schachbrett und die Positionen der Schachfiguren auf dem Brett enthalten; eine Benutzeranforderung könnte den Zug einer Schachfigur spezifizieren, der eine Änderung in den Daten darstellt, d. h., ein Delta; und der aktuelle Status würde die Ausführung des Deltas und Vollendung des Zuges reflektieren.
  • 6 zeigt den Betrieb des ABC-Systems 500 unter Bezugnahme auf dessen Komponenten, die sich in der Peer-Einheit 314A befinden und unter Bezugnahme auf 5 beschrieben sind. Die Maschine 546 präsentiert dem Werkzeug 536 mögliche Aktionen oder Optionen (z. B. Züge von Schachfiguren), die im Sinne der besonderen zielgerichteten Aufgabe der Aktivität 526 implementiert werden können. Das Werkzeug 536 interagiert mit einem Benutzer, der ein Mitglied des Teleraumes 506 ist (wie in dem Mitglieder-Datensatz 512 verzeichnet) durch die Benutzerschnittstelle 514, indem es eine Ansicht der Aktivität präsentiert (z. B. eine Ansicht des Schachbrettes und möglicherweise einer Liste von Zügen). Als Reaktion auf eine Benutzereingabe, die als Benutzergeste bezeichnet wird (z. B. Läufer zieht von X nach Y), die über die Benutzerschnittstelle 514 eingegeben wird, zeichnet das Werkzeug 536 eine Benutzerwahl im Speicher auf, indem es veranlasst, dass ein Delta erzeugt und im System gespeichert wird. Ein Delta ist eine Einheit einer angeforderten Änderung, vorzugsweise in der Form eines Container-Objekts. Container-Objekte sind jenen, die mit objektorientierten Programmierungstechniken vertraut sind, bestens bekannt. Das Werkzeug 536 ist für die Bestimmung der Schalteben der Änderung, die in dem Delta angefordert wird, verantwortlich. Das Delta-Container-Objekt kann einen oder mehrere Befehle zur Ausführung der Änderung zusätzlich zu benutzerspezifizierten Daten enthalten, z. B., eine Iden tifizierung einer bestimmten Schachfigur und die Ursprungs- und Zielpositionen auf dem Brett, die einen Zug dieser Schachfigur darstellen. Bei der Erzeugung ist das Delta frei von Befehlen und stellt selbst nur eine Änderungsanforderung dar, bis es mit den richtigen Befehlen durch die Maschine 546 gefüllt wird, um die Änderung auszuführen. Es liegt in der Verantwortung der Maschine 546, in dem Delta die Befehle, die zur Durchführung der Änderung notwendig sind, maschinenspezifisch aufzuzeichnen (das muss dem Werkzeug 536 nicht bekannt sein).
  • Insbesondere, wie durch Zeile "a" gezeigt wird, initiiert das Werkzeug 536 die Schaffung eines Deltas durch Anfordern seiner Erzeugung durch den Dynamikmanager 501. Der Dynamikmanager 501 erzeugt das Delta und sendet es über Leitung a' zu dem Werkzeug 536 zurück, und kann das geschaffene Delta aufzeichnen, falls eine Fehlerbehebung erforderlich ist.
  • Wie bei Linie "a" in 6 gezeigt wird, übergibt das Werkzeug 536 die Steuerung des Deltas durch eine Werkzeugschnittstelle 602 an ein Werkzeug-Ende 604 der Maschine 546, wodurch die Maschine aufgerufen wird. (Diese Beschreibung wird von Zeit zu Zeit angeben, dass Deltas weitergeleitet werden oder dass die Steuerung von Deltas von einer Komponente zur anderen übergehen soll. Vorzugsweise sind die Deltas Objekte, die im Speicher zugeordnet sind, deren Hinweisadresse als XML-Elemente weitergeleitet werden). Die Werkzeugschnittstelle 602 der Maschine zeigt einen Satz von Applikationsprogrammierungsschnittstellen zur Erstellung von Befehlen, welche die angeforderte Änderung, die in dem Delta codiert ist, ausführen können, oder mit anderen Worten, zur Füllung eines Deltas mit richtigen, für gewöhnlich maschinenspezifischen Befehlen in serieller Form, um die Vorgaben des Benutzers zu erfüllen. Die Maschine 546 gibt dann die Steuerung des Deltas, das nun mit den Befehlen gefüllt ist, an das Werkzeug 536 zurück.
  • Wie bei Linie "b" in 6 dargestellt, übergibt (d. h. unterbreitet) das Werkzeug 536 die Steuerung des gefüllten Deltas an den (dem) Dynamikmanager 501 zur Ausführung. Der Dynamikmanager 501 kann auch eingehende Deltas über die Leitung "b "' von anderen Peer-Einheiten 314B–D empfangen. Der Dynamikmanager 501 ist gemeinsam mit den Dynamikmanagern in den Peer-Einheiten 314B–D für die Aufrechterhaltung der Konsistenz ausgeführter Änderungen an dem Datenmodell 556 von einem Ende des ABC-Systems zu dem anderen für alle Mitglieder verantwortlich, die sich in dem Schachspiel-Teleraum befinden.
  • Der Dynamikmanager 501 enthält Warteschlangenstrukturen 612 und einen Dynamo-Prozess 614, vorzugsweise ein computerausführbares Programm, das die Hauptlogik des Dynamikmanagers enthält. Der Dynamikmanager 501 und sein Dynamo-Prozess 614 stehen in bidirektionaler Kommunikation mit dem Kommunikationsmanager 622. Der Dynamikmanager 501 stellt die empfangenen Deltas in die Warteschlangenstrukturen 612 zum Zwecke der Reihung, dann bedient der Dynamo-Prozess 614 die Warteschlangenstruktur, indem er die Deltas in der Warteschlange verarbeitet und die Maschine 546 anweist, sie in der richtigen Reihenfolge auszuführen. Insbesondere sendet der Dynamo-Prozess 614 des Dynamikmanagers 501 ein Steuersignal in der Form einer "Delta-Befehlsausführung"-Mitteilung durch die Schnittstelle 615 über die Leitung "c" von 6 zu dem Dynamikmanager-Ende 616 der Maschine 546. Die "Delta-Befehlsausführung"-Mitteilung weist die Maschine 546 an, mit der Ausführung des Deltas fortzufahren, das von dem Werkzeug 536 empfangen wurde, indem die angeforderte Änderung an dem Datenmodell 556 vorgenommen wird, das in dem Speicher 510 enthalten und dauerhaft in dem Teleraum ist.
  • Der Dynamo-Prozess 614 des Dynamikmanagers 501 verteilt auch alle lokal initiierten Deltas über den Kommunikationsmanager 622 zu anderen Endpunkten, die sie über das Netzwerk, z. B. 626, zu den Peer-Einheiten 314B–D übertragen. An jeder Peer-Einheit 314B–D stellt der ent sprechende Dynamikmanager die empfangenen Deltas in seinen lokalen Warteschlangenstrukturen in eine Warteschlange und leitet sie dann in einer spezifizierten Reihenfolge zu seiner entsprechenden Maschine zur Ausführung.
  • Ein einziger Dynamikmanager kann einen einzigen Teleraum oder mehrere Teleräume unterstützen, abhängig von der Applikation, und kann somit dafür verantwortlich sein, eine Reihe von Maschinen anzuweisen, Deltas für die verschiedenen Teleräume auszuführen. In Systemen mit mehreren Teleräumen, wie in 5 dargestellt, bestimmt der Dynamikmanager 501, welche Maschine ein Delta ausführen soll, durch Untersuchung der Informationen des Deltas. Das Delta enthält Befehle, die für eine bestimmte der Maschinen identifiziert sind, und mit einem Maschinenidentifikator oder -code gekennzeichnet sind, der in der Nutzlast des Deltas enthalten ist. Wenn das in der Warteschlange befindliche Delta von dem Dynamikmanager verarbeitet ist, ordnet der Dynamikmanager den Maschinencode dem angewiesenen Delta zu und weist die Ausführung des Deltas durch die richtige Maschine an.
  • Schließlich, wie bei Linie "d" von 6 angezeigt, sendet die Maschine 546 eine "Datenänderungsbenachrichtung"-Mitteilung, um das Werkzeug 536 über die Ausführung des Deltas und über einen neuen aktuellen Status der Daten in dem Datenmodell 556 zu benachrichtigen. Die Datenänderungsbenachrichtigung kann durch einen Wert oder einen Verweis erfolgen. Das heißt, die Benachrichtigung kann die neuen Datenwerte selbst enthalten oder kann eine Hinweisadresse zu den neuen Daten im Speicher enthalten. Als Reaktion auf die Benachrichtigung veranlasst das Werkzeug 536 die Benutzerschnittstelle 514, die Änderung für den Benutzer verfügbar zu machen, z. B. durch Anzeige des Zuges auf einer Schachbrettgraphik. Wenn ein Benutzer die Anzeige 170 betrachtet (1), kann der Benutzer die Änderung in dem Schachspiel sehen, die durch die Ausführung des Deltas veranlasst wird; andernfalls wird die Änderung an den Daten im Speicher 510 ausgeführt, ohne dass der Benutzer die Änderung zu dem Zeitpunkt "sieht", zu dem sie ausgeführt wird.
  • Vorzugsweise führen im Wesentlichen zu demselben Zeitpunkt, zu dem die Änderung durch die Maschine 546 an dem Datenmodell 556 ausgeführt wird, das in dem Speicher 556 der Peer-Einheit 314A gespeichert ist, die anderen Peer-Einheiten 314B–D die analoge Änderung an ihren lokal gespeicherten Daten durch, so dass der Zweck des Deltas konsistent ausgeführt wird. Es können Situationen entstehen, in welchen die eine oder andere der Peer-Einheiten 314A–D nicht an das Netzwerk, z. B. das Internet, angeschlossen ist. Wenn die Peer-Einheit 314A getrennt sein kann, verwendet der Kommunikationsmanager 622 einen Präsenzdetektor 430, der feststellt, ob die Peer-Einheit 314A angeschlossen ist, und speichert, wenn dies nicht der Fall ist, abgehende Deltas in einem Speicher für abgehende Deltas 628, bis die Verbindung wiederhergestellt ist, und überträgt dann die gespeicherten Deltas. Wenn eine oder mehrere Ziel-Peer-Einheiten 314B–D vom Netzwerk getrennt sind, kann der Kommunikationsmanager 622 der Peer-Einheit 314A damit fortfahren, das abgehende Delta zu dem Relais 316 (3) zu übertragen, unabhängig davon, ob die anderen Peer-Einheiten getrennt sind. Das Relais 316 ( 3) empfängt alle solchen abgehenden Deltas, speichert sie, wenn notwendig, in einem Speicher für abgehende Deltas 318 (3) und leitet sie zu der Ziel-Peer-Einheit 314B–D weiter, wenn diese wieder angeschlossen ist. In Betrieb kann der Kommunikationsmanager 622 alle abgehenden Deltas zu dem URL des Relais 316 senden und das Relais kann eine Bord-Verweistabelle 320 verwenden, um den Endpunkt-URL der Ziel-Peer-Einheit 314B–D zu bestimmen, der zum Weiterleiten des Deltas verwendet wird. Der Relaisdienst kann in der Praxis von einem Internet Service Provider (ISP) oder anderen Internet-Organisationen bereitgestellt werden.
  • Es ist offensichtlich, dass hinsichtlich dem Werkzeug 536 und der Maschine 546 Benutzerschnittstellenaktivitäten direkt nur über das Werkzeug 536 ausgeführt werden und Datenmodelländerungen direkt nur über die Maschine 546 ausgeführt werden. In der Umgangssprache "verfügt" das Werkzeug 536 über die UI und die Maschine 546" verfügt" über das Datenmodell. Dies kann gegenwärtigen, typischen Applikationen gegenübergestellt werden, wie in 2 gezeigt. Zum Beispiel kombinieren Tabellenkalkulationsprogramme heutzutage für gewöhnlich die Funktionen des Werkzeuges und der Maschine, anstatt diese zu trennen, wie in der vorangehenden Ausführungsform der Erfindung. Durch Trennen des Werkzeugs von der Maschine und somit der UI von dem Datenmodell kann der Dynamikmanager bei Deltas, die von den verschiedenen Peer-Einheiten stammen, eingreifen und vermitteln, z. B. zum Zwecke der Aufrechterhaltung der Datenkonsistenz. Ferner ermöglicht die Trennung des Werkzeuges von der Maschine, dass der Ausführungsprozess von Deltas asynchron durchgeführt werden kann. Dies ist nützlich, da der Dynamikmanager 501 und die Maschine 546 Zeit brauchen, um ihre Verantwortlichkeiten in einer Weise auszuführen, die z. B. die Datenkonsistenz für alle Teleraummitglieder aufrechterhält. Es ist auch nützlich, da eingehende Deltas von anderen Peer-Einheiten 314B–D den Zeitpunkt der Ausführung lokal initiierter Deltas beeinflussen können.
  • Das ABC-System kann einen Multitasking- und Multithreading-Betrieb (gleichzeitiger Ablauf mehrerer verschiedener Programme beziehungsweise mehrerer Prozesse desselben Programms) ausführen, wobei jede Werkzeug-Maschinen-Kombination, die eine Aktivität bildet, einem eigenen Dynamikmanager entsprechen kann, und mehrere Dynamikmanager können zur Bearbeitung mehrfacher gleichzeitiger Betriebsaktivitäten bereitgestellt sein. Während ein Einszu-Eins-Verhältnis zwischen Teleräumen und Dynamikmanagern die geringste Latenz in der Bearbeitung von Deltas einführt, könnte ein Verhungern einer ablauffähigen Aktivität zu einem Fehler oder einem Fehlerzustand führen. Andererseits könnten einzelne Dynamikmanager, die viele Teleräume unterstützen, zu Verstopfungsproblemen führen. Die opti malm Anzahlen jeder Komponente hängen von der Hardware-Applikation, der Anzahl teilnehmender Peer-Einheiten und den Verkehrsbedingungen ab.
  • Das ABC-System kann mehrere Computersystems (CS) umfassen, jedes mit einem oder mehreren Teleräumen ("telespaces" – TS), die jeweils eine oder mehrere Aktivitätskomponenten instantiieren, wobei jede Aktivitätskomponente ein Paar aus Werkzeug (T) und Maschine (E) hat, dessen Betrieb von einem Dynamikmanager (DM) koordiniert ist. So kann das ABC-System mehrere Teleräumen mit einem oder mehreren Dynamikmanagern haben. Daher kann das ABC-System zum Beispiel wie folgt gebildet sein:
    Figure 00320001
    wobei sich alle Aktivitäten A, A2 und An in einem oder mehreren Teleräumen befinden, und "n" eine positive ganze Zahl ist. Somit sind Folgende, zur Veranschaulichung, Beispiele von verschiedenen Teleraum-Instantiierungen:
    Figure 00320002
    wobei das Symbol "c" "einen Satz umfassend" bedeutet und "m" eine positive ganze Zahl ist. Daher kann jeder Teleraum eine oder mehrere Aktivitäten instantiieren und das Framework kann einen einzigen Teleraum haben; als Alternative kann jeder Teleraum eine oder mehrere Aktivitäten instantiieren und das Framework kann mehrere Teleräume haben.
  • Eine Software-Implementierung von Komponenten der zuvor beschriebenen Ausführungsform kann Computeranweisungen und Programme umfassen, die entweder auf einem physischen Medium, wie einem computerlesbaren Medium, z. B. der Diskette 142, CD-ROM 147, ROM 115 oder Festplatte 152 von 1, fixiert sind, oder über ein Modem oder eine andere Schnittstelleneinrichtung, wie einen Kommunikationsadapter 190, der an das Netzwerk 190 über ein Medium 191 angeschlossen ist, übertragbar sind. Das Medium 191 kann entweder ein physisches Medium sein, das optische oder festverdrahtete Kommunikationsleitungen umfasst, aber nicht darauf beschränkt ist, oder kann mit drahtlosen Techniken implementiert sein, die Mikrowellen-, Infrarot- oder andere Übertragungstechniken umfassen, aber nicht darauf beschränkt sind. Es kann auch das Internet sein. Eine Reihe von Computeranweisungen verkörpert die gesamte oder einen Teil der zuvor hierin in Bezug auf die Erfindung beschriebenen Funktionalität. Für den Fachmann ist offensichtlich, dass solche Computeranweisungen in einer Reihe von Programmiersprachen zur Verwendung mit vielen Computerarchitekturen oder Betriebssysteme geschrieben sein können. Ferner können solchen Anweisungen unter Verwendung jeder gegenwärtigen oder zukünftigen Speichertechnologie gespeichert werden, umfassend, ohne aber darauf beschränkt zu sein, Halbleiter-, magnetische, optische oder andere Speichereinrichtungen, oder unter Verwendung jeder gegenwärtigen oder zukünftigen Kommunikationstechnologie, umfassend, ohne aber darauf beschränkt zu sein, optische, Infrarot-, Mikrowellen- oder andere Übertragungstechnologie, übertragen werden. Es wird in Betracht gezogen, dass ein solches Computerprogrammprodukt als entfernbares Medium mit zugehöriger gedruckter oder elektronischer Dokumen tation, z. B. schrumpfverpackter Software, vertrieben wird, bereits in einem Computersystem geladen ist, z. B. auf einer System-ROM oder Festplatte, oder von einem Server oder einer elektronischen Anschlagtafel über ein Netzwerk, z. B. das Internet oder World Wide Web, verteilt wird.

Claims (42)

  1. Eine lokale netzwerkfähige Einrichtung (314A, 400) zur Verwendung in einem aktivitätsbasierten Kollaborationssystem, das eine Vielzahl von netzwerkfähigen Einrichtungen (314A314D) umfasst, einschließlich der netzwerkfähigen Einrichtung (314A, 400), und eine Vielzahl von entfernten netzwerkfähigen Einrichtungen in einer Vielzahl von Standorten (314A, 400) umfasst, jede netzwerkfähige Einrichtung ist für einen Benutzer ansprechbar, die netzwerkfähige Einrichtung (314A) weist einen Speicher (110) und ein Werkzeug (424, 532) auf, das ansprechbar ist für Benutzerinteraktionen zur Erzeugung einer Vielzahl von lokal erzeugten Datenaustausch-Anforderungen und gekennzeichnet dadurch, daß der Speicher (110) lokale Datenkopien speichert in Übereinstimmung mit einem Datenmodell (552) und die lokale netzwerkfähige Einrichtung (314A, 400) einen Dynamikmanager (420, 501) enthält, der mit dem Werkzeug (424, 532) gekoppelt ist, das ansprechbar ist auf lokal-erzeugte Anforderungen zur Änderungen beliebiger Teile der lokalen Datenkopie und auf Anforderungen zur Änderung beliebiger Teile einer lokalen Datenkopie, die von der Vielzahl der entfernten netzwerkfähigen Einrichtungen (314B–314D) erzeugt werden, zur Auswahl, welche der lokal erzeugten und entfernt erzeugten Datenänderungs-Anforderungen ausgeführt wird, und eine Datenänderungsmaschine (426, 542) enthält, die mit dem Speicher (110) und dem Dynamikmanager (420, 501) gekoppelt ist und die auf die ausgewählten Datenänderungs-Anforderungen ansprechbar ist zur Durchführung von Änderungen in der lokalen Datenkopie.
  2. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin die Daten in dauerhaftem Zustand in einem nicht-flüchtigen Speicher (142, 147) gespeichert werden, der von dem genannten Speicher umfasst wird.
  3. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin die lokale Datenkopie im XML Format gespeichert ist.
  4. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, gekennzeichnet dadurch, dass ein erster Teleraum (502) der lokalen Datenkopie zugeordnet ist und eine Instantiierung einer ersten Aktivität (522) umfasst, die das Werkzeug (532) und die Maschine (542) enthält.
  5. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 4, gekennzeichnet dadurch, dass ein Teilnehmer-Datensatz (512) Identitäten des Teleraumes-Teilnehmer speichert, und ein Identitätsmanager (410) den Teilnehmer-Datensatz (512) verwaltet.
  6. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 4, gekennzeichnet dadurch, dass ein zweiter Teleraum (504) vorgesehen ist, der eine Instantiierung einer zweiten Aktivität (524) enthält; die zweite Aktivität umfasst: A) ein zweites Werkzeug (534), das auf eine Benutzerinteraktionen anspricht zur Erzeugung einer zweiten Datenänderungs-Anforderung; B) eine zweite Datenänderungsmaschine (544), die mit dem Speicher und dem Werkzeug (534) gekoppelt ist und auf die zweite Datenänderungs-Anforderung anspricht zur Steuerung der Speicherung einer zweiten lokalen Kopie der Daten im Speicher in Übereinstimmung mit einem zweiten Datenmodell (554) und zur Durchführung von Änderungen in der zweiten lokalen Kopie der Daten.
  7. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 6, gekennzeichnet dadurch, dass ein Teleraum-Datensatz (508) vorgesehen ist zur Speicherung von Identifikationen der ersten und des zweiten Teleraumes (502, 504).
  8. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 6, worin jede Datenänderungs-Anforderung ein Containerobjekt umfasst, das einen Maschinenidentifizierer zur Identifizierung des ersten und zweiten Teleraumes (502, 504) enthält; und als Antwort auf einen Maschinenidentifizierer der Dynamikmanager (501) die identifizierte Maschine (542, 544) anweist zur Ausführung der Datenänderungs-Anforderung.
  9. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 6, worin der Dynamikmanager (501) Datenänderungs-Anforderungen vom ersten Werkzeug (502) und vom zweiten Werkzeug (504) empfängt.
  10. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin jede Datenänderungs-Anforderung ein Containerobjekt umfasst, das vom Dynamikmanager (501) erzeugt wird, und die Datenänderungsmaschine (502, 504) das Containerobjekt mit Befehlen zur Ausführung der Datenänderungs-Anforderung versieht.
  11. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin die lokale Kopie der mit dem ersten Teleraum (502) verbundenen Daten in einem ersten zugeordneten Bereich des Speichers gespeichert ist und die zweite lokale Datenkopie in einem zweiten zugeordneten Bereich des Speichers gespeichert ist, der vom ersten zugeordneten Bereich getrennt ist.
  12. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin der Dynamikmanager (501) eine Warteschlangen-Struktur (630, 632, 634) umfasst zum Ordnen von Datenänderungs-Anforderungen; und ein Dynamo-Prozess-Mechanismus (614) zur Steuerung der Maschine (542, 544) und zur Anweisung von Datenänderungen.
  13. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 12, worin der Dynamo-Prozess-Mechanismus (614), der auf die Warteschlangen-Struktur (630, 632, 634) anspricht, die Datenänderungsmaschine (542, 544) veranlasst, die Datenänderungs-Anforderungen auf einer Zuerst-herein/Zuerst-heraus-Basis zu verarbeiten.
  14. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 12, worin die Warteschlangen-Struktur (630, 632, 634) eine erste Warteschlange (630) umfasst, die Hinweisadressen auf die von dem Werkzeug initiierten Datenänderungs-Anforderungen enthält, und eine zweite Warteschlange (632) umfasst, die Hinweisadressen auf entfernt erzeugte Datenänderungs-Anforderungen enthält.
  15. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 13, worin der Dynamo-Prozess-Mechanismus (614), der auf die Warteschlangen-Struktur (630, 632, 634) anspricht, die Datenänderungsmaschine (542, 544) veranlasst, empfangene Datenänderungs-Anforderungen entsprechend den in der zweiten Warteschlange (632) enthaltenen Hinweisadressen zu verarbeiten vor der Verarbeitung lokal erzeugter Datenänderungs-Anforderungen entsprechend den in der ersten Warteschlange (630) enthaltenen Hinweisadressen.
  16. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin die Datenänderungsmaschine (542, 544) separat vom Werkzeug (532, 534) implementiert wird; und vom Werkzeug (532, 534) und der Datenänderungsmaschine (542, 544) hat nur das Werkzeug (532, 534) Zugriff zu einer Benutzerschnittstelle (514) und nur die Datenänderungsmaschine (542, 544) hat Zugriff zu dem Datenmodell (552, 554).
  17. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin die lokale Kopie der Daten einen Datenstatus umfasst; und die Datenänderungsmaschine (542, 544) den Datenstatus in Beantwortung einer jeden der Vielzahl von Datenänderungs-Anforderungen ändert zur Erzeugung eines aktuellen Datenstatus.
  18. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, worin die Datenänderungsmaschine (542, 544) das Werkzeug (532, 534) über die Änderung des Datenstatus benachrichtigt, und das Werkzeug (532, 534) den laufenden Datenstatus einem Benutzer über eine Benutzerschnittstelle anzeigt.
  19. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 1, gekennzeichnet dadurch, daß jede der entfernten netzwerkfähigen Einrichtungen (314B–314D) einen Speicher, ein Werkzeug, eine Datenänderungsmaschine und einen Dynamikmanager umfasst.
  20. Die lokale netzwerkfähige Einrichtung gemäß Anspruch 19, gekennzeichnet dadurch, daß jede der netzwerkfähige Einrichtungen eine lokale Datenkopie im Speicher enthält, und einen Kommunikationsmanager (422) enthält zum Empfang entfernter Datenänderungs-Anforderungen von anderen der netzwerkfähigen Einrichtungen zur Änderung der lokalen Datenkopie.
  21. Ein verfahren zum Betrieb eines aktivitätsbasierten Kollaborationssystem, das eine Vielzahl von netzwerkfähigen Einrichtungen (314A, 314D) aufweist, die eine lokale netzwerkfähige Einrichtung (314A, 400) und eine Vielzahl von entfernten netzwerkfähigen Einrichtungen an einer Vielzahl von Standorten (314A, 400) enthalten, jede netzwerkfähige Einrichtung ist für einen Benutzer ansprechbar, die lokale netzwerkfähige Einrichtung (314A) weist einen Speicher (110) auf, das Verfahren beinhaltet die Benutzung eines Werkzeugs (424, 532) in der lokalen netzwerkfähigen Einrichtung zur Erzeugung einer Vielzahl von lokal-erzeugten Datenaustausch-Anforderungen in Beantwortung von Benutzerinteraktionen und gekennzeichnet dadurch, daß das Verfahren weiter die Speicherung einer lokalen Datenkopie in dem Speicher (110) in Übereinstimmung mit einem Datenmodell (552) umfasst sowie die Verwendung eines Dynamikmanagers (420, 501) in der lokalen netzwerkfähigen Einrichtung (314A, 400) zur Auswahl, welche Anforderungen zur Änderung beliebiger Teile der lokalen Datenkopie, die durch das Werkzeug lokal erzeugt wird und entfernt erzeugt wird von der Vielzahl der entfernten netzwerkfähigen Einrichtungen (314B–314D), ausgeführt werden soll, und die Verwendung einer Datenänderungsmaschine (426, 542), die mit dem Speicher (110) und dem Dynamikmanager (420, 501) gekoppelt ist und auf die ausgewählten Datenänderungs-Anforderungen ansprechbar ist zur Durchführung von Änderungen in der lokalen Datenkopie.
  22. Das Verfahren gemäß Anspruch 21, gekennzeichnet durch Zuordnung eines ersten Teleraum (502) zu der lokalen Datenkopie wird und Instantiierung einer ersten Aktivität (522), die das Werkzeug (532) und die Maschine (542) enthält.
  23. Das Verfahren gemäß Anspruch 22, gekennzeichnet durch Speicherung der Identitäten von Teleraum-Teilnehmern in einem Teilnehmer-Datensatz (512) und Verwendung eines Identitätsmanager (410) zur Verwaltung des Teilnehmer-Datensatzes (512).
  24. Das verfahren gemäß Anspruch 22, gekennzeichnet durch Vorsehen eines zweiten Teleraums (504) vorgesehen ist, der eine Instantiierung einer zweiten Aktivität (524) enthält, die zweite Aktivität (524) umfasst ein zweites Werkzeug (534), das auf eine Benutzerinteraktionen anspricht zur Erzeugung eines zweiten Datenänderungs-Anforderung; und eine zweite Datenänderungsmaschine (544), die mit dem Speicher und dem zweiten Werkzeug (534) gekoppelt ist und auf die zweite Datenänderungs-Anforderung anspricht zur Steuerung der Speicherung einer zweiten lokalen Kopie der Daten im Speicher in Übereinstimmung mit einem zweiten Datenmodell (554) und zur Durchführung von Änderungen in der zweiten lokalen Kopie der Daten.
  25. Das Verfahren gemäß Anspruch 24, gekennzeichnet durch Vorsehen eines Teleraum-Datensatzes (508) zur Speicherung von Identifikationen der ersten und des zweiten Teleraumes (502, 504).
  26. Das Verfahren gemäß Anspruch 24, worin jede Datenänderungs-Anforderung ein Containerobject umfasst, das einen Maschinenidentifizierer zur Identifizierung des ersten und zweiten Teleraumes (502, 504) enthält; und als Antwort auf einen Maschinenidentifizierer weist der Dynamikmanager (501) die identifizierte Maschine (542, 544) an zur Ausführung der Datenänderungs-Anforderung.
  27. Das Verfahren gemäß Anspruch 24, worin der Dynamikmanager (501) Datenänderungs-Anforderungen vom ersten Werkzeug (502) und vom zweiten Werkzeug (504) empfängt.
  28. Das Verfahren gemäß Anspruch 21, worin jede Datenänderungs-Anforderung ein Containerobject umfasst, das vom Dynamikmanager (501) erzeugt wird, und die Datenänderungsmaschine (502, 504) das Containerobjekt mit Befehlen zur Ausführung der Datenänderungs-Anforderung versieht.
  29. Das Verfahren gemäß Anspruch 21, worin der Dynamikmanager (501) die Datenänderungs-Anforderungen ordnet unter Verwendung einer Warteschlangen-Struktur (630, 632, 634); und die Maschine (542, 544) steuert zur Ausführung der Datenänderungen.
  30. Das Verfahren gemäß Anspruch 29, worin der Dynamikmanager die Datenänderungsmaschine (542, 544) veranlasst, die Datenänderungs-Anforderungen auf einer Zuerst-herein/Zuerst-heraus-Basis zu verarbeiten.
  31. Das Verfahren gemäß Anspruch 29, worin die Warteschlangen-Struktur (630, 632, 634) eine erste Warteschlange (630) umfasst, die Hinweisadressen auf die von dem Werkzeug initiierten Datenänderungs-Anforderungen enthält, und eine zweite Warteschlange (632) umfasst, die Hinweisadressen auf entfernt erzeugte Datenänderungs-Anforderungen enthält.
  32. Ein Computerprogrammprodukt zur Verwendung in einem aktivitätsbasierten Kooperationssystem, das eine Vielzahl von netzwerkfähigen Einrichtungen (314A, 314D) aufweist, die eine lokale netzwerkfähige Einrichtung (314A, 400) und eine Vielzahl von entfernten netzwerkfähigen Einrichtungen an einer Vielzahl von Standorten (314A, 400) enthalten, jede netzwerkfähige Einrichtung ist für einen Benutzer ansprechbar, die zur Verwendung in einem lokalen Netzwerk geeignete Einrichtung (314A) weist einen Speicher (110) und ein Werkzeug (424, 532) in der lokalen netzwerkfähigen Einrichtung auf zur Erzeugung einer Vielzahl von lokal-erzeugten Datenaustausch-Anforderungen in Beantwortung von Benutzerinteraktionen und das Computerprogrammprodukt umfasst ein in Computern benutzbares Medium, das computerlesbaren Programmcode enthält, gekennzeichnet dadurch, daß Programmcode vorgesehen ist zur Speicherung einer lokalen Datenkopie in dem Speicher (110) in Übereinstimmung mit einem Datenmodell (552), ein Dynamikmanager-Programm (420, 501) vorgesehen ist zum Betrieb der lokalen netzwerkfähigen Einrichtung (314A, 400) für eine Auswahl, welche Anforderungen zur Änderung beliebiger Teile der lokalen Datenkopie ausgeführt werden, die lokal erzeugt wird durch das Werkzeug und entfernt erzeugt wird von der Vielzahl der entfernten netzwerkfähigen Einrichtungen (314B–314D), und eine Datenänderungsmaschine (426, 542) vorgesehen ist, die Änderungen der lokalen Datenkopie durchführt in Beantwortung von ausgewählten Datenänderungs-Anforderungen.
  33. Das Computerprogrammprodukt gemäß Anspruch 32, gekennzeichnet dadurch, dass Programmcode vorgesehen ist zur Erzeugung und Zuordnung eines ersten Teleraums (502) zu der lokalen Datenkopie und Programmcode vorgesehen ist zur Instantiierung einer ersten Aktivität (522), die das Werkzeug (532) und die Maschine (542) enthält.
  34. Das Computerprogrammprodukt gemäß Anspruch 33, gekennzeichnet dadurch, dass Programmcode enthalten ist zur Speicherung der Identitäten von Teleraum-Teilnehmern in einem Teilnehmer-Datensatz (512) und zur Verwendung eines Identitätsmanager (410) zur Verwaltung des Teilnehmer-Datensatzes (512).
  35. Das Computerprogrammprodukt gemäß Anspruch 33, gekennzeichnet dadurch, daß Progammcode enthalten ist zur Erzeugung eines zweiten Teleraums (504), der eine Instantiierung einer zweiten Aktivität (524) enthält, die zweite Aktivität (524) umfasst ein zweites Werkzeug (534), das auf eine Benutzerinteraktionen anspricht zur Erzeugung einer zweiten Datenänderungs-Anforderung; und eine zweite Datenänderungsmaschine (544), die mit dem Speicher und dem zweiten Werkzeug (534) gekoppelt ist und auf die zweite Datenänderungs-Anforderung anspricht zur Steuerung der Speicherung einer zweiten lokalen Kopie der Daten im Speicher in Übereinstimmung mit einem zweiten Datenmodell (554) und zur Durchführung von Änderungen in der zweiten lokalen Kopie der Daten dient.
  36. Das Computerprogrammprodukt gemäß Anspruch 35, gekennzeichnet dadurch, daß Progammcode enthalten ist zur Erzeugung eines Teleraum-Datensatzes (508) für die Speicherung von Identifikationen der ersten und des zweiten Teleraumes (502, 504).
  37. Das Computerprogrammprodukt gemäß Anspruch 35, worin jede Datenänderungs-Anforderung ein Containerobject umfasst, das einen Maschinenidentifizierer zur Identifizierung des ersten und zweiten Teleraumes (502, 504) enthält; und das Verfahren die Anweisung der identifizierte Maschine (542, 544) zur Ausführung der Datenänderungs-Anforderung umfasst.
  38. Das Computerprogrammprodukt gemäß Anspruch 35, worin der Dynamikmanager (501) Datenänderungs-Anforderungen vom ersten Werkzeug (502) und vom zweiten Werkzeug (504) empfängt.
  39. Das Computerprogrammprodukt gemäß Anspruch 32, worin jede Datenänderungs-Anforderung ein Containerobject umfasst, das vom Dynamikmanager (501) erzeugt wird, und der Datenänderungsmaschinen-Programmcode (502, 504) das Containerobjekt mit Befehlen zur Ausführung der Datenänderungs-Anforderung versieht.
  40. Das Computerprogrammprodukt gemäß Anspruch 32, worin der Dynamikmanager-Programmcode (501) die Datenänderungs-Anforderungen ordnet unter Verwendung einer Warteschlangen-Struktur (630, 632, 634); und die Maschine (542, 544) steuert zur Ausführung der Datenänderungen.
  41. Das Computerprogrammprodukt gemäß Anspruch 40, worin der Dynamikmanager-Programmcode den Datenänderungsmaschinen-Programmcode veranlasst, die Datenänderungs-Anforderungen auf einer Zuerst-herein/Zuerst-heraus-Basis zu verarbeiten.
  42. Das Computerprogrammprodukt gemäß Anspruch 40, worin die Warteschlangen-Struktur (630, 632, 634) eine erste Warteschlange (630) umfasst, die Hinweisadressen auf die von dem Werkzeug initiierten Datenänderungs-Anforderungen enthält, und eine zweite Warteschlange (632) umfasst, die Hinweisadressen auf entfernt erzeugte Datenänderungs-Anforderungen enthält, und worin der Dynamikmanager-Programmcode (501) die Datenänderungsmaschine (542, 544) veranlasst, empfangene Datenänderungs-Anforderungen entsprechend den in der zweiten Warteschlange (632) enthaltenen Hinweisadressen zu verarbeiten vor der Verarbeitung lokal erzeugter Datenänderungs-Anforderungen entsprechend den in der ersten Warteschlange (630) enthaltenen Hinweisadressen.
DE60003322T 1999-07-19 2000-06-28 Verfahren, vorrichtung und computerprogrammprodukt für die aktivitäts-basierte zusammenarbeit durch ein computersystem ausgestattet mit einem dynamik-manager Expired - Lifetime DE60003322T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US356930 1994-12-15
US09/356,930 US6446113B1 (en) 1999-07-19 1999-07-19 Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager
PCT/US2000/017784 WO2001006361A2 (en) 1999-07-19 2000-06-28 Method and apparatus for activity-based collaboration by a computer system equipped with a dynamics manager

Publications (2)

Publication Number Publication Date
DE60003322D1 DE60003322D1 (de) 2003-07-17
DE60003322T2 true DE60003322T2 (de) 2004-05-13

Family

ID=23403554

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60003322T Expired - Lifetime DE60003322T2 (de) 1999-07-19 2000-06-28 Verfahren, vorrichtung und computerprogrammprodukt für die aktivitäts-basierte zusammenarbeit durch ein computersystem ausgestattet mit einem dynamik-manager

Country Status (9)

Country Link
US (1) US6446113B1 (de)
EP (1) EP1212679B1 (de)
JP (1) JP4762467B2 (de)
KR (1) KR100722355B1 (de)
AT (1) ATE242893T1 (de)
CA (1) CA2380160C (de)
DE (1) DE60003322T2 (de)
IL (2) IL147706A0 (de)
WO (1) WO2001006361A2 (de)

Families Citing this family (131)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000315198A (ja) * 1999-05-06 2000-11-14 Hitachi Ltd 分散処理システム及びその性能モニタリング方法
US20010044106A1 (en) * 1999-05-21 2001-11-22 Eric Henderson Method and apparatus for solid state molecular analysis
US6691153B1 (en) * 1999-08-30 2004-02-10 Zaplet, Inc. Method and system for process interaction among a group
US6598074B1 (en) * 1999-09-23 2003-07-22 Rocket Network, Inc. System and method for enabling multimedia production collaboration over a network
US6581094B1 (en) * 1999-11-02 2003-06-17 Sun Microsystems, Inc. Apparatus and method for identifying a digital device based on the device's uniform device descriptor file that specifies the attributes of the device in a XML document in a networked environment
US6931621B2 (en) 1999-12-29 2005-08-16 Baker Hughes Incorporated Method and system and article of manufacture for an N-tier software component architecture oilfield model
US6854107B2 (en) * 1999-12-29 2005-02-08 Baker Hughes Incorporated Method of and system for designing an N-tier software architecture for use in generating software components
US6668279B1 (en) * 2000-02-25 2003-12-23 Sun Microsystems, Inc. User level web server in-kernel network I/O accelerator
CA2403261A1 (en) * 2000-03-22 2001-09-27 Robert Bradshaw Method and apparatus for automatically deploying data in a computer network
US6981019B1 (en) * 2000-05-02 2005-12-27 International Business Machines Corporation System and method for a computer based cooperative work system
US6941510B1 (en) * 2000-06-06 2005-09-06 Groove Networks, Inc. Method and apparatus for efficient management of XML documents
US6996599B1 (en) * 2000-06-21 2006-02-07 Microsoft Corporation System and method providing multi-tier applications architecture
AU2001278879A1 (en) * 2000-07-07 2002-02-05 Science Applications International Corporation A system or method for calling a vanity number using speech recognition
US7496652B2 (en) * 2000-07-17 2009-02-24 Teleservices Solutions, Inc. Intelligent network providing network access services (INP-NAS)
US7127486B1 (en) 2000-07-24 2006-10-24 Vignette Corporation Method and system for facilitating marketing dialogues
US20020080200A1 (en) * 2000-08-25 2002-06-27 Garland Wong Method and apparatus for implementing a web application
US7024454B1 (en) * 2000-08-25 2006-04-04 Practicefirst.Com L.L.C. Work sharing and communicating in a web site system
US6950791B1 (en) * 2000-09-13 2005-09-27 Antartica Systems, Inc. Method for describing objects in a virtual space
US6766356B1 (en) * 2000-09-14 2004-07-20 Genesys Conferencing, Ltd. Method and system for remotely modifying presentations in a multimedia conference
US6826600B1 (en) 2000-11-02 2004-11-30 Cisco Technology, Inc. Methods and apparatus for managing objects in a client-server computing system environment
US6934766B1 (en) * 2000-11-02 2005-08-23 Cisco Technology, Inc. Method and apparatus for exchanging event information between computer systems that reduce perceived lag times by subtracting actual lag times from event playback time
US7133908B1 (en) * 2000-11-24 2006-11-07 Xerox Corporation Metrics and status presentation system and method using persistent template-driven web objects
US8255791B2 (en) 2000-11-29 2012-08-28 Dov Koren Collaborative, flexible, interactive real-time displays
US20020143869A1 (en) * 2001-01-03 2002-10-03 Hal Cohen Method and apparatus for making random introductions electronically
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7275102B2 (en) * 2001-01-22 2007-09-25 Sun Microsystems, Inc. Trust mechanisms for a peer-to-peer network computing platform
FR2824211B1 (fr) * 2001-04-27 2003-06-27 Radio Electronique Aides Tech Systeme et procede de communication entre stations traitant des dossiers communs
US7433458B2 (en) * 2001-06-29 2008-10-07 At&T Intellectual Property I, L.P. System and method for viewing contents via a computer network during a telephone call
US7383433B2 (en) * 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US7203753B2 (en) * 2001-07-31 2007-04-10 Sun Microsystems, Inc. Propagating and updating trust relationships in distributed peer-to-peer networks
US7222187B2 (en) * 2001-07-31 2007-05-22 Sun Microsystems, Inc. Distributed trust mechanism for decentralized networks
US7308496B2 (en) * 2001-07-31 2007-12-11 Sun Microsystems, Inc. Representing trust in distributed peer-to-peer networks
JP4446368B2 (ja) * 2001-09-14 2010-04-07 富士通株式会社 コラボレーション方法、システム、プログラム及び記録媒体
US7676540B2 (en) * 2001-10-16 2010-03-09 Microsoft Corporation Scoped referral statements
US7293283B2 (en) * 2001-10-16 2007-11-06 Microsoft Corporation Flexible electronic message security mechanism
US20030074579A1 (en) * 2001-10-16 2003-04-17 Microsoft Corporation Virtual distributed security system
EP1303097A3 (de) 2001-10-16 2005-11-30 Microsoft Corporation Virtuelles verteiltes Sicherheitsystem
US7536712B2 (en) 2001-10-16 2009-05-19 Microsoft Corporation Flexible electronic message security mechanism
US7194553B2 (en) 2001-10-16 2007-03-20 Microsoft Corporation Resolving virtual network names
US8015204B2 (en) * 2001-10-16 2011-09-06 Microsoft Corporation Scoped access control metadata element
US20030187964A1 (en) * 2001-10-31 2003-10-02 The University Court Of The University Of Glasgow Method and system for updating data on an information appliance based on changes in local and remote data sources
GB2382170B (en) * 2001-11-16 2005-04-13 Inventec Corp Method for synchronously updating screen data of database application program at clients over network
US7899047B2 (en) 2001-11-27 2011-03-01 Microsoft Corporation Virtual network with adaptive dispatcher
US7127613B2 (en) 2002-02-25 2006-10-24 Sun Microsystems, Inc. Secured peer-to-peer network data exchange
US7512649B2 (en) * 2002-03-22 2009-03-31 Sun Microsytems, Inc. Distributed identities
US6873692B1 (en) * 2002-03-29 2005-03-29 Bellsouth Intellectual Property Corporation Telephone synchronization with software applications and documents
US7711847B2 (en) 2002-04-26 2010-05-04 Sony Computer Entertainment America Inc. Managing users in a multi-user network game environment
US20030208534A1 (en) * 2002-05-02 2003-11-06 Dennis Carmichael Enhanced productivity electronic meeting system
AU2003239385A1 (en) 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
US20030217135A1 (en) * 2002-05-17 2003-11-20 Masayuki Chatani Dynamic player management
US7139798B2 (en) * 2002-05-17 2006-11-21 Groove Networks, Inc. Method and apparatus for connecting a secure peer-to-peer collaboration system to an external system
JP2003345764A (ja) * 2002-05-27 2003-12-05 Hitachi Ltd 備忘録端末及び備忘録管理方法
US8116889B2 (en) 2002-06-27 2012-02-14 Openpeak Inc. Method, system, and computer program product for managing controlled residential or non-residential environments
US7421736B2 (en) * 2002-07-02 2008-09-02 Lucent Technologies Inc. Method and apparatus for enabling peer-to-peer virtual private network (P2P-VPN) services in VPN-enabled network
US20040019640A1 (en) * 2002-07-25 2004-01-29 Bartram Linda Ruth System and method for distributing shared storage for collaboration across multiple devices
US8131802B2 (en) 2007-10-05 2012-03-06 Sony Computer Entertainment America Llc Systems and methods for seamless host migration
US7225226B2 (en) 2002-09-27 2007-05-29 International Business Machines Corporation Chat messaging channel redirection
US8037202B2 (en) * 2002-10-31 2011-10-11 Oracle America, Inc. Presence detection using mobile agents in peer-to-peer networks
US7254608B2 (en) * 2002-10-31 2007-08-07 Sun Microsystems, Inc. Managing distribution of content using mobile agents in peer-topeer networks
US7328243B2 (en) 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US8108455B2 (en) * 2002-10-31 2012-01-31 Oracle America, Inc. Mobile agents in peer-to-peer networks
US7213047B2 (en) * 2002-10-31 2007-05-01 Sun Microsystems, Inc. Peer trust evaluation using mobile agents in peer-to-peer networks
US7987489B2 (en) 2003-01-07 2011-07-26 Openpeak Inc. Legacy device bridge for residential or non-residential networks
US8131649B2 (en) * 2003-02-07 2012-03-06 Igware, Inc. Static-or-dynamic and limited-or-unlimited content rights
US7779482B1 (en) 2003-02-07 2010-08-17 iGware Inc Delivery of license information using a short messaging system protocol in a closed content distribution system
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon
US20100017627A1 (en) 2003-02-07 2010-01-21 Broadon Communications Corp. Ensuring authenticity in a closed content distribution system
US20040267384A1 (en) * 2003-02-07 2004-12-30 Broadon Communications, Inc. Integrated console and controller
US7360164B2 (en) * 2003-03-03 2008-04-15 Sap Ag Collaboration launchpad
US20040221299A1 (en) * 2003-03-31 2004-11-04 Simon Gibbs Method and apparatus for developing interface protocols for peer to peer applications
JP4331203B2 (ja) * 2003-06-04 2009-09-16 株式会社ソニー・コンピュータエンタテインメント ピアツーピアネットワークのためのコンテンツ分散型オーバーレイネットワーク
US20050010386A1 (en) * 2003-06-30 2005-01-13 Mvalent, Inc. Method and system for dynamically modeling resources
KR100512742B1 (ko) * 2003-07-25 2005-09-07 삼성전자주식회사 휴대용 컴퓨터
US20050044145A1 (en) * 2003-08-20 2005-02-24 International Business Machines Corporation Collaboration method and system
WO2005038555A2 (en) * 2003-09-12 2005-04-28 Aristocrat Technologies Australia Pty Ltd Communications interface for a gaming machine
US20050091316A1 (en) * 2003-10-03 2005-04-28 Oscar Ponce System and method for creating and selectively sharing data elements in a peer-to-peer network
CA2452893C (en) * 2003-12-11 2014-02-18 Groove Networks, Inc. Method and apparatus for storing and managing contacts in a distributed collaboration system
KR100996819B1 (ko) 2003-12-24 2010-11-25 마이크로소프트 코포레이션 분산된 협업 시스템에서 콘택트를 저장하고 관리하기 위한방법 및 장치
JP4681812B2 (ja) * 2004-01-08 2011-05-11 マイクロソフト コーポレーション 分散コラボレーション・システムでコンタクトを保存し管理するための方法及び装置
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
US20050223080A1 (en) * 2004-04-05 2005-10-06 Microsoft Corporation Updatable user experience
US7587452B2 (en) 2004-04-23 2009-09-08 At&T Intellectual Property I, L. P. Methods, systems, and products for network conferencing
US20050245317A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Voice chat in game console application
US7580867B2 (en) 2004-05-04 2009-08-25 Paul Nykamp Methods for interactively displaying product information and for collaborative product design
US8171387B2 (en) * 2004-05-13 2012-05-01 Boardwalk Collaboration, Inc. Method of and system for collaboration web-based publishing
US20050262075A1 (en) * 2004-05-21 2005-11-24 Bea Systems, Inc. Systems and methods for collaboration shared state management
US20060010205A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaboration impersonation
US20060010125A1 (en) * 2004-05-21 2006-01-12 Bea Systems, Inc. Systems and methods for collaborative shared workspaces
US7587037B2 (en) * 2004-05-26 2009-09-08 At&T Intellectual Property I, L.P. Network conferencing using method for distributed computing and/or distributed objects for presentation to a mobile communications device
US7694228B2 (en) 2004-05-26 2010-04-06 At&T Intellectual Property I, L.P. Methods, systems, and products for network conferencing
US7403969B2 (en) * 2004-05-26 2008-07-22 At&T Delaware Intellectual Property, Inc. Network conferencing using method for distributed computing and/or distributed objects to intermediate host for presentation to a communications device
US7526524B2 (en) 2004-05-26 2009-04-28 At&T Intellectual Property I, L.P. Network conferencing using method for distributed computing and/or distributed objects
US20050278424A1 (en) * 2004-05-26 2005-12-15 Wesley White Network conferencing using method for concurrent real time broadcast and distributed computing and/or distributed objects
WO2006092790A2 (en) * 2005-03-01 2006-09-08 Timebridge Inc. Automatic scheduling method and apparatus
US7610287B1 (en) * 2005-06-28 2009-10-27 Google Inc. System and method for impromptu shared communication spaces
US20070038494A1 (en) * 2005-08-15 2007-02-15 Cognetics Corporation Team management system and method
US7797636B2 (en) 2005-08-19 2010-09-14 Joseph Carter System and method for administering pluggable user interactive system applications
US8683334B2 (en) * 2005-08-19 2014-03-25 Intervoice Limited Partnership System and method for sharing access to service provider controls and subscriber profile data across multiple applications in a user interactive system
US20070043569A1 (en) * 2005-08-19 2007-02-22 Intervoice Limited Partnership System and method for inheritance of advertised functionality in a user interactive system
US20070084638A1 (en) * 2005-10-19 2007-04-19 Clyde Bohnsack Drilling fluid flow facilitation
US8819536B1 (en) 2005-12-01 2014-08-26 Google Inc. System and method for forming multi-user collaborations
CA2636819A1 (en) 2006-01-13 2007-07-19 Diginiche Inc. System and method for collaborative information display and markup
US8335822B2 (en) * 2006-03-13 2012-12-18 Ebay Inc. Peer-to-peer trading platform with search caching
US7958019B2 (en) * 2006-03-13 2011-06-07 Ebay Inc. Peer-to-peer trading platform with roles-based transactions
US8949338B2 (en) * 2006-03-13 2015-02-03 Ebay Inc. Peer-to-peer trading platform
US7877353B2 (en) * 2006-03-13 2011-01-25 Ebay Inc. Peer-to-peer trading platform with relative reputation-based item search and buddy rating
EP2033350A2 (de) 2006-05-02 2009-03-11 Broadon Communications Corp. Inhaltsverwaltung und verfahren
US8965874B1 (en) 2006-08-04 2015-02-24 Google Inc. Dynamic aggregation of users
US7895512B2 (en) * 2006-09-21 2011-02-22 International Business Machines Corporation Capturing and processing change information in a web-type environment
US7624276B2 (en) 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US7613915B2 (en) 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US8494436B2 (en) * 2006-11-16 2013-07-23 Watertown Software, Inc. System and method for algorithmic selection of a consensus from a plurality of ideas
US8200961B2 (en) * 2006-11-19 2012-06-12 Igware, Inc. Securing a flash memory block in a secure device system and method
US8132111B2 (en) * 2007-01-25 2012-03-06 Samuel Pierce Baron Virtual social interactions
US20080229215A1 (en) * 2007-03-14 2008-09-18 Samuel Pierce Baron Interaction In A Virtual Social Environment
US9756004B2 (en) 2007-11-08 2017-09-05 Skype Message delivery system and method
US8230348B2 (en) * 2008-04-28 2012-07-24 Roger Peters Collaboration software with real-time synchronization
EP2136530B1 (de) * 2008-05-28 2019-04-03 ABB Research Ltd. Kollaborative Verteidigung von Energieverteilungsschutz- und -steuergeräten
US8539359B2 (en) * 2009-02-11 2013-09-17 Jeffrey A. Rapaport Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic
US9965743B2 (en) 2009-06-30 2018-05-08 Cdw Llc Session collaborator
US9734124B2 (en) * 2010-03-04 2017-08-15 International Business Machines Corporation Direct linked two way forms
US20120016999A1 (en) * 2010-07-14 2012-01-19 Sap Ag Context for Sharing Data Objects
US20120042263A1 (en) 2010-08-10 2012-02-16 Seymour Rapaport Social-topical adaptive networking (stan) system allowing for cooperative inter-coupling with external social networking systems and other content sources
US9240965B2 (en) 2010-08-31 2016-01-19 Sap Se Methods and systems for business interaction monitoring for networked business process
US8886674B1 (en) 2011-02-18 2014-11-11 The Directv Group, Inc. Method and system for entitling a user device to receive content from data from an external source
US8612598B1 (en) * 2011-02-18 2013-12-17 The Directv Group, Inc. Method and system for ingesting content schedule data from an external source
US8676937B2 (en) 2011-05-12 2014-03-18 Jeffrey Alan Rapaport Social-topical adaptive networking (STAN) system allowing for group based contextual transaction offers and acceptances and hot topic watchdogging
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
US10528610B2 (en) * 2014-10-31 2020-01-07 International Business Machines Corporation Customized content for social browsing flow
US10765952B2 (en) 2018-09-21 2020-09-08 Sony Interactive Entertainment LLC System-level multiplayer matchmaking
US10695671B2 (en) 2018-09-28 2020-06-30 Sony Interactive Entertainment LLC Establishing and managing multiplayer sessions

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4974173A (en) * 1987-12-02 1990-11-27 Xerox Corporation Small-scale workspace representations indicating activities by other users
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5170480A (en) * 1989-09-25 1992-12-08 International Business Machines Corporation Concurrently applying redo records to backup database in a log sequence using single queue server per queue at a time
JP3020539B2 (ja) * 1990-03-07 2000-03-15 株式会社日立製作所 並列動作型データベース管理方式
US5388196A (en) * 1990-09-07 1995-02-07 Xerox Corporation Hierarchical shared books with database
US5538255A (en) 1992-02-18 1996-07-23 Barker; Bruce J. Remote controlled multiplayer video game
US5446842A (en) * 1993-02-26 1995-08-29 Taligent, Inc. Object-oriented collaboration system
DE4497149T1 (de) * 1993-09-24 1996-10-17 Oracle Corp Verfahren und Vorrichtung zum Replizieren von Daten
US6049334A (en) * 1993-12-20 2000-04-11 International Business Machines Corporation Method and system for graphically indicating the activity of a plurality of users within a shared data collection
CA2152528C (en) * 1994-07-29 2000-04-18 Chung-Hwa Herman Rao Distributed systems with replicated files
JP3120963B2 (ja) * 1995-12-14 2000-12-25 株式会社日立製作所 メッセージを転送する方法およびメッセージを転送するシステム
US5828866A (en) 1996-07-08 1998-10-27 Hewlett-Packard Company Real-time synchronization of concurrent views among a plurality of existing applications
US5892949A (en) 1996-08-30 1999-04-06 Schlumberger Technologies, Inc. ATE test programming architecture
US5899810A (en) 1997-01-24 1999-05-04 Kaon Interactive Corporation Distributed game architecture to overcome system latency
GB9722343D0 (en) 1997-10-22 1997-12-17 British Telecomm Distributed virtual environment

Also Published As

Publication number Publication date
IL147706A0 (en) 2002-08-14
CA2380160C (en) 2009-09-15
CA2380160A1 (en) 2001-01-25
JP2003505760A (ja) 2003-02-12
EP1212679A2 (de) 2002-06-12
KR20020035565A (ko) 2002-05-11
WO2001006361A2 (en) 2001-01-25
DE60003322D1 (de) 2003-07-17
KR100722355B1 (ko) 2007-05-29
EP1212679B1 (de) 2003-06-11
ATE242893T1 (de) 2003-06-15
IL147706A (en) 2006-12-31
US6446113B1 (en) 2002-09-03
WO2001006361A3 (en) 2001-05-10
JP4762467B2 (ja) 2011-08-31

Similar Documents

Publication Publication Date Title
DE60003322T2 (de) Verfahren, vorrichtung und computerprogrammprodukt für die aktivitäts-basierte zusammenarbeit durch ein computersystem ausgestattet mit einem dynamik-manager
DE60038705T2 (de) Verfahren und vorrichtung für die aktivitäts-basierte zusammenarbeit eines rechnersystems, ausgestattet mit einem kommunikations-manager
CA2380141C (en) Method and apparatus for prioritizing data change requests and maintaining data consistency in a distributed computer system equipped for activity-based collaboration
DE69629983T2 (de) Verfahren zum anteiligen Nutzen eines dreidimensionalen Raumes in virtueller Realität und System dafür
DE69839087T2 (de) IRC Namenübersetzungsprotokoll
DE69631866T2 (de) Multimediakoordinationssystem
US6785708B1 (en) Method and apparatus for synchronizing browse and chat functions on a computer network
DE60209261T2 (de) Rich-kommunikation über das internet
DE60029774T2 (de) Videokonferenzsystem
DE69627604T2 (de) Verfahren und vorrichtung zum verarbeiten von e/a-anforderungen
US20050102358A1 (en) Web page monitoring and collaboration system
DE202010018482U1 (de) Bereitstellung eines Zugangs zu einer Unterhaltung in einem gehosteten Unterhaltungssystem
DE4436677A1 (de) Verfahren und Einrichtung zum Übertragen von Datenblöcken großer Objekte in einem Telekonferenzsystem
DE69919892T2 (de) Interaktives mediasystem
DE60318847T2 (de) Echtzeit-Nachrichtenaustausch in kooperativen Netzwerkumgebungen
US20050288951A1 (en) Interactive multiple-video webcam communication
DE69830226T2 (de) Netzwerkkommunikationsbenutzernachrichtenübertragungssystem
DE202019005789U1 (de) Bereitstellung von Ereignisinhalten
DE69937400T2 (de) Zusammenarbeit von einrichtungen bei hypertext seiten
Marousky Nurses' guide to the Internet-professional and personal benefits

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: MICROSOFT CORP., REDMOND, WASH., US