Dieses Kapitel beschreibt den Zweck und die Funktionen des Natural Web I/O Interface.
Einschränkungen bei der Verwendung des Natural Web I/O Interface mit Natural-Anwendungen
Unterschiede zwischen dem Natural Web I/O Interface Client und einer Terminal-Emulation
Anmerkung
In dieser Einführung wird schwerpunktmäßig beschrieben, wie das Natural Web I/O
Interface in einer Laufzeitumgebung (Produktionsumgebung) funktioniert. Der Abschnitt
Unterschiede in einer
SPoD-Entwicklungsumgebung erläutert kurz die spezielle Version,
die in einer SPoD-Entwicklungsumgebung verwendet wird.
Das Natural Web I/O Interface dient der Ausführung von Natural-Anwendungen in einem Webbrowser. Es unterstützt die folgenden Funktionen in vollem Umfang:
Die Anzeige und Eingabe von Unicode-Zeichen. Siehe Behandlung von Unicode-Ein-/Ausgaben in Natural-Anwendungen in der Unicode- und Codepage-Unterstützung-Dokumentation.
Rich-Internet-Anwendungen, die mit Natural for Ajax entwickelt wurden.
Die Natural Web I/O Interface besteht aus einem Server und einem Client.
Der Natural Web I/O Interface Server ermöglicht es Ihnen, einen Browser als Ein-/Ausgabe-Vorrichtung für Natural-Anwendungen zu verwenden. Der Server führt die Benutzerauthentifizierung durch, eröffnet die Natural-Sitzung und verwaltet die Eingabe/Ausgabe zwischen Natural und dem Client. Der Natural Web I/O Interface Server wird auf demselben Rechner installiert wie die Natural-Anwendung.
Der Client übernimmt die Kommunikation zwischen dem Webbrowser des Benutzers und dem Natural Web I/O Interface Server. Er wandelt die Ausgaben der Natural-Anwendung in Webseiten um und gibt die Benutzereingaben an Natural zurück.
Es werden zwei Arten von Clients unterstützt:
Natural Web I/O Interface Client für die Anzeige zeichenbasierter Anwendungen im Webbrowser. Masken (Maps) mit GUI Controls werden in diesem Fall nicht unterstützt.
Natural for Ajax für die Anzeige von Rich-Internet-Anwendungen im Webbrowser. Weitere Informationen zu dieser Art von Client finden Sie in der Natural for Ajax-Dokumentation.
Der Client wird auf einem Web-/Anwendungsserver installiert. Dies kann auf einem beliebigen Rechner im Netzwerk erfolgen.
Das Natural Web I/O Interface empfängt Daten aus einer Natural-Anwendung und liefert Webseiten an den Webbrowser des Benutzers. Dies wird in der folgenden Grafik veranschaulicht:

Die Kommunikationsschritte zum Ausführen einer Natural-Anwendung im Webbrowser sind:
Der Benutzer gibt die Adresse (URL) einer Anmeldeseite in den Webbrowser ein. Der Client zeigt dann die Anmeldeseite im Webbrowser an.
Anmerkung
Informationen zum Aufrufen und Konfigurieren der Anmeldeseite finden Sie
Konfiguration des
Client.
Der Benutzer gibt alle erforderlichen Informationen zum Starten einer Natural-Anwendung auf der Anmeldeseite ein. Diese Informationen werden an den Client gesendet.
Der Client fordert den Natural Web I/O Interface Server auf, die gewünschte Natural-Anwendung für diesen Benutzer zu starten.
Der Natural Web I/O Interface Server überprüft die angegebene Benutzerkennung (User ID) und das Passwort, erstellt eine Natural-Sitzung für den Benutzer und startet die Natural-Anwendung.
Die Natural-Anwendung gibt den ersten Anwendungsbildschirm zurück, der dann über den Natural Web I/O Interface Server an den Client und schließlich als Webseite an den Webbrowser übertragen wird.
Es werden verschiedene Webbrowser unterstützt. Beachten Sie, dass Cookies und JavaScript im Webbrowser aktiviert sein müssen. Eine Liste der derzeit unterstützten Webbrowser finden Sie unter Browser-Voraussetzungen in der Dokumentation für den von Ihnen verwendeten Client-Typ:
Natural Web I/O Interface Client
Siehe Browser-Voraussetzungen in dieser
Dokumentation.
Natural for Ajax
Siehe Browser Prerequisites in der Natural for
Ajax-Dokumentation.
Es gelten die folgenden Regeln:
Der Natural Web I/O Interface Server kann mit jedem Client arbeiten, der über dieselbe oder eine höhere Protokollversion verfügt.
Wenn der Server feststellt, dass der Client eine niedrigere Version als die Server-Version verwendet, antwortet der Server, dass die Client-Version zu alt ist, und die Verbindung wird geschlossen.
Der Client kann mit jedem Server arbeiten, der über dieselbe oder eine niedrigere Protokollversion verfügt.
Wenn der Client feststellt, dass der Server eine Version verwendet, die niedriger ist als die Client-Version, wechselt der Client zur Server-Version. Neue Client-Funktionalität wird in diesem Fall jedoch nicht unterstützt.
Der Natural Web I/O Interface Server muss die gleiche Protokollversion haben wie der Natural-Prozess, der vom Server gestartet wird. Wenn Natural feststellt, dass der Server eine andere Protokollversion verwendet, wird eine Fehlermeldung an den Benutzer gesendet und die Verbindung beendet.
- Daemon, Server, Service
Auf den verschiedenen Natural-Plattformen, für die das Natural Web I/O Interface unterstützt wird, werden unterschiedliche Techniken für die Implementierung des Serverteils des Natural Web I/O Interface verwendet:
Auf Natural for Linux ist er als Daemon implementiert.
Auf Natural for Windows ist er als Dienst (Service) implementiert.
Unter z/OS ist er als Server implementiert.
In dieser Dokumentation wird der allgemeine Begriff "Server" für alle verschiedenen Implementierungsarten verwendet.
- SMARTS
SMARTS ist ein Akronym für "Software AG Multi-Architecture Runtime System". Es stellt eine Laufzeitschicht dar, die es ermöglicht, POSIX-ähnliche Anwendungen auf Mainframe-Betriebssystemen auszuführen. Die Produkte der Software AG kommunizieren mit dem Betriebssystem über die SMARTS-Schicht.
In den vorangegangenen Abschnitten dieser Einführung wurde beschrieben, wie das Natural Web I/O Interface in einer Laufzeit-(Produktions-)Umgebung funktioniert. In diesem Abschnitt werden die Unterschiede in einer SPoD-Entwicklungsumgebung kurz erläutert.
Für die Arbeit in einer Remote-Entwicklungsumgebung mit Natural for Windows (SPoD) wird eine spezielle Version des Natural Web I/O Interface verwendet. In diesem Fall ist das Natural Web I/O Interface eine integrierte Komponente, die keine separate Installation erfordert. Der Server ist Teil des Natural Development Server (NDV), der Client ist Teil von Natural Studio. Anders als in der Laufzeitumgebung wird der Bildschirm nicht in einem Browser, sondern in einem normalen Fenster angezeigt. Rich-GUI-Seiten, die mit Natural for Ajax erstellt wurden, werden in der Entwicklungsumgebung nicht unterstützt.
Es ist wichtig, dass die Ein-/Ausgabe über das Natural Web I/O Interface auf dem Natural-Host aktiviert ist. Andernfalls kann das Natural Web I/O Interface nicht aufgerufen werden. Siehe auch Behandlung von Unicode-Ein-/Ausgaben in Natural-Anwendungen in der Unicode- und Codepage-Unterstützung-Dokumentation.
Bei der Verwendung des Natural Web I/O Interface mit Natural-Anwendungen auf Linux-, z/OS- oder Windows-Hosts gibt es einige Einschränkungen.
Anmerkung
Der Begriff "Anwendung" bezieht sich auf Anwendungssoftware. Er bezieht
sich nicht auf Systemsoftware oder Software für die Entwicklung.
Es gelten die folgenden Einschränkungen:
GUI Controls
GUI Controls werden nicht unterstützt: Dialoge, Schaltflächen, Optionsfelder,
Listenfelder, Listenansichten, Kontrollkästchen usw. Das Natural Web I/O Interface
unterstützt nur Natural-Anwendungen, die ohne GUI-Controls entwickelt wurden.
Dateiübertragung
Die Dateiübertragung (z. B. mit dem Natural-Statement DOWNLOAD) wird
vom Natural Web I/O Interface nicht unterstützt.
Laufzeitfehler
Diese Einschränkung gilt für ältere Natural-Versionen unter Linux und Windows. Ab
Version 6.3.3 gilt diese Einschränkung nicht mehr.
Laufzeitfehler in Natural-Anwendungen werden vom Natural Web I/O Interface nicht
behandelt. Dies führt zu einem Verlust der Sitzung. Sie können den Fehler mit Hilfe
der Natural-Systemvariablen *ERROR-TA umgehen.
Beispiel einer Natural-Fehlertransaktion:
DEFINE DATA LOCAL 1 ERR_INFO 2 ERR_NR(N5) 2 ERR_LINE(N4) 2 ERR_STAT(A1) 2 ERR_PNAM(A8) 2 ERR_LEVEL(N2) END-DEFINE INPUT ERR_INFO DISPLAY ERR_INFO TERMINATE END
Anmerkung
Einige der folgenden Einschränkungen funktionieren möglicherweise auf z/OS, sind
jedoch für eine reale Anwendung nicht sinnvoll.
Rückkehr zum Natural-Hauptbildschirm
Sie können keine Natural-Anwendungen verwenden, die zum Natural-Hauptbildschirm
zurückkehren. Dies führt immer zu einer falschen Bildschirmanzeige und zum Verlust
der Sitzung.
Natural-Editoren und -Dienstprogramme (Utilities)
Sie können keine Natural-Dienstprogramme wie SYSMAIN oder
SYSDDM und keine Editoren wie den
Programmeditor verwenden. Dies führt immer zu einer falschen Bildschirmanzeige und
zum Verlust der Sitzung.
Natural-Systemkommandos
Sie können keine Natural-Systemkommandos verwenden, zum Beispiel:
CATALL, FIND,
GLOBALS, HELP,
KEY, LIST,
SCAN oder XREF. Dies führt
immer zu einer falschen Bildschirmanzeige und zum Verlust der Sitzung.
Natural-Kommandos SETUP und
RETURN
Sie sollten die Natural-Kommandos SETUP und RETURN nicht
verwenden, weil dies zum Verlust der Sitzung führen kann.
Terminalkommandos
Terminalkommandos werden nicht
unterstützt. Sie funktionieren nicht, wenn sie über den Natural Web I/O Interface
Client eingegeben werden.
Natural-Systemvariable *INIT-ID
Wenn Sie den Natural Web I/O Interface Client mit Natural-Anwendungen auf Linux-,
z/OS- oder Windows-Hosts verwenden, wird die Natural-Systemvariable *INIT-ID
nicht mit einem Wert für den Terminaltyp gefüllt.
Unter Linux und Windows enthält sie den Wert notty. Auf Mainframes
enthält sie eine Sitzungskennung, die auf dem jeweiligen Server eindeutig ist.
Der Natural Web I/O Interface Client wird als HTML-Terminal-Emulator innerhalb eines Browser-Controls ausgeführt. Die Anzeige des Natural Web I/O Interface Client ähnelt der des regulären Terminals (Emulation), aber es gibt einige Unterschiede aufgrund der Browser-Funktionalität:
Ein Doppelklick mit dem Mauszeiger auf ein beliebiges Feld simuliert die ENTER-Taste.
Mit dem Mauszeiger kann der Cursor auf einem nur als Ausgabefeld fungierenden Feld
positioniert werden, jedoch befindet sich die zurückgegebene Cursorposition
(Systemvariable *CURSOR) immer auf dem ersten Zeichen
im Feld.
Es ist nicht möglich, den Cursor außerhalb des Bereichs der Eingabe- und Ausgabefelder zu positionieren.
Der Cursor kann nur innerhalb eines Eingabefeldes mit den Pfeiltasten nach links und rechts bewegt werden.Andere Cursorbewegungen mit den anderen Pfeiltasten(z. B. innerhalb von Ausgabefeldern oder zum nächsten Eingabefeld oder vertikaleBewegungen) sind nicht möglich.
Der Einfügemodus kann mit der INSERT-Taste ein- und ausgeschaltet
werden.
Bei Unicode-Zeichensätzen (Typ U, z.B. Chinesisch) kann ein Zeichen mehr Platz
benötigen als ein gewöhnliches alphanumerisches Zeichen, da die
Unicode-Zeichendarstellung proportional ist. Dies muss bei der Gestaltung der
Anwendung berücksichtigt werden, da Natural auf Zeichen mit fester Breite basiert.
Bei Eingabefeldern ist es möglich, innerhalb des Feldes zu blättern, aber bei
Ausgabefeldern kann der Platz für die Anzeige der Unicode-Zeichen nicht ausreichen.
Die Anzeigelänge für ein Feld kann über den Session-Parameter DL gesteuert
werden.
Der Vorauswahlmodus (Type-ahead mode) wird nicht unterstützt.
Einfügen (Paste) im Überschreibmodus wird nicht unterstützt.
Die Tastaturbelegung ist festgelegt; Tasten wie die rechte STRG-Taste und die EINGABE-Taste auf dem Ziffernblock sind nicht mehr definierbar.
Die Bildschirmaktualisierung ist langsamer, da statt Aktualisierungen der gesamte Bildschirm gesendet wird.
Das Attribut blink wird nicht unterstützt.
Die Tasten PF1 bis PF12 werden durch die Tastenkombinationen F1 bis F12 simuliert.
Die Tasten PF13 bis PF24 werden durch die Tastenkombinationen SHIFT+F1 bis SHIFT+F12 simuliert.
Die Tasten PF25 bis PF36 werden durch die Tastenkombinationen STRG+F1 bis STRG+F12 simuliert.
Die Tasten PF37 bis PF48 werden durch die Tastenkombinationen ALT+F1 bis ALT+F12 simuliert.
Die Löschtaste wird durch STRG+UMSCHALT+F4 simuliert.
Die Bildschirmgröße des Terminals wird durch den Natural-Profilparameter TMODEL gesteuert. Die
Standardeinstellung ist TMODEL=0 (24 Zeilen und 80 Spalten).
Es gibt keine ATTN-Taste (Aufmerksamkeitsunterbrechung), keine RESET-Taste und keine EEOF-Taste (Löschen des Dateiendes).
Die E/A erfolgt im Blockmodus. Daher reagiert das Natural-Programm nur, wenn eine Funktionstaste gedrückt wird.