Homepage (deutsch) Firmenprofil (deutsch) Tools (deutsch) Homepage (English)

WS

Entwicklung von SAS-Anwendungen
für den Application Server

Wilfried Schollenberger
Vortrag auf der DISK 1998 (zum Teil überholt)

Zusammenfassung

Auf der Disk 97 wurden in einem gleichnamigen Vortrag die Ergebnisse der ersten Tests der SAS/IntrNet Software für das "Project Management System" bei der EURESCOM GmbH präsentiert. Inzwischen wird die erste Version produktiv genutzt. Darüber hinaus bewährt sich HTML bei der Präsentation von Informationen auch in anderen Anwendungen.

Die Erwartung, mit der SAS/IntrNet Software ein mächtiges und gleichzeitig einfaches Werkzeug für die Anbindung von Datenbanken an das Intranet und Internet zu erhalten, wurden voll erfüllt. Mit HTMLOUT, einem Tool der WS GmbH, wird die Entwicklung von Anwendungen weiter erleichtert und beschleunigt.

Die Konzentration auf die Application Server, HTML 3.2 und GIF-Files für Grafiken hat sich im Grundsatz als richtig erwiesen. Ausnahmen werden im Text vorgestellt.

Die Einschränkung auf "seltene Benutzer" hat sich als zu eng erwiesen. Aufgrund der Mächtigkeit von HTML in der Präsentation sehen wir als Benutzerkreis für eine "Thin Client" Lösung inzwischen alle Benutzer, die im wesentlichen aktuelle und vollständige Informationen benötigen. In begrenztem Umfang sind auch Dateneingabe und -pflege über diesen Weg sinnvoll zu implementieren.

Insgesamt hat sich die Application Server Komponente der SAS/IntrNet Software als zuverlässiges und mächtiges Werkzeug für "Information Delivery" Anwendungen bewährt.

Technische Grundlagen und Vorteile

Mit der SAS/IntrNet Software bietet SAS Institut ein Bündel von Möglichkeiten, allen Mitarbeitern die Leistungen des SAS Systems über ein Intranet oder das Internet zur Verfügung zu stellen. In diesem Vortrag beschränke ich mich auf den Application Server und WEB-Publishing.

Grundlage ist ein TCP/IP-Netz und ein HTTP-(WEB-)Server. Diese Konfiguration wird durch SAS Application Server ergänzt, die vom Browser der Benutzer über den WEB-Server Anforderungen erhalten, Auswertungen durchführen und über denselben Weg die Ergebnisse ausgeben. Grundsätzlich werden immer mindestens 2 Prozesse eingesetzt, damit das System beim Ausfall eines Prozesses verfügbar bleibt. Das SAS Broker Modul, das auf dem WEB-Server gestartet wird, verteilt die Anforderungen automatisch auf die gestarteten Application Server.

Bei der EURESCOM GmbH hat sich diese Konfiguration im Rahmen des "Project Management Systems" als mächtiges Interface zur vorhandenen Datenbank (MS SQL Server) erwiesen. Der größte Teil der Datenpflege erfolgt durch die Sekretärinnen mit einer "Fat Client" Anwendung. Alle anderen Mitarbeiter können ohne zusätzliche Installation von Software auf diese Daten zugreifen und aktuelle Informationen abrufen. Das reicht von der Liste der Mitglieder eines Projekts bis zu detaillierten Daten zum aktuellen Projektstatus. Der Vorteil der SAS Lösung besteht vor allem darin, daß auch komplexe Auswertungen, z.B. die Zusammenstellung von Budget-Überschreitungen in allen Projekten eines Supervisors, einfach zu implementieren sind.

Darüber hinaus hat sich gegenüber der "Fat Client" Lösung eine Verbesserung der Performance des Gesamtsystems ergeben. Das hat vor allem folgende Gründe (wobei die letzten beiden Argumente grundsätzlich für alle Client Server Lösungen gelten):

  1. Bei einer "Fat Client" Lösung muß zuerst das SAS System gestartet werden. Danach muß der jeweilige Teil der Anwendung aufgerufen werden. Beim Browser kann dagegen jeder Teil der Anwendung als Lesezeichen (Bookmark) aufgenommen und direkt aufgerufen werden. Die Ladezeit des SAS-Systems auf dem PC wäre vor allem dann störend, wenn nur gezielt eine bestimmte Information benötigt wird.
  2. Der Application Server ist eine schnellere Maschine als die PCs der Benutzer. Er ist nur mit der Datenaufbereitung und der Erstellung von HTML- und GIF-Files, aber nicht mit der grafischen Darstellung am Bildschirm belastet. Bei einem dedizierten Server bleiben die Prozesse im RAM und werden nicht (oder zumindest seltener) ausgelagert.
  3. Einige Auswertungen, wie die oben erwähnte Liste zu Budget-Überschreitungen, erfordern die Verarbeitung großer Datenmengen (Table Scans). Wenn sich Datenbank und Server im selben Netzsegment befinden, bleibt die Belastung auf dieses Segment beschränkt. Würden die Daten dagegen zu einem "Fat Client" übertragen, wäre die gesamte Strecke bis zum Benutzer belastet.

In vielen Fällen ist es aber auch sinnvoll, die Ausgaben als HTML-Files im Batch-Betrieb zu erstellen und als statische Berichte auf dem WEB-Server zu speichern (WEB-Publishing). Auch eine Kombination von statischem und dynamischem Reporting und die Verknüpfung mit anderen Dokumenten ist häufig angebracht.

HTML als universelles Ausgabemedium

Der größte Vorteil von HTML ist, neben der leichten Erlernbarkeit, die Möglichkeit, verschiedene Informationen auf einer Seite zusammenzustellen und diese Seiten beliebig zu verknüpfen. Dadurch wird es möglich, die Benutzer umfassender zu informieren. In vielen Fällen ist auch das Ausdrucken der Seiten durch den Browser unproblematisch, was die Anwendungsentwicklung vereinfacht.

Deshalb setzen wir HTML inzwischen auch als universelles Ausgabemedium z.B. bei der Datenmodellierung ein. Das physische Datenmodell für ein Data Warehouse wird mit einem Modellierungstool (XDWH) in einer SAS-Datenbank erstellt. Aus diesen Informationen werden dann automatisch HTML-Seiten für Verzeichnisse, Dateien, Variablen und Formate mit allen sinnvollen Links erstellt, so daß eine übersichtliche und vollständige Dokumentation entsteht. Wenn dann noch die fachliche Dokumentation in HTML und die Diagramme als GIF-Files erstellt werden, genügt für den Zugriff ein Browser der lokal auf die Dateien zugreift. Für den unternehmensweiten Zugriff, werden diese Dateien auf einen WEB-Server kopiert.

Weiterverarbeitung von Daten

Wenn Daten vom Benutzer weiterverarbeitet werden sollen, werden diese mit speziellen MIME-Typen, z.B. als "text/tab-separated-values", aufbereitet und in einer Tabellenkalkulation oder Textverarbeitung eingelesen. Die richtige Wahl des MIME-Typs und die entsprechende Konfiguration des Browsers vorausgesetzt, werden die entsprechenden Anwendungen automatisch aufgerufen. Bei der EURESCOM verwenden wir diese Technik zum Export von Tabellen und für Mailing-Listen, die dann in Word für Serienbriefe verwendet werden.

Besondere HTML-Features

Grundsätzlich hat sich die Beschränkung auf einfache HTML-Seiten bewährt. Solche Ausgaben sind leicht zu erstellen und werden von allen Browsern unterstützt.

In manchen Fällen ist es jedoch sinnvoll, Frames einzusetzen. Z.B. gibt es im Project Management System eine Ausgabe in der das Budget eines Gesellschafters angezeigt wird. Diese Auswahl muß dynamisch entsprechend der beteiligten Gesellschafter erstellt werden und wird im rechten Teil des Frames aufgebaut. Dort können dann die verschiedenen Ausgaben im linken Teil angefordert werden, ohne daß die Auswahl selbst jedesmal neu erstellt werden muß. Ähnliches bietet sich für Grafiken an, um den "grafischen Drill-Down" über Image-Maps oder Java-Applets zu vermeiden. Der Nachteil solcher Frames ist, daß der aktuelle Zustand der Anzeige nicht mehr in als Lesezeichen aufgenommen werden kann, weil die URL des Frames nur den Einstieg, aber nicht den aktuellen Zustand, also die linke Anzeige, enthält.

Im letzten Jahr hatte ich noch empfohlen, auf Java-Script, eine ursprünglich von Netscape entwickelte Erweiterung, ganz zu verzichten. Damit ist es allerdings möglich, bestimmte Browser-Funktionen, z.B. "Goback" und "Reload", über Push-Buttons in der HTML-Seite anzusteuern, was die Bedienung für ungeübte Benutzer wesentlich erleichtert. Darüber hinaus kann bei Aktionen, die zur Änderung von Daten führen, eine Sicherheitsabfrage eingebaut werden. Insgesamt denke ich aber weiterhin, daß eine Anwendung so aufgebaut sein sollte, daß sie auch bei abgeschalteter Unterstützung von Java-Script funktioniert.

Anmerkungen zu Java

Java Applets sind notwendig, wenn eine permanente Verbindung zu einem Server-Prozeß, z.B. über SAS/Connect for Java aufgebaut wird, damit dieser Prozeß beim Verlassen der Anwendung ordentlich beendet wird. Allerdings ist in diesen Fällen abzuwägen, ob eine "Fat Client" Anwendung, d.h. PC-SAS, für Anwender-Unternehmen zur Zeit nicht die einfachere und deshalb sinnvollere Lösung darstellt.

Beim Application Server kommen Java Applets vor allem zur Anzeige der Daten, z.B. als Grafiken, in Betracht. SAS Institute liefert z.B. Applets für "interaktive" Grafiken. Solche fertigen Applets lassen sich relativ leicht einbinden und ersparen u.a. die Erstellung von GIF-Files auf dem Server. Bei Eigenentwicklungen in Anwender-Unternehmen sollten m.E. die vorhandenen Ressourcen und die Einsatzmöglichkeiten kritisch geprüft werden.

Aufgrund der zur Zeit noch recht schnellen Entwicklung der Sprache mit grundlegenden Änderungen in den Strukturen, z.B. beim Message Modell von Rel. 1.0.2 auf 1.1, ist zu erwarten, daß die Programme sehr schnell veralten und in wenigen Jahren wieder vollkommen neu geschrieben werden. Deshalb lohnen sich solche Entwicklungen m.E. zur Zeit nur in Sonderfällen oder, wenn wie bei Software-Herstellern ein schneller Return on Investment zu erwarten ist.

Schritte bei der Entwicklung einer Intranet-Anwendung

Normalerweise ist der Versuch, eine existierende "Fat Client" Anwendung auf einen Application Server zu "portieren" nicht sinnvoll. Einerseits läßt sich die Funktionalität auf einer HTML-Seite nicht nachbilden. Andererseits bietet HTML die Möglichkeit Informationen neu und besser zu gruppieren.

Deshalb wird hier ein anderer systematischer Weg zur Entwicklung von "Thin Client" Informationssystemen vorgeschlagen:

  1. Bestimmung der Informations-Einheiten, die dargestellt werden, und Definition der HTML-Seiten. Dabei sollte darauf geachtet werden, daß die Information auf jeder Seite möglichst umfassend ist, um die Zahl der notwendigen Transaktionen zu begrenzen. weiterhin sollten diese Seiten auch genügend Hinweise für den Benutzer enthalten, so daß separate Hilfe-Seiten überflüssig werden.
  2. Entwicklung der Einstiegs-Seiten. Diese Seiten sollten selbsterklärend und leicht verständlich sein. Das gesamte Informations-Angebot sollte von hier aus leicht und schnell zugänglich sein.
  3. Ermittlung der notwendigen Seiten zur Fehlerbehandlung.
  4. Ermittlung der sinnvollen Links zwischen den Seiten. Durch den modularen Aufbau lassen sich die Seiten beliebig miteinander Verknüpfen, indem die entsprechenden Links eingefügt werden. Dabei können auch andere Web-Seiten und Email-Adressen berücksichtigt werden.
  5. Entwicklung des Codes zur Aufbereitung der Seiten als SCL-Entries.

Grundsätzlich ist die Beschränkung auf einen Aufruf-Typ sinnvoll, weil die Anwendung dadurch übersichtlicher bleibt. SCL-Entries bieten dabei die meisten Möglichkeiten.

Bei der EURESCOM verwenden wir nur einen direkt vom Server aufrufbaren Entry. Alle anderen Teile der Anwendung befinden sich in Libraries, die in der PERMDATA.SAS-Datei allokiert werden, und deshalb nicht direkt aufrufbar sind. In dem zentralen Einstiegs-Entry können dann die Parameter, z.B. die Userid und ihre Rechte, geprüft werden, bevor zu der gewünschten Transaktion verzweigt wird.

Entwicklung von Intranet-Anwendungen mit HTMLOUT

Intranet-Anwendungen sind besonders leicht zu entwickeln, wenn die Darstellung, also die Entwicklung des HTML-Codes, und die Datenverarbeitung, also die Entwicklung des SAS-Codes getrennt werden. Deshalb verwenden wir für alle HTML-Ausgaben das WS-Tool HTMLOUT.

Im SAS-Code werden dann nur die Daten selbst als Dateien und Macro-Variablen aufbereitet. Die HTML-Ausgabe wird als Template, das schon im Browser betrachtet werden kann, erstellt. Für die Variablen werden Platzhalter eingefügt und Abschnitte für die Ausgabe von Dateien werden durch spezielle HTML-Kommentare gekennzeichnet.

Dadurch bleiben die SCL-Entries auch bei komplexeren Aufgaben übersichtlich, und die Anzeige kann im Template leicht gepflegt werden. Nur die in der obigen Grafik gelb markierten Elemente müssen für die jeweilige Transaktion speziell entwickelt und gepflegt werden.

Als einfaches Beispiel werden bei diesem SCL-Entry die Schüler aus SASUSER.CLASS angezeigt, wenn entweder das Geschlecht oder das Alter ausgewählt wurden.

ENTRY sl_parameters 8;

init:
  * Parameter einlesen ;
  sex = getnitemc(sl_parameters,"SEX",1,1," ");
  age = getnitemc(sl_parameters,"AGE",1,1," ");
 
  * Fehlerbehandlung wenn keine Auswahl;
  if sex = " " and age = " " then do;
     call symputc("errmsg1","FEHLER: Auswahl von Alter oder Geschlecht fehlt.");
     call symputc("errmsg2","Die gesamte Tabelle kann nicht angezeigt werden.");
     call display("HTMLOUT.SCL",0,"ERROR2.HTML");
     RETURN;
  end;

  * Datei bzw. View zur Anzeige erstellen;
  submit;
     PROC sql;
        create view work.ergview as
           select *
           from sasuser.class
           where (0=0)
  endsubmit;

  * where-Klauseln erstellen ;
  if sex GT " " then do;
     sex = quote(sex);
     submit;
             and sex = &sex
     endsubmit;
  end;

  if age GT " " then do;
     submit;
             and age = &age
     endsubmit;
  end; 

  * Code submittieren;
  submit continue;
      ; QUIT;
  endsubmit;

  * Daten anzeigen;
  call display("HTMLOUT.SCL",0,"SASUSER.HTML","WORK.ERGVIEW");

  RETURN;

Einfacher, schneller, flexibler

Insgesamt wurde die Entwicklung des "Project Information Systems" bei der EURESCOM durch die Entscheidung für Thin Clients und den Einsatz der SAS/IntrNet Software wesentlich vereinfacht und beschleunigt. Die Unabhängigkeit der Transaktionen voneinander erleichtert den Einsatz neuer Module, weil der Code existierender Anwendungen nicht geändert wird, und nur in den HTML-Seiten und -Templates an geeigneten Stellen neue Links eingefügt werden


Kontakt:

©WS Unternehmensberatung und Controlling-Systeme GmbH
Wilfried Schollenberger
Friedrich-Weinbrenner-Straße 20
69126 Heidelberg

Tel.: 06221 / 401 409
Fax: 06221 / 401 422

EMail: wisch @ ws-unternehmensberatung.de

All rights reserved
zurück zum Anfang

Anmerkung:
SAS Software, SAS/AF und SAS/IntrNet sind eingetragene Warenzeichen von SAS Institute in Cary, North Carolina, USA
Java ist ein eingetragenes Warenzeichen von Sun Microsystems