-
Gebiet der
Erfindung
-
Diese
Erfindung betrifft im Allgemeinen Prozessanforderungen, die von
einem Client zu einem Netzwerkserver kommen. Insbesondere betrifft
die Erfindung HTTP-Anforderungen.
Weiterhin betrifft die Erfindung eine Sicherheitsanordnung für Dienstleistungen.
-
Hintergrund
der Erfindung
-
Derzeit
weisen Serveranordnungen, die Dienstleistungen bereitstellen, üblicherweise
einen Schutzwall bzw. eine Firewall auf, wie in den 1 und 2 gezeigt
ist. Die Firewall ist ein Sicherheitselement, deren Zweck es ist,
ungewünschte
Dienstleistungsanforderungen aus den Dienstleistung bereitstellenden
Systemen herauszuhalten. Es gibt zwei Arten von Firewalls: Filter-Firewalls,
die ausgewählte
Netzwerkpakete blockieren, und Proxy-Server, die Netzwerkverbindungen
herstellen. Jedenfalls ist es angebracht, über Firewalls als Paketfilter
nachzudenken. Daten wird es nur dann ermöglicht, in das System zu kommen,
wenn die Firewall-Regeln dies erlauben. Wenn Pakete ankommen, werden
sie gefiltert, beispielsweise nach ihrem Typ, Ursprungsadresse,
Zieladresse und Anschlussinformation, die in jedem Paket enthalten
sind.
-
1 zeigt
ein Beispiel einer derzeit möglichen
Anordnung. Client-Terminals 1 senden Dienstleistungsanforderungen 8,
beispielsweise HTTP-Anforderungen, durch eine Firewall 2 an
einen HTTP-Server 4. Die Anforderungen sind an die richtigen
Anwendungen 5 gerichtet, beispielsweise CGI (Common Gateway
Interface), API (Application Programming Interface), ISAPI (Internet
Server Application Programming Interface) oder Java-Servlet, die das
weitere Verarbeiten jeder Anforderung abwickeln. Die Anwendung kann
Middleware-Dienstleistungen 6 zum Verarbeiten der Anforderung
verwenden, die an ein Back-end-System weitergeleitet 9 ist, d.
h. an ein System hinter dem HTTP-Server. Das Middleware-Prozessorelement 6 kann
eine Datenbank 7 zum Abfragen 10 erforderlicher
Daten verwenden, die zum Einrichten der angeforderten Dienstleistung
erforderlich sind. Die Datenbank sendet die Anforderung 11 als
eine Antwort an das Prozessorelement oder direkt an die Anwendung
zurück. Alternativ
kann die Anwendung eine direkte Verbindung mit einer relevanten
Datenbank haben. Die Anwendungen 5 senden 12 Antworten
an die Client-Terminals durch die Firewall.
-
Alle
Verbindungen zwischen den Client-Terminals und dem HTTP-Server gehen
durch ein erlaubtes "Loch" 3 in der
Firewall. Das Loch lässt
die nicht herausgefilterten Pakete durchgehen. In Situationen wie
in 1 hat die Firewall jedoch zu erlauben, dass HTTP-Datenverkehr
durchgeht, da die Firewall zwischen den Client-Terminals (in dem Internet) und dem
HTTP-Server liegt. Wenn die HTTP-Datenverkehrmenge
riesig ist, kann die Firewall keine sehr effektive Sicherheitswirkung
einrichten.
-
Ein
anderes Problem, welches in dem System der 1 auftritt,
ist, dass die Verbindung mit den Anwendungen und dem Back-end-System
außerhalb
der Dienstleistung bereitstellenden Anordnung offen (hergestellt)
sind. Dieses setzt die Anordnung tausender gleichzeitiger HTTP-Anforderungen aus,
die eine Überlastsituation
in der Dienstleistungsanordnung erzeugen können, und die auch die Anordnung
zusammenbrechen lassen können.
Selbstverständlich
möchten
Dienstleistungsanbieter nicht, dass dies geschieht.
-
2 zeigt
ein anderes Beispiel einer möglichen
derzeitigen Anordnung. Client-Terminals 1 senden
Dienstleistungsanforderungen 8, beispielsweise HTTP-Anforderungen, an
einen HTTP-Server 4. Die Anforderungen sind an die richtigen
Anwendungen 5 gerichtet, die das weitere Verarbeiten jeder
Anforderung abwickeln. Die Anwendung kann Middleware-Dienstleistungen 6 zum
Verarbeiten der Anforderungen verwenden, die an ein Back-end-System
weitergesendet 9 wurden, d. h. an ein System hinter dem HTTP-Server.
Die Anforderungen 9, die an das Back-end-System gesendet wurden, gehen durch eine
Firewall 2A. Das Middleware-Prozessorelement 6 kann eine
Datenbank 7 zum Abfragen 10 erforderlicher Daten
verwenden, die zum Einrichten der angeforderten Dienstleistung benötigt werden.
Die Datenbank antwortet 11 dem Prozessorelement oder direkt
der Anwendung durch die Firewall. Alternativ kann die Anwendung
eine direkte Verbindung mit einer relevanten Datenbank haben. Die
Anwendungen 5 senden 12 Antworten an die Client-Terminals.
-
Alle
Verbindungen von den Client-Terminals gehen direkt zu dem HTTP-Server,
welcher diese den relevanten Anwendungen zuleitet. Wie in 2 zu
sehen ist, hat die Firewall verschiedenen Datenverkehrstypen zu
erlauben, aufgrund der verschiedenen Anwendungen durchzugehen. Deshalb
hat die Firewall verschiedene "Löcher" 3 zum Durchlassen der
Pakete, die nicht herausgefiltert wurden. Infolge der mehreren "Löcher" in der Firewall 2A ist diese
Lösung
ebenfalls Sicherheitsrisiken ausgesetzt.
-
Ebenfalls
in 2 sind die Verbindungen mit den Anwendungen und
dem Back-end-System
außerhalb
der dienstleistungsbereitstellenden Anordnung offen (hergestellt),
die die Anordnung tausender gleicherzeitiger HTTP-Anforderungen
aussetzen, welche eine Überlastungssituation
in der Dienstleistungsanordnung und auch einen Zusammenbruch der
Anordnung erzeugen können.
-
US-Patentanmeldung
6,141,759 zeigt auch eine derzeitige Lösung, in der Verbindungen außerhalb
der Firewall offen (hergestellt) sind, die es ermöglichen,
das System eines Dienstleistungsanbieters zusammenbrechen zu lassen.
Das Ziel der Erfindung ist es, das Sicherheitsniveau einer Dienstleistung
bereitstellenden Anordnung zu erhöhen und die Möglichkeit
des Zusammenbrechens der Anordnung von außerhalb zu eliminieren.
-
Zusammenfassung
der Erfindung
-
Die
Idee der Erfindung ist, dass eine HTTP-Anforderung, die von einem
Client-Terminal kommt,
von einem Anforderungsabwickler eines HTTP-Servers aufgenommen wird.
Der HTTP-Server enthält
eine Anwendung zum Empfangen der Client-Anforderungen und zum Senden der Antworten, eine
Warteschlange für
die empfangenen Client-Anforderungen und eine andere Warteschlange
für die Antworten.
Der HTTP-Server liegt außerhalb
der Firewall und der Anforderungsabwickler innerhalb der Firewall,
sowie auch die Back-end-Systeme für den Anforderungsabwickler.
Da der Anforderungsabwickler von dem HTTP-Server fordert, eine Client-Anforderung
in der Anforderungswarteschlange als eine Antwort an den Abwickler
zurückzugeben, wird
eine Verbindung durch die Firewall geöffnet, d. h. innerhalb der
Firewall hergestellt. Mit anderen Worten, der Anforderungsabwickler
in der Firewall steuert den Datenverkehr durch die Firewall. Diese
Anordnung eliminiert Situationen, in denen HTTP-Anforderungen, die
aus dem Internet kommen, die Dienstleistung bereitstellenden Systeme überlasten.
-
Der
Anforderungsabwickler sendet die Anforderungen weiter an das Back-end-System, in dem die
Anforderungen zum Einrichten von Antworten zum Zurücksenden
an die Clients abgewickelt werden. Die Antworten werden durch die
Firewall entweder zu der Antwortwarteschlange oder zu einer speziellen
Datenbank gesendet, von der der HTTP-Server sie aufnehmen kann.
-
Da
alle Verbindungen durch die Firewall innerhalb der Firewall geöffnet werden,
ist die Sicherheit der Dienstleistung bereitstellenden Anordnung zuverlässiger als
in den derzeitigen Lösungen.
-
Kurze Beschreibung
der Zeichnungen
-
Nachfolgend
wird die Erfindung detaillierter durch die 1–5 in
den beigefügten
Zeichnungen beschrieben, in denen:
-
1 ein
Beispiel einer derzeitigen Lösung zum
Verarbeiten von HTTP-Anforderungen
zeigt,
-
2 ein
anderes Beispiel einer derzeitigen Lösung zum Verarbeiten von HTTP-Anforderungen zeigt,
-
3 ein
Beispiel einer erfindungsgemäßen Anordnung
zeigt,
-
4 ein
Beispiel eines Flussdiagramms zeigt, welches das erfindungsgemäße Verfahren
beschreibt, und
-
5 ein
Beispiel einer anderen erfindungsgemäßen Anordnung zeigt.
-
Detaillierte
Beschreibung der Erfindung
-
3 zeigt
ein Beispiel einer erfindungsgemäßen Anordnung.
Ein Client-Terminal 1 sendet eine HTTP-Anforderung 41 an
den HTTP-Server 31. Der HTTP-Server enthält eine
Anwendung 32, welche das Empfangen der HTTP-Anforderungen
in einem Eingabeverarbeitungselement 33 und das Rücksenden
der Antworten an Client-Terminals
in einem Ausgabeverarbeitungselement 34 abwickelt. Die
empfangenen HTTP-Anforderungen werden zum Speichern in einer Anforderungswarteschlange 35 weitergeleitet 42.
Der HTTP-Server enthält
auch eine Antwortwarteschlange 36 für Antworten an die Client-Terminals.
Der HTTP-Server ist außerhalb
einer Firewall 2B angeordnet.
-
Innerhalb
der Firewall existiert ein Element 37, mit Anforderungsabwickler
bezeichnet, welches die Erzeugung von Verbindungen durch die Firewall abwickelt.
Der Anforderungsabwickler richtet auch die HTTP-Anforderungen an
eine relevante Anwendung 39 zum Einrichten der angeforderten
Dienstleistung.
-
Der
Anforderungsabwickler ist bevorzugt Middleware-Software. Die Definition
von Middleware ist nicht genau, üblicherweise
wird Middleware jedoch als eine Schicht oder Software zwischen dem Netzwerk
und den Anwendungen verstanden. Middleware vereinfacht es sehr,
erweiterte Netzwerkanwendungen zu verwenden. Mögliche Middleware-Techniken
zum Erzeugen des Anforderungsabwicklers sind beispielsweise CORBA,
TUXEDO, COM, DCOM, RPC und RMI.
-
Der
Anforderungsabwickler 37 fragt 43 von der Anforderungswarteschlange 35 in
dem HTTP-Server 31 ab, ob eine Anforderung in der Warteschlange
verfügbar
ist, die eine Antwort 44 an den Anforderungsabwickler benötigt. Zu
der gleichen Zeit, wenn eine Anfrage gesendet wird 43,
erzeugt der Anforderungsabwickler eine Verbindung durch die Firewall,
d. h. er öffnet
ein "Loch" 3A in der
Firewall. Wenn es eine Anforderung in der Anforderungswarteschlange
gibt, kann diese in eine Antwort für die Anforderung von dem Anforderungsabwickler
eingefügt
werden und den Anforderungsabwickler durch das Loch in der Firewall 2B gesendet
werden.
-
Der
Anforderungsabwickler fragt 45 von einer Anwendungslogik 38 ab,
welche Anwendung 39 die richtige für die Anforderung ist. Die
Anwendungslogik bildet 46 (beispielsweise unter Verwendung
von URL-Informationen) die Anwendung und die HTTP-Anforderung ab,
und gibt die Abbildungsinformation an den Anforderungsabwickler
zurück 47.
Der Anforderungsabwickler sendet 50 die HTTP-Anforderung
an die richtige Anwendung 39. Es kann möglich sein, dass die Anwendungslogik
mit dem Anforderungsabwickler kombiniert ist, sie getrennt zu lassen, ist
aber bevorzugt.
-
Es
kann bemerkt werden, dass der Anforderungsabwickler wie ein Client-Prozess
handelt, der äußere Dienstleistungen
verwendet, d. h. den HTTP-Server, die Anwendungslogik und die Anwendungen.
-
Bei
Bedarf kann die Anwendung 39 eine Datenbank 7 zum
Abfragen 48 der erforderlichen Daten zum Einrichten der
Dienstleistungsanforderung verwenden. Die Antwortdaten werden durch
die Anwendung und den Anforderungsabwickler an die Antwortwarteschlange
durch die Firewall oder an eine spezielle Datenbank 40 außerhalb
der Firewall zurückgegeben 49A.
Die spezielle Datenbank wird verwendet, wenn die Antwort eine große Datenmenge
enthält,
für die
es ineffizient oder unmöglich
ist, die Antwortwarteschlange zu verwenden. Alternativ werden die
Antwortedaten nur durch die Anwendung an die Antwortwarteschlange
oder die spezielle Datenbank zurückgegeben 49B.
-
Das
Ausgabeverarbeitungselement 34 fragt 51 die Antwortwarteschlange 36 oder
die spezielle Datenbank 40, ob Antworten zum Zurückgeben
an die Client-Terminals 1 bereit sind. Wenn Antworten in der
Warteschlange oder in der Datenbank sind, werden die Antworten an
das Ausgabeverarbeitungselement 34 geleitet 52,
welche diese an die Client-Terminals zurückgibt 53.
-
4 zeigt
ein Beispiel eines Flussdiagramms, das das erfindungsgemäße Verfahren
beschreibt. Zuerst empfängt 60 das
Eingabeverarbeitungselement 33 in dem HTTP-Server eine HTTP-Anforderung
von einem Client-Terminal. Die empfangene HTTP-Anforderung wird
in der Anforderungswarteschlange gespeichert 61. Der Anforderungsabwickler,
der auf der anderen Seite der Firewall ist, fragt 62 empfangene
HTTP-Anforderungen aus der Anforderungswarteschlange ab. Infolgedessen öffnet der
Anforderungsabwickler eine Verbindung durch die Firewall – von der
sicheren Seite der Firewall aus. Als eine Antwort auf die Abfrage
wird die empfangene HTTP-Anforderung
an den Anforderungsabwickler durch die Firewall zurückgegeben 63.
-
Als
nächstes
fragt 64 der Anforderungsabwickler nach einer relevanten
Anwendung zum Abwickeln der HTTP-Anforderung bei der Anwendungslogik.
Als eine Antwort auf die Abfrage bildet die Anwendungslogik die
relevante Anwendung und die HTTP-Anforderung
zusammen ab 65 und gibt die Abbildungsinformation an den
Anforderungsabwickler zurück 66.
Der Anforderungsabwickler sendet 67 die HTTP-Anforderung
an die relevante Anwendung.
-
Die
Anwendung kann erforderliche Daten, bei Bedarf, für eine Anforderungsantwort
von einer Datenbank abfragen 68. Wenn die Daten von der
Datenbank zum Ausführen
der Anforderungsantwort benötigt
werden, wird die Antwort von der Datenbank an die Anwendung geleitet 69.
Alternativ kann die Anwendung eine Anforderungsantwort ohne Verwendung
der Datenbank bilden.
-
Die
Anwendung sendet 70 die Anforderungsantwort an die Antwortwarteschlange
in dem HTTP-Server oder an die spezielle Datenbank auf der anderen
(unsicheren) Seite der Firewall entweder direkt, oder durch den
Anforderungsabwickler an die Antwortwarteschlange in dem HTTP-Server
oder die spezielle Datenbank auf der anderen Seite der Firewall.
-
Das
Ausgabeverarbeitungselement in dem HTTP-Server fragt 71 nach
Anforderungsantworten von der Antwortwarteschlange und von der speziellen
Datenbank. Wenn eine Anforderungsantwort in der Antwortwarteschlange
oder in der speziellen Datenbank existiert, gibt (sendet) 72 das
Ausgabeverarbeitungselement diese an das Client-Terminal zurück.
-
Die
erfindungsgemäße Anordnung
bietet eine sehr stabile Umgebung zum Bereitstellen von Dienstleistungen.
Die Anordnung ist zumeist linear skalierbar. Der Anforderungsabwickler
kann HTTP-Anforderungen von verschiedenen HTTP-Servern und Warteschlangen
aufnehmen, wie in 5 gezeigt wird. Auf der anderen
Seite können
auch mehrere Anforderungsabwickler vorhanden sein, die zur Rückgabe von Anforderungen
an dieselben Anwendungen fähig
sind. Die Anordnung ist genau so stabil, da die HTTP-Server und
die Anforderungsabwickler in einer Weise querverbunden sein können, dass
die Anforderungsabwickler eine HTTP-Anforderung aus der Warteschlange
des gleichen HTTP-Servers aufnehmen können.
-
Das
Verarbeiten der HTTP-Anforderungen kann priorisiert werden. HTTP-Server
können
mehrere Anforderungen und Antwortwarteschlangen enthalten, die für die Priorisierung
verwendet werden können.
Das bedeutet, dass der HTTP-Server eine HTTP-Anforderung in verschiedene
Warteschlangen gemäß bestimmter
Kriterien platzieren kann. Diese Kriterien können beispielsweise die angeforderte URL
oder einen Teil von ihr, Session-ID, IP-Adresse des Clients oder
die Telefonnummer des Clients sein. Jede Warteschlange kann mit
einem unterschiedlichen Anforderungsabwickler verbunden sein.
-
Anforderungsabwickler
können
voneinander variieren. Beispielsweise sind bestimmte Anforderungsabwickler
optimiert für
schnelles Abwickeln, andere zum Berücksichtigen von Sicherheitsanforderungen
und einige Anforderungsabwickler zum Abwickeln eines bestimmten
Typs des Datenverkehrs, beispielsweise Management-Datenverkehr oder hochdringliche
Dienstleistungen. Anforderungsabwickler können Berechtigungs- und Autorisierungsbefehle
bereitstellen und sie können
auch eine Session-Verwaltung
bereitstellen. Anforderungsabwickler können auch eine Übergabeverwaltung
unterstützen.
-
Es
kann bemerkt werden, dass die erfindungsgemäße Anordnung auf verschiedene
Weise realisiert werden kann. Die Anwendung, die das Eingabe-/Ausgabeverarbeiten
in dem HTTP-Server abwickelt, kann unter Verwendung einer üblichen
Anwendungsschnittstellentechnik ausgeführt werden, beispielsweise
CGI, NSAPI, ISAPI oder Java-Servlet. Anforderungs- und Antwortwarteschlangen
können nach
einem FIFO(First In First Out)-Prinzip arbeiten. Die Warteschlangen
stellen Lesevorgänge
(GetRequest) und Schreibvorgänge
(AddRequest) bereit. Die Dienstleistungen der Warteschlangen können unter
Verwendung verschiedener Techniken ausgeführt werden, beispielsweise
Middleware (CORBA, TUXEDO, DCOM, COM, RPC, RMI). Middleware-Techniken
können
verwendet werden, wenn der Anforderungsabwickler wie vorstehend
bezeichnet ausgeführt
wird.
-
Die
Anwendungslogik kann auch unter Verwendung von Middleware-Techniken
ausgeführt
werden. Die Anwendungslogik kann als eine Dienstleistung verstanden
werden, von der der Anforderungsabwickler die relevante Anwendung
für die
HTTP-Anforderung
während
der Verarbeitung erfragen kann. Die spezielle Datenbank kann auch
als eine Dienstleistung gesehen werden, durch die Anwendungen riesige
Antworten an den HTTP-Server nach der Antwortwarteschlange zurückschicken
können.
Es existieren verschiedene Wege zum Bereitstellen der Datenbank:
Verwenden eines normalen Dateisystems mit beispielsweise FTP oder
NFS, Verwenden irgendeiner Datenbanktechnik oder Modellieren der Datenbank
als eine Dienstleistung, beispielsweise CORBA.
-
Es
kann bemerkt werden, dass der Anforderungsabwickler bevorzugt als
ein Client handelt, der äußere Dienstleistungen
verwendet, dies ist aber nicht die einzige Lösung zum Ausführen einer
erfindungsgemäßen Anordnung.
Obwohl die Erfindung in diesem Text beschrieben wurde, HTTP-Anforderungen
von Client-Terminals abzuwickeln, beispielsweise von einem Web-Browser
oder einem WAP-Mobiltelefon, sollte berücksichtigt werden, dass es
möglich ist,
außerdem
andere Anforderungsarten abzuwickeln. Gemäß dem vorstehend erwähnten Inhalt
ist es klar, dass die erfindungsgemäße Anordnung auf verschiedenen
Wegen innerhalb des beanspruchten Umfangs der Erfindung ausgeführt werden
kann.