-
1. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft Netzwerk-Konferenzführung, und
im Besonderen betrifft die vorliegende Erfindung Mechanismen zum
Ermöglichen
des Konferierens über
Netzwerke, ohne zusätzliche
Verbindungsabschnitte öffnen
zu müssen oder
Netzwerkverbindungen unter Benutzung eines bestimmten Verbindungsports
zu erfordern.
-
2. Stand der Technik
-
Die
Computertechnologie hat die Art und Weise verändert, wie wir arbeiten und
spielen. Moderne Computernetzwerktechnologien und -infrastrukturen
ermöglichen
es verschiedenen Anwendungen und Benutzern, Daten elektronisch selbst über enorme
Distanzen relativ schnell unter Verwendung von jederzeit verfügbaren Computersystemen zu
kommunizieren. Derartige Computersysteme können beispielsweise Desktop-Computer,
Laptop-Computer, PDAs (Personal Digital Assistants – persönlicher
digitaler Assistent), digitale Telefone oder Ähnliches einschließen.
-
Derzeit
sind Computersysteme so miteinander verbunden, dass ein Computersystem
buchstäblich
in der Lage ist, mit einem jeglichen von vielen Millionen anderen
Computersystemen in der ganzen Welt zu kommunizieren. Eine nützliche
Anwendung, die einen Vorteil aus dieser Zusammenschaltung zieht,
wird als Konferenzführung
(Conferencing) bezeichnet. In der folgenden Beschreibung und in
den Patentansprüchen
wird eine „Konferenz" als eine Netzwerksitzung
definiert, in der zwei oder mehrere Teilnehmer Multimedia-Informationen
in Echtzeit über
ein Thema, das von gemeinsamem Interesse ist, austauschen. Derartige
Multimedia-Daten können
Daten umfassen, die jegliche Video-, Bild- oder Toninformationen
einschließen.
Das Bild kann beispielsweise eine elektronische Darstellung einer
Anzeigetafel sein, wobei, wenn ein Teilnehmer unter Verwendung einer
Eingabevorrichtung auf die Anzeigetafel schreibt, sämtliche
Teilnehmer der Konferenz in Echtzeit sehen können, was geschrieben wird.
In dieser Beschreibung und in den Patentansprüchen bedeutet „konferieren" den Schritt des
Beteiligens an ei ner Konferenz, wie vorangehend definiert. Einige bekannte
Typen von Konferenzprotokollen umfassen beispielsweise RTP (Real-Time
Transport Protocol), T.120, H.323, H.324, SIP, MGCP und MEGACO.
In der folgenden Beschreibung und in den Patentansprüchen bezeichnet
ein „Express-Konferenzprotokoll" jegliche dieser
ausdrücklich
aufgelisteten Konferenzprotokolle.
-
Der
Austausch von Konferenzinformation unter Benutzung eines Konferenzprotokolls
involviert typischerweise den Austausch von Multimedia-Daten über einen
speziell zugewiesenen Netzwerkport. Beispielsweise wird der TCP-Port
1503 herkömmlich
in einigen Produkten für
den alleinigen Austausch von Multimedia-Konferenzdaten verwendet.
Andere Ports werden für
andere Nicht-Konferenzprotokolle verwendet. Beispielsweise ist der
TCP-Port 80 für
die Kommunikation unter Benutzung von HyperText Transport Protocol
(HTTP) zugewiesen, welches ein übliches
Request/Response-(Anfrage/Antwort-) Protokoll ist, das für die Kommunikation über Netzwerke, wie
beispielsweise das Internet, verwendet wird. Darüber hinaus ist der TCP-Port
443 zur Kommunikation für
eine sichere Version von HTTP, die als HTTPS bezeichnet wird, zugewiesen.
-
Ein
Problem bei herkömmlichen
Konferenzprotokollen besteht genau darin, dass ein gegebenes Konferenzprotokoll
häufig
die Kommunikation über einen
bestimmten Port erfordert. Es kann jedoch Gründe gegeben, weshalb dieser
bestimmte Verbindungsport nicht zur Verfügung steht. Beispielsweise verwendet
das Konferenzprotokoll T.120 den TCP-Port 1503. Es gibt jedoch einige
Firewalls, die aus Sicherheitsgründen
keine Verbindungen unter Benutzung dieses Ports akzeptieren. Demzufolge kann
sich ein Konferenzteilnehmer nicht in allen Fällen auf die Fähigkeit
verlassen, über
eine Firewall zu konferieren. Dementsprechend werden Verfahren, Systeme
und Computerprogrammprodukte zum Konferieren, ohne eine Verbindung über einen
bestimmten Port zu erfordern, gewünscht. Folglich muss ein neuer
Port nicht in allen Fällen
geöffnet
sein, wenn sich an einer Konferenz beteiligt werden soll.
-
WO 02/25451 A1 beschreibt
eine Projektoranwendung, die es einem mit dem Internet/Intranet verbundenen
Computer ermöglicht,
seinen Bildschirm über
das internet/Intranet mit anderen Computern oder Vorrichtungen zum
Browsen des Internets/Intranets, die ebenfalls mit dem Internet/Intranet verbunden
sind, in Echtzeit gemeinsam zu verwenden. Um eine Konferenz zu erstellen,
registriert sich ein Host zu nächst
auf einer Webseite, die durch einen Relay-Server gesteuert wird,
lädt die
Projektoranwendung herunter und installiert diese. Anschließend informiert
der Host die Konferenzteilnehmer über eine Konferenzzeit, über ein
Konferenzdatum und eine Identifikationsnummer. Der Host führt im Anschluss
daran die Projektoranwendung aus und loggt sich ein, um die Konferenz
zu beginnen. Die Projektoranwendung nimmt einen Abschnitt des Bildschirms
ein und sendet Daten über
das Internet/Intranet zu dem Relay-Server, der daraufhin die Daten
zu den Teilnehmern rundsendet, die über einen Browser verfügen, der
ein Viewer Applet heruntergeladen hat. Um sich mit einer Konferenz
zu verbinden, erhält
jeder Teilnehmer die Konferenzzeit, das Konferenzdatum und die Identifikationsnummer
von dem Host und meldet sich anschließend an der Konferenz auf der Webseite über einen
Web-Browser an. Das Viewer Applet wird automatisch heruntergeladen
und der Konferenzteilnehmer sieht den Bildschirm des Konferenz-Hosts.
Die Projektoranwendung kann Daten über Firewalls senden, da sowohl
das Host-Panel als auch das Viewer Applet Verbindungen zu dem Relay-Server
auf dieselbe Art und Weise öffnen,
auf die sich ein Web-Browser mit einem Web-Server verbinden würde. Aus
Leistungsgründen
versuchen die Projektoranwendung und die Viewer-Panels zunächst, sich
unter Verwendung von Raw-Socket-Verbindungen zu verbinden. Wenn
solche Verbindungen durch eine Firewall blockiert werden, schaltet
der Projektor automatisch um, um HTTP-Verbindungen zu verwenden,
die langsamer sind, jedoch durch Firewalls zugelassen werden.
-
In
EP 0 858 201 A2 wird
ein elektronisches Datensendesystem zum Senden einer Nachricht zwischen
einem ersten Computersystem, das innerhalb einer Firewall angeordnet
ist, und einem zweiten Computersystem, das mit dem ersten Computersystem über ein
Computernetzwerk kommuniziert, beschrieben. Es wird ein Umsetzungsmechanismus
bereitgestellt, der zum Identifizieren von Nachrichten dient, die
in einem ersten Format kodiert sind, das für das Übertragen über das Netzwerk geeignet ist. Wenn
dieses Format nicht für
das Übertragen über das
Netzwerk geeignet ist, ist der Umsetzer des Weiteren eingerichtet,
um Nachrichten in ein zweites Format umzuwandeln, das effizient über die
Firewall übertragen
werden kann. Der Umsetzungsmechanismus umfasst einen ersten Abfangmechanismus,
der in der Firewall angeordnet ist, und einen zweiten Abfangmechanismus,
das außerhalb
der Firewall angeordnet ist. Um eine Transaktion über die
Firewall zu senden, wird die Transaktion durch eine Anwendung angefordert,
auf die ein externer Kunde zugreift. Wenn eine Transaktionsnachricht
oder eine Anforderung gesendet wird, wird die Transaktionsnachricht durch
einen ersten Abfangmechanismus abgefangen. Nachdem die Transaktionsnachricht
abgefangen ist, wird die Nachricht in ein Format umgewandelt, das
zum Durchqueren der Firewall geeignet ist. Die umgewandelte Nachricht
gelangt durch die Firewall und wird anschließend durch den zweiten Abfangmechanismus
abgefangen, der außerhalb
der Firewall angeordnet ist. Danach wird die umgewandelte Nachricht
in die ursprüngliche
Form der Nachricht zurück
verwandelt und zu dem beabsichtigten Ziel weitergeleitet.
-
KURZE ZUSAMMENFASSUNG DER
ERFINDUNG
-
Es
ist die Aufgabe der vorliegenden Erfindung, das Konferieren zu ermöglichen,
ohne eine Verbindung über
einen bestimmten Port zu erfordern, selbst wenn das Konferenzprotokoll
die Kommunikation über
den bestimmten Port erfordert. Diese Aufgabe wird durch den Gegenstand
der unabhängigen Patentansprüche gelöst. Ausführungsformen
sind in den abhängigen
Patentansprüchen
bereitgestellt.
-
Die
Prinzipien der vorliegenden Erfindung betreffen Mechanismen zum
Durchführen
von Datenkonferenzen, ohne die Kommunikation unter Benutzung eines
bestimmten Verbindungsports zu erfordern. Die Erfindung kann durch
ein Softwaremodul implementiert werden, das einen Funktionsaufruf
von einer Konferenzanwendung empfängt. Der Funktionsaufruf kann
High-Level-Befehle zum Durchführen einer
grundlegenden Konferenzfunktion, wie beispielsweise der Übertragung
von Daten von einem festgelegten Pufferbereich, enthalten.
-
Das
Softwaremodul führt
anschließend sämtliche
der einzelnen Schritte aus, die erforderlich sind, um eine Verbindung
mit einem Konferenz-Server (oder mit einem oder mehreren anderen
Teilnehmern in dem Fall einer Direktkonferenz) aufzubauen und aufrechtzuerhalten.
Während
die Konferenzanwendung konfiguriert ist, um optional Telekonferenz unter
Benutzung eines bestimmten Konferenzprotokolls und folglich unter
Benutzung eines bestimmten Konferenzverbindungsports ohne die Verwendung des
Softwaremoduls durchzuführen,
kann optional ebenfalls das Softwaremodul verwendet werden, um eine
Verbindung mit einem völlig
anderen Port aufzubauen und aufrechtzuerhalten sowie Konferenzinformation
darüber
auszutauschen.
-
In
einer Beispielimplementierung ist T.120 das Konferenzprotokoll,
das typischerweise eine Verbindung mit einem Konferenz-Server über den TCP-Port
1503 erfordert. Das Softwaremodul kann jedoch (nach dem Bestimmen,
dass der TCP-Port 1503 nicht verfügbar ist) die Steuerung der
Austausches von Konferenzinformation übernehmen, indem es seine Steuerung
zu der Konferenzanwendung signalisiert, anschließend eine Verbindung über einen anderen
Port, wie beispielsweise den TCP-Port 80 oder den TCP-Port 443 aufbaut,
danach die Konferenzinformation unter Benutzung eines Protokolls (wie
beispielsweise HTTP oder HTTPS), das für den anderen Port (wie beispielsweise
den Port 80 beziehungsweise Port 443) geeignet ist, verpackt, und
anschließend
die neu verpackte Information über
die aufgebaute Verbindung überträgt.
-
Dementsprechend
kann, selbst wenn die Kommunikation über einen bestimmten Port (wie
beispielsweise den TCP-Port 1503) durch eine Firewall blockiert
wurde, das Konferieren dennoch über
einen anderen Port erfolgen, für
den die Firewall Verbindungsanforderungen akzeptiert. Des Weiteren
kann das Softwaremodul, das die Verbindung durchführt, ebenfalls
jegliche anderen Fragen bezüglich
der Verbindung klären,
wie zum Beispiel, ob es einen Proxy gibt und wie die Übertragungen über diesen
Proxy zu verhandeln sind. Das Softwaremodul kann darüber hinaus
weitere Aufgaben, wie beispielsweise die Verschlüsselung der ausgehenden Konferenzdaten
und die Entschlüsselung
der eingehenden Konferenzdaten, durchführen. Wenn Konferenzdaten unter
Benutzung eines bestimmten Protokolls empfangen werden, extrahiert
das Softwaremodul die Konferenzinformation und präsentiert
diese anschließend
der Konferenzanwendung in einem Format, das die Konferenzanwendung
interpretieren kann.
-
Zusätzliche
Leistungsmerkmale und Vorteile der Erfindung werden in der folgenden
Beschreibung dargelegt und werden teilweise aus der Beschreibung
ersichtlich oder können
durch die Anwendung der Erfindung in Erfahrung gebracht werden.
Die Leistungsmerkmale und Vorteile der Erfindung können mittels
der Instrumente und Kombinationen, die insbesondere in den angehängten Patentansprüchen dargelegt
werden, umgesetzt und erzielt werden. Diese und weitere Leistungsmerkmale
der vorliegenden Erfindung werden anhand der nachstehenden Beschreibung
und der angehängten
Patentansprüche
vollständiger
ersichtlich oder können
durch die Anwendung der Erfindung, wie im Folgenden dargelegt, in
Erfahrung gebracht werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Um
die Art und Weise zu beschreiben, auf die die vorstehend aufgeführten sowie
weitere Vorteile und Leistungsmerkmale der Erfindung erzielt werden
können,
wird eine genauere Beschreibung der Erfindung, die vorangehend kurz
beschrieben wurde, unter Bezugnahme auf spezifische Ausführungsformen
davon, die in den beigefügten
Zeichnungen illustriert sind, gegeben. Unter der Voraussetzung,
dass diese Zeichnungen lediglich typische Ausführungsformen der Erfindung
darstellen und sie aus diesem Grund nicht als deren Umfang begrenzend
zu betrachten sind, wird die Erfindung mit zusätzlicher Genauigkeit und zusätzlichen
Einzelheiten durch die Verwendung der beigefügten Zeichnungen beschrieben,
in denen:
-
1 ein
geeignetes Computersystem illustriert, in dem die Prinzipien der
vorliegenden Erfindung angewendet werden können;
-
2 illustriert
eine Netzwerkumgebung, in der die Prinzipien der vorliegenden Erfindung
angewendet werden können;
und
-
3 ist
ein Ablaufplan eines Verfahrens zum Konferieren in Übereinstimmung
mit der vorliegenden Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN
AUSFÜHRUNGSFORMEN
-
Die
Prinzipien der vorliegenden Erfindung betreffen Verfahren, Systeme
und Computerprogrammprodukte zum Durchführen des Konferierens, ohne
eine Verbindung über
einen bestimmten Konferenzverbindungsport zu erfordern. Die Erfindung kann
in einer Umgebung implementiert werden, in der ein Konferenz-Client
Konferenzinformation mit einem Konferenz-Server austauscht. Der
Konferenz-Client enthält
eine Konferenzanwendung, die einen Funktionsaufruf zu einem Softwaremodul
tätigt. Das
Softwaremodul veranlasst, dass eine Verbindung mit einem Konferenz-Server über einen
von dem Konferenzverbindungsport verschiedenen Verbindungsport aufgebaut
wird. Das Softwaremodul erfüllt
anschließend
den Funktionsaufruf unter Benutzung des von dem Konferenzverbindungsport
verschiedenen Verbindungsports.
-
Ausführungsformen,
die in den Umfang der vorliegenden Erfindung fallen, umfassen computerlesbare
Medien zum Tragen oder Aufweisen von computerausführbaren
Befehlen oder darauf gespeicherten Datenstrukturen. Solche computerlesbaren Medien
können
sämtliche
verfügbaren
Medien sein, auf die durch einen Universalcomputer oder einen Spezialcomputer
zugegriffen werden kann. Solche computerlesbaren Medien können beispielsweise und
nicht im einschränkenden
Sinne physikalische computerlesbare Medien, wie beispielsweise RAM, ROM,
EEPROM, CD-ROM oder andere optische Plattenspeicher, Magnetplattenspeicher
oder andere Magnetspeichervorrichtungen oder jegliche anderen Medien
sein, die verwendet werden können,
um gewünschte
Programmcodemittel in der Form von computerausführbaren Befehlen oder Datenstrukturen aufzunehmen
oder zu speichern, und auf die durch einen Universalcomputer oder
durch einen Spezialcomputer zugegriffen werden kann.
-
Wenn
Informationen über
ein Netzwerk oder eine andere Kommunikationsverbindung (entweder festverdrahtet,
drahtlos oder eine Kombination aus festverdrahtet und drahtlos)
zu einem Computer übertragen
oder diesem bereitgestellt werden, sieht der Computer die Verbindung
ordnungsgemäß als ein
computerlesbares Medium an. Folglich wird eine solche Verbindung
ordnungsgemäß als ein
computerlesbares Medium bezeichnet.
-
Kombinationen
des vorangehend Aufgeführten
sind in dem Umfang der computerlesbaren Medien inbegriffen. Computerausführbare Befehle
umfassen beispielsweise Befehle und Daten, die veranlassen, dass
ein Universalcomputer, ein Spezialcomputer oder eine Spezialverarbeitungsvorrichtung
eine bestimmte Funktion oder eine Gruppe von Funktionen durchführt.
-
1 und
die folgende Diskussion sollen eine kurze und allgemeine Beschreibung
einer geeigneten Computerumgebung bereitstellen, in der die Erfindung
implementiert werden kann. Obwohl dies nicht erforderlich ist, wird
die Erfindung im allgemeinen Kontext von computerausführbaren
Befehlen, wie beispielsweise Programmmodulen, beschrieben, die durch
Computer in Netzwerkumgebungen ausgeführt werden. Im Allgemeinen
enthalten Programmmodule Routinen, Programme, Objekte, Komponenten,
Datenstrukturen und Ähnliches,
die bestimmte Aufgaben durchführen
oder bestimmte abstrakte Datentypen implementieren.
-
Für Personen
mit gewöhnlicher
Erfahrung auf dem Gebiet der Technik ist offensichtlich, dass die
Erfindung in Netzwerkcomputerumgebungen mit vielen Typen von Computersystemkonfigurationen, die
Personalcomputer, Taschencomputer, Mehrprozessorsysteme, mikroprozessorbasierte
oder programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputer,
Großrechner
oder Ähnliches
einschließen,
ausgeführt
werden kann. Die Erfindung kann ebenfalls in verteilten Computerumgebungen
ausgeführt
werden, in denen Aufgaben durch lokale oder dezentrale Verarbeitungsvorrichtungen durchgeführt werden,
die über
ein Kommunikationsnetz (entweder durch festverdrahtete Verbindungen, drahtlose
Verbindungen oder durch eine Kombination aus festverdrahteten oder
drahtlosen Verbindungen) miteinander verbunden sind. In einer verteilten Computerumgebung
können
Programmmodule sowohl in lokalen als auch in dezentralen Speichervorrichtungen
angeordnet sein.
-
In
Bezug auf 1 enthält ein beispielhaftes System
zum Implementieren der Erfindung eine Universalcomputervorrichtung
in Form eines herkömmlichen
Computers 120, der eine Verarbeitungseinheit 121,
einen Systemspeicher 122 und einen Systembus 123 umfasst,
der verschiedene Systemkomponenten einschließlich des Systemspeichers 122 mit der
Verarbeitungseinheit 121 koppelt. In der gesamten Beschreibung
beginnen die Elementnummer mit der Nummer der Figur, in der die
entsprechenden Elemente zuerst eingeführt wurden. Beispielsweise sind
sämtliche
der Elementnummern in 1 als 100-ter Zahlen nummeriert
und die Elementnummern in 2 sind als
200-ter Zahlen nummeriert
und so weiter.
-
Der
Systembus 123 kann jeglicher von verschiedenen Typen von
Busstrukturen sein, die einen Speicherbus oder einen Speichercontroller,
einen Peripheriebus und einen lokalen Bus unter Verwendung jeglicher
einer Vielzahl von Busarchitekturen einschließen. Der Systemspeicher umfasst
einen ROM (Read Only Memory-Festspeicher) 124 und einen
RAM (Random Access Memory-Arbeitspeicher) 125. Ein elementares
Eingabe-/Ausgabesystem (BIOS) 126,
das die Basisroutinen enthält,
die dabei helfen, Informationen zwischen Elementen innerhalb des
Computers 120, wie beispielsweise während des Hochfahrens, zu übertragen,
können
in dem ROM 124 gespeichert werden.
-
Der
Computer 120 kann ebenfalls ein magnetisches Festplattenlaufwerk 127 zum
Lesen von einer und zum Schreiben auf eine magnetische Festplatte 139,
ein Magnetplatten laufwerk 128 zum Lesen von einer und zum
Schreiben auf eine entnehmbare Magnetplatte 129 sowie ein
optisches Plattenlaufwerk 130 zum Lesen von einer und zum
Schreiben auf eine entnehmbare optische Platte 131, wie beispielsweise
eine CD-ROM oder andere optische Medien, enthalten. Das magnetische
Festplattenlaufwerk 127, das Magnetplattenlaufwerk 128 und
das optische Plattenlaufwerk 130 sind jeweils durch eine Festplattenlaufwerkschnittstelle 132,
eine Magnetplattenlaufwerkschnittstelle 133 und eine optische Plattenlaufwerkschnittstelle 134 mit
dem Systembus 123 verbunden. Die Laufwerke und ihre dazugehörigen computerlesbaren
Medien stellen einen nichtflüchtigen
Speicher von computerausführbaren
Befehlen, Datenstrukturen, Programmmodulen oder anderen Daten für den Computer 120 bereit.
Obwohl die hierin beschriebene exemplarische Umgebung eine magnetische
Festplatte 139, eine entnehmbare Magnetplatte 129 und
eine entnehmbare optische Platte 131 verwendet, können andere
Typen von computerlesbaren Medien zum Speichern von Daten verwendet
werden, die Magnetkassetten, Flash-Speicherkarten, DVDs (Digital
Video Disks), Bernoulli-Kassetten, RAMs, ROMs und Ähnliches einschließen.
-
Programmcodemittel,
die ein oder mehrere Programmmodule umfassen, können auf der Festplatte 139,
der Magnetplatte 129, der optischen Platte 131,
in dem ROM 124 oder dem RAM 125, die ein Betriebssystem 135,
ein oder mehrere Anwendungsprogramme 136, andere Programmmodule 137 und Programmdaten 138 einschließen, gespeichert
werden. Ein Benutzer kann Befehle und Informationen über eine
Tastatur 140, eine Zeigevorrichtung 142 oder andere
Eingabevorrichtungen (nicht dargestellt), wie beispielsweise ein
Mikrofon, ein Joystick, ein Gamepad, eine Satellitenschüssel, einen
Scanner oder dergleichen, in dem Computer 120 eingeben.
Diese und andere Eingabevorrichtungen sind häufig über eine serielle Anschlussschnittstelle 46, die
mit dem Systembus 123 gekoppelt ist, mit der Verarbeitungseinheit 121 verbunden.
Alternativ können
die Eingabevorrichtungen durch andere Schnittstellen, wie beispielsweise
einen parallelen Anschluss, einen Game-Anschluss oder einen universellen
seriellen Bus (USB) verbunden sein. Ein Monitor 147 oder
eine andere Anzeigevorrichtung ist ebenfalls über eine Schnittstelle, wie
beispielsweise einen Videoadapter 148, mit dem Systembus 123 verbunden.
Zusätzlich
zu dem Monitor umfassen Personalcomputer typischerweise weitere
periphere Ausgabevorrichtungen (nicht dargestellt), wie beispielsweise
Lautsprecher und Drucker.
-
Der
Computer 120 kann in einer vernetzten Umgebung unter Verwendung
von logischen Verbindungen zu einem oder mehreren dezentralen Computern,
wie beispielsweise den dezentralen Computern 149a und 149b,
arbeiten. Die dezentralen Computer 149a und 149b können jeweils
ein anderer Personalcomputer, ein Server, ein Router, ein Netzwerk-PC,
ein Peer-Gerät
oder ein anderer gemeinsamer Netzwerkknoten sein und schließen typischerweise
viele oder sämtliche
der vorangehend in Bezug auf den Computer 120 beschriebenen
Elemente ein, obwohl lediglich die Speichervorrichtungen 150a und 150b sowie
ihre dazugehörigen
Anwendungsprogramme 136a und 136b in 1 illustriert
wurden. Die in 1 dargestellten logischen Verbindungen umfassen
ein lokales Netzwerk (Local Area Network – LAN) 151 sowie ein
Großraumnetzwerk
(Wide Area Network – WAN) 152,
die hier im Sinne eines Beispiels und nicht im einschränkenden
Sinne dargestellt sind. Derartige vernetzten Umgebungen finden in
Büroräumen oder
unternehmensweiten Computernetzwerken, Intranets und dem Internet
breite Anwendung.
-
Wenn
der Computer 120 in einer LAN-Netzwerkumgebung verwendet
wird, ist er über
eine Netzwerkschnittstelle oder einen Adapter 153 mit dem
lokalen Netzwerk 151 verbunden. Wenn der Computer 120 in
einer WAN-Netzwerkumgebung verwendet wird, kann er ein Modem 154,
eine drahtlose Verbindung oder eine andere Einrichtung zum Kommunikationsaufbau über das
Großraumnetzwerk 152,
wie beispielsweise das Internet, umfassen. Das Modem 154,
das intern oder extern sein kann, ist über die serielle Anschlussschnittstelle 146 mit
dem Systembus 123 verbunden. In einer vernetzten Umgebung
können
Programmmodule, die in Bezug auf den Computer 120 beschrieben
wurden, oder Teile davon in der dezentralen Speichervorrichtung
gespeichert werden. Es ist offensichtlich, dass die dargestellten
Netzwerkverbindungen exemplarischer Natur sind und andere Einrichtungen
zum Herstellen einer Kommunikationsverbindung über das Großraumnetzwerk 152 verwendet
werden können.
-
Während 1 ein
Beispiel eines Computersystems illustriert, das die Prinzipien der
vorliegenden Erfindung implementieren kann, kann jegliches Computersystem
die Leistungsmerkmale der vorliegenden Erfindung implementieren.
In der Beschreibung und in den Patentansprüchen wird ein „Computersystem" als jegliche Hardwarekomponente
oder Komponenten bezeichnet, die Software verwenden können, um
eine Funktion oder mehrere Funktionen durchzuführen. Beispiele von Computersystemen schließen Desk topcomputer,
Laptopcomputer, PDAs (Personal Digital Assistants – persönliche digitale
Assistenten), Telefone oder jegliches andere System beziehungsweise
jegliche andere Vorrichtung ein, das oder die Verarbeitungsfähigkeit
aufweist.
-
2 illustriert
eine Netzwerkumgebung, in der die Prinzipien der vorliegenden Erfindung
angewendet werden können.
Das Netzwerk umfasst einen Konferenz-Client 210, der mit
einem Konferenz-Server 220 kommuniziert. Der Konferenz-Client
und der Konferenz-Server können
jegliches Computersystem sein. Hierbei ist einer als ein „Client" und einer als ein „Server" gekennzeichnet,
lediglich um ein Computersystem von dem anderen zu unterscheiden.
Der Konferenz-Client 210 und der Konferenz-Server 220 können für die Zwecke
dieser Erfindung und in den Patentansprüchen Peer-Computersysteme sein.
-
Der
Konferenz-Server 220 kann über ein Netzwerk 230,
wie beispielsweise das Internet, mit dem Konferenz-Client 210 kommunizieren.
Der Konferenz-Server 220 kann direkt oder indirekt mit
noch weiteren Konferenz-Clients kommunizieren, um Mehrteilnehmerkonferenz
zwischen Konferenz-Clients zu ermöglichen.
-
Der
Konferenz-Client 210 und der Konferenz-Server 220 können nach
dem Aufbau einer Verbindung kommunizieren. Verbindungen können über ein
Netzwerk, wie beispielsweise das Internet, durch Anfordern und Aufbauen
einer Verbindung mit einem bestimmten Port, der auf einem dezentralen
Computersystem vorhanden ist, aufgebaut werden. Beispielsweise kann
der Konferenz-Client 210 potenziell mit dem Konferenz-Server 220 unter
Benutzung eines der Verbindungsports 221 kommunizieren.
Die Verbindungsports A und B der Verbindungsports 221 sind
zugelassen, wie dies durch die dazugehörigen Kästchen, die durchgezogene Grenzlinien
aufweisen, symbolisiert wird. Dementsprechend werden eingehende
Verbindungsanforderungen zu diesen Ports A und B durch den Konferenz-Server 220 akzeptiert.
Demgegenüber
ist der Verbindungsport C der Verbindungsports 221 nicht
zugelassen, wie dies durch die dazugehörigen Kästchen, die gestrichelte Grenzlinien
aufweisen, symbolisiert wird. Dementsprechend werden eingehende
Verbindungsanforderungen zu Port C durch den Konferenz-Server 220 abgewiesen.
-
Der
Konferenz-Client 210 kann ebenfalls Verbindungsports 221 besitzen,
wobei die Ports A und B zugelassen sind und der Port C nicht zugelassen
ist. Der Konferenz-Server 220 kann
mit dem Konferenz-Client 220 unter Benutzung eines der
Verbindungsports 211 kommunizieren. In einer Ausführungsform
stellt Port A den TCP-Port 80 dar, der durch HTTP (HyperText Transport
Protocol) verwendet wird, Port B stellt den TCP-Port 443 dar, der durch
eine sichere Form von HTTP, die als HTTPS bezeichnet wird, verwendet
wird, und Port C stellt den TCP-Port 1503 dar, der zum Kommunizieren
von Echtzeit-Konferenzinformation unter Benutzung von T.120 verwendet
wird.
-
Die
Festlegung dahingehend, welche Ports für ein gegebenes Computersystem
zugelassen und nicht zugelassen sind, kann durch Konfigurationseinstellungen
des Computersystems selbst oder eventuell durch eine Konfigurationseinstellung
einer Firewall, die das Computersystem schützt, bestimmt werden. Die Elemente 211 und 221 von 2 können ebenfalls
assoziierte Firewalls darstellen, die Verbindungsanforderungen zu
den enthaltenen Ports zulassen/nicht zulassen. Beispielsweise sind
viele Firewalls so konfiguriert, dass sie Verbindungsanforderungen über die
TCP-Ports 80 und 443 zulassen, die jeweils HTTP- und HTTPS-Protokollen
entsprechen. Jedoch verwenden Konferenzprotokolle, wie beispielsweise
T.120, den TCP-Port 1503, den viele Firewalls aus Sicherheitsgründen nicht
zulassen. Wenn der TCP-Port 1503 aus irgendeinem Grund nicht zugelassen
wurde, wäre
ein Konferieren unter Benutzung dieses Port nicht möglich. Die
Prinzipien der vorliegenden Erfindung ermöglichen dem Konferenz-Client 210,
mit dem Konferenz-Server 220 zu konferieren, selbst wenn
eine eingreifende Firewall Verbindungen über den TCP-Port 1503 oder
jeglichen anderen Konferenzverbindungsport für diesen Zweck nicht zugelassen
hat.
-
Der
Konferenz-Client 210 enthält eine Konferenzanwendung 212,
wie beispielsweise NetMeeting®, die zum Kommunizieren über den
Kommunikationsport C (beispielsweise Port 1503) konfiguriert ist. Der
Konferenz-Server 220 kann ebenfalls eine Konferenzanwendung 222 enthalten,
die zum Kommunizieren über
den nicht zugelassenen Kommunikationsport C konfiguriert ist. Die
Konferenzanwendungen 212 und 222 stellen Beispiele
der in 1 dargestellten Anwendungsprogramme 136 dar.
Da der Verbindungsport C nicht zugelassen ist, wären der Konferenz-Client 210 und
der Konferenz-Server 220 normalerweise
nicht in der Lage, ohne eine Änderung der
Konfigurationseinstellungen, um die Kommunikation über den
Konferenz-Verbindungsport C zu ermögli chen, zu konferieren. Wie
dies im Folgenden ausführlicher
beschrieben wird, ermöglichen
es die Prinzipien der vorliegenden Erfindung dem Konferenz-Client 210 jedoch,
mit dem Konferenz-Server 220 ungeachtet dessen zu kommunizieren,
ob der Konferenzverbindungsport C zur Verfügung steht.
-
Um
dies zu bewerkstelligen, umfasst der Konferenz-Client 210 ein
Softwaremodul 213, das beispielsweise die Anwendungsprogramme 136 sein kann,
oder eines der Softwaremodule 137, die vorangehend in Bezug
auf 1 beschrieben wurden. Der Konferenz-Server 220 kann
ebenfalls ein Softwaremodul 223 umfassen. Das Softwaremodul 213 kann beispielsweise
ein ActiveX®-Modul
sein, das von dem Konferenz-Server 220 auf den Konferenz-Client 210 heruntergeladen
wird, wenn der Konferenz-Client 210 erstmalig zu dem Konferenz-Server 220 zum Zwecke
des Koordinierens oder Akzeptierens einer Einladung zu einer Konferenz
navigiert. Das Softwaremodul 213 kann, wie im Folgenden
in Bezug auf den Ablaufplan von 3 beschrieben,
funktionieren.
-
3 illustriert
ein Verfahren 300 zum Konferieren, ohne die Kommunikation über einen
Konferenzverbindungsport zu erfordern. Das Verfahren 300 umfasst
einen Schritt des Softwaremoduls 213 des Empfangens eines
Funktionsaufrufs 214 von der Konferenzanwendung 212 (Schritt 301).
Der Funktionsaufruf 214 kann ein Funktionsaufruf zum Kommunizieren
von Konferenzinformationen, wie beispielsweise Daten, Video, Bild-
und/oder Audioinformationen, sein. Während die Konferenzanwendung 212 zum
Kommunizieren mit dem Konferenz-Server 220 unter Benutzung
eines Datenkonferenzprotokolls, wie beispielsweise eines Echtzeitdatenkonferenzprotokolls, über einen
bestimmten Konferenzport konfiguriert ist, kann sich in Fällen, in
denen ein solches Konferieren nicht möglich ist, auf das Softwaremodul 213 gestützt werden,
um die einzelnen Schritte des Konferierens von Daten durchzuführen, ohne
die Kommunikation unter Benutzung eines bestimmten Konferenzports
zu erfordern.
-
Dementsprechend
umfasst das Verfahren 300 einen Schritt (Schritt 310)
des Erfüllens
des Funktionsaufrufs, ohne über
den Konferenzverbindungsport kommunizieren zu müssen. Dieser funktionale ergebnisorientierte
Schritt kann jegliche entsprechenden Schritte zum Bewerkstelligen
dieses Ergebnisses umfassen. In 3 wird der
Schritt 310 jedoch so dargestellt, dass er die entsprechenden Schritte 311 und 312 umfasst.
Das Softwaremodul 213 veranlasst insbesondere, dass eine
Verbindung mit dem Konfe renz-Server 220 über einen
von dem Konferenzverbindungsport verschiedenen Verbindungsport aufgebaut
wird (Schritt 311). In einem Beispiel veranlasst das Softwaremodul 213,
dass eine Verbindung über
den Port A (beispielsweise TCP-Port 80) oder über den Port B (beispielsweise TCP-Port
443) aufgebaut wird. Das Softwaremodul 213 erfüllt anschließend den
Funktionsaufruf unter Benutzung des von dem Konferenzverbindungsport verschiedenen
Verbindungsports (Schritt 312).
-
Um
den Funktionsaufruf in einem Fall zu erfüllen (Schritt 312),
in dem der Funktionsaufruf angibt, dass Konferenzinformation mit
dem Konferenz-Server ausgetauscht werden soll, strukturiert das
Softwaremodul 213 die Konferenzinformation (Schritt 312A),
um zu erlauben, dass die Konferenzinformation über den Verbindungsport A oder
B kommuniziert wird. Beispielsweise kann das Softwaremodul B Konferenzinformation
nehmen, die geeignet für eine
NetMeeting- oder RTP-Anforderung strukturiert ist, und anschließend diese
Information in eine HTTP- oder HTTPS-Anforderung strukturieren.
Das Softwaremodul kommuniziert daraufhin die strukturierte Konferenzinformation
mit dem Konferenz-Server (Schritt 312B). Optional kann
das Softwaremodul, wie dies durch das gepunktete Kästchen 312C dargestellt
wird, ebenfalls bestimmen, ob es zwischen dem Konferenz-Client 210 und
dem Konferenz-Server 220 einen Proxy-Server (wie beispielsweise
einen Proxy-Server 215) gibt. In diesem Fall kann der Schritt
des Kommunizierens der strukturierten Konferenzinformation mit dem
Konferenz-Server 312B einen Schritt des Kommunizierens
der strukturierten Konferenzinformation über den Proxy-Server 215 umfassen.
Das Softwaremodul 213 kann ebenfalls zu sendende Konferenzinformation
verschlüsseln
oder zu empfangende Konferenzinformation entschlüsseln.
-
Dementsprechend
erlauben die Prinzipien der vorliegenden Erfindung, dass Konferenzinformation
ausgetauscht wird, auch ohne einen Konferenzverbindungsport zu erfordern.
Stattdessen kann jeglicher einer Anzahl von anderen Verbindungsports verwendet
werden. Dies stellt einen signifikanten Fortschritt hinsichtlich
des Konferierens dar, da die Umstände für jeden Konferenzteilnehmer
völlig
verschieden sein können.
Einige Teilnehmer können Proxy-Server
haben und/oder können
lediglich über eine
beschränkte
Anzahl von Ports kommunizieren, die keinen Konferenzverbindungsport
enthalten, während
andere keine Proxy-Server haben können und über einen Verbindungsport kommunizieren
können.
Die Prinzipien der vorliegenden Erfindung schließen Umstände ein, in denen ein Proxy-Server verfügbar sein
kann und in denen die Kommunikation über einen Konferenzverbindungsport
keine Option sein kann. In einer Ausführungsform veranlasst das Softwaremodul 213,
einen Verbindungsport über
einen Nicht-Konferenzverbindungsport
(wie beispielsweise TCP-Port 80 oder 443) lediglich aufzubauen, nachdem
es bestimmt hat, dass das Konferieren über einen Konferenzverbindungsport
(wie beispielsweise TCP-Port 1503) nicht möglich ist.
-
Die
vorliegende Erfindung kann in weiteren spezifischen Formen ausgeführt werden,
ohne von ihren grundlegenden Charakteristiken abzuweichen. Die beschriebenen
Ausführungsformen
sind in jeder Hinsicht als Beispiele und nicht im einschränkenden Sinne
zu verstehen. Der Umfang der Erfindung wird aus diesem Grund durch
die angehängten
Patentansprüche
und nicht durch die vorstehende Beschreibung angegeben. Sämtliche Änderungen,
die unter die Bedeutung und den Äquivalenzbereich
der Patentansprüche
fallen, sind in deren Umfang einzubeziehen.