e-Commerce

Transcription

e-Commerce
e-Commerce
Vom Modell zum Code
Prof. Dr. Nikolaus Wulff
Anwendungsdesign
• Die Kunst des Projektleiters und/oder Analytikers
ist es die (Kunden)anforderungen geeignet zu
strukturieren und in Use Cases abzubilden.
• Die Kunst eines Softwarearchitekten ist es die
unterschiedlichen Anforderungen in eine
geeignete Softwarearchitektur abzubilden.
• Die Kunst des Entwicklers ist es die gefundene
Architektur umzusetzen und
auszuimplementieren.
e-Commerce
2
Schichtenarchitektur
• Die Struktur einer Anwendung gliedert sich
sinnvoller Weise in unterschiedliche Schichten.
• Abhängigkeiten zwischen den Schichten sollten
möglichst gering und nie bidirektional sein.
• Diese Schichten spiegeln sich meistens auch in
der Package-Struktur wieder.
• Idealerweise ist die Business Schicht unabhängig
von der verwendeten Visualisierung und der
Kommunikationsplattform.
• Dies ist eine Anwendung des Modell-ViewController Konzepts (MVC), das auch für Web
Applikationen gültig ist.
e-Commerce
3
Thin Web Client Architektur
HTTP
+ Connection
Web Server
+ Authentication
+ Sessi onManagem ent
Application
Server
+ SessionState
ServerPages
Browser
+ Cookie
+ DocumentObjectModel
+
+
+
+
Acti veS erverPage
Servl et
JavaServerPage
CGI
HTML Pages
+ Form
+ InputElement
e-Commerce
Business
Model
Legacy
Systems
Persistence
Mapping
Persistence
4
Der BookStore
• BookStore ist eine einfache Webanwendung.
• BookStore illustriert die wesentlichen Probleme
und Lösungen einer typischen Servletanwendung:
–
–
–
–
Benutzeranfragen bearbeiten
Antworten als HTML Seiten zurück liefern
Persistente Daten in einer Datenbank verwalten
Statusinformationen der Benutzersitzung halten
e-Commerce
5
BookStore UseCase
• Benutzer können:
– alle Bücher auflisten
– nach Büchern suchen
l ist all Books
• Bibliothekare können
zusätzlich:
User
– Bücher in das Inventar
aufnehmen
– Bücher aus dem Inventar
entfernen
find a Book
add a Book
Die Bibliothekar Rolle wird
durch einen per User/PWD
angemeldeten Benutzer
modelliert.
Librarian
remove a Book
Die Anmeldung wird in der
HttpSession verwaltet.
e-Commerce
6
Suchen UseCase
• Die Suche erfolgt nach
verschiedenen Begriffen:
find a Book
find by isbn
find by author
– nach dem Autor
– nach dem Titel
– nach der ISBN
find by title
Die unterschiedlichen Suchen
werden vom Servlet Controller
direkt an die entwickelte
BookStore DB-Anwendung
delegiert.
User
e-Commerce
7
Das BookStore Servlet
e-Commerce
Design und Implementierung
• Die Entwicklung des BookStore erfolgt iterativ,
inkrementell in unterschiedlichen Ausbaustufen,
nach dem Prinzip „Herrsche und Teile“.
• Design: Top-Down
– => Grobe Architektur und Schichtenlayout
• Implementierung: Bottom-Up
– => Lauffähige kleinere Subsysteme
–
Tests mit JUnit
e-Commerce
9
MVC II Architektur
Controller
BookStore
<<Controller>>
BookStoreServlet
-bookStore
(from de.bo okstor e.db)
forward/include
<<creates>>
find/store
Fi ndDial og
Book
displays
View
(from de.bookstore.db)
Model
e-Commerce
10
Beispiel Bücherverwaltung
BookStore
Book
id : long
author : String
isbn : String
title : String
description : String
find/ store
<<creates>>
findById()
findByAuthor()
findByIsbn()
findByTitle()
findAll()
store()
delete()
<<Interface>>
Driver
<<uses>>
(from j av a.sql)
-driver
• Der BookStore bietet einfache Such- und
Speicher-operationen für Instanzen der Klasse
Book.
• Die Persistenz wird in die BookStore Klasse
ausgelagert. Es wird ein einfaches 1:1 Mapping
der Buchattribute auf eine Tabelle verwendet.
• Der BookStore wird mit JUnit getestet.
e-Commerce
11
Verwendete Technologien
• Bereits diese einfache BookStore Anwendung
verwendet eine Reihe von J2EE Bausteinen:
– Java Beans (Klasse Book)
– Persistenz per JDBC (Klasse BookStore)
– Servlets für die Controller Logik (BookStoreServlet)
• HttpSession für den Sitzungsstatus
– Java Server Pages (und Html) für die View
– JUnit für das Test des BookStore.
e-Commerce
12