-
Die Erfindung bezieht sich auf den
Betrieb einer Mehrzahl miteinander verknüpfter Computer.
-
Moderne Telefonsysteme erlauben mehreren
Parteien an unterschiedlichen Orten eine Konferenz abzuhalten. Jedoch
bieten Telefonkonferenzen nicht alle Bequemlichkeiten einer Konferenz
von Angesicht zu Angesicht, wo die Teilnehmer sich alle an einem
gemeinsamen Tisch in einem Konferenzraum treffen. Beispielsweise
können
die Teilnehmer in einem Konferenzraum einen interessierenden Gegenstand,
wie eine Zeichnung oder ein Produkt, ansehen. Ein solches Anschauen
ist bei einer Telefonkonferenz nicht möglich.
-
In der US-A-5119319 ist ein Computerkooperationssystem
beschrieben, bei welchem Änderungen
auf einem Display, welche ein Benutzer an einem örtlichen Terminal vornimmt,
praktisch zur gleichen Zeit an den Bildschirmen aller Terminals
erscheinen. Jeder Benutzer kann daher mit dem örtlichen Display und mit anderen
Benutzern über
Displays in Kontakt treten, ohne warten zu müssen, dass ein Benutzer seine
Informationseingabe vollendet.
-
Die Aufgabe der Erfindung besteht
in der Schaffung eines verbesserten elektronischen Konferenzsystems.
-
Gemäß einem Gesichtspunkt der Erfindung ist
daher ein Computerkonferenzsystem vorgesehen mit
einem Hostcomputer,
auf dem ein Applikationsprogramm läuft,
einem oder mehreren
entfernten Computern, die mit dem Hostcomputer verknüpft sind,
und
einer Steuereinrichtung, welche es allen entfernten Computern
erlaubt, das Display des Hostcomputers abzuwandeln und zu bewirken,
dass das Display des Hostcomputers auf den entfernten Computern
erscheint,
wobei die Erfindung dadurch gekennzeichnet ist, dass
die Computer wahlweise in einem Anwendungsmodus (application mode)
oder einem Kommentiermodus (annotation mode) betrieben werden können, wobei
im Anwendungsmodus der Hostcomputer lediglich Wiedergabedaten an
die entfernten Computer überträgt.
-
Gemäß einem anderen Gesichtspunkt
der Erfindung ist ein Verfahren zum Betreiben eines Computerkonferenzsystems
vorgesehen mit einem Hostcomputer, auf dem ein Anwenderprogramm läuft, und
einem oder mehreren mit dem Hostcomputer verknüpften entfernten Computern,
mit den folgenden Schritten: entfernten Computern wird ermöglicht,
die Darstellung des Hostcomputers zu ändern, die Darstellung des
Hostcomputers wird auf den entfernten Computern wiedergegeben, und
mit den kennzeichnenden Schritten, dass die Computer wahlweise in
einem Anwendungsmodus oder einem Kommentiermodus betrieben werden
können
und im Kommentiermodus der Hostcomputer lediglich Darstellungsdaten
auf die entfernten Computer überträgt.
-
Es sei nun eine Ausführungsform
der Erfindung anhand eines Beispiels mit Bezug auf die beiliegenden
Zeichnungen erläutert.
-
1 veranschaulicht
drei über
Telefonleitungen miteinander verknüpfte Computer.
-
2 initiiert
in ein Beispiel ein, welches anhand der 3 bis 14 noch
näher ausgeführt wird.
Im Beispiel wird ein Rechnungsprogramm von verschiedenen Teilnehmern
durchgeführt
und kommentiert.
-
3 zeigt,
wie das System reagiert, wenn ein Hostbenutzer versucht, im Kommentiermodus
mit dem Rechner zu arbeiten.
-
4 zeigt,
wie das System reagiert, wenn ein Hostbenutzer versucht, im Kommentiermodus den
Rechner zu kommentieren.
-
5 zeigt,
wie das System reagiert, wenn ein Hostbenutzer im Anwendungsmodus
versucht, mit dem Rechner zu arbeiten.
-
6 zeigt,
wie das System reagiert, wenn ein Hostbenutzer in einem Local-Kommentiermodus versucht,
mit dem Rechner zu arbeiten.
-
7 zeigt,
wie das System reagiert, wenn ein Hostbenutzer im Local-Kommentiermodus
versucht, den Rechner zu kommentieren.
-
8 zeigt,
wie das System in einem Betrachtungsmodus auf einen Hostbenutzer
reagiert.
-
9 zeigt,
wie das System reagiert, wenn ein entfernter Benutzer im Kommentiermodus
versucht, mit dem Rechner zu arbeiten.
-
10 veranschaulicht,
wie das System reagiert, wenn entfernter Benutzer im Kommentiermodus
versucht, den Rechner zu kommentieren.
-
11 zeigt,
wie das System reagiert, wenn ein entfernter Benutzer versucht,
im Anwendungsmodus mit dem Rechner zu arbeiten.
-
12 veranschaulicht,
wie das System reagiert, wenn ein entfernter Benutzer im Local-Kommentiermodus
versucht, mit dem Rechner zu arbeiten.
-
13 veranschaulicht,
wie das System reagiert, wenn ein entfernter Benutzer versucht,
im Local-Kommentiermodus
den Rechner zu kommentieren.
-
14 veranschaulicht,
wie das System im Betrachtungsmodus auf einen entfernten Benutzer reagiert.
-
15 und 16 zeigen den vom System benutzten logischen
Fluss.
-
1 zeigt
drei Computer, die durch Telefonleitungen miteinander verbunden
sind. Auf jedem Computer läuft
ein nachrichtengesteuertes (message-driven), vielseitiges (multi-tasking)
Graphical-User-Interface (GUI), wie es unter dem Namen Windows handelsüblich ist
und von der Microsoft Corporation in Redmond, Washington erhältlich ist. Solche
GUIs werden auch als Betriebsumgebungen (operating environments)
bezeichnet.
-
Der Benutzer eines GUI kommuniziert über Fenster
mit einem Programm. Auf den entfernten Computern werden ausgewählte Fenster
anstelle des gesamten Schirmbildes wiedergegeben. Diese selektive
Wiedergabe erlaubt es Benutzern, auf ihren Bildschirmen private
Bereiche zu behalten, welche nicht mit den anderen geteilt werden.
Auf jedem Computer läuft
eine Software, welche die hier beschriebenen Operationen bewirkt.
Außerdem
läuft auf
einem Computer (dem Host) ein Anwendungsprogramm. (Auf dem Hostcomputer
können
wegen der vielseitigen Fähigkeiten
des GUI auch beide Programme laufen).
-
Es gibt vier Grund-Betriebsmoden:
-
1. Anwendungsmodus
-
Irgendein Benutzer eines der drei
in 1 gezeigten Computer
kann Befehle an das Anwendungsprogramm geben. Beispielsweise sei
angenommen, dass das Anwendungsprogramm ein solches ist, welches
einen Handrechner simuliert. Die Anfangssituation ist in 2 gezeigt, wo jedes Display
den Rechner zeigt. Es sei weiter angenommen, dass die folgenden
Ereignisse auftreten:
-
Der Benutzer des Hosts drückt die
Taste "3" auf dem Rechner
(entweder über
Tastatureingabe oder Mauseingabe, je nach Entwurf des Rechnerprogramms).
-
Daraufhin zeigt jeder Rechner in
seinem Displaybereich eine "3".
-
sDer Benutzer eines entfernten Computers drückt "+".
-
Der Benutzer eines anderen entfernten Computers
drückt "6"
-
Der Benutzer des Hosts drückt "=".
-
An dieser Stelle zeigen alle Rechner
eine "9", welches die Summe
von drei und 6 darstellt. Die Benutzer haben das Rechnerprogramm
zusammen betrieben, und das Display eines jeden zeigt das Ergebnis.
-
Das Rechnerprogramm kümmert sich
weder darum, welcher Benutzer die Tasten gedrückt hat, noch ob einige Benutzer
gar keine Tasten gedrückt haben,
sofern eine gültige
Folge von Tasten erhalten wurde. (Es wird angenommen, dass die Benutzer miteinander
kooperieren und keiner versucht den Betrieb des Rechners zu sabotieren).
-
2. Kommentiermodus
-
Irgendein Benutzer kann auf seinem
eigenen lokalen Bildschirm zeichnen, wobei er Zeichnungs-Tools verwendet,
wie sie in einem Zeichen-Programm zu finden sind. Der Benutzer kann Kästen, Kreise,
Bögen,
Text, Ellipsen usw. zeichnen und er kann auch Gegenstände aus
der Darstellung entfernen. Die Kommentare des Benutzers werden auf
den anderen Bildschirmen wiedergegeben, so dass alle Benutzer die
gleiche Darstellung sehen. Jedoch können die Darstellungen sich
aus folgenden Gründen
unterscheiden
- (A) Unterschiedliche Monitore
können
verschiedene Eigenschaften haben, wie Auflösung oder Farbdarstellungsmöglichkeiten.
- (B) Unterschiedliche Displayprotokolle (EGA, VGA, etc.) stellen
Grafikbilder unterschiedlich dar und haben unterschiedliche Farbwiedergabemöglichkeiten.
- (C) Unterschiedliche GUIs oder verschiedene Versionen des selben
GUI können
verschiedene Wiedergabekonventionen haben. Auf unterschiedlichen
Computern in 1 können die
verschiedenen GUIs laufen.
- (D) Einige Benutzer haben die Größe des Fensters, in der ihr
Rechner dargestellt wird, verändert, so
dass eine Abweichung im Maßstab
vorliegt.
-
Diese Unterschiede können zu
Unterschieden in der Erscheinung der wiedergegebenen Bilder untereinander
führen,
jedoch sollte der Grundinhalt aller Darstellungen der selbe sein.
Um unterschiedliche Größen auszugleichen,
können
die Darstellungen in unterschiedlichen Maßstäben gezeichnet werden, wenn
dies zweckmäßig ist.
-
3. Local-Kommentiermodus
-
Ein Benutzer kann die örtliche
Darstellung kommentieren, aber die Kommentare bleiben privat, und
kein anderer Benutzer kann sie sehen.
-
4. Darstellungsmodus
-
Kein Benutzer kann kommentieren noch
Befehle ausgeben. Jedoch kann eine einer Kommentierung gleichende
Aktion vorgenommen werden. Benutzer können ihren Cursor bewegen und
andere können
die Bewegung sehen, so dass man von fern auf etwas zeigen kann.
Der Betrachtungsmodus ist bei einer Ausführung zweckmäßig, wo
beispielsweise der Kommentiermodus vorliegt, aber ein spezieller Benutzermodus
als BETRACHTEN bezeichnet ist. Hierbei können alle Benutzer kommentieren,
aber der Betrachter-Nutzer kann nur beobachten und kann nicht kommentieren.
-
Die 3 bis 14 veranschaulichen im Wege eines
Beispiels die verschiedenen Moden, welche das Rechnerprogramm benutzen.
-
In 3 ist
eine Situation gezeigt, wo auf dem Host ein Anwendungsprogramm läuft: Der
Modus ist "Kommentieren", die Be nutzereingabe
erfolgt am Hostcomputer; die Benutzer versuchen den Rechner in Betrieb
zu nehmen.
-
Es sei angenommen, dass der Benutzer
des Hostcomputers versucht, unter Verwendung des Rechners zwei Zahlen
zu addieren. Es sei der Eingabeversuch der ersten Zahl betrachtet.
-
Der sich am Host befindende Benutzer
bewegt den Cursor des Hosts auf eine Taste des Rechners, wie es 3 zeigt, und versucht die
Taste zu drücken,
in dem er auf die Maus klickt. Jedoch ist der Mausklick blockiert
und erreicht nicht das Anwendungsprogramm. Das Anwendungsprogramm
reagiert nicht, weil es keinen Mausklick empfangen hat.
-
Im Einzelnen stellt das GUI die Mausbewegung
fest und veranlasst die Erzeugung von "Mausnachrichten". Das GUI setzt die Mausnachrichten
in eine Warteschlange, wo sie auf die Verarbeitung warten. Der EINGABE-ROUTER
in 5 liest diese Nachrichten.
Weil momentan gerade der Kommentiermodus in Betrieb ist, führt der
EINGABE-ROUTER die Nachrichten zu einem KOMMENTIER-Block. Die Anwendung
erhält
die Nachricht nicht und reagiert daher nicht. Der Mausklick wird
ignoriert. KOMMENTIERUNG kann so konfiguriert werden, dass auf zwei
(oder mehr) wegen auf die Mausnachrichten reagiert wird. Bei der
einen Konfiguration erfordert die Kommentierung, dass die Maus anfänglich ein
KOMMENTIERUNGS-TOOL wählt. Erfolgt
keine Auswahl, dann ignoriert KOMMENTIEREN die Mausnachrichten.
-
Die Auswahl erfolgt durch Klicken
der Maus über
ein Bild des Tools, wie es üblicherweise
in einem Zeichenprogramm erfolgt. KOMMENTIEREN erkennt diese Toolauswahl
und behandelt anschließend
Mausklicks als Daten zum Zeichnen mit dem ausgewählten Tool. Wenn beispielsweise
ein Rechteck-Tool ausgewählt
worden ist, würden
die nächsten
beiden Mausklicks diagonale Ecken des Rechtecks definieren (4 veranschaulicht das Zeichnen eines
Rechtecks, wie noch erläutert
wird).
-
Bei der zweiten Konfiguration würde im Kommentiermodus
automatisch ein Vorgabe-Tool, wie ein Stift ausgewählt. Wenn
der Benutzer bei dieser Konfiguration eine Taste des Rechners zu
drücken
versucht (indem er darauf klickt), dann beginnt er (unabsichtlich)
unter Verwendung des Stiftes eine Linie zu zeichnen. Wenn er dies
erkennt, kann er das Zeichnen der Linie auf irgendeine der verschiedenen
bekannten Weisen beenden.
-
Im Kommentiermodus reagiert somit
das System (a) entweder auf die Mauseingabe durch das Einleiten
einer Zeichenkommentierung (draft annotation) oder (b) ignoriert
die Mauseingabe, weil kein Kommentier-Tool ausgewählt war.
Eine Tastatureingabe seitens des Benutzers wird in gleicher Weise behandelt.
Natürlich
können
auch andere Reaktionen durch KOMMENTIEREN bestimmt werden.
-
Jeder Bildschirm zeigt einen Cursor,
dessen Position durch die zugehörige
Maus gesteuert werden kann. Jeder Cursor wird auf allen Bildschirmen wiedergegeben.
Somit erscheinen gemäß 3 mit drei Mäusen auf
jedem Display drei Cursor (von denen der Einfachheit halber nur
einer gezeichnet ist). Wenn also ein Benutzer eine Maus bewegt,
bewegt sich demzufolge der entsprechende Cursor auf allen Bildschirmen.
Generell sind die drei Cursor voneinander unterscheidbar: Jeder
Cursor identifiziert seinen Eigentümer etwa durch Farbe, Form,
Hinzufügung
eines Etiketts oder dergleichen.
-
Es sei nun 4 betrachtet, welche den Fall zeigt,
wo auf dem Cursor ein Anwendungsprogramm läuft: Dieser Modus ist "Kommentieren"; die Benutzereingabe
erfolgt am Hostcomputer, und der Benutzer versucht über den
Rechner einen Kasten zu zeichnen.
-
Diese Situation ist sehr ähnlich derjenigen nach 3 mit der Ausnahme, dass
nun der Benutzer versucht einen Kommentar zu zeichnen, anstatt eine
Taste drücken
zu wollen, wie im Fall der 3.
-
Es sei angenommen, dass der Benutzer
des Hostcomputers einen Kasten über
den Rechner zeichnet. (Der Kasten ist zur Betonung übergroß. Vorzugsweise
reicht der Kasten aber nicht über
den Rechner selbst.) Der Kasten wird auf allen entfernten Computern
wiedergegeben. (Der Kasten wird unter Verwendung von Kommentier-Tools
gezeichnet, welche hier aber nicht gezeigt sind.)
-
Mit der Terminologie der 15 richtet der EINGABE-ROUTER
den Logikfluss zu KOMMENTIEREN. KOMMENTIEREN ruft die richtigen GDI-Funktionen
auf, um den Kasten zu zeichnen. Ferner sendet KOMMENTIEREN Kommentierungsnachrichten
an VERBINDUNGS-API, welches die Kommentierungsnachrichten an die
entfernten Computer übermittelt.
-
KOMMENTIEREN in 15A erhält die Kommentiernachrichten.
Der Block KOMMENTIEREN bedeutet die bei jedem entfernten Computer ausgeführte Logik.
Dieses KOMMENTIEREN ruft die geeigneten GDI Funktionen über den
Block GDI auf.
-
"GDI" ist ein Akronym
für ein
Graphikgerätinterface
(graphical device interface). "GDI"-Funktionen sind
kleine Programme, die in einem größeren Programm des GUI, welches
GDI.EXE genannt wird, enthalten sind. Eine GDI-Funktion zeichnet
bei Aufruf ein spezielles graphisches Bild, wie etwa einen Kreis, einen
Kasten oder Text aufgrund einer nachfolgenden Eingabe seitens des
Benutzers. Andere GDI-Funktionen führen andere Aufgaben durch,
wie Auswahl der Strichdicke.
-
GDI.EXE ist ein handelsübliches
Produkt. Technische Details hierüber
finden sich in "Windows Software
Development Kit",
welches von der Microsoft Corporation erhältlich ist, und in Programming Windows
3.1 von Charles Petzold (Microsoft Press, Redmond, Washington, 1992,
ISBN 1-55615-395-3).
-
Es sei nun 5 betrachtet, welche den Fall zeigt,
wo auf dem Host ein Anwendungsprogramm läuft; der Modus ist "Anwendung"; die Benutzereingabe
erfolgt am Hostcomputer, und der Benutzer versucht, den Rechner
zu benutzen.
-
Der Benutzer des Hosts bewegt den
Cursor auf die Rechnertaste "3" und klickt die Maus.
Das GUI erzeugt eine Mausnachricht und fügt diese in die Warteschlange.
Die Mausnachricht wird gelesen und an das Anwendungsprogramm weitergeleitet
(also an das Rechnerprogramm), welches damit reagiert, dass es (1)
zeigt, dass die Taste "3" gedrückt wurde, und
(2) die Zahl "3" in das Display des
Rechners zeichnet, wobei es GDI-Aufrufe verwendet. Das Anwendungsprogramm
registriert für
eigene interne Informationen auch die Tatsache, dass der Benutzer eine "3" eingibt.
-
Die GDI-Aufrufe, welche das Anwendungsprogramm
beim Zeichnen der "3" in den Rechner und beim
Zeichnen der gedrückten "3"-Taste
gemacht hat, werden erfasst und an die anderen Computer mitgeteilt.
Die anderen Computer geben den Hostbildschirm wieder, indem sie
die selben GDI-Funktionen ausführen.
Weitere Einzelheiten bezüglich
dieser GDI-Erfassung folgen später.
-
So sehen alle Benutzer gleichzeitig,
wie der Benutzer des Hosts mit dem Rechner arbeitet. (Die Aktion
verläuft
nicht exakt gleichzeitig, weil sehr kleine Verzögerungen auftreten. Jedoch
könnte
ein Mensch die Verzögerungen
wahrscheinlich nicht einmal bemerken, wenn der Hostcomputer und
der entfernte Computer nebeneinander arbeiten würden.)
-
In der Terminologie der 15 erkennt der EINGABE-ROUTER,
dass die Mausnachrichten an das Anwendungsprogramm gerichtet werden
sollten und richtet den Logikfluss an ANWENDEN (d. h. das Rechnerprogramm).
ANWENDEN zeichnet (1) die gedrückte
Taste "3" und schreibt (2)
die Zahl "3" auf das Display
des Rechners, indem die geeigneten GDI-Funktionen aufgerufen werden.
-
Jedoch erfasst das System über GDI-ERFASSEN
in 15 die GDI-Aufrufe
des Anwendungsprogramms, wie sie ausgeführt werden. Mit den erfassten
Aufrufen werden zwei Dinge getan. Erstens werden die anderen Computer
von diesen Aufrufen über
den Block VERBINDUNG-API informiert. Diese Aktion führt zu Block
ERFASS-TES GDI DISPLAY
in 15A, welches veranlasst,
dass jeder entfernte Computer dieselben GDI-Funktionen ausführt, wie
vom Block GDI angegeben. Zweitens erlaubt das System, dass die vom
Anwendungsprogramm aufgerufenen GDI-Funktionen über den Block GDI in 15 am Host ausgeführt werden.
Daher werden vom Anwendungsprogramm ausgehende GDI-Funktionsaufrufe
erfasst und den entfernten Computern zur Kenntnis gebracht, so dass
diese sie duplizieren können.
Die erfassten Aufrufe werden dann wie vom Host beabsichtigt durchgeführt.
-
Es sei nun 6 betrachtet, welche den Fall zeigt,
wo ein Anwendungsprogramm auf dem Host läuft. Der Modus ist "Lokale Kommentierung"; die Benutzereingabe
erfolgt am Hostcomputer, und der Benutzer versucht mit dem Rechner
zu arbeiten.
-
Angenommen sei, dass im Kommentiermodus
dem Benutzer kein Vorgabekommentier-Tool gegeben wird. Wenn der
Benutzer unter dieser Annahme den Cursor auf eine Rechnertaste führt und
versucht diese zu "drücken", dann gibt der EINGABE-ROUTER
in 15 eine Mausnachricht
an den Kommentierblock. Weil der Mausklick nicht Teil einer gültigen Kommentiereingabefolge
ist (es wurde kein Tool gewählt),
zeichnet KOMMENTIEREN nichts. Weiterhin zeigen die entfernten Computer
nicht die Cursorbewegung ent sprechend der Maus des Hostcomputers,
wie angedeutet, weil Zeile 5 in 15 keine
Kommentiernachrichten an die anderen Computer schickt, wenn Lokale
Kommentierung in Betrieb ist. Weiterhin wird die Rechnertaste nicht
als gedrückte
Taste auf dem Hostdisplay neu gezeichnet, wenn versucht wird sie
zu drücken,
weil die ANWENDUNG keine Mausnachricht erhalten hat. ANWENDUNG ist
verantwortlich für
das Zeichnen gedrückter Rechnertasten.
-
Wenn dem Benutzer im Lokal-Kommentier-Modus
eine Vorgabekommentierung zugeteilt wird, würde ein Mausklick seitens des
Benutzers ein Zeichnen mit diesem Tool einleiten. Bemerkt der Benutzer
den Irrtum, dann würde
er das Zeichnen in bekannter Weise beenden.
-
Ein Fall, wo auf dem Host ein Anwendungsprogramm
läuft,
ist in 7 gezeigt; der
Modus ist "Lokal-Kommentierung"; die Benutzereingabe
erfolgt am Hostcomputer, und der Benutzer versucht, den Rechner
zu kommentieren. In diesem Fall erkennt der EINGABE-ROUTER in 15 einen gültigen Versuch
zur Durchführung
einer Kommentierung, etwa durch das Zeichnen eines Kastens. Der
EINGABE-ROUTER richtet den Logikfluss zum KOMMENTIERBlock, welcher
die geeigneten GDI-Funktionen zum zeichnen der Kommentierung aufruft,
nämlich eines
Kastens, wie es 7 zeigt.
Da die Kommentierung jedoch örtlich
ist, werden keine Kästen
auf entfernten Computern gezeichnet, wie 7 zu entnehmen ist. Es werden keine Daten über den
Datenweg 5 in 15 geschickt.
-
8 zeigt
den Fall, wo auf dem Host ein Anwendungsprogramm läuft; es
handelt sich um den "Betrachter"-Modus; die Benutzereingabe
erfolgt am Hostcomputer, und der Benutzer versucht mit dem Rechner
zu arbeiten. Wie 8 zeigt,
wird der Mausklick ignoriert und es passiert an den entfernten Computern
nichts. In 15 liest
der EINGABE-ROUTER die Mausnachricht, blockt sie jedoch gegen ANWENDUNG
ab, weil der derzeitige Modus der "Betrachter"-Modus ist.
-
9 zeigt
einen Fall, wo auf dem Host ein Anwendungsprogramm läuft; der
Modus ist der "KOMMENTIER"-Modus; die Benutzereingabe
erfolgt am entfernten Computer, und der Benutzer versucht, mit dem
Rechner zu arbeiten.
-
Es sei angenommen, dass der Benutzer
den Mauscursor über
eine Rechnertaste bewegt und die Maus klickt. Der Mausklick wird
ignoriert. Die anderen Computer (Host und entfernte Computer) zeigen lediglich
die Cursorbewegung des Benutzers aber nichts sonst, weil kein Tool
ausgewählt
wurde. In 15A verhindert
der EINGABE-ROUTER, dass die Mausnachricht ANWENDUNG erreicht. Die
Logik wird zu KOMMENTIEREN gerichtet, wodurch über den Block GDI ein Cursor
auf den entfernten Display des Benutzers gezeichnet wird. KOMMENTIEREN sendet
auch Daten zum VERBINDUNGS-API, welcher die Logik zu KOMMENTIEREN
in 15 leitet. Dieses
KOMMENTIEREN stellt die Kommentierlogik dar, welche auf den beiden
anderen Computern vorhanden ist dem Host und dem anderen entfernten Computer.
Dieses KOMMENTIEREN unterdrückt das
Zeichnen von dem Cursor des Benutzers entsprechenden Cursors an
entsprechenden Positionen über
den GDI Block in 15,
der die GDI-Funktionsaufrufe darstellt. Der Host kann ein Tool benutzen,
etwa ein Kastenzeichnungs-Tool, während der entfernte Computer
ein anderes Tool etwa ein Kreiszeichnungs-Tool benutzen kann.
-
10 zeigt
einen Fall, wo ein Anwendungsprogramm auf dem Host läuft; der
Modus ist der KOMMENTIER-Modus; Die Benutzereingabe erfolgt am entfernten
Computer, und der Benutzer versucht, den Rechner zu kommentieren.
Es sei angenommen, der Kommentar sei ein Kasten. Es wird auf allen
Displays ein Kasten gezeichnet. In 15A richtet
der EINGABE-ROUTER am entfernten Computer des Benutzers die Mausnachrichten
an den Block KOMMENTIEREN, und KOMMENTIEREN tut zwei Dinge Erstens
ruft es die geeigneten GDI-Funktionen auf, um das Kommentieren durchzuführen, nämlich den Kasten
zu zeichnen. Zweitens sendet KOMMENTIEREN Kommentiernachrichten
an das VERBINDUNGS-API, welches die Kommentiernachrichten an die
anderen Computer übermittelt.
Einer von diesen ist jedoch der Host, und der andere ist ein entfernter
Computer. Die Logik am Host erreicht KOMMENTIEREN in 15, und die Logik an den
anderen entfernten Computern erreicht KOMMENTIEREN in 15A.
-
Beide diese KOMMENTIER-Blocks veranlassen
das Aufrufen der geeigneten GDI-Funktionen, um einen Kommentar entsprechend
der Kommentierung des Benutzers zu zeichnen. Jedoch wird im Host
der Logikweg 5 zu diesem Zeitpunkt nicht genommen, weil es nicht
notwendig ist, die Kommentierungen des Hosts an anderen Computern
wiederzugeben.
-
11 zeigt
einen Fall, wo ein Anwendungsprogramm auf dem Host läuft; die
Benutzereingabe erfolgt an einem entfernten Computer, und der Benutzer
versucht mit dem Rechner zu arbeiten. Es sei daran erinnert, dass
das Rechnerprogramm nur auf dem Host geladen ist, während ein
entfernter Benutzer damit arbeiten möchte.
-
Der EINGABE-ROUTER in 15A des entfernten Benutzers
leitet die Mausnachrichten an das VERBINDUNGS-API. Der Host erhält diese
Nachrichten, welche zum EINGABE-ROUTER in 15 des Hosts geleitet worden sind. Der
EINGABE-ROUTER des Hosts leitet diese Nachrichten zum Block ANWENDUNG
(d. h. zum Anwendungsprogramm, nämlich
dem Rechnerprogramm), welches zwei wichtige Dinge ausführt.
-
Das Rechnerprogramm behandelt die
Maßnahmen,
als ob sie von der Maus des Hosts ausgegangen wären, obwohl sie von einer entfernten
Maus kommen. Das Rechnerprogramm reagiert in seiner übli chen
Weise folgendermaßen:
(1) zeigt es eine niedergedrückte
Rechnertaste "3", (2) schreibt es
die Nummer "3" in das Display des
Rechners und (3) führt
es die eigenen internen Berechnungen aus, wenn es erfährt, dass
der Benutzer Daten eingegeben hat (nämlich die "3").
-
Ehe das Rechnerprogramm allerdings
(1) und (2) vom vorigen Absatz ausführen kann, erfasst das System
zunächst
die GDI-Funktionen,
welche das Rechnerprogramm aufruft. Dieses Erfassen ist im Block
GDI-ERFASSEN in 15 veranschaulicht. Während dieses
Erfassens tut das System praktisch zwei Dinge. Erstens sendet es
diese GDI-Funktionen an das VERBINDUNGS-API (zum Gebrauch durch die
anderen Computer). Am entfernten Computer des Benutzers richtet
das VERBINDUNGS-API in 15A die
GDI-Funktionen an
das ERFASSTE GDI-DISPLAY, welches das Hostdisplay wiedergibt. Zweitens
veranlasst es, dass die GDI-Funktionen am Host (über Block GDI in 15) ausgeführt werden. Daher
ist die allgemeine Abfolge von Ereignissen die folgende:
Der
entfernte Benutzer versucht eine Rechnertaste zu drücken.
Die
auf dem entfernten Computer laufende Software stellt diesen Versuch
fest und sendet Daten an das auf dem Host laufende Rechnerprogramm.
Die Daten haben die Form von Nachrichten, bei denen das Rechnerprogramm "denkt", dass sie von der
Maus des Host kommen.
Das Rechnerprogramm läuft wie üblich ab und zeichnet Bilder über GDI-Aufrufe
auf dem Hostdisplay.
Das System erfasst die GDI-Aufrufe und
informiert die entfernten Computer davon.
Die entfernten Computer
geben das Schirmbild des Hosts wieder. Auf diese Weise können die
entfernten Benutzer mit dem auf dem Host laufenden Rechnerprogramm
von fern arbeiten.
-
Anders zusammengefasst: Aufgrund
der am entfernten Computer gegebenen Mausnachrichten werden am Host
Mausnachrichten erzeugt. Das (auf dem Host laufende) Rechnerprogramm
reagiert auf die Mausnachrichten als ob sie am Host erzeugt wären. Die
vom Rechnerprogramm erfolgten GDI-Aufrufe werden aufgenommen und
am entfernten Computer ausgeführt,
wobei dort das Schirmbild des Hosts wiedergegeben wird.
-
12 zeigt
den Fall, wo eine Anwendung auf dem Host läuft; der Modus ist "Lokal-Kommentierung", die Benutzereingabe
erfolgt am entfernten Computer, und der Benutzer versucht mit dem
Rechner zu arbeiten. Der Mausklick des Benutzers wird ignoriert.
Auf den anderen Bildschirmen erscheint auf die Mausbewegung hin
nichts, weil kein Tool gewählt wurde.
-
13 zeigt
einen Fall, wo ein Anwendungsprogramm auf dem Host läuft; der
Modus ist "Lokal-Kommentierung"; die Benutzereingabe
erfolgt vom entfernten Computer, und der Benutzer versucht den Rechner
zu kommentieren. Die Kommentierung wird auf dem Display des Benutzers
gezeichnet wie angedeutet. Auf den anderen Displays erfolgt keine Kommentierung.
-
14 zeigt
einen Fall, wo ein Anwendungsprogramm auf dem Host läuft; der
Modus ist "Betrachten"; die Benutzereingabe
erfolgt am entfernten Computer, und der Benutzer versucht, mit dem
Rechner zu arbeiten. Wie angedeutet, bewegt sich der Mauscursor
am Display des Benutzers, jedoch wird der Mausklick ignoriert. Außerdem zeigen
die beiden anderen Displays die Bewegung des Mauscursors des Benutzers.
-
Hinsichtlich der oben beschriebenen
Fälle sollen
die folgenden Punkte bemerkt werden. Die Schirmbilder werden unter
Benutzung der GDI-Funktionen gezeichnet. Jedoch werden unterschiedliche Teile
der Schirmbilder von unterschiedlichen Programmen gezeichnet.
-
Obwohl alle diese Zeichenvorgänge unter Benutzung
von GDI-Funktionen
erfolgen, sind die GDI-Funktionen nicht das einzige Kommunikationsmedium
zwischen Computern zur Replizierung der Schirmbilder. Wenn beispielsweise
ein Benutzer eine Kommentierung durchführt, dann werden die Mausnachrichten
des Benutzers als Nachrichten über
den Weg 5 in 15 an den
anderen Computern gezeigt. Diese gezeigten Nachrichten veranlassen
dann, dass die entsprechenden KOMMENTIERUNGS-Blocks (an den anderen
Computern) die richtigen GDI-Aufrufe zum Zeichnen der Kommentierung
ausgeben. D. h., GDI-Aufrufe werden nicht direkt von dem die Kommentierung
durchführenden Benutzer
an die anderen Computer geschickt. Vielmehr werden, wenn ein Anwenderprogramm
das Zeichnen eines graphischen Bildes auf einem Display veranlasst,
alle GDI-Aufrufe über
GDI ERFASSEN in 15 aufgenommen
und veranlasst, dass sie auf den anderen Computern wiedergegeben
werden.
-
Ein Hauptgrund für die zwei unterschiedlichen
Verfahren (Wiedergabe von Mausnachrichten und Wiedergabe von GDI-Aufrufen)
ist derjenige, dass die Kommentierungen in einem Speicher an anderen
Stellen als die Schirmbildinformationen gespeichert werden. D. h.
wenn wiederum der Rechner in 2 betrachtet
wird, dass das Anwenderprogramm das Bild des Rechners auf folgende
generelle Weise speichert. Kommentierungsdaten werden gespeichert.
Anwendungsprogrammdaten werden im Anwendungsprogramm (am Host) gespeichert.
Jedes Bild einer Taste wird als Daten gespeichert, aus welchen eine
GDI-Funktion die Taste zeichnen kann. Die Daten enthalten Informationen
wie Position, Größe, Farbe,
usw. Jede Taste enthält
eine zugeordnete Zahl. Die Zahl kann als Textzeichen gespeichert
werden mit Informationen bezüglich
Position, Größe, Buchstabentyp
usw. Kommentierungsdaten werden an einer anderen Stelle, generell
aber in gleicher Weise, gespeichert. Wenn entweder das Kommentierungs-
oder das An wendungsprogramm Bitmaps benötigt, dann werden diese durch
das GUI in einer üblichen
bekannten Weise gespeichert.
-
Die Kommentierbilder werden mit den
Anwendungsbildern in bekannter Maskiertechnik kombiniert. D. h.,
an einem entfernten Computer werden die empfangenen GDI-Funktionen
in einen Graphikspeicher (Bitmap) abgespeichert. Die empfangenen Kommentierinformationen
werden in einem anderen Graphikspeicher abgelegt. Die beiden Graphikspeicher
werden miteinander maskiert. Die Kommentierdaten werden getrennt
von den Anwendungsdaten gehalten, so dass beispielsweise ein Benutzer
ein Anwendungsbild, jedoch ohne Kommentierungen aufbewahren kann.
Alternativ kann ein Benutzer Kommentierdaten allein oder ein kommentiertes Schirmbild
aufbewahren.
-
Als anderes Beispiel erlaubt das
getrennte Aufbewahren von Kommentierdaten das Zeichnen eines Schirmbildes,
welches keine Kommentierdaten hat. Wenn die Kommentierdaten mit
den Rechnerbilddaten vermischt werden, dann wäre ein Eliminieren der Kommentierdaten
schwierig, wenn nicht sogar unmöglich.
Falls GDI-Aufrufe
exklusiv übertragen werden
(d. h. es wird keine Nachrichtenreplizierung vorgenommen), dann
wäre Extraaufwand
erforderlich, um Kommentierdaten zur getrennten Speicherung zu erstellen.
-
Die GDI-Erfassung kann folgendermaßen verstanden
werden.
- A. Beim Anlaufen werden die ersten
fünf Bytes
jeder GDI-Funktion
durch einen SPRUNG-Befehl zu einem bestimmten Programm, nämlich Trap.GDI
ersetzt.
- B. Trap.GDI holt die Parameter für das gewünschte Graphikbild (z. B. im
Fall eines Kastens die Lage der beiden diagonalen Ecken) und ruft
das Unterprogramm PkgDispCall auf. Trap.GDI ersetzt ferner die ersten
fünf Bytes.
- C. PkgDispCall erhält
die Parameter von Trap.GDI und erzeugt eine Objektstruktur, die
einen Block von Daten darstellt, welche alles notwendige enthalten,
damit die anderen Computer den Kasten zeichnen können.
-
Beispielsweise enthält die Objektstruktur
Informationen bezüglich
Größe und Position
des Kastens. Ferner zeichnet das GUI Bilder innerhalb eines "Kontextes". Der Kontext enthält Dinge
wie Strichbreite, Farbe und andere Merkmale. Die Kontexte der einzelnen
Computer werden einander nachgeführt. Wenn
der Kontext des gezeichneten Kastens sich von den Kontexten der
entfernten Computer unterscheidet, enthält PkgDispCall Daten, welche
die anderen Computer brauchen, um die richtigen Kontexte zu erstellen.
-
- D. Die Objektstruktur wird zu den anderen Computern übertragen,
welche dann dieselben GDI-Funktionen ausführen
- E. Bei der Erfindung wurden die ursprünglichen GDI-Funktionen ausgeführt.
-
Die Schirmbilder werden nicht Bit
für Bit
repliziert. Beispielsweise könnte
das Bild des Rechners nach 2 bitweise
zwischen Computern übertragen
werden. Wenn der Rechner einen Platz von 200 × 300 Pixeln benötigt, dann
muss Information bezüglich
60.000 (d. h. 200 × 300)
Pixeln gesendet werden.
-
Stattdessen wird das in 2 gezeigte spezielle Rechnerbild
als achtzehn Rechtecke behandelt zuzüglich eines Textzeichens für jedes
der 16 Rechtecke, so dass man insgesamt 34 Objekte erhält. Jedes
Objekt benötigt
Parameter wie Größe und Position.
Die Anzahl von Parametern ist klein und liegt im Bereich von 3 bis
10. Nimmt man 10 Parameter an, dann müssen 340 Posten von Daten gesendet
werden. Natürlich
hängt die
Größe jedes
Postens von vielen Faktoren ab, aber eine kleine Anzahl von Bytes
für jeder
Posten kann angenommen werden.
-
Daher werden die 60.000 Posten von
Daten, die für
eine bitweise Replizierung erforderlich sind, auf maximal 300 Stücke von
Daten für
eine Objektreplikation verringert. Natürlich können einige Objekte die Form
von Graphikspeichern haben, und müssen Bit für Bit gesendet werden. Im Allgemeinen
ist jedoch zu erwarten, dass Graphikspeicher selten auftreten. Weiterhin
ist im Allgemeinen zu erwarten, dass Graphikspeicher, wenn sie gesendet
werden, nur einmal gesendet zu werden brauchen. Außerdem werden
die Objektdaten wenn möglich
komprimiert. d. h. dass jede Übertragung
zwischen Computern möglichst
mit komprimierten Daten erfolgt. Komprimierung ist in der Technik
bekannt.
-
Kommunikation zwischen Computern
kann verschiedene Formen haben. Kommerziell verfügbare Netze, wie örtliche
oder weite Netze, können
benutzt werden. Es können
auch kommerziell verfügbare
ISDN-Telefondienste benutzt werden, sofern sie von den örtlichen
Telefonfirmen bereitgestellt werden. Es kann auch eine Modemkommunikation
benutzt werden. Es gibt kommerziell erhältlich Packages, welche Nachrichten
detektieren, die in Reaktion auf ein Eingangsgerät von dem GUI erzeugt werden.
Ein solches Package ist WINSIGHT, welches von Borland International
erhältlich
ist.
-
Eine andere Möglichkeit für die oben beschriebene Graphikerfassung
ist die folgende. Das von GDI gebotene System wird durch ein getrennte Prozedur
ersetzt, welche GDI-Aufrufe verarbeitet, ehe das aktuelle System
GDI aufgerufen wird. Der Name des System GDI wird verändert, um
Verwirrung zwischen den beiden Modulen zu vermeiden. die selbe Technik
wird auch auf USR.EXE angewandt, um gleichfalls GDI-Aufrufe zu erfassen,
Welche über
die systemeigenen Module erfolgen.
-
Ein gegebener Computer kann als Host
für ein
Programm und ein entfernter Computer für ein anderes dienen. Beispielsweise
kann auf einem Computer ein Wortverarbeitungsprogramm laufen und
auf einem anderen ein CAD-Zeichenprogramm. Für das jeweilige Programm ist
jeder der Host.
-
Da die Software bei jedem Computer
gleich oder praktisch gleich ist, können alle Benutzer entweder
das Wortverarbeitungsprogramm oder das CAD-Programm in der oben
beschriebenen Weise laufen lassen.
-
Es gibt zwei "Cursor"-Typen. Jedes GUI erzeugt seinen eigenen "realen" Cursor. Der reale
Cursor wird nicht von den GDI-Funktionen
erzeugt, sondern durch eine unabhängige Funktion im GUI. Der Leser
kann den Cursor als Graphikspeicher (Bitmap) ansehen, den das GUI
auf die Mausbewegung hin bewegt.
-
Außer dem realen Cursor, der
von der lokalen Maus gesteuert wird, erzeugt das System einen "Pseudo"-Cursor für jeden
entfernten Teilnehmer. Die Pseudo-Cursor werden unter Verwendung
der GDI-Funktionen erzeugt.
-
Manchmal ändert ein realer Cursor seine
Gestalt, wenn er sich bewegt. Beispielsweise kann er die Form eines
Pfeils annehmen, wenn er sich auf einer Tool-Leiste befindet, und
sich dann in eine Hand verändern,
wenn sie auf einem Kundenbereich liegt. Manchmal erfolgt diese Änderung
unter Steuerung durch das Anwendungsprogramm. Wenn also ein entfernter
Benutzer ein Anwendungsprogramm, das auf einem Host läuft (wie
in 11) steuert, dann kann
das Anwendungsprogramm den Cursor am Host verändern, ohne jedoch die GDI-Aufrufe
zu benutzen. Daher werden durch die GDI-Erfassung nach den 15 und 15A die Änderung auf dem entfernten
Bildschirm nicht wiedergegeben.
-
Um diesem Problem zu begegnen, überwacht
das System die Funktionen, welche den realen Cursor (also den SetCursor-Befehl)
verändern.
Die Cursoränderung
wird auch auf dem entfernten Computer wiedergegeben. Eine Möglichkeit
besteht in der Durchführung
desselben SetCursor-Befehls. Eine andere bestünde darin, den entfernten Cursor
durch die Ausführung
einer geeigneten Folge von GDI-Aufrufen zu verändern, oder einen Grafikspeicher
zu zeichnen, wenn sich der Hostcursor ändert.
-
Es versteht sich, dass das System
nur Fenster wiedergibt, welche der Benutzer eines Displays identifiziert.
D. h., der Benutzer kann einen Arbeitsplatz, wie ein Notepad, während einer
Konferenz in der Privatsphäre
halten. GDI-Aufrufe benutzen einen Auftragsabwickler (task handle),
und wenn dieser sich nicht auf einen aufgeteilten Posten bezieht,
dann werden die GDI-Aufrufe
nicht aufgeteilt.