ZT Univ.-Lektor Dipl.-Ing. Dr. Markus Schranz staatlich befugter und beeideter Ingenieurkonsulent...

Preview:

Citation preview

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

Recommended