EFORM Eform GGA-Institut EFORM – Ein einfacher Generator für Webbasierte Datenbankoberflächen EFORM Eform GGA-Institut Überblick EFORM Eform GGA-Institut Was ist EFORM? • EFORM ist ein einfaches und mit relativ geringem Aufwand entwickeltes Werkzeug zur Generierung von Pflegeanwendungen für SQLDatenbanken. • Die Hauptleistung von EFORM liegt in der Verfügbarkeit „intelligenter“ Formulare zum Anzeigen, Erfassen, Ändern und Recherchieren von Daten. • EFORM-Anwendungen sind Server-basierte Internet/IntranetAnwendungen. Zur Bedienung wird lediglich ein Browser benötigt. Die Interaktion mit den Benutzern erfolgt über Standard-HTML-Formulare. Fazit: Keine Akzeptanzprobleme durch Software-Installation! • EFORM wurde mit der weit verbreiteten Open-Source-Skriptspache PHP realisiert und ist (wie PHP selbst auch) auf vielen Plattformen lauffähig. EFORM nutzt ODBC zur Interaktion mit Datenbanken. Es kann daher ein breites Spektrum von Datenbanken angesprochen werden. Fazit: EFORM-Anwendungen sind hochgradig portabel. EFORM Eform GGA-Institut Anvisierter Einsatzbereich • dezentrale Pflege stark genutzter Intranet-Datenbanken (z. B. der GGAProduktdatenbank) durch GZH-Angehörige, • Interne Pflege von Datenbanken auf dem GZH-Webserver bzw. den zugeordneten Datenbankservern außerhalb des Firewalls (s. Erreichbarkeits-Problematik), • dezentrale Pflege von Internet-Datenbanken auch durch Anwender außerhalb des GZH. • Aber: EFORM ist zumindest mittelfristig nicht für die Entwicklung komplexer Datenbankanwendungen geeignet. EFORM Eform GGA-Institut Interne und externe Datenbanken Fileserver für Bilder, Dokumente, usw. Spiegel Replikation Spiegel Datenbank Interner DB-Server PHP Client-Software, z. B. MS Access Firewall EFORM Externer DB-Server Intranet-Server EFORM Internet Browser Lokales Netzwerk PHP Browser GZH-Webserver Internet GZH-interner Nutzer Externe Nutzer EFORM Eform GGA-Institut EFORM - Softwaregrundlagen • Relationale Datenbank (via ODBC), • Intranet/Internet-Server (z. B. MS Internet Information Server), • Skriptsprache PHP (Open Source), ca. 3.000 Zeilen, • Bowser der neuen Generation (IE ab 6.0, Mozilla/Firefox ab 1.0, Netscape ab 7.0), mit JAVA-JRE, • Javascript (im Browser). In die Entwicklung eingeflossen sind div. Ideen und Bausteine des Basiswerkzeugs QFORM des FIS Geophysik. EFORM Eform GGA-Institut CGI - Common Gateway Interface • Der CGI-Standard ermöglicht das Starten von externen Programmen/ Skripten aus dem World Wide Web heraus - damit lassen sich serverseitig interaktive Webseiten gestalten. Diese externen Programme heißen Gateways, da sie die Verbindung zwischen externen Informationsquellen und dem Webserver herstellen. • CGI-Gateways können fertig compilierte und gelinkte Programme (C, C++, …), aber auch von einem an den Webserver angekoppelten Interpreter zu bearbeitende Skripte sein. • Die Steuerung von CGI-Gateways erfolgt über URL-Parameter (GETParameter) und/oder HTML-Formularfelder (POST-Parameter). • Der Standard-Output eines CGI-Gateways wird dem Browser als HTMLSeite zurückübermittelt. EFORM Eform CGI als Basis für Internet/Intranet-Anwendungen GGA-Institut Vorteile: • An den Browser werden keine besonderen Anforderungen gestellt, da die Interaktion über "normale" Web-Seiten erfolgt. Die Installation von Software auf dem Client ist i. d. R. nicht erforderlich Hohe Akzeptanz, keine Software-Verteilungsproblematik. • Verteilbarkeit von Anwendungskomponenten auf verschiedene Server hervorragende Flexiblität. • Keine Sicherheitsprobleme durch Port-Freischaltungen. Nachteile: • Die Interaktion ist nicht so unmittelbar wie z. B. bei Java, weil die Reaktion auf eine Aktion immer eine http-Datenübertragung zum und vom Web-Server voraussetzt. Der Qualität der Benutzeroberfläche sind damit Grenzen gesetzt. EFORM Eform CGI als Basis für Internet/Intranet-Anwendungen GGA-Institut Nachteile 2: • Aufrufe von CGI-Programmen/-Skripten werden im Rahmen separater Tasks erledigt. Dateien, Datenbanken usw. müssen also immer wieder neu geöffnet werden! Je nach Skriptsprache müssen evtl. CGI-Skripte immer wieder neu interpretiert werden. Performance! • Komplexe Dialoge müssen durch wechselseitigen Aufruf von CGIGateways (Server-Pong) realisiert werden. Die Übergabe komplexer Daten zwischen diesen Gateway-Instanzen ist i. d. R. nicht trivial. Zusätzlich muss i. d. R. Javascript eingesetzt werden. CGIProgrammierung ist gewöhnungsbedürftig, für den Anfänger schwierig und in jedem Fall aufwendig! • „Offene“ http-Kommunikation zwischen Gateways Sicherheitsrisiken! EFORM Eform GGA-Institut Client- vs. serverorientierte Internet-Anwendungen Browser z. B. Applet Servlet Java Virtual Machine GUI- u. a. Klassen DBMS Datenbank z. B. Java, .NET Client Server z. B. PHP Browser HTML-Seite WWWServer WWWServer DBMS PHP-Seite SkriptInterpreter Datenbank EFORM Eform Was ist PHP? GGA-Institut • PHP = PHP Hypertext Preprocessor ist eine stark verbreitete Skriptsprache zur Erstellung von CGI-Anwendungen. PHP wird von einer internationalen Entwicklergemeinschaft (Rasmus Lerdorf u. a.) als Open-Source-Produkt entwickelt. • PHP ist eine stark an C orientierte Semi-Interpreter-Sprache, in die auch Elemente von Perl und Java eingeflossen sind. Der PHPSprachkern ist (wie der von C) sehr überschaubar, gegenüber C aber sehr viel mächtiger. Er wird durch zahlreiche Erweiterungsbibliotheken (Anbindung von Datenbanken, Erzeugung von Grafiken usw.) erweitert. Besonderheit: Mapscript-Interface für den UMN-Mapserver! • Mit PHP können Sie wahlweise konventionell, objektorientiert oder hybrid programmieren. • PHP ist – für eine Interpretersprache – performant. • PHP wurde ursprünglich unter Linux entwickelt, steht aber auch für weitere Plattformen (u. a. Windows) zur Verfügung. • Die wichtigsten Konkurrenten: ASP, JSP, Perl, Python, Cold Fusion. • PHP und Cold Fusion sind Standard-Werkzeuge im GZH. EFORM Eform GGA-Institut EFORM-Architektur Formdefs (Formulardefinitionen= PHP-Include-Dateien) Menü-Steuerung application_inc.php (Konfiguration der Anwendung) EFORMMain utils.php (Standard-Routinen) EFORMHilfsskripte PHP-Interpreter Session-Verwaltung = anwendungsspezifisch = CGI-Aufrufe … EFORM Eform GGA-Institut Demonstration EFORM Eform GGA-Institut Die Nordwind-Datenbank EFORM Eform GGA-Institut EFORM Eform GGA-Institut Verzeichnisbaum einer EFORM-Anwendung Verzeichnis von T:\fis_gp_edit_odbc 17.06.2005 14:35 01.06.2005 11:41 3.704 application_inc.php <DIR> 06.01.2004 17:36 01.06.2005 11:41 27.06.2005 10:38 <DIR> bilder Anwendungs-Konfigirationsdatei EFORM-interne Bilder 108 blank.htm Leerseite css Stylesheet 106.479 eform.php EFORM-Hauptskript 24.06.2005 09:11 6.303 eform_popup_lov.phpEFORM-Skript für Pop-Lovs‘s 01.06.2005 12:34 1.359 eform_redirect.php Redirector 12.05.2005 16:39 2.692 first_aid.htm Einstiegs-Hilfe 24.06.2005 12:22 <DIR> formdefs Formdef-Verzeichnis 01.06.2005 11:41 <DIR> help Hilfedateien 11.05.2005 13:51 1.362 index.htm EFORM-Frameset 01.06.2005 11:41 <DIR> js Javascript-Include-Dateien 24.06.2005 12:24 <DIR> menu Javascript-Menü 12.05.2005 16:38 487 menu_top.htm HTML-Seite über dem Menü 20.06.2005 15:16 12.297 utils.php Utility-Include 12.05.2005 16:39 1.242 welcome.htm Begrüßungsseite EFORM Eform GGA-Institut Ausblick EFORM Eform GGA-Institut Ausblick auf geplante Weiterentwicklungen • Dokumentation (tztz…), • Benutzerauthentifizierung und Zugriffskontrolle *, • Verbesserte Gestaltungsmöglichkeiten für Formulare *, • Schnittstelle zur Auswertung von für Filter-Treffermengen *, • Datentypen für Koordinatenpaare mit Umrechnungsmöglichkeiten *, • Recherche in vernetzten Thesauri *, • Prüfregeln in FORMDEF‘s, • Ereignisroutinen in FORMDEF‘s. (*) in QFORM/FIS Geophysik bereits realisiert EFORM Eform GGA-Institut Vielen Dank für Ihr Interesse!