Date post: | 06-Apr-2015 |
Category: |
Documents |
Upload: | emlin-werkman |
View: | 110 times |
Download: | 0 times |
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
Grundlagen der SoftwaretechnologieGrundlagen der SoftwaretechnologieProgrammiertechnische Grundlagen 1Programmiertechnische Grundlagen 1
P1: Konzepte und Programmiersprachen, Perl, Interaktive Programme, Web Anwendungen
2ZT Schranz Informationstechnologie KEG
Entwicklung Interaktiver Software– Grundlegende Konzepte der Programmentwicklung
– Komponenten der Programmierung
– Programmiersprachen und Konzepte Compiler und SW-Architekturen Moderne Anwendungsmöglichkeiten Objektorientierte Programmierung
– SW für kommerzielle Applikationen Web-Entwicklungen Exemplarische Vertiefung in Perl und Java
– Softwaretest und -wartung
Themenüberblick GdST 1-3Themenüberblick GdST 1-3
3ZT Schranz Informationstechnologie KEG
Grundlagen der Applikationsentwicklung– Entwicklung Interaktiver Software
Konzepte, Anwendungsbereiche, Sprachen, Werkzeuge, Daten
Software-Technologie (Programmiertechn. Grundlagen)– Konzepte der Programmentwicklung, Sprachdetails,
Software-Architekturen, OO, Test/Wartung, prakt. Beispiele
IKT-Vertiefung– Datenmanagement und -haltung; Moderne Datenbanken und
angewandte Standards
SW-Projektmanagement– Beteiligte, Prozesse, Regeln, Kontrolle
Abgrenzung Themenbereiche im Abgrenzung Themenbereiche im Msc. Interactive Media ManagementMsc. Interactive Media Management
4ZT Schranz Informationstechnologie KEG
Programmiertechnische Grundlagen– Konzepte der Programmentwicklung
– Grundprinzipien und moderne Programmierkonzepte (XP)
– Konkreten Beispielen (Perl Literaturvorgabe)
Entwicklung von interaktiver Software– Web-Applikationsentwicklung
– Programmgestaltung in verteilten Umgebungen
– Interaktive Programme mit Perl
– Hausarbeit
AgendaAgenda
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
Grundlagen der SoftwaretechnologieGrundlagen der Softwaretechnologie
P1: Interaktive Software, Konzepte, Perl, Web2.0
6ZT Schranz Informationstechnologie KEG
Eckpunkte der Anwendungsentwicklung– Projektspezifika
Anforderungen, Entwürfe, Partner, Resourcen
– Anwendungsumgebung Anwendungsdomäne, Branche, Charakteristiken, Medien
– Werkzeuge Programmiersprache, Entwicklungsumgebung (IDE)
– Akteure Auftraggeber, Umsetzer Kompetenzen
– Steuerung / Kontrolle ?
Entwicklung Interaktiver SoftwareEntwicklung Interaktiver Software
7ZT Schranz Informationstechnologie KEG
Besonderheiten bei interaktiven / modernen Anwendungen– Involvierung des (meist noch) anonymen Kunden in die
Applikation (Produkt- bzw. Leistungspräsentation) neue Medien / Internet / WWW bieten hierfür
hervorragende Voraussetzungen (siehe -> Web Applikation)
– Herausforderungen ans Applikationsdesign besondere Aspekte der Interaktion Kommunikationsdetails, Wissensgewinn,
Informationsaustausch
– Dezentrale Datenmanipulation wo liegen die während der Interaktion
verwendeten Daten?
Entwicklung Entwicklung InteraktiverInteraktiver Software Software
8ZT Schranz Informationstechnologie KEG
Die Softwareerstellung an sich– Konzepte und Werkzeuge moderner SE
Moderne Programmiersprachen wie Java, Perl Werkzeuge, Hilfsmittel, Libraries, Archive (CPAN) Entwicklungsumgebungen (Eclipse,JBuilder,*Studio,vi)
– Konzepte im Software-Entwicklungsprozess Objekt-Orientierung Komponent-based SE, Reuse MVC-Architekturen
– Paradigmenwechsel in der interaktiven SE Web 2.0, AJAX
Entwicklung Interaktiver Entwicklung Interaktiver SoftwareSoftware
9ZT Schranz Informationstechnologie KEG
Kunde Kulturveranstaltungsmanagement
10ZT Schranz Informationstechnologie KEG
Kunde Kulturveranstaltungsmanagement
11
Software EngineeringSoftware Engineering
Fundamentals of Software
Engineering
Ghezzi, Jazayeri, and Mandrioli
Prentice Hall, 2003.
Grundsätzliche Konzepte zum SWE finden sich in
12
Software EngineeringSoftware Engineering
Das Vorgehens-Modell (V-Modell)
Quelle: http://www.v-modell.iabg.de/ Das Vorgehensmodell ist ein Prozeßmodell, mit dessen
Hilfe Projekte gemäß der Norm ISO 9001 abgewickelt
werden können.
Das Vorgehensmodell beschreibt die Aktivitäten
(Tätigkeiten) und Produkte (Ergebnisse), die während
der Entwicklung von Software durchzuführen bzw. zu
erstellen sind.
13
Software EngineeringSoftware Engineering
Das Vorgehens-Modell (V-Modell) Notwendigkeit der Standardisierung in der Softwareentwicklung
ist unbestritten „Ingenieurmäßige SW-Entwicklung“ Zielsetzungen
– Eindämmung der SW-Kosten über den Lebenszyklus– Verbesserung und Gewährleistung der SW-Qualität– Verbesserung der Kommunikation zwischen Auftraggeber und
Auftragnehmer. Standarisierung der Zielsetzungen durch Regelungen auf drei
Ebenen– Vorgehensweise („Was“)– anzuwendende Methoden („Wie“)– funktionale Anforderungen an einzusetzende Werkzeuge („Womit“)
14
Software Engineering – V-ModellSoftware Engineering – V-Modell
Einsatzbereich des V-Modells
– Vertragsgrundlage definiert Lieferumfang der Software
Vollständigkeit der Softwaredokumentation.
– Arbeitsanleitung dient bei Softwareentwicklung als Leitfaden und konkrete
Arbeitsanleitung
– Kommunikationsbasis Entwicklungsdokumente, Glossar dienen als Basis
wechselseitigen Verständnisses zwischen Auftraggeber, Nutzer,
Auftragnehmer und Entwicklern.
15ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Einsatz von Agilem Software Engineering im WWW
16ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Einsatz von Agilem Software Engineering im WWW
17ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Kundenrechtsproklamation
18ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Entwicklerrechtsproklamation
19ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Agiler Entwicklungsprozess
20ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
21ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Grundkonzepte KISS und YAGNI
22ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Viele kleinere Iterationen, mehrere Releases
23ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Vier Variablen im Entwicklungsprozess
24ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Grundprinzipien und Konzepte
25ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Grundprinzipien und Konzepte
26ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Grundprinzipien und Konzepte
27ZT Schranz Informationstechnologie KEG
Extreme Programming (XP)Extreme Programming (XP)
Begriffe, Techniken und Werkzeuge
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
Grundlagen der SoftwaretechnologieGrundlagen der Softwaretechnologie
Konkrete Werkzeuge der Softwareentwicklung - Programmiersprachen
29ZT Schranz Informationstechnologie KEG
Programmiersprachen– Sprachengenerationen
Werkzeuge der Applikationsentwicklung– Metakonzepte (Architekturen, OO, Komp., Protokolle)
– Sprachspezifika, Musterbeispiel Perl
Umsetzung der sprachspezifischen Konzepte– Eingabe -> Verarbeitung -> Ausgabe (EVA-Prinzip)
– Objekte -> Attribute -> Methoden
– Pattern Matching
Konkrete Werkzeuge der Software-Konkrete Werkzeuge der Software-EntwicklungEntwicklung
30ZT Schranz Informationstechnologie KEG
Natürliche und künstliche Sprachen– Konzepte von Programmiersprachen– Sprachelemente
Einzelelemente vs. Pluralitäten
Komplexität in der Anwendungsentwicklung– Abbildung in Sprachelemente (Objekte)
– Anweisungen (Verben)
– TMTOWTDI („tim-toady“) Werkzeuge & Applikationsumgebungen
– Filehandles, Operatoren, Kontrollstrukturen– Regular Expressions & Pattern Matching– Reference-Cards und praktische Demo1...
Dynamische Softwareentwicklung - Dynamische Softwareentwicklung - Literaturvorgabe PERLLiteraturvorgabe PERL
31ZT Schranz Informationstechnologie KEG
Sprachkonzepte– Konventionen und Zeitgeist
was ist in der Praxis für bestimmte Anwendungsfelder am geeignetsten
– OO – Objektorientierung Ein Begriff der Computersprachen der dritten Generation (siehe Perl-Buch Kap. 11 & 12)
– Komponententorientierung Applikationsteile (besonders Oberflächen) werden
komponentenorientiert zusammengebaut
– Architekturen – MVC Model, View und Control als Paradigma
Dynamische Dynamische Softwareentwicklung - PERLSoftwareentwicklung - PERL
32ZT Schranz Informationstechnologie KEG
MVC ist ein Architekturmuster zur Aufteilung von Softwaresystemen in drei Einheiten– Datenmodell (Model)
enthält Daten (DB) und evtl. Geschftslogik
– Präsentation (View) Darstellung der Daten und Entgegennahme
der Benutzerinteraktionen am „Frontend“
– Programmsteuerung (Control) Verwaltet die unterschiedlichen Sichten, nimmt Aufrufe der View entgegen
und entscheidet, welche Daten im Modell geändert werden müssen. Sie enthlt Mechanismen, um die Benutzerinteraktion der Präsentation bzw. der Datenmanipulation im Modell einzuschränken bzw. gezielt zu steuern
Ziel ist es, die Flexibilität des Programmentwurfes so zu erhöhen, dass spätere Änderungen und eine evtl. Wieder-verwendung von erarbeiteten Komponenten ermöglicht bzw. erleichtert werden
Architekturmuster - MVCArchitekturmuster - MVC
View Model
Controller
33ZT Schranz Informationstechnologie KEG
Quellen und Erweiterungen– Libraries
sind Sammlungen von nutzbaren Ergebnissen, vordefinierten Funktionalitäten und Methoden in einer bestimmten Programmiersprache (meist sprachabhängig)
– Archiveerlauben die Recherche und Erweiterung von Programmiersprachen und Programmteilen mittels sorgfältig strukturierter Aufbewahrung
CPAN demo
Dynamische Dynamische Softwareentwicklung - PERLSoftwareentwicklung - PERL
34ZT Schranz Informationstechnologie KEG
Die Programmiersprache PERL– Entwickelt von Larry Wall (1987)
– Unterstützt von Tom Christiansen und Randal L. Schwartz
– PERL ist die „Practical Extraction and Report Language“
PERL ProgrammingPERL Programming
35ZT Schranz Informationstechnologie KEG
Warum PERL lernen?– Systemadministration mit einer Allzwecksprache
– Unix-Anwendungen optimieren
– CGI-Programme fürs WWW entwerfen
– Prototypen für Programme entwerfen
– Keine Entwicklungsumgebung notwendig
– Bequem portierbar
– Leistungsfähig
– TMTOWTDI
PERL GrundlagenPERL Grundlagen
36ZT Schranz Informationstechnologie KEG
Grundlagen rund um PERL
– PERL ist eine interpretierte Programmiersprache
– Basiert auf C, unix tools (awk, sed)
– Prozedural oder objektorientiert anwendbar
– Grundsprache oder Bibliotheken (pm)
– Open community unterstützt PERL
– CPAN als riesige PERL-Ressource www.cpan.org
– Manpages rund um perl Man perl, perldoc perlfaq, perldoc <Modulname>
PERL GrundlagenPERL Grundlagen
37ZT Schranz Informationstechnologie KEG
Hello World in PERL– Dokument hello.pl editieren:
#!/usr/bin/perl –w
print “Hello World!\n“;
Programm ausführbar setzenChmod +x hello.pl
Programm ausführen #> hello.pl
PERL GrundlagenPERL Grundlagen
38ZT Schranz Informationstechnologie KEG
Einführungskurs in PERL– Perl Datentypen
Skalare ($scalar) Arrays (@array) Hashes (%hash)
–Beispiele als Demo
– Perl Operationen Arithmetische (+,-,*,/,**,%) Comparative (==, !=, <, >,<=, >=, <=>, cmp) Logische (&&, ||, ! Bzw. AND, OR, NOT)
PERL GrundlagenPERL Grundlagen
39ZT Schranz Informationstechnologie KEG
Einführungskurs in PERL– Perl Operationen (2)
Zuweisungen ( $lvalue = $rvalue ) Inkrement/Dekrement ( $i++, $i--, ++$i, --$i ) Zuweisungsoperatoren
–Variabler Inkrement (+=, -=)
*=, /=, %=, **=
Stringverkettung, -wiederholung ( . x)
Rangfolge und Assoziativität
PERL GrundlagenPERL Grundlagen
40ZT Schranz Informationstechnologie KEG
Ein- und Ausgabe in PERL– Dateihandles
– Standardein-/-ausgabe
STDIN, STDOUT, STDERR
FILEH
$zeile = <STDIN>;
Print STDOUT „hello“;
PERL GrundlagenPERL Grundlagen
41ZT Schranz Informationstechnologie KEG
Einsatz der Datentypen– Skalare
Skalare werden verwendet um Strings und Zahlen zu bearbeiten.
$zahl = 24;
$text = “das ist ein testtext“;
$zahl++;
$text .= “\n“;
Kontextsensitive Umwandlung in PERL
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
42ZT Schranz Informationstechnologie KEG
Einsatz der Datentypen
– ArraysIn Arrays werden Listeninhalte verwaltet.
@liste = (´das´,´ist´,´eine´,´liste´);
@zahlen = (1..1000);
@nichts = ();
@zahlen = (@zahlen, 1001, 1002, 1003);
($a, $b) = (1,2);
($x, $y) = ($y, $x);
print $zahlen[3];
$#zahlen, scalar(@zahlen)
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
43ZT Schranz Informationstechnologie KEG
Einsatz der Datentypen
– Arrays bearbeiten Sortieren
@geordnete_zahlen = sort { $a <=> $b } @zahlen;
Durchlaufen
foreach $x (@liste) { ... }
Listen einlesen, ausgeben
chop, @zeilen = <STDIN>, print @zeilen;
Elemente hinzufügen/entfernen
push, pop, shift, unshift, splice
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
44ZT Schranz Informationstechnologie KEG
Einsatz der DatentypenMit Hashes arbeiten
– Hashes sind wie Arrays eine Sammlung von Daten (komplexe Datenstruktur)
– Hashes sind assoziative arraysbestehen aus ungeordneten Paaren von Schlüsseln und Werten
– Hashes können als Listen definiert werden(schlüssel1, wert1, schlüssel2, wert2,...)
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
45ZT Schranz Informationstechnologie KEG
Einsatz der DatentypenMit Hashes arbeiten
%paare = (´rot´, 255, ´grün´,150,´blau´,100);
%paare = (rot => 255, gruen => 150, blau => 100);
%leer = ();
$paare{schwarz} = 50;
$rot_wert = $paare{rot};
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
46ZT Schranz Informationstechnologie KEG
Einsatz der Datentypen
Auf Hashelemente zugreifen
Alle Werte
@werte = values(%paare);
@schluessel = keys(%paare);
Löschen: $geloeschter_wert = delete $paare{rot};
Durch-Iterieren: foreach $stadt (sort keys %paare) {...}
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
47ZT Schranz Informationstechnologie KEG
Einsatz der Datentypen
Komplexere Datentypen
Durch die Kombination der angewandten Datentypen lassen sich komplexeste Datenstrukturen erstellen. Allerdings können in den Datenstrukturen nur Skalare verschachtelt werden.
Über Referenzen können Skalare auf andere Datenstrukturen erzeugt werden:
$arrayref = \@werte;
$hashref = \%paare;
$komplex_list = ($arrayref, $hashref, 27, ´text´);
PERL Datentypen und -strukturenPERL Datentypen und -strukturen
48ZT Schranz Informationstechnologie KEG
Blöcke
Anweisungen werden mit ; abgeschlossen
Eine Gruppen von Anweisungen kann mit { und } zu einem Block zusammengefasst werden:
{
$a = 1;
$b = 2;
}
Blöcke können als bare blocks definiert werden oder im Rahmen der Flusssteuerung (Bedingungen, Schleifen) verwendet werden.
PERL FlusssteuerungPERL Flusssteuerung
49ZT Schranz Informationstechnologie KEG
Bedingungen
if, else, elsif, unless
if ($a < 0) {
$a = 1;
} else {
$a = -1;
}
Der Bedingungsoperator ?:
$a = ($a < 0)?1:-1; # können auch expressions sein
PERL FlusssteuerungPERL Flusssteuerung
50ZT Schranz Informationstechnologie KEG
Schleifen
While-Schleifen Until-Schleifen
while ($a > 0) { #solange wahr / falsch
print $a--;
next if ($a == 100);
last if ($a == 99);
}
Do-Schleifen
Do { ... } while ($a>0); # do { ... } until ($a == 0);
PERL FlusssteuerungPERL Flusssteuerung
51ZT Schranz Informationstechnologie KEG
Schleifen
for-Schleifen
# for (Startwert; Bedingungsausdruck; Aenderung) {...}
for ($i = 1; $i < 10; $i++) {
print $i;
}
foreach ist eine Spezialform, wo die Anzahl der Durchläufe auf die Anzahl der Elemente des angegebenen arrays beschränkt ist.
PERL FlusssteuerungPERL Flusssteuerung
52ZT Schranz Informationstechnologie KEG
Bisher Diskutiertes bildet die Basis vieler anderer Programmiersprachen
Pattern Matching bildet in PERL den leistungsfähigsten und flexibelsten Aspekt– Was sind regular expressions (patterns)
– Wie werden diese angewandt
– Wozu dient pattern matching?
PERL Pattern MatchingPERL Pattern Matching
53ZT Schranz Informationstechnologie KEG
Pattern Matching Operatoren und Ausdrücke– Operator =~
if ($string =~ m/muster/) { ... }
– Einfache Muster:/foo//dies oder das//GrOsSklEineGAl/i
– Sonderzeichen in Patterns:^, $, ., +, ?, *, {, }, (, ), \, /, |, [, ] # müssen „escaped“ werden
– Klassen von Muster:\d, \D, \w, \W, \s, \S
PERL Pattern MatchingPERL Pattern Matching
54ZT Schranz Informationstechnologie KEG
Pattern Matching Spezialfälle– Mehrfaches Erkennen
/.../g;
– Negative Patterns!~ /.../;
– Gruppierung und Alternativen/(H|M|S|Br)aus/
– Prioritäten (lookahead)/abc(?=de)/, /abc(?!de)/
PERL Pattern MatchingPERL Pattern Matching
55ZT Schranz Informationstechnologie KEG
Suchen und Ersetzen– Teile isolieren und speichern
/abc(\w+)xyz/
– Der Operator s///$text =~ s/abc(\w+)xyz/ABC$1XYZ/;
– Pattern Matching über mehrere Zeilens///s, s///m
– Ersetzen durch einen PERL-Ausdrucks/abc(\w+)xyz/“ABC“.uc($1).“XYZ“/e;
PERL Pattern MatchingPERL Pattern Matching
56ZT Schranz Informationstechnologie KEG
Subroutinen erstellen und verwenden– Subroutinenaufruf
$ergebnis = &addiere(2,3);
– Werteübergabe, lokale Variable und Ergebnisrückgabesub addiere { my ($a, $b) = @_; return $a+$b;}
PERL Sub-RoutinenPERL Sub-Routinen
57ZT Schranz Informationstechnologie KEG
PERL Module verwenden
– use CGI;
Argumente übergeben, Umgebungsvariablen
– Die Variablen @ARGV, %ENV
Optionen auswerten
– use Getopt::Std;
– getopts(´hf:d´);
CGI Methoden verwenden, CGI-Programme schreiben
AusblickAusblick
58ZT Schranz Informationstechnologie KEG
PERL Programme auf wae.culturall.com
– lokale Programmentwicklung Berechnungen, etwa Sparbuchzinsen nach N Jahren
– verteilte Services Rückblick auf fahrenheit.pl vom 29.3.2008
– Wie funktioniert perl?
– was macht die Applikation zur Web-Applikation?
– Arbeiten mit Linux
– Textbasierter Editor
Praktische AnwendungPraktische Anwendung
ZT Univ.-LektorDipl.-Ing. Dr. Markus Schranz
staatlich befugter und beeideter Ingenieurkonsulent für Informatik
Grundlagen der SoftwaretechnologieGrundlagen der Softwaretechnologie
Interaktive Softwareentwicklung am Beispiel von Web-Applikationen
60ZT Schranz Informationstechnologie KEG
Web Service ArchitekturenWeb Service Architekturen
Client/Server ModellAnbieter vs. Nachfrager, Protokoll
Browser-Funktionalitätengrafisch vs. textorientiert, HTML, Internet Service Integration
Server-KonfigurationVirtuelle Server, Server Extensions, Redirects,...
Site of IntelligenceScript execution am Server oder am Browser …
61ZT Schranz Informationstechnologie KEG
HTTPHTTP
Das Hypertext Transfer Protokoll
Einfaches und schnelles Protokoll, geeignet für ein verteiltes Hypermedia-Informationssystem
Client/Server Ansatz Zustandslos (stateless) Meta-Information
62
Def.: Eine Web-Anwendung ist ein Softwaresystem, das auf Spezifikationen des World Wide Web Consortium (W3C) beruht und Web-spezifische Ressourcen wie Inhalte und Dienste bereitstellt, die über eine Benutzerschnittstelle, den Web-Browser, verwendet werden.
– Software-Aspekt–d.h. statische Seiten alleine stellen keine
Web-Anwendung dar
– Benutzerschnittstellen-Aspekt –d.h. Web Services alleine
stellen keine Web-Anwendung dar
MotivationMotivation
63
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
Umsetzung von Informationen, die zur Zugriffszeit generiert werden– Aktuelle Informationsdienste (Wetterbericht,
Verkehrsaufkommen, Tagesgeschehen, Börsenkurse,…)
– Dynamische Informationsquellen (Datenbanken, Programme)
Integration der bestehenden Anwendungen über Schnittstellen an den WWW Server– Script-Editoren
– Programmiersprachen
– Template-Systeme
– Redaktionssysteme
64
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
“Dynamische” Inhalte aus Legacy Applications– Eine Applikation, die relevante Informationen liefert, welche
als solche in das WWW eingebunden werden soll (Lagerbestandssystem, Katalog, Bibliothekssystem, Telefonbuch,…)
– Moderne DatenbankenDie Organisation besitzt bereits eine Datenbank und will deren Inhalte über das Web anbinden
– ManagementsystemeTeure Systeme, die die Steuerung eines ganzen Großbetriebes übernehmen sollen direkt über WWW erreichbar sein (SAP)
Anbindung über vorhandene oder zu programmierende Schnittstellen
65
Integration und Umsetzung Integration und Umsetzung dynamischer Inhaltedynamischer Inhalte
Lösungen haben eine 3-tier Architecture
Browser Server Legacy Application
66
HTML Formulare CGI vs Server API Submit mit POST oder GET
– application/x-www-form-urlencoded
Umgebungsvariablen
Das Common Gateway Interface ist eine Schnittstellendefinition, die eine Datenkommunikation zwischen Browser und Server zur dynamischen Dokumenterstellung ermöglicht.
CGI - Common Gateway InterfaceCGI - Common Gateway Interface
67
CGI OutputCGI Output
print "Content-type: text/html\n\n";
print "<HTML><BODY>....</HTML>";
print "Content-Length: 12345\n";
Das folgende PERL Beispiel erzeugt on-the-fly ein HTML Dokument. Der Inhalt kann durch übergebene Parameter eines Formulars bestimmt sein.
68
CGI ZuständeCGI Zustände
in URLs abspeichern in HIDDEN FIELDS abspeichern Cookies verwenden http://wae.culturall.com/duk/imm/test.pl
Das HTTP Protokoll ist zustandslos, d.h. der Server sieht verschiedene Zugriffe auf ihn als vollkommen unabhängig an. Mit CGI können Zustände festgehalten werden.
69
CGI SoftwareCGI Software
Perl– CGI.pm– use CGI;$query = new CGI;...print $query->header;$query->param(feldname)
– Perl Web Application Demo2...
C– Uniform Library of Common Code (CERN)
Java– Servlet, JSP, Struts,...
70ZT Schranz Informationstechnologie KEG
Entwerfen Sie eine webbasierte gesicherte Applikation, mit der personalisiert N Lottotipps generiert und persistent aufbewahrt werden können
Verwenden Sie hierzu– Perl CGI Programmierung (use CGI;)– Zur Personalisierung Cookies (siehe CGI.pm)– Zur Authentifizierung Passwörter (erstmals
erfassen, danach abfragen)– Zur Sicherung SSL (https-Aufrufe)
Übungsangabe LottoÜbungsangabe Lotto
71ZT Schranz Informationstechnologie KEG
Die Seite soll in Form eines Formulars erfasst werden. Das CGI-Programm erzeugt dabei das Formular und die Ergebnisse abhängig von den erkannten Eingaben
Der Status soll per Cookie erkannt werden (Test, ob auch Browser-Restarts möglich sind)
Das Formular soll eine Fehlermeldung bringen, wenn kein SSL verwendet wird
Übungsangabe Lotto DetailsÜbungsangabe Lotto Details
72ZT Schranz Informationstechnologie KEG
Entwerfen Sie eine interaktive Webapplikation, die folgende Anforderungen erfüllt:
Interaktive Benutzerdatenerfassung
– Der Benutzer soll über Web-Eingabemöglichkeiten Daten erfassen können
– ein mehrstufiger Prozess soll ihn bei der Erledigung seiner Aufgabe begleiten
Serverseitige Berechnungen bzw. Datenmanipulationen sind gefragt
– Die erfassten Daten sollen (persistent) gesammelt und ausgewertet werden
– Die Daten sollen personalisiert behandelt werden, d.h. jeder Benutzer sieht individuelle Daten
Die Applikation soll
– einen mehrseitige Fragebogen oder
– ein mehrstufiges Registrierungsscript oder
– ein interaktives Quiz oder
– eine Spiel/Wett/Lotto-Annahmestelle darstellen und die Daten individuell bearbeiten bzw. anzeigen.
Verwenden Sie hierzu die trainierten Konzepte von Perl, inklusive CGI-handing, Cookie Management, persistente Datenverwaltung mit Files und Kontrolle der Datentypen
Das Ergebnis umfasst Programmdokumentation (Funktionalität, Programmbeschreibung), Programmcode und lauffähige Software
Arbeitsaufgabe Arbeitsaufgabe
Applikationsentwicklungskonzept bis zur GdST-2