Kapitelübersicht
B. TECHNISCHE REALISIERUNG
1. Kommunikation zwischen den Systemkomponenten
2. Technische Voraussetzungen
2.1. Grundlagen
2.2. Perl-CGI-Loesung
2.2.1. Funktionsweise
2.2.2. Funktionsweise von CGI
2.3. ISAPI-Loesung
2.3.1. Funktionsweise
2.3.2. Kommunikation mit dem ASS
2.3.3. Programmablaufplan: Uebersicht
2.3.4. Programmablaufplan: MCL5555.dll
2.3.5. Programmablaufplan: PCL5555.exe
2.4. Unterschiede zwischen Perl-CGI- und ISAPI-Loesung
2.5. Frame-Sets
2.6. Apache Tomcat
3. Installation und Konfiguration
3.1. Design des HTML-Outputs
3.2. Perl-CGI-Loesung
3.2.1. Einrichten im Apache Webserver
3.2.2. Einstellungen der INI-Datei
3.2.3. Beenden
3.3. ISAPI-Loesung
3.3.1. Einrichten im Internet Information Server (IIS)
3.3.2. Einstellungen der INI-Datei
3.3.3. Beenden des MCL5555 und der Prozesse
3.4. Apache Tomcat
B. Technische Realisierung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
1. Kommunikation zwischen den Systemkomponenten
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Folgende Grafik spiegelt die Kommunikationsprozesse zwischen
Client, Webserver und ASS-Datenbanksystem prinzipiell wieder:
Abb.: Kommunikation zwischen den Systemkomponenten
- Ueber eine URL-Adresse im Browser wird vom Client eine
Verbindung zum Webserver hergestellt.
- Dort wird via Skript oder in ISAPI-Funktionen ein
ASS-Programm mit bestimmten Parametern aufgerufen.
Dieses Programm (PCL5000) ist Bestandteil der
ASS-Webserver-Installation.
Der Zugriff auf die ASS-Datenbestaende kann mittels einer
ASS-PC-Installation auf dem Webserver oder ueber eine
Durchgriffsvariante (PCL1333) realisiert sein.
Im zweiten Fall (vgl. Abbildung) sind ASS-Datenhaltung
inkl. Auswertung auf einem separaten System installiert,
die auch andere ASS-Komponenten bedienen kann
(ST31 lokal, Batchauswertung oder Client-Server mit ASS-Excel).
Das ASS-Datenhaltungssystem erstellt dann jeweils eine HTML-Datei
die vom Webserver aufbereitet an den Browser geschickt wird.
Zwischen einzelnen Aufrufen des Clients
(= Betaetigen eines Buttons im Browser) haelt ASS Informationen
zu Dialogzustaenden oder Statistiken innerhalb der SPA-Datenbank
vor.
2. Technische Voraussetzungen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
2.1 Grundlagen
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
ASS:
===
Eine Installation von ASS-InterNet ist in allen Umgebungen
moeglich, auf denen ASS mit einer Durchgriffsvariante
eingesetzt werden kann. Dies setzt eine COBOL-Installation
vorraus.
Fuer ASS-Kunden, die am Grossrechner ausschliesslich PL/I
einsetzen, ist eine lokale Installation von ASS-PC am Webserver
mit Spiegelung der ASS-Datenbanken denkbar.
Webserver:
=========
Folgende Software wurde bisher eingesetzt:
- Apache Webserver
- Apache Tomcat
- MS Internet Information Server
Beim IIS kann mit einer ISAPI-DLL (MCL5555)
gearbeitet werden.
Browser:
=======
Falls alle in Frage kommenden PCs einen Browser besitzen, der
den HTML-Standard 4.0 unterstuetzt, koennen Framesets
eingesetzt werden. Die ASS-Steuerung wird dann auf einen
separaten Frame ausgelagert. Folgende Browser unterstuetzen lt.
Hersteller diesen Standard:
- MS Internet-Explorer ab Version 3
- Opera, ab Version 3
- Firefox
Im ASS-Entwicklerteam wird mit neueren Versionen dieser
Browser getestet.
Bemerkungen:
- Dem IE von Microsoft bereitet das Drucken mehrseitiger
Statistikblaetter in der Version 5.5 Schwierigkeiten.
- Der Navigator der Firma Netscape hat Schwierigkeiten bei
der Interpretation von Java-Scripten, die ueber Frames
hinweggreifen.
Bei Bedarf nehmen Sie bitte Kontakt zur ASS-Wartung auf.
2.2. Perl-CGI-Loesung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
2.2.1. Funktionsweise
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
1. Von einem Internet-Browser wird eine Verbindung zum Webserver
aufgebaut.
2. Dann geht eine HTTP-Anfrage mit der Adresse des Perl-Scripts
(z.B. "/cgi-bin/ASS.pl") an den Webserver.
3. Der Webserver startet das Perl-Script.
4. Das Perl-Script ruft das ASS auf, das dann aus den
uebergebenen Parametern eine HTML-Datei (z.B. mit der
Anmeldemaske oder der Statistik) generiert und in einer
temporaeren Datei abspeichert.
5. Das Perl-Script gibt die temporaere Datei per CGI
(siehe "Funktionsweise von CGI") an den Webserver aus.
6. Der Webserver wiederum schickt die Datei an den Browser.
Abb.: Aufruf-Hierarchie bei der Perl-CGI-Loesung
Diese Prozedur wiederholt sich pro Seitenaufruf noch zwei bis
dreimal auf aehnliche Weise, da der Browser fuer jeden Frame
eine zusaetzliche Anfrage schickt. Dazu unter 3. Genaueres.
2.2.2. Funktionsweise von CGI
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Grundsaetzlich funktioniert CGI (Common-Gateway-Interface)
folgendermassen:
Der Webserver ruft aufgrund der eingegebenen URL ein Programm
auf (ein Script, z.B. Perl, oder eine ausfuehrbare Datei).
Das Programm gibt dann den HTML-Code per "print" oder "echo"
o.ae. nach "stdout" (Standard-Output) aus.
Dieser Standard-Output wird dann vom Webserver "abgefangen"
und direkt zum Browser geleitet. Da diese Methode weitgehend
sprachen-, webserver- und plattformunabhaengig ist, hat sie sich
heute sehr weit verbreitet. So funktioniert die Perl-CGI-Loesung
auf allen Webservern, die CGI und Perl unterstuetzen.
2.3. ISAPI-Loesung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
2.3.1. Funktionsweise
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Der IIS (Microsoft Internet Information Server) ist der Webserver
von Microsoft. Er laeuft im Gegensatz zu anderen Webservern auch
nur unter Windows. Als Programmier-Schnittstelle, gibt es ein
Application-Programming-Interface (API), das ISAPI. Das
funktioniert technisch in Form einer eigenen DLL
(Dynamic-Link-Library). Eine DLL ist ein kompiliertes Programm,
was gegenueber Perl, das ja eine interpretierte Sprache ist,
bereits einen Geschwindigkeitsvorteil bringt. Die DLL wird vom
Information Server dynamisch geladen und bei einer Anfrage eine
bestimmte Funktion in der DLL ausgefuehrt. Es handelt sich um
einen direkten Aufruf. Es wird hier also kein eigener Prozess
gestartet. Fuer die gleichzeitige Verarbeitung mehrerer Clients
wird pro Client innerhalb des IIS ein neuer Thread gestartet.
Die Anfrage wird dann von dem Thread unabhaengig von anderen
Anfragen verarbeitet.
2.3.2. Kommunikation ASS-Webserver - ASS-DB-Server
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Da die COBOL-Programme des ASS-Kernels nicht multithreading-
faehig sind, wurde die Schnittstelle in 2 Programmteile zerlegt:
- Eine DLL namens MCL5555.dll, die vom IIS geladen wird
- Eine EXE-Datei namens PCL5555.exe, die das ASS laedt
Ein PCL5555-Prozess kann das ASS nur einmal laden und
zur selben Zeit nur eine Anfrage verarbeiten. Deswegen sollen
mehrere Prozesse gleichzeitig laufen. Wenn das MCL5555 vom IIS
geladen wird, startet es eine festgelegte Anzahl von Prozessen
des PCL5555.exe (standardmaessig 3). Ein Prozess benoetigt etwa
10 MB RAM bei der lokalen Variante und rund 3 MB bei der
Durchgriffsvariante. Bei einer Anfrage von einem Browser
kommuniziert das MCL5555 per Interprozesskommunikation
mit den PCL5555-Prozessen. Ein Prozess, der gerade "frei" ist,
wird dann "aufgeweckt" und leitet die Anfrage an den
ASS-Datenbankserver weiter. ASS fuehrt die Anfrage aus und
generiert eine HTML-Seite, die in einer temporaeren Datei
gespeichert wird. Danach geht der Prozess wieder in einen
Wartezustand ueber. Der Prozess wird aber nicht beendet,
was es ASS moeglich macht, im Hintergrund eine Verbindung
zu einem Server dauerhaft aufrechtzuerhalten. Abschliessend
wird die HTML-Datei vom MCL5555 eingelesen und zum
Browser geschickt. Die HTML-Datei enthaelt wieder Verweise und
Formulare, die beim Anklicken bestimmte Parameter an das ASS
zurueckschicken, woraufhin wieder die naechste Seite generiert
wird. usw.
Abb.: Kommunikation zwischen MCL5555, PCL5555 und dem ASS-Kern
Das Entladen des MCL5555 und Beenden der Prozesse funktioniert
folgendermassen:
Das MCL5555 kann vom IIS "entladen" werden, und zwar:
- Automatisch beim Beenden des IIS
- Manuell auf der Administrationsoberflaeche des IIS, wobei der
IIS selbst nicht beendet wird. (siehe 3.2.3)
Beim Entladen schickt das MCL5555 einen "Beenden-Befehl" an die
PCL5555-Prozesse. Daraufhin entladen die Prozesse ASS und beenden
sich danach selbst.
2.3.3. Programmablaufplan: Uebersicht
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Der Uebersicht halber werden die Frame-Sets in diesem PAP nicht
beruecksichtigt, da die Frame-Sets nur im MCL5555 behandelt
werden, und keine Interprozesskommunikation mit dem PCL5555
benoetigen.
Abb.: Programmablaufplan: Uebersicht
2.3.4. Programmablaufplan: MCL5555.dll
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Der "Beenden-Befehl" wurde bereits unter 2.2.2 erlaeutert
und wird hier nicht beruecksichtigt.
Abb.: Programmablaufplan: MCL5555.dll
2.3.5. Programmablaufplan: PCL5555.exe
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Abb.: Programmablaufplan: PCL5555.exe
2.4. Unterschiede zwischen Perl-CGI- und ISAPI-Loesung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die folgende Aussage bezieht sich auf Apache 1.
Der Nachteil der Perl-CGI-Loesung ist, dass pro Anfrage ein neuer
Prozess gestartet wird, der das Programm neu ausfuehrt.
Da ASS im "Client-Modus" fuer jede Anfrage auf den
ASS-Datenbank-Server zugreift, muss fuer jede Anfrage
die Verbindung vom Webserver (ASS-Client) zum
ASS-Datenbank-Server neu aufgebaut werden, da kein Prozess
vorhanden ist, der einmal aufgebaute Verbindungen aufrecht
erhalten koennte. Das verlaengert die Laufzeit teilweise
erheblich.
Die ISAPI-Loesung hat im Hintergrund einen "Prozess-Pool"
laufen. Die Prozesse werden nicht nach jeder Anfrage beendet.
Allerdings funktioniert die ISAPI-Loesung nur unter Windows.
2.5. Frame-Sets
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Da in der Internet-Oberflaeche mit Frames gearbeitet wird, ist
der eigentliche Ablauf etwas anders. Dies gilt sowohl bei der
Perl-Loesung, als auch bei der ISAPI-Loesung.
Ein Frame-Set ist eine HTML-Seite, die das Browserfenster in
mehrere Teile unterteilt, und fuer jeden Teil (Frame) einen
Verweis auf eine weitere HTML-Seite enthaelt. Diese HTML-Seiten
sind dann grafisch getrennt voneinander. Wenn zum Beispiel in
einem Frame geblaettert wird, bleibt der andere Frame stehen.
Der HTML-Output von ASS-InterNet ist in einen "Haupt-Frame"
und einen "Steuer-Frame" unterteilt. Auf Statistik-Seiten
befindet sich wahlweise noch ein "Kopf-Frame".
Es ist in HTML nicht vorgesehen, dass ein Frame-Set mit mehreren
Unterseiten nicht in einer Datei untergebracht wird.
Deshalb liefert das MCL5555 ein selbstgeneriertes,
Frame-Set an den Browser zurueck. Hier sind dann 2 bzw. 3 Verweise
eingebaut, die weitere Aufrufe vom Browser an das MCL5555
hervorrufen. Daraufhin wird jeweils einen Teil aus der
Ergebnis-Datei auslesen. In der Ergebnisdatei steht der Inhalt
der 2 oder 3 Frames, die mit bestimmten Trennzeichen getrennt
sind. In den Verweisen werden noch Parameter mitgegeben,
die u.a. darueber informieren, welcher Frame gerade benoetigt
wird, und welche Ausgabedatei gerade benutzt wird.
Ein vom MCL5555 generiertes Frame-Set sieht zum Beispiel
folgendermassen aus:
<html>
<head>
<title>Unternehmensberatung Dipl. Ing. Arnold GmbH</title>
</head>
<frameset border=0 frameborder=0 framespacing=0 cols="*,25%">
<frame src="/ASSScripts/MCL5555.dll/frame?
name=ASSHauptFrame&datei=HTM1.tmp"
name="ASSHauptFrame">
<frame src="/ASSScripts/MCL5555.dll/frame?
name=ASSSteuerFrame&datei=HTM1.tmp"
name="ASSSteuerFrame">
</frameset>
<body>
<h3>Ihr Browser unterstützt keine Frame-Sets.</h3>
<h3>Verwenden Sie einen Browser
der HTML 4.0 unterstützt.</h3>
</body>
</html>
Abb.: Abrufen der einzelnen Frames
2.6. Apache Tomcat
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Im Kontext Pfad /ass laeuft das Java-Programm ASSInterNetServlet
mit dem Anzeigenamen ASS-InterNet - Java-Servlet-Version.
Ausgeliefert wird dies als ass.war fuer Linux, Unix und Windows.
Im Hintergrund kommuniziert das Servlet via TCP/IP mit dem
Daemon/Dienst PCL1333.
3. Installation und Konfiguration
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
3.1. Design des HTML-Outputs
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Der statistische Internetauftitt ist flexibel konfigurierbar.
ASS-InterNet kann etwa ins firmeneigene Intranet oder in eine
Internetseite eingebunden werden.
Am Webserver besteht die Moeglichkeit, steuernde Skripte
so einzurichten, dass der ASS-Dialog an einer tiefen
Ebene der Dialoghierarchie gestartet wird. (Z.B. direktes
Ansteuern einer Anwendung via Link)
Framesets, die den Browserbildschirm aufteilen, koennen nach
Bedarf eingerichtet werden. Dabei sind die Anordnung von
Hauptbild und Steuerframe und deren anteilige Groesse von
Angaben in der INI-Datei (siehe 3.2.2. bzw. 3.3.2.) abhaengig.
Zusaetzlich kann die Anzeige auf drei Frames aufgeteilt werden.
Im Kopfframe werden dann Ueberschriften und Kopfschluessel
angezeigt. Das Blaettern ueber mehrere Seiten erfolgt dabei
durch zusaetzliche Buttons im Steuerframe.
Ein zentrales Stylesheet-Dokument am Server bestimmt
Schriftart, -farbe und -groesse der Texte in den
Steuerungsmasken und Hintergrundbild. Zentrale Texte,
wie die Ueberschrift des Anmeldebildschirms, der Browser-Titel,
oder der Beenden Link, sind kundenspezifisch.
Die Konfigurationsmoeglichkeiten sind in den mitgelieferten
Beispiel-INI-Dateien der Scripts genauer erlaeutert.
3.2. Perl-Loesung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
3.2.1. Einrichten im Apache Webserver
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die Datei ASSPerl.pl muss zusammen mit der Datei ASSPerl.ini aus
dem PGM-Verzeichnis in das "cgi-bin-Verzeichnis" des Apache kopier
werden. Das ist z.B. standardmaessig
"C:/Programme/Apache Group/Apache/cgi-bin", kann aber auch
anders heissen. Wenn die INI-Datei angepasst worden ist
(siehe 3.2.2.), ist das Script einsatzbereit und man kann
im Browser ueber die URL http://server/cgi-bin/ASSPerl.pl
darauf zugreifen.
3.2.2. Einstellungen der INI-Datei
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
In der INI-Datei koennen saemtliche Einstellungen fuer die
Perl-CGI-Schnittstelle vorgenommen werden. Die Datei ASSPerl.ini
muss im selben Verzeichnis liegen, in der sich auch die ASSPerl.pl
befindet. Ein Beispiel mit ausfuehrlichen Kommentaren wird
standardmaessig im PGM-Verzeichnis mitinstalliert. (ASSPerl.ini)
3.2.3. Beenden
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Das Perl-Script wird bei jedem Aufruf neu ausgefuehrt.
Aenderungen an der Konfiguration werden also sofort wirksam.
Das Perl-Script muss also nicht extra beendet werden.
3.3. ISAPI-Loesung
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
3.3.1. Einrichten im Internet Information Server (IIS)
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die Datei MCL5555.dll muss zusammen mit der Datei MCL5555.ini aus
dem PGM-Verzeichnis in das "Script-Verzeichnis" des IIS kopiert
werden. Das ist z.B. standardmaessig "D:/InetPub/scripts",
kann aber auch anders heissen. Man kann hier auch selbst
ein Neues anlegen. Wenn die INI-Datei angepasst
worden ist (siehe 3.3.2.), ist die Schnittstelle einsatzbereit
und man kann im Browser ueber die URL
http://server/scripts/MCL5555.dll darauf zugreifen.
3.3.2. Einstellungen der INI-Datei
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
In der INI-Datei koennen saemtliche Einstellungen fuer die
Schnittstelle vorgenommen werden. Die Datei MCL5555.ini muss
im selben Verzeichnis liegen, in der sich auch die MCL5555.dll
befindet. Ein Beispiel mit ausfuehrlichen Kommentaren wird
standardmaessig im PGM-Verzeichnis mitinstalliert. (MCL5555.ini)
Die grundsaetzlichen Einstellungen der INI-Datei werden
eingelesen, wenn das MCL5555 geladen wird.
Detaillierte Einstellungen, wie z.B. fuer die Erzeugung von
Frame-Sets, werden bei jedem Aufruf eingelesen. Wenn also am
Frame-Set-Layout Aenderungen vorgenommen werden, ist es nicht
noetig, das MCL5555 neu zu starten.
3.3.3. Beenden des MCL5555 und der Prozesse
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Zum Beenden der Schnittstelle muss man zuerst die
Microsoft Management-Konsole mit dem Information-Server-Snap-In
starten. Hier klickt man das Script-Verzeichnis mit der rechten
Maustaste an und klickt auf Eigenschaften.
Dann sieht man etwa folgendes Fenster:
Hier klickt man dann unten auf den "Entladen"-Button.
So wird die MCL5555.dll entladen und die PCL5555.exe-Prozesse
beendet.
3.4. Apache Tomcat
Kapitelübersicht
Inhaltsverzeichnis
Stichwortverzeichnis
Die Installation kann mit dem Tomcat Webanwendungs-Manager oder
durch Kopieren in das Tomcat webapps Verzeichnis erfolgen.
Installiert und kopiert wird lediglich die ass.war. Beim kopieren
kann entweder die ass.war oder die entzippte Verzeichnisstruktur
der ass.war genommen werden.
Die Einstellungen erfolgen in der XML-Datei web.xml im
Unterverzeichnis WEB-INF von ass.war. Die Angaben sind dort auch
erklaert.
Vorheriges Kapitel: A. EINFUEHRUNG
Nächstes Kapitel: C. SECURITY