-
Zugehörige Anmeldung
-
Diese Anmeldung beansprucht die Priorität der provisorischen Patentanmeldung der Vereinigten Staaten mit der Seriennummer 62/130,380 mit dem Titel „Multiuser Interactive Display System and Method”, welche am 9. März 2015 eingereicht wurde und deren Offenbarung hier in ihrer Vollständigkeit durch Inbezugnahme aufgenommen wird.
-
Hintergrund
-
Die vorliegende Offenbarung betrifft Systeme und Verfahren, um ein interaktives Mehrbenutzer-Anzeigesystem bereitzustellen, wobei sich mehrere Benutzer gleichzeitig an derselben computerbasierten grafischen Workstation bzw. einem Arbeitsplatz einloggen und diese gemeinsam benutzen können, einen individuellen Inhalt gemeinsam benutzen können und mit den gemeinsam benutzten Inhalten gleichzeitig in einer virtuellen grafischen Desktopumgebung interagieren können.
-
Die Fähigkeit, verschiedene digitale Daten und Informationen, welche durch verschiedene Quellen erzeugt werden, zu interpretieren und zu verarbeiten, ist wichtig. Da große Mengen von digitalen Daten und Informationen jeden Tag mit kontinuierlich ansteigenden Volumen erzeugt werden, existiert das Bedürfnis nach einer effektiven Art und Weise, um diese Informationen und Daten für eine einfache Filterung, einen Vergleich und eine Analyse darzustellen.
-
Bildschirme mit ultrahoher Auflösung und große fliesenartige (tiled) Anzeigewände werden oft zur Darstellung von Informationen und Daten, zum Beispiel von Bildern, Videos, PDF-Dokumenten, Livestreams (einschließlich audiovisueller Konferenzen) und anderen Typen von Mediendateien, eingesetzt.
-
Herkömmlicherweise können große fliesenartige Anzeigewände nur mit einem Cluster von Computern aufgebaut werden. Diese Anforderung ist die große Hürde gewesen, welche aufgrund der Kosten und der Komplexität, die erforderlich sind, um ein Computercluster aufzubauen und zu unterhalten, verhindert, dass Benutzer sich an Anzeigewandtechniken anpassen oder zu diesen übergehen. Mit der Einführung von moderner mehrköpfiger (multi-headed) Grafik-Hardware können jedoch Benutzer einfache Anzeigewände mit einer ultrahohen Auflösung aufbauen. 1A stellt ein Beispiel einer 4 × 3 – Anzeigewand 20 dar, welche durch zwölf 1080p (1920×1080 Pixel) Anzeigeeinheiten 22, die TV-Einheiten mit hoher Auflösung sein können, definiert wird. Die entsprechenden Anzeigeeinheiten 22 in der Anzeigewand 20 sind in 1A mit 1–12 nummeriert.
-
Die Anzeigeeinheiten 22 können durch eine einzige Workstation mit Hardware, welche Grafikkarten der oberen Preisklasse mit mehreren Köpfen aufweist, betrieben werden. Große Grafikhardware-Hersteller, wie z. B. NVIDIA, AMD und Matrox, stellen zum Beispiel mehrköpfige Grafik-Anzeigetechniken bereit, wie z. B. NVIDIA Mosaic, AMD Eyefinity und Matrox PowerDesk. Jedes dieser Produkte kann die Erzeugung einer einzigen virtuellen Desktopanzeige über die Anordnung der mehreren, fliesenartigen Anzeigeeinheiten 22 ermöglichen, um einen einzigen grafischen Arbeitsplatz mit einer ultrahohen Auflösung auf einer virtuellen Anzeige, welche durch die Anzeigewand 20 definiert ist, bereitzustellen. Die Anzeigewand 20 kann daher eine fliesenartige Anordnung von Anzeigeeinheiten 22 mit einer hohen Auflösung umfassen, über welche sich übergangslos eine große Anzeige 24 mit ultrahoher Auflösung spannt. Alternativ kann die Anzeige 24 auf einem einzigen Bildschirm bereitgestellt werden, welcher einer der Anzeigeeinheiten 22 sein kann.
-
1B zeigt einen Teil bzw. eine Teilansicht einer einzelnen Workstation oder eines Personal-Computers („PC”) 26 mit drei vierköpfigen NVIDIA Quadro K 5200 Grafikkarten 28, 30 und 32. Die vier Ausgänge von jeder Grafikkarte 28, 30, 32 sind durch ein entsprechendes Kabel mit einer entsprechenden der nummerierten Anzeigeeinheiten 22 der 1A verbunden und dementsprechend mit einer entsprechenden Ausgangsnummer 1–12 nummeriert. Unter der Annahme, dass jede Anzeigeeinheit 22 der Anzeigewand 20 ein typischer TV mit hoher Auflösung (Auflösung von 1920×1080) ist, beträgt die Gesamtauflösung der Anzeigewand 7680×3240 Pixel. Die fliesenartige Anzeigewand 20 kann daher die Anzeige von zahlreichen Bildern und Videos hoher Auflösung, welche gleichzeitig in ihrer natürlichen Auflösung dargestellt werden, ermöglichen. Alternativ kann die Workstation 26 eine einzige Grafikkarte aufweisen, welche mit einem einzigen Bildschirm verbunden ist. Die Diskussion, welche folgt, betrifft eine Workstation und eine Anzeigewand, wie sie in 1A und 1B dargestellt sind, aber kann im Allgemeinen genauso gut auf den Fall einer Workstation, welche mit einem einzigen Bildschirm verbunden ist, angewendet werden.
-
Herkömmliche grafische Desktop-Betriebssysteme werden basierend auf der Annahme entworfen, dass ein einziger Benutzer physikalisch mit der Workstation 26 unter Verwendung einer Tastatur und einer Maus (nicht dargestellt) interagiert. Es kann mehrere verschiedene Benutzerkonten geben, und mehrere Benutzer können sich gleichzeitig abgesetzt anmelden. Jedoch ist die Zusammenarbeit von mehreren Benutzern, wobei mehrere Benutzer in demselben Raum zusammensitzen und gleichzeitig mit Inhalten interagieren, welche auf einer einzigen gemeinsamen Anzeigewand dargestellt sind, sehr eingeschränkt, da nur ein einziger Benutzer direkt mit den grafischen Inhalten auf dem PC 26 interagieren kann. Mit anderen Worten sind solche grafischen Desktop-Betriebssysteme aktuell für ein Einzelbenutzer-Interaktionsschema entworfen, wobei die grafische Desktopumgebung im Besitz von einem einzigen Benutzer ist. Ein Benutzer erhält Zugang zu einer Desktopsitzung eines Computersystems, indem er sich mit seinem Benutzer-Berechtigungsnachweis anmeldet, welcher einem verteilten System ermöglicht, einem Benutzer einen separaten privaten Arbeitsbereich bereitzustellen. Wenn sich ein Benutzer einmal angemeldet hat, befindet sich die Desktopsitzung im Besitz des Benutzers. Daher ermöglicht dieser herkömmliche Entwurf nicht, dass sich mehrere Benutzer gleichzeitig an demselben grafischen Desktop-Arbeitsbereich anmelden. Solche Systeme sind eingeschränkt, da sie nur ermöglichen, dass ein einziger Benutzer, welcher aktuell an dem PC 26 angemeldet ist, auf die grafischen Inhalte, welche er teilt, zugreift, und die Fähigkeit hat, mit diesem Inhalt zu interagieren. Wenn solch ein PC mit der Anzeigewand 20 verbunden ist, bleibt die Möglichkeit der Anzeigewand als eine zusammenwirkende Umgebung für mehrere Benutzer in ähnlicher Weise beschränkt. Anzeigewandsysteme, welche das herkömmliche Schema einsetzen (d. h. dass ein grafischer Desktopbereich nur einem einzigen Benutzer gehört), welches ermöglicht, dass Inhalte von getrennten Quellen gleichzeitig dargestellt werden, können die Fähigkeit zum Zusammenwirken der Anzeigewandumgebung begrenzen.
-
Es ist wünschenswert, diese Beschränkung aufzuheben und eine einzige virtuelle grafische Desktopumgebung bereitzustellen, bei welcher sich mehrere Benutzer gleichzeitig an demselben Arbeitsbereich anmelden können und diesen gemeinsam verwenden können, individuelle Inhalte gemeinsam verwenden können und gleichzeitig mit den gemeinsam verwendeten Inhalten interagieren können.
-
Viele Benutzerumgebungen oder Benutzerforen würden von der Bereitstellung einer solchen virtuellen grafischen Desktopumgebung profitieren. Ein solches Beispiel ist der Unterricht. Die Klassenraumumgebung ändert sich rasch, da Studenten kaum Lektionen passiv von ihren Schreibtischen aufnehmen. Jahrzehntelange Forschung spricht von den pädagogischen Vorteilen eines aktiven Lernens; dieser Paradigmenwechsel in der Art und Weise, wie Information geteilt, erzeugt und ausgetauscht wird, erfordert jedoch, denjenigen, welche danach suchen, gute Lernübungen bereitzustellen. Diese Herausforderungen können erfüllt werden, indem eine virtuelle Tafel bereitgestellt wird, auf welcher Lehrer und Studenten verschiedene Medien gleichzeitig gemeinsam benutzen und gleichzeitig mit den Medien interagieren können, wodurch die Lernübungen verbessert werden. Eine solche interaktive grafische Desktopumgebung kann weiter verbessert werden, indem sie ausgestaltet ist, um eine Anzeigewand mit einem großen Maßstab anstelle oder zusätzlich zu einem einzelnen Bildschirm aufzuweisen.
-
Eine andere Benutzerumgebung oder ein anderes Benutzerforum, welches vom Einsatz einer solchen interaktiven grafischen Desktopumgebung profitieren würde, sind Unternehmen. Die „mehr Köpfe sind besser”-Philosophie ist unter Geschäftsleuten weit akzeptiert, und die Vorteile einer Zusammenarbeit von Individuen zum gemeinsamen Nutzen sind gut dokumentiert. Unternehmen können eine zusammenwirkende Synergie effektiver erzeugen, kanalisieren und erfassen, während sie auftritt, indem eine stark zusammenwirkende virtuelle grafische Desktopumgebung eingesetzt wird, welche in der Lage ist, digitale Inhalte von verschiedenen Quellen in verschiedenen Formaten darzustellen, was mehreren Benutzern ermöglicht, unverzüglich Informationen zu teilen und die geteilten Inhalte gleichzeitig zu kommentieren. Eine solche Zusammenarbeit von mehreren Benutzern zu ermöglichen, würde die Produktivität von Unternehmen stark verbessern, umso mehr, wenn dies auch den Einsatz einer Anzeigewand im großen Maßstab anstelle oder zusätzlich zu einem einzelnen Bildschirm umfassen würde.
-
In der Ära von Big Data fordert ein Synthetisieren von Informationen die meisten Experten bzw. Vordenker. Noch schwieriger kann die Aufgabe sein, aggregierte Einsichten, welche gleichzeitig von vielen Quellen beigetragen werden, anderen zu kommunizieren, welche den großen Zusammenhang verstehen sollen. Daher ist eine andere Benutzerumgebung oder ein anderes Benutzerforum, welches von einer solchen Verbesserung einer Zusammenarbeit von mehreren Spezialisten profitieren könnte, das Gesundheitswesen.
-
Zusammenfassung
-
Die vorliegende Offenbarung stellt vorteilhafterweise ein interaktives Anzeigesystem für mehrere Benutzer bereit, welches Verbesserungen bei den Möglichkeiten von Individuen und Gruppen ermöglicht, um digitale Daten und Informationen zu interpretieren und zu verarbeiten. Das Anzeigesystem kann einen einzigen Bildschirm aufweisen oder kann ausgestaltet sein, um eine große Anzeigewand aufzuweisen.
-
Das offenbarte interaktive Mehrbenutzer-Anzeigesystem (das „System”), wobei eine Ausführungsform davon als ThriveTM bekannt sein könnte, weist ein Computersoftwarepaket auf, welches entworfen ist, um zusammenwirkende Erfahrungen von mehreren Benutzern in einer Umgebung mit einem einzigen Bildschirm und/oder mit einer großen fliesenartigen Anzeigewand mit einer hohen Auflösung zu verbessern. Das System ermöglicht dies, indem es mehreren Benutzern ermöglicht, denselben grafischen Arbeitsbereich gemeinsam zu nutzen und mit den Inhalten in dem Arbeitsbereich gleichzeitig zu interagieren, während die Kenntnis eines Inhaltsbesitzes aufrechterhalten wird, und es in der Lage ist, zwischen den jeweiligen Interaktionen eines Benutzers mit den entsprechenden Inhalten zu unterscheiden.
-
Die Systemsoftware besteht aus zwei unabhängigen Anwendungen: dem Systemsoftwareserver (Systemserver) und dem Systemsoftwareclient (Systemclient). Der Systemserver läuft in einer hoch performanten Grafikworkstation, welche in bestimmten Ausführungsformen mit den mehreren Anzeigeeinheiten einer Anzeigewand verbunden ist. Bei solchen Ausführungsformen stellt der Systemserver einen einzigen virtuellen grafischen Desktoparbeitsbereich bereit, welcher sich nahtlos über die fliesenartigen Anzeigeeinheiten erstreckt. Alternativ ist die Workstation mit einem einzigen Bildschirm ultrahoher Auflösung verbunden, wobei derselbe grafische Arbeitsbereich in einer kleineren Abmessung bereitgestellt wird. Unabhängig von der Anzeigekonfiguration ermöglicht die Systemsoftware eine Mehrbenutzerinteraktivität. Der Systemclient läuft in jeder individuellen Eingabevorrichtung eines Benutzers (typischerweise einem Laptop) und wird eingesetzt, um (vorzugsweise drahtlos) mit dem Systemserver zu kommunizieren, damit die Benutzer einen Inhalt, welcher auf der Anzeigewand dargestellt wird, gemeinsam nutzen können und abgesetzt mit dem gemeinsam genutzten Inhalt kommunizieren können, wobei sie ihre jeweiligen individuellen Eingabevorrichtungen einsetzen.
-
Das offenbarte System ermöglicht einen höchst zusammenwirkenden, gemeinsam genutzten Arbeitsbereich, da es mehrere digitale Inhalte gleichzeitig den zusammenarbeitenden Benutzern darstellen kann und den Benutzern ermöglicht, gleichzeitig mit den verschiedenen dargestellten Inhalten zu interagieren.
-
Bei einer Ausführungsform wird ein Verfahren bereitgestellt, um die Anzeige einer Information zu manipulieren, welche auf einer Videoanzeige dargestellt wird, was eine Mehrzahl von übertragenen Informationsdateien, die bei einem Server erfasst werden, einschließt, wobei eine Übertragung jeder aus der Mehrzahl der übertragenen Informationsdateien durch eine andere von mehreren Rechenvorrichtungen begonnen wird. Das Verfahren weist einen Aufbau von mehreren Kommunikationskanälen bei dem Server auf, wobei jeder der mehreren Kommunikationskanäle einer anderen der mehreren Rechenvorrichtungen zugeordnet ist. Das Verfahren weist darüber hinaus ein Halten jeder aus der Mehrzahl der übertragenen Informationsdateien auf dem Server und ein Darstellen jeder aus der Mehrzahl der übertragenen Informationsdateien gleichzeitig auf der Anzeige auf.
-
Bei einer anderen Ausführungsform wird ein Verfahren bereitgestellt, um Interaktionen mehrerer Benutzer mit einer Information, welche auf einer Videoanzeigewand dargestellt wird, zu verarbeiten, was ein Speichern mehrerer Informationsdateien, welche durch mehrere Rechenvorrichtungen übertragen werden, auf einem Server einschließt. Das Verfahren weist darüber hinaus ein Darstellen jeder der mehreren gespeicherten Informationsdateien auf der Anzeigewand und ein in Verbindung Bringen einer von mehreren grafischen Benutzerschnittstellenkomponenten mit einer bestimmten der mehreren Rechenvorrichtungen auf. Das Verfahren weist auch ein Darstellen der grafischen Benutzerschnittstellenkomponente für jede der mehreren Rechenvorrichtungen auf der Anzeigewand auf, wobei die dargestellte grafische Benutzerschnittstellenkomponente direkt durch die damit in Verbindung stehende der mehreren Rechenvorrichtungen gesteuert wird.
-
Bei noch einer anderen Ausführungsform wird ein Videoanzeigewandsystem zur Darstellung einer Information, welche durch mehrere Rechenvorrichtungen bereitgestellt wird, bereitgestellt, wobei jede mit dem Videoanzeigewandsystem nach Ermessen eines Benutzers interagiert, was eine Anzeigewand und einen Systemserver einschließt. Der Systemserver ist operativ mit der Anzeigewand und den mehreren Rechenvorrichtungen gekoppelt. Der Systemserver weist einen Kommunikationsmanager, welcher ausgestaltet ist, um mehrere von übertragenen Interaktionsnachrichten von jeder der mehreren Rechenvorrichtungen zu empfangen, einen Dateimanager, eine Szenen-Render-Vorrichtung bzw. Szenenrenderer und einen Mehrbenutzer-Interaktionsmanager auf. Der Dateimanager ist ausgestaltet, um eine Mediendatei von jeder der mehreren Rechenvorrichtungen zu empfangen. Die Szenen-Render-Vorrichtung ist ausgestaltet, um die Mediendatei von jeder der mehreren Rechenvorrichtungen zur Anzeige auf der Anzeigewand als die Videoinformation zu rendern. Der Mehrbenutzer-Interaktionsmanager ist ausgestaltet, um Interaktionen von jeder der mehreren Rechenvorrichtungen mit der dargestellten Videoinformation abhängig von den empfangenen Interaktionsnachrichten anzuleiten.
-
Kurze Beschreibung der Zeichnungen
-
Die vorab genannten Aspekte und andere Eigenschaften und Vorteile eines Verfahrens oder eines Systems gemäß der vorliegenden Offenbarung werden ersichtlicher und verständlicher mit Bezug zu der folgenden Beschreibung von beispielhaften Ausführungsformen im Zusammenhang mit den beigefügten Figuren.
-
1A stellt eine 4 × 3 fliesenartige Anzeigewand dar, welche bei einer Ausführungsform des offenbarten Systems eingesetzt wird, wobei jede Anzeigeeinheit typischerweise ein hochauflösendes Fernsehgerät ist, und über welches ein einziger virtueller Desktopbildschirm bereitgestellt wird.
-
1B ist eine fragmentierte, partielle Ansicht einer einzigen Workstation, welche bei einer Ausführungsform des offenbarten Systems eingesetzt wird, um die Anzeigewand der 1A zu steuern.
-
2 ist eine schematische Darstellung eines Mehrbenutzerinteraktionsschemas gemäß einer Ausführungsform des offenbarten Systems.
-
3 ist eine schematische Darstellung einer Ausführungsform der Systemsoftwarestruktur, wobei wichtige Softwaremodule dargestellt sind, welche in dem Systemserver und jedem Systemclient vorhanden sind.
-
4 ist ein Mehrbenutzer-Interaktionsdiagramm für eine Ausführungsform des offenbarten Systems.
-
5 stellt die abstrakte Klassenhierarchie von Anwendungs- und GUI-Komponenten dar, welche eine Instanz eines grafischen Inhalts umfassen und gleichzeitig mit mehreren Benutzern interagieren können.
-
Entsprechende Bezugszeichen bezeichnen überall in den mehreren Ansichten entsprechende Teile.
-
Beschreibung
-
Die im Folgenden beschriebenen Ausführungsformen sollen die Erfindung nicht erschöpfend beschreiben oder sie auf die genauen Ausbildungen oder Schritte, welche in der folgenden detaillierten Beschreibung offenbart sind, beschränken, sondern diese sind ausgewählt worden und werden hier beschrieben, so dass andere Fachleute die Prinzipien und Praktiken gemäß der vorliegenden Offenbarung durchdringen und verstehen und ihre Lehren einsetzen können. Daher sollte klar sein, dass die hier beschriebene Erfindung in ihrer Anwendung nicht auf die Details beschränkt ist, welche in der folgenden Beschreibung dargelegt werden oder in den folgenden Zeichnungen dargestellt sind, und andere Ausführungsformen aufweisen kann und in verschiedenen Arten betrieben oder ausgeführt werden kann.
-
Die vorliegende Offenbarung kann mit „objektorientierter” Software und insbesondere mit einem „objektorientierten” Betriebssystem ausgeführt werden. Die „objektorientierte” Software ist in „Objekten” organisiert, welche jeweils typischerweise einen Satz von Computeranweisungen aufweisen, die verschiedene Prozeduren („Methoden”) beschreiben, welche abhängig von „Nachrichten”, die an das Objekt gesendet werden, oder abhängig von „Ereignissen”, welche bei dem Objekt auftreten, auszuführen sind. Solche Operationen weisen zum Beispiel die Manipulation von Variablen, die Aktivierung eines Objekts durch ein externes Ereignis und die Übertragung von einer oder von mehreren Nachrichten zu anderen Objekten auf.
-
Nachrichten werden zwischen Objekten gesendet und empfangen, welche bestimmte Funktionen aufweisen und die Kenntnis haben, Prozesse auszuführen. Nachrichten werden abhängig von Benutzeranweisungen erzeugt, zum Beispiel indem ein Benutzer ein Symbol mit einem „Maus”-Zeiger aktiviert und dadurch ein Ereignis erzeugt. Es können auch Nachrichten durch ein Objekt abhängig von dem Empfang einer Nachricht erzeugt werden. Wenn eines der Objekte eine Nachricht empfängt, führt das Objekt eine Operation (eine Nachrichtenprozedur) aus, welche mit der Nachricht korrespondiert, und gibt, wenn es notwendig ist, ein Ergebnis der Operation zurück. Jedes Objekt weist einen Bereich auf, in welchem interne Zustände (Instanzvariablen) des Objekts selbst gespeichert werden und in welchem die andern Objekte keinen Zugriff haben. Ein Merkmal eines objektorientierten Systems ist die Vererbung. Zum Beispiel kann ein Objekt zum Zeichnen eines „Kreises” auf eine Anzeige Funktionen und Kenntnisse von einem anderen Objekt zum Zeichnen einer „Form” auf eine Anzeige vererben.
-
Ein Programmierer „programmiert” in einer objektorientierten Programmiersprache, indem er individuelle Blöcke, welche jeweils ein Objekt kreieren, in dem seine Methoden definiert werden, schreibt. Eine Sammlung von solchen Objekten, welche ausgestaltet sind, um miteinander durch Nachrichten zu kommunizieren, ergibt ein objektorientiertes Programm. Eine objektorientierte Programmierung eines Computers ermöglicht die Modellierung von interaktiven Systemen, bei welcher jede Komponente des Systems mit einem Objekt modelliert werden kann, wobei das Verhalten von jeder Komponente durch die Methoden ihres entsprechenden Objekts simuliert wird und wobei die Interaktionen zwischen Komponenten simuliert werden, indem Nachrichten zwischen Objekten übertragen werden.
-
Ein Operator kann eine Sammlung von in gegenseitiger Beziehung stehenden Objekten, welche ein objektorientiertes Programm umfasst, anregen, indem eine Nachricht an eines der Objekte gesendet wird. Der Empfang der Nachricht kann bewirken, dass das Objekt antwortet, indem vorbestimmte Funktionen ausgeführt werden, welche einschließen können, dass weitere Nachrichten an ein oder an mehrere andere Objekte gesendet werden. Die anderen Objekte können wiederum weitere Funktionen abhängig von den Nachrichten, die sie empfangen, ausführen, was ein Senden von noch weiteren Nachrichten einschließt. Auf diese Weise können sich Folgen und Kombinationen von Nachrichten und Antworten fortsetzen und können zu einem Ende kommen, wenn auf alle Nachrichten reagiert worden ist und keine neuen Nachrichten gesendet werden. Wenn ein Modellieren von Systemen eine objektorientierte Sprache verwendet, muss ein Programmierer nur darüber nachdenken, wie jede Komponente eines modellierten Systems auf eine Anregung antwortet, und muss nicht bezüglich der Folge von Operationen nachdenken, welche abhängig von einigen Anregungen auszuführen sind. Solch eine Folge von Operationen ist die Folge der Interaktionen zwischen den Objekten in Abhängigkeit von der Anregung und muss nicht durch den Programmierer vorher bestimmt werden.
-
Obwohl eine objektorientierte Programmierung eine Simulation von Systemen von in gegenseitiger Beziehung stehenden Komponenten intuitiver macht, ist die Arbeitsweise eines objektorientierten Programms oft schwer zu verstehen, da die Folge von Operationen, welche durch ein objektorientiertes Programm ausgeführt wird, gewöhnlicherweise nicht sofort aus einem Softwarelisting ersichtlich wird, wie es für sequenziell organisierte Programme der Fall ist. Weder ist einfach zu bestimmen, wie ein objektorientiertes Programm arbeitet, indem einfach die leicht zu verstehenden Ausdrücke ihrer Arbeitsweise betrachtet werden. Die meisten Operationen, welche durch einen Computer abhängig von einem Programm ausgeführt werden, sind für einen Betrachter „unsichtbar”, da typischerweise nur relativ wenige Schritte in einem Programm eine sichtbare Computerausgabe erzeugen.
-
Zahlreiche Begriffe, welche häufig benutzt werden, haben in dem aktuellen Kontext spezielle Bedeutungen. Der Begriff „Objekt” bezieht sich auf eine Gruppe von Computeranweisungen und zugehörige Daten, welche direkt oder indirekt durch den Benutzer aktiviert werden können. Die Begriffe „Fenstereinblendtechnik”, „Arbeiten in Fenstern” und „objektorientiertes Betriebssystem” werden verwendet, um eine Computerbenutzerschnittstelle zu bezeichnen, bei welcher Information auf einer Videoanzeige manipuliert und dargestellt wird, wie z. B. in begrenzten Bereichen auf einer Rasterscan-Videoanzeige. Die Begriffe „Netzwerk” („network”), „Local Area Network”, „LAN”, „Wide Area Network” und „WAN” bezeichnen zwei oder mehr Computer, welche verbunden sind, so dass Nachrichten zwischen den Computern übertragen werden können. Bei solchen Computernetzwerken arbeitet typischerweise einer oder mehrere Computer als ein „Server”, als ein Computer mit großen Speichereinrichtungen, wie z. B. Festplatten, und Kommunikationshardware, um periphere Vorrichtungen, wie z. B. Anzeigewände, Drucker oder Modems zu betreiben. Andere Computer stellen eine Benutzerschnittstelle bereit, so dass Benutzer von Computernetzwerken Zugang zu Netzwerkressourcen, wie z. B. gemeinsam genutzten Dateien, allgemeinen peripheren Vorrichtungen und einer Kommunikation zwischen Computern, haben können. Benutzer aktivieren Computerprogramme oder Netzwerkressourcen, um „Prozesse” zu erzeugen, welche die allgemeine Arbeitsweise des Computerprogramms zusammen mit Arbeitsweisen, welche spezielle Eigenschaften aufweisen, die durch Eingangsvariablen und Umgebung bestimmt werden, aufweisen.
-
Die Ausführungsform eines interaktiven Mehrbenutzer-Anzeigesystems 18 (d. h. das System 18 oder „das System”), welche hier beschrieben wird, weist eine Anzeigewand 20 auf, wie sie vorab beschrieben ist. Es sei jedoch darauf hingewiesen, dass bestimmte Ausführungsformen eines Systems 18 ausgestaltet sein können, um anstelle oder zusätzlich einen oder mehrere einzelne Bildschirme aufzuweisen, um eine Anzeige 24 bereitzustellen. Das System 18 verwendet auch eine einzelne Workstation oder einen einzelnen PC 26', von dem ein Teil in 1B dargestellt ist. Die Workstation 26' ist strukturell der vorab beschriebenen Workstation 26 ähnlich und kann eine identische Hardware, wie z. B. vier-köpfige NVIDIA Quadro K5200 Grafikkarten 28, 30 und 32 aufweisen. Wie in dem Fall der vorherigen Workstation 26, sind die vier Ausgänge jeder Grafikkarte 28, 30, 32 der Workstation 26' durch ein entsprechendes Kabel jeweils mit einer entsprechenden von spezifizierten Anzeigeeinheiten 22 der Anzeigewand 20, wie sie in 1A dargestellt ist, verbunden. Die Grafikkartenausgänge der Workstation 26' sind in ähnlicher Weise entsprechend spezifiziert 112. Die Workstation 26' unterscheidet sich jedoch deutlich von der vorherigen Workstation 26, indem die Workstation 26' eine Systemsoftware aufweist, welche es ihr ermöglicht, als der Server des Systems 18 (der „System Server” oder Systemserver 46) zu fungieren.
-
Das Mehrbenutzer-Interaktionsmodell des Systems 18 stellt eine virtuelle grafische Desktopsession (einen Arbeitsbereich) bereit, an welche sich mehrere Benutzer anmelden können, bei welcher Inhalte gemeinsam benutzt werden können und mit welcher gleichzeitig interagiert werden kann. Es gibt zwei fundamentale Voraussetzungen, um eine Mehrbenutzerinteraktivität zu ermöglichen:
- (1) Ein Mechanismus wird bereitgestellt, welcher gleichzeitig mehrere Interaktionsnachrichten von Benutzern empfangen und diese Interaktionen ausführen kann. Diese Voraussetzung stellt einen Begriff des gemeinsam genutzten Desktop-Arbeitsbereichs bereit, wobei jeder teilnehmende Benutzer seine eigene Eingabevorrichtung/seinen eigenen Laptop benutzen kann, um mit dem gemeinsam genutzten Inhalt zu interagieren.
- (2) Mit grafischen Objekten, welche auf der Anzeigewand erscheinen, kann gleichzeitig interagiert werden, und der Systemserver weiß, welcher Benutzer mit diesen grafischen Objekten interagiert. Diese Voraussetzung enthält eine Besitzerinformation der Medien und der Interaktionen in dem gemeinsam genutzten Arbeitsbereich, in welchem verschiedene Benutzer etwas gemeinsam benutzen und gleichzeitig interagieren können.
-
Daher besteht der Kern der zusammenarbeitenden Umgebungen von mehreren Benutzern, was durch das System 18 ermöglicht wird, aus dem Mechanismus, welcher mehreren Benutzern ermöglicht, ihre Eingabevorrichtungsereignisse gleichzeitig zu streamen, und aus den neu entworfenen grafischen Benutzerschnittstellenkomponenten (GUI-Komponenten), welche sich den Mehrbenutzerinteraktionen auf ihnen bewusst sind.
-
2 stellt ein Beispiel eines Mehrbenutzer-Interaktionsschemas dar. Bei diesem Beispiel benutzen drei Benutzer, welche Eingabevorrichtungen 34, wie z. B. Laptopcomputer, einsetzen, (welche individuell als Laptopbenutzer A, B und C bezeichnet werden) gemeinsam ihre Medien mit der Anzeigewand 20 (1A), welche durch eine einzige Workstation 26' (1B) betrieben wird. Die Übertragung der gemeinsam genutzten Medien von jedem entsprechenden Laptopbenutzer A, B oder C zu der Workstation 26' verläuft über einen zugeordneten drahtlosen Kommunikationskanal 36 (welcher entsprechend als Kanal A, B oder C bezeichnet ist). Wann immer sich ein Benutzer mit dem Systemserver 46 der Workstation 26' verbindet, wird ein bestimmter Kommunikationskanal 36 zwischen dem Systemserver und diesem Benutzer aufgebaut. Der Systemserver erzeugt auch einen grafischen Mauszeiger 37 für diesen Benutzer beim Aufbau des bestimmten Kommunikationskanals 36, und diese grafischen Zeiger arbeiten in derselben Weise wie Mauszeiger in einer herkömmlichen grafischen Desktopumgebung. Indem ein bestimmter Kommunikationskanal für jeden Benutzer aufgebaut wird, wird die Benutzerinformation über die gemeinsam genutzten Mediendateien 38, die Interaktionsnachrichten 40 und die grafischen Mauszeiger 37 in dem Systemserver 46 gehalten.
-
Die Benutzer interagieren mit den dargestellten gemeinsam genutzten Medien unter Verwendung ihrer entsprechenden individuellen Eingabevorrichtungen 34, welche mit ihren Laptops verbunden sind oder in diese eingebaut sind. Jeder Laptop 34 hat den Systemsoftwareclient installiert, welcher dem Laptop ermöglicht, als einer von mehreren Systemclients 42 zu fungieren. In dem dargestellten Beispiel benutzen der Laptopbenutzer A und der Laptopbenutzer B die Mediendateien 38 gemeinsam, wobei der Systemclient 42 des entsprechenden Laptops verwendet wird. Die gemeinsam genutzten Mediendateien 38 sind, wie es dargestellt ist, die Mediendatei X, welche durch den Laptopbenutzer A freigegeben wird, und die Mediendateien Y und Z, welche durch den Laptopbenutzer B freigegeben werden. Diese Mediendateien 38 werden über die entsprechenden drahtlosen Kommunikationskanäle 36 an die Workstation 26 übertragen, auf welcher der Systemserver 46 läuft. Der Systemserver 46 stellt dann Visualisierungen 44 dieser Medien auf der Anzeigewand 20 bereit.
-
Die Interaktionen von jedem Benutzer mit den Visualisierungen 44 der gemeinsam genutzten Medien erfolgen in der entsprechenden Eingabevorrichtung/Laptop 34 des Benutzers in Echtzeit. In diesem Beispiel interagieren der Laptopbenutzer A und C entsprechend mit der Medienvisualisierung X und der Medienvisualisierung Z. Der entsprechende Systemclient 42 übersetzt die Benutzerinteraktionen des Laptopbenutzers A und des Laptopbenutzers C, welche in ihren Vorrichtungen in Echtzeit erfolgen, und überträgt diese als Interaktionsnachrichten 40 über den entsprechenden drahtlosen Kanal A oder C an den Systemserver 46. Bei Empfang dieser Interaktionsnachrichten 40 interpretiert der Systemserver 46 die Interaktionsnachrichten 40 und interagiert entsprechend mit der Medienvisualisierung 44 auf der Anzeigewand 20 im Namen des entsprechenden Benutzers, von welchem die Interaktionsnachricht 40 gesendet wurde. In dem dargestellten Beispiel interagiert der Systemserver 46 mit der Medienvisualisierung X (welche durch den Laptopbenutzer A freigegeben wird) im Namen des Laptopbenutzers A und mit der Medienvisualisierung Z (welche durch den Laptopbenutzer B freigegeben wird) im Namen von dem Laptopbenutzer C.
-
Die übergreifende Softwarearchitektur des Systems 18 kann mit Bezug zu 3 verstanden werden, welche die Softwarestruktur des Systems als ein Bild darstellt, welches wesentliche Softwaremodule darstellt, die den Systemserver 46 und jeden Systemclient 42 definieren. Die verschiedenen Kernsoftwarekomponenten des Systemservers 46 weisen einen Szenelayer 48; einen Szenebetriebsmittellayer 50, einen Kommunikationsmanagerlayer 52 und einen Dateimanager 54 auf. Kernsoftwarekomponenten in dem Szenelayer 48 weisen auf: Anwendungen 56, welche zur Verwaltung von Instanzen von Klassen verantwortlich sind, die gemeinsam genutzte Medien visualisieren; einen Szenenrenderer 58, welcher einen beschleunigten Grafikkontext zu einer Hardware aufweist, welcher die Szene rendert; und einen Szene- und Arbeitsbereich-Manager 60, ein globales Objekt, welches all die Anwendungsinstanzen in den Arbeitsbereichen hält. Jede Anwendung unterstützt einen entsprechenden Medientyp, wie z. B. Bilder, Videos, PDF-Dokumente und Livestreams, wie z. B. eine Bildschirmspiegelung (VNC). Die Szene stellt die Gruppe von sichtbaren Elementen der Anzeigewand 20 dar, und die Komponenten in dem Szenebetriebsmittellayer 50 werden eingesetzt, um die Benutzerinteraktionen zu dem Szenelayer 48 zu überführen.
-
Kernsoftwarekomponenten in dem Szenebetriebsmittellayer 50 weisen auf: einen Mehrbenutzer-Interaktionsmanager 62; einen Benutzerauthentifizierer 64 und eine Anwendungsfabrik 66.
-
Kernsoftwarekomponenten in dem Kommunikationsmanagerlayer 52 weisen mehrere Nachrichtenhandler 68 auf, welche jeweils dem entsprechenden, benutzerspezifischen Systemclient 42 einer Eingabevorrichtung 34 eines Benutzers zugeordnet sind. Nachrichtenübertragungen zwischen dem Systemserver 46 und den entsprechenden Eingabevorrichtungen 34 eines Benutzers erfolgen zwischen dem entsprechenden Nachrichtenhandler 68 des Kommunikationsmanagerlayers 52 und dem Systemclient 42, welcher in dem entsprechenden Laptop eines Benutzers läuft.
-
Dateiübertragungen zwischen dem Systemserver 46 und den entsprechenden Benutzereingabevorrichtungen 34 erfolgen zwischen dem Dateimanager 54 des Systemservers 46 und dem Systemclient 42 von jeder Benutzereingabevorrichtung 34.
-
Einer der Hauptziele des Systemservers 46 ist, einen virtuellen zusammenwirkenden grafischen Desktoparbeitsbereich zu ermöglichen, in welchem mehrere Benutzer gleichzeitig mit der Szene interagieren und diese ändern können. Wenn ein Benutzer einmal durch den Kommunikationsmanagerlayer 52 in Verbindung steht, dann führt der Szenebetriebsmittellayer 50 die notwendigen Aktionen aus, um den Szeneinhalt zu ändern. Die Mehrbenutzerinteraktivität wird im Wesentlichen durch den Kommunikationsmanagerlayer 52 und den Mehrbenutzer-Interaktionsmanager 62 des Systemservers 46 ermöglicht. Jeder Nachrichtenhandler 68 in dem Kommunikationsmanagerlayer 52 ist ein separater Thread, welcher die Kommunikation zwischen dem Systemserver 46 und dem Systemclient 42 eines bestimmten Benutzers bearbeitet. Dies ermöglicht, dass Interaktionsnachrichten 40 von mehreren Benutzern gleichzeitig an dem Kommunikationsmanagerlayer 52 empfangen werden. Der Kommunikationsmanagerlayer 52 serialisiert dann diese gleichzeitig kommunizierten Interaktionsnachrichten 40 und leitet diese sequenziell zu dem Mehrbenutzer-Interaktionsmanager 62 weiter.
-
Das gemeinsame Benutzen von Mediendateien 38 durch den Systemclient 42 wird durch den Dateimanager 54 des Systemservers 46 abgewickelt. Wann immer der Dateimanager 54 eine Mediendatei 38 eines bestimmten Typs empfängt, meldet er dies der Anwendungsfabrik 66 des Szenebetriebsmittellayers 50, wobei eine Instanz der entsprechenden Anwendung 56 für den Dateityp erzeugt wird. Die Anwendungsfabrik 66 übergibt dann die Anwendungsinstanz an die Szene und den Arbeitsbereichmanager 60 des Szenelayers 48. Die Anwendungsinstanz wird durch den Szenenrenderer 58 des Szenelayers 48 visualisiert und durch die Grafikkarte(n) 28, 30, 32 an die Anzeigewand 20 geleitet.
-
4 ist ein Mehrbenutzer-Interaktionsdiagramm. Interaktionsnachrichten 40 von dem Systemclient 42 des Benutzers werden individuell durch den Nachrichtenhandler 68 empfangen und durch den Kommunikationsmanager 52 des Systemservers 46 serialisiert. Der Mehrbenutzer-Interaktionsmanager 62 des Szenebetriebsmittellayers 50 empfängt dann die serialisierten Interaktionsnachrichten und interagiert mit einer entsprechenden Komponente im Namen des Benutzers. 4 zeigt, wie Interaktionen des Benutzers von dem Systemclient 42 an den Systemserver 46 weitergeleitet werden und dann zu einer bestimmten Komponente, d. h. zu einer Anwendung oder einer GUI-Grafikkomponente, mit welcher ein Benutzer interagiert, geleitet werden. Der Systemclient 42, welcher in jeder Eingabevorrichtung 34 eines Benutzers läuft, erfasst diese Eingabevorrichtungsereignisse einer Maschine und erzeugt Interaktionsnachrichten 40, welche die Änderung des Benutzers an den visualisierten Medien beschreiben. Diese Interaktionsnachrichten 40 werden sicher über ein Netzwerk (vorzugsweise ein drahtloses Netzwerk eines bekannten Typs) gesendet und durch den Nachrichtenhandler 68 des Kommunikationsmanagerlayers 52 des Systemservers 46 bearbeitet. Die Hauptaufgabe des Kommunikationsmanagers 52 ist, die Interaktionsnachrichten 40, welche gleichzeitig durch die mehreren Nachrichtenhandler 68 von ihrem entsprechenden zugeordneten Systemclient 42 empfangen werden, zu serialisieren. Wenn diese Interaktionsnachrichten 40 einmal serialisiert sind, werden die serialisierten Interaktionsnachrichten 40 sequenziell an den Mehrbenutzer-Interaktionsmanager 62 des Szenebetriebsmittellayers 50 übergeben. Der Mehrbenutzer-Interaktionsmanager 62 findet dann eine Komponente (d. h. ein GUI-Widget bzw. eine GUI-Grafikkomponente oder eine Anwendung), mit welcher an dem Punkt, an welchem die aktuelle Interaktion erfolgt, interagiert werden kann, und verwendet die Interaktion im Namen des Benutzers.
-
5 ist ein Klassendiagramm, welches die abstrakte Klassenhierarchie einer Instanz von Anwendungen 56 des Szenelayers 48 und von GUI-Komponenten, mit welchen mehrere Benutzer gleichzeitig interagieren können, darstellt, d. h. „konkrete” Anwendungen und GUI-Komponenten. Der Mehrbenutzer-Interaktionsmanager 62 verwendet jede Interaktion eines Benutzers, indem die Methoden der Komponente, welche abstrakt in einer Klasse 74, die AbstractWidget genannt wird, definiert sind, wie es in 5 dargestellt ist, aufgerufen werden.
-
AbstractWidget 74 ist die Basisklasse von Mehrbenutzer-fähigen GUI-Komponenten (der konkreten GUI-Komponentenklasse, welche von AbstractGUI-Widget 76 abgeleitet ist) und von den GUI-Anwendungen (der konkreten Anwendungsklasse, welche von AbstratAppWidget 78 abgeleitet ist). Diese GUI-Komponenten und GUI-Anwendungen stellen Antworten auf Benutzerinteraktionen bereit, indem Handlerfunktionen 80, welche prototypisch in AbstractWidget 74 vorhanden sind, neu implementiert werden. Wie in 5 dargestellt ist, weisen die Handlerfunktionen 80 auf multiuserPress, multiuserRelease, multiuserClick, multiuserDblClick und multiuserScroll. Die Handlerfunktionen 80 empfangen eine Benutzer-ID als ein Funktionsargument, was all die grafischen Komponenten ermöglichen, welche von AbstractWidget abgeleitet sind. Die GUI-Komponenten und GUI-Anwendungen sind daher in der Lage, zu unterscheiden, mit wem sie interagieren. Wenn der Mehrbenutzer-Interaktionsmanager 62 einmal eine interagierbare Instanz (entweder eine GUI-Komponente oder eine GUI-Anwendung) für eine Interaktion, welche bei einem bestimmten Punkt auf der Anzeigewand 20 erfolgt, findet, ruft der Mehrbenutzer-Interaktionsmanager 62 dann einfach die Handlerfunktion(en) 80 des Grafikobjekts mit der eindeutigen Benutzeridentifizierung auf, so dass das Grafik-Objekt wissen kann, mit wem es interagiert.
-
Während beispielhafte Ausführungsformen, welche die Prinzipien der vorliegenden Erfindung beinhalten, vorab offenbart worden sind, ist die vorliegende Erfindung nicht auf die offenbarten Ausführungsformen eingeschränkt. Stattdessen soll diese Systemsoftware jede Variation, jeden Gebrauch oder jede Adaption der Erfindung, welche(r) ihre allgemeinen Prinzipien verwendet, abdecken. Darüber hinaus soll diese Systemsoftware solche Abweichungen von der vorliegenden Offenbarung abdecken, welche zu der bekannten oder üblichen Praxis nach dem Stand der Technik, zu welchem diese Erfindung gehört, gehören und welche unter die Grenzen der beigefügten Ansprüche fallen.