Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen, 25.09.2008.

Ähnliche Präsentationen


Präsentation zum Thema: "Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen, 25.09.2008."—  Präsentation transkript:

1 Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen, 25.09.2008

2 2 Wie einfach es sein kann, die komplexen Anforderungen an Verteilte Systeme mit Java zu erfüllen.

3 3 B2B ● Business-to-Business ● Kommunikation über Internet ● Service Orientierte Architektur (SOA) ● Hochintegrierbar

4 4 Verteilte Systeme ● Netzwerkfähigkeit – Viele Gleichzeitige Nutzer (Threads) – Connection Management ● Datensicherheit – Integrität – Verlust – Zugriff ● Hochverfügbarkeit – Skalierbarkeit – Clustering

5 5 Anforderungen ● (Internet-) Dienst ● Einfach nutzbar ● Flexibel einsetzbar ● Integration in andere Dienste/Applikationen ● Transaktionen ● Hochperformant ● Benutzerverwaltung, bzw. AA (Authentifizierung & Autorisierung)

6 6 Komponenten ● Server / Netzwerkschnittstelle ● Datenbank ● Businesslogic

7 7 Java ● „Java ist Netzwerkfähig“ – Servlets in Tomcat – J2EE Application-Server ? ● Java abstrahiert Datenbanken – JDBC – Hibernate ● Java ist Objektorientiert und kann XML :-)

8 8 Konzept ? Schnittstelle ? Was ist eigentlich zu tun ?

9 9 Was ist zu tun? „Mit Dingen etwas tun.“ Entitäten und Handlung Entity Session

10 10 Entity-Session-Model ● Entity – Object, das Abbildet/Repräsentiert womit umgegangen wird ● Session – Nicht: Sitzung mit Session-id etc. – Object, das den Umgang mit den Entities darstellt. ● Create, Retrieve, Update, Delete ● findByName ● u.v.m. ● „Sessions definieren Funktionalität auf Entities.“

11 11 Schnittstellen-Art ● RMI, Enterprise Service – Java spezifisch – Java ist Plattformunabhängig ● Webservice mit SOAP – Weitgehend Unabhängig von Programmiersprache – Plattformunabhängig ● REST (Representational State Transfer) – HTTP – Unabhängig

12 12 Webservice mit SOAP ● Wohldefiniert (WSDL, SOAP) ● Client(-generierung) Plattformunabhängig ● XML-Messages – Transportformat und -methode vollständig gekapselt ● Client arbeitet auf Objekten/Strukturen (Client-Stub) – Einfach wenn Parameter der Methoden Simple-Types sind ● Performance-Einbußen – Standardverfahren: XML-Serialisierung, HTTP – Streaming schwer ein-/umsetzbar ● Arbeiten auf Remoteobj. vs. Übertragen von Datenobjekten ● Entwurf ist oft Methodenbasiert

13 13 REST ● Selbsterklärend ● Repräsentations-Orientiert / Resourcen – Serialisierung / Deserialisierung ● CRUD ● HTTP, Streaming, Browser als Minimal-Client ● Oft schwer benutzbar nach funktionaler Anpassung – Nicht mehr strikt Repräsentations-Orientiert ● „Implementations Unfreundlich“ – Aber einfach, wenn schon Dinge zum Übertragen vorhanden sind. (Entities)

14 14 Webservice-/Rest-Clients in Java ● Bei größeren Projekten und SOA sind Clients oft in Java implementiert. – Java Client API wird benötigt !? ● Bei Webserives mit SOAP oft Server und Client mit AXIS Service nicht mehr plattformunabhängig ● Wegen einfacher, flexibler, plattformunabhängiger Schnittstelle existiert natürlich keine Java Remote Schnittstelle.

15 15 Transaktionen ? Performance ? Java Client API ?

16 16 Doch ein Java-Service ? ● Ein Schritt zurück? ● Enterprise Service mit EJB3 – JBoss, Glassfish ● Skalierbar, Clusterfähig – Entities, Sessions ● Sessions definieren Funktionalität auf Entities – Austausch von Entities (Datenobjekte) – Kein LocalHome, kein RemoteHome, kein Xdoclet – Performant – Persistenz und Transaktionen !!!

17 17 EJB3 „Mit Dingen etwas tun.“ Entitäten und Handlung Entity Session Persistenz Transaktionen, AA durch Anotation

18 18 Webservice 2.0 ● JAX-WS 2.0 ● @Webservice – Methoden der Session werden zu Webservice-Methoden durch Anotation – Kein wscompile etc. ● XML-Messages – Document/Literal Wrapped – Serialisierung der Entities mit JaxB ● Übertragung von „Datenobjekten“ ● Transaktionen in EJB-Session – Konkurierende Zugriffe sind kein Problem

19 19 REST-Interface ● CRUD-Methoden der Session – Servlet bildet HTTP-Methoden auf Session-Methoden ab ● PUT, GET, PUT, DELETE ● Create, Retrieve, Update, Delete ● Repräsentation von Entities in XML (JaxB) – URI/URL mit ID der Entity (@ID) – Generische Erweiterung auf Basis von XML oder Java- Reflections möglich ● Transaktionen in EJB-Session – Konkurierende Zugriffe sind kein Problem

20 20 BusinessLogic + ● @Entity ● @Session ● @Transaction ● @Security ● @Webservice ● @Id ● Application Server natürlich (z.B. JBoss)

21 21 Das, was immer alle wollen ! ● Unterstützung verschiedener Schnittstellen ● Von einfach bis performant ● Transaktionen (zumindest intern) ● Sicherheit ● Fokussierung der Entwicklungsarbeit auf Businesslogik und Datenmodellierung

22 22 ● „Erzeugung von Diensten zur XML-Verarbeitung mit JaxB und EJB3“ (Masterarbeit, Mai 2006) – http://purl.org/net/fschwic/masterthesis ● Fragen? Vielen Dank für's zuhören


Herunterladen ppt "Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen, 25.09.2008."

Ähnliche Präsentationen


Google-Anzeigen