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, Das Web als Präsentations- / Kommunikationsschicht

2 Forschungszentrum Karlsruhe Technik und Umwelt Clemens Düpmeier, 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, 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, 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, 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, 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, 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, Services / Serviceschnittstellen Beispiel: RESTful Services

9 Forschungszentrum Karlsruhe Technik und Umwelt 9 Gruppe WebUIS | IAI | 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 | 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 GET... XML-Repräsentation Resource

11 Forschungszentrum Karlsruhe Technik und Umwelt 11 Gruppe WebUIS | IAI | 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 | 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 Anna Nobel

13 Forschungszentrum Karlsruhe Technik und Umwelt 13 Gruppe WebUIS | IAI | 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 | 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 | 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 public class Contact long id; String lastname; String surname; Date birthday; } 2467 Düpmeier Clemens Objektrelationales Mapping Java To XML Mapping (JAXB) idlastnamesurnamebirthday 2467DüpmeierClemens in Datenbank XML-Darstellung zum Übertragen

17 Forschungszentrum Karlsruhe Technik und Umwelt 17 Gruppe WebUIS | IAI | Progr. von RESTful Service über Jersey Die Pfadangaben definieren, welche Methode bei welcher URL aufgerufen wird Das zurückgegebene Objekt wird automatisch nach XML serialisiert, wenn das Objekt JAXB gemappt public class ContactResource public List getListOfContacts() { return public Contact String id) { return contactDao.getContact(id); }

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

19 Forschungszentrum Karlsruhe Technik und Umwelt 19 Gruppe WebUIS | IAI | 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 | 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