-
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:
wobei sich alle Aktivitäten A, A
2 und A
n in einem
oder mehreren Teleräumen
befinden, und "n" eine positive ganze
Zahl ist. Somit sind Folgende, zur Veranschaulichung, Beispiele
von verschiedenen Teleraum-Instantiierungen:
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.