NetUSE Web Application Framework Kai Voigt NetUSE AG kv@netuse.de 28. Februar 2003.

Post on 05-Apr-2015

104 views 0 download

Tags:

transcript

NetUSE Web Application Framework

Kai Voigt

NetUSE AG

kv@netuse.de

28. Februar 2003

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

• kv@netuse.de– Support

– Consulting

– Training

– Bug Reports

– Feature Requests

Fragen?