-
Gebiet der
Erfindung
-
Diese
Erfindung bezieht sich auf einen Mitteilungsvermittler zum Liefern
von entferntem Zugriff auf ein Intranet und einen Server, der betreibbar
ist, um ein Intranet und einen Mitteilungsvermittler zu verbinden.
-
Hintergrund
der Erfindung
-
Es
ist häufig
wünschenswert,
dass Informationen, die sich auf einem Intranet befinden, von außerhalb
des Intranets, beispielsweise über
das Internet, verfügbar
sind. Eine Möglichkeit,
dies durchzuführen,
ist es, einen Doppelwebserver außerhalb der Intranet-Firewall
zu haben, der mit diesem Teil der Informationen versehen ist, die
auf dem Intranet gespeichert sind, auf die öffentlicher Zugriff gewünscht wird.
Dies erfordert jedoch notwendiger Weise die Verdopplung der Ressourcen.
Alternativ ist es möglich,
eine Authentifizierung oder einen Passwortschutz auf dem Intranetserver
bereitzustellen, um durch eine Firewall über das Internet Zugriff auf
das Intranet zu ermöglichen.
Es gibt jedoch zwangsläufig ein
inhärentes
Sicherheitsrisiko beim Erlauben von Zugriff von dem Internet direkt
auf ein Intranet durch dieses Verfahren.
-
Ein
Ziel der vorliegenden Erfindung ist das Reduzieren oder Überwinden
des obigen Problems.
-
Die
US-A-6088796 zeigt einen Zugriffserver für eine Stelle außerhalb
einer Firewall und einen Datenbankserver, der innerhalb einer Firewall
angeordnet ist, wobei Anforderungen von dem Internet über den
Zugriffserver empfangen werden und durch eine Verbindung zwischen
einem Mitteilungsübermittlungssystem
auf dem Zugriffserver und einem Benutzeragenten auf dem Datenbankserver
durch die Firewall weitergeleitet werden. Die US-A-6023722 zeigt eine
Mitteilungsübermittlungs-
und Warteschlangenbildungseinheit zum Verteilen von Anforderungen
auf eine einer Mehrzahl von Servereinheiten und Zurücksenden
der Antworten.
-
Zusammenfassung
der Erfindung
-
Gemäß einem
ersten Aspekt der Erfindung ist ein Mitteilungsvermittler zum Liefern
von entferntem Zugriff auf ein Intranet vorgesehen, wobei der Mitteilungsvermittler
einen permanenten Mitteilungskanal, einen Clientadapter und einen
Serverkanaladapter umfasst, wobei der Clientadapter wirksam ist, um
eine Anforderung zu empfangen, die in einem Internetprotokollformat
codiert ist, die Anforderungsinformationen umfasst, um eine Mitteilung,
die Bestimmungsortinformationen und die Anforderungsinformationen
umfasst, in den permanenten Kanal zu platzieren, wobei der Mitteilungsvermittler
wirksam ist, um auf den Empfang einer Anforderung hin einen temporären Mitteilungskanal
einzurichten, wobei der Serverkanaladapter wirksam ist, um eine
Mitteilungsanforderung von dem Intranet zu empfangen, die einem
Internet-Protokoll codiert ist, und den permanenten Kanal identifiziert,
um eine Zieh-Anforderung an den permanenten Kanal zu senden und
eine Mitteilung, die in dem permanenten Kanal enthalten ist, zu
dem Intranet zu übertragen,
eine Mitteilung von dem Intranet, die Antwortinformationen enthält, zu empfangen,
und eine Mitteilung, die Antwortinformationen enthält, in den
temporären
Kanal zu platzieren, wobei der Clientadapter ferner wirksam sein
kann, um eine Zieh-Anforderung an den temporären Kanal zu senden, eine Mitteilung
von dem temporären
Kanal zu empfangen und eine Clientantwort, die in einem Internet-Protokoll
codiert ist, entsprechend zu übertragen.
-
Das
Internet-Protokoll kann HTTP sein.
-
Wenn
die Clientantwort übertragen
wird, kann der Mitteilungsvermittler wirksam sein, um den temporären Kanal
neu zuzuweisen.
-
Der
Mitteilungsvermittler kann wirksam sein, um die Anforderung vor
dem Platzieren der Anforderungs-Informationen in den permanenten
Kanal zu autorisieren.
-
Das
Intranet kann einen Intranet-Webserver umfassen und die Bestimmungsort-Informationen können den
Hostnamen und die Tornummer des Intranet-Webservers umfassen.
-
Gemäß einem
zweiten Aspekt der Erfindung ist ein Serveradapter vorgesehen, der
wirksam ist, um ein Clientsystem, das ein Intranet umfasst, und einen
Mitteilungsvermittler, der einen permanenten Mitteilungskanal aufweist,
zu verbinden, wobei der Serveradapter wirksam ist, um eine Mitteilungs-Anforderung,
die in dem Internet-Protokollformat codiert ist, an den Mitteilungsvermittler
zu senden, die Quellinformation umfasst, die den permanenten Mitteilungskanal
identifizieren, und um eine Antwort von dem Mitteilungsvermittler
zu empfangen, und wenn die Antwort eine Mitteilung umfasst, die
Mitteilung zu lesen, um Anforderungs-Informationen und Bestimmungsort-Informationen
zu identifizieren, die Anforderung an einen Server des Intranets,
der durch die Bestimmungsort-Information identifiziert ist, zu übertragen,
Antwort-Informationen von dem Server ansprechend auf die Anforderung
zu empfangen, und eine Mitteilung, die Antwort-Informationen umfasst, die
in einem Internet-Protokoll codiert sind, an den Mitteilungsvermittler
zu übertragen,
und wo die Antwort eine Ablaufzeit umfasst, eine weitere Mitteilung, die
Quellinformation umfasst, die den permanenten Mitteilungskanal identifiziert,
an den Mitteilungsvermittler zu senden.
-
Die
Serveradapter-Bestimmungsortinformationen können den Hostnamen und die
Tornummer des Intranet-Servers umfassen.
-
Das
Serveradapter-Internet-Protokoll kann HTTP umfassen.
-
Beschreibung
der Zeichnungen
-
Die
Erfindung wird nun beispielhaft mit Bezugnahme auf die beiliegenden
Zeichnungen beschrieben. Es zeigen:
-
1 eine
schematische Darstellung eines Internetkommunikationssystems, das
einen Mitteilungsvermittler umfasst,
-
2 ein
Diagramm des Betriebs des Systems von 1,
-
3 eine
Darstellung eines Internetkommunikationssystems, das einen weiteren
Mitteilungsvermittler umfasst,
-
4 eine
Darstellung eines Internetkommunikationssystems, das einen Mitteilungsvermittler darstellt,
der die vorliegende Erfindung umfasst, und
-
5 eine
schematische Darstellung eines weiteren Internetkommunikationssystems.
-
Beschreibung
der bevorzugten Ausführungsbeispiele
-
Mit
Bezugnahme auf 1 ist ein Mitteilungsvermittler
allgemein bei 10 angezeigt, der wirksam ist, um Mitteilungen
zwischen einem ersten Clientsystem 11 und einem zweiten
Clientsystem 12 weiterzuleiten. Bei diesem Beispiel sind
der Mitteilungsvermittler 10, das erste Clientsystem 11 und
das zweite Clientsystem 12 über Internetverbindungen verbunden,
die durch Pfeile 13 bzw. 14 gezeigt sind. Das
erste Clientsystem 11 umfasst ein Herausgeber-Modul, das
allgemein bei 15 angezeigt ist, das Mitteilungs-Informationen
erzeugt, die zu dem Clientsystem 12 weitergeleitet werden sollen.
Das erste Clientsystem ist mit einem Übertragungsmodul 16 versehen,
um die Mitteilungsinformationen von dem Herausgeber-Modul 15 zu
empfangen und dieselben über
die Internetverbindung 13 an den Mitteilungsvermittler 10 weiterzuleiten.
Das erste Clientsystem 11 ist auch mit einer Firewall 17 versehen,
durch die alle Kommunikationen zwischen dem Clientsystem 11 und
dem Internet verläuft
und das bei dem vorliegenden Beispiel eingestellt ist, um ankommende HTTP-(HyperText-Transfer-Protokoll)
Anforderungen zu blockieren. Auf ähnliche Weise umfasst das zweite
Clientsystem 12 ein Teilnehmermodul 18, das wirksam
ist, um Mitteilungen von dem ersten Clientsystem 11 zu
empfangen. Das zweite Clientsystem 12 ist mit einem Empfängermodul 19 versehen,
das wirksam ist, um Mitteilungen über die Internetverbindung 14 und
eine Firewall 20, die eingestellt ist, um alle ankommenden
HTTP-Anforderungen zu blockieren, von dem Mitteilungsvermittler 10 zu
empfangen. Das Teilnehmermodul 18 empfängt Befehle, um eine Mitteilungsanforderung
von einem Rückaufrufmodul 21 zu
senden.
-
Das
erste Clientsystem 11 und das zweite Clientsystem 12 bei
dem vorliegenden Beispiel umfassen Intranets des herkömmlichen
Typs, die mit Zugriff zu dem Internet durch jeweilige Firewalls 17, 20 versehen
sind, obwohl es offensichtlich ist, dass die Clientsysteme je nach
Wunsch jedes geeignete System umfassen können.
-
Der
Mitteilungsvermittler 10 umfasst einen Webserver mit einer
Mehrpfad-Servletmaschine 10a. Der Mitteilungsvermittler 10 ist
mit einem ersten Kanaladapter, der bei diesem Ausführungsbeispiel
ein erstes Kanaladapter-Servlet 22 umfasst, einem zweiten
Kanaladapter, der bei diesem Ausführungsbeispiel ein zweites
Kanaladapter-Servlet 23 umfasst, und einer Mehrzahl von
Kanälen 24 versehen,
die jeweils durch das erste Kanaladapter-Servlet 22 und das
zweite Kanaladapter-Servlet 23 adressierbar sind. Bei dem
vorliegenden Beispiel sind die Kanaladapter 22, 23 Servlets,
die innerhalb eines Pfads laufen, der durch die Servletmaschine 10a zugewiesen ist,
um ankommende HTTP-Anforderungen
zu verarbeiten. Die Servlets 22, 23 sind wirksam,
um entsprechend zu laufen, um eine „Drück"- oder „Zieh"-Operation durchzuführen, um Mitteilungen in den
Kanal 24 zu platzieren bzw. Mitteilungen von dem Kanal 24 zu
entfernen.
-
Mit
Bezugnahme auf 1 und 2 funktioniert
das Kommunikationssystem wie folgt. Das Teilnehmermodul 18 ist
angewiesen, um das Rückaufrufmodul 21 beim
Auftreten einer neuen Mitteilung aufzurufen. Das Teilnehmermodul 18 sendet
einen Teilnahmebefehl 26 an das Empfängermodul 19. Der Teilnahmebefehl 26 enthält Quellinformationen,
die einem Mitteilungskanal entsprechen, um den Mitteilungsvermittler 21 zu
aktivieren, um eine geeignete Kommunikationsverbindung herzustellen.
Das Empfängermodul 19 erzeugt
eine Mitteilungs-Anforderung 27 in der Form einer HTTP-GET-Anforderung, einschließlich der
Quellinformationen von dem Teilnehmerbefehl 26. Die HTTP-GET-Anforderung
wird über
die Internetverbindung 14 zu dem Mitteilungsvermittler 10 übertragen.
Auf herkömmliche
Weise empfängt
die Mitteilungsvermittler-Servletmaschine 10a die HTTP-Anforderung
und führt
das zweite Kanaladapter-Servlet aus, wie es in der HTTP-Anforderung
spezifiziert ist. Das Servlet 23 verarbeitet dann die HTTP-Anforderung
durch Lesen der GET-Anforderung 27,
um die Quellinformationen zu erhalten, um den relevanten Kanal zu
identifizieren. Bei dem vorliegenden Beispiel sind die Quellinformationen einfach
ein Kanal-Identifikationsname
oder eine Kanal-Identifikationsnummer.
-
Sobald
ein Kanal identifiziert wurde, in diesem Fall der Kanal 28,
führt das
zweite Kanaladapter-Servlet 23 eine Zieh-Operation 29 durch,
um zu versuchen, ein Ereignis von dem Kanal 28 zu ziehen. Wo
kein Ereignis gefunden wird, d.h. keine Mitteilung in den Kanal 28 platziert
wurde, wird durch das zweite Kanaladapter-Servlet 23 keine
Antwort gesendet, bis bei dem vorliegenden Beispiel eine vorbestimmte Zeitperiode
verstrichen ist. Da die Zieh- Anforderung bei
dem vorliegenden Beispiel durch ein Servlet 23 durchgeführt wird,
wird der Pfad, der das Servlet 23 ausführt, falls es keine Information
in dem identifizierten Kanal gibt, „schlafen", bis die Standard-Ablaufzeitperiode
verstreicht oder eine Benachrichtigung eines Mitteilungs„Drück-Vorgang" empfangen wird. Sobald
die vorbestimmte Zeitperiode verstrichen ist, wird der Pfad, der
das Servlet 23 ausführt,
auf herkömmliche
Weise aufgeweckt. Das zweite Kanaladapter-Servlet 23 sendet
dann eine Standardzeitablaufantwort an das Empfängermodul 20. Bei
diesem Beispiel wird die Standard HTTP-Zeitablauf-Fehlermitteilung,
Code 504, als die HTTP-GET-Antwort 31 gesendet.
Auf den Empfang der Zeitablaufantwort 31 hin überträgt das Empfängermodul 19 dann
sofort wieder eine GET-Anforderung 27', und das zweite Kanaladapter-Servlet 23 wird
auf den Empfang der HTTP-GET-Anforderung 27' hin erneut versuchen, eine Mitteilung
von dem Kanal 28 zu ziehen. Dieser zyklische Prozess der Übertragung
einer GET-Anforderung des Empfängermoduls 20 zu
dem zweiten Kanaladapter-Servlet 23, des Empfangens einer Zeitablaufantwort 31 und
der Neuübertragung
einer GET-Anforderung 27 kann unendlich fortgesetzt werden,
bis eine Mitteilung empfangen wird.
-
Um
eine Mitteilung über
den Mitteilungsvermittler 10 zu senden, erzeugt das Herausgeber-Modul 15 des
ersten Clientsystems 11 Mitteilungsinformationen, die Bestimmungsortinformationen
und Inhaltsinformationen, d. h. den Körper der Mitteilung, umfassen
und leiten diese Mitteilung als einen Herausgabebefehl 32 an
das Übertragungsmodul 16. Das Übertragungsmodul 16 erzeugt
eine Mitteilung 33 in der Form einer HTTP-POST-Anforderung
und überträgt diese
Informationen über
die Firewall 17 und die Internetverbindung 13 zu
dem Mitteilungsvermittler 10. Die Mitteilung 33 wird
durch die Mitteilungsvermittler-Servletmaschine 10a empfangen,
die das erste Kanaladapter-Servlet 23 ausführt, wie
es in der HTTP-Anforderung spezifiziert ist. Das Servlet 22 verarbeitet
dann die HTTP-Anforderung durch Lesen der Bestimmungsortinformationen
und identifiziert den geeigne ten Kanal, in den die Mitteilung platziert werden
sollte. Bezüglich
der GET-Anforderungs-Quellinformationen sind bei dem vorliegenden Beispiel
die Bestimmungsortinformationen einfach ein Kanal-Identifikationsname
oder eine Kanal-Identifikationsnummer.
Falls kein solcher Kanal existiert, kann das erste Kanaladapter-Servlet 22 den
Kanal dynamisch erzeugen, d. h. den Kanalnamen einem der Mehrzahl
von Kanälen 24 zuweisen.
Bei diesem Beispiel ist der Kanal 28 identifiziert und
das Servlet 22 führt
eine Drück-Operation 34 durch,
um die Mitteilung auf den identifizierten Kanal zu platzieren. Das
erste Kanaladapter-Servlet 22 sendet dann eine Benachrichtigung 35 an
jeden Pfad, der auf diesen Kanal hört, bei diesem Beispiel das
zweite Kanaladapter-Servlet 23.
-
Mit
Bezugnahme auf 2 hat die Drück-Operation 34 innerhalb
der vorbestimmten Zeitablaufperiode von der Zieh-Operation 29' die Mitteilung in den Kanal 28 platziert.
Das zweite Kanaladapter-Servlet 23 empfängt die Benachrichtigung 35 und
wirkt, um die Mitteilung von dem Kanal 28 zu ziehen. Das
zweite Kanaladapter-Servlet 23 überträgt dann eine Standard-Antwort
an die HTTP-GET-Anforderung 36, einschließlich zumindest
der Inhaltsinformationen der Mitteilung 32. Bei diesem
Beispiel überträgt das Empfängermodul 20 dann
eine neue Ereignisbenachrichtigung 37 an das Rückaufrufmodul 21,
einschließlich
der Mitteilungs-Inhaltsinformationen
als Teil des Arguments als Teil der neuen Ereignisbenachrichtigung 37.
Bei diesem Beispiel überträgt das zweite
Empfängermodul 20 dann
eine neue HTTP-GET-Anforderung 27'', das zweite Kanaladapter-Servlet 23 überträgt dann
eine weitere Zieh-Anforderung 29'' und
der Zyklus wird fortgesetzt.
-
Das
beschriebene Kommunikationssystem ist besonders geeignet beim Ermöglichen
eines plattformübergreifenden
Betriebs und ist nach Wunsch auf jede Anzahl von Clientsystemen 11, 12 skalierbar. Der
wiederholte GET-Anforderung/GET-Antwort-Zyklus ermöglicht es somit, dass eine
herausgegebene Mit teilung durch den Empfänger beinahe in Echtzeit wiedergewonnen
wird, und die Verwendung des HTTP-Protokolls, um Mitteilungen zu übertragen
und zu empfangen, ermöglicht
es, dass die Mitteilungen durch die jeweiligen Firewalls 17, 20 hindurchgehen.
-
Bei
dem aktuellen HTTP-Protokoll ist jedoch eine Zeitablaufantwort automatisch
vorgesehen. Die Zeitablaufantwort 30 kann vorteilhafter
Weise als „Herzschlag"-Antwort gesehen
werden, die den fortlaufenden Betrieb des Mitteilungsvermittlers 10 anzeigt.
-
Bei
einer alternativen Implementierung kann es in Betracht gezogen werden,
dass die Funktionalität
der Servlets 22, 23 statt dessen auf Sockelebene implementiert
wird. Ein Pfad, der eine HTTP-PUT-Anforderung verarbeitet, prüft, ob dem
Mitteilungskanal eine Sockelverbindung zugeordnet ist. Falls ja,
wird die Mitteilung einfach unter Verwendung der Sockelverbindungs-Informationen
an das Clientsystem gesendet und dann wird die Sockelverbindung
entfernt. Falls es keine Sockelverbindung gibt, wird die Mitteilung
wie oben erörtert
in dem Mitteilungskanal gespeichert. Um eine Mitteilung wiederzugewinnen, prüft ein Pfad,
der eine HTTP-GET-Anforderung
verarbeitet, den spezifischen Mitteilungskanal. Falls eine Mitteilung
in dem Mitteilungskanal gespeichert ist, wird dieselbe in das Clientsystem
zurückgesendet.
Andernfalls wird die Sockelverbindung als Information gespeichert,
die dem Mitteilungskanal und einer Zeitablaufspezifikation, die
in eine Zeitwarteschlange platziert ist, zugeordnet ist. Falls eine
Mitteilung in den Kanal gedrückt
wird, bevor die Ablaufzeit auftritt, sendet der Pfad, der die HTTP-PUT-Anforderung
verarbeitet, die Mitteilung einfach unter Verwendung der Sockelverbindungsinformationen
an den Klient, wie es oben erörtert
ist. Im Falle eines Zeitablaufs wird der Pfad, der dem Zeitablauf
zugeordnet ist, aufwachen und den Mitteilungskanal-Identifikationsnamen
oder die Mitteilungskanal-Identifikationsnummer
wiedergewinnen, die dem Zeitablauf zugeordnet ist. Falls dem Mitteilungskanal
nach wie vor Sockelverbindungs-Informationen zugeordnet sind, wird
unter Verwendung der Sockelverbindung eine Zeitablaufantwort an
das Clientsystem gesendet und dann werden die Sockelverbindungsinformationen entfernt.
Falls dem Mitteilungskanal keine Sockelverbindungsinformationen
zugeordnet sind, zeigt dies an, dass in der Zwischenzeit eine Mitteilung
an ein Clientsystem gesendet wurde. Dann wird keine Aktion durchgeführt und
der Pfad kehrt zu dem Anfang des Prozesses zurück.
-
Es
ist klar, dass beispielsweise für
Sicherheit gesorgt werden kann, je nach Wunsch durch Verwenden sicherer
http- (HTTPS-),
Mitteilungspermanentspeicher- und Bestätigungs-Protokolle.
-
Damit
eine Mitteilung durch den Mitteilungsvermittler 10 übertragen
werden kann, ist klar, dass sowohl das erste Clientsystem 11 als
auch das zweite Clientsystem 12 den Kanal-Identifikationsnamen oder
die Kanal-Identifikationsnummer des entsprechenden Mitteilungskanals
kennen müssen.
Für eine sichere
Kommunikation ist auch klar, dass der Kanal-Identifikationsname
oder die Kanal-Identifikationsnummer keiner dritten Partei bekannt
sein dürfen. Der
Kanal-Identifikationsname oder die Kanal-Identifikationsnummer können zwischen
dem ersten Clientsystem 11 und dem zweiten Clientsystem 12 durch
jede Einrichtung nach Wunsch eingerichtet werden. Das zweite Clientsystem 12 kann
beispielsweise eine Anforderung an den Mitteilungsvermittler 10 senden,
für einen
Kanal für
die Kommunikation mit dem ersten Clientsystem 11. Der Mitteilungsvermittler 10 kann
dann einen Kanal zuweisen und einen geeigneten Kanal-Identifikationsnamen
oder eine geeignete Kanal-Identifikationsnummer über eine
sichere Verbindung zu dem ersten Clientsystem 11 und dem
zweiten Clientsystem 12 senden. Alternativ, wo es eine
andere Kommunikationsverbindung zwischen dem ersten Clientsystem 11 und
dem zweiten Clientsystem 12 gibt, kann das erste Clientsystem 11 den Kanal-Identifikationsnamen
oder die Kanal-Identifikationsnummer einfach an das zweite Clientsystem 12 übertragen.
Wie es oben hierin erörtert
wurde, falls ein erstes Clientsystem eine Mitteilung an den Mitteilungsvermittler 10 sendet,
falls kein Kanal mit der Kanal-Identifikationsnummer oder dem Kanal-Identifikationsnamen
existiert, wird derselbe automatisch erzeugt und das andere Clientsystem 12 ist
dann in der Lage, eine GET-Anforderung zu senden, die den Kanal-Identifikationsnamen
oder die Kanal-Identifikationsnummer umfasst. Es kann auch in Betracht
gezogen werden, dass der Mitteilungsvermittler einen Adress-Informationsspeicher 25 umfassen
könnte,
der Adress-Informationen
enthalten könnte,
beispielsweise die Adressen der Clientsysteme 11, 12 und,
falls erforderlich, entsprechende Kanal-Identifikationsinformationen.
-
Ein
Mitteilungsvermittler kann verwendet werden, um eine bidirektionale
Kommunikation herzustellen, wie es in 3 gezeigt
ist. Zwei Kanäle, 28', 28'' sind zugeteilt, um eine Zweiweg-Kommunikationsverbindung
zwischen einem ersten Clientsystem 11' und einem zweiten Clientsystem 12' herzustellen.
Bei diesem Beispiel sind das erste Clientsystem 11' und das zweite
Clientsystem 12' mit
Herausgeber/Teilnehmermodulen 15', 18' versehen, die die Funktionen der
oben ausgeführten
Module 15 und 18 durchführen. Gleichartig dazu umfassen
die Clientsysteme 11', 12' Sende/Empfängermodule 16', 19', die die Funktionalität der beiden
oben beschriebenen Module 16 und 19 haben. Ein
Mitteilungsvermittler 10' ist
mit einem ersten kombinierten Kanaladapter 40 und einem
zweiten kombinierten Adapter 41 versehen. Der erste kombinierte
Kanaladapter 40 umfasst ein erstes Adapterelement 22', das wirksam
ist, um Mitteilungen auf den Kanal 28' zu drücken, auf gleiche Weise wie
das erste Kanaladapter-Servlet 22, und ein zweites Adapterelement 23', das wirksam ist,
um Mitteilungen von dem Kanal 28'' zu
ziehen, auf die gleiche Weise wie das oben beschriebene zweite Kanaladapter-Servlet 23.
Gleichartig dazu umfasst das zweite kombinierte Kanaladapter-Modul 41 ein erstes
Adapterelement 22'', das angepasst
ist, um die Mitteilungen auf den Kanal 28'' zu
drücken, auf
gleiche Weise wie das oben beschriebene erste Kanaladapter-Servlet 22,
und ein zweites Adapterelement 23'',
das wirksam ist, um Mitteilungen von dem Kanal 28' zu ziehen,
auf die gleiche Weise wie das oben beschriebene zweite Kanaladapter-Servlet 23.
Unter Verwendung einer solchen Anordnung ist jedes Clientsystem 11', 12' wirksam, um
Mitteilungen über
den Mitteilungsvermittler 10' sowohl
zu senden als auch zu empfangen, unter Verwendung des Verfahrens,
wie es oben mit Bezugnahme auf 1 beschrieben
ist. Weil das System von 3 transparent gemacht werden
kann, ist klar, dass jedes geeignete Kommunikationsprotokoll durch
die Clientsysteme 11', 12' verwendet werden
kann.
-
Es
ist klar, dass ein solches Kommunikationssystem viele potentielle
Anwendungen findet. Zwei beispielhafte Anwendungen werden nachfolgend
beschrieben, obwohl klar ist, dass die potentiellen Anwendungen
nicht auf diese beiden Beispiele beschränkt sind.
-
Mit
Bezugnahme auf 4 ist ein Mitteilungsvermittler,
der die Erfindung umfasst, bei 40 angezeigt und ist beim
Betrieb ähnlich
wie der Mitteilungsvermittler von 1 bis 3.
Ein erstes Clientsystem ist bei 41 gezeigt und ein zweites
Clientsystem bei 42. Bei diesem Beispiel umfasst das erste Clientsystem 41 einen
Computer, der mit einem Browser 41a des herkömmlichen
Typs versehen ist, der über
eine Firewall 43 und eine Internetverbindung 44 mit
dem Mitteilungsvermittler 40 verbindet. Das zweite Clientsystem 42 umfasst
einen Intranet-Webserver 45 und einen HTTP-Serveradapter 46,
der wirksam ist, um den Intranetwebserver 45 zu adressieren,
und auch um über
eine Firewall 47 und eine Internetverbindung 48 mit
dem Mitteilungsvermittler 40 zu verbinden.
-
Der
Mitteilungsvermittler 40 umfasst einen HTTP-Clientadapter 49 und
einen Serverkanaladapter 50. Ein Adressinformationsspeicher 51 ist
ebenfalls vorgesehen. Zwei Kanäle
sind durch den Mitteilungsvermittler 40 zugeordnet, um
eine Verbindung zwischen dem ersten Clientsystem 41 und
einem zweiten Clientsystem 42 zu bilden. Ein erster permanenter
Kanal 52 ist wirksam, um Mitteilungen von dem HTTP-Clientadapter
zu empfangen, wie es hierin oben erörtert ist. Der Mitteilungsvermittler 40 weist auch
einen zweiten temporären
Kanal 53 zu, um Mitteilungen von dem Serverkanaladapter 50 zu
empfangen. Der Serverkanaladapter 50 umfasst ein erstes
Adapterelement 54a, das wirksam ist, um Mitteilungen von
einem Kanal 52 zu ziehen, auf gleiche Weise wie das hierin
oben beschriebene zweite Adaptermodul 23. Der Serverkanaladapter 50 umfasst ein
zweites Adapterelement 54b, das wirksam ist, um Mitteilungen
auf den Kanal 53 zu drücken,
auf gleiche Weise wie das hierin oben beschriebene erste Adaptermodul 22.
Der HTTP-Clientadapter 49 ist wirksam, UM Mitteilungen
auf den permanenten Kanal 52 zu drücken, und Mitteilungen von
dem temporären
Kanal 53 zu ziehen. Der Clientadapter 49 ist auch
mit einem Authentifizierungselement 55 versehen.
-
Das
System funktioniert wie folgt. Eine HTTP-GET-Anforderung wird auf herkömmliche
Weise durch den Browser 41a erzeugt und über die
Firewall 43 und die Internetverbindung 44 zu dem
Mitteilungsvermittler 40 gesendet, wo dieselbe durch den HTTP-Clientadapter 49 verarbeitet
wird. Die HTTP-GET-Anforderung kann einen URL auf herkömmliche
Weise umfassen. Wo die Informationen auf dem ersten Clientsystem 41 verfügbar sind,
können
dieselben alternativ zusätzliche
Bestimmungsortinformationen umfassen, wie z. B. den Hostnamen und
die Tornummer des Bestimmungsort-Intranetwebservers
oder Kanalinformationen. Solche Informationen können in einem Cookie 56 auf
dem ersten Clientsystem 41 gespeichert sein oder können von dem
Adress-Informationsspeicher 51 wiedergewonnen
werden. Die HTTP-GET-Anforderung
von dem Browser 41a darf selbstverständlich auf herkömmliche
Weise durch die Firewall 43 verlaufen.
-
Der
HTTP-Clientadapter 49 kapselt die Klient-Anforderung in
HTTP-Form ein, mit dem Bestimmungsort-Hostnamen und der Tornummer
in dem Mitteilungsanfangsblock hinzugefügt.
-
Die
Mitteilung wird in den permanenten Kanal 52 gedrückt. Der
HTTP-Serveradapter 46 und das erste Adapterelement 54a des
Serveradapters überwachen
den permanenten Kanal 52 fortlaufend auf gleiche Weise
wie der zweite Kanaladapter 23 von 1. Wenn
somit eine Mitteilung in den permanenten Kanal 52 gedrückt wird,
wird dieselbe wiedergewonnen und durch die Firewall 47 zu
dem HTTP-Serveradapter 46 gesendet. Der HTTP-Serveradapter 46 extrahiert
die HTTP-Klient-Anforderung
und den Bestimmungsorthostname und die Tornummer und sendet die
HTTP-Anforderung an den Intranet-Webserver,
der durch den Hostnamen und die Tornummer identifiziert wird.
-
Der
Intranet-Webserver 45 sendet eine Standard-HTTP-GET-Antwort an den HTTP-Serveradapter 46 zurück. Der
Hostname und die Tornummer des Intranet-Webservers werden durch
den Hostnamen und die Tornummer des Mitteilungsvermittlers ersetzt.
Die Antwort wird über
die Firewall 47 und die Internetverbindung 48 an
den Mitteilungsvermittler 40 gesendet. Das zweite Adapterelement 54 drückt die
Antwort in den temporären
Kanal 53. Der HTTP-Clientadapter 49 zieht die
Mitteilung von dem temporären
Kanal 53 und gewinnt die HTTP-Antwort wieder. Die HTTP-Antwort
wird syntaktisch analysiert und geändert, so dass die Intranet-Webserver-Adresse, die in dem
absoluten URL gefunden wird, durch einen entsprechenden Mitteilungsvermittler-URL
ersetzt wird, und dann über
die Internetverbindung 44 und eine Firewall 43 auf
herkömmliche
Weise an den Browser 41a gesendet wird. Die Mitteilungsvermittlerdomain
wird für
zukünftige
Verwendung als ein Cookie 56 in dem Browser 41a gespeichert.
-
Die
Anforderung und Antwort, die über
die Internetverbindung 48 übertragen werden, können nach
Wunsch verschlüsselt
oder durch eine geeignete Einrichtung gesichert sein, bei dem vorliegenden Beispiel
unter Verwendung des Sicherheitssockelschicht-(SSL-)Protokolls.
Der Mitteilungsvermittler 40 kann Authentifizierung und
Autorisierung liefern, bevor die Anforderung an den Intranet-Webserver 45 gesendet
wird und so einen sicheren Zugriff auf den Intranet-Server 45 durch
die Firewall 47 bereitstellen.
-
Sobald
die Antwort durch den HTTP-Clientadapter 49 von dem temporären Kanal 53 gezogen wurde,
weist der Mitteilungsvermittler 40 den temporären Kanal 53 neu
zu und macht denselben für
andere Mitteilungen verfügbar.
-
Der
HTTP-Clientadapter 49 hat eine ähnliche Funktionalität wie das
kombinierte Adaptermodul 38, aber mit den zusätzlichen
Funktionen des Einkapselns der HTTP-Klient-Anforderung und des Lieferns
von Authentifizierung und Autorisierung. Der Browser 42 kann
aktiviert werden, um auf den Intranet-Webserver zuzugreifen, durch Bereitstellung
eines geeigneten Cookies, das die notwendigen Informationen an den
HTTP-Clientadapter 49 liefert,
beispielsweise als ein Teil des Cookies 56. Das Cookie könnte elektronisch
unterzeichnet werden durch den Anbieter des Intranetwebservers 45,
so dass der Benutzer des Browsers 42 das Cookie 56 gerne
auf seinem Computer installiert.
-
Obwohl
der Mitteilungsvermittler 40 bezüglich des Systems von 1 bis 3 beschrieben wurde,
ist klar, dass ein solcher entfernter Zugriff zu einem Intranet
unter Verwendung jedes geeigneten Mitteilungsvermittlersystems durchgeführt werden könnte, das
wirksam ist, um eine HTTP-Anforderung von
einem ersten Clientsystem zu empfangen und die Anforderung ansprechend
auf eine HTTP-Anforderung weiterzuleiten, die von dem zweiten Clientsystem
empfangen wird.
-
Eine
Anwendung eines Mitteilungsvermittlers ist in 5 gezeigt
und bezieht sich auf eine entfernte Steuerung einer Vorrichtung über das
Internet unter Verwendung eines Mitteilungsvermittlers. Eine geeignete
Konfiguration ist in 5 gezeigt. Ein Mitteilungsvermittlersystem 60 ist
gezeigt, das auf gleiche Weise arbeitet wie der Mitteilungsvermittler 10' von 3.
Bei diesem Beispiel ist ein erstes Clientsystem 61 gezeigt,
das einen geeigneten Netzwerkserver umfasst, der eine Firewall 62 und
eine Internetverbindung 63a umfasst. Zumindest ein PC 64 und
ein Drucker 65 sind mit dem ersten Clientsystem 61 verbunden.
Das erste Clientsystem 61 ist auch mit einem Vorrichtungskommunikationsmobiltelefon
versehen, das ein entferntes Diagnoseunterstützungstool (RDST) 66 umfasst.
Das entfernte Diagnoseunterstützungstool 66 ist
wirksam, um mit dem Drucker 65 zu kommunizieren, bei dem
vorliegenden Beispiel unter Verwendung einer Standardperipheriemetasprache
(PML).
-
Das
zweite Clientsystem 67 umfasst ein entferntes System, das
Zugriff zu dem Drucker 65 erfordert, beispielsweise eine
technische Unterstützungsagentur.
Das zweite Clientsystem 67 umfasst eine Firewall 68,
ein entferntes Steuermodul 69 und eine Internetverbindung 63b.
Zumindest ein PC 70 ist mit dem zweiten Clientsystem 67 verbunden.
-
Der
Drucker 65 ist bei diesem Beispiel mit einem Steuerbedienfeld 65a des
herkömmlichen
Typs versehen. Unter Verwendung des Steuerbedienfelds 65a kann
ein Benutzer die Druckerkonfiguration prüfen und variieren. Das Steuerbedienfeld 65a kann auch
durch das entfernte Diagnose-Unterstützungstool 66 unter
Verwendung von PML adressiert werden.
-
Wenn
es gewünscht
wird, das zweite Clientsystem 67 mit entferntem Zugriff
zu dem Drucker 65 zu versehen, wird das entfernte Diagnoseunterstützungstool 66 von
dem PC 64 aktiviert, um den Drucker 65 zu adressieren
und eine Verbindung über
die Internetverbindung 63 herzustellen. Der Mitteilungsvermittler 60 stellt
einen bidirektionalen Kommunikationskanal her, der Mitteilungskanäle 60a, 60b umfasst,
wie es hierin oben mit Bezugnahme auf 3 beschrieben
ist. Der PC 70 sendet einen Vorrichtungsbefehl an das entfernte
Steuermodul 69. Das entfernte Steuermodul erzeugt eine
Mitteilung, die als ein HTTP-Befehl codiert ist, die je nach Bedarf den
Vorrichtungsbefehl, Bestimmungsortinformationen, die den Mitteilungskanal 60a identifizieren,
und auch Vorrichtungsinformationen umfasst. Die entfernte Steuervorrichtung 69 sendet
dann die Mitteilung durch die Firewall 68 und den Mitteilungsvermittler 60 an
das entfernte Diagnoseunterstützungstool 66.
Das entfernte Diagnoseunterstützungstool 66 überträgt den Vorrichtungsbefehl
an den Drucker 65. Der Drucker 65 kann Vorrichtungs-Informationen zurücksenden,
bei diesem Beispiel das Druckerfabrikat, die Seriennummer und Konfiguration.
Das RDST 66 codiert dann die Vorrichtungsinformationen
als eine HTTP-PST-Anforderung, einschließlich Bestimmungsortinformationen,
die dem Mitteilungskanal 60b entsprechen und überträgt diesen
Befehl über den
Mitteilungsvermittler 60 an das entfernte Steuermodul 69.
Diese Druckerinformationen werden dann zu dem PC 70 übertragen.
Es kann in Betracht gezogen werden, dass die Druckerinformationen
als ein simuliertes Steuerbedienfeld angezeigt werden, beispielsweise
eine Anzeige 71. Die Bedienungsperson des PC 70 ist
dann in der Lage, weitere geeignete Vorrichtungsbefehle zu senden,
beispielsweise um den Drucker neu zu konfigurieren oder eine entsprechende
Software-Aktualisierung über
die entfernte Steuerung 69 und das entfernte Diagnose-Unterstützungstool 66 an
den Drucker 65 zu senden. Die aktualisierte Druckerkonfiguration
kann dann durch das entfernte Diagnoseunterstützungstool 66 wiedergewonnen
werden und wie vorher wieder zu der entfernten Steuerung 69 gesendet
werden. Es kann beispielsweise auch in Betracht gezogen werden,
dass aktualisierte Treibersoftware an den PC 64 gesendet wird.
Sobald die Sitzung geendet hat, werden die Verbindungen 63a, 63b zu
dem Mitteilungsvermittler 60 fallengelassen. Eine solche
Anordnung ermöglicht eine entfernte
Steuerung des Druckers 65 über das Internet beinahe in
Echtzeit.
-
Es
ist klar, dass diese Konfiguration verwendet werden kann, um entfernte
Steuerung jeder geeigneten Vorrichtung über das Internet zu liefern,
und nicht notwendigerweise lediglich eines Druckers.
-
Es
ist klar, dass entsprechende Authentifizierung und Sicherheit an
jedem relevanten Punkt des Systems bereitgestellt sein können. Ein
Grundsicherheitsmerkmal ist, dass der Benutzer des PC 64 das entfernte
Diagnoseunterstützungstool 66 aktivieren muss,
um einen Kommunikationskanal zu öffnen,
bevor das zweite Clientsystem 67 entfernten Zugriff zu dem
Drucker 65 erhalten kann. Es kann in Betracht gezogen werden,
dass die Mitteilungen, die durch das zweite Clientsystem 67 übertragen
werden, elektronisch unterzeichnet sind oder mit einem elektronischen
Zertifikat versehen sind, um die Authentizität derselben zu bestätigen.
-
Wo
das erste Clientsystem 61 mit einer Mehrzahl von Druckern
verbunden ist, kann der relevante Drucker durch eine geeignete Vorrichtungs-Identifikationseinrichtung
identifiziert werden, beispielsweise seine IP-Adresse, den Domainnamen-Servernamen
oder eine Netzwerkadresse, wie es angemessen ist.
-
Jede
Vorrichtung, die PML unterstützt,
kann auf solche Weise gesteuert werden, nicht nur Drucker.
-
Es
ist klar, dass diese Anwendung nach Wunsch mit jedem geeigneten
Mitteilungsweiterleitungssystem verwendet werden kann, und nicht
notwendigerweise einfach mit einem Mitteilungsvermittler 60,
wie es hierin beschrieben ist. Alle Mitteilungen können unter
Verwendung des Sicherheitssockelschicht-Protokolls verschlüsselt werden.
Die entfernte Steuerung ist vorgesehen, ohne die Einrichtung einer
Tele fon/Modemverbindung zu erfordern, oder zu erfordern, dass die
Unterstützungsagentur
bei diesem Beispiel dem Benutzer telefonische Anweisungen gibt,
wie ein Drucker zu konfigurieren ist und nach Rückmeldung fragt.
-
Es
ist klar, dass die hierin beschriebene Erfindung auf jede gewünschte Weise
implementiert werden kann, ob in Hardware, Software oder anderweitig.
Offensichtlich kann die Erfindung in herkömmliche Hardware implementiert
werden, die mit geeigneter Software gemäß der vorliegenden Erfindung versehen
ist.
-
Bei
der vorliegenden Beschreibung bedeutet „umfasst" „enthält oder
besteht aus" und „umfassen" bedeutet „enthalten
oder bestehen aus".
-
Die
Merkmale, die in der vorhergehenden Beschreibung oder in den folgenden
Ansprüchen oder
den beiliegenden Zeichnungen offenbart sind, die in ihren spezifischen
Formen oder bezüglich
einer Einrichtung zum Durchführen
der offenbarten Funktion oder eines Verfahrens oder eines Prozesses
zum Erhalten der offenbarten Ergebnisse ausgedrückt sind, können getrennt oder in jeder
Kombination solcher Merkmale verwendet werden, um die Erfindung in
unterschiedlichen Formen derselben zu realisieren.