Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Prof. Dr. Alois Schütte1 Web-basierte Verbuchung eines Wareneingangs Alois Schütte Inhalt Problemstellung Projekt.

Ähnliche Präsentationen


Präsentation zum Thema: "Prof. Dr. Alois Schütte1 Web-basierte Verbuchung eines Wareneingangs Alois Schütte Inhalt Problemstellung Projekt."—  Präsentation transkript:

1 Prof. Dr. Alois Schütte1 Web-basierte Verbuchung eines Wareneingangs Alois Schütte Inhalt Problemstellung Projekt „Wertpapiergeschäft - Erfassen und Buchen“  Analyse  Konzeption  Realisierung Diskussion

2 Prof. Dr. Alois Schütte2 Problemstellung  Eine Bank braucht eine Anwendung, bei der eine Einlieferung von Wertpapieren (Wareneingang)  z.B. 100 Apple-Aktion (mengenmäßig)  zum aktuellen Kurs (wertmäßig) in ein Kundendepot über ein Web-Frontend von einem Bankmitarbeiter für einen Bank-Kunden durchgeführt werden kann.  Die IT-Abteilung der Bank gibt vor, dass die Anwendung über eine bestehende 3-Ebenen-Architektur auf die Backend-Daten (Depots, Kunden,...) zugreift. Die Datenhaltung soll in der Anwendung selbst in einer eigenen relationalen freien Datenbank erfolgen. Die Schnittstelle zu den Bank-eigenen Systemen erfolgt durch die Bank.  Live Demo

3 Prof. Dr. Alois Schütte3 Analyse  Wir als Softwarehaus haben Erfahrung mit Php und MySql  Aus der Problemstellung leiten sich 3 Komponenten ab: Visualisierung mittels HTML in einem Web-Browser (keine Java- Anwendung) Anwendungslogik per Php auf einem Anwendungs-Server (keine J2EE Anwendung) Speicherung in einer MySql-Datenbank  Aus den Anforderungen resultiert folgende Anwendungsarchitektur: Application- Server Datenbank Server Backend- Systeme VisualisierungAnwendungslogik Speicherung

4 Prof. Dr. Alois Schütte4 Analyse  Beteiligte Projektmitarbeiten werden benötigt aus den Bereichen: Design (HTML-Masken) Programmierung (Php) Datenbankspezialisten (MySql)  Der Kern der Anwendung ist ein Datenmodell, dass die Speicherung von WP-Transaktionen für Kunden abbilden kann.

5 Prof. Dr. Alois Schütte5 Konzeption: ER-Modell  Der konzeptionelle Entwurf ist der Vorgang, bei dem das konzeptionelle Modell aus der Realität abgeleitet wird. Er mündet im konzeptionellen Datenmodell.  Als Modell für die konzeptionelle Phase verwenden wird das Entity- Relationship Modell. Es definiert die Entitäten einer Anwendung zusammen mit ihren Beziehungen: Entity (Objekttyp): Rechteck Relationship (Beziehungstyp): Raute Attribute: Ovale Beziehungsart Kunde besitzt KuNr 1 n

6 Prof. Dr. Alois Schütte6 Konzeption: ER-Modell (Ausschnitt) - Entitäten Kunde KuNr Name Adresse

7 Prof. Dr. Alois Schütte7 Konzeption: ER-Modell (Ausschnitt) - Entitäten Kunde KuNr Name Adresse Depot DeNr Abr-Konto Wert Auf eine valutengerechte Betrachtung wird der Einfachheit halber verzichtet.

8 Prof. Dr. Alois Schütte8 Konzeption: ER-Modell (Ausschnitt) - Entitäten KundeDepot KuNr Name Adresse DeNr Abr-Konto Wert Wertpapier WKN Kurs Bez. Auf eine valutengerechte Betrachtung wird der Einfachheit halber verzichtet.

9 Prof. Dr. Alois Schütte9 Konzeption: ER-Modell (Ausschnitt) - Beziehungen KundeDepot KuNr Name Adresse DeNr Abr-Konto Wert Wertpapier WKN Kurs besitzt Bez. n1 Auf eine valutengerechte Betrachtung wird der Einfachheit halber verzichtet. 1 zu n

10 Prof. Dr. Alois Schütte10 Konzeption: ER-Modell (Ausschnitt) - Beziehungen KundeDepot KuNr Name Adresse DeNr Abr-Konto Wert Wertpapier WKN Kurs besitztbeinhaltet Bez. n1n m Anzahl Auf eine valutengerechte Betrachtung wird der Einfachheit halber verzichtet. n zu m

11 Prof. Dr. Alois Schütte11 Konzeption: ER-Modell (Ausschnitt) - Beziehungen KundeDepot KuNr Name Adresse DeNr Abr-Konto Wert Wertpapier WKN Kurs besitztbeinhaltet Bez. n1n mn m OrderNr ordert kauft/verkauft Anzahl Auf eine valutengerechte Betrachtung wird der Einfachheit halber verzichtet. 3 stellig

12 Prof. Dr. Alois Schütte12 Konzeption: ER-Modell -> Relationalen Modell  Verfahren: ER-Modell -> Relationenmodell: Abbildung von Entity-Typen auf Relationenschematas Abbildung von Beziehungstypen auf Relationenschemata Attribute werden zu Attributen des Relationenschemas Schlüssel werden übernommen Wenn möglich: Verschmelzung von Relationenschemata von Entity- und Beziehungstypen Einführung von Fremdschlüsseln in verbleibenden Relationenschemata zur Referenzierung der Entities  Normalisierung des entstandenen Schemas

13 Prof. Dr. Alois Schütte13 Konzeption: ER-Modell -> Relationalen Modell Kunde KuNr Name Adresse NameAttribut:Type KundeKuNr: Integer Name: String Adresse: String EntitätRelation

14 Prof. Dr. Alois Schütte14 Konzeption: ER-Modell -> Relationalen Modell NameAttribut:Type beinhaltet (WpBestand) DeNr: Integer WKN: String Anzahl: Integer BeziehungRelation Depot DeNr Abr-Konto Wert Wertpapier WKN Kurs beinhaltet Bez. n m Anzahl

15 Prof. Dr. Alois Schütte15 Konzeption: Relationenschema NameAttribut_ Typ KundeKuNr: Integer Name: String Adresse: String DepotDeNr: Integer KuNr: Kunde.KuNr Wert: String KoNr: Konto.KoNr WertpapierWKN: Integer Bezeichnung: String Kurs: Float WpBestandDeNr: Integer WKN: Wertpapier.WKN Anzahl: Integer WpUmsatzOrNr: Integer DeNr: Depot.DeNr Ausführung: Date WKN: Integer Anzahl: Integer KontoKoNr: Integer KuNr: Kunde.KuNr Saldo: Float GeldUmsatzUmNr: Integer KoNr: Kunde.KuNr Ausführung: Date Betrag: Float Relationenschema insgesamt (nach Vereinfachung und Normalisierung)

16 Prof. Dr. Alois Schütte16 Konzeption: Design  Die Konzeption der Design-Komponente wird hier nicht näher betrachtet.  Als einzigen Aspekt wird die Anforderung nach Validierung von Formularfeldern erörtert: In Formularfelder soll die Benutzereingabe auf  korrekte Typen  sinnvolle Werte geprüft werden.

17 Prof. Dr. Alois Schütte17 Konzeption: Anwendungslogik  Php bietet die Möglichkeit, objektorientiert zu programmieren. Somit sind die elementaren Bestandteile in Klassen zu „verpacken“. Grundlegende Funktionalitäten, z.B.:  Allgemeiner Datenbankzugriff  Benutzerauthentifizierung  Kursimport Klassen für Entitäten, Beziehungen und Anwendungsfunktionalitäten, z.B.:  Kunde  Buchen  Der Zugriff auf eine MySQL-Datenbank erfolgt über Php spezifische API‘s.

18 Prof. Dr. Alois Schütte18 Realisierung: Datenbank  Aus dem Relationenschema wird nach dem konzeptionellen Entwurfs eine Datenbank erzeugt, die dann Ausgangspunkt für die Implementierung ist.  SQL-Anweisungen: create table kunde ( KuNr integer primary key, Name varchar(100), Adresse varchar(100) ) type=innodb; create table konto ( KoNr integer primary key, KuNr integer not null references kunde.KuNr on delete cascade, Saldo float ) type=innodb;...

19 Prof. Dr. Alois Schütte19 Realisierung: Anwendungslogik - Grundlage Php  Die Anwendungslogik wird in Php realisiert. Im praktischen Umfeld würde man große Teile allerdings in PL/SQL als Stored-Procedure umsetzen.  Php ist Server-seitig ausführbarer Kode, der in HTML-Seiten eingefügt ist und vom Server ausgeführt wird, wenn die HTML Seite aufgerufen wird. Das Ergebnis ist eine an der aufrufenden Browser zurück gelieferte HTML-Seite.  Php Beispiel: Beispiel php start php end

20 Prof. Dr. Alois Schütte20 Realisierung: Anwendungslogik - Datenbankzugriff  Der Zugriff auf unsere Datenbank erfolgt mittels eine selbst definierten Php-Klasse über Php-API‘s zum Zugriff auf eine MySql Datenbank: host, $this->user, $this->passwd) or die("Verbindung zum MySQL Server fehlgeschlagen!"); mysql_select_db($this->database, $db) or die("Verbindung mit $this->database fehlgeschlagen! "); return $db; } function close($db) { // Verbindung zur Datenbank abbrechen mysql_close($db) ; } ?>

21 Prof. Dr. Alois Schütte21 Realisierung: Anwendungslogik - Erzeugung dynamischer Inhalte  Als Beispiel für den Zugriff auf Daten in der Datenbank betrachten wir die Kursabfrage (//hal.local/WP/php/)://hal.local/WP/php/ require_once("class/db.php"); // Datenbank Klasse $wpDB = new DB; $db = $wpDB->connect(); // DB Query definieren $sql_query = "SELECT wkn, bezeichnung, kurs "."FROM wertpapier “; // Query an Datenbank $result = mysql_query($sql_query, $db); echo " "; echo " WKN Bezeichnung Kurs "; echo " "; while ($row = mysql_fetch_array($result)) { echo " "; echo " ".$row["wkn"]." "; echo " ".$row["bezeichnung"]." "; echo " “.$row["kurs"] "; echo " "; } // while echo " ";

22 Prof. Dr. Alois Schütte22 Realisierung : Anwendungslogik - Buchen, Php-Klasse definieren  Die eigentliche Buchungslogik ist als Php-Klasse realisiert, in der es Methoden für Wp- und Geld-Transaktionen gibt.  Dabei ist z.B. in der Methode WpKauf, die Geld- und Stückeseite zusammengefasst, so dass die buchhalterischen Einzelaktionen in einer Transaktion gekapselt sind. class Buchung {... function wpKauf($kunr, $denr, $wkn, $anzahl) {... // Stückebuchung $resWp = $this->wpOrder($kunr, $denr, $wkn, $anzahl); $sql_query = "select konr from depot " // Geld-Konto zum Depot... $sql_query = "select kurs from wertpapier " // WP Kurs zur WKN... $kurs = $row[kurs];... $betrag = $anzahl * $kurs; // Geldbuchung $resGeld = $this->belastung($kunr, $konr, $betrag);...

23 Prof. Dr. Alois Schütte23 Realisierung : Anwendungslogik - Buchen, Php-Klasse verwenden  Verwendung der Klasse „buchen“, um WP-Kauf durchzuführen (//hal.local/WP/php/)://hal.local/WP/php/ wpKauf($kunr, $denr, $wkn, $anzahl); if ($resultat) echo "Der Kauf ist gebucht!"; else echo "Kauf wg. techn. Probleme nicht gebucht!"; ?>

24 Prof. Dr. Alois Schütte24 Realisierung: Design  Die Realisierung der Design-Komponente betrachtet nur die Thematik der Validierung von Formularelementen.  Die Validierung kann Client-seitig oder Server-seitig erfolgen: Client-seitig ohne Server-Zugriff mit JavaScript Server-seitig mit Php

25 Prof. Dr. Alois Schütte25 Realisierung: Design - Validierung von Formulardaten, JavaScript function testeZahl(str) { var reg = /^[0-9]+$/; if (!reg.exec(str) || str <= 0 ) return false; return true; } function add(x,y) { var res; if (!(testeZahl(x) && testeZahl(y))) { alert("Bitte pos. Zahl eingeben!"); } res = parseInt(x) + parseInt(y); return res; }...  Funktionsdefinition in JavaScript

26 Prof. Dr. Alois Schütte26 Realisierung: Design - Validierung von Formulardaten, JavaScript  Funktionsaufruf in JavaScript

27 Prof. Dr. Alois Schütte27 Realisierung: Design - Validierung von Formulardaten, Php  Formularanzeige

28 Prof. Dr. Alois Schütte28 Realisierung: Design - Validierung von Formulardaten, Php ...  Von Php neu erzeugte Ergebnisseite

29 Prof. Dr. Alois Schütte29 Diskussion  Test und Going Live sind wichtige Phasen, die wir hier unberücksichtigt lassen.  Vielen Dank für Ihre Aufmerksamkeit!  ??


Herunterladen ppt "Prof. Dr. Alois Schütte1 Web-basierte Verbuchung eines Wareneingangs Alois Schütte Inhalt Problemstellung Projekt."

Ähnliche Präsentationen


Google-Anzeigen