-
HINTERGRUND
DER ERFINDUNG Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft Datenverarbeitungssysteme. Insbesondere
betrifft die vorliegende Erfindung einen Gateway für flexibles
Koppeln eines breiten Bereiches von Daten-Sendevorrichtungen mit
einem breiten Bereich von Daten-Empfangsvorrichtungen über einen
breiten Bereich von Netzwerken.
-
Stand der
Technik
-
Menschen
kommunizieren miteinander, indem sie eine Menge von Regeln verwenden,
die als Protokoll bezeichnet werden. Zum Beispiel kann es in einer
Kultur angemessen sein, eine Konversation mit einem Geschäftpartner
einzuleiten, indem man sich zur Begrüßung die Hand reicht. Während des
Gespräches
kann es angemessen sein, zuzuhören
und nicht zu sprechen, während
der Gesprächspartner spricht,
und sich dabei in die Augen zu sehen. Um das Gespräch zu beenden,
kann es angemessen sein, eine Schlussbemerkung zu machen, indem man
zum Beispiel „Auf
Wiedersehen° oder „Bis zum nächsten Mal." sagt. Ein Protokoll
regelt auch die Art und Weise, auf die Computer in einem gegebenen Netzwerk
kommunizieren oder Daten austauschen. Zum Beispiel wird ein Standard-Internetprotokoll
das Hyper Text Transport Protocol oder HTTP-Protokoll genannt.
-
Um
erneut auf die Analogie des Geschäftspartners sprechen zu kommen,
kann es von einer Kultur zu einer anderen Kultur ein unterschiedliches Protokoll
für die
Einleitung eines Gespräches
mit einem Geschäftspartner
geben. In einer Kultur kann zum Beispiel ein Händedruck angemessen sein. In einer
anderen Kultur kann eine leichte Verbeugung, ein gleichzeitiger
Händedruck
und ein nachfolgender Austausch von Geschäftskarten angemessen sein. In
einer anderen Kultur wiederum kann ein Kuss auf die Wange angemessen
sein. Was in einer Kultur angemessen ist, kann in einer ande ren
Kultur vollkommen unangemessen oder unvorstellbar sein. Computernetzwerke
können
ebenfalls von einem Netzwerk zu einem anderen unterschiedliche Protokolle
verwenden. Dennoch ist es wichtig, insbesondere mit dem Entstehen
und der Verbreitung des Internets, dass Vorrichtungen von verschiedenen
Netzwerken miteinander kommunizieren, auch wenn sie unterschiedliche
Protokolle verwenden.
-
Ein
Gateway ist eine Vorrichtung, die als Vermittler zwischen verschiedenen
Netzwerken fungiert. Eine Daten-Sendevorrichtung wird Informationen über ein
Netzwerk unter Verwendung eines für das betreffende Netzwerk
geeigneten Protokolls kommunizieren. Der Gateway wird diese Informationen
danach über
ein anderes Netzwerk unter Verwendung eines für das zweite Netzwerk geeigneten
Protokolls an die Zielvorrichtung weiterleiten. Mitunter sind die Protokolle
des ersten und des zweiten Netzwerkes gleich; oft sind sie jedoch
unterschiedlich. Somit ermöglicht
der Gateway Datenkommunikation über mehrere
Netzwerke hinweg, selbst wenn diese Netzwerke unterschiedliche Protokolle
haben.
-
Gateways
sind in ihrer Funktion nicht auf das Umwandeln von Protokollen beschränkt, sondern können weiterhin
eine Vielzahl anderer Funktionen ausführen, wie zum Beispiel das
Umsetzen von Nachrichtendaten aus dem von der Sendevorrichtung erzeugten
Format in ein Format, das von der Zielvorrichtung erkannt werden
kann. Zum Beispiel kann der Gateway eine Grafikdatei aus dem Format Graphics
Interchange Format (GIF) in das Format Bitmap (BMP) umwandeln.
-
Gateways
haben die Kommunikation zwischen den Netzwerken sehr erleichtert.
Jedoch sind herkömmliche
Gateways sehr unflexibel, da sie nur bestimmte Protokolle behandeln
können.
Ein Gateway, der Daten unter Verwendung des HTTP-Protokolls empfängt und
diese Daten unter Verwendung eines anderen bestimmten Protokolls,
wie zum Beispiel des Protokolls Kermit File Transfer Protokoll (Kermit
FTP), überträgt, kann
Daten nur unter Verwendung des HTTP-Protokolls empfangen und kann Daten
nur unter Verwendung des Protokolls Kermit FTP übertragen. Der Gateway führt keine Übertragung
unter Verwendung des HTTP-Protokolls oder irgendeines anderen Protokolls
aus, sondern nur unter Verwendung des Protokolls Kermit FTP.
-
Eine
weitere Einschränkung
bei herkömmlichen
Gateways besteht darin, dass der Gateway lediglich Datenformate
von einem bestimmten Format in ein anderes bestimmtes Format umwandelt.
Zum Beispiel führt
ein Gateway, der Daten aus dem Format Rich Text Format (RTF) in
das Format American Standard Code for Information Interchange (ASCII) umwandelt,
nur Umwandlung aus dem RTF-Format in das ASCII-Format durch.
-
Aufgrund
dieser Einschränkungen
werden Gerätehersteller
daran gehindert, neue Geräte
einzuführen,
die einen herstellereigenen oder proprietären Typ eines Datenformats
erkennen. Insbesondere muss der Gerätehersteller gegebenenfalls
eine Vielzahl von Gateways herstellen, um zu ermöglichen, dass Daten in ein
neues Format übersetzt
oder umgewandelt werden, das von dem neuen Gerät erkannt werden kann. Die
Anzahl der Gateways, die für eine
jeweilige Vorrichtung erforderlich sind, ist abhängig von der Anzahl der an
den Gateway bereitgestellten Formate, der Anzahl der Protokolle,
die verwendet werden, um die Daten zu dem Gateway zu kommunizieren,
und der Anzahl der Protokolle, die verwendet werden, um die Daten
von dem Gateway zu dem jeweiligen Gerät zu kommunizieren.
-
Weiterhin
muss ein neuer Trägeranbieter, der
sein eigenes Protokoll hat, gegebenenfalls ebenfalls eine Anzahl
von Gateways bereitstellen. Diese Anzahl ist abhängig von der Anzahl der Datenformate und
Protokolle, mit denen Daten zu dem Gateway übertragen werden, und von der
Anzahl der Datenformate, die von einem jeden Gerät, mit dem der Träger kommuniziert,
erkannt werden können.
-
In
dem drahtlosen Netzwerk gibt es einen Hostrechner von drahtlosen
Geräten,
von denen viele nur ihr eigenes herstellereigenes oder prioritäres Datenformat
erkennen. Weiterhin stehen zahlreiche drahtlose Träger zur
Verfügung,
die jeweils ihr eigenes Protokoll verwenden. Daher ist die Anzahl
von herkömmlichen
Gateways, die erforderlich sind, um alle drahtlosen Träger und
alle drahtlosen Geräte
unterzubringen, sehr groß.
Somit besteht eine große Last
der Bereitstellung von Gateways.
-
US-5,406,557
beschreibt ein Kommunikationszentrum, das einen Rechnerhub aufweist,
der einen gemeinsamen Kern und eine Vielzahl von Eingabe-/Ausgabemodulen umfasst.
Eine Vielzahl von unterschiedlichen Computern können mit dem Rechnerhub über ein
Netz verbunden werden und können eine
E-Mail-Nachricht unter Verwendung eines ersten Formats und eines
ersten Kommunikationsprotokolls senden. Das Eingabemodul stellt
eine Verbindung zu einem ersten Endbenutzer her und wandelt die
E-Mail-Nachricht, die von dem ersten Endbenutzer gesendet wird,
von dem ersten Format in ein Universalformat um. Der Hubkern stellt
die Nachricht in eine Warteschlange und verwendet die Nachrichtenadresse,
um zu entscheiden, welches Ausgabemodul zu verwenden ist. Der Hub
leitet die Nachricht zwecks Umwandlung in ein zweites Format, das
sich von dem ersten Format unterscheidet, für den Endbenutzer an das Ausgabemodul
weiter. Das Ausgabemodul überträgt die Nachricht
sodann über
ein Ziel-Netz unter Verwendung eines zweiten Kommunikationsprotokolls,
das sich von dem ersten Kommunikationsprotokoll unterscheidet, an
den Ziel-Hostcomputer.
-
WO
99/33226 beschreibt ein Kommunikationssystem, das wenigstens zwei
Kommunikationsnetze umfasst, die unterschiedliche Protokolle für Mitteilungsübermittlung
implementieren. Die physischen Geräte stellen eine Verbindung
zu den Kommunikationsnetzen zwecks Kommunikation her. Ein Kommunikationsserver
agiert zwischen den Kommunikationsnetzen und Nachrichten zwischen
den Kommunikationsnetzen gehen über
den Kommunikationsserver. Der Kommunikationsserver umfasst eine Wissensbank,
die Protokollumwandlungsinformationen speichert, auf die bei Empfang
einer Nachricht zugegriffen wird. Der Kommunikationsserver wandelt das
Protokoll des Netzes, über
das die Nachricht empfangen wurde, in ein Protokoll um, das mit
dem Kommunikationsnetz kompatibel ist, an das die Nachricht gesendet
wird.
-
EP 0872990 beschreibt einen
Makler-Anwendungsserver, der Kommunikation zwischen Sendern und
Empfängern über ein
Netz ermöglicht.
Jeder Empfänger
kann Daten in einem bevorzugten Format empfangen. Informationen,
die das bevorzugte Datenformat eines jeden Empfängers identifizieren, werden
in einer Datenbank in dem Makler-Anwendungsserver gespeichert. Der
Makler-Anwendungsspeicher empfängt
Pakete, die an einen Empfänger
adressiert sind. Der Server extrahiert Daten und Adressinformationen
aus dem Paket und prüft die
Daten, um das Datenformat zu identifizieren. Wenn die Daten in dem
für den
adressierten Empfänger
bevorzugten Format vorliegen, formatiert der Makler-Anwendungsserver
diese in ein Paket und sendet sie an den jeweiligen Empfänger. Wenn
die Daten nicht in dem bevorzugten Format des adressierten Empfängers vorliegen,
werden die Daten in ein gemeinsames Datenformat und danach weiter
in das bevorzugte Datenformat des adressierten Empfängers umgewandelt,
Danach werden sie in ein digitales Paket formatiert und an den adressierten
Empfänger
gesendet.
-
Es
ist wünschenswert,
die Anzahl der Gateways, die benötigt
werden, um Daten mit einem breiten Bereich von Netzen und Geräten, wie
zum Beispiel in der drahtlosen Welt, auszutauschen, zu reduzieren.
-
Gemäß einem
ersten Aspekt der vorliegenden Erfindung wird ein Verfahren gemäß Definition
in dem Anspruch 13 bereitgestellt.
-
Andere
Aspekte der Erfindung stellen ein Computerprogrammerzeugnis gemäß Definition
in Anspruch 1 und ein vernetztes Computersystem gemäß Definition
in Anspruch 22 bereit.
-
Der
Gateway ermöglicht
Datenübertragung von
einer Daten-Sendevorrichtung über
eine Vielzahl von Netzen an eine Vielzahl von Zielgeräten, selbst wenn
diese Netze unterschiedliche Protokolle verwenden und wenn die Geräte verschiedene
Datenformate erkennen. Somit kann der Gateway Arbeit leisten, die
vorher zahlreiche Gateways erforderte. Der Gateway ist insbesondere
nützlich
beim Kommunizieren über
drahtlose Netze mit drahtlosen Geräten, da diese Netze und Geräte zusammen
zahlreiche herstellereigene oder prioritäre Protokolle und Datenformate
aufweisen. Der Vorteil des Gateways kann jedoch ebenso in verdrahtete
Netze integriert werden, wie der Durchschnittsfachmann auf dem Gebiet
der Computernetze aus der vorliegenden Offenlegungsschrift erkennen
wird.
-
Nachdem
der Gateway Informationen von einer Datenquelle empfängt, kann
der Gateway den jeweiligen Gerätetyp
des Zielgerätes
identifizieren, und er kann den jeweiligen Netztyp des Zielnetzes
erkennen, auf dem das Zielgerät
läuft.
Wenn die Information zum Beispiel an das Mobiltelefon von Max Mustermann
gehen soll, bestimmt der Gateway den jeweiligen Typ des Mobiltelefons,
das Max Mustermann benutzt (zum Beispielein ABC ALPHATEXT PHONE 50000),
und das jeweilige Netz wird mit dem Telefon verbunden (zum Beispiel
DRAHTLOSNETZWERK XYZ). Alternativ dazu können der jeweilige Gerätetyp und
Netzwerktyp in den an den Gateway übergebenen Informationen beinhaltet
sein.
-
Der
Gateway ruft die jeweiligen Geräte-
und Netzwerktreiber auf, die zu dem jeweiligen Gerät und Netzwerk
gehören,
um eine Kette aus Treibermodulen zu erzeugen, die an das Zielgerät und das
Zielnetzwerk angepasst ist. Diese Treiberkette bringt die Daten
in das Format, das von dem Zielgerät erkannt wird und stellt sodann
die bearbeiteten Daten über das
Zielnetzwerk unter Verwendung eines kompatiblen Protokolls an das
Zielgerät
bereit. Somit empfängt
das Zielgerät
die von der Datenquelle bereitgestellten Informationen richtig und
interpretiert diese richtig.
-
Wenn
unmittelbar darauf Daten an dem Gateway ankommen, die unter Verwendung
eines Protokolls über
ein unterschiedliches Netz an ein unterschiedliches Gerät geleitet
werden sollen, kann der Gateway verschiedene Geräte- und Netzwerktreiber aufrufen,
um eine Treiberkette für
das jeweilige Gerät
und das jeweilige Netz anzupassen.
-
Ein
wichtiger Vorteil besteht darin, dass dieser Gateway Daten über eine
breite Vielzahl von Netzen an eine breite Vielzahl von Geräten übertragen kann.
Die Anzahl der Geräte
und der Netze, mit denen der Gateway arbeiten kann, wird nur durch
die Anzahl der dem Gateway zur Verfügung stehenden Geräte- und
Netzwerktreiber eingeschränkt.
Diese Flexibilität
ist besonders vorteilhaft in der drahtlosen Welt, in der die Formate
und Protokolle tendenziell von Gerät zu Gerät und von Netz zu Netz unterschiedlich
sind.
-
Der
Gateway ist ebenfalls dahingehend flexibel, dass er sowohl unidirektionale
als auch bidirektionale Kommunikation ermöglicht. Informationen können von
der Daten-Sendevorrichtung
wie oben beschrieben zu dem Zielgerät übertragen werden. In Abhängigkeit
von der Fähigkeit
des Zielgerätes
kann das Zielgerät
jedoch auch Informationen an die Sendevorrichtung übertragen.
Diese Informationen können
zum Beispiel eine Anforderung nach Informationen, die die Sendevorrichtung
an das Zielgerät
senden soll, umfassen.
-
Der
Gateway kann auch andere angepasste Treiber als die Geräte- und
Netzwerktreiber aufrufen. Wenn das Zielgerät zum Beispiel mit bestimmten Verschlüsselungsprogrammen
zum Dekodieren einer bestimmten Art von Verschlüsselung versehen ist, kann
der Gateway zuerst identifizieren, ob Verschlüsselung für eine gegebene Nachricht auf
der Grundlage der Gerätefähigkeiten
gewünscht
ist, danach den entsprechenden Verschlüsselungstreiber für eine bestimmte
Art von Verschlüsselung
identifizieren und danach das jeweilige Verschlüsselungsmodul aufrufen.
-
Zusätzliche
Aufgaben und Vorteile der Erfindung werden in der folgenden Beschreibung
genannt beziehungsweise teilweise aus derselben ersichtlich sein
oder können
aus der praktischen Ausführung der
Erfindung abgeleitet werden. Die Aufgaben und Vorteile der Erfindung
können
mit den in den anhängenden
Patentansprüchen
ausdrücklich
genannten Geräten
und Kombinationen ausgeführt
und erzielt werden. Diese und andere Aufgaben und Merkmale der vorliegenden
Erfindung werden aus der folgenden Beschreibung und den anhängenden
Patentansprüchen
ersichtlich sein oder können
durch die Ausführung
der Erfindung wie nachstehend beschrieben abgeleitet werden.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Zur
Beschreibung der Art und Weise, auf die die oben beschriebenen und
weitere Vorteile und Aufgaben der Erfindung erzielt und gelöst werden, wird
eine ausführlichere
Beschreibung der Erfindung als die vorstehende unter Bezugnahme
auf spezifische Ausführungsbeispiele
derselben, die in den anhängenden
Zeichnungen veranschaulicht werden, gegeben werden. In dem Verständnis, dass
die genannten Zeichnungen lediglich typische Ausführungsbeispiele
der Erfindung beschreiben und daher den Erfindungsbereich nicht
einschränken,
wird die Erfindung unter Bezugnahme auf die anhängenden Zeichnungen ausführlicher
beschrieben werden.
-
Kurze Beschreibung der
Zeichnungen:
-
1 veranschaulicht
ein beispielhaftes System, das eine geeignete Betriebsumgebung für die vorliegende
Erfindung bereitstellt.
-
2 ist
ein Schema und zeigt den Durchgang einer Nachricht durch einen Gateway
gemäß der vorliegenden
Erfindung.
-
3 ist
ein Schema und veranschaulicht die Skalierbarkeit des in 1 gezeigten
Gateways gemäß der vorliegenden
Erfindung.
-
4 ist
ein Schema des Gateways aus 2 und 3 mit
einem Lokator-Modul und der in der Lage ist, durch standardisierte
Schnittstellen aus Bibliotheken von Gerätemodulen, Netzwerktreibermodulen
und Verschlüsselungsmodulen
aufzurufen.
-
5 ist
ein Schema einer Tabelle, die durch eine Datenstruktur dargestellt
wird, die in dem Großspeicher
aus 4 vorliegt, wobei die Tabelle eine auswählbare Adresse
mit einer spezifischen Adresse des Zielgerätes aus 2 und 3 in
Verbindung bringt; und
-
6 ist
ein Schema der durch die Datenstruktur, die in dem Großspeicher
aus 4 vorliegt, dargestellten Tabelle, wobei die Tabelle
die spezifische Adresse des Zielgerätes mit einem spezifischen Gerätetyp des
Zielgerätes
und einem spezifischen Netzwerktyp des Netzwerkes, auf dem das Zielgerät residiert,
in Verbindung bringt.
-
AUSFÜHRLICHE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
Ein
flexibler Gateway ermöglicht
Datenübertragung
von einer Daten sendenden Vorrichtung über eine breite Vielzahl von
Netzen an eine breite Vielzahl von Zielgeräten, selbst wenn diese unterschiedliche
Protokolle verwenden und selbst wenn die Geräte unterschiedliche Datenformate
erkennen. Somit kann der Gateway Arbeit ausführen, die zuvor eine Vielzahl
von Gateways erforderte. Der Gateway ist besonders nützlich bei
der Kommunikation über drahtlose
Netzwerke, da diese Netzwerke und Geräte insgesamt eine Vielzahl
von herstellereigenen oder prioritären Protokollen und Datenformaten
erfordern. Der Vorteil des Gateways kann jedoch auch in verdrahtete
Netzwerke integriert werden, wie der Durchschnittsfachmann aus dem
Studium der vorliegenden Offenlegungsschrift erkennen wird.
-
Die
Erfindung wird unten anhand von Schemata zur Veranschaulichung der
Struktur oder der Verarbeitung von Ausführungsbeispielen zur Implementierung
der Systeme und Verfahren der vorliegenden Erfindung beschriebenen
werden. Die Nutzung der Schemata auf diese Weise zur Darstellung der
Erfindung soll nicht als den Erfindungsbereich einschränkend verstanden
werden. Die vorliegende Erfindung beinhaltet sowohl Methoden als
auch Systeme zum Weiterleiten von Nachrichten von einer sendenden
Vorrichtung an ein Zielgerät.
Die Ausführungsbeispiele
der vorliegenden Erfindung können einen
Spezialrechner oder einen Allzweckrechner umfassen, einschließlich verschiedener
Rechnerhardwarekomponenten, wie weiter unten ausführlicher
diskutiert werden wird.
-
Ausführungsbeispiele
innerhalb des Erfindungsbereiches der vorliegenden Erfindung beinhalten
weiterhin computerlesbare Medien mit darauf gespeicherten computerausführbaren
Anweisungen oder Datenstrukturen. Solche computerlesbaren Medien
können
beliebige Medien sein, auf die ein Allzweckrechner oder ein Spezialrechner
zugreifen können.
Beispielhaft, und nicht einschränkend,
können
solche computerlesbaren Medien unter anderem ein Direktzugriffsspeicher
(RAM), ein Nur-Lese-Speicher (ROM), ein EEPROM, eine CD-ROM oder
andere optische Speicherplatten, Magnetspeicherplatten oder sonstige
Magnetspeichervorrichtungen oder beliebige andere Medien sein, die
genutzt werden können,
um gewünschte
Programmcodemittel in Form von computerausführbaren Anweisungen oder Datenstrukturen
aufzunehmen oder zu speichern, und auf die ein Allzweckrechner oder
ein Spezialrechner zugreifen kann. Ein solches Medium kann unter
anderem zum Beispiel ein drahtloses Trägersignal sein. Wenn Informationen über ein
Netzwerk oder andere Kommunikationsverbindungen (hartverdrahtet
oder drahtlos) an einen Computer übertragen werden, betrachtet
der Computer die Verbindung richtig als computerlesbares Medium.
Somit wird eine solche Verbindung richtigerweise als computerlesbares
Medium bezeichnet. Kombinationen der Vorgenannten sollen gleichfalls
als in den Bereich computerlesbarer Medien fallend gelten. Computerlesbare
Anweisungen sind zum Beispiel unter anderem Anweisungen und Daten,
die bewirken, dass ein Allzweckrechner, ein Spezialrechner oder
eine Spezialverarbeitungsvorrichtung bestimmte Funktionen oder Gruppen
von Funktionen ausführen.
-
1 und
die sich anschließende
Diskussion sollen eine kurze, allgemeine Beschreibung einer geeigneten
Berechnungsumgebung beschreiben, in der die Erfindung implementiert
werden kann. Wenngleich dies nicht erforderlich ist, wird die Erfindung
in dem allgemeinen Kontext von computerausführbaren Anweisungen, wie zum
Beispiel Programmmodulen beschrieben werden, welche durch Rechner
in Netzwerkumgebungen ausgeführt
werden. Im Allgemeinen enthalten Programmmodule Routinen, Programme,
Objekte, Komponenten, Datenstrukturen etc., die besondere Aufgaben
erfüllen
oder besondere abstrakte Datentypen implementieren. Computerausführbare Anweisungen,
zugehörige
Datenstrukturen und Programmmodule sind Beispiele der Programmcodemittel
zum Ausführen
von Schritten der hierin offengelegten Verfahren und Methoden. Die
jeweilige Reihenfolge solcher ausführbarer Anweisungen oder zugehöriger Datenstrukturen
stellen Beispiele entsprechender Aktionen zum Implementieren der
in den genannten Schritten beschriebenen Funktionen dar.
-
Der
Durchschnittsfachmann wird erkennen, dass die Erfindung in Netzwerk-Berechnungsumgebungen
mit zahlreichen Arten von Computersystemkonfigurationen durchgeführt werden
kann, einschließlich
Personalcomputer, Handheld-Computer, Multiprozessorsysteme, mikroprozessorbasierte oder
programmierbare Verbraucherelektronik, Netzwerk-PCs, Minirechner,
Großrechner
und ähnliches. Die
Erfindung kann ebenso in Berechnungsumgebungen verteilt werden,
in denen Aufgaben durch lokale und entfernte Verarbeitungsgeräte, die über ein Kommunikationsnetzwerk
miteinander verbunden sind (entweder durch hartverdrahtete oder
durch drahtlose Verbindungen), ausgeführt werden. In einer verteilten
Berechnungsumgebung können
Programmmodule sowohl in lokalen als auch in entfernten Speichergeräten angeordnet
sein.
-
1 veranschaulicht
einen herkömmlichen Computer 20,
der Komponenten und Datenverarbeitungsfähigkeiten beinhaltet, die genutzt
werden können,
um Ausführungsbeispiele
der Erfindung zu implementieren. Der Computer 20 ist ein
Allzweck-Rechengerät, das eine
Verarbeitungseinheit 21, einen Systemspeicher 22 und
einen Systembus 23 enthält, der
die verschiedenen Systemkomponenten, einschließlich des Systemspeichers 22,
mit der Verarbeitungseinheit 21 verbindet. Der Systembus 23 kann
eine von mehreren Arten von Busstrukturen aufweisen, einschließlich eines
Speicherbusses oder einer Speicher-Steuereinheit, eines Peripheriebusses
und eines lokalen Busses, unter Verwendung einer beliebigen aus
einer Vielzahl von Busarchitekturen. Der Systemspeicher umfasst
einen Nur-Lese-Speicher (ROM) 24 und einen Direktzugriffsspeicher
(RAM) 25. Ein grundlegendes Eingabe-/Ausgabe-System (Basic
Input- Output System,
BIOS) 26, das die grundlegenden Routinen enthält, die
der Informationsübertragung
zwischen den Elementen in dem Computer 20 dienen, wie zum
Beispiel während des
Hochfahrens, können
in dem Nur-Lese-Speicher (ROM) 24 gespeichert werden.
-
Der
Computer 20 kann auch ein magnetisches Festplattenlaufwerk 27 zum
Lesen von und Schreiben auf eine magnetische Festplatte 39,
ein Magnetplattenlaufwerk 28 zum Lesen von und Schreiben
auf eine entfernbare Magnetspeicherplatte 29 und ein optisches
Laufwerk 30 zum Lesen von und Schreiben auf eine entfernbare
optische Speicherplatte 31, wie zum Beispiel eine CD-ROM
oder andere optische Speichermedien, umfassen. Das magnetische Festplattenlaufwerk 27,
das Magnetplattenlaufwerk 28 und ein optisches Laufwerk 30 sind über eine
Festplattenlaufwerk-Schnittstelle 32, eine Magnetlaufwerk-Schnittstelle 33 beziehungsweise
eine Schnittstelle 34 für
optisches Laufwerk mit dem Systembus verbunden. Die Laufwerke und
ihre zugehörigen
computerlesbaren Medien stellen einen nichtflüchtigen Speicher für computerausführbare Anweisungen,
Datenstrukturen, Programmmodule und andere Daten für den Computer 20 bereit.
Wenngleich die in dieser Schrift beschriebene beispielhafte Umgebung
eine magnetische Festplatte 39, eine entfernbare Magnetspeicherplatte 29 und
eine entfernbare optische Speicherplatte 31 verwendet,
können andere
Arten von computerlesbaren Medien zum Speichern von Daten verwendet
werden, wie unter anderem Magnetkassetten, Flash-Speicherkarten, Digital
Video Discs, Bernoulli-Wechselplatten, Direktzugriffsspeicher (RAM),
Nur-Lese-Speicher (ROM) und ähnliche.
-
Programmcodemittel,
die ein Programmmodul oder mehrere Programmmodule umfassen, können auf
der Festplatte 39, der Magnetspeicherplatte 29,
der optischen Speicherplatte 31, in dem Nur-Lese-Speicher
(ROM) 24 oder dem Direktzugriffsspeicher 25 gespeichert
werden, einschließlich
eines Betriebssystems 35, eines Anwendungsprogramms oder
mehrerer Anwendungsprogramme 36 oder Programmmodule 37 und
Programmdaten 38. Ein Benutzer kann Befehle und Informationen über die
Tastatur 40, ein Zeigegerät 42 oder andere Eingabegeräte (nicht
gezeigt), wie zum Beispiel ein Mikrophon, einen Joystick, einen
Spieleanschluss oder einen universalen seriellen Bus (USB) in den
Computer eingeben. Ein Monitor 47 oder eine andere Anzeigevorrichtung
ist ebenfalls über
eine Schnittstelle, wie zum Beispiel einen Videoadapter 48,
mit dem Systembus verbunden. Zusätzlich
zu dem Monitor umfassen Personalcomputer übli cherweise andere periphere Ausgabegeräte (nicht
gezeigt), wie zum Beispiel Lautsprecher und Drucker.
-
Der
Computer 20 kann in einer vernetzten Umgebung unter Verwendung
logischer Verbindungen mit einem oder mehreren entfernten Computern, wie
zum Beispiel die entfernten Computer 49a und 49b,
arbeiten. Die entfernten Computer 49a und 49b können ein
weiterer Personalcomputer, ein Server, ein Router, ein Netzwerk-PC,
ein Peer-Gerät
oder ein anderer gemeinsamen Netzwerkknoten sein und umfassen üblicherweise
zahlreiche oder alle der oben in Bezug auf den Computer 20 beschriebenen
Elemente, wenngleich nur die Speichergeräte 50a und 50b und
ihre zugehörigen
Anwendungsprogramme 36a und 36b in 1 veranschaulicht
worden sind. Die in 1 gezeigten logischen Verbindungen
umfassen ein lokales Netzwerk (LAN) 51 und ein Fernnetzwerk (WAN) 52,
die hier als Beispiel und nicht einschränkend dargestellt werden. Solche
Netzwerkumgebungen sind in Büro-Computernetzwerken
oder in Unternehmens-Computernetzwerken, in Intranets und in dem
Internet weit verbreitet.
-
Bei
Verwendung in einer LAN-Netzwerkumgebung ist der Computer 20 über eine
Netzwerk-Schnittstelle oder einen Adapter 53 mit dem lokalen
Netzwerk (LAN) 51 verbunden. Bei Verwendung in einer WAN-Netzwerkumgebung
kann der Computer 20 zum Beispiel ein Modem 54 oder
eine drahtlose Verbindung umfassen. Das Modem 54, welches
ein internes oder ein externes sein kann, wird über die serielle Schnittstelle 46 mit
dem Systembus 23 verbunden. In einer vernetzten Umgebung
können
die in Bezug auf den Computer 20 beschriebenen Programmmodule,
oder Teile derselben, in einem entfernten Speichergerät gespeichert
werden. Es wird ersichtlich sein, dass die gezeigten Netzwerkverbindungen
beispielhaft sind und dass andere Mittel zum Herstellen von Kommunikationen über das
Fernnetzwerk 52 verwendet werden können.
-
2 zeigt
ein Schema einer Umgebung 200 für einen Gateway 240 gemäß der vorliegenden Erfindung.
Der Gateway 240 kann zum Beispiel einen Computer, wie zum
Beispiel den Computer 20 aus 1, umfassen
und wirkt mit den Netzwerken 220, 260 und 261 außerhalb
des Computers 20 zusammen, wie in 2 gezeigt
wird. Alternativ dazu kann der Gateway 240 in einem beliebigen
anderen geeigneten Verarbeitungsgerät oder Verarbeitungssystem, das
die hierin offengelegten Funktionen erfüllt und ausführt, implementiert
werden. Der Gateway 240 der vorliegenden Erfindung ist flexibel,
unterstützt zahlreiche
Arten von Datenformatumwandlungen und zahlreiche Arten von Protokollumwandlungen.
-
In
der Umgebung 200 aus 2 leitet
eine sendende Vorrichtung 210 eine Nachricht 280 durch ein
sendendes Netzwerk 220, durch eine Sende-Warteschlange 230 und
zu einem Gateway 240. Die Nachricht 280 kann beliebige
Daten umfassen, das heißt
Text, Grafiken, ausführbare
Anweisungen und andere. Der Gateway 240 verarbeitet die
Nachricht 280 und leitet die Nachricht 280 durch
eine entfernte Warteschlange 250, durch ein entferntes
Netzwerk 260 und an ein entferntes Gerät 270. Das entfernte
Netzwerk 261 und das entfernte Gerät 271 werden weiter
unten ebenfalls beschrieben werden. In dieser Beschreibung entspricht „sendend" entweder der linken
oder der rechten Seite des Gateways 240, und „entfernt" entspricht dem Empfangsnetzwerk
oder dem Zielnetzwerk und dem (den) Gerät(en), das (die) sich ebenfalls
auf der linken oder auf der rechten Seite des Gateways 240 befinden kann
(können). „Sendend" und „entfernt" werden in der vorliegenden
Beschreibung und in den Patentansprüchen lediglich verwendet, um
eine Position von einer anderen zu unterscheiden, und sie stellen
nicht mit Notwendigkeit eigentliche physische Positionen dar.
-
Um
die Nachricht 280 zu erzeugen, umfassen Ausführungsbeispiele
innerhalb des Erfindungsbereiches Vorrichtungen zum Erzeugen der
Nachricht 280. Ein Beispiel einer solchen Vorrichtung wird in 2 als
die sendende Vorrichtung 210 gezeigt. Die sendende Vorrichtung 210 führt Aktionen
zum Erreichen des Schrittes des Erzeugens der Nachricht 280 wie
beschrieben durch. Die sendende Vorrichtung 210 kann eine
von zahlreichen Vorrichtungen sein, die eine elektronische Nachricht
in einem spezifischen Format ausgeben kann. Als lediglich ein konkretes
Beispiel kann die sendende Vorrichtung 210 ein Server sein,
der einen darauf geladenen Microsoft Exchange Server aufweist. In
dem Fall des Microsoft Exchange Server kann die nahe Vorrichtung 210 E-Mail-Nachrichten
in dem Format Multipurpose Internet Mail Extensions (MIME), Kalendereinträge in dem
Format iCal, Kontakteinträge
in dem Format vCard und so weiter erzeugen. Die Art und die Anzahl der
Formate, in denen die Nachricht 280 erzeugt wird, werden
nur durch die Software- und Hardwarefähigkeiten der sendenden Vorrichtung 210 begrenzt.
-
Die
Nachricht 280 kann „abgestoßen" erzeugt werden,
das heißt
als Antwort oder Reaktion auf ein anderes vorgegebenes Ereignis
als die Anforderung der Nachricht 280. Zum Beispiel kann
die sendende Vorrichtung 210 die Nachricht 280 zu
einem vorgegebenen Zeitpunkt erzeugen, wie zum Beispiel zu jeder
vollen Stunde. Die Nachricht 280 kann auch als Antwort
oder Reaktion auf eine ankommende E-Mail-Nachricht oder als Antwort
oder Reaktion auf andere von der sendenden Vorrichtung 210 erkannte
Anregungen erzeugt werden. Die Nachricht 280 kann auch „angezogen" erzeugt werden,
das heißt
die Nachricht 280 wird als Antwort oder Reaktion auf eine
bestimmte in der Nachricht 280 enthaltene Anforderung von
Informationen erzeugt.
-
Unabhängig davon,
ob die sendende Vorrichtung 210 die Nachricht 280 als
Antwort oder Reaktion auf eine Anforderung oder als Antwort oder Reaktion
auf eine Anregung erzeugt, erzeugt die sendende Vorrichtung 210 einen
Körper 282 der
Nachricht 280 zusammen mit Mitteln zum Adressieren des Zielgerätes 270 oder 271,
von denen ein Beispiel als Adresse 281 in 2 gezeigt
wird. Die einzige Anforderung, die an die Adresse 281 besteht
ist die, dass sie den Standort einer entfernten Zielvorrichtung
entweder direkt oder indirekt durch Bezug auf einen anderen Mechanismus,
wie zum Beispiel eine Nachschlagetabelle, identifiziert. Zum Beispiel
kann die Adresse 281 der Uniform Resource Locator (URL) oder
die Telefonnummer der entfernten Zielgeräte 270 oder 271 sein.
Alternativ dazu kann die Adresse 281 allgemeiner sein,
wie zum Beispiel „Max
Mustermann-Mobiltelefon",
wobei die Adresse 281 mit einer Nachschlagetabelle verglichen
werden muss, um die spezifische Adresse zu ermitteln, wie weiter
unten beschrieben werden wird.
-
Die
Nachricht 280 wird an den Gateway 240 übertragen,
so dass die Nachricht 280 (oder ihre zugehörigen Adressinformationen)
durch den Gateway 240 in Vorbereitung auf das Weiterleiten
der Nachricht 280 zu einem entfernten Gerät oder 271 verarbeitet
werden kann. Dementsprechend umfassen Ausführungsbeispiele innerhalb des
Erfindungsbereiches der vorliegenden Erfindung eine Vorrichtung zum
Senden der Nachricht 280 von der sendenden Vorrichtung 210 an
den Gateway. Ein Beispiel einer solchen Vorrichtung wird in 2 als
das sendende Netz 220 gezeigt. Zuerst empfängt das
sendende Netz 220 die Nachricht 280 von der sendenden
Vorrichtung 210 unter Nutzung eines Protokolls, das mit dem
sendenden Netz 220 kompatibel ist. Das sendende Netz 220 kann
ein beliebiges Medium sein, das in der Lage ist, die Nachricht 280 zu
senden, unabhängig
davon, ob es vollständig
verdrahtet, vollständig
drahtlos oder teilweise drahtlos ist. Das sendende Netz 220 kann
ein Fernnetzwerk (WAN) oder ein lokales Netzwerk (LAN) oder eine
Kombination aus beiden sein und ein beliebiges Protokoll verwenden,
wie zum Beispiel das Protokoll HyperTextTransport Protocol (HTTP).
In einem anderen Beispiel der Vorrichtung zum Senden der Nachricht
von der sendenden Vorrichtung 210 zu dem Gateway 240 sind die
sendende Vorrichtung 210 und der Gateway 240 beide
in einer gemeinsamen Vorrichtung, wie zum Beispiel einem Server,
angeordnet. In diesem Fall ist das sendende Netz 220 zu
dem Server intern angeordnet.
-
Wahlweise
und für
Zwecke der Skalierbarkeit kann die Vorrichtung zum Senden der Nachricht 280 zu
dem Gateway 240 weiterhin eine Sende-Warteschlange 230 umfassen.
Die Sende-Warteschlange 230 kann Nachrichten von mehreren
sendenden Netzen und/oder mehreren sendenden Vorrichtungen empfangen,
so dass die Nachrichten an dem Gateway 240 zur Verfügung stehen
und so dass die Nachrichten an mehrere Gateways übergeben werden können, wie
in 3 gezeigt wird.
-
3 zeigt,
dass die Umgebung 200 dahingehend skalierbar ist, dass
die Anzahl der sendenden Netze und die Anzahl der Gateways, die
Nachrichten von diesen Netzen handhaben, nach Bedarf angepasst werden
können.
Insbesondere unter Bezugnahme auf 3 empfängt die
Sende-Warteschlange 230 Nachrichten von einer Vielzahl
von sendenden Vorrichtungen 210 und 211 über eine Vielzahl
von sendenden Netzen 220 beziehungsweise 221.
Weiterhin zeigt 3, dass die Sende-Warteschlange 230 Nachrichten
an eine Vielzahl von Gateways 240 und 241 übergeben
kann. Wenngleich lediglich zwei sendende Netze, sendende Vorrichtungen
und Gateways gezeigt werden, wird aus der vorliegenden Beschreibung
ersichtlich sein, dass die Anzahl der sendenden Vorrichtungen, sendenden Netze
und Gateways nach Erfordernis herauf- oder herunterskaliert werden
kann.
-
Wenn
der Gateway 240 zum Beispiel schnell genug ist, um Nachrichten
von zahlreichen sendenden Netzen zu verarbeiten, können zahlreiche
sendende Netze Nachrichten in die Sende-Warteschlange 230 eingeben
und eine geringere Anzahl von Gateways Nachrichten aus der Sende-Warteschlange 230 entfernen.
Wenn der Gateway 240 andererseits nicht schnell genug ist,
um Nachrichten von einem sendenden Netz zu verarbeiten, können relativ wenige
sendende Netze Nachrichten an die nahe Warte schlange 230 bereitstellen,
und eine größere Anzahl
von Gateways (zum Beispiel die Gateways 240 und 241)
können
Nachrichten aus der Sende-Warteschlange 230 entfernen.
Die Sende-Warteschlange 230 kann eine beliebige Warteschlange sein,
die in der Lage ist, Nachrichten zu empfangen, Nachrichten zu speichern
und diese Nachrichten für Entnahme
durch den Gateway 240 bereitzuhalten. Zum Beispiel kann
die Sende-Warteschlange 230 eine
Microsoft Message Queue (MSMQ), entwickelt von der Microsoft Corporation,
sein. Der Gateway 240 entfernt sodann die Nachricht 280 aus
der Sende-Warteschlange 230.
-
Nach
der Verarbeitung durch den Gateway 240 oder 241 wird
die Nachricht zu einer entfernten Warteschlange 250 geleitet,
die ebenfalls für
Zwecke der Skalierbarkeit bereitgestellt wird, um zu ermöglichen,
dass die Anzahl der entfernten Zielgerätedienste durch die Gateways
nach Bedarf herauf- oder herunterskaliert werden kann. Die entfernte
Warteschlange 250 wird weiter unten detaillierter beschrieben
werden.
-
Der
Gateway führt
mehrere Funktionen aus, die in Bezug auf die 4, 5 und 6 detaillierter
beschrieben werden. Auf einer hohen Funktionsebene bestimmt der
Gateway 240 die Adresse der entfernten Vorrichtung 270,
so dass die Nachricht 280 ordnungsgemäß weitergeleitet werden kann.
Somit umfassen Ausführungsbeispiele
innerhalb des Erfindungsbereiches der vorliegenden Erfindung eine
spezifische Adresse des Zielgerätes 270.
-
In
der vorliegenden Beschreibung und in den Patentansprüchen bedeutet
der Ausdruck „spezifische
Adresse" eine beliebige
Adresse, die ausreichende Informationen enthält, um die zugehörige Nachricht über ein
entferntes Netz 260 oder 261 ordnungsgemäß an eine
entfernte Vorrichtung 270 oder 271 zu leiten.
Beispiele einer spezifischen Adresse sind unter anderem eine Telefonnummer
eines Uniform Resource Locators (URL). Wenn die Adresse 281,
die zu der Nachricht 280 gehört, spezifisch ist, können die
Vorrichtungen zum Bestimmen einer spezifischen Adresse eines Zielgerätes 270 oder 271 einfach
Auslesen der Adresse 281 aus der Nachricht 280 umfassen.
-
„Generische
Adresse" bedeutet
eine beliebige Adresse, die die Hilfe einer Bezugsquelle erfordert,
um den zugehörigen
Posten zu seinem Ziel zu leiten. Zum Beispiel kann „Max Mustermanns
private Telefonnummer in Chicago" nur
dann ausreichend sein, um eine Nachricht über einen Telefonanruf ordnungsgemäß zu leiten,
wenn Bezug auf ein Telefonbuch von Chicago genommen wird, um die
spezifische Telefonnummer zu ermitteln. Wenn die Adresse 281 generisch
ist, können
die Vorrichtungen zum Ermitteln einer spezifischen Adresse eines
Zielgerätes 270 oder 271 spezifische
Aktionen durchführen,
wie zum Beispiel das Auslesen der generischen Adresse und Nachschlagen
der spezifischen Adresse, die zu der generischen Adresse zugehörig ist,
in einer Tabelle oder einer anderen Informationsquelle.
-
Wie
weiter oben beschrieben worden ist, muss das Format der Nachricht 280 häufig geändert werden,
um das Format aufzuweisen, das von einem entfernten Gerät 270 oder 271 erkannt
wird. Somit umfassen Ausführungsbeispiele
innerhalb des Erfindungsbereiches der Erfindung Vorrichtungen zum Handhaben
oder Bearbeiten der Nachricht 280, damit diese in einem
Format vorliegt, das von einem solchen entfernten Zielgerät erkannt
wird. Diese und andere Vorrichtungen werden unter Bezugnahme auf 4 detaillierter
beschrieben werden.
-
Um
ordnungsgemäß an das
entfernte Gerät 270 oder 271 gesendet
zu werden, muss die Nachricht 280 unter Verwendung eines
Protokolls, das von dem jeweiligen entfernten Netz 260 oder 261 erkannt wird, über ein
entferntes Netz 260 gesendet werden. Dementsprechend umfassen
Ausführungsbeispiele innerhalb
des Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen
zum Senden der Nachricht 280 unter Verwendung eines Protokolls,
das mit dem gewünschten
entfernten Netz 260 oder 261 kompatibel ist. Diese
und andere Vorrichtungen werden unter Bezugnahme auf 4 detaillierter
beschrieben werden.
-
Als
Beispiel der Funktionalität
des unter Bezugnahme auf 3 beschriebenen Gateways 240 gehen
wir jedoch von der Annahme aus, dass die sendende Vorrichtung 210 eine
E-Mail-Nachricht 280 in einem Format MIME (ein Standard-Intenet-E-Mail-Format, das Anhänge ermöglicht)
erzeugt und die Nachricht 280 unter Verwendung des Standard-Internetprotokolls
Hyper Text Transport Protocol (HTTP) über das sendende Netz 220 an
den Gateway 240 sendet. Gehen wir weiter von der Annahme aus,
dass das entfernte Netz 260 ein herstellereigenes oder
proprietäres
Drahtlosprotokoll Nr. 1 verwendet und dass das entfernte Gerät 270 Daten
in dem herstellereigenen oder proprietären Drahtlosformat Nr. 2erkennt.
In diesem Fall wandelt der Gateway 240 die Nach richt 280 aus
dem Format MIME in das herstellereigene oder proprietäre Format
Nr. 2 um und sendet die Nachricht 280 unter Nutzung des
herstellereigenen oder proprietären
Protokolls Nr. 1 über das
entfernte Netz 280.
-
Danach
kann der Gateway 240 eine weitere für ein anderes entferntes Gerät 271 über ein
anderes entferntes Netz 261 bestimmte Nachricht umwandeln,
selbst wenn das andere entfernte Netz 261 das herstellereigene
oder proprietäre
Datenformat Nr. 2 nicht erkennt und selbst wenn das andere entfernte Netz 261 nicht
das herstellereigene oder proprietäre Protokoll Nr. 1 verwendet.
Der Gateway 240 passt sich dynamisch nach Erfordernis an,
um die Nachricht 280 umzuformatieren und um die umformatierte Nachricht 280 unter
Verwendung des richtigen Protokolls wie hierin beschrieben bereitzustellen.
-
Nachdem
der Gateway 240 die Nachricht 280 bearbeitet hat,
damit diese in einem Format vorliegt, das von einem entfernten Gerät 270 oder 271 erkannt
wird, wird die Nachricht 280 gesendet. Dementsprechend
umfassen Ausführungsbeispiele
innerhalb des Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen
zum Senden der Nachricht 280 an ein entferntes Gerät 270 oder 271.
Ein Beispiel dieser Vorrichtung wird in 2 als entferntes
Netz 260 oder 261 gezeigt.
-
Der
Gateway 240 sendet die umformatierte Nachricht 280 unter
Verwendung eines Protokolls, das mit dem jeweiligen beschriebenen
entfernten Netz, wie zum Beispiel 260 oder 261,
kompatibel ist. Die entfernten Netze 260 oder 261 können beliebige Netze
sein, die in der Lage sind, die Nachricht 280 an die entfernten
Geräte 270 oder 271,
zu senden, unabhängig
davon, ob sie vollständig
verdrahtet, vollständig
drahtlos oder teilweise drahtlos sind. Das sendende Netz 220 kann
ein Fernnetzwerk, ein lokales Netzwerk oder eine Kombination aus
beiden sein und kann ein beliebiges Protokoll, wie zum Beispiel HTTP,
oder herstellereigene oder proprietäre drahtlose Trägerprotokolle
verwenden. Da drahtlose Träger üblicherweise
ihre eigenen herstellereigenen oder proprietären Protokolle haben und da
es zahlreiche Arten von drahtlosen Geräten gibt, die jeweils ihre
eigenen Datenformate erkennen, ist der flexible Gateway 240 der
vorliegenden Erfindung besonders nützlich in der Kommunikation
mit drahtlosen Geräten.
-
Wahlweise,
für Zwecke
der Skalierbarkeit auf der entfernten Seite des Gateways 240,
können
die Vorrichtungen zum Senden der Nachricht 280 an das entfernte
Gerät 280 ebenfalls
eine entfernte Warteschlange 250 umfassen. Die entfernte
Warteschlange 250 kann Nachrichten von mehreren Gateways empfangen
und kann diese Nachrichten an mehrere entfernte Netzwerke bereitstellen,
wie in 3 veranschaulicht wird. Wenn somit der Gateway 240 schnell
genug ist, um Nachrichten für
zahlreiche entfernte Netze zu verarbeiten, können relativ wenige Gateways
Nachrichten in die entfernte Warteschlange 250 eingeben
und eine große
Anzahl von entfernten Netzen Nachrichten von der entfernten Warteschlange 250 empfangen.
Wenn andererseits der Gateway 240 nicht schnell genug ist,
um Nachrichten für
ein einzelnes entferntes Netz zu verarbeiten, kann eine größere Anzahl
von Gateways Nachrichten in die entfernte Warteschlange 250 eingeben
und eine relativ kleine Anzahl von Netzen Nachrichten aus der entfernten
Warteschlange 250 abziehen. Die entfernte Warteschlange 250 kann
eine beliebige Warteschlange sein, die in der Lage ist, die Nachricht 280 zu
empfangen, zu speichern und an das entfernte Netz 260 zu übergeben.
Zum Beispiel kann die nahe Warteschlange 250 auch eine
Warteschlange Microsoft Message Queue (MSMQ), entwickelt von der
Microsoft Corporation, sein.
-
Nachdem
die Nachricht 280 über
ein entferntes Netz 260 oder 261 gesendet wird,
wird sie von einem Zielgerät 270 oder 1271 empfangen.
Dementsprechend umfassen Ausführungsbeispiele
innerhalb des Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen
zum Empfangen der Nachricht 280. Diese Vorrichtung wird
in 2 als ein entferntes Gerät 270 oder 271 gezeigt.
Das entfernte Gerät 270 kann
ein beliebiges drahtloses Gerät
sein, wie zum Beispiel ein Mobiltelefon mit oder ohne alphanumerischer
Textempfangsfähigkeit,
ein Textpager, ein Computerserver, ein Handheld-Computer oder ein beliebiges drahtloses
Gerät.
Das entfernte Gerät 271 kann
ein „verdrahtetes" Gerät sein,
wie zum Beispiel ein Tischcomputer, ein herkömmliches Telefon, ein Computerserver
oder ein beliebiges verdrahtetes Gerät. In dieser Beschreibung und
in den Patentansprüchen
umfasst ein verdrahtetes" Gerät ein beliebiges
Gerät,
das nicht drahtlos ist und das in der Lage ist, eine elektronische
Nachricht zu empfangen.
-
4 ist
ein detaillierteres Schema des Gateways 240 und der Warteschlangen 230 und 250 aus 2.
Ein sendender Message-Handler 404 entfernt die Nachricht 280 aus
der Sende-Warteschlange 230 und übergibt die Nachricht 280 an
einen Mes sage Processor 406. Geräte und Module zum Auslesen
von Daten aus einer Warteschlange und zum Schreiben der Nachricht
in eine andere Einheit sind dem Durchschnittsfachmann bekannt. Der
Message Processor 406 nutzt das Lokator-Modul 408,
um auf Informationen in dem Großspeicher 410 zuzugreifen, nutzt
die Gerätetreiber-Schnittstelle 412,
um eine Kopplung mit einem der Gerätemodule A bis F herzustellen,
die sich in der Gerätetreiber-Bibliothek 414 befinden,
nutzt eine Verschlüsselungs-Schnittstelle 416,
um eine Kopplung mit einem der in der Verschlüsselungs-Bibliothek 418 befindlichen
Verschlüsselungsmodule
A bis F herzustellen, nutzt eine Authentisierungs-Schnittstelle 420,
um eine Kopplung mit einem Authentisierungs-Modul 422 herzustellen und
nutzt eine Netzwerktreiber-Schnittstelle 424, um eine Kopplung
mit einem der Netzwerktreiber-Module von der Netzwerktreiber-Bibliothek 426 herzustellen.
Es ist zu beachten, dass wenngleich die Schnittstellen 408, 412, 416, 420, 424 und 434 als
Kästen dargestellt
sind, sie in Wirklichkeit eine Standardstruktur zum Aufrufen von
Modulen und zum Abrufen von Informationen darstellen. Diese Aufruf-
und Abruffunktionen können
unter Verwendung einer Anwendungsprogramm-Schnittstelle oder API
ausgeführt
werden.
-
Der
spezifische Betrieb eines beispielhaften Gateway 240 wird
nunmehr beschrieben werden. Um die Nachricht 280 an ein
jeweiliges Zielgerät 270 oder 271 (2)
zu leiten, muss die spezifische Adresse des Zielgerätes bestimmt
werden. Dementsprechend umfassen Ausführungsbeispiele innerhalb des
Erfindungsbereiches Vorrichtungen zum Bestimmen einer spezifischen
Adresse des Zielgerätes,
wie zum Beispiel der Geräte 270 oder 271.
Wenn zum Beispiel die zu der Nachricht 280 zugehörige Adresse 281 eine
spezifische Adresse ist, umfasst die Vorrichtung zum Bestimmen der
spezifischen Adresse eine Aktion des Lesens der Adresse 281 durch
den Message Processor 406 und die entsprechende Hardware und/oder
Software, die diese Aktion durchführt.
-
Alternativ
dazu und wenn die zu der Nachricht zugehörige Adresse 281 eine
generische Adresse ist, ist die Vorrichtung zum Bestimmen der spezifischen
Adresse komplexer. Nach dem Lesen der Nachricht 280 sendet
der Message Processor 406 zum Beispiel die Nachricht 280 zusammen
mit der Adresse 281 an das Lokator-Modul 408,
das zu dem Großspeicher 410 zugehörig ist.
Der Großspeicher kann
ein beliebiges geeignetes Gerät
sein, und Beispiele hierfür
sind unter anderem das magnetische Fest plattenlaufwerk 27,
der Systemspeicher 22, die entfernbare Magnetspeicherplatte 29 oder
die entfernbare optische Speicherplatte 31 aus 1.
Die in dem Großspeicher 410 angeordnete
Tabelle ordnet die generische Adresse zu einer spezifischen Adresse
zu.
-
5 zeigt
eine solche Adressentabelle 500. Die beiden linken Spalten 504, 506 geben
generische Parameter, wie zum Beispiel einen Benutzernamen, in der
Spalte 504 und eine allgemeine Gerätebeschreibung in der Spalte 506 an.
Zum Beispiel sind in der Zeile 502 der Adressentabelle 500 die
generischen Parameter „Max
Mustermann" und „Mobiltelefon". Das Lokator-Modul 408 liest
die zu der generischen Adresse zugehörige spezifische Adresse aus
der spezifischen Adressenspalte 508 der Adressentabelle 500 aus.
Wenn zum Beispiel die generische Adresse der Adresse 281 Max
Mustermanns Mobiltelefon ist, wird die aus der Tabelle 500 ausgelesene
spezifische Adresse eine Telefonnummer, wie zum Beispiel 1-800-555-1212,
sein. Das Lokator-Modul 408 übergibt diese spezifische Adresse
an den Message Processor 406. Es kann viele Zeilen der Adressentabelle 500 geben,
von denen eine jede einen zugehörigen
Eintrag aufweist, der eine Entsprechung zwischen einer generischen
Adresse und einer spezifischen Adresse herstellt.
-
Die
entfernten Geräte 270 oder 271 erkennen
nur Daten, die in bestimmten Formaten dargestellt werden. Wenn sich
dieses Format von dem Format der von der sendenden Vorrichtung erzeugten Nachricht 280 unterscheidet,
muss die Nachricht 280 so bearbeitet werden, dass sie in
dem Format vorliegt, das von dem entfernten Gerät 270 oder 271 erkannt
wird. Dementsprechend umfassen Ausführungsbeispiele innerhalb des
Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen zum
Bearbeiten der Nachricht 280 dergestalt, dass die Nachricht 280 in
einem Format vorliegt, das von einem entfernten Gerät, wie zum
Beispiel den Geräten 270 oder 271,
erkannt wird. Ein Beispiel einer solchen Vorrichtung wird auch unter
Bezugnahme auf 4 beschrieben.
-
Die
Vorrichtung zum Bearbeiten der Nachricht 280 kann ausführbaren
Code und/oder Hardware zum Transportieren der Nachricht 280 von Speicherort
zu Speicherort zwischen den einzelnen Bearbeitungen umfassen. In 4 wird
jedoch ein Nachrichtenobjekt 428 verwendet, um die Nachricht 280 in
allen Stufen der Bearbeitung dar zustellen. Das Nachrichtenobjekt 428 kann
zum Beispiel ein abstrakter Datentyp sein. Somit wird ein Speicherort
zu der Nachricht 280 zugeordnet anstelle dass ein Speicherort
einer jeden Bearbeitung der Nachricht 280 zugeordnet wird.
-
Um
die Nachricht 280, die nunmehr in dem Nachrichtenobjekt 428 gespeichert
ist, weiter bearbeiten zu können,
bestimmt der Gateway 240 eine geeignete Kette eines Moduls
oder mehrerer Module, das oder die benötigt wird oder werden, um die
Nachricht ordnungsgemäß zu bearbeiten
und zu leiten. Um diese Kette zu bestimmen, muss das Gerätemodul,
das die Nachricht 280 bearbeiten kann, in einem Format
vorliegen, das von dem entfernten Gerät 270 oder 271 erkennbar
ist. Dementsprechend umfassen Ausführungsbeispiele innerhalb des
Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen zum Identifizieren
des Gerätemoduls.
Es ist zu beachten, dass man mit dem Identifizieren des spezifischen Typs
des entfernten Gerätes
auch das Gerät
identifiziert hat, da die Identität des Gerätemoduls eine hinlänglich bekannte
Assoziation zu der Identität
eines Gerätes
aufweist. Zum Beispiel veröffentlichen
Gerätehersteller
die Namen der Gerätetreiber,
die mit einem jeden ihrer Erzeugnisse arbeiten können, verbreitet über das
Internet.
-
Unter
Bezugnahme auf 4 werden nunmehr Beispiele einer
solchen Vorrichtung zum Identifizieren des Gerätemoduls, das zu einem entfernten Zielgerät 270 zugehörig ist,
beschrieben werden. Wenn die Nachricht 280 bereits eine
spezifische Identifikation eines entfernten Gerätes, wie zum Beispiel des Gerätes 270,
umfasst, kann die Vorrichtung ausführbaren Code und/oder Hardware
zum Durchführen
der Aktion des Identifizierens des Gerätetreibers, der zu der spezifischen
Identifikation des entfernten Gerätes 270 zugehörig ist,
durch einfaches Auslesen der spezifischen Identifikation des entfernten
Gerätes 270 aus
der Nachricht 280 umfassen.
-
Im
anderen Fall, wenn die zu der Nachricht 280 zugehörige Adresse 281 eine
spezifische Adresse ist, übergibt
der Message Processor 406 die spezifische Adresse 281 an
das Lokator-Modul 408, um den spezifischen Typ des entfernten
Gerätes 270 in dem
Großspeicher 410 unter
Nutzung einer Datenstruktur, die eine Identifikationstabelle darstellt,
nachzuschlagen. Alternativ dazu, wenn der Message Processor 406 zuvor
eine generische Adresse an das Lokator-Modul 408 übergeben
hat, kann die aus der Adres sentabelle 500 (5)
ausgelesene spezifische Adresse verwendet werden, um den spezifischen
Typ des entfernten Gerätes 270 nachzuschlagen.
-
6 zeigt
ein Beispiel einer Identifikationstabelle, die verwendet werden
kann, um den spezifischen Typ eines entfernten Gerätes 270 oder 271 nachzuschlagen.
Die linke Spalte 604 gibt die spezifische Adresse des entfernten
Gerätes
an. Die Zeile 602 der Spalte 604 nennt zum Beispiel
die spezifische Adresse 1-800-555-1212, die in Spalte 508,
Zeile 502, der Adressentabelle 500 identifiziert
wird. Es wird ersichtlich sein, dass die Tabellen 500 und 600 in
eine Tabelle integriert werden können,
falls dies gewünscht
wird. Die Spalte 606 gibt den spezifischen Typ des entfernten
Gerätes
an, wie zum Beispiel des Gerätes,
das zu der spezifischen Adresse zugehörig ist, wie zum Beispiel „ABC Alphatext
Phone 50000". Somit
liest das Lokator-Modul 408 den spezifischen Typ des entfernten
Gerätes 270 aus
der Identifikationstabelle 600 aus und übergibt das Ergebnis an den Message
Processor 406. Der Message Processor 406 bestimmt
den Namen des Gerätemoduls
auf der Grundlage der Identifikation des entfernten Gerätes 270 gemäß hinlänglich bekannter
Verfahren, wie zum Beispiel Nachschlagen des Namens des Gerätemoduls
in einer Tabelle. Alternativ dazu kann der Gerätemodulname in der Spalte 606 der
Identifikationstabelle 600 anstelle der Identifikation
des entfernten Gerätes 270 bereitgestellt
werden.
-
Um
die geeignete Treiberkette wie oben beschrieben zu bestimmen, kann
es erforderlich sein, das Netzwerktreibermodul zu identifizieren,
das die Nachricht 280 so bearbeiten kann, dass sie in einem Format
vorliegt, das von dem entfernten Gerät 270 erkannt werden
kann. Dementsprechend umfassen Ausführungsbeispiele innerhalb des
Erfindungsbereiches der vorliegenden Erfindung eine Vorrichtung zum
Identifizieren des Netzwerktreibermoduls. Die Vorrichtung zum Identifizieren
des Netzwerktreibermoduls kann ähnlich
der oben beschriebenen Vorrichtung zum Identifizieren des Gerätemoduls
sein. Nachdem die spezifische Adresse bestimmt wurde, kann zum Beispiel
die Identifikationstabelle genutzt werden, um die spezifische Identifikation
des entfernten Netzwerkes oder die spezifische Identifikation des
entfernten Netzwerktreibermoduls zu bestimmen. Zum Beispiel führt die
Spalte 608 den spezifischen Typ des entfernten Netzwerkes 260 an,
an dem sich das entfernte Gerät 270 befindet,
zum Beispiel Drahtloses Netzwerk XYZ". Somit liest das Lokator-Modul 308 den
spezifischen Typ aus der Spalte 604 und 606 der
Identifikationstabelle 600 aus und übergibt die spezifischen Typen
an den Message Processor 406. Die Namen „ABC Alphatext
Phone 50000" und „Drahtloses
Netzwerk XYZ" sind
fiktiv und sollen kein reales Gerät oder Netzwerk darstellen.
Diese Namen werden lediglich zum Zwecke der Veranschaulichung angeführt.
-
Es
ist zu beachten, dass die Bestimmung der geeigneten Treiberkette
in einem Schritt gleichzeitig mit der Bestimmung des Gerätemoduls
durch Nachschlagen der spezifischen Adresse in der Tabelle 600 aus 6 durchgeführt werden
kann. Dies ermöglicht,
dass das geeignete Gerätemodul,
der geeignete Netzwerktreiber gleichzeitig bestimmt werden können, indem
nur ein Mal auf die Tabelle 600 zugegriffen wird.
-
Die
Identifikationstabelle 600 aus 6 umfasst
weiterhin eine Spalte 610 für Registrierungsdaten. Registrierungsdaten
können
gerätespezifische Informationen
hinsichtlich des Empfangs von Nachrichten an einem entfernten Gerät 270 oder 271 enthalten.
Zum Beispiel können
Registrierungsdaten umfassen, welches Verschlüsselungsverfahren gegebenenfalls
bei dem Verschlüsseln
der Nachricht 280 verwendet werden soll. Dieses Verschlüsselungsverfahren
entspricht dem Verschlüsselungsprogramm,
das auf dem entfernten Gerät 270 vorliegt. Andere
Präferenzen
können
unter anderem sein, welche Anhänge
in der Nachricht 280 ausgelassen werden sollen. Zum Beispiel
kann das entfernte Gerät 270 gegebenenfalls
nicht in der Lage sein, einen Anhang darzustellen.
-
Auf
diese Art und Weise kann der Message Processor 406 die
Identifikation des Gerätemoduls, das
zu einem entfernten Gerät 270 oder 271 zugehörig ist,
die Identifikation des Netzwerktreibermoduls, das zu einem entfernten
Netzwerk 270 oder 271 zugehörig ist, die Identifikation
eines beliebigen zu verwendenden Verschlüsselungsmoduls und die Identifikation
sonstiger Registrierungsdaten, die zu dem Typ eines entfernten Gerätes 270 oder 271 zugehörig sind,
bestimmen.
-
Um
die Kette von Modulen, die für
ein entferntes Gerät 270 oder 271,
ein entferntes Netzwerk 260 oder 261 geeignet
ist, und zugehörige
Präferenzen
nutzen zu können,
umfassen Ausführungsbeispiele
innerhalb des Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen
zum Zugreifen auf das Gerätemodul,
das zu dem entfernten Gerät 270 zugehörig ist.
Nachdem zum Beispiel das geeignete Gerätemodul bestimmt worden ist,
ruft der Message Processor 406 das Gerätemodul aus einer Gerätemodul- Bibliothek 414 über eine
Gerätetreiber-Schnittstelle 412 auf.
Die Nachricht 280 wird danach als das Nachrichtenobjekt 428 über die
Gerätetreiber-Schnittstelle 412 an
das geeignete Gerätemodul übergeben.
Das Gerätemodul
bearbeitet danach die Nachricht 280 so, dass sie in einem
Format vorliegt, das von dem entfernten Gerät 270 erkannt werden
kann, und übergibt
die umformatierte Nachricht 280 über die Gerätetreiber-Schnittstelle 412 als das Nachrichtenobjekt 428 zurück an den
Message Processor 406.
-
Die
Gerätetreiber-Schnittstelle 412 kann zum
Beispiel eine COM-Schnittstelle sein und die Gerätemodule können COM-Module sein. Softwareanwendungen
können
unter Nutzung von Komponenten aufgebaut werden. Eine jede Komponente
ist in der Lage, eine Funktion oder mehrere Funktionen zur Unterstützung der
Softwareanwendung durchzuführen.
COM ist eine Spezifikation zum Aufbauen von Komponenten und zum
Erzeugen von Komponenten aus diesen Komponenten. Ein Vorteil der
Nutzung von COM-Komponenten liegt darin, dass die Komponenten dynamisch
mit der Anwendung verknüpft
werden können,
während
die Anwendung läuft,
indem sie durch die Anwendung aufgerufen werden. Das COM-Modul und
die Anwendung werden über
eine COM-Schnittstelle verknüpft.
Somit kann das geeignete Gerätemodul
dynamisch mit dem Message Processor 406 verknüpft werden,
während
der Message Processor 406 läuft.
-
Es
gibt andere Strukturen und Methoden für das Zugreifen auf das geeignete
Gerätemodul.
Zum Beispiel können
alle Gerätemodule
in der gesamten Gerätetreiber-Bibliothek 414 dauerhaft
mit dem Message Processor 406 verknüpft werden, wodurch die Notwendigkeit
des dynamischen Verknüpfens
des geeigneten Gerätemoduls
beseitigt wird. Alternativ dazu können Gerätetreiber, auf die häufig zugegriffen wird,
dauerhaft mit dem Message Processor 406 verknüpft werden,
während
Gerätemodule,
auf die weniger häufig
zugegriffen wird, über
die COM-Schnittstelle dynamisch verknüpft werden können.
-
Ein
jedes Modul kann durch einen Hersteller eines Gateways oder alternativ
dazu durch einen Hersteller eines entfernten Gerätes bereitgestellt werden.
Gerätemodule,
die einem bestimmten Gerät entsprechen,
sind üblicherweise
von den Herstellern dieses Gerätes
erhältlich.
Die Auslegung der Gerätetreiber-Schnittstelle 412 ist
willkürlich.
Es ist lediglich notwendig, dass das Gerätemodul 414 eine Schnittstelle
exportiert, die mit der Gerätetreiber-Schnittstelle 412 übereinstimmt,
die von der aktuellen Erfindung unterstützt wird.
-
Das
Gerätemodul,
das durch den Message Processor 406 ausgerufen wird und
an das die Nachricht 280 übergeben wird, ist das erste
Modul in der Kette. Die aus der Identifikationstabelle 600 von 6 gewonnenen
Präferenzdaten
können
anzeigen, dass Verschlüsselung
gewünscht
ist. Wenn Verschlüsselung
gewünscht
ist, werden die Präferenzdaten
weiterhin das Verschlüsselungsmodul
innerhalb der Verschlüsselungsmodul-Bibliothek 418 identifizieren,
das auf dem entfernten Gerät 270 verfügbar ist.
Somit umfassen Ausführungsbeispiele
innerhalb des Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen
zum Verschlüsseln
der Nachricht 280. Insbesondere ruft der Message Processor 406 das
identifizierte Verschlüsselungsmodul
der Verschlüsselungsmodul-Bibliothek 418 über die
Verschlüsselungs-Schnittstelle
auf. Wie weiter oben für die
Gerätemodule
beschrieben worden ist, können einige
oder alle Verschlüsselungsmodule
dauerhaft mit dem Message Processor 406 verbunden sein. Die
Funktion des Authentisierungsmoduls 422 wird unten weiter
beschrieben werden.
-
Der
Gateway 240 kann ebenfalls andere Bibliotheken von Modulen 432 umfassen,
die der Message Processor 406 über eine Schnittstelle 434 koppelt.
Zum Beispiel kann der Gateway 240 eine Bibliothek von Kompressionsmodulen
umfassen. Der Kompressionsmodus, der einem bestimmten Typ von entferntem
Gerät 270 oder 271 entspricht,
kann in den Registrierungsdaten identifiziert werden, die aus dem
Lokator-Modul 410 ausgelesen werden. Das geeignete Kompressionsmodul,
das der Kompressionssoftware auf dem entfernten Gerät 270 entspricht, kann
sodann aufgerufen und die Nachricht 280 kann zwecks Komprimierung
an das Kompressionsmodul übergeben
werden.
-
Schließlich, nach
Bearbeitung durch das geeignete Gerätemodul und mögliche Bearbeitung durch
das geeignete Verschlüsselungsmodul und/oder
Kompressionsmodul sowie auf Wunsch durch andere Module, liegt die
Nachricht 280 in einem Format vor, das das entfernte Gerät 270 oder 271 handhaben
kann. Die umformatierte Nachricht wird danach über das entfernte Netzwerk 260 an
ein entferntes Gerät,
wie zum Beispiel das Gerät 270, übergeben.
Das entfernte Netzwerk 260 kann zahlreiche Geräte umfassen,
die unter Verwendung eines spezifischen Protokolls miteinander kommunizieren.
-
Daher
wird die Nachricht 280 unter Verwendung eines Protokolls,
das mit dem entfernten Netzwerk 260 kompatibel ist, über das
entfernte Netzwerk 260 gesendet. Dementsprechend umfassen
Ausführungsbeispiele
innerhalb des Erfindungsbereiches der vorliegenden Erfindung Vorrichtungen
zum Senden der Nachricht 280 unter Verwendung eines Protokolls,
das mit dem entfernten Netzwerk 260 kompatibel ist. Ein
Beispiel einer solchen Vorrichtung wird unter Bezugnahme auf 4 beschrieben.
-
Der
Gateway 240 identifiziert zuerst den Netzwerktreiber, der
zu einem entfernten Gerät 270 oder 271 zugehörig ist.
Der Message Processor 406 greift danach unter Verwendung
der Vorrichtung zum Zugreifen auf ein geeignetes Netzwerktreibermodul für ein entferntes
Gerät auf
den geeigneten Netzwerktreiber zu. Zum Beispiel ruft der Message
Processor 406 das Netzwerktreibermodul über eine Netzwerktreiber-Schnittstelle 424 aus
einer Netzwerktreiber-Bibliothek 426 auf. Die Nachricht 280 wird
danach über
die entfernte Warteschlange 250 an ein entferntes Netzwerk,
wie zum Beispiel das Netzwerk 260, in dem richtigen Protokoll übergeben. Die
Netzwerktreibermodule können
COM-Module sein, und die Netzwerktreiber-Schnittstelle 424 kann ebenso
eine COM-Schnittstelle sein. Schließlich wird die Nachricht an
dem entfernten Gerät 270 empfangen,
und die Nachricht 280 kann durch das entfernte Gerät 270 und
von einem beliebigen Benutzer, der mit dem entfernten Gerät 270 verbunden
ist, interpretiert werden.
-
Unter
Bezugnahme auf 2 ist die sendende Vorrichtung 210 die
sendende Vorrichtung und ist das entfernte Gerät 210 das Zielgerät, wenn
die Nachricht 280 von der nahen Vorrichtung 210 zu
dem entfernten Gerät 270 gesendet
wird. Jedoch können Nachrichten
auch von einem entfernten Gerät 270 oder 271 an
die sendende Vorrichtung 210 gesendet werden. In diesem
Fall ist das Gerät 270 oder 271 die sendende
Vorrichtung und die Vorrichtung 210 ist das Zielgerät. Solche
Nachrichten können
eine Anforderung von Daten, wie zum Beispiel E-Mail-Nachrichten,
Kontakteinträge
oder Kalendereinträge
umfassen. Zusätzlich
kann das Zielgerät 210 ein
entfernter Server sein, der an einer beliebigen Stelle in dem Internet
residiert, wie zum Beispiel ein Instant Messaging Server oder ein
Webserver, oder eine Webseite in dem Fall eines Webservers. Jedoch
kann die Nachricht 280 eine beliebige andere Nachrichtenart sein.
-
Um
eine Nachricht von einer sendenden Vorrichtung 270 oder 271 zu
einem entfernten Gerät 210 zu
senden, erzeugt die sendende Vorrichtung 270 oder 271 zuerst
eine Nachricht in einem besonderen Format. Die Vorrichtung 270 oder 271 sendet
danach diese Nachricht über
das Netzwerk 260 oder 261 unter Verwendung eines
spezifischen Protokolls an die entfernte Warteschlange 250.
Der Gateway 240 entfernt die Nachricht sodann aus der Warteschlange 250 und übergibt
die Nachricht an das Nachrichtenobjekt 428 des Message
Processors 406.
-
Die
Nachricht kann eine spezifische Adresse der Vorrichtung 270 oder 271 zusammen
mit einer Identifikation der Vorrichtung 270 oder 271 umfassen.
Die Nachricht 280 wird an das Lokator-Modul 408 übergeben,
das das richtige Gerätemodul,
das richtige Verschlüsselungsmodul
und beliebige andere Module, die zu der sendenden Vorrichtung 270 zugehörig sind,
bestimmt. Der Message Processor 406 baut danach eine Kette
von Modulen auf, in dem er das geeignete Gerätemodul und beliebige andere Module
nach Gegebenheit aufruft.
-
Entsprechende
Sicherheit kann erlangt werden, indem die Nachricht unter Verwendung
von Verschlüsselungssoftware
von der Vorrichtung 270 oder 271 gesendet wird.
Wahlweise kann ein gewisses Niveau an Sicherheit durch ein Authentisierungsmodul 422 erlangt
werden, auf das der Message Processor 428 über die
Authentisierungs-Schnittstelle 420 zugreifen kann. Das
Authentisierungs-Modul kann ein Passwort überprüfen, das der Vorrichtung 270 oder 271 die
Genehmigung erteilt, auf die in der Nachricht 280 angeforderten
Informationen zuzugreifen.
-
Wenn
dieser Zugriff genehmigt wird, wird die bearbeitete Nachricht danach
durch einen Steckverbinder 430 (zum Beispielein HTTP-Steckverbinder) an
die nahe Warteschlange 230 unter Verwendung des für das Netzwerk 220 geeigneten
Protokolls, wie zum Beispiel des HTTP-Protokolls, gesendet. Die Nachricht
wird danach über
das Netzwerk 220 an das Zielgerät 210 gesendet, wo
die Nachricht verarbeitet werden kann.
-
Wie
oben beschrieben worden ist, verwendet der Message Processor 406 das
Lokator-Modul 408 zum Ermitteln von Adressdaten zu dem
nahen Gerät 210 und
von Präferenzdaten
und Moduldaten zu der Vorrichtung 270 oder 271.
Somit muss der Message Processor 406 nicht auf das Lokator-Modul 408 zugreifen,
um diese Informationen zu bestimmen, wenn er die Antwort auf diese
ankommende Nachricht verarbeitet, wenn von der Annahme ausgegangen
wird, dass der Message Processor 280 die Daten von dem Lokator-Modul 410 hält, bis
die Antwort verarbeitet worden ist, und unter der Annahme, dass
der Message Processor 408 die Antwort als Antwort auf die Nachricht
erkennt.
-
Zusammenfassend
wird ein flexibler Gateway bereitgestellt, der Kommunikation über einen breiten
Bereich von Netzwerken zwischen einem breiten Bereich von Geräten ermöglicht.
Die vorliegende Erfindung kann in anderen spezifischen Formen ausgeführt werden,
ohne dass von ihren wesentlichen Merkmalen abgewichen wird. Die
beschriebenen Ausführungsbeispiele
sind in allen Aspekten als ausschließlich veranschaulichend und nicht
als einschränkend
zu verstehen. Der Erfindungsbereich wird somit in den anhängenden
Patentansprüchen
definiert, nicht jedoch durch die vorstehende Beschreibung. Alle Änderungen,
die in den Äquivalenzbereich
der Patentansprüche
fallen, sollen als in den Geltungsbereich derselben fallend behandelt
werden.