Web Server konfigurieren und Verbindung verwalten

4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next

Version 2003 (Geändert)


4th Dimension, 4D Server und 4D Client enthalten einen Server, mit dem Sie die Daten Ihrer Datenbank im Web transparent und dynamisch veröffentlichen können.

Dieser Abschnitt beschreibt die notwendigen Schritte zum Veröffentlichen von 4D Datenbanken und zum Anmelden an Browser sowie die Verwaltung der Verbindung.

Eine 4D Datenbank im Web nutzen

Zum Veröffentlichen einer 4D Datenbank mit 4th Dimension, 4D Server oder 4D Client im Web benötigen Sie folgende Elemente:

In Ihrer Anwendung muss die erforderliche Web Extension für 4D, 4D Server oder 4D Client installiert sein. Weitere Informationen dazu finden Sie in Ihrem 4D Installationshandbuch.

Web Verbindungen werden mit dem TCP/IP Protokoll über das Netzwerk gemacht.

- Sie müssen TCP/IP auf Ihrem Rechner installiert und korrekt konfiguriert haben. Weitere Informationen finden Sie in der Dokumentation zu Ihrem Rechner oder Betriebssystem.

- Wollen Sie SSL für Netzwerkverbindungen einsetzen, stellen Sie sicher, dass die erforderlichen Komponenten korrekt installiert sind. Weitere Informationen dazu finden Sie im Abschnitt SSL Protokoll.

Nach dem Installieren bzw. Prüfen der entsprechenden Elemente müssen Sie den Web Server von 4D aus starten. Das wird nachfolgend beschrieben.

Veröffentlichung erlauben (4D Client)

Alle Rechner mit 4D Client 2003 können die Datenbank, an welche sie angeschlossen sind, im Web veröffentlichen. Diese Funktionalität können Sie über das 4D Kennwortsystem für jeden 4D Client einzeln steuern.

4D Server betrachtet Client Web Lizenzen als Plug-In Lizenzen. So können Sie, wie für Plug-Ins, die Zugriffsberechtigung auf eine spezifische Benutzergruppe beschränken.

Mit entsprechender Zugriffsberechtigung können Sie den Kennwortdialog in 4D Client öffnen und die Einstellungen verändern. Wählen Sie bei geöffnetem Kennwortdialog im Menü Kennwörter den Befehl Zugriffsrechte für Plug-Ins.

Auf dem Bildschirm erscheint das Dialogfenster zur Zugriffsverwaltung. Wählen Sie im oberen Bereich Web Server und weisen im darunterliegenden PopUp-Menü eine Benutzergruppe zu.

Web Server auf MacOS konfigurieren

Auf MacOS X benötigen TCP/IP Ports, welche für Veröffentlichung im Web reserviert sind, spezifische Zugriffsrechte: Nur der "Root" Benutzer des Rechners kann ein Programm über diese Ports starten. Es handelt sich um die Ports zwischen 0 und 1023.

Zur Erinnerung: Eine 4D Datenbank wird standardmässig auf dem TCP Port 80 publiziert, im gesicherten Modus auf Port 443 (SSL).

Veröffentlichen Sie eine 4D Datenbank auf dem standardmässigen TCP Port ohne Anmeldung als "Root" Benutzer, erscheint eine Fehlermeldung:

Sie können die standardmässige Port-Nummer für HTTP Publikation verändern, jedoch nicht die Publikation im gesicherten Modus, diese muss über den Port 443 erfolgen.

Es gibt drei Optionen zum Veröffentlichen Ihrer Datenbank:

 Die von 4D Web Server verwendete Nummer für den TCP-Port verändern.

Sie müssen einen Port grösser als 1023 verwenden, z.B. Port 8080.

Diese Änderung machen Sie im Dialogfenster Einstellungen der Datenbank. (siehe Abschnitt Einstellungen des Web Server) oder über den Befehl SET DATABASE PARAMETER. In diesem Fall müssen Sie die Port Nummer nach jeder URL der Datenbankverbindung angeben, z.B. http://www.meineDB.com:8080/Seiten/meineSeite.html:.

Das gilt nur für die standardmässige Veröffentlichung von 4D Web Server, also für Server ohne SSL Protokoll. Für die Veröffentlichung mit SSL müssen Sie immer Port 443 verwenden. Um einen 4D Web Server in einer gesicherten Umgebung zu veröffentlichen, müssen Sie sich als "Root" Benutzer anmelden.

Anmelden als "Root" Benutzer

Der "Root" Benutzer ist auf einem Rechner mit MacOS X nicht standardmässig aktiviert. Sie müssen ihn zuerst aktivieren und sich dann mit diesem Benutzernamen anmelden.

Sie aktivieren einen "Root" Benutzer mit dem Hilfsprogramm NetInfo Manager von Apple, das installiert ist in Applications:Utilities.

Haben Sie das Hilfsprogramm gestartet, wählen Sie im Menü Domain den Befehl Sicherheit und dann die Option Root-Benutzer aktivieren. Zuvor müssen Sie den Administrator des Rechners identifiziert haben. Wählen Sie dazu im gleichen Menü den Befehl Identifizieren. Geben Sie den Kurznamen und das Kennwort des Administrators ein.

Weitere Informationen dazu finden Sie in der Dokumentation von MacOS X.

Ist der "Root" Benutzer erstellt, schliessen Sie die Sitzung (Apple Menü) und melden sich mit dem "Root" Benutzernamen an. Sie können dann den Web Server auf Port Nummer 80 starten bzw. einen 4D Web Server mit einer sicheren Verbindung.

4D Web Dienste ohne Root Sitzung verwenden

Auf MacOS X sind für die TCP/IP Ports zur Veröffentlichung im Web (Port 0 bis 1023) spezifische Zugriffsrechte erforderlich: Nur der "Root" Benutzer des Rechners kann eine Anwendung über diese Ports starten. Wollen Sie eine 4D Datenbank im Web veröffentlichen, müssen Sie entweder als "Root" Benutzer angemeldet sein oder die TCP Port-Nummer der Datenbankpublikation ändern. 4D bietet nun die Möglichkeit, eine 4D Web Datenbank auf MacOS X zu veröffentlichen ohne "Root" Benutzer zu sein bzw. ohne hinter jeder URL-Verbindung zum Server die Portnummer anzugeben.

Diese Neuerung basiert auf Porttransfer. Dabei wird auf Systemebene die Anfrage von der Standard TCP Portnummer (80) auf den Port übertragen, der in der 4D Datenbank definiert wurde. Er muss grösser als 1023 sein.

Das funktioniert jedoch nicht mit gesicherten Verbindungen, da der TCP Port 443 nicht änderbar ist.

Zur Durchführung dieser Operation müssen Sie sich als "Root" Benutzer anmelden, das Terminal starten und Unix Befehle verwenden.

Um den Porttransfer auf Mac OS X einzurichten (mit der IP Adresse 192.168.93.45):

1. Öffnen Sie eine Sitzung als Root Benutzer.

Weitere Informationen dazu finden Sie im Handbuch 4D–6.8–Upgrade.

2. Starten Sie das Programm Terminal.

Es liegt unter Applications:Utilities.

3. Geben Sie "su" ("substitute user" Sonder Account) ein und dann das Kennwort des Root Benutzers.

4. Geben Sie folgenden Befehl ein:

ipfw add 400 fwd 192.168.93.45,8080 tcp from any to 192.168.93.45 80

Gegebenenfalls müssen Sie "192.168.93.45" durch Ihre eigene IP Adresse ersetzen.

"400" ist die Referenznummer für diese Operation.

5. Beenden Sie das Programm Terminal.

6. Starten Sie Ihr 4D Programm als Standardbenutzer.

7. Setzen Sie im Dialogfenster Datenbankeigenschaften den TCP Port zum Veröffentlichen im Web auf 8080.

Ab jetzt kann Mac OSX die auf Port 80 empfangenen Anfragen sofort auf Port 8080 übertragen, und zwar in einer für den Benutzer transpartenten Weise.

Um diese Einstellung wieder rückgängig zu machen:

1. Starten Sie das Programm Terminal und geben Sie ein:

ipfw delete 400

Die auf Port 80 empfangenen Anfragen werden nicht mehr auf Port 8080 übertragen.

Web Server starten

Es gibt drei Möglichkeiten, den Web Server von 4D zu starten:

Über das Menü Web Server in der Hauptmenüleiste der Benutzerumgebung von 4D Server, 4th Dimension oder 4D Client. Mit diesem Menü können Sie den Web Server je nach Bedarf starten oder beenden:

Die Datenbank wird beim Öffnen automatisch publiziert. Wählen Sie dazu in der Designumgebung von 4D Server oder 4th Dimension im Menü Datei/Ablage die Option Einstellungen, klicken Sie auf die Registerkarte Web Server I und dann unter dem Thema Web auf den Eintrag Veröffentlichung:

Markieren Sie unter Web Server Start-Optionen das Kontrollkästchen Automatisch starten und klicken auf die Schaltfläche OK. Ihre Datenbank wird nun bei jedem Öffnen mit 4th Dimension, 4D Server oder 4D Client automatisch im Web publiziert.

Per Programmierung durch Aufrufen des Befehls START WEB SERVER.

Tip: Sie müssen 4D nicht verlassen und die Datenbank erneut öffnen, um das Publizieren der Datenbank im Web zu starten oder zu stoppen. Sie können den Web Server über das Menü Web Server oder mit den Befehlen START WEB SERVER und STOP WEB SERVER beliebig oft unterbrechen oder wieder starten.

Anschluss an eine 4D Datenbank, die im Web publiziert ist

Sobald eine 4D Datenbank im Web publiziert wird, können Sie über einen Web Browser darauf zugreifen. Gehen Sie folgendermaßen vor:

Hat Ihre Web Site einen registrierten Namen (z.B. RosenIntl "www.RosenIntl.com"), geben Sie diesen Namen im Bereich Open, Address oder Location Ihres Browsers an. Drücken Sie dann die Eingabetaste.

Hat Ihre Web Site keinen registrierten Namen, geben Sie die IP Adresse Ihres Rechners im Bereich Open, Address oder Location Ihres Browsers an (z.B. 123.4.567.89). Drücken Sie dann die Eingabetaste.

Ihr Browser sollte nun die Home Page Ihrer Website anzeigen. Bei Veröffentlichen der Datenbank mit der Standardeinstellung sollte die Home Page des 4D Web Servers erscheinen. Auf dieser Seite können Sie die Verbindung und die Server Operation prüfen:

1. Die Verbindung schlägt fehlt und Sie erhalten eine Meldung wie "...der Server akzeptiert keinen Anschluß oder ist besetzt...".

In diesem Fall prüfen Sie folgendes:

Haben Sie den Namen oder die IP Adresse richtig eingegeben?

Läuft 4th Dimension, 4D Server bzw. 4D Client und hat das Programm den Web Server gestartet?

Ist die Datenbank für die Benutzung nicht auf dem Standard Web TCP Port konfiguriert, sondern auf einem anderen TCP Port (siehe Punkt 4)?

Ist TCP/IP sowohl auf dem Server als auch auf dem Browser Rechner korrekt konfiguriert? Beide Rechner müssen entweder auf dem selben Netz bzw. Unternetz liegen oder ihre Router müssen korrekt konfiguriert sein.

Prüfen Sie die Anschlüsse Ihrer Hardware.

Testen Sie nicht lokal Ihr eigenes Web, sondern wollen Sie eine Verbindung zu einer Web Datenbank herstellen, die von jemand anderem im Internet oder Intranet benutzt wird, kann die Meldung stimmen: Der Server ist tatsächlich ausgeschaltet oder besetzt. Bauen Sie die Verbindung später wieder auf oder wenden Sie sich an den Web Provider.

2. Sie erhalten eine Verbindung, jedoch erscheint immer der Fehler HTTP 404 "Datei wurde nicht gefunden". Das bedeutet, dass die Home Page nicht definiert wurde. Prüfen Sie, ob die Home Page an der Stelle existiert, die in den Einstellungen der Datenbank definiert wurde. (siehe Abschnitt Einstellungen des Web Server) oder verwenden Sie den Befehl SET HOME PAGE.

3. Sie erhalten eine Verbindung, die Web Site enthält jedoch die Meldung, "Menüleiste/Diese Datenbank wurde noch nicht für das Web angepasst. Erstellen Sie zuerst eine Menüleiste". Das bedeutet, dass Sie korrekt mit der Datenbank im kontextuellen Modus verbunden sind. Es wurden jedoch weder eine Home Page noch eine Menüleiste definiert. 4D veröffentlicht die Menüleiste # 1 als standardmässige Home Page, wenn keine HTML Seite spezifiziert ist. Weitere Informationen dazu finden Sie im Abschnitt Web Server, Einstieg.

4. Sie erhalten eine Verbindung, jedoch NICHT die erwartete Web Site! Dies kann vorkommen, wenn mehrere Server gleichzeitig auf demselben Rechner laufen.

Beispiele:

Sie haben nur eine 4D Web Datenbank auf einem Windows NT 4.0 System laufen, das jedoch bereits eigene Web Server in Betrieb hat.

Sie haben mehrere 4D Web Datenbanken auf demselben Rechner laufen.

In diesem Fall müssen Sie die Nummer des TCP Port ändern, auf dem Ihre 4D Web Datenbank läuft. Die Vorgehensweise wird im Abschnitt Einstellungen des Web Server beschrieben.

Hinweis: Ist Ihre Datenbank durch Kennwortsystem geschützt, müssen Sie ausserdem einen gültigen Benutzernamen und Kennwort eingeben. Weitere Informationen dazu finden Sie im Abschnitt Sicherheit der Verbindung.

Web Prozess verwalten

Verschiedene 4D Prozesse unterstützen die Publikation der Datenbanken im Web und die Verbindung mit den Browsern. Diese Prozesse und ihre Merkmale werden im folgenden beschrieben.

Prozess Web Server

Der Prozess Web Server läuft und wird ausgeführt, wenn die Datenbank als Web Seite publiziert wird.

Auf der Seite Prozess im Fenster Runtime Explorer ist der Prozess Web Server der dritte laufende Prozess in der Ausführung:

Dies ist ein Prozess des 4D Kernels, d.h. Sie können ihn nicht über das Menü Design Prozeß mit dem Menübefehl Abbrechen annullieren. Ebensowenig können Sie eine Interprozess Kommunikation über Befehle wie CALL PROCESS testen. Beachten Sie, dass der Prozess Web Server keine Komponenten aus der Benutzeroberfläche hat, wie z.B. Fenster, Menüs, usw).

Sie starten den Prozess Web Server auf folgende Weise:

Wählen Sie in der Benutzerumgebung von 4th Dimension/4D Client oder 4D Server im Menü Web Server den Menübefehl Start Web Server.

Rufen Sie den 4D Befehl START WEB SERVER auf.

Öffnen Sie eine Datenbank, bei der im Dialogfenster Einstellungen unter Web Server Start-Optionen die Option Automatisch starten markiert ist.

Sie brechen den Prozess Web Server auf folgende Weise ab:

Wählen Sie in der Benutzerumgebung von 4th Dimension/4D Client oder 4D Server im Menü Web Server den Menübefehl Stop Web Server.

Rufen Sie den 4D Befehl STOP WEB SERVER auf.

Verlassen Sie die Datenbank, die gerade publiziert wird.

Der Prozess Web Server hat nur die Aufgabe, die Versuche für eine Verbindung zum Web zu verwalten. Starten des Prozesses Web Server bedeutet also nicht, dass Sie eine aktuelle Verbindung zum Web öffnen, sondern lediglich, dass Web Anwender Web-Verbindungen aufbauen können. Abbrechen des Prozesses Web Server bedeutet nicht, dass Sie derzeit laufende Web Verbindungsprozesse - sofern vorhanden - schliessen, sondern lediglich, dass Web Benutzer nicht länger neue Web Verbindungen herstellen können.

Gibt es beim Abbrechen des Prozesses Web Server noch offene Web Verbindungsprozesse, wird jeder der Prozesse ausgeführt, bis der Web Anwender aufhört, Anfragen an die Datenbank zu senden. Die Zeitspanne hierfür kann grösser oder gleich dem festgelegten Timeout für den Web Server sein. Dieses wird entweder im Dialogfenster Einstellungen der Datenbank oder per Programmierung über den Befehl SET WEB TIMEOUT festgelegt.

Web Verbindungsprozesse

Jeder Versuch des Web Browsers, sich an die Datenbank anzumelden, wird vom Web Server Prozess verwaltet. Dieser führt folgende Schritte aus:

Er erstellt zuerst einen bzw. mehrere temporäre lokale 4D Prozesse, auch Web Prozesse genannt, zum Prüfen und Verwalten der Verbindung mit dem Web Browser.

Hinweis: Diese temporären Prozesse verwalten jede HTTP Anfrage. Sie werden schnell ausgeführt und dann annulliert oder auf Warten gesetzt. 4D friert diese Prozesse für Web Server im nicht-kontextuellen Modus für 5 Sekunden ein und verwendet sie wieder für zukünftige HTTP Anfragen. Dieses Verhalten können Sie über den Befehl SET DATABASE PARAMETER (Selektoren 6 und 7) steuern.

Erfordert die Anfrage kein Erstellen eines Kontexts, verwaltet der Web Prozess das Abarbeiten der Anfrage und sendet bei Bedarf eine Antwort an den Browser. Der temporäre Prozess wird dann annulliert oder auf Warten gesetzt (siehe oben).

Erfordert die Anfrage das Erstellen eines Kontext, wird zuerst geprüft, ob Ressourcen für die neue Verbindung verfügbar sind. Ist das nicht der Fall, wird an den Web Browser folgende Meldung gesendet: "Diese Datenbank wurde noch nicht für das Web eingerichtet". Bei erfolgreich gestarteter Web Verbindung startet ein Web Verbindungsprozess, der die gesamte Web Sitzung für diese Verbindung verwaltet. Das nachfolgend gezeigte Fenster Prozess zeigt den Web Verbindungsprozess "Web Connection# 1165990315". Er startet, nachdem eine Verbindung mit dem Web Browser hergestellt wurde:

Beachten Sie auch den gestoppten fünften Prozess, der vom Prozess Web Server gestartet und beendet wurde. Dieser Prozess verwaltet das Starten der Web Verbindung.

Wechselt die Verbindung während der Sitzung vom kontextuellen Modus in den nicht-kontextuellen Modus, wird der Web-Verbindungsprozess annulliert.

Beim Wechsel vom nicht-kontextuellen Modus in den kontextuellen Modus wird ein numerierter Web Verbindungsprozess erstellt.

Hinweis: Weitere Informationen zur Kontextverwaltung finden Sie im Abschnitt Kontextueller Modus.

Referenz

SEND HTML FILE, SET HTML ROOT, SET WEB DISPLAY LIMITS, SET WEB TIMEOUT, STOP WEB SERVER.


4D - Documentation   Français   English   German   4D Programmiersprache, Befehle nach Themen   4D Programmiersprache, Befehle alphabetisch   4D Programmiersprache, Konstanten nach Themen   Back   Previous   Next