Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Das Web als Präsentations- / Kommunikationsschicht.

Ähnliche Präsentationen


Präsentation zum Thema: "Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Das Web als Präsentations- / Kommunikationsschicht."—  Präsentation transkript:

1 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Das Web als Präsentations- / Kommunikationsschicht

2 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Verteilte Anwendungen und das Web Webtechnologie bietet guten Präsentationslayer –für Anwendungen, die viele Anwender erreichen müssen wenige Voraussetzungen beim Anwender (Browser + Internetanschluß) Komplexere Resourcen, wie Datenbank, werden beim Anwendungsanbieter bereitgestellt Update, etc. der Anwendung einfacher Web-Services und Restful Web-Service-Technologien –sind besser als andere Verteilte Objekttechnologien für Kommunikation über das Internet geeignet da Firewall transparent Dokument-Transfer über Web-Services (SOAP) ist weiter routebar und bietet damit gute Message-Transfer Möglichkeiten über Internet

3 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Verteilte Komponenten und Webtechnologien Ersetzen Webtechnologien die Verteilten Komponenten- Technologien? –Nein, sie ergänzen diese nur –In komplexen Business-Anwendungen stellt das Web nur eine weitere Schicht dar – Bei kleineren Anwendungen kann eine Webanwendung + Datenbankschicht einen komplexeren Business-Layer überflüssig machen Hier gibt es die Tendenz zu "leichgewichtigen" Business- Modellen, wie Web-Beans (EJB lite)

4 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Was ist SOA – Hat das was mit Web zu tun? SOA (Service Oriented Architecture, dienstoriente Architektur) ist –nur ein Architekturmodell, um Dienste von Mitarbeitern und Organisationen zu strukturieren und über das Netzwerk zu nutzen –hat nichts unmittelbar mit Web oder Web-Services zu tun SOA ist durch allgemeine Merkmale gekennzeichnet – Jeder Dienst ist in sich abgeschlossen und kann eigenständig genutzt werden –Der Dienst ist über Netzwerk verfügbar –Bei der Nutzung reicht es, seine Schnittstelle zu kennen –Der Dienst ist dynamisch gebunden: er wird erst zur Laufzeit lokalisiert und eingebunden –Plattformunabhängig und von keiner Programmiersprache abhängig

5 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Was ist SOA – Hat das was mit Web zu tun? (2) Prinzipiell weist CORBA einige Merkmale von SOA auf und –könnte als Implementierung für SOA-Anwendungen genutzt werden, allerdings gibt es da einige Probleme CORBA Kommunikation ist nicht Internet-transparent CORBA ist schwer zu implementieren Web-Services und Restful Web-Services haben viele der Kommunikationseigenschaften, die SOA-Architekturen brauchen –Plattform- und sprachunabhängig – leicht zu implementieren –Internet-Transparenz –Unabhängigkeit von Implementierung und dynamische Bindbarkeit => Eine Kombination von Verteilten Komponenten Implementierungen mit Web-Service orientierten Schnittstellen nach außen bietet gute Grundlage für SOA-Anwendungen

6 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Service-orientierte Anwendung Internet Intranet Browser Firewall HTML-Gen. Zugriff auf App.logik DBMS Datenbank Web-Server Businesslogik Datenzugriff Komm.schnittst. Applikationsserver enthält Businesslogik Web-Container stellt HTML-Oberfläche und Service-API bereit Service-API SOA- Anwendung

7 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Was bietet Java? Low Level Kommunikationsschnittstellen mit HTTP-Servern Java-basierte Web-Applikationsserver –Servlets, JSP, JSF (Web-Komponenten Technologien) als Bestandteil von JEE –Unzählige darauf aufsetzende Webframeworks von Drittgruppen Web-Service und Restful Web-Service Frameworks als Bestandteil des JEE Standards Auf JEE-Applikationsserver aufbauende SOA-Plattformen und SOA-Technologien –wie OpenESB, BPEL,...

8 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Services / Serviceschnittstellen Beispiel: RESTful Services

9 Forschungszentrum Karlsruhe Technik und Umwelt 9 Gruppe WebUIS | IAI | 03.02.2009 REST und RESTful-Services REST (Representational State Transfer) ist ein –Architekturprinzip für Verteilte, Internet-basierte Service-orientierte Anwendungen –erstmals beschrieben von Roy Fielding in seiner Dissertation Architectural Styles and the Design of Network-based Software Architectures –Kernüberlegung: Wie muss eine Service-orientierte Architektur aufgebaut sein, wenn sie den grundlegenden Prinzipien des Web folgt. RESTful Web-Services sind dann zugehörige Serviceschnittstellen, die nach den REST Prinzipien realisiert sind

10 Forschungszentrum Karlsruhe Technik und Umwelt 10 Gruppe WebUIS | IAI | 03.02.2009 RESTful Services Services zum Zugriff auf "Resourcen", die über Internet erreichbar sind –Resourcen haben eine URI als eindeutigen Identifier Können verschiedene Repräsentationen haben –HTML, XML, JSON, PDF –Inhaltlich beliebige Dinge z.B. Objekte, wie Kontakte, Bücher, CDs, … Nutzen HTTP zur Definition der Aktionen auf Resourcen –GET"Gib mir Repräsentation der Resource" –PUT"Führe Update der Resource aus", erzeuge Sie bei Bedarf –POST"Erzeuge neue Sub-Resource –DELETE"Lösche Resource" RESTful Services sind zustandslos Contact ID=2467 Client http://addressbook.org/contact/2467 GET... XML-Repräsentation Resource

11 Forschungszentrum Karlsruhe Technik und Umwelt 11 Gruppe WebUIS | IAI | 03.02.2009 Struktur von URLs URL's zum Aufruf von Services –http://contact.org/contacts Rückgabe der Liste aller Kontakte –http://contact.org/contacts?lastname=Düpmeier Rückgabe der Kontakte, bei denen lastname den Wert Düpmeier hat (Suchinterface) –http://contact.org/contacts?id=2467 nicht gut! –http://contact.org/contacts/2467 Rückgabe von Informationen zum Contact mit Id 2467" Fazit: –Direkte Adressierung (Benennung) von Ressourcen sollte über URL's (ohne Query-Parameter) erfolgen –Query-Parameter dienen u. a. zur Filterung, Einschränkung oder Spezialisierung der Rückgabe

12 Forschungszentrum Karlsruhe Technik und Umwelt 12 Gruppe WebUIS | IAI | 03.02.2009 Rückgabeformate und Verlinkung RESTful Services geben Informationen über Ressourcen (Repräsentationen) in strukturierten Formaten zurück –Z.B. XML oder JSON Dabei werden auch Möglichkeiten zur Verlinkung mit weiteren Ressource-Repräsentationen genutzt Düpmeier Clemens 10.07.1955 Anna Nobel

13 Forschungszentrum Karlsruhe Technik und Umwelt 13 Gruppe WebUIS | IAI | 03.02.2009 Content Negotiation und Inhaltstypen Client sendet "Accept"-Header mit gewünschten bzw. akzeptierten Inhaltsformaten (z.B. application/xml) –Service sendet bestmögliche Repräsentation zurück Inhaltstypen sind –über Mime-Typen definiert, also z.B. text/plain, text/html text/xml, application/xml application/json image/gif, image/jpeg

14 Forschungszentrum Karlsruhe Technik und Umwelt 14 Gruppe WebUIS | IAI | 03.02.2009 Weitere Eigenschaften Security –Nutzung der HTTP-Security Mechanismen Verschiedene Authorisierungsformen Nutzung von HTTPS falls sichere Übertragung unabhängig vom Service selbst definierbar Fehlerbehandlung –über Standard HTTP-Mechanismen Fehlercodes und Fehlermeldungen in Response Caching und bedingte Requests –Kann HTTP Mechanismen, wie "If-Modified-Since", ETags Header nutzen –Client kann daher Ressourcen cachen (größere Performance)

15 Forschungszentrum Karlsruhe Technik und Umwelt 15 Gruppe WebUIS | IAI | 03.02.2009 Weitere Eigenschaften (2) Addressability –Jede für einen Client sinnvolle Ressource ist direkt adressierbar –D.h.: Alle solche Ressourcen können über URI direkt erreicht werden Connectedness –RESTful Services nutzen das Hypertext Prinzip –Ressource-Repräsentationen "verlinken" untereinander In XML Repräsentationen z.B mit "xlink:href" Konstrukten –Man muss nicht alle Information in eine Ressource- Repräsentation verpacken Unterscheidung zwischen Übersicht oder Detailansicht Auf in Beziehung stehende Objekte verlinken, statt einbetten, etc.

16 Forschungszentrum Karlsruhe Technik und Umwelt Beispieldaten und Mapping Clemens Düpmeier, 16.02.2014 @Entity @XmlRootElement public class Contact { @ID long id; String lastname; String surname; Date birthday; } 2467 Düpmeier Clemens 10.07.1955 Objektrelationales Mapping Java To XML Mapping (JAXB) idlastnamesurnamebirthday 2467DüpmeierClemens10.07.1955 in Datenbank XML-Darstellung zum Übertragen

17 Forschungszentrum Karlsruhe Technik und Umwelt 17 Gruppe WebUIS | IAI | 03.02.2009 Progr. von RESTful Service über Jersey Die Pfadangaben (@Path) definieren, welche Methode bei welcher URL aufgerufen wird Das zurückgegebene Objekt wird automatisch nach XML serialisiert, wenn das Objekt JAXB gemappt ist @Produces({"application/xml","application/json"}) public class ContactResource { @EJB ContactDao contactDao @GET @Path("/contacts/") public List getListOfContacts() { return contactDao.getContacts(); } @GET @Path("/contacts/{contactId}") public Contact getContact(@PathParam(contactId") String id) { return contactDao.getContact(id); }

18 Forschungszentrum Karlsruhe Technik und Umwelt Serviceaufruf durch mobilen Client Clemens Düpmeier, 16.02.2014 GET http://contact.org/contacts/2467 Content-Type: application/json { "id":"2467", "lastname":"Düpmeier", "surname":"Clemens", "birthday":"10.07.1955" } Kontakte-Server JPA->XML->JSON JSON

19 Forschungszentrum Karlsruhe Technik und Umwelt 19 Gruppe WebUIS | IAI | 03.02.2009 Clients RESTful-Services sind unabhängig von Programmiersprache –Clients + Server können in "allen" Sprachen und für alle Plattformen geschrieben werden Auf Clientseite ist nur ein minimales Framework notwendig –Muss URL-Aufrufe an Server schicken –und das Rückgabeformat interpretieren können Also z.B. XML oder JSON verarbeiten können Zur weiteren Vereinfachung für Servicenutzer wird häufig gleich Client-seitige API in Zielsprache bereitgestellt –z.B. in Form einer Objektorientierten Javascript-Library für die Anwendung in Web-Applikationen Google Maps API, OpenSocial API, Amazon API, Flickr API, etc. –Oder in Form von Java oder.NET Klassenbibliotheken

20 Forschungszentrum Karlsruhe Technik und Umwelt 20 Gruppe WebUIS | IAI | 03.02.2009 Anwendung(en) Ideal für serverseitige Mashups –Integration verschiedener Daten + Dienste im Internet zu neuen Webanwendungen Als Schnittstelle zur Anbindung von Client-seitigen Anwendungen an Server-seitige Dienstinfrastrukturen –RIAs = Rich Internet Applications –Mobile Anwendungen (Beispiele IPhone oder Android Apps) SOA (Service Oriented Architecture) Anwendungen –z.B Business-to-Business Kommunikation Cloud-Computing –In Clouds ist "everything a service" Infrastructure as a service (IAAS) Software as a service (SAAS) Programs as a service (PAAS)


Herunterladen ppt "Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 16.02.2014 Das Web als Präsentations- / Kommunikationsschicht."

Ähnliche Präsentationen


Google-Anzeigen