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