Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | ottila-wender |
View: | 104 times |
Download: | 0 times |
Agenda
• Motivation• Architektur• Features• Tutorial• Referenzen• Weitere Informationen
Reale Problemstellung
• Gespeicherte Personen-, Objektinformationen in diversen Datenbanken (SQL, LDAP, Dateisystem)
• Rechtestrukturen (Hierarchien, Gruppen) und ihre Verwaltung
• Viele Mitarbeiter mit unterschiedlichem technischen Know-How
• Das eigentliche Problem: Zentrale Administration
Zielsetzung
• Dezentrale Datenpflege (webbasiert)• Rollen- und Rechtesystem auf technischer Ebene
abbilden• Vermeidung von Fehlbedienung• Erweiterbarkeit• Integration in bestehende Strukturen
Wunsch I
Wunsch II
Wunsch III
Das NetUSE Web Application Framework ist …
• Serverseitige Entwicklungsumgebung für webbasierte Administrationsoberflächen
• Plattform- und Browserunabhängig
• Stabil (2 Jahre Projekterfahrung)• Leicht integrierbar, installierbar, aktualisierbar
• Freie Software (BSD License)• In PHP4 geschrieben
Voraussetzungen
• UNIX-Server– Solaris
– Linux
• Webserver– CGI oder mod_php
• PHP– 4.1 oder besser
– Session-Modul aktiviert
System-Architektur
Webserver PHP
NetUSEWeb ApplicationFramework
Application
LDAP SQL
Komponenten einer Anwendung
• Eingabe/Ausgabe– Form-Generatoren– Fehlermeldungen– Layout-Einbettung
• Code– Callback-Routinen– Eingabe-Validierung– Dialog-Workflow– Authentifzierung
Programmierung mit dem Framework
• Datenstrukturen– Datenbank-Tabellen
– LDAP-Bäume
– Rechte- und Rollenstrukturen
• Datenfluss– Berechtigungen
– Manipulationen
• Masken-Gestaltung (Rapid Prototyping)• Implementierung Nutzcode• Tests
Masken
<?php
# /opt/myapp/dialogs/main.php
class dialog {
function form() {
form_start();
form_text("Name", "name");
form_submit("Say Hello", "hello");
form_end(); }
}
?>
Verzeichnisstruktur
• /opt/WAF-0.9/– NetUSE Web Application Framework
• /opt/myapp/– Basisverzeichnis der Anwendung
• /home/www/index.php
<?php include(“/opt/WAF-0.9/main.php“); waf_start(“/opt/myapp/“);?>
Ausgabe
Callback-Code und Dialog-Steuerung
class dialog {
...
function hello() {
$name = variable_read("name");
if ($name == "") {
error_set("name", "Must enter username");
} else {
$_SESSION["name"] = $name;
dialog_push("hello");
}
}
}
Verknüpfter Dialog
class dialog {
function form() { form_start(); form_info("", "Hello ".$_SESSION["name"]); form_submit("OK", "ok"); form_end(); }
function ok() { dialog_pop(); }
}
Ausgabe
Weitere Form-Elemente
• HTML-Eingabe-Elemente– Textfelder (ein/mehrzeilig, Passworte)
– Auswahl (einfach/mehrfach)
• Frei programmierbare Elemente
• Ausgaben– Freies HTML
– Bilder
Layout-Integration
Weitere Features (teilweise realisiert)
• Konfiguration globaler Parameter• CSS-Unterstützung für Form-Elemente• Integration in globale Navigation• Debugging• Monitoring
Automatische Authentisierung
class dialog {# /opt/myapp/dialogs/login.php
function form() { form_start(); form_text("Username", "username"); form_password("Password", "password"); form_submit("Login", "login"); form_end(); }
function login() { if (...) { dialog_set("main"); } }}
Referenzen
• myDAA (~2500 Benutzer)Administrationsumgebung für verteiltes Mailsystem
• my.schulon.org (~2000 Benutzer)Lehr- und Lernumgebung
• VU/4 eBusinesslösung (~20.000 Benutzer)Online-Dialog für Stadtwerkekunden
• www.lotterie.de (~1500 Benutzer)Online-Dialog für Klassenlotterie
• NetUSE NIC ManagerAutomatisierte Domain-Bestellung
Release Plan
• Version 0.9: Q1 2003– Beta Public Release
• Version 1.0: Q2 2003– OO-Widgets
– Bessere CD-Integration
• Entwicklung nach Projektbedarf
Weitere Informationen
• http://framework.netuse.de/– Dokumentation
– Download
– Referenzen
• [email protected]– Support
– Consulting
– Training
– Bug Reports
– Feature Requests
Fragen?