-
Die vorliegende Erfindung betrifft
Informationsserver und insbesondere, aber nicht ausschließlich, Internet-Server
und Verfahren zur Steuerung eines Internet-Servers.
-
Ein bedeutender Faktor, der zu einer
rapide zunehmenden Zahl von Personen und Unternehmen geführt hat,
die mit dem Internet Verbindung aufnehmen, ist der Reichtum an Informationen,
die es enthält
und die es praktisch jedem zur Verfügung stellt, der eine Telephonverbindung
und einen Personalcomputer hat. Diese seine Stärke führt hingegen zu Problemen,
wenn ein Informations- oder Diensteanbieter, der das Internet als
sein Kommunikationsmedium verwendet, steuern bzw. kontrollieren
will, wie auf seine Informationen zugegriffen werden kann.
-
Die im Internet verfügbare Information
ist auf Servern gespeichert, die einen Teil der Infrastruktur des Internet
bilden. Auf die Information greifen Clients (Vorfeldrechner) zu
(die von Benutzern oder Kunden gesteuert werden), die typischerweise
mit dem Internet verbunden, aber nicht Teil desselben sind. Normalerweise stellen
Clients nur für
eine relativ kurze Zeit eine Verbindung zum Internet her, indem
sie eine Wähl-Modem-Verbindung über die
Telephonleitung verwenden.
-
Während
die Kommunikation und der Informationstransfer zwischen den Internet-Clients
und den Servern auf den bewährten
TCP/IP-Protokollen
(Transmission Control Protocol/Internet Protocol) beruht, werden Spezialprotokolle
eines höheren
Niveaus für
einen Zugriff auf bestimmte Typen von Informationen speziell für einen
der vielen Dienste, die im Internet verfügbar sind, eingesetzt. Unterschiedliche
Dienste unterstützen
unterschiedliche Informations-Formate und ermöglichen die Durchführung von
unterschiedlichen Typen von Operationen an den Informationen. Ein
Gopher-Client (Suchprogramm-Client) ermöglicht Abruf und Anzeige von vorwiegend
textbezogenen Informationen, ein FTP-Client (Dateien-Transfer-Protokoll-Client) unterstützt den Transfer
zwischen einem Server und einem Client binärer Dateien oder ASCII-Dateilen,
und ein World Wide Web- oder
einfach ein Web)-Client kann eine Mischung von Text und graphischer
Information sowie Ton, Filme (normalerweise codiert über MPEG),
virtuelle "Welten" und beliebige andere
Typen von Daten aufrufen und anzeigen, für den eine geeignete "Viewer"-Anwendung oder eine "Steck"-Baugruppe verfügbar ist.
-
Die folgende Beschreibung konzentriert
sich, lediglich zu Erläuterungszwecken,
auf den Internet-Web-Dienst. Die beschriebenen Konzepte sind jedoch
in einem breiteren Sinne auch auf andere Internet-Dienste und Informationsdienste
anwendbar, die über
andere Kommunikationsnetzwerke verfügbar sind.
-
1 zeigt
ein Beispiel einer Internetverbindung, die mehrere Clients 100 bedient,
die über
ein lokales Netzwerk 110 mit einem Arbeitsplatzrechner 120 verbunden
sind. Der Arbeitsplatzrechner 120 ist über einen Kommunikations-Server 130 und
ein Modem (oder eine ISDN-Schnittstelle) 140 mit einem
Anbieter für
Internetverbindungen 150 verbunden. Eine Verbindung stammt
von einem Web-Client, beispielsweise einem Web-Browser, bei dem
es sich um eine Software-Verarbeitung
handelt, die sich typischerweise in einem Personalcomputer (PC)
oder einem Arbeitsplatzrechner befindet. Indem er die Verbindung
nutzt, kann der Client 100a beispielsweise frei zugängliche
Informationen von einem beliebigen Internet-Server abrufen.
-
Eine allgemeine Beschreibung des
World Wide Web einschließlich
der Datenabrufprotokolle ist in IEEE Network, The Magazine of Computer
Communications, Bd. 10, Nr. 2, Seiten 10 bis 17, März 1996,
zu finden.
-
In der folgenden Beschreibung bedeutet
der Begriff Internet-Server eine physische Rechenplattform, die
an das Internet angeschlossen ist, wohingegen der Begriff Web-Server
eine Softwareverarbeitung bedeutet, die sich im physischen Internet-Server
befindet und dort läuft,
um den Internet-Server mit Web-Server-Funktionen auszustatten. Mit
dem Begriff Server selbst kann, in Abhängigkeit vom Kontext, entweder
ein Web oder einen Internet-Server gemeint sein, obwohl diese Unterscheidung
für den
mit der folgenden Beschreibung verfolgten Zweck kaum von Bedeutung
ist.
-
Das Web verwendet ein Protokoll mit
dem Namen http (HyperText Transfer Protocol), um den Zugriff eines
Web-Browsers auf Informationen in einem Web-Server zu unterstützen. Die
http-Informationen werden bei ihrer Übermittlung über das
Internet natürlich
in das TCP/IP-Protokoll gehüllt.
Die vom Web-Browser aufgerufene Information ist typischerweise eine
HTML (HyperText Markup Language)-Datei,
die vom Browser übersetzt
wird und in geeigneter Weise auf einem Anzeigenbildschirm als Web-Informationsseite
angezeigt wird.
-
Der Web-Browser bezeichnet die Informationen,
die er aufrufen möchte,
und verwendet dazu einen URL (Universal-Ressourcen-Lokalisator) der
folgenden Form:
http:/Internet server name/server directory/file
name,
wobei "http" bedeutet, daß der URL
auf eine Web-Seite mit Informationen deutet. "Internet server name" wird durch das Internet in einen physischen
Netzwerkstandort übersetzt. "server directory" ist der Ort der
Datei im Server, und "file
name" ist dasjenige
der Datei im directory (Verzeichnis), das die geforderte Information
enthält oder
erzeugt.
-
2 ist
ein Diagramm, das die allgemeine Form einer typischen graphischen
Benutzerschnittstelle illustriert, die von einem Web-Browser, z. B. dem
Netscape (TM) Navigator Web Browser, geliefert wird. Die Anzeige
enthält
mehrere Hauptbereiche: Einen Optionsbereich 200, der die
Benutzeroptionen zur Steuerung und Konfiguration des Browsers liefert,
einen Webseiten-Anzeigenbereich 210 zur Anzeige einer Webseite,
einen Standortkasten 220 zur Anzeige des Standortes oder
des URL der angezeigten Webseite und ein Zustandskasten 230,
der Informationen bezüglich
des Zustands des Webseitenaufrufs anzeigt. Auf dem Bildschirm ist
auch ein Zeiger 240 gezeigt, dessen Position von einem
Benutzer gesteuert werden kann, indem er eine Computermaus, einen
Rollball oder eine ähnliche
Zeigevorrichtung verwendet. Der Benutzer tritt mit dem Browser durch
die geeignete Positionierung des Zeigers auf dem Bildschirm und
die Auswahl verfügbarer
Optionen oder Funktionen, die vom Browser bereitgestellt, oder die
auf der Webseite durch "anklicken" beispielsweise einer
Maustaste, angezeigt werden, in Interaktion.
-
Eine HTML-Datei umfaßt einen
ASCII-Text, der eingebettete HTML-Kennungen enthält. Im allgemeinen werden die
HTML-Kennungen für die
Erkennung der Natur und des Aufbaus der Webseite und zur Erkennung
von HyperText-Links (Hyperlinks) verwendet, die im einzelnen im
Folgenden beschrieben sind, und der zugehörigen URLs.
-
Die Anzeigeeigenschaften eines Web-Browsers
bestimmen in Abhängigkeit
von den HTML-Kennungen das Aussehen einer HTML-Datei auf dem Bildschirm.
HTML kann im allgemeinen
den Titel der Datei,
den hierarchischen
Aufbau der Datei mit Überschriften-Niveaus
und
Abschnittsnamen,
Blickfang-, numerierte und verschachtelte
Listen,
Einrückpunkte
für Graphiken,
die
besondere Betonung für
Schlüsselworte
oder Sätze,
vorformatierte
Bereiche der Datei und
Hyperlins und zugehörige URLs
kennzeichnen.
-
Im allgemeinen gibt ein Hyperlink
einen Zeiger zu einer anderen Datei oder einer anderen Internetquelle
an. Manchmal kann ein Hyperlink auch auf eine andere Stelle in einer
gerade angezeigten Webseite zeigen. Innerhalb einer HTML-Datei sind
Hyperlinks durch ihre Syntax gekennzeichnet, wie zum Beispiel:
<A HREF = "{URL}">{anchor-text}</A>,
worin <...> die HTML-Kennungen
anzeigt.
-
Typischerweise enthält die Syntax
einen URL, der auf die andere Datei, die Quelle oder einen Ort und auf
eine Anker-Definition zeigt. In diesem Fall ist der Anker als Textstück definiert.
In einer Webseite ist ein Hyperlink typischerweise auf dem Bildschirm
graphisch durch den Anker dargestellt. Der Anker kann ein Stück eines
hervorgehobenen Textes oder ein Bild, beispielsweise eine Drucktaste
oder ein Icon-Bild, sein. Dort, wo beispielsweise der Anker kein
Text ist, spezifiziert die zugrundeliegende Syntax üblicherweise
auch den entsprechenden Anker-Bilddatei-Ort, der sich auf dem gleichen
oder einem anderen Server befinden kann, und zwar, wie folgt:
<A HREF = "{URL}"><IMG
SRC = "{URL}"></A>,
worin IMG SRC
den Ort der Bilddatei für
den Anker angibt.
-
Der von einem Benutzer erzielte Effekt,
der durch Bewegen des Zeigers über
den Anker und, beispielsweise, Klicken der Maustaste, einen Hyperlink
wählt,
ist normalerweise, daß der
Web-Browser versucht, für
eine Anzeige als neue Webseite die durch den URL angezeigte Datei
aufzurufen. Mitunter bezieht sich jedoch ein URL eher auf eine Software-Verarbeitung
als auf eine Webseite an sich, wie im einzelnen unten beschrieben
ist.
-
Bei einigen Browsern, beispielsweise
dem Netscape (TM) Navigator, kann dieser so ausgebildet sein, daß er den
darunterliegenden URL im Zustandskasten des Anzeigenbildschirms
anzeigt, wenn sich der Zeiger nur über einen Hyperlink-Anker bewegt,
unabhängig
davon, ob der Benutzer den Hyperlink wählt oder nicht. So kann ein
Benutzer normalerweise den URL eines beliebigen Hyperlinks in einer
Webseite sehen.
-
HTML-Dateien enthalten manchmal auch
Verweise auf andere Dateien, beispielsweise graphische Dateien,
die vom Browser aufgerufen und als Teil der Webseite typischerweise
zur Verstärkung
des visuellen Eindrucks angezeigt werden. Jeder Verweis enthält eine
geeignete HTML-Kennung und ein URL. In der Praxis ruft der Browser
zuerst die angeforderte Webseite und dann andere Dateien auf, auf
die auf die genannte Weise durch die Webseite verwiesen wurde. Daher
erscheinen die Textabschnitte einer Webseite oft vor den graphischen
Teilen.
-
Ein Benutzer kann den ASCII-Textquellen-Code
einer HTML-Datei sehen, indem er die Ansichtsmöglichkeiten für den Quellencode
nutzt, die von einigen Browsern angeboten werden. Daher kann ein
Benutzer die URL für
einen beliebigen Hyperlink oder eine andere wichtige Datei sehen.
-
Im allgemeinen kann ein Benutzer
eine Webseite aufrufen, indem er verschiedene Verfahren verwendet,
die von den meisten Browsern unterstützt werden: indem er den URL
manuell in den -Standortkasten eingibt, indem er ein Bookmark oder
Lesezeichen (den gespeicherten URL einer Webseite, auf die vorher
zugegriffen wurde) verwendet, oder indem er in einer angezeigten
Webseite einen Hyperlink auswählt.
Die ersten zwei Verfahren ermöglichen
es einem Benutzer potentiell, auf jede Webseite oder eine andere
Quellendatei jederzeit zuzugreifen. Das dritte Verfahren verlangt
vom Benutzer, zuerst auf eine Webseite zuzugreifen, in der sich
ein Hyperlink auf die erforderliche Webseite oder eine Bilddatei
befindet, bevor die Webseite oder die Bilddatei aufgerufen werden
kann.
-
Es könnte unter bestimmten Umständen wünschenswert
sein, den Zugriff allein auf die dritte Methode zu beschränken.
-
Da aber ein Benutzer normalerweise
eine beliebige URL, die in eine HTML-Datei eingebettet ist, sehen und
auf eine Webseite zugreifen kann, indem er den entsprechenden URL
direkt in einen Browser eingibt, hat unter normalen Umständen ein
Diensteanbieter wenig Kontrolle darüber, auf welche Webseiten zugegriffen wird
und wie auf sie zugegriffen wird.
-
Viele Server sind so angeordnet,
daß sie
diesem Problem begegnen, indem sie Zugriffstabellen einsetzen, die
Tabelleneinträge
enthalten, die steuern, welche Benutzer auf welche Seiten zugreifen
können.
Eine alternative Maßnahme,
die in großem
Umfang angewendet wird, ist es, Benutzer-Identifikationen und einen Paßwort-Schutz
zu verwenden, um bestimmte Dateien auf dem Server zu schützen. Beide
Maßnahmen
können
durch nicht authorisierte Personen in einem bestimmten Maße "ausgeschaltet werden", indem sie sich
beispielsweise durch Auffangen und Knacken von Paßwörtern für diese
geschützten
Dateien als authorisierte Benutzer tarnen. Ein weiterer Nachteil
beider Maßnahmen
ist der Zusatzaufwand an Verwaltung, indem nämlich die Zugriffstabellen
oder Paßwort-Dateien
aktuell gehalten werden müssen,
insbesondere, wenn eine große Anzahl
von Benutzern und/oder Seiten involviert sind oder wenn sich die
authorisierte Benutzerpopulation regelmäßig ändert.
-
Auch dann, wenn der Webseitenzugriff
kontrolliert wird, indem Zugriffstabellen oder ein Paßwortschutz verwendet
werden, hat ein Dienstebetreiber normalerweise keine Kontrolle über die
Reihenfolge, in der ein authorisierter Benutzer auf die Webseiten
zugreifen kann, wenn die URL einmal bekannt sind.
-
Gemäß einem Aspekt gibt die vorliegende
Erfindung einen Informationsserver an, der umfaßt:
- – eine Einrichtung
zum Empfang einer Anfrage von einem Kunden nach einem Informationsobjekt,
wobei das Informationsobjekt mindestens eine Referenz auf ein weiteres
Informationsobjekt enthält,
- – eine
Einrichtung, die so ausgebildet ist, daß sie die Referenz oder jede
Referenz durch eine Sendeberechtigung (Token) ersetzt und damit
das Informationsobjekt modifiziert,
- – eine
Speichereinrichtung zur Speicherung der oder jeder Sendeberechtigung
und der oder jeder jeweiligen Referenz,
- – eine
Einrichtung die so ausgebildet ist, daß sie dem Client das modifizierte
Informationsobjekt zurücksendet.
-
Ein Vorteil dieses Aspekts der Erfindung
besteht darin, daß der
Client nicht die aktuelle Referenzinformation, z. B. einen URL für das (die)
weitere(n) Informationsobjekt(e) geliefert bekommt. Daher kennt
der Client den Namen oder den Ort der weitere(n) Informationsobjekt(e)
auf dem Informationsserver nicht.
-
Eine Sendeberechtigung umfaßt bevorzugt
eine Reihe von numerischen Zeichen oder anderen Zeichen. Eine Sendeberechtigung
hat bevorzugt eine Form, aus der keine Information über die
Referenz oder das entsprechende Informationsobjekt erhalten werden
kann. Bei numerischen Zeichen kann die Sendeberechtigung beispielsweise
durch einen Zufallszahl-Generator jedesmal dann erzeugt werden,
wenn ein Informationsobjekt angefordert wird. Bei einer geeignet
langen Sendeberechtigungszahl sind daher die Chancen, die gleiche
Sendeberechtigung mehr als einmal für eine bestimmte Referenz zu
erhalten, relativ gering.
-
Bei der folgenden Beschreibung wurde
angenommen, daß ein
beliebiges angefordertes Informationsobjekt mindestens eine Referenz
auf ein weiteres Informationsobjekt enthält.
-
Gemäß einem zweiten Aspekt gibt
die vorliegende Erfindung einen Informationsserver an, der aufweist:
- – einen
Eingabe-/Ausgabe-Port zum Zugriff auf die Speichereinrichtung, die
eine oder mehrere Sendeberechtigung(en) und eine oder mehrere jeweilige
Referenzen) speichert,
- – eine
Einrichtung zum Empfang einer Anforderung eines Informationsobjekt
von einem Client, wobei die Anforderung eine Sendeberechtigung enthält, die
das angeforderte Informationsobjekt anzeigt,
- – eine
Einrichtung, die so ausgebildet ist, daß sie die Sendeberechtigung
mit einer oder mehreren Sendeberechtigung(en) vergleicht, die in
der Speichereinrichtung gespeichert sind, um eine passende gespeicherte
Sendeberechtigung zu finden, wobei jede gespeicherte Sendeberechtigung
mit einer entsprechenden Referenz auf ein entsprechendes Informationsobjekt
gekoppelt ist, und
- – eine
Einrichtung, die zur Rücksendung
des jeweiligen entsprechenden Informationsobjekts an den Client in
Abhängigkeit
vom Auffinden einer passenden gespeicherten Sendeberechtigung ausgebildet
ist.
-
Der Informationsserver sendet daher
nur Informationsobjekte zurück,
die auf der Grundlage eines vorher angeforderten Informationsobjekts
in gültiger
Weise von einem Client angefordert wurden. Ein Vorteil dieses Aspekts
ist der, daß der
Informationsserver die Reihen folge steuern kann, in der Informationsobjekte
angefordert und zurückgeschickt
werden.
-
In bevorzugten Ausführungsformen,
bei denen mehrere Sendeberechtigungen und entsprechende Referenzen
in Verbindung mit dem Informationsserver gespeichert sind, und eine
Anforderung eine gültige Sendeberechtigung
enthält,
umfaßt
der Informationsserver eine Einrichtung zur Entfernung der übrigen Sendeberechtigungen
und der entsprechenden Referenzen aus dem Speicher. Wenn somit einmal
eine Sendeberechtigung aus einer Auswahl verfügbarer Sendeberechtigungen
angefordert wird, werden die übrigen,
nicht angeforderten Sendeberechtigungen entfernt und stehen dann
nicht für
eine Anforderung zur Verfügung.
-
Der Informationsserver umfaßt bevorzugt
eine Speichereinrichtung zur Speicherung der Identität eines zulässigen Client
zusammen mit jeder Sendeberechtigung und ihrer entsprechenden Referenz.
Auch in Ausführungsformen,
in denen mehrere Clients Zugang zum Informationsserver haben, enthält der Informationsserver
eine Einrichtung zur Ableitung der Identität des Kunden von einer Anforderung
eines Informationsobjektes. Daher wird eine Anforderung eines Informationsobjektes
vom Informationsserver von einem bestimmten Kunden nur bei Sendeberechtigungen
und ihren jeweiligen Referenzen mit gültiger Identität verarbeitet.
-
In einer besonders bevorzugten Ausführungsform
hat der Informationsserver Web-Server-Funktion. Dann kann eine Referenz
einen URL enthalten oder dieser kann darin eingebaut sein. Der URL
kann ein Teil eines Hyperlinks sein oder, kann sich, alternativ
dazu, eine wei tere Quelle, z. B. eine Bilddatei, beziehen, die als
Teil einer Webseite angezeigt werden soll.
-
Gemäß einem dritten Aspekt der
vorliegenden Erfindung ist ein Verfahren zur Steuerung eines Informationsservers
angegeben, das die folgenden Schritte umfaßt:
- (i)
Empfang einer Anforderung nach einem Informationsobjekt von einem
Client, wobei das Informationsobjekt mindestens eine Referenz auf
ein weiteres Informationsobjekt enthält,
- (ii) Modifizierung des Informationsobjekts durch Ersetzen der
oder jeder Referenz durch eine Sendeberechtigung,
- (iii) Speichern der oder jeder Sendeberechtigung und der oder
jeder jeweiligen Referenz in einem Speicher und
- (iv) Rücksendung
des modifizierten Informationsobjekts an den Client.
-
Gemäß einem vierten Aspekt der
Erfindung ist ein Verfahren zur Steuerung eines Informationsservers angegeben,
das die folgenden Schritte umfaßt:
- (i) Speichern einer oder mehrerer Sendeberechtigung(en)
in einem Speicher,
- (ii) Empfang einer Anforderung eines Informationsobjekts von
einem Client, wobei die Anfrage eine Sendeberechtigung enthält, die
das angeforderte Informationsobjekt anzeigt,
- (iii) Vergleichen der Sendeberechtigung mit einer oder mehreren
gespeicherten Sendeberechtigungen, um eine passende gespeicherte
Sendeberechtigung zu finden, wobei jede gespeicherte Sendeberechtigung mit
einer entsprechenden Referenz auf ein Informationsobjekt gekoppelt
ist, und
- (iv) Rücksenden
des jeweiligen entsprechenden Informationsobjekts an den Client
in Abhängigkeit
vom Auffinden einer passenden gespeicherten Sendeberechtigung.
-
Im folgenden wird nun eine Ausführungsform
der vorliegenden Erfindung lediglich beispielhaft unter Bezug auf
die beigefügten
Zeichnungen beschrieben, die zeigen:
-
1 ein
Diagramm das eine Internet-Grundverbindungs-Anordnung illustriert;
-
2 ein
Diagramm das die allgemeine Form eines Web-Browsers illustriert;
-
3 ein
Diagramm, das die Hauptkomponenten eines Web-Servers zeigt, der für einen Betrieb in Übereinstimmung
mit Ausführungsformen
der vorliegenden Erfindung modifiziert würde;
-
4 ein
Ablaufdiagramm, das den Hochpegel-Prozeßablauf eines Systems gemäß einer
Ausführungsform
der vorliegenden Erfindung zeigt;
-
5 ein
Ablaufdiagramm, das die Prozeßschritte
für ein
Anmeldeverfahren zeigt;
-
6 ein
Ablaufdiagramm, das die Prozeßschritte
für ein
Parsing- und Sendeberechtigungs-Verfahren zeigt;
-
7 ein
Ablaufdiagramm, das die Prozeßschritte
für ein
Berechtigungs-Verfahren zeigt;
-
8 ein
Ablaufdiagramm, das die auswählbaren
Schritte zum Aufbau von HTML-Seiten zeigt.
-
Die im folgenden beschriebene Ausführungsform
ist ein System das einem Kunden über
das Web einen Zugriff auf ein Hauptkunden-Servicesystem eines Diensteanbieters
(MCSS) zur Verfügung
stellt. Im vorliegenden Fall ist der Diensteanbieter eine Telephongesellschaft,
wie z. B. BT. Durch Zugriff und Modifizierung der in einer Datenbank
gespeicherten Daten – bei
der es sich in vorliegenden Fall um eine Oracle (TM)-Datenbank des
MCSS handelt –,
können
Kunden des Diensteanbieters (insbesondere große Gesellschaften, die Bedarf
an einer umfangreichen und komplexen Kommunikation haben) neue Kommunikationsdienste
bestellen und solche Dienste verwalten oder konfigurieren, die für den Client
bereits On-Line sind.
-
Ein solches System schließt in einem
hohen Maße
menschliche Fehler aus, die auftreten können, wenn Kunden Anforderungen über das
Telephon machen, oder wenn sie Vordrucke ausfüllen. Insbesondere bei Kunden,
bei denen es sich um Gesellschaften handelt, vermittelt das System
dem Kunden das Gefühl
einer direkten Kontrolle über
seine Dienste-Management-Anforderungen.
-
In der Vergangenheit verlangte der
Zugang zu einem solchen System, daß auf einer Arbeitsstation beim
Kunden eine Spezial-Software lief und es spezielle Wählverbindungen
von der Arbeitsstation zum System gab. Ein Hauptproblem in Verbindung
mit einer derartigen Anordnung ist die Notwendigkeit, die Kundenzugriffs-Software
zur Verfügung
zu stellen, zu aktualisieren und instandzuhalten.
-
Das vorliegende System bietet eine
maßgeschneiderte
Schnittstelle zur Datenbank des Diensteanbieters, die einen herkömmlichen
Web-Browser und
eine Internet-Verbindung verwendet. Der Web-Server ist so modifiziert,
daß er
die speziellen Datenbank-Zugriffsanforderungen abwickelt, wie im
Einzelnen im folgenden beschrieben ist. Das System macht ferner
die Notwendigkeit überflüssig, Informationen
von der vorhanden Datenbank auf den Web-Server zu übertragen.
Insbesondere können
daher Kunden-Anmeldungs-Paßwort-Listen,
die verwendet werden, um den Kundenzugriff auf die Datenbank zu
kontrollieren, in der Datenbank verbleiben, die vorteilhafterweise
physisch vom Internet-Server getrennt ist. Solch eine Anordnung
verbessert sowohl die Sicherheit und ermöglicht es, die Kapazitätsanforderungen
an den Dateienspeicher des Servers zu verringern.
-
Das System führt einen "Session"-Rahmen ein, in dem der Diensteanbieter
den Kundenzugriff auf die Datenbank-Einrichtungen kontrollieren
oder begrenzen kann. Dieser Rahmen unterstützt die Kundenanmeldung, die
Client-Erkennung und -Authentisierung. Ein derartiger Rahmen ist
typischerweise als Teil in einem herkömmlichen Datenbank-Zugriffssystem
enthalten, ist aber kein herkömmlicher
Aspekt des Web: das Web bietet eine zustandslose Umgebung ohne aufrechterhaltene
Verbindung zwischen Client und Server, in dem es keinen Rahmen zur
Kontrolle des Datenzugriffs gibt, ausgenommen einem möglichen
Paßwortschutz
für besondere
Dateien. Der Rahmen ermöglicht
insbesondere eine Kontrolle darüber,
welche Seiten für
welche Kunden verfügbar
sind; sowie die Reihenfolge, in der ein Kunde auf Webseiten Zugriff
haben kann. Für
viele MCSS-Transaktionen wird ein großer Umfang an Informations-Eingaben
benötigt,
die man nicht auf einer einzigen Webseite unterbringen kann. Somit
ist eine Reihe von Webseiten erforderlich. Diese Seiten bilden einen einen
speziellen Dialog für
spezielle Bestelltypen aus. Die Informationen innerhalb eines Dialoges
müssen
gesammelt und sortiert werden, so daß mit den verwendeten Dialogen
schließlich
eine komplette Bestellung an das MCSS gegeben werden kann. Es ist
daher ein Mechanismus zur Speicherung von Bestelldaten von früheren Webseiten
erforderlich, wenn mit den nachfolgenden Webseiten in Interaktion
getreten wird. Gespeicherte Daten können auch einen Einfluß darauf
haben, welche Daten in die nachfolgenden Webseiten eingebracht werden.
Das System muß in
der Tat die Webseiten dynamisch erzeugen. Diese Webseiten enthalten:
-
Kundenspezifische Informationen (entweder
früher
eingegeben oder bereits im MCSS gespeichert), Informationen, die
sich auf eine frühere
Auswahl beziehen, die innerhalb eines speziellen Dialoges getroffen wurde,
Default-Wert-Informationen, die aus früheren Auswahlen stammen. So
kann beispielsweise bei einem Kommunikationsdienst-Bestellvorgang von
einem Kunden verlangt werden, Informationen in vier aufeinanderfolgende
Dateneingabe-Bildschirme oder Webseiten einzugeben. Daher ist in
diesem Beispiel eine Kontrolle darüber wichtig, auf welche Seiten
zugegriffen werden kann und in welcher Reihenfolge auf sie zugegriffen werden
kann.
-
3 ist
ein Funktions-Blockdiagramm, das die Aspekte eines Internet-Servers
und die abhängigen Komponenten
des vorliegenden Systems im einzelnen zeigt. Der Internet-Server 300 enthält einen
Web-Server 310 für den Empfang
von Client-Anforderungen und zur Übertragung von Server-Antworten
auf die Anforderungen. Der Internet-Server 300 ist eine auf UNIX
beruhende Rechnerplattform, z. B. ein Sun (TM) SPARCstation 20/51,
und der Web-Server ist ein Netscape (TM) Enterprise-Server, der
für den
Betrieb mit dem vorliegenden System modifiziert ist. Der Netscape
Enterprise-Server bietet eine ge eignete API (Anwendungsprogramm-Schnittstelle)
zur Unterstützung
derartiger Modifizierungen. Selbstverständlich könnte stattdessen auch eine
andere geeignete Hardware und/oder Web-Server-Software zum Einsatz
kommen.
-
Gemäß dem vorliegenden System enthält der Web-Server 310 einen
Session-Manager 320. Der Session-Manager 320 bietet
die Extrafunktionen, die zur Unterstützung der Datenbank-Session-Verwaltung erforderlich
sind.
-
Der Session-Manager 320 wird
primär über die
Nutzung des Web-Netscape
Servers API (NSAPI) implementiert, der eine dynamische Verbindung
der Server-Funktionen mit Benutzer-definierten Bibliotheks-Funktionen
ermöglicht.
Damit ist der Session-Manager 320 in der Tat in den Web-Server 310 "eingebaut". Der Session-Manager 320 fängt Client-Anforderungen
auf, wenn sie den Web-Server-Stapel durchqueren und kann eine beliebige
Information neu definieren, die in den Client-Anforderungen enthalten
ist und kann Aktionen außerhalb
des Web-Servers durchführen.
Die primären
Aufgaben, die der Session-Manager erledigt werden, sind:
- – Halten
der gleichzeitig stattfindenden Benutzer-Sessions auf einem vorgegebenen
Maximum;
- – Zuweisen
freier Benutzer-Sessions zu neuen Benutzern, die sich anzumelden
versuchen;
- – Verbindung
von Benutzer-Sessions mit Datenbank-Sessions;
- – Neustart
von Datenbank-Sessions, die vorhanden oder beendet sind;
- – Freigabe
von Datenbank-Sessions, wenn die Zeit einer Session ausläuft;
- – Sendeberechtigung
für URL
erteilen;
- – Analyse
angeforderter URL mit Sendeberechtigung und
- – Kontrolle
des Zeitablaufs von Benutzer-Sessions.
-
Im Gegensatz zu einer Datenbank-Session
ist eine Benutzer-Session einem Kunden zugeordnet, sobald er/sie
versucht, sich von einer Anmelde-Webseite aus im System anzumelden.
Die Benutzer-Session wird auf einer Benutzer-individuellen Basis
erzeugt, indem der nächsthöhere (mit
0 beginnend) unbenutzte Session-Index für diesen Benutzer gewählt wird.
Die Datenbank-Session wird dem Kunden beim MCSS-Zugang zugeordnet.
Die maximale Anzahl der Benutzer-Sessions
ist durch die Anzahl gleichzeitig stattfindender Prozesse begrenzt,
die der Internet-Server verwalten kann, ohne daß die Leistung unter ein nicht
mehr akzeptables Niveau sinkt. In der gleichen Weise ist auch die
maximale Anzahl der Datenbank-Sessions auf die Anzahl der Vollzeit-Oracle-Verbindungen
beschränkt,
die die MCSS-Datenbank
unterstützen
kann.
-
Eine Datenbank-Session ist eine Verarbeitung,
die auf dem Internet-Server
läuft und
die zum Zugriff auf die MCSS-Datenbank 390 erforderlichen
Funktionen bereitstellt, wie im einzelnen im Folgenden beschrieben
wird.
-
Der Session-Manager 320 hat
Zugriff auf einen Session-Speicher 330, einen Gateway-Prozessor 340, eine
Datenbank-Session-Steuerung 350 und
einen HTML-Seiten-Speicher 360.
-
Bei dem Gateway-Prozessor 340 handelt
es sich um eine Aufgabe, die auf einer Rechnerplattform zur Verarbeitung
der sogenannten Gateways läuft.
Gateways können Überleiteinrichtungen
zum Web-Server 310 angeben, indem sie Informationen, typischerweise
von einer nicht mit HTML kompatiblen Quelle, aufnehmen und sie in
eine HTML-Standarddatei umwandeln. In der Praxis ist ein Gateway
ein Script oder Programm, das vom Web-Server 310 über eine übliche Gateway-Schnittstelle
(CGI) 370 aufgerufen wird, welches eine Benutzereingabe über den
Web-Server 310 annehmen und eine HTML, einen URL oder einige
andere Daten über den
Web-Server 310 an den Client zurücksenden oder andere Aufgaben,
wie z. B. E-Mails, steuern kann, die typischerweise keine Rückinformationen
liefern. Einfache Gateways können
in UNIX-C-shell geschrieben sein, komplexere Gateways sind typischerweise
in einer Programmiersprache, wie z. B. C, C++ oder Java, geschrieben.
In der Praxis befindet sich ein Gateway-Prozessor, wie z. B. der
Gateway-Prozessor 340, und ein Web-Server, wie z. B. der
Web-Server 310, typischerweise auf einer gemeinsamen Rechnerplattform.
Weitere Informationen über
Gateways und Gateway-Schnittstellen (CGI) sind in "Managing Internet
Information Services",
Cricket Liu et al., veröffentlicht
in O'Reilly & Associates, Inc.,
ISBN 1-56592-062-7, zu finden. Der Gateway-Prozessor 340 hat
Zugang zu einem Gateway-Speicher 380, der die Gateways
enthält,
die zur Unterstützung
des vorliegenden Systems erforderlich sind. Im vorliegenden System
sind die Gateway-Verarbeitungen in C geschrieben. Der Gateway-Prozessor 340 hat
ferner Zugang zur MCSS-Datenbank 390, Datenbank-Session-Steuerung 350 und
zum Session-Speicher 330. Die Datenbank-Session-Steuerung 350 hat Zugang
zum Session-Speicher 330 und zur Datenbank 390.
-
Der Gateway-Speicher 380 enthält Seitenaufbau-
Gateways für
die Ausbildung von HTML-Webseiten aufgrund der über die Datenbank-Session-Steuerung 350 von
der Datenbank 390 erhaltenen Informa tionen. Viele Seitenaufbau-
Gateways erzeugen HTML-Webseiten, die Formfelder enthalten. Die
Formfelder stellen einen Mechanismus dar, mit dessen Hilfe Kundeninformationen
eingegeben und vom Kunden-Browser
an den Web-Server 310 gegeben werden können. Die auf diese Weise gewonnene
Kundeninformation wird verarbeitet und in einem geeigneten Format
durch die entsprechenden Datenverarbeitungs-Gateways an die Datenbank 390 gegeben.
-
Der Gateway-Speicher 380 enthält auch
Anmelde-Gateways zur Kontrolle, wem ein Zugriff auf die Informationen
in der Datenbank 390 gestattet ist. Die Anmelde-Gateways
ermöglichen
dem Gateway-Prozessor 340 direkt
auf die Datenbank 390, unter Umgehung der Datenbank-Session-Steuerung 350,
jedoch nur zum Zweck der Kunden-Autorisation, zuzugreifen.
-
Die Datenbank-Session-Steuerung 350 ist
eine Aufgabe, die im Internet-Server läuft, der jeden Zugang zur Datenbank 390 kontrolliert.
Die MCSS-Datenbank 390 befindet sich auf einem Datei-Server 395 und umfaßt Kundeninformationen,
die in Datenbank-Tabellen in einer externen Speichervorrichtung,
wie z. B. einem Harddisk-Antrieb (nicht gezeigt) gespeichert sind.
Der Harddisk-Antrieb ist mit dem Datei-Server 395 verbunden.
Herkömmlicherweise
ist eine Kunden-Autorisation
jedes Mal erforderlich, wenn auf die Datenbank 390 zugegriffen
wird, um eine Oracle-Verbindung zu öffnen. Eine derartige Authorisation
(die zum Beispiel einen Benutzernamen und ein Paßwort als Antwort auf einen
Prompt von der Datenbank 390 liefert) kann für einen
Zugriff auf eine entferne Datenbank 390 eine beträchtliche
Zeit in Anspruch nehmen (beispielsweise bis zu dreißig Sekunden).
In Übereinstimmung
mit dem System öffnet
daher die Datenbank-Session-Steuerung 350 eine Oracle-Verbindung
mit der Daten bank 390 für
jede zulässige
Datenbank-Session und hält
sie während
derselben aufrecht. Somit ist nur ein anfänglicher Authorisierungsschritt
erforderlich, um die Verbindung und die Session herzustellen, wodurch
die nachfolgenden Zugriffe auf die Datenbank 390 über die
Datenbank-Session-Steuerung 350 rascher erfolgen. Wenn
der Kunde eine Session beendet, wird diese geschlossen. Der Session-Manager 320 erstellt
eine Zeitablauf-Strategie, durch die die Zeit begrenzt wird, in
der eine geöffnete
Session inaktiv bleiben kann. Nach dieser Zeit wird die Session
geschlossen, unabhängig
davon, ob der Kunde sie betreibt oder nicht.
-
Die Datenbank 390 enthält: Kundeninformationen,
wie z. B. Namen, Adressen und Kontonummern der Kunden, Kundendienstinformationen,
wie z. B. die dem Kunden zugeordneten Telephonleitungen und welche Dienste
von jeder Leitung verfügbar
sind, Anmeldeinformationen, wie z. B. codierte Paßwort-Dateien
für jeden Kunden,
sowie Informationen, die angeben, welche Funktionen für jeden
Kunden verfügbar
sind, wenn dieser das System verwendet.
-
Der Session-Speicher 330 dient
dazu, die Session-Informationen für einen Kunden während einer Session
zu enthalten. Diese Session-Informationen
sind solche, die während
eines Dialogs gespeichert werden, z. B. Informationen, die mit einer
Reihe von Dateneingabe-Webseiten
geliefert werden. Die Session-Informationen umfassen ferner Informationen,
die den Strom der Webseiten für
multiple Webseiten-Transaktionen steuern. Zum besseren Verständnis der
folgenden Beschreibung wird unter Bezug auf die unten gezeigten Tabellen
der Typ der Session-Informationen beschrieben, der erzeugt und für den Strom
der Webseiten im Session-Speicher 330 gespeichert wird.
-
-
Ein Eintrag "Gegenwärtiger Benutzer", wie in Tabelle
1 angegeben, erfolgt durch den Session-Manager 320 und
wird im Session-Speicher 330 für jeden
Kunden oder Benutzer gespeichert, der zum ersten Mal einen authorisierten
Zugriff zum System erlangt. Der "Benutzername" ist der Name, den
der Benutzer während der
Anmeldeprozedur eingegeben hat, die im folgenden beschrieben wird.
Der "Session-Index" nimmt auf die Benutzer-Session
Bezug, die dem Benutzer zugeordnet wird, wenn dieser Zugriff zum
System erhalten hat. In der Praxis ist der Session-Index lediglich
eine Zahl, die von einem Zähler
erzeugt wird, der nach jedem Benutzer weiterschaltet. Die "Zeit des letzten
Zugriffs" ist der
Zeitpunkt, zu dem der Benutzer das letzte Mal in der zugeordneten
Session auf die Datenbank 390 zugegriffen hat. Wenn die
Zeit zwischen den Zugriffen eine vorgegebene Zeitablauf-Dauer, z.
B. 15 min., überschritten
hat, wird die Session geschlossen.
-
Ein Eintrag "Verfügbare
Seite", wie in Tabelle
2 angegeben, erfolgt durch den Session-Manager 320 und
wird im Session-Speicher 330 für jede, einem Kunden auf einer
Webseite zur Verfügung
stehende Option gespeichert, die zu dem Zeitpunkt vom Browser des
Kunden angezeigt wird. Jeder Eintrag " Verfügbare Seite" entspricht einem in der Webseite eingebetteten
URL. Der "Benutzername" entspricht dem "Benutzernamen" in einem Eintrag "Gegenwärtiger Benutzer". Der "Session-Index" entspricht dem "Session-Index" in einem Eintrag "Gegenwärtiger Benutzer". Die "IP-Adresse" ist die Adresse
der Internet-Verbindung des Browsers des Benutzers (d. h. die Client-Adresse).
Diese Adresse wird an die http-Überschriftzeile
jeder Mitteilung oder jeder Anforderung, die vom Browser zum Web-Server 310 gesendet
wird, weitergegeben. Der reale URL ist der URL der Webseite, auf
die sich die jeweilige Option bezieht. Die "Sendeberechtigung" ist eine Zufallszahl, die erzeugt wird,
um den URL zu ersetzen. Die Sendeberechtigung ersetzt das Server-Verzeichnis
und die Dateinamenabschnitte des URL, die in der HTML-Datei zum
Browser zurückgesendet
werden. Der Referenz-URL ist der URL der augenblicklich angezeigten
Webseite.
-
Im Session-Speicher 330 wird
ein einziger Freistellungs-Eintrag, wie in Tabelle 3 gezeigt, aufrechterhalten.
Freistellungen sind solche URL, die ein Browser anfordern kann,
und die vom Web-Server 310 nicht in Form einer Sendeberechtigung
zurückgesandt
werden müssen.
Das heißt,
das aktuelle Server-Verzeichnis und der Dateiname der angeforderten
Webseite sind in der URL angegeben und können, falls erwünscht, auf dem
Browser angesehen werden. In der vorliegenden Ausführungsform
ist der einzige freigestellte URL, der als Freistellung gespeichert
ist, derjenige für
die Anmeldeseite, die frei an jeden anfordernden Browser zurückgesandt
wird.
-
4 ist
ein Diagramm, das den Hoch-Pegel-Verarbeitungsablauf des vorliegenden
Systems darstellt. Wie im Ablaufdiagramm gezeigt, gibt es zwei mögliche Übertragungsstrecken:
eine zur Rücksendung
einer freigegebenen Seite und eine zur Rücksendung aller anderen Seiten.
-
Wenn nichts anderes angegeben ist,
werden alle Mitteilungen vom Browser als Anforderung einer Webseite
angesehen, wobei die einzelne Webseite durch ein URL spezifiziert
ist. Eine Anforderung kann vom Benutzer gelieferte Parameter enthalten,
die mit der URL an den Webserver 310 weitergegeben werden.
Typischerweise sind die Parameter dafür verantwortlich, wie die angeforderte
Webseite formatiert oder erzeugt wird, oder welche Webseite als
Antwort auf die Anforderung zurückgesandt
wird.
-
Im Schritt 400 in 4 erstellt der Browser eine
Verbindung mit dem Server. Dann sendet der Browser eine Anforderung
einer Seite aus, indem er im Schritt 405 den URL für die Seite
an den Server sendet. Der URL wird vom Session-Manager 320 aufgefangen.
-
Wird die Anmeldeseite (die ein Freistellungs-URL
hat) angefordert, empfängt
der Session-Manager 320 im Schritt 410 den URL,
sucht die Freistellungsliste und stellt fest, daß der Anmeldungs-URL von einer Sendeberechtigung
freigestellt ist. Im Schritt 420 authentisiert der Session-Manager 320 die
Anforderung, falls erforderlich. Für die Anmeldung ist keine Authentisierung
erforderlich, weil die Anmeldeseite einem beliebigen Client zurückgesandt
wird. Im vorliegenden Beispiel ist die Anmeldeseite die einzige
freigestellte Seite. Der Authentisierungsschritt wird jedoch gezeigt,
um Beispiele zu zeigen, in denen eine bestimmte Form der Authentisierung
für freigestellte
Seiten außer
der Anmeldeseite erforderlich ist.
-
Im Schritt 430 ruft der
Session-Manager 320 aus dem HTML-Seitenspeicher 360 die HTML-Datei
für die
Anmeldeseite wieder auf. Wenn die HTML-Datei auf einem Browser angezeigt
wird, erzeugt sie eine Webseite, die eine Mitteilungstaste und Eingabekästen für den Benutzer
zur Eingabe eines Namens und eines Paßworts enthält. Die Mitteilungstaste ist
ein Anker für
einen Hyperlink, der einen darunterliegenden URL aufweist, der auf
einen Anmeldungs-Gateway zeigt, der im Gateway-Speicher 380 gespeichert
ist.
-
Bei der Anforderung einer nicht-freigestellten
Seite, d. h. einer Seite, die nicht die Anmeldeseite ist, erhält der Session-Manager 320 im
Schritt 410 den URL, sucht die Freistellungsliste und stellt
fest, daß der URL
nicht von einer Sendeberechtigung freigestellt ist. Im Schritt 415 wird
dann die Anforderung authentisiert, wie im enzelnen im folgenden
beschrieben wird. Ist die Authentisierung erfolgt, wird im Schritt 425 entweder die
HTML-Datei für
die angeforderte Seite aus dem HTML-Seitenspeicher 360 oder
ein Gateway entsprechend dem angeforderten URL aus dem Gateway-Speicher 380 ausgelesen
und vom Gateway-Prozessor 340 verarbeitet, um für die angeforderte
Seite eine HTML-Datei zu erzeugen. Dieser Schritt wird im Einzelnen
im folgenden für
den Fall beschrieben, daß sich
der URL auf den Anmelde-Gateway bezieht, der durch Drücken der Mitteilungstaste
in der Anmeldeseite ausgewählt
wird.
-
Nach dem Schritt 425 oder 430 analysiert
der Session-Manager 320 dann im Schritt 435 die
HTML-Datei und erteilt eine Sendeberechtigung und ersetzt den oder
jeden in die Datei eingebetteten URL mit einer Sendeberechtigung
mit einer zehnstelligen Zufallszahl. Der Parsing- und Sendeberechtigungsschritt
wird im folgenden im Einzelnen beschrieben.
-
Im Schritt 440 wird der
Session-Speicher 330 mit den Details des oder jeder URL
mit Sendeberechtigung und dem jeweiligen Ursprungs-URL aktualisiert.
Auch dieser Schritt wird im folgenden im Einzelnen beschrieben.
-
Schließlich wird die Seite, für die eine
Sendeberechtigung erteilt ist, im Schritt 445 an den anfordernden
Browser zurückgesandt.
-
Im folgenden wird die Anmeldeprozedur
unter Bezug auf das Ablaufdiagramm in 5 beschrieben. Die
Anmeldeprozedur geschieht, unter Bezugnahme auf 4, im Schritt 425. Es wird daher
angenommen, daß der
Benutzer vorher, wie oben beschrieben, die Anmeldeseite aufgerufen
hat, einen Namen, ein Paßwort angegeben
hat und zum Start der Anmeldeprozedur auf die Mitteilungstaste gedrückt hat.
Der mit der Mitteilungstaste gekoppelte URL bezieht sich auf einen
Gateway-Speicher 380, der mit "login.cgi" bezeichnet ist. Name und Paßwort werden
als Parameter mit der Aufforderung zum login.cgi gesandt, wobei
das http-POST-Verfahren angewendet wird. Alle Anforderungen werden
vom Browser automatisch codiert, um die Möglichkeit zu verringern, daß ein übertragender
URL oder ein Paßwort
aufgefangen und von einer fremden, betrügerischen Partei für einen
Zugang zur Datenbank 390 verwendet wird. Es liegt auf der
Hand, daß der
Server mit der geeigneten Codierfunktion ausgestattet ist. Die Umkehrung
trifft ebenfalls zu: Alle Server-Antworten sind so codiert, daß der Browser
sie decodieren kann. Sowohl die Codierung als auch die Decodierung
erfolgen durch das SSL-Protokoll (Secure Sockets Layer).
-
Im Schritt 500 erzeugt der
Session-Manager 320 als Antwort auf den Empfang der Anforderung
des login.cgi eine Benutzer-Session, indem er dem Benutzer den nächsten Session-Index
zuweist. Dann signalisiert der Session-Manager 320 dem
Gateway-Prozessor 340, den Anmelde-Gateway zu fahren. Dabei überträgt der Session-Manager 320 auch
Namen und Paßwort
zum Gateway-Prozessor 340. Im Schritt 510 bildet der
Gateway-Prozessor 340, gesteuert vom Anmelde-Gateway, eine Verbindung
mit der Datenbank 390. Dann überträgt der Gateway-Prozessor 340 im
Schritt 520 für
den Versuch einer Anmeldung in der Datenbank 390 den Benutzernamen
und das Paßwort
in einer geeigneten Form zur Datenbank 390. Im Schritt 530 wird
eine nicht erfolgreiche Anmeldung durch die Datenbank 390 dem
Gateway-Prozessor 340 mitgeteilt. Als Reaktion darauf erzeugt
der Gateway-Prozessor 340 eine Fehler-Webseite, die dem
Session-Manager 320 zurückgesandt
wird. Darauf sendet der Session-Manager 320 die
Fehler-Webseite im Schritt 540 an den Browser zurück.
-
Nach erfolgreicher Anmeldung, die
von der Datenbank 390 in geeigneter Weise mitgeteilt wird,
initiiert der Gateway-Prozessor 340 im Schritt 550 für den Benutzer
die Erzeugung einer Datenbank-Session.
Der Gateway-Prozessor 340 erzielt das zunächst dadurch,
daß er
die Verbindung mit der Datenbank 390 freigibt. Danach signalisiert
der Gateway-Prozessor 340 der Datenbank-Session-Steuerung 350,
eine Datenbank-Session mit der Datenbank 390 für den nun
authorisierten Benutzer unter Verwendung des gleichen Benutzernamens
und des gleichen Paßworts
einzurichten. Die Daten bank-Session-Steuerung 350 logged
sich wieder in die Datenbank 390 ein und erzeugt eine Datenbank-Session.
Nachdem sie im Schritt 560 die Session erzeugt hat, greift
die Datenbank-Session-Steuerung 350 im Schritt 560 auf
den Session-Speicher 330 zu und aktualisiert ihn, indem
ein Eintrag "Gegenwärtiger Benutzer" erzeugt wird, der
den Namen des Benutzers, einen zugewiesenen Session-Index und die
Zugriffszeit enthält
(die bei einem anschließenden
Zugriff als die letzte Zugriffszeit behandelt wird).
-
Nach der Einrichtung einer Datenbank-Session
im Schritt 570 erzeugt der Gateway-Prozessor 340, gesteuert
durch den Anmelde-Gateway,
eine "Direktive" für den Browser
des Benutzers, um zu veranlassen, daß ein Warn-Bildschirm angezeigt
wird. Dieser Bildschirm ermöglicht
einem Benutzer, die Anmeldung abzubrechen oder fortzusetzen. Wenn
der Benutzer die Fortsetzung gewählt
hat, ruft im Schritt 570 der Gateway-Prozessor 340 eine
Verarbeitung (die als homepage.cgi bezeichnet ist) auf und läßt diese
laufen; sie erhält
die vom Session-Manager 320 und der Datenbank (über die
Datenbank-Session-Steuerung 350)
gelieferten Kundeninformationen, um eine spezielle Willkommensseite
für den
Benutzer zu erzeugen. Die Parameter legen fest, welche Optionen
dem Benutzer von der zu erzeugenen Willkommensseite zur Verfügung stehen. Jede
Option bildet einen Hyperlink zu einem weiteren entsprechenden Gateway
oder einer Webseite. Im Schritt 580 wird die Willkommensseite
auf der Basis der Parameter erzeugt. Der nächste Schritt entspricht dem Schritt 435 von 4.
-
Der Parsing- und Sendeberechtigungsschritt
(Schritt 435 von 4)
wird im folgenden unter Bezug auf 6 beschrieben.
-
Gemäß 6 analysiert die Session-Steuerung bei
Empfang der angeforderten HTML-Datei im Schritt 600 (oder
sie sucht der Reihe nach von Anfang an) die Datei, um URL oder anderen
Typen von Referenzen auf weitere Ressourcen, die im ASCII-Text der
Datei eingebettet sind, aufzufinden. Typischerweise beziehen sich
die vorhandenen URL auf Webseiten, die dem Benutzer weitere Optionen
bieten, oder auf Bilddateien für
die Webseitentasten oder Bilder, die in die Webseite einzubauen
sind, um beispielsweise den visuellen Eindruck der Webseite zu steigern.
Im folgenden werden der größeren Klarheit
halber nur Hyperlink-URL, die weitere Optionen bieten, sowie URL
von Bilddateien beschrieben.
-
Im Schritt 610 wird eine
Verarbeitungsschleife eingerichtet, um jedes Mal, wenn ein URL entdeckt
wird, eine Sendeberechtigung zu erteilen. Im Schritt 620 wird
ein aufgefundener URL im Speicher gespeichert. Dann wird im Schritt 630 eine
Sendeberechtigung in Form einer Zufallszahl erzeugt, wobei ein Systemaufruf
einer Funktion, die als "elf_hash()" bezeichnet ist,
verwendet wird, der auf Unix-Rechnerplattformen verfügbar ist. Diese
Funktion ist ein Pseudo-Zufallszahlen-Generator, der einen mit null
endenden Strang nimmt und auf der Grundlage des Strangs eine lange
ganze UNIX-Zahl zurücksendet.
Im vorliegenden Fall ist der im Aufruf "elf_hash()" verwendete Strang eine Kettung aus:
einer
Zufallszahl; dem Anmeldenamen des Benutzers, dem Session-Index des
Benutzers; dem angeforderten URL und der augenblicklichen Zeit.
-
Ein solcher Strang bietet unausweichlich
eine hohe Wahrscheinlichkeit, daß die zurückgesandte ganze Zahl einmalig
ist. Die zurückge sandte
ganze Zahl wird aber mit allen anderen Sendeberechtigungen im Session-Speicher 330 verglichen,
um zu überprüfen, daß sie einzigartig
ist. Ist sie das nicht, wird eine neue Sendeberechtigung unter Verwendung
von elf_hash() erzeugt, wobei der Zufallsteil der Zahl der Strangkettung
neu erzeugt wird. Darüber
hinaus pausiert der Erzeugungsprozeß eine Sekunde lang, um sicherzustellen,
daß die augenblickliche
Zeit eine andere ist. Die elf_hash()-Funktion ist derart, daß sogar
eine kleine Änderung
im als Parameter weitergegebenen Strang dazu führen kann, daß eine vollständig andere
Zufallszahl erzeugt wird. Diese Prozedur wird solange wiederholt,
bis eine einzigartige Sendeberechtigung erzeugt wurde.
-
Im Schritt 640 wird der
gespeicherte URL durch Ersetzen des Serververzeichnisses und von
Teilen des URL-Dateinamens mit der Sendeberechtigung modifiziert.
Der URL mit Sendeberechtigung wird dann zur Datei zurückkopiert
und ersetzt den ursprünglichen
URL.
-
Im Schritt 650 wird im Session-Speicher 330 ein
Eintrag "Seiten-Option" gespeichert, der
die Form aufweist, wie in Tabelle 2 oben gezeigt ist.
-
Diese Prozedur wird für alle URL
wiederholt, die in der Datei entdeckt werden. Schließlich werden
im Schritt 660 die URL mit Sendeberechtigung, die im Speicher
gespeichert sind, mit den URL mit Sendeberechtigung jedes Eintrags "Seiten-Option" verglichen, die
im Session-Speicher 330 gespeichert
sind und die den Session-Index für
den fraglichen Benutzer haben. Jeder Eintrag "Seiten-Option", der nicht den entsprechenden URL mit
Sendeberechtigung im Speicher aufweist, wird als alt angesehen und
dient nicht länger
als von der angeforderten Seite verfügbare gültige Benutzeroption. Folglich
wird jeder alte Eintrag aus dem Session-Speicher 330 gestrichen.
Dieser Schritt gleicht dem Schritt 440 von 4 zur Aktualisierung des Session-Speichers 330.
-
Die Schritte zur Authentisierung
gemäß Schritt 415 von 4 werden unter Bezug auf 7 im folgenden beschrieben.
-
Gemäß 7 greift im Schritt 700 der
Session-Manager 320 auf den Session-Speicher 330 zu,
um den als Teil der Anforderung erhaltenen URL mit Sendeberechtigung
mit einer URL in einem Seitenoptionseintrag zu vergleichen. Gibt
es keinen passenden URL mit Sendeberechtigung, wird im Schritt 710 der
URL als ungültig
beurteilt, und im Schritt 730 initiiert der Session-Manager 320 die
Anmeldeprozedur, wie oben beschrieben, indem die Anmeldeseiten-HTML-Datei
aus dem HTML-Seitenspeicher 360 aufgerufen wird und die Datei
an den anfordernden Browser zurückgesandt
wird. Der Benutzer muß sich
dann anmelden, bevor ihm der Zugang zur Datenbank 390 erlaubt
wird. Wenn der URL im Schritt 710 gefunden wurde, erfolgt
im Schritt 720 eine weitere Authentisierung auf der Grundlage
der Identität
des zugreifenden Browsers. Sie hat die Form einer IP-Adresse für den Browser
und wird vom Browser im Kopf der Anforderung aufgeführt. Um
als authentisch angesehen zu werden, muß die IP-Adresse gleich der im Seitenoptionseintrag
für die
betreffende Sendeberechtigung gespeicherten IP-Adresse sein. Ist
die IP-Adresse diejenige, die sich im Seitenoptionseintrag befindet,
dann wird im Schritt 740 der reale URL für die Datei
aus dem Seitenoptionseintrag aufgerufen. Der reale URL verweist
auf die vom Benutzer angeforderte erforderliche HTML-Datei im Dateispeicher
oder auf das Gateway im Gateway-Speicher 380. Ist die IP-Adresse
ungültig,
das heißt,
entspricht die IP-Adresse nicht der IP-Adresse im entsprechenen
Sei tenoptionseintrag, wird im Schritt 730 die Anmeldeprozedur
gestartet.
-
Unter Bezug auf 8 wird nun die Erzeugung von Webseiten
durch Seitenaufbau-Gateways beschrieben.
-
Wenn als Antwort auf eine Benutzeranfrage
der Gateway-Prozessor 340 vom Gateway-Speicher 380 (Schritt 425 von 4) einen Seitenaufbau-Gateway
aufruft, holt gemäß 8 der Gateway-Prozessor 340 im
Schritt 800 die Information aus der Datenbank, die verwendet
werden muß,
um die Webseite zu erzeugen. Wie oben beschrieben, verlangen einige
Benutzerdialoge, die mehrere Webseiten für eine Informationseingabe
benötigen,
daß die
Informationseingabe solange gespeichert wird, bis der Dialog abgeschlossen
ist und eine MCSS-Transaktion
aufgrund der Information gestartet wird. Daher greift im Schritt 810 der
Gateway-Prozessor, falls erforderlich, auf den Session-Speicher 330 zu,
um beliebige frühere
Dialoginformationen wieder aufzurufen, die auch in die Webseite
integriert werden müssen.
Dann wird im Schritt 820 die HTML-Datei für die Webseite
auf der Grundlage der jeweiligen Information durch bekannte Prozeduren
erzeugt. Die Prozedur geht sodann zu Schritt 435 von 4 weiter.
-
Die Sendeberechtigungen werden jedesmal,
wenn auf eine neue Seite zugegriffen wird, neu erzeugt und werden
dann aus dem Session-Speicher 330 entfernt,
wenn die entsprechende Option nicht länger verfügbar ist. Auch wenn der Benutzer
ein URL mit Sendeberechtigung speichern oder sich daran erinnern
kann, wird der URL mit Sendeberechtigung aber nicht im Session-Speicher 330 zu
finden sein, wenn der Benutzer später versuchen sollte, es zu
verwenden. Daraus folgen im Wesentlichen zwei Dinge:. Zunächst einmal
ist der Benutzer gezwungen, in einem Dienst auf Seiten zuzugreifen,
die vom Diensteanbieter in einer bestimmten Weise festgelegt sind;
ein Benutzer kann nicht willkürlich
eine beliebige Seite erhalten, die er sich auswählt, es sei denn, die Seite
Sendeberechtigung/URL-Paar befindet sich im Session-Speicher 330.
Zweitens kann kein Benutzer auf Informationen zugreifen, indem er
den URL von jemand anderem verwendet. Die erstere Implikation ermöglicht einem
Diensteanbieter eine sehr enge Kontrolle darüber, wie ein Benutzer auf Informationsseiten
zugreift. Beispielsweise kann ein Dienst ein On-Line-Waren-Bestellservice sein,
für den
ein Benutzer bestimmte Informationen zur Verfügung stellen und eine bestimmte
Auswahl treffen muß,
damit eine Bestellung in zufriedenstellender Weise möglich ist.
Die Bestellprozedur kann eine Reihe von verschiedenen Seiten beinhalten,
die dem Benutzer in Stufen geliefert werden, die in Abhängigkeit
von der in jeder Stufe getroffenen Auswahl variieren können. Die
vorliegende Ausführungsform
würde genau
die Art und Weise steuern, in der der Benutzer auf die benötigten Seiten
zugreifen kann.
-
In der oben beschriebenen Ausführungsform
ist die Benutzer-Authorisierung,
z. B. durch die Angabe eines Benutzernamens und eines Paßworts,
nur für
eine anfängliche
Anmeldeseite erforderlich. Eine Authorisierung dieser Art ist nicht
für beliebige
Seiten erforderlich, auf die beispielsweise von einer Willkommensseite zugegriffen
wird, die nach einer Anmeldeseite geliefert wird.
-
Es ist vorgesehen, daß die in
diesem System verkörperten
Grundlagen auch für
andere Zwecke verwendet werden können,
um beispielsweise ein "In-Lining" zu verhindern. Hierbei
handelt es sich um eine Praxis, in der ein Web-Benutzer Hyperlinks
in seine Webseiten einbaut, die auf Web-Quellen deuten, die von
anderen Web- Benutzern
erzeugt wurden. Typischerweise wird In-Lining verwendet, um auf
dem Web basierende Bilddateien anderer Parteien in die eigenen Webseiten
eines Benutzers einzubetten und auf diese Weise die intellektuelle
Arbeit Anderer zu nutzen.
-
Allgemein bieten die Ausführungsformen
der Erfindung einem Datenbankeigentümer, beispielsweise einem Diensteanbieter,
eine Einrichtung zur Kontrolle, wer Zugriff auf in der Datenbank
gespeicherte Informationen hat, und eine Einrichtung zur Kontrolle,
wie genau von einem authorisierten Benutzer auf die Daten zugegriffen
wird.
-
Der Fachmann wird ohne Zweifel befähigt sein,
zu weiteren Ausführungsformen,
Aspekten oder Varianten der Erfindung zu gelangen, die, wie beansprucht,
ebenfalls zum Umfang der vorliegenden Erfindung gehören.