Vs9.7 1 9.7 Web-Dienste Idee:Web Server für beliebig programmierte Dienste einsetzen, d.h. Web als Middleware Warum? Allgegenwart des Web verspricht allgemeine.

Slides:



Advertisements
Ähnliche Präsentationen
SOAP, nur ein neuer XML- Dialekt?
Advertisements

Basis-Architekturen für Web-Anwendungen
© 2003 Guido Badertscher Spontane Vernetzung - UPnP 9. Jänner 2004 Spontane Vernetzung Guido Badertscher.
SOAP Simple Object Access Protocol
Web Services und Workflow-Steuerung
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
1 Web Services (SOAP, REST, WSDL). © Prof. T. Kudraß, HTWK Leipzig 2 Web Service – Definitionen? Gartner Group: Web services are software technologies,
Technik Gestaltung Navigation Daten. Übersicht Client Webbrowser InternetServer.
Seminar Internet Technologien
Einführung MySQL mit PHP
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Einführung Servlets/JSPs
Seminar Praktische Informatik Web Services
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Seminarleiter: Herr Prof. Klement und Herr Prof. Kneisel
Software Architektur III
Die .NET Common Language Runtime
Die .NET Common Language Runtime
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.
Webservice Grundlagen
Das Client/Server – Modell und die XAMPP-Distribution
Web Services Semistrukturierte Daten 1 – Gruppe 6.
Management- und Web Services- Architekturen
Einführung in PHP.
Einführung in PHP 5.
Web 2.0 & AJAX (A)sysnchrones (J)avaScript (A)nd (X)ML
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Einführung in Web Services Web Services in der Praxis
David Kružić Studienprojekt: DecidR+ 18. Januar 2010 WS – BPEL.
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Reinhold Rumberger Web Services.
SharePoint 2013 Web Services
SOAP.
->Prinzip ->Systeme ->Peer – to – Peer
Universal Plug and Play
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken und Internet
Welcome to Web Services & Grid Computing Jens Mache
Web Services (Axis) ETIS SS05.
Web Services Spezielle Methoden der SWT Liste V – WS 2008/2009 Christian Boryczewski.
WSDL Web Services Definition Language Von Nikos Vormwald.
1 Servlets Stephan Baldes. 2 Was ist ein Servlet? S E R V L E T = Eine auf Java-Technologie basierte Web-Komponente, die von einem Container.
Cloud Entwicklung: Web Services
Betriebs- systeme und Verteilte Systeme Einführung in Web Services Projektgruppe Peer2Peer Suche nach Webservices WS 2004/SS 2005 Christian Neubert.
Application Infrastructure Technologies Extending OnPremise EAI to the Cloud Wilfried Mausz BSc. dataformers GmbH Lothar Mausz dataformers.
Mainframe und WebServices bei der W. KAPFERER KG Einfache Internet-Lösungen in Verbindung mit vorhandenen Host-Programm-Strukturen.
Patrick Richterich Lattwein GmbH Web Services Softwareentwicklung mit SOAP.
Was sind Web Services? Marko Harasic Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme
Dynamische Webseiten CGI & co. © CGI - Lösung für alle ? Ja CGI kann alles tun, was man für Anwendungen braucht flexibel (beliebige.
Webservices SOAP und REST Nicole Fronhofs 1. Betreuer: Prof. Dr. Volker Sander 2. Betreuer: B. Sc. Sebastian Olscher.
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Web Services Dr. Wolfgang Wörndl
WebServices Vortrag zur Diplomarbeit WebServices Analyse und Einsatz von Thomas Graf FH Regensburg
Import java.util.*; Hilfsklassen, die man eigentlich immer braucht.
Schnittstellen für Verteilte System mit J2EE Frank Schwichtenberg SourceTalk 2008 Göttingen,
SOAP - WSDL Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 2 Hauptseminar: Virtuelle.
Standardtechnologien von Web Services Daniel Schade.
1. Einführung Lernziele: Auffrischen des Wissens aus Rechnernetze
Was sind Web Services? Marko Harasic
Vernetzte Forschungsumgebung in den eHumanities
WSDL Web Services Definition Language
Business Process Excuction Lanaguage
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
Business Process Excuction Lanaguage
Prof. Dr.-Ing. Franz-Josef Behr Geodaten und Datenmodell
Datenbanken online sowie offline verfügbar machen
Dokumentenproduktion im Medienzentrum
Tutorstunde 10.
 Präsentation transkript:

vs Web-Dienste Idee:Web Server für beliebig programmierte Dienste einsetzen, d.h. Web als Middleware Warum? Allgegenwart des Web verspricht allgemeine Akzeptanz in heterogener Welt (statt CORBA,.NET,...) sowie Ausnutzung etablierter Infrastruktur (besonders Web-Tunnel durch Firewall; Sicherheit?)  Standard: SOAP (ehemals Simple Object Access Protocol ) für Codierung von Aufrufen und Ergebnissen mit XML

vs9.7 2 Konsequenzen:  Aufgerufen werden Dienste (mit Schnittstellen), keine Objekte: Web-Dienste (Web Services)  Wegen XML-Codierung wesentlich langsamer als z.B. CORBA-IIOP  Dienst immer erreichbar, wenn Web Server erreichbar (Port 80), auch über Firewall-Grenzen hinweg.  Keine prinzipielle Beschränkung auf HTTP und Web Server: z.B. auch SMTP + geeignet konfigurierter Mail Server, oder...  Entwicklungsumgebungen und Generatoren für Vertreter- und Treiber-Code sind stark herstellerabhängig !  „Web-Fernaufrufe“? SOAP ist tatsächlich nicht mehr als ein Fernaufruf-Protokoll !

vs9.7 3 Standardisiert sind ferner: WSDL-Web Services Description Language beschreibt Schnittstellen (ports) von Diensten mit ihren Parametern UDDI-Universal Description and Discovery Interface Schnittstelle für Dienstverzeichnisse BPEL-Business Process Execution Language CDL -Choreography Description Language usw. Sprachen zur Beschreibung von Dienst-Interaktionen

vs9.7 4 intermediary initial sender ultimate receive r SOAP Idee: Transport von XML-Dokumenten als Nachrichten entlang eines Transport-Pfads Dave Winer et al. (Userland, Microsoft) 1998 : XML-RPC weiterentwickelt zu SOAP (W3C) 2000 XML binding A binding B initial sender ultimate receiver intermediary protocol A protocol B

vs9.7 5 SOAP Envelope SOAP Header SOAP Header Block Header beschreiben Erweiterungen und Optionen Verarbeitung je nach Typ durch - bestimmte Zwischenstation - alle Zwischenstationen - endgültiger Empfänger SOAP Body Inhalt wird nur vom endgültigen Empfänger verarbeitet SOAP-Nachricht

vs9.7 6 SOAP-Header Header ermöglichen Erweiterung des SOAP-Nachrichtenaustauschs - features: security, reliability,... - MEP = message exchange pattern: request-response, oneway,... - sonstige "SOAP-Module" für Verarbeitung Standard-Attribute steuern Header-Verarbeitung - role : Bezeichnet Station(en), für die der Header bestimmt ist - mustUnderstand : Header muss verarbeitet werden, oder Nachricht darf nicht weitergeleitet werden (Fehler) - relay : Header muss an die nächste Station weitergeleitet werden, wenn er nicht verarbeitet wurde Station darf/muss Header verarbeiten und entfernen, sowie neue Header einfügen – auch Kopien alter Header

vs9.7 7 Protokoll-Bindung Protokoll-Bindung ist verantwortlich für - Serialisierung des XML-Infosets - Übertragung an die nächste Station - Deserialisierung/Wiederherstellung des XML-Infosets Weitere Funktionen: - Unterstützung optionaler features - Realisierung eines oder mehrerer MEPs - Optimierung der Übertragung - uvm. Typische Bindung: HTTP - Transport mit XML-Serialisierung in HTTP-Body - zwei MEPs: POST (request-reply), GET (response only)

vs9.7 8 POST /reservations HTTP/1.1 Host: travelcompany.example.org Content-Type: application/soap+xml; charset="utf-8" Content-Length: 492 <myns:ReliableMessaging xmlns:myns=" type="once-and-only-once"/> <m:retrieveItinerary env:encodingStyle=" xmlns:m=" FT35ZBQ SOAP über HTTP, MEP=POST

vs9.7 9 Binär-Daten SOAP-Nachrichten sind zwangsweise XML-Dokumente - Wie überträgt man damit Nicht-XML-Daten?... JPEG-Bilder, PDF-Dokumente, digitale Unterschriften,... Typische Behandlung: Kodierung als BASE64 Texte, aber dann - umständliche Handhabung - aufwändige Umkodierung - aufgeblähte Übertragungseinheiten Lösung: Alternative Serialisierung des Infosets als MIME/Multipart - XOP: XML-binary Optimized Packaging sowie - MTOM: SOAP Message Transmission Optimization Mechanism

vs <soap:Envelope xmlns:soap=' xmlns:xmlmime=' /aWKKap... Base64 content...GGyQ= Faa7vR... Base64 content...Oi2VQ=

vs MIME-Version: 1.0 Content-Type: Multipart/Related;boundary=MIME_boundary; type="application/xop+xml"; start=" "; startinfo="application/soap+xml; action=\"ProcessData\"" Content-Description: SOAP message with my pic and sig in it --MIME_boundary Content-Type: application/xop+xml; charset=UTF-8; type="application/soap+xml; action=\"ProcessData\"" Content-Transfer-Encoding: 8bit Content-ID: <soap:Envelope xmlns:soap=' xmlns:xmlmime=' <xop:Include xmlns:xop=' href='cid: <xop:Include xmlns:xop=' href='cid:

vs MIME_boundary Content-Type: image/jpeg Content-Transfer-Encoding: binary Content-ID:.. binary octets for JPEG image... --MIME_boundary Content-Type: application/pkcs7-signature Content-Transfer-Encoding: binary Content-ID:... binary octets for signature... --MIME_boundary-- Weitere Informationen zu SOAP:

vs WSDL Web Services Description Language Wasbeinhaltet der Dienst- Typen, Nachrichten Wiewird der Dienst angeboten- Bindung Wowird der Dienst bereitgestellt- Service XML-Sprache zur Beschreibung aller Aspekte von Web-Diensten: Signatur in Java wäre etwa: float checkAvailability (Date checkin, Date checkout, String roomtype) throws InvalidDataError Beispiel: Prüfen, ob im Hotel "GreatH" Zimmer verfügbar sind. Angabe von Check-In-Tag, Check-Out-Tag und Zimmer-Typ liefert Preis in Euro, oder meldet ParameterFehler.

vs <description xmlns=" xmlns:wsoap= " xmlns:soap=" Namensraum für Schnittstellen, Bindung, Dienst targetNamespace= " xmlns:tns= " Namensraum für eingebettete Typdefinitionen xmlns:ghns = " > This document describes the GreatH Web service.... optional, auch externes Schema möglich... verwendet Typen... verwendet Interface... verwendet Interface, Bindung

vs Eingebettete XML-Schema-Typdefinitionen für Operationen <xs:schema xmlns:xs=" targetNamespace=" xmlns=" Anfrage Antwort Fehle r

vs <fault name = "invalidDataFault" element = "ghns:invalidDataError"/> <operation name="opCheckAvailability" pattern=" style=" safe = "true"> <input messageLabel="In" element="ghns:checkAvailability" /> <output messageLabel="Out" element="ghns:checkAvailabilityResponse" /> Interface beschreibt logisches Kommunikationsmuster

vs <binding name="reservationSOAPBinding" interface="tns:reservationInterface" type=" wsoap:protocol=" <fault ref="tns:invalidDataFault" wsoap:code="soap:Sender"/> <operation ref="tns:opCheckAvailability" wsoap:mep=" SOAP über HTTP MEP

vs <service name="reservationService" interface="tns:reservationInterface"> <endpoint name="reservationEndpoint" binding="tns:reservationSOAPBinding" address=" Veröffentlichung der Dienst-Beschreibung: ● Web-Server entsprechend targetNamespace ● UDDI Publishing/Inquiry-API Weitere Informationen:

vs JAX-RPC Einschränkungen der SEI: ● Schnittstelle erbt von java.rmi.Remote ● Methoden deklarieren java.rmi.RemoteException ● Eingeschränktes Typsystem: ● primitive und "einfache" Typen, Holder, Arrays ● "valuetypes" mit public members oder getters/setters Idee: SOAP und WSDL nicht manuell produzieren, sondern hinter geeigneter Entwicklungsumgebung verstecken Vorgehen: Java-Schnittstelle SEI = Service Endpoint Interface definieren und entsprechende Implementierung für Web-Dienst erstellen

vs Erstellen der Server-Konfigurationsdatei für - Auswahl der zu behandelnden SEI - Festlegung des Dienst-Namens - Abbildung von Java-Paketen auf targetNamespace URIs SOAP-Anbindung Generierung mit wscompile -gen:server - erstellt WSDL-Datei zu SEI - erstellt Mapping-Datei von WSDL nach Java - erstellt SOAP-Treiber (Servlet) Bereitstellung mit deploytool - erzeugt und konfiguriert WAR-Datei - installiert WAR-Datei in application server

vs SOAP-Client Beschaffung der Schnittstelle mit wscompile -import -keep - lädt die WSDL-Datei von Dienst-URL - erzeugt entsprechende Java-Schnittstelle im Ziel-Paket Erstellen der Client-Konfigurationsdatei mit - URL des zu benutzenden Dienstes - Angabe des gewünschten Java-Pakets für die Schnittstelle Weitere Informationen: Kapitel 8 Erzeugung von Vertretern alternativ - statisch mit wscompile -gen:client - dynamisch zur Laufzeit mittels DynamicProxy