Komponentenbasierte Entwicklung und Datenhaltung FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Agenda • Einführung • Komponenten – die Bausteine verteilter Applikationen • Komponentenstandards • Java EE – das serverseitiges Komponentenmodell • Datenhaltung & Persistenz-Standards Einführung Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen • • • • Quellen • Java Database Connectivity (JDBC) EJBs Java Data Objects (JDO) Hibernate Werkzeugunterstützung FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Komponenten Einleitun g Komponenten „A component is an piece of software small enough to create and maintain, big enough to deploy and support, and with standard interface for interoperabilty“ Komponentenstandards Software-Artifakt Java EE Komponente Datenhaltung & Persistenz Einsatz von Werkzeugen wiederverwendbar Schnittstellen Wisse n Quellen Spezifikatio n verteilt nutzbar Komponentenmodell Kommunikation FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Klassifikation der Komponenten Einleitun g Trennung von Zuständigkeiten auf Grundlage der Schichtenarchitektur Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen 1. Komponenten der Präsentationsschicht Widget, JSP, Servlet, Portlet 2. Komponenten der Geschäftslogikschicht Entity-Komponente, Service-Komponente, Web Services 3. Komponenten der Controllingschicht Workflow-Controller, Process-Controller ..... Quellen JavaBeans Serverbasierte Komponenten FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Serverbasierte KomponentenBestandteile verteilter Systeme Merkmale verteilter Systeme Einleitun g Komponenten Komponentenstandards • • • • Hardware- und Software-Komponenten auf vernetzten Computern Austausch von Nachrichten Koordination der Aktionen gemeinsame Nutzung von Ressourcen Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen Beispiele komponenten- basierter Systeme • • • • • Web-Applikationen ERP-Systeme (Enterprise-Resource-PlanningSysteme) Mobile Anwendungen SOA- Applikationen Grid- Computing FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Spezifikation serverbasierter Komponenten • Einleitun g Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen • Serverseitiges Komponentenmodell definiert Architektur zur Entwicklung verteilter Geschäftsobjekte OO Middleware- Technologien liefern die Infrastruktur; Applikationsserver bietet Laufzeitumgebung, um Komponenten zu verwalten und für entfernte Clients verfügbar machen • Grundkonzepte der serverseitigen Programmierung Technologische Plattformen Anwendungen, Dienste Middleware RMI, Corba, Web Service Betriebssystem Plattformen Quellen Computer- und Netzwerk-Hardware Service-Schichten verteilter Systeme FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Komponentenstandards Einleitun g Komponenten Komponentenstandards Java EE • • Java EE – Spezifikation .NET- Framework • • CORBA – Component Model ( CCM) COM + Komponentenmodell ... Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Java EE – Grundkonzepte Client-Server-Modell • Einsatz auf Java Applikationsserver Einleitun g Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen • Dienste für Clients, die über Protokolle, wie TCP/IP und HTTP, kommunizieren Mehrschichtenanwendung Aufteilung der Applikation auf mehrere Schichten mit unterschiedlichen Aufgaben ( Multi-Tier-Application) Application programming Interface (API) Trennen von API und Implementierung Java EE- Architektur Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Applikationsstrukturen …. Einleitun g Klassische Client-Server-Architektur Dreischichtenarchitektur Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen Mehrschichtige Komponenten-Architektur 1. Präsentationsschicht ( Darstellung der Inhalte, Benutzereingaben auswerten, Datenaustausch mit Geschäftslogik-Schicht) 2. Geschäftslogik-Schicht ( Kernfunktionalität, Datenaustausch über Datenbank-Schnittstellen..) 3. Persistenzschicht ( ORM, Ressourcenmanagement….) 4. Datenbank-Schicht ( Relationale Datenbank) FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Vorgehensmodell Einleitun g Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen Leitfaden für Modellierung und Entwicklung komponenten- basierter Systeme • Aktivitäten des Software-Lebenszyklus der Komponenten Konzeption, Spezifikation, Strukturierung, Implementierung, Kommunikation und Verteilung der Komponenten • Modellierungssprache UML, .. • Ansätze: - Architekturzentrierter Ansatz Architektur-Framework, Model Driven Architecture (MDA); Einsatz von Entwurfsmustern und Frameworks - Agiler Ansatz FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Beispielapplikation Einleitun g Datenhaltung – Eckpfeiler der komponenten-basierten Entwicklung Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Datenhaltung in java- basierten Systemen Einleitun g Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Plaintext versus XML via XSLT - Zugriff auf Dateisystem und den dort abgelegten Dateien (Import anderer Klassen; Cookies, Logfiles) - Daten in XML- Dateien speichern – Zugriffsmethode XSLT (eXtensible Stylesheet Language Transfomations) Persistenzkonzepte • Datenbankzugriffe via Database Connectivity (JDBC) • • EJBs, O/R-Mapping; Java Persistence API ( JPA) Java Data Objects (JDO) • Hibernate Einsatz von Werkzeugen Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann JDBC ( Java Database Connectivity) • Grundlage ist einheitliches API, dessen Implementierung durch DB-Entwickler unterstützt wird • Ermöglicht Java-Anwendungen den Zugang zu relationalen Datenbank-Systemen über die Structured Query Language ( SQL) • Satz von Schnittstellen definiert, die den Großteil der DB-Funktionalität umfassen Einsatz von Werkzeugen • Quellen • Datenbanktreiber sichert Zugriff auf ein konkretes RDBMS Kapselung des Datenbankzugriff durch JDBC (Verschiedene RDBMS - einheitlicher Zugriff ) Einleitun g Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann JDBC –Treibertypen Einleitun g Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Object/Relational Mapping ( O/RM) • Einleitun g Komponenten Komponentenstandards • • Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen • • • Komponenten-Architektur – mit relationaler Datenbank, die für die Persistenz von Daten verantwortlich ist. Der objekt- orientierter Programmierung ( Objekte) stehen Datenbestände in relationalen Datenbanken (Tabellen) gegenüber O/RM ist die automatisierte Speicherung von Objekten, deren Attribute und Beziehungen auf Tabellen einer relationalen Datenbank Entwickler kümmert sich nicht mehr um Zugriff ( SQLAbfragen) auf Daten Applikation wird unabhängig vom SQL - Dialekt der Datenbank Einsatz von Frameworks als O/R-Mapper Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann JAVA Persistence API (JPA) • Einleitun g Komponenten Komponentenstandards • • • Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen • • Gestattet, Objekte in jeder Umgebung und Datenbank zu speichern ( „Write once, store anyway“ ) Standardisiert den „objektorientierten„ Zugriff auf Datenbanken Entitäten sind gewöhnliche Java-Objekte Einfache Anforderungen an Konfiguration und Lebenszyklus Einheitliche Schnittstelle für alle Arten von JavaProgrammen Zusammenarbeit mit verschiedenen Anbietern Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Enterprise Java Beans – 3.Generation • Einleitun g • • Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen • • • Serverkomponenten, in denen Applikationslogik implementiert wird Kern ist der Methodenfernaufruf (RMI) Möglichkeit Datensätze in Form von Java Beans zu manipulieren EJB-Container dient als Laufzeitumgebung EJBs besitzen Lebenszyklus Kapselung von Business - und Persistenzlogik ( für alle Frontendsysteme verfügbar) Arten von Beans: - Entity Beans (Persistenz) - Session Beans - Message Driven Bean EJB 3.0: JPA, Transactionsmanagement, Loadbalancing FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Entity Beans Einleitun g Komponenten Komponentenstandards Java EE 1. Ablage und Verwaltung von Daten in relationalen Datenbanken 2. Java-Objekte auf Datensatz einer relationalen Datenbank abbilden und umgekehrt 3. Zugriff der Entities über DataSource auf Datenbank ( Applikationsserver) 4. Manipulation der Entities über Entity Manager 5. Zum Auffinden wird SQL-ähnliche Abfragesprache benutzt ( JPA Query Language) Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Java Data Objects ( JDO1) – Sun, 2002 • Einleitun g • Komponenten Komponentenstandards • • Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen • • Containerunabhängige Spezifikation zur Realisierung der Persistenz Datenobjekte ohne Kenntnis der Speichermechanismen bearbeitbar Spezifikation ist ein Framework mit API, Persistenzmanager und SPI (Service Provider Interface) JavaBeans - Java-Objekte ohne Lebenszyklus, die einfach übersetzt und mit Datenbank synchronisiert werden Annotationen bieten neue Möglichkeit, um JavaObjekte mit Metadaten für Datenbanken zu versehen ( JDO2) Neue Java Persistence API ( JPA) verdrängt diese Technologie FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Hibernate Einleitun g Komponenten • • • • • Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen • • • • • • • O/R-Mapping Framework, 2001 initiiert von Gavin King Weitergeführt als Open Source Projekt 2003 aufgenommen von JBOSS in J2EE-Entwicklung www.hibernate.org Zustand eines Objekts in einer relationalen DB speichern und aus entsprechenden Datensätzen ein Objekt erzeugen Fachliche Klassen als einfache POJOs realisieren Abfragemöglichkeiten für spezifische Anwendungsfälle – HSQL ( Hibernate SQL) über Criteria API programmatische Abfragen aufbauen Konfigurierung erfolgt über ein XML- File Schnittstellen für Dienste, wie Transaktionen, Pooling … Kompatibel zu allen gängigen relationalen Datenbanksystemen Werkzeugunterstützung FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Hibernate Architektur Einleitun g Komponenten Komponentenstandards Java-Code mit POJOS Hibernate Schicht Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Java API Relationales Datenmodell Quellen Tools unterstützen Vorgehensweise - Top down - Bottom up FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Frameworks unter sich Kooperation von Hibernate, JavaServer Faces und Spring in der Webentwicklung Einleitun g Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz Einsatz von Werkzeugen Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Beispiel-Animation Einleitun g 1. MyEclipse http://www.myeclipseide.com Komponenten Komponentenstandards Java EE Datenhaltung & Persistenz 2. Visual Paradigm Database Architect http://www.visual-paradigm.com/product/dbva/ dbvaquicktour.jsp Einsatz von Werkzeugen Quellen FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann Quellen 1. Einleitun g Komponenten 2. Komponentenstandards 3. Java EE 4. Datenhaltung & Persistenz 5. Einsatz von Werkzeugen Quelle n 6. 7. Andresen, A, : Komponentenbasierte Softwareentwicklung Carl Hanser Verlag, München 2004 Stark, Thomas: Java EE 5 Pearson Studium, München 2007 Oates, R. u.a.: Spring & Hibernate Carl Hanser Verlag, München 2007 Coulouris, G.: Verteilte Systeme – Konzepte und Design Addison – Wesley, München 2007 Prof. Dr. Naumann, E.; Dipl.-Inf. Tjahjono, L. „Java-Web-Applikation zur automatisierten Verwaltung von Online Formularen“ Projektarbeit, FHTW Berlin 2006 http://www.jeckle/images/ebe/JDBCdrivers.gif Prof. Dr. Naumann, E.; Dipl.-Inf. Siemionek, St. „Internetplattform zur Verwaltung von Immobilien“ Systemdokumentation, FHTW Berlin, 2007 FB4 - Angewandte Informatik - Prof. Dr. Ing. Elke Naumann