-
TECHNISCHES
GEBIET
-
Die
folgende Beschreibung bezieht sich auf Netzwerkkommunikationen,
und insbesondere auf Audio/Videokonferenz.
-
HINTERGRUND
-
Entwicklungen
in der Kommunikationstechnologie ermöglichen Individuen bzw. Einzelpersonen, preiswert über weite
Entfernungen zu kommunizieren. Insbesondere erlauben Konferenzsysteme Gruppen
von Einzelpersonen, Echtzeit-Audio- und/oder -Videokonferenzen ungeachtet
davon zu haben, daß sie
in verschiedenen Standorten sind.
-
Herkömmliche
Audio/Video-Konferenzsysteme ermöglichen
mehreren Benutzern, sich in einen zentralen Server anzuschließen, um
an einer Konferenz teilzunehmen, die durch einen Host bzw. Gastgeber
geleitet bzw. geführt
wird. Jedoch erfordern derartige Systeme, daß sich die Teilnehmer mit dem Server
verbinden und daß der
Host die Konferenz regelt bzw. steuert oder administriert bzw. leitet.
Wenn der Host weggeht, muß die
Konferenz enden, oder ein anderer Teilnehmer muß den Platz des weggegangenen
Hosts einnehmen. Häufig
ist dies in Echtweltszenarios unbequem. Jedoch setzen neue Verfahren
und Technologie eine Entwicklung fort, traditionelle Audio/Video-Konferenzsysteme
zu ergänzen.
-
WO
2004/023430 A2 (D1) offenbart ein CBM-Netzwerk, um die Tätigkeiten
von Lernenden zu überwachen,
wobei die Tätig keiten über das CBM-Netzwerk
publiziert werden. Das Netzwerk ist derart, daß spezifische Benachrichtigungen
bzw. Mitteilungen bearbeitet werden können und ein Tutor-Interface
generiert bzw. erzeugt werden kann. In dem Tutor- bzw. Betreuungs-Interface
kann eine dynamische Zustandsinformation des Lernenden angezeigt werden.
-
Firtzpatrick
et al., "Augmenting
the workaday world with Elvin",
Proc. of ECSCW '99,
September 1999, offenbart ein Benachrichtigungsservice, bezeichnet
als "Elvin", welches eine Kommunikation von
wenigstens zwei Teilnehmern eines CBM-Netzwerks erlaubt und mehrere
spezifische Anwendungen von "Elvin", wie beispielsweise
eine Anwendung eines Tickertape-artigen Kommunikationsfensters.
-
Es
ist das Ziel der Erfindung, ein verbessertes CBM-Netzwerk bereitzustellen.
Dieses Ziel wird durch den Gegenstand der unabhängigen Ansprüche erfüllt. Bevorzugte
Ausführungsformen
sind in den abhängigen
Unteransprüchen
definiert.
-
In
einem allgemeinen Aspekt stellt ein auf Inhalt bzw. Content basierendes
Nachrichtenübertragungs-(CBM-)Audio- und -Videokonferenzsystem eine
Nachrichtenübertragungs-Infrastruktur für Multimedia
und kollaborative bzw. behilfliche Anwendungen bereit. Das Audio/Video-Konferenzsystem
wird unter Verwendung einer Veröffentlichungs-
bzw. Publizier/Subskribier-Infrastruktur, wie beispielsweise einer
CBM-Infrastruktur und eines Systems implementiert. Konferenzteilnehmer
können
Audio- und/oder Videodatenströme
unter Verwendung des CBM-Systems austauschen. Ein Benutzer kann
eine Konferenz initiieren, indem er andere Benutzer einlädt, an einer
Konferenz teilzunehmen, oder ein Benutzer kann an einer Konferenz
teilnehmen, die bereits im Gang ist.
-
In
einem anderen allgemeinen Aspekt kann eine Konferenz geführt werden
durch Subskribieren bzw. Abonnieren eines Konferenzdatenstroms eines auf
Content basierenden Messaging- bzw. Nachrichtenübertragungs-(CMB-)Netzwerks.
Datenkonferenznachrichten werden publiziert bzw. veröffentlicht und
Nachrichten, die den Konferenzdatenstrom enthalten, der der Subskription
bzw. dem Abonnement entspricht, werden von dem CBM-Netzwerk empfangen.
Die Nachrichten werden einem Benutzer präsentiert. Die Nachrichten können Videodaten und/oder
Audiodaten beinhalten.
-
Die
empfangenen Nachrichten können
in Streaming-Video- und/oder
-Audiodaten zusammengestellt werden und dem Benutzer präsentiert
werden. Die Nachrichten bzw. Messages an den Benutzer können von
einem Echtzeit-Transportprotokoll in ein Format umgewandelt werden,
das durch das Java Media Framework (JMF) gefordert ist, um die Streaming-Audio- und/oder -Videodaten
dem Benutzer zu präsentieren.
-
Eine
Konferenz kann durch Einladen eines Teilnehmers initiiert werden,
der mit dem CBM-Netzwerk verbunden ist, um an der Konferenz teilzunehmen.
Eine Konferenz kann auch durch ein Einladen eines oder mehrerer
Teilnehmer(s) initiiert werden, der bzw. die mit dem CBM-Netzwerk
verbunden ist bzw. sind, um an der Konferenz teilzunehmen, und ein
Subskribieren eines Konferenzdatenstroms eines auf Inhalt bzw. Content
basierenden Nachrichtenübertragungs-CBM-Netzwerks,
das mit jedem Teilnehmer assoziiert ist. Ein Initiieren bzw. Einleiten
einer Konferenz durch ein Einladen eines oder mehrerer Teilnehmer(s),
der bzw. die mit dem CBM-Netzwerk verbunden ist bzw. sind, um an
der Konferenz teilzunehmen, kann ein Auswählen von einem oder mehreren
Teilnehmer(n) aus einer Kontaktliste von Identifiziereinrichtungen
umfassen, die mit jedem Teilnehmer assoziiert sind.
-
Teilnehmer
können
in eine Konferenz jederzeit eintreten oder sie verlassen. Beispielsweise
können
Benutzer an einer Konferenz teilnehmen, die bereits begründet bzw.
aufgebaut ist. Die Konferenz wird nicht hosted bzw. ausgerichtet
oder ist nicht an einen spezifischen Teilnehmer gebunden. Als ein
Ergebnis sind alle Konferenzteilnehmer gleich.
-
Außerdem wird
kein zentraler Konferenzserver benötigt. Daten können durch
die Nachrichtenübertragungs-Infrastruktur
geroutet bzw. geleitet werden, und Audio- und Videodatenströme werden durch
die Nachrichtenübertragungs-Infrastruktur
reproduziert. Als ein Ergebnis ist keine redundante bzw. überschüssige Übermittlung
von Datenströmen von
einer Quelle erforderlich. Konferenzteilnehmer können Nachrichten subskribieren
bzw. abonnieren, die für
sie wichtig sind, beispielsweise Nachrichten, die Multimediadaten
enthalten (beispielsweise Audio/Videodaten), die sich auf eine spezifische
bzw. spezielle Konferenz beziehen. Benutzer können auch Statusänderungen
von Kontakten in ihrer Kontaktliste subskribieren bzw. abonnieren.
-
Gemäß einem
anderen allgemeinen Aspekt beinhaltet ein auf Inhalt bzw. Content
basierendes Nachrichtenübertragungsnetzwerk
für ein
Leiten bzw. Durchführen
einer Konferenz zwischen zwei oder mehreren Teilnehmern ein Interface,
um Subskriptionen bzw. Abonnements für einen Konferenzdatenstrom
zu empfangen, der der Konferenz entspricht und um veröffentlichende
bzw. Publikationskonferenz-Datennachrichten zu empfangen, die der Konferenz
entsprechen, einen Prozessor, um die Abonnements zu berechnen, um
Nachrichten zu generieren bzw. zu erzeugen, die den Konferenzdatenstrom
beinhalten, und um die Nachrichten an Clientvorrichtungen zu senden,
die den berechneten Abonnements entsprechen; und eine Ausgabe, um
die Nachrichten zu liefern. Die Nachrichten können Videodaten, Audiodaten
oder eine Kombination von Video- oder Audiodaten beinhalten.
-
Das
System kann auch zwei oder mehrere Clientvorrichtungen enthalten,
die konfiguriert sind, um die Subskriptionen bzw. Abonnements zu
generieren und um die Konferenznachrichten zu empfangen und die
Nachrichten an einen assoziierten Benutzer zu präsentieren. Jede Clientvorrichtung
ist konfiguriert, um die empfangenen Nachrichten in Streaming-Audiodaten,
-Videodaten oder eine Kombination der zwei zusammenzustellen und
um an den Benutzer präsentiert
zu werden. Jede Client- bzw. Klientenvorrichtung kann auch konfiguriert
sein, um die empfangenen Nachrichten von einem Echtzeit-Transportprotokoll
in ein Format umzuwandeln, das durch das Java Media Framework (JMF)
gefordert ist, um Streaming-Audio- und/oder -Videodaten an den Benutzer
zu präsentieren.
Jede Clientvorrichtung ist konfiguriert, um eine Einladung zu empfangen,
um an der Konferenz teilzunehmen und einen Konferenzdatenstrom eines
auf Inhalt basierenden Nachrichtenübertragungs-(CBM-)Netzwerks
zu abonnieren, das mit jedem Konferenzteilnehmer assoziiert ist.
-
Das
Interface kann konfiguriert sein, um Abonnements für einen
Status von jedem Konferenzteilnehmer zu empfangen, und der Prozessor
ist konfiguriert, um publizierte Status information zu empfangen
und Statusnachrichten basierend auf den empfangenen Abonnements
zu generieren bzw. zu erzeugen.
-
Gemäß einem
anderen allgemeinen Aspekt umfaßt
eine Clientvorrichtung zum Leiten bzw. Verwalten einer Konferenz
ein Interface, um Nachrichten, die einen Konferenzdatenstrom beinhalten,
von einem CBM-Netzwerk zu empfangen; einen Prozessor, um den Konferenzdatenstrom
zu abonnieren, der von den auf Inhalt basierenden Nachrichten (CBM)
empfangen ist, und um die Nachrichten bzw. Berichte für eine Präsentation
an einen Benutzer zu bearbeiten, und ein Benutzer-Interface, um
die bearbeiteten Nachrichten zu präsentieren. Das Benutzer-Interface
ist konfiguriert, um Nachrichten, beinhaltend Videodaten, Audiodaten
und/oder eine Kombination von Video- und Audiodaten zu präsentieren.
-
Der
Prozessor kann auch konfiguriert sein, um die empfangenen Nachrichten
in Streaming-Videodaten, Streaming-Audiodaten oder eine Kombination
der Streaming-Audio- und -Videodaten für eine Präsentation an den Benutzer zusammenzustellen. Der
Prozessor kann auch konfiguriert sein, um die von einem Echtzeit-Transportprotokoll
empfangenen Nachrichten in ein Format umzuwandeln, das durch das
Java Media Framework (JMF) gefordert ist, um die Streaming-Audio- und/oder -Videodaten
an den Benutzer zu präsentieren.
Der Prozessor ist konfiguriert, um Nachrichten, die mit der Konferenz
assoziiert sind, an das CBM-Netzwerk zu publizieren.
-
In
einem anderen allgemeinen Aspekt umfaßt ein Computerprogrammprodukt
Instruktionen bzw. Anweisungen, um einen Prozessor zu veranlassen,
einen Konferenzdatenstrom eines auf Inhalt bzw. Content basierenden
Nachrichtenübertragungs-(CBM-)Netzwerks
zu subskribieren bzw. zu abonnieren; Konferenzdatennachrichten zu
publizieren; und den Konferenzdatenstrom entsprechend der Subskription
bzw. dem Abonnement von dem CBM-Netzwerk für eine Präsentation an einen Benutzer
zu bearbeiten. Das Computerprogrammprodukt kann auch Instruktionen
beinhalten, um Videodaten und Audiodaten zu bearbeiten. Das Computerprogrammprodukt
kann auch Instruktionen beinhalten, um die empfangenen Nachrichten
in Streaming-Videodaten und/oder Streaming-Audiodaten für eine Präsentation
an den Benutzer zusammenzustellen, und/oder Nachrichten, die mit
der Konferenz assoziiert sind, an das CBM-Netzwerk zu publizieren.
Das Computerprogrammprodukt kann auch Instruktionen beinhalten,
um die empfangenen Nachrichten von einem Echtzeit-Transportprotokoll
in ein Format umzuwandeln, das durch das Java Media Framework (JMF)
gefordert ist, um Streaming-Audio- und/oder -Videodaten an den Benutzer
zu präsentieren.
Das Computerprogrammprodukt kann auch Instruktionen beinhalten,
um eine Konferenz zu initiieren, indem ein oder mehrere Teilnehmer
eingeladen wird (werden), der bzw. die mit dem CBM-Netzwerk verbunden ist
bzw. sind, um an der Konferenz teilzunehmen, und/oder einen Konferenzdatenstrom
eines auf Inhalt basierenden Nachrichtenübertragungs-CBM-Netzwerks zu
abonnieren, das mit jedem Teilnehmer assoziiert bzw. verbunden ist.
-
BESCHREIBUNG
VON ZEICHNUNGEN
-
1 ist
ein Blockdiagramm eines beispielhaften Audio/Video-Konferenzsystems.
-
2 ist
eine beispielhafte Architektur für das
Konferenzsystem von 1.
-
3 illustriert
den beispielhaften Datenfluß in
der Architektur von 2.
-
4 ist
ein beispielhaftes graphisches Benutzer-Interface für eine Verwendung
mit dem Konferenzsystem von 1.
-
5, 6, 7, 8 und 9 sind beispielhafte
graphische Benutzer-Interfaces zum Errichten bzw. Aufbauen einer
Konferenz.
-
10, 11, 12 und 13 sind
beispielhafte graphische Benutzer-Interfaces für ein Auswählen von Optionen für eine Konferenz.
-
Gleiche
Bezugszeichen in den verschiedenen Zeichnungen bezeichnen gleiche
Elemente.
-
DETAILLIERTE
BESCHREIBUNG
-
Systemüberblick
-
Die
folgende Beschreibung schildert detailliert ein Audio/Video-Konferenzsystem,
das eine auf Inhalt bzw. Content basierende Nachrichtenübertragungs-CBM-Infrastruktur
für Multimedia
und kollaborative bzw. zusammenwirkende Anwendungen bereitstellt.
Das Konferenzsystem kann unter Verwendung einer Veröffentlichungs-
bzw. Publizier/Subskribier- bzw. Abonnier-Infrastruktur implementiert
werden, die wenigstens zwei Hauptuntersysteme beinhaltet: ein Mehrfach-Benutzer-Audio/Video-Konferenzsystem
und ein Benutzer-Managementsystem, das
den Status (beispielsweise Offline, Online oder gegenwärtig in
einer Konferenz) von Konferenzsystembenutzern anzeigt. Jedes Sub-
bzw. Untersystem wird in weiterem Detail unten beschrieben.
-
Bezugnehmend
auf 1 kann ein Konferenzsystem 100 eine oder
mehrere Client- bzw. Klientenvorrichtung(en) 110 und ein
CBM-Netzwerk 120 beinhalten. Die Clientvorrichtungen 110 können Datenströme 130 und 135 mit
dem CBM-Netzwerk 120 unter Verwendung von Informationspfaden 140 austauschen,
um Audio- und/oder Videokonferenzen zu leiten bzw. zu verwalten
bzw. durchzuführen.
-
Die
Clientvorrichtungen 110 können durch einen oder mehrere
Benutzer betätigt
werden, um auf das CBM-Netzwerk 120 zuzugreifen. Ein Beispiel
einer Clientvorrichtung 110 ist ein Universalrechner, der
fähig ist,
auf Instruktionen bzw. Anweisungen in einer definierten Art und
Weise zu antworten und sie auszuführen. Die Clientvorrichtungen 110 können auch
einen Computer für
spezielle Zwecke, einen Personal Computer ("PC"),
eine Workstation, einen Server, einen Laptop, ein Web-befähigtes Telefon,
einen Web-befähigten
persönlichen
digitalen Assistenten ("PDA"), ein interaktives
Fernsehset, eine Settopbox, einen an Bord (d.h. Fahrzeugmontierten)
Computer, oder eine Kombination von zwei oder mehreren dieser Vorrichtungen
enthalten, die fähig
sind, zu antworten auf, zu erzeugen, und/oder Instruktionen auszuführen. Die
Clientvorrichtung 110 kann irgendeine Anzahl von anderen
Vorrichtungen, Komponenten, und/oder Peripheriegeräten beinhalten, wie
beispielsweise Speicher/Lagerungsvorrichtungen, Eingabevorrichtungen,
Ausgabevorrichtungen, Benutzer-Interfaces und/oder Kommunikations-Interfaces bzw. -Schnittstellen.
-
Die
Clientvorrichtung 110 kann auch eine oder mehrere Softwareanwendung(en)
beinhalten (beispielsweise ein Betriebssystem, eine Browseranwendung,
eine Mikrobrowseranwendung, eine Serveranwendung, eine Proxyanwendung,
eine Gatewayanwendung, eine Tunnelungsanwendung und eine verteilte
Konferenzanwendung, unter anderen), die auf der Clientvorrichtung 110 geladen
sind, um die Clientvorrichtung 110 zu kommandieren bzw.
zu befehlen und zu leiten. Anwendungen können ein Computerprogramm,
ein Stück
eines Codes, eine Instruktion, oder eine gewisse Kombination davon
enthalten, um die Clientvorrichtung 110 unabhängig oder kollektiv
zu instruieren, um wie gewünscht
zu interagieren und zu arbeiten.
-
Die
Anwendungen können
permanent oder temporär
bzw. vorübergehend
in jedem Typ von Maschine, Komponente, physikalischer oder virtueller Ausrüstung, Speichermedium
oder fortgepflanztem Signal oder Welle verkörpert sein, die fähig sind,
Instruktionen an die Clientvorrichtung 110 bereitzustellen.
Insbesondere können
die Anwendungen auf einem Speichermedium oder einer Vorrichtung
gespeichert sein (beispielsweise ein Nur-Lese-Speicher (ROM), ein
Direktzugriffsspeicher (RAM), ein flüchtiger/nicht-flüchtiger
Speicher, eine Magnetplatte oder ein fortgepflanztes Signal), lesbar
durch die Clientvorrichtung 110, so daß, wenn das Speichermedium oder
die Vorrichtung durch die Clientvorrichtung 110 gelesen
wird, der spezifizierte Schritt oder Instruktionen durchgeführt wird
bzw. werden.
-
Die
Clientvorrichtung 110 kann auch ein oder mehrere Kommunikations-Interface(s)
enthalten, das bzw. die der Clientvorrichtung ermöglicht (ermöglichen),
Information unter Verwendung der Kommunikationspfade 140 zu
senden und zu empfangen, die mit dem Konferenzsystem 100 assoziiert
bzw. verbunden sind.
-
Die
Kommunikationspfade 140 können konfiguriert sein, um
Signale (beispielsweise elektrische, elektromagnetische oder optische)
zu senden und zu empfangen, die Datenströme (beispielsweise 130 und 135)
befördern
oder tragen, die verschiedene Typen von analogem und/oder digitalem
Inhalt repräsentieren.
Beispielsweise können
die Kommunikationspfade 140 unter Verwendung verschiedener Kommunikationsmedien
und eines oder mehrerer Netzwerks(e) implementiert werden, das bzw.
die eine oder mehrere Netzwerkvorrichtung(en) (beispielsweise Server,
Router, Schalter, Hubs, Repeaters und Speichervorrichtungen) umfaßt (umfassen). Das
eine oder mehrere Netzwerk(e) kann bzw. können ein WAN, ein LAN, ein
Breitbandnetzwerk, ein Telefonservice-(POTS-)Netzwerk, ein Digital
User Line-(DSL-)Netzwerk, ein Integrated Services Network (ISDN)
und ein Synchronous Optical Network (SONNET), oder eine Kombination
von zwei oder mehreren dieser Netzwerke umfassen. Zusätzlich können die
Kommunikationspfade 140 einen oder mehrere drahtlose(n)
Link(s) beinhalten, der bzw. die elektromagnetische Signale, wie
beispielsweise Radio- bzw. Funk-, Infrarot- und Mikrowellensignale, überträgt (übertragen)
und empfängt
(empfangen), um Information zu befördern.
-
Das
CBM-Konferenzsystem 100 verwendet eine Publizier/Subskribier-
bzw. Abonniertechnik, um Datenströme zwischen den Clientvorrichtungen 110 auszutauschen.
Gemäß dieser
Technik kann jede Clientvorrichtung 110 ein Informationskonsument oder
-produzent sein. Als ein Informationsproduzent verwendet die Clientvorrichtung 110 die
Konferenzanwendung, um Information (beispielsweise Audio/Videodaten
einer Konferenz) auf dem CBM-Netzwerk 120 zu publizieren.
Als ein Informationskonsument verwendet die Clientvorrichtung 110 die CBM-Konferenzanwendung,
um ein(e) "Subskription bzw. Teilnahme
bzw. Abonnement" mit
dem CBM-Netzwerk 120 für
eine spezifische publizierte Information zu registrieren (beispielsweise
einen Audio/Videostrom einer Konferenz). Das CBM-Netzwerk 120 stellt
Benachrichtigungen (d.h. Nachrichten bzw. Messages), die die publizierte
Information beinhalten, an jene Konsumenten-Clientvorrichtungen 110 bereit,
die die Information subskribieren bzw. abonnieren.
-
Das
CBM-Konferenzsystem 100 kann unter Verwendung einer verteilten
Konferenzanwendung implementiert sein bzw. werden, die eine Anzahl
von CBM-Konferenzanwendungen beinhaltet, die auf jeder der Clientvorrichtungen 110 laufen.
Die CBM-Konferenzanwendungen, in Verbindung bzw. Zusammenhang mit
dem CBM-Netzwerk 120, stellen eine CBM-Konferenz und CBM-Status-Services
bereit, die an jede der Clientvorrichtungen 110 bereitgestellt
werden können.
Die CBM-Konferenzanwendungen kodieren die Audio- und/oder Videodatenströme und publizieren
entsprechende Konferenzinformation, die die Audio- und/oder Videodaten
beinhalten, an das CBM-Netzwerk 120.
Die CBM-Anwendungen registrieren auch Subskriptionen bzw. Abonnements
für die
publizierten Konferenzdaten. Die CBM-Konferenzanwendungen empfangen
Nachrichten, die den Subskriptionen entsprechen, die die Konferenzdaten
beinhalten, und bearbeiten die empfangenen Nachrichten in ein Streaming-Datenformat zur
Präsentation
an einen Benutzer.
-
Das
CBM-Netzwerk 120 kann eine oder mehrere Datenbe- bzw. -verarbeitungs-
und -verteilungsvorrichtung(en) beinhalten (beispielsweise einen
CBM-Server, assoziierte Kommunikationsmedien und Datentransportsysteme).
Beispielsweise kann das CBM-Netzwerk 120 einen oder mehreren filternde(n)
CBM-Server und Kommunikations-Interfaces
beinhalten (die konfi guriert sind, um mit Kommunikationspfaden 140 zu
kommunizieren), die publizierte Information empfangen (beispielsweise,
die sich auf eine Konferenz oder den Status von Systembenutzern
bezieht), und generieren bzw. erzeugen Nachrichten, die an die Konsumenten übertragen werden,
die die publizierte Information abonnieren. Der filternde Server
kann die registrierten Abonnements der Clientvorrichtungen 110 berechnen,
die zu der publizierten Information passen, und die Nachrichten,
beinhaltend die Daten, senden, die an die abonnierenden Konsumenten
gesandt werden, basierend auf den berechneten Abonnements. Insbesondere
beinhalten die publizierte Information und die Nachrichten Audio-
und/oder Videoinhalt zusätzlich
zu Benutzerstatusdaten, wie dies im Detail unten erklärt wird.
-
Bezugnehmend
auf 2 kann eine beispielhafte CBM-Konferenzarchitektur 200,
die einer Open-Systems-Interconnection-(ISO-)Architektur ähnlich ist,
verwendet werden, um das CBM-Konferenzsystem 100 zu implementieren.
An der höchsten Schicht
(beispielsweise der Anwendungsschicht) stellt die verteilte CBM-Konferenzanwendung
ein Benutzer-Interface
an einer Benutzer-Interfaceschicht 210 bereit. Die Benutzer-Interfaceschicht 210 ermöglicht einem
Benutzer, an einer Audio/Videokonferenz teilzunehmen und den Status
von anderen Benutzern des CBM-Konferenzsystems 100 zu bestimmen.
Die Benutzer-Interfaceschicht 210 präsentiert Multimedia-Datenströme, die
als Nachrichten von dem CBM-Netzwerk 120 empfangen
werden. Das Benutzer-Interface managt bzw. handhabt die Multimediadaten,
die von den Datenerfassungsvorrichtungen (beispielsweise einer Videokamera
und/oder einem Mikrophon) bereitgestellt sind. Die Benutzer-Interfaceschicht 210 erzeugt
und bearbeitet auch Multimedia-Datenströme, die an das CBM-Netzwerk 120 mit Hilfe
der zwischenliegenden Schicht 220 und der CBM-Adaptionsschicht 230 publiziert
werden. Das Benutzer-Interface beliefert den Benutzer auch mit verschiedenen
Konferenzmanagementmerkmalen (beispielsweise Schaffung bzw. Erzeugung
einer Konferenz, Verhandlung von Audio- und/oder Videofähigkeiten,
Teilnehmen/Verlassen einer Konferenz und Schließen einer Konferenz), wie dies
unten erklärt
wird.
-
Die
zwischenliegende Schicht 220 stellt ein Interface zwischen
der Benutzer-Interfaceschicht 210 und der CBM-Adaptionsschicht 230 bereit.
Die zwischenliegende Schicht 220 kann unter Verwendung
eines Java Media Framework (JMF) implementiert werden. Das JMF ist
ein Anwendungsprogramm-Interface
(API), das Audio-, Video- und anderen zeitbasierenden Medien ermöglicht,
zu Javaanwendungen und Applets hinzugefügt zu werden. Das JMF verwendet
das Echtzeit-Transportprotokoll (RTP)
(beispielsweise RFC 3267) für
eine Kommunikation zwischen verteilten Komponenten, die für Multimediakommunikationen
ausgelegt sind. Das JMF stellt ein Interface bzw. eine Schnittstelle
zwischen den Datenprotokollen des Benutzer-Interface (und seinen
assoziierten Datenerfassungsvorrichtungen) und der CBM-Infrastruktur
bereit. Das JMF wandelt den Multimedia-Datenstrom, der durch die
Benutzer-Interfaceschicht generiert bzw. erzeugt ist bzw. wird,
in Datenpakete in JAVA unter Verwendung des RTP-Protokolls für ein Publizieren
an das CBM-Netzwerk 120 um. Das JFM wandelt auch die RTP-Protokollpakete,
die als Nachrichten von der CBM-Adaptionsschicht 230 empfangen
sind bzw. werden, in einen Multimedia-Datenstrom um, der mit der
Benutzer-Interfaceschicht 210 und ihren Datenerfassungsvorrichtungen
kompatibel ist. Das JMF stellt sowohl "zuverlässige" als auch "nicht-zuverlässige" Kommunikationsmoden bereit. Der zuverlässige Modus
wird für
alle Multimedia strom-Managementfunktionen verwendet. Der unzuverlässige Modus
wird für
ein Übertragen
der Multimedia-Datenpakete an das CBM-Netzwerk 120 verwendet.
-
Die
CBM-Adaptionsschicht 230 ist für ein Aufzeichnen bzw. Kartieren
der RTP codierten Multimediapakete auf Nachrichten verantwortlich,
die für eine
Kommunikation im CBM-Netzwerk 120 verwendet werden. Die
Adaptionsschicht 230 kann in JAVA implementiert sein bzw.
werden. Die Adaptionsschicht 230 managt bzw. handhabt auch
die notwendigen Abonnements für
ein Empfangen von publizierten Nachrichten, die die Multimedia-Datenströme beinhalten.
Die Adaptionsschicht 230 ist für das Kartieren von Java Programmiersprache-Aufrufen
auf CBM-Nachrichten verantwortlich. Das Interface, das die Adaptionsschicht
implementiert, ist betätigbar bzw.
betreibbar, um von spezifischen Netzwerkinfrastrukturen zu abstrahieren
(Nachrichtenübermittlung, http,
TCP/IP), um ein Kartieren bzw. Aufzeichnen auf diese Netzwerkinfrastrukturen
zu vereinfachen. Dieses abstrakte vernetzende bzw. Netzwerk-Interface ist
durch das JMF definiert. Die Adaptionsschicht 230 wird
in Java implementiert. Die Adaptionsschicht 230 nimmt Information,
die durch das Benutzer-Interface bereitgestellt
ist, durch das JMF entgegen und zeichnet diese Information auf die
CBM-Nachrichten. Es ist kein weiteres Codieren oder Decodieren notwendig.
Die Nachrichtenübertragungs-Infrastruktur
kann Nachrichten bzw. Messages von (grundsätzlich) willkürlicher
Länge handhaben.
Es gibt eine eins-zu-eins-Auzeichnung zwischen Paketen von dem JMF
und den Nachrichten. Die Adaptionsschicht 230 managt auch
die Verbindung der Clientvorrichtung 110 mit dem CBM-Netzwerk 120 und
die notwendigen Abonnements, um die entsprechenden Nachrichten zu
empfangen, die einer Konferenz entsprechen.
-
Die
Schicht 250 des Status von Kontakten und Konferenzmanagements
stellt ein Interface zwischen dem Benutzer-Interface 210 und
dem CBM-Netzwerk 120 zur Kommunikation bereit und kann
unter Verwendung von JAVA implementiert sein. Die Schicht 250 des
Status von Kontakten und Konferenzmanagements stellt alle Funktionalität bereit,
um die Anwesenheitsinformation von Kontakten und Konferenzteilnehmern
zu publizieren und zu empfangen. Die Schicht 250 des Status
von Kontakten und Konferenzmanagements ist verantwortlich für das Empfangen
von Anwesenheitsupdates bzw. Aktualisierungen von allen konfigurierten
Kontakten und um Information über Änderungen
des Zustands ihrer assoziierten Benutzer zu publizieren. Die Schicht 250 des
Status von Kontakten und Konferenzmanagements managt auch die notwendigen Abonnements,
um die entsprechende Information zu empfangen, und erzeugt die Nachrichten,
um die Zustandsaktualisierungen an andere Benutzer zu senden. Die
Schicht 250 handhabt auch die Verbindung mit dem CBM-Netzwerk 120.
-
Das
CBM-Netzwerk 120, wie es in 2 illustriert
ist, entspricht der relevanten physikalischen Schicht zum Implementieren
des CBM-Konferenzsystems 100. Somit kommuniziert jede verteilte ebenbürtige bzw.
Peer-Anwendung in dem CBM-Konferenzsystem 100 unter
Verwendung des CBM-Netzwerks 120 und seiner entsprechenden
Infrastruktur. Das CBM-Netzwerk 120 kann unter Verwendung
eines Publizier/Abonnementsystems, wie beispielsweise der Elvin
Nachrichtenübertragungs-Architektur,
implementiert werden, die durch DSTC in Brisbane, Australien entwickelt
ist. Obwohl sich die hierin beschriebenen Beispiele auf Elvin beziehen,
können
andere CBM-Protokolle und Systeme, wie beispielsweise CosNotif,
JMS, Keryx und Gryphon, verwendet werden, um Information an die Clientvorrichtungen 110 unter
Verwendung ihrer assoziierten CBM-Konferenzanwendungen zu verteilen.
-
Bezugnehmend
auf 3 ist der Datenfluß in bezug auf die beispielhafte
Konferenzarchitektur von 2 gezeigt. Eine Eingabevorrichtung
(beispielsweise ein Mikrophon 301 und/oder eine Videokamera 302)
kann (können)
verwendet werden, um jeweils entsprechende Datenströme 310 und 315 zu erzeugen.
Die Benutzer-Interfaceschicht 210 managt die Audio- 310 und/oder
Video- 315 Datenströme,
indem jedes notwendige Codieren oder Bearbeiten bereitgestellt wird.
Die Audio/Videodatenströme
sind bzw. werden von dem Benutzer-Interface an das JMF 220 bereitgestellt,
welche die Daten in Pakete unter Verwendung des RTP codiert. Die
RTP codierten Datenpakete werden an die CBM-Adaptionsschicht 230 zum
Codieren als CBM-Nachrichten bereitgestellt, und werden an das CBM-Netzwerk 120 publiziert.
-
Auf ähnliche
Weise registriert die CBM-Adaptionsschicht 230 ein Abonnement
von spezifischen Konferenzdaten, und empfängt Nachrichten, die den Abonnements
für Konferenzdaten
entsprechen (beispielsweise enthaltend Audio/Videodatenpakete, die mit
dem CBM-Netzwerk 120 registriert sind. Die Nachrichten
werden von RTP durch das JMF 220 decodiert und an das Benutzer-Interface
für eine
Präsentation
an den Benutzer bereitgestellt, wobei eine oder mehrere Datenausgabevorrichtung(en) 325 (beispielsweise
ein Display und/oder Lautsprecher) verwendet wird bzw. werden.
-
Die
Benutzer-Interfaceschicht 210 stellt auch Benutzerstatusinformation
an die Status/Konferenzmanagement-Schicht 250 als Datenstrom 330 bereit. Beispielsweise
stellt die Benutzer-Interfaceschicht 210 den Status eines
assoziierten Benutzers an die Status-Konferenzmanagement-Schicht 250 bereit, der
angibt, ob der Benutzer offline ist, mit dem CBM-Netzwerk 120 verbunden
ist und fähig
ist, in einer Konferenz einzugreifen, oder ob er online ist und in
einer Konferenz beschäftigt
ist. Die Status-Konferenzmanagement-Schicht 250 publiziert den
Status an das CBM-Netzwerk 120, wo er an andere abonnierende
Benutzer bereitgestellt wird, die den Benutzer als einen Kontakt
in ihrer Kontaktliste listen. Der Benutzerstatus wird an das CBM-Netzwerk 120 publiziert
(wo er an Abonnementen der Kontaktlisten geliefert wird).
-
Die
Status/Konferenzmanagement-Schicht 250 empfängt auch
Statusdatenströme 340 entsprechend
Kontakten der Kontaktliste des assoziierten Benutzer-Interface,
welche sie abonniert. Der Statusdatenstrom 340 wird an
die Benutzer-Interfaceschicht 210 geliefert und dem Benutzer
in der Kontaktliste präsentiert.
Auf diese Weise wird, wenn sich der Zustand eines Benutzers ändert, die
Information an alle Benutzer des CBM-Konferenzsystems 100 verteilt,
die einen Benutzer in ihren Kontaktlisten auflisten.
-
Wie
in 3 gezeigt, sind jene Teile der Architektur, die
Nachrichten konsumieren (beispielsweise Multimediadaten empfangen,
Statusaktualisierungen empfangen) unabhängig verantwortlich für ein Schaffen
bzw. Erzeugen der entsprechenden Abonnements mit dem CBM-Netzwerk 120.
Die Abonnements stellen sicher, daß nur erforderliche Nachrichten
an die entsprechenden CBM-Konferenzanwendungen gesandt werden. Als
ein Ergebnis sind die erforderliche Bandbreite und die durch das CBM-Konferenzsystem 100 benötigte Bearbeitungsleistung
verringert.
-
Zurück auf 1 hinweisend,
wird ein Beispiel einer Konferenz mit Datenströmen zwischen fünf ebenbürtigen bzw.
Peer-Konferenzanwendungen beschrieben. Gemäß dem Beispiel sind Peer-Anwendungen
A, B und C in einer Konferenz beschäftigt. Jeder der Peers tauscht
Multimediadaten aus, die als Nachrichten durch das CBM-Netzwerk 120 publiziert
bzw. veröffentlicht
oder empfangen werden. Die publizierten Nachrichten werden einmal
von jeder Clientvorrichtung 110 an das CBM-Netzwerk 120 publiziert.
Jeder der Peer-Anwendungen, die an der Konferenz teilnehmen, abonnieren
Datenströme 135,
die die konferenzspezifischen Datennachrichten beinhalten, und jede
konferenzspezifische Nachricht wird an jeden der abonnierenden Teilnehmer
gesandt (beispielsweise Peer-Anwendungen A, B und C).
-
Beispielsweise
werden Multimedianachrichten 145, die von A entsprechend
der Konferenz publiziert sind bzw. werden, an das CBM-Netzwerk 120 gesandt.
Die Peers B und C abonnieren die Nachrichten in dem Multimedia-Datenstrom 135.
Die publizierten Nachrichten von A werden durch das CBM-Netzwerk
an B- und C-Konferenz-Abonnements zusammengepaßt bzw. angeglichen und sowohl
an B als auch C gesandt. Ähnlich
werden eine Nachricht 150 und eine Nachricht 155 entsprechend Multimediaströmen, die
durch B bzw. C publiziert sind, an einer Konferenzsubskription durch
A angeglichen und an A durch das CBM-Netzwerk geliefert.
-
Außerdem ist
gemäß diesem
Beispiel jeder der Benutzer, der mit den Peers A, B, C und D assoziiert
ist, in den Kontaktlisten jedes der assoziierten Benutzer-Interfaces
gelistet. Deshalb publizieren und abonnieren die Peers A-D Statusnachrichten 160 von jedem
der Peers, um den Status jedes Benutzers in ihrer assoziierten bzw.
zugehörigen
Kontaktliste aufrecht zu erhalten. Beispielsweise zeigen die ausgetauschten
Statusnachrichten an, daß A,
B und C in einer Konferenz sind und D online ist (aber nicht in
einer Konferenz). In diesem Fall abonniert nur D Statusnachrichten
der Benutzer, die in seiner Kontaktliste gelistet sind (aber nicht
irgendwelche Multimediaströme).
-
Als
Teil dieses Beispiels ist Peer E nicht in einer Konferenz und gehört nicht
zu den Kontakten von A, B, C oder D. Als ein Ergebnis subskribiert
oder publiziert der Peer E nicht irgendwelche Nachrichten.
-
In
einer Implementierung kann ein Quenchingmerkmal (bereitgestellt
in Elvin) verwendet werden, um Feedbackinformation an einen Produzenten über Konsumenten
bereitzustellen, die Daten abonnieren, die durch den Produzenten
publiziert werden. In dem CBM-Konferenzsystem 100 kann
ein Quenching verwendet werden, um Information über Peers in einer Konferenz
zu bestimmen (beispielsweise wenn irgendwelche Peers in einer Konferenz
verbleiben). Wenn der Quenchingmechanismus eines Produzenten eines
Multimediastroms aktiviert ist und bestimmt, daß keine abonnierenden Peers
in einer Konferenz verbleiben, stoppt der Produzent ein Publizieren
des Datenstroms als Nachrichten an das CBM-Netzwerk 120.
Der Quenchingmechanismus stellt sicher, daß, wenn immer ein neuer Peer
der Konferenz hinzugefügt
wird, jegliche Produzenten informiert werden, ein Senden des Multimedia-Datenstroms
zu starten, der mit der Konferenz assoziiert ist. Ein Quenching
kann konfiguriert sein unter Verwendung des Options-Interface, wie
dies unten beschrieben ist.
-
Graphische Benutzer-Interfaces
-
4 zeigt
ein graphisches Benutzer-Interface 400 für ein Konferenzsystem.
Das graphische Benutzer-Interface 400 kann einen Menübalken 401, einen
virtuellen Knopfbalken 410, ein Kontaktlistenfenster 420,
einen Konferenzbereich 440 und einen Statusbalken 450 beinhalten.
-
Ein
Benutzer kann den Menübalken 401 verwenden,
um auf Drop-Down-Menüs
zuzugreifen. Die Drop-Down-Menüs
können
verwendet werden, um CBM-Konferenzoptionen, CBM-Konferenzbenutzer-Managementmerkmale
auszuwählen
und das CBM-Konferenzbenutzer-Interface und seine Merkmale zu errichten
und zu regeln bzw. zu steuern.
-
Der
virtuelle Knopfbalken 410 kann beispielsweise vier virtuelle
Knöpfe
beinhalten: Knopf 411, um eine CBM-Konferenz mit einem
Kontakt zu erzeugen, der aus der Kontaktliste 422 ausgewählt ist,
Knopf 413, um an einer CBM-Konferenz teilzunehmen, die
bereits im Gang ist, Knopf 415, um eine Konferenz zu verlassen,
und Knopf 417, um ein Vorschaufenster anzuzeigen. Die virtuellen
Knöpfe
können
unter Verwendung einer Eingabevorrichtung (beispielsweise einer
Maus) der Clientvorrichtung 110 ausgewählt werden, um ihre assoziierten
Funktionen aufzurufen.
-
Das
Kontaktlistenfenster 420 beinhaltet eine Liste von Benutzerkontakten 422 (beispielsweise
Benutzern des Konferenzsystems 100, mit dem ein Benutzer
kommuniziert oder ihren Status überwacht). Die
Kontaktliste 422 beinhaltet eine oder mehrere Identifizierungseinrichtung(en)
(beispielsweise Schirmnamen oder E-Mail-Adressen), die mit Benutzern
des Konferenzsystems 100 assoziiert ist bzw. sind. Der
gegenwärtige
Status der Kontakte, die in der Kontakt liste 422 beinhaltet
sind, kann bestimmt werden, indem eine visuelle Identifizierung
betrachtet wird, die mit einer entsprechenden Benutzer-Identifizierungseinrichtung
assoziiert ist.
-
In
einer Implementierung ist bzw. wird der Status durch die Farbe einer
Blasenkontakt-Identifizierungseinrichtung angezeigt, die mit jeder
Identifizierungseinrichtung assoziiert ist. Beispielsweise kann
rot verwendet werden, um anzugeben bzw. anzuzeigen, daß ein Kontakt
offline ist, grün
kann verwendet werden, um anzuzeigen, daß ein Kontakt online und nicht
in einer Konferenz ist, und blau kann verwendet werden, um anzuzeigen,
daß ein
Kontakt online und in einer Konferenz ist.
-
Das
Kontaktlistenfenster 420 kann Folder verwenden, um Gruppen
von Kontakten zu organisieren. Beispielsweise können die Folder Benutzer durch
ihren gegenwärtigen
Status gruppieren, und wie gezeigt einen Folder für Onlinekontakte
und einen Folder für
Offlinekontakte beinhalten.
-
Der
Konferenzbereich 440 kann verwendet werden, um Information über fortlaufende
bzw. andauernde Konferenzen zu präsentieren, die Datenströme entsprechend
Multimedia-Datenströmen
jedes Konferenzteilnehmers beinhalten. Der Konferenzbereich 440 kann
ein oder mehrere Konferenzfenster (beispielsweise 460)
beinhalten, das (die) die Audio/Videorepräsentationen bzw. -darstellungen entsprechend
den Konferenzteilnehmern präsentiert (präsentieren).
Außerdem
kann ein Monitorfenster 465 angezeigt werden, um den Datenstrom
vorzubesichtigen und zu regeln bzw. zu steuern, der an andere Clientvorrichtungen 110 während einer
Konferenz gesandt wird.
-
Jedes
Konferenzfenster 460 kann einen Titelbalken 470 beinhalten,
der eine Identifiziereinrichtung eines entsprechenden Konferenzteilnehmers enthält (beispielsweise
dominic@bne). Das Konferenzfenster 465 beinhaltet auch
einen Statusbalken 475 am Boden, der die Zeit angibt, in
der ein assoziierter Teilnehmer in einer Konferenz beschäftigt ist. Ein
kleines Icon bzw. Bildzeichen oder andere Anzeige 477 (beispielsweise
ein "Film"-Symbol) kann ausgewählt sein
bzw. werden, um detaillierte Information zu erhalten (beispielsweise
Datenraten, Bild- bzw. Rahmenraten, Codieren des gegenwärtigen Datenstroms
und ein Stempel der aktuellen Zeit) über den Audio/Videostrom, der
in dem entsprechenden Konferenzfenster präsentiert wird.
-
Das überwachende
bzw. Monitorfenster 465 kann einen Titelbalken 467 beinhalten
(beispielsweise eine Vorschau). Das überwachende Fenster 465 beinhaltet
nicht einen Statusbalken, weil die Daten, die in dem Fenster präsentiert
sind bzw. werden, lokal und nicht durch den JMF erzeugt sind. Das überwachende
Fenster 465 kann verwendet werden, um den Datenstrom zu
regeln bzw. zu steuern, der durch die Clientvorrichtung 110 publiziert
ist, die mit dem überwachenden
Fenster 465 assoziiert ist, das an die Konferenzteilnehmer
gesandt wird.
-
Der
Statusbalken 450 zeigt Information über das Konferenzsystem 100 an.
Beispielsweise kann der Statusbalken 450 eine Anzeige beinhalten,
daß die
Clientvorrichtung 110, die dem Benutzer-Interface 400 entspricht,
mit dem CBM-Netzwerk 120 verbunden ist. Der Statusbalken 450 kann
auch eine Information betreffend Speicherverbrauch der entsprechenden
Clientvorrichtung 110 anzeigen.
-
Erzeugung
einer Konferenz
-
Um
eine Konferenz zu schaffen bzw. zu erzeugen, kann ein Benutzer einen
Kontakt aus seiner Kontaktliste 422 auswählen. Der
Benutzer wählt dann
den virtuellen Knopf 411 "Schaffen bzw. Erzeugen einer Konferenz" in dem virtuellen
Knopfbalken 410 aus, um den Konferenzprozeß bzw. -vorgang
zu starten.
-
In
Antwort kann das graphische Interface 500, wie in 5 gezeigt,
gestartet und verwendet werden, um die Benutzer-Interface/Konferenzeinstellungen zu
konfigurieren. Wenn eine Änderung
gewünscht
ist bzw. wird, kann eine Änderungseinstellungseingabe 510 gewählt werden
und ein virtueller Knopf 520 kann ausgewählt werden,
um den Prozeß bzw.
Vorgang fortzusetzen. Wenn nicht, wird eine Konferenz errichtet
bzw. aufgebaut, indem die Einstellungen verwendet werden, die in
einer früheren Konferenz
verwendet wurden, und der virtuelle Knopf 530 (beispielsweise
Beenden) kann ausgewählt
werden.
-
6 und 7 zeigen
beispielhafte graphische Benutzer-Interfaces, die verwendet werden können, um
Optionen auszuwählen
und um die Benutzer-Interfaceeinstellungen zu ändern (beispielsweise verwendet
durch das JMF). Wie in 6 gezeigt, erlaubt das Interface 600 einem
Benutzer, Datenerfassungsvorrichtungen auszuwählen, die mit der Clientvorrichtung 110 assoziiert
sind, die verwendet werden können,
um eine CBM-Audio/Videokonferenz zu leiten bzw. zu verwalten bzw.
durchzuführen. Ein
Tab bzw. Streifen bzw. Fortsatz kann mit jeder Datenerfassungsvorrichtung
assoziiert sein. Beispielsweise sind ein Videovorrichtungsstreifen bzw. -fortsatz 610 und
ein Audiovorrichtungsfortsatz 620 bereitgestellt, um Einstellungen
für jede
entsprechende Audio- und Videodatenerfassungsvorrichtung auszuwählen und
zu errichten.
-
Ein
Videovorrichtungs-Tab 610 kann einen Auswahleingabekasten 630 beinhalten,
um die Videovorrichtung zu aktivieren, für welche Einstellungen ausgewählt worden
sind (oder Defaultfestlegungen, die durch das CBM-System 100 bereitgestellt
sind). Eine Art von Videovorrichtung kann von einem Drop-Down-Menü 638 ausgewählt sein
bzw. werden. Auswahlen für
ein Codieren, Videogröße, Rahmenrate
und Bits pro Pixel bzw. Bildpunkt können auch unter Verwendung
von Drop-Down-Menüs
ausgewählt werden.
Beispielsweise kann eine Bild- bzw. Rahmenrate zwischen 5 und 10
Rahmen/Sekunde unter Verwendung des Interface ausgewählt werden.
Unter Verwendung des Video-Tabs 620 kann die Videogröße verringert
werden, um eine bessere Videoqualität bereitzustellen. Ein Videocodierschema,
wie beispielsweise Video für
Windows (d.h. "vfw:..."), kann ausgewählt sein.
Virtuelle Knöpfe
zum Beenden oder Fortschreiten zu anderen Schirmen können auch
bereitgestellt sein.
-
Ähnlich kann,
wie in 7 gezeigt, der Audiovorrichtungs-Tab 620 verwendet
werden, um Audiovorrichtungseinstellungen auszuwählen. Ein Auswahlkasten 720 kann
verwendet werden, um die Audiovorrichtung einzuschalten. Drop-Down-Menüs 730, 740 und 750 können verwendet
werden, um einen Treiber (beispielsweise Java Sound Audioerfassung),
ein Codieren bzw. eine Sample bzw. Abtastrate auszuwählen. Radioknöpfe 760 für Bits pro
Probe (beispielsweise 8 Bit oder 16 Bit), Kanäle (beispielsweise Mono oder
Stereo), Endian (beispielsweise groß oder klein) können ausgewählt werden.
-
Nach
einem Klicken des Next-Knopfs 770 erscheint ein Schirm 800,
wie in 8 und 9 gezeigt, zum Spezifizieren
der Ausgabeparameter. Ein Drop-Down-Menü 810 kann verwendet
werden, um ein Format (beispielsweise RAW/RTP) auszuwählen. Tabs 820 und 830 spezifizieren
Ausgabeparameter für
Audio bzw. Video. Beispielsweise können die Drop-Down-Menüs 840 und 841 verwendet
werden, um eine Codier- und Samplerate zu spezifizieren. Radioknöpfe 850 für Bits pro
Probe bzw. Sample (beispielsweise 8 Bit oder 16 Bit), Kanäle beispielsweise
Mono oder Stereo), Endian (beispielsweise groß oder klein) können auch
ausgewählt
werden.
-
Wie
in 9 gezeigt, können
Ausgabeparameter für
Videodaten, die mit den Tabs 830 assoziiert sind, ausgewählt werden.
Ein Auswahlkasten 935 kann verwendet werden, um eine Spur
bzw. Route zu ermöglichen.
Drop-Down-Menüs 940, 941, 945 und 950 können verwendet
werden, um ein Codieren, eine Videogröße bzw. Rahmenrate auszuwählen. Ein Beendigungsknopf 960 kann
verwendet werden, um die Parameter und den Errichtungsprozeß abzuschließen.
-
Nachdem
dieser Prozeß bzw.
Vorgang für den
Initiator der Konferenz beendet ist, wird eine Einladung zur Konferenz
an einen eingeladenen Benutzer gesandt (vorher ausgewählt unter
Verwendung der Kontaktliste, wie oben beschrieben). Wenn sie mit
dem CBM-Netzwerk 120 verbunden ist, registriert die CBM-Adaptionsschicht 230 ein
Abonnement einer Identifiziereinrichtung, die mit ihrem Benutzer-Interface
assoziiert ist. Dieser Prozeß bzw.
Vorgang ermöglicht,
daß jede
publizierte Einladung, die durch das CBM-Netzwerk 120 zu
senden ist, an das abonnierende Benutzer-Interface gesandt wird.
Der eingeladene Benutzer kann die Einladung dann akzeptieren oder
zurückweisen.
Wenn die Einladung akzeptiert ist, kann der eingeladene Benutzer
durch denselben Prozeß eines
Konfigurierens der Datenströme, wie
dies oben für
den Konferenzinitiator beschrieben ist, fortfahren und ein Abonnement
für die
Konferenznachrichten registrieren. Nachdem alle Konfigurationen
ausgewählt
worden sind, kann die CBM-Konferenz beginnen.
-
Installation
-
Bevor
eine Konferenz errichtet werden kann, muß die Clientvorrichtung 110 die
notwendige(n) Software und Treiber installieren (beispielsweise
die Kamera und assoziierte Treiber, ein Mikrophon und assoziierte
Treiber, Java (beispielsweise 1.3 oder 1.4) und JMF (beispielsweise
JMF 2.1)). Nach einem Installieren des JMF kann der Benutzer das
JMF-Register (ein Werkzeug, das durch das JMF bereitgestellt ist,
um die Audio- und Videoerfassungsvorrichtungen zu registrieren,
die mit dem Benutzer-Interface assoziiert sind) von einem Programmenü des Betriebssystems
laufen lassen. Das JMF kann auch verwendet werden, um irgendwelche
Datenerfassungsvorrichtungen zu registrieren und zu detektieren
und um die Datenerfassungsvorrichtungen den JMF und irgendwelche
Anwendungen unter Verwendung des JMF verfügbar zu machen. Eine Registrierung
ist nach einer Installation des JMF notwendig und nachdem irgendwelche Änderungen
an den Audio- und Videokonfigurationen gemacht wurden.
-
Um
eine CBM-Konferenz ablaufen zu lassen, muß die Clientvorrichtung 110 auf
das CBM-Netzwerk 120 zugreifen und irgendwelche Abonnements
(Konferenzdaten oder Benutzerstatusdaten) registrieren. Das CBM-Netzwerk 120 beinhaltet
einen oder mehrere CBM-Server und mehrere Clientvorrich tungen 110 (welche
beispielsweise Produzenten oder Konsumenten sein können). Für eine Clientvorrichtung 110,
um einen Zugriff auf das CBM-Netzwerk 120 zu beschleunigen,
wird eine Client- bzw. Klientenbibliothek verwendet. Die Clientbibliothek
ist von der Programmiersprache und Plattform abhängig. In dieser Implementierung
wird eine Clientbibliothek durch Elvin bereitgestellt. Die Clientbibliothek
stellt den Runtime- bzw. Laufzeitsupport für Anwendungen zur Verfügung, die
Elvin verwenden. Die Clientbibliothek verkapselt das Drahtniveauprotokoll,
das durch den Server verstanden wird, unter Verwendung von Klassen
und/oder Funktionen in einem Stil, der der spezifischen bzw. speziellen
Sprache (in diesem Fall Java) angemessen ist.
-
10, 11, 12 und 13 zeigen ein
graphisches Optionen-Benutzer-Interface 1000, das
verwendet werden kann, um Optionen der Konferenzanwendung zu konfigurieren.
Das Interface 1000 kann mehrere Tabs beinhalten, um die
Konferenzanwendung zu konfigurieren. Beispielsweise können ein
allgemeines Tab 1010, ein Verbindungs-Tab 1020,
ein Stille-Detektions-Tab 1030,
ein Konferenzoptionen-Tab 1040 bereitgestellt sein. Virtuelle
Knöpfe
Sichern bzw. Save 1045 und Annullieren bzw. Cancel 1047 können verwendet
werden, um Optionseinstellungen jeweils zu sichern bzw. zu speichern
oder zu annullieren.
-
Das
allgemeine Tab 1010 kann ein Feld beinhalten, um eine Benutzer-Identifizierungseinrichtung
einzusetzen (beispielsweise eine E-Mail-Adresse, einen Schirmnamen
oder eine andere Systemidentifizierungseinrichtung). Die Identifizierungseinrichtung
wird verwendet, um einen Benutzer an dem CBM-Netzwerk 120 zu
identifizieren, und wird auch in der Kontaktliste von anderen Benutzern
verwendet, um den Benutzer zu identifizieren (beispielsweise um eine
Konferenz zu initiieren oder einen Benutzerstatus zu bestimmen).
Ein Auswahlkasten 1042 ist auch bereitgestellt, um das
Quenchingmerkmal zu ermöglichen.
-
Bezugnehmend
auf 11 kann das Verbindungs-Tab 1020 verwendet
werden, um einen CBM-Netzwerkserver zu spezifizieren. In einer Implementierung
kann die URL des Servers von einem Drop-Down-Menü 1050 ausgewählt werden.
Radioknopfauswahlen 1054 können verwendet werden, um anzuzeigen,
ob ein Server von dem Drop-Down-Menü ausgewählt ist, wenn der Server manuell
eingegeben ist (beispielsweise eine URL eines gewünschten
Servers eingetippt ist bzw. wird), oder wenn der Server automatisch
zu detektieren ist. Wenn einmal der Server ausgewählt ist,
kann ein virtueller Knopf 1057 ausgewählt werden, um die Verbindung
der Clientvorrichtung 110 mit dem ausgewählten Konferenzserver
zu überprüfen. Der
Benutzer wird dann über
erfolgreiche und nicht erfolgreiche Bemühungen informiert, um in den
Statusbalken des Hauptfensters zu verbinden.
-
Wie
in 12 gezeigt, kann das Stille-Detektions-Tab 1030 verwendet
werden, um eine Stille-Detektion auszuwählen. Die Detektion einer Stille
wird verwendet, um die erforderliche Bandbreite zu verringern. Beispielsweise
können
Daten nur übertragen werden,
wenn der Benutzer spricht. Wenn eine Stille-Detektion eingeschaltet
ist, werden keine Daten an andere Konferenzteilnehmer gesandt, wenn
das Ton- bzw. Lautniveau unter einer gegebenen Schwelle ist. Ein
Auswahlkasten 1060 kann verwendet werden, um die Stille-Detektion
einzuschalten. Gleitende Skalen 1062 und 1064 können verwendet
werden, um die minimale Schwelle bzw. Anzahl von stillen Puffern zu
etablieren bzw. zu schaffen. Die stillen Puffer spezifizieren die
Zeit eines Fortsetzens von Stille (Eingabeverstärkung unter der Schwelle),
bevor das System stoppt, Daten zu senden. Dies bedeutet, daß, nachdem
die Eingabeverstärkung
unter dem Schwellwert für
eine gewisse Zeit (beispielsweise in Millisekunden) ist, ein Übertragen
von Daten gestoppt wird. Außerdem
ist ein Schirmbereich 1066 bereitgestellt, um eine Aktivitätsdetektion
eines Benutzers anzuzeigen.
-
In 13 können Konferenzoptions-Tabs 1040 verwendet
werden, um die anfängliche
Auszeit auszuwählen,
die das Konferenz-Interface wartet, bis Teilnehmer auf eine Einladung
antworten. Ein Auswahlkasten 1070 kann verwendet werden,
um eine offene Konferenz auszuwählen,
in welcher jeder Benutzer des CBM-Netzwerks an der Konferenz und/oder
der Administration der Konferenz teilnehmen kann. Eine Auswahlskala 1075 kann
verwendet werden, um eine Konferenzzeitdauer zu spezifizieren.
-
Eine
Anzahl von beispielhaften Implementierungen wurde beschrieben. Nichtsdestoweniger
versteht es sich, daß verschiedene
Modifikationen gemacht werden können.
Beispielsweise können
geeignete Ergebnisse erzielt werden, wenn die Schritte der geoffenbarten
Techniken in einer unterschiedlichen Reihenfolge durchgeführt werden
und/oder wenn Komponenten in einer geoffenbarten Architektur, Vorrichtung
oder Schaltung in einer unterschiedlichen Art und Weise kombiniert
sind und/oder durch andere Komponenten ersetzt oder ergänzt sind. Demgemäß sind bzw.
liegen andere Implementierungen innerhalb des Umfangs der folgenden
Ansprüche.