Das Web als Präsentations- / Kommunikationsschicht

Slides:



Advertisements
Ähnliche Präsentationen
interaktiver Web Service Workflows
Advertisements

Be.as WEB Technologie
Objektrelationales Mapping mit JPA
Entwicklung UnivIS-Anbindung auf Basis von PHP und DOM-XML
Inhalt – Technische Grundlagen
Basis-Architekturen für Web-Anwendungen
Sebastian Peters TIB-Workshop zur DOI-Registrierung 3. November 2011 DataCite Technik Vertiefung.
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
WS06/07Prof. Dr. Andreas Schmietendorf1 Programmierung von Client/Server- Anwendungen Übersicht zur Vorlesung.
1 Prof. Dr. Andreas SchmietendorfWS06/07 – Labor C/S-Programmierung Übung 4 Mehrstufige Client/Server-Systeme mit JSPs, Servlets und JavaBeans (Web-Container)
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Pascal Busch, WWI00B – Vergleich CORBA vs. Web Services hinsichtlich der Applikationsintegration Web Services vs CORBA Web Services vs CORBA Ein Vergleich.
DOM (Document Object Model)
Web 3.0 – Programmierung – Semantic Web / CIDOC CRM
Oracle WebServer - Einführung. © Prof. T. Kudraß, HTWK Leipzig Oracle Web Application Server HTML WebServer ® File system Static HTML PL/SQL Packages.
Struts Seminar Javabasierte Webanwendungen. Tobias Kutzler2 Überblick Historie Was ist Struts? Model Controller View Zusammenfassung.
Introducing the .NET Framework
Strukturänderungen Verteilte Anwendungen Wintersemester 06/07 © Wolfgang Schönfeld.
Seminar Internet Technologien
Hänchen & Partner GmbH 1 Web-Anwendungen mit dem Jakarta Struts Framework 3.Juli 2003 Martin Burkhardt.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
M A P K I T Management eines J2EE basierten eCommerce Systems am Beispiel des ATG Dynamo Applikationsservers und BMC Patrol als Managementframework.
Wir bauen uns eine Webapplikation!
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
ArcGIS als WPS Server Aktueller Stand der Umsetzung
Integration heterogener verteilter Systeme mit WS-BPEL – ein Praxisbeispiel Dr. Wolf-Dieter Heinrichs.
OpenStack Jörn Esdohr | Oktober 2012, Dortmund.
Webservice Grundlagen
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
UNIVERSITÄT ZU KÖLN HISTORISCH-KULTURWISSENSCHAFTLICHE INFORMATIONSVERARBEITUNG REUSABLE - CONTENT SS 2013 MARIA WAGNER ReST.
Grundlagen: Client-Server-Modell
Java für Fortgeschrittene
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 13 Kapitel 4 Folie 2 REST Web Services (1)
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 6 Folie 2 WCF Data Services (1) s.a.
Sesame Florian Mayrhuber
Welchen Problemen ist man bei heterogener, verteilter Programmierung ausgesetzt? Hardware: nicht einheitliche, inkompatible Systeme, verschiedene Leistungsfähigkeit.
Management- und Web Services- Architekturen
Agenda Rückblick 2. Aufbau der Software Benutzeroberfläche 4. Ausblick
XML (Extensible Markup Language)
Datenanbindung in Webapplikationen
Datenbankanbindung in Web-Applikationen
Web 2.0 & AJAX (A)sysnchrones (J)avaScript (A)nd (X)ML
Real World Windows Azure Die Cloud richtig nutzen.
Client-Server-Modell
Reinhold Rumberger Web Services.
SharePoint 2013 Web Services
W W W - World Wide Web. Das World Wide Web kommt aus dem Englischen und bedeutet ‚Weltweites Netz‘ ist ein über das Internet abrufbares Hypertext-System.
prof. dr. dieter steinmannfachhochschule trier © prof. dr. dieter steinmann Folie 1 vom Montag, 30. März 2015.
Datenbanken im Web 1.
© Zühlke 2013 Romano Roth Workshop 6 (ws6C) native Entwicklung für mobile Geräte Lektion 2: Service 18. February 2013 Folie 1 von 19.
Webserver Apache & Xampp Referenten: Elena, Luziano und Sükran
J2EE-Motivation(I) Anforderungen an heutige Software u.a.:
EJB Architektur für große Web - Applikationen Gerald Weber
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
Enterprise-IT-Praktikum JAX-RS-Einführung Institut für Telematik Universität zu Lübeck Wintersmester 2012/13 Dennis Boldt David Gregorczyk.
ORB – Konzepte Ist – Analyse der betrieblichen Notwendigkeiten, Anforderungsableitung an moderne Lösungskonzepte, alternative ORB – Konzepte mit Zukunft,
Cloud Entwicklung: Web Services
Microsoft Silverlight Autor: Christian Pirker. Inhalt Einführung Silverlight Einführung XAML Silverlight 1.0 und 1.1 Silverlight 2.0 Silverlight 3.0 Ausblick.
Generic Enabler Felix Holzäpfel-Stein, Aachen Generische Komponenten im Cloudkontext.
Webbasierte Kommunikation am Beispiel REST Seminarvortrag von Heiko Overath.
© WZL/Fraunhofer IPT Eine Gegenüberstellung von Websockets und RESTful Web Services Seminarvortrag von Lucie Mades.
1 Lutz Ullrich SOA – serviceorientierte Architektur SOA – Was ist das?
Vergleich verschiedener Kommunikationsinfrastrukturen in Enterprise Information Systems Ben Mainz Seminar am Lehrstuhl für Software Engineering RWTH Aachen.
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen,
Verteilte Anwendungen: J2EE
 Präsentation transkript:

Das Web als Präsentations- / Kommunikationsschicht Clemens Düpmeier, 28.03.2017

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 Clemens Düpmeier, 28.03.2017

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) Clemens Düpmeier, 28.03.2017

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 Clemens Düpmeier, 28.03.2017

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 Clemens Düpmeier, 28.03.2017

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

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, ... Clemens Düpmeier, 28.03.2017

Services / Serviceschnittstellen Beispiel: RESTful Services Clemens Düpmeier, 28.03.2017

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 9 Gruppe WebUIS | IAI | 03.02.2009

RESTful Services RESTful Services sind zustandslos http://addressbook.org/contact/2467 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, CD’s, … 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 Resource GET <contact id="2467"> ... </contact> Client XML-Repräsentation 10 Gruppe WebUIS | IAI | 03.02.2009

Struktur von URL’s 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 11 Gruppe WebUIS | IAI | 03.02.2009

Rückgabeformate und Verlinkung <contact id="2467"> <lastname>Düpmeier</lastname> <surname>Clemens</surname> <birthday>10.07.1955</birthday> <mother xlink:href="http://contact.org/contacts/33447"> Anna Nobel </mother> </cd> 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 12 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 13 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) 14 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. 15 Gruppe WebUIS | IAI | 03.02.2009

Beispieldaten und Mapping in Datenbank id lastname surname birthday 2467 Düpmeier Clemens 10.07.1955 Objektrelationales Mapping @Entity @XmlRootElement public class Contact { @ID long id; String lastname; String surname; Date birthday; } Java To XML Mapping (JAXB) XML-Darstellung zum Übertragen <contact> <id>2467</id> <lastname>Düpmeier</lastname> <surname>Clemens</surname> <birthday>10.07.1955</birthday> </contact> Clemens Düpmeier, 28.03.2017

Progr. von RESTful Service über Jersey @Produces({"application/xml","application/json"}) public class ContactResource { @EJB ContactDao contactDao @GET @Path("/contacts/") public List<Contact> getListOfContacts() { return contactDao.getContacts(); } @GET @Path("/contacts/{contactId}") public Contact getContact(@PathParam(“contactId") String id) { return contactDao.getContact(id); 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 17 Gruppe WebUIS | IAI | 03.02.2009

Serviceaufruf durch mobilen Client JSON 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 Clemens Düpmeier, 28.03.2017

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 19 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) 20 Gruppe WebUIS | IAI | 03.02.2009