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