Service Engineering. Übung 2a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

Ähnliche Dokumente
ebusiness Übung 3a Spezifikation und Nutzung von Web-APIs (Services) Prof. Dr. Andreas Schmietendorf 1

Service Engineering. Einbindung von Web Services in eine Java-Anwendung. Prof. Dr. Andreas Schmietendorf 1. SoSe Service Engineering

Service Engineering. Übung 3a Prozessmodellierung mit Hilfe von BPMN. Prof. Dr. Andreas Schmietendorf 1. SoSe 2018 ServEng

Service Engineering. Übung 1 Analyse und Bewertung von Serviceangeboten (über das Internet integrierbare Service APIs)

E-Business Architekturen

Service Engineering. Nutzung von Servicemarktplätzen im Internet (Bezugsbereich der Übung: integrierbare Service APIs)

Service Engineering. Qualitätssicherung von Cloud-Services durch Benchmarking und Monitoring. Prof. Dr. Andreas Schmietendorf 1. Service Engineering

Service Engineering. Übung 2c Einbindung von Web APIs in mobilen Applikationen Prof. Dr. Andreas Schmietendorf, André Nitze

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

VDBS II. Übung 3b Qualitätssicherung von Web Service Angeboten Prof. Dr. Andreas Schmietendorf 1

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

Service Engineering. Ableitung der Servicekomposition aus BPMN-Modellen. Prof. Dr. Andreas Schmietendorf 1. SoSe Service Engineering

Übung B. JPA Java Persistence API. Prof. Dr. Andreas Schmietendorf 1. Übung B (Exkurs)

Tipps und Hinweise zum Bezug der Beitragssatzdatei V5.0

Übung3. Test der Möglichkeiten des JDBC-Interfaces. Prof. Dr. Andreas Schmietendorf 1. Übung 3

Übung 4b Verwendung von Referenzdatenmodellen am Beispiel des TMF-SID (Shared information and data models)

Definition Web Service

TRANSCONNECT. Webschnittstellen für die Cloud, IoT & Co.

Übung 4. Werkzeuge zur ER-Modellierung. Prof. Dr. Andreas Schmietendorf 1. Übung 4

Themen. Web Service - Clients. Kommunikation zw. Web Services

SAP R/3 und der Open Text Delivery Server In der Praxis

Agenda. Web Services unter Lotus Notes/Domino

Service Engineering. IVS Arbeitsgruppe Softwaretechnik. Abschnitt: Einführung zur Vorlesung

Fault Handling in Webservices. SoSe 2011

Web-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum

WebServices Zwischen Buzzword und Nutzen

Erläuterungen zu Darstellung des DLQ-Datenportals

Azure &.NET Meetup Freiburg

Eingabe und Ausgabe in Java. Dr. Horst Treiblmaier Abteilung für Wirtschaftsinformatik WU Wien

Einbindung von Web Services in mobilen Applikationen

Die Nutzung von Webservices in der Oracle Datenbank. 11 März 2010

<Insert Picture Here> Einführung in SOA

Übung 2. Verwendung eines RDBMS. Prof. Dr. Andreas Schmietendorf 1. Übung 2

Auszug aus JAX-WS Folien

Etablierung serviceorientierter Architekturen mit Web Services

AVO Übung 4. AspectIX. 18. Januar 2005 (WS 2004) Andreas I. Schmied Universität Ulm Fakultät für Informatik

Lösungshinweise/-vorschläge zum Übungsblatt 11: Software-Entwicklung 1 (WS 2017/18)

Vorkurs Informatik WiSe 17/18

Programmieren in Java

II.1.1. Erste Schritte - 1 -

Vorkurs Informatik WiSe 16/17

Deep-Dive Workshop: Virtualisierung der Softwareentwicklung

MULTIPLEXING UND SERVER PUSH

Handbuch konsultieren!

Referat: Netzwerkprogrammierung in Java

Einstieg in die Informatik mit Java

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Client-Server TCP/IP - Kodierung

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Klausur zur Vorlesung Verteilte Systeme im SS 2007 Prof. Dr. Odej Kao 24. Juli 2007


Java - Programmierung - Prozedurale Programmierung 1

Wiederholung: Beginn

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Ausnahmen. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Werner Motzet und Tim Pistor präsentieren:

Ausdrucksbäume in verschiedenen Darstellungen

Programmieren in Java

Programmieren 2 Java Überblick

Programmieren II. Sockets. Vorlesung 16. Handout S. 1. Dr. Klaus Höppner. Hochschule Darmstadt Sommersemester Sockets.

Arten von Streams. Daten. Bytes (8-Bits) Java Programm. Daten. Java Programm. Characters (16 - Bits)

Klausur: Java (Liste P)

ASP.NET Web-API - Grundlagen

Grundlagen der Web-Entwicklung INF3172

VVA Webservice Online Lieferbarkeits-Abfrage

JAX-RS 2.0 REST mit Java EE 7

Objekte. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 5. 1 Modulübersicht 3

WebService mit MTOM an der AG-Schnittstelle des GKV-Kommunikationsserver

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Notes kann alles*! *Außer Drucken. Angaben ohne Gewähr.

E-Business Architekturen

Algorithmen und Programmierung III

Einstieg in die Informatik mit Java

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Ausnahmen. Dr. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke

Grundlagen der Objektorientierten Programmierung - Ein- / Ausgabe-Streams

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Beispiel senden

Übung 3. Komplexe SQL-Anfragen. Prof. Dr. Andreas Schmietendorf 1. Übung 3

Service Engineering. IVS Arbeitsgruppe Softwaretechnik. Abschnitt: Einführung zur Vorlesung

Netzwerkprogrammierung & Threads

Ausnahmen. Dr. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Web Services Monitoring

vrealize Log Insight- Entwicklerressourcen 11. September 2017 vrealize Log Insight 4.3

Web Service Entwicklung mit Java. Sven Lindow

Ausnahmen. Philipp Wendler. Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung

Simple API for XML (SAX) Ulrich Hoffmann

Einführung in die Programmierung mit Java

Distributed Computing Group

WebService in Java SE und EE

Java Übung. Übung 3. Werner Gaulke. 2. Mai Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

Von der Aufgabe zum Code. Mario Bodemann

Kapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions

5. Übung zur Vorlesung Service-orientierte Architekturen

Beispiel: DB-Mock (1/7)

Mini Servlets. Abschlussprojekt Internetprogrammierung. Stefan Wehr. 17. Juli 2006

Transkript:

Service Engineering Übung 2a Spezifikation und Nutzung von Web-APIs (Services) 15.05.2018 Prof. Dr. Andreas Schmietendorf 1

Aufgabenstellung 15.05.2018 Prof. Dr. Andreas Schmietendorf 2

Ziele der Übung Spezifikation eines eigenen Serviceangebots Web-API s Test eines vorgegebenen Web-API-Clients Anpassung des Web-API-Clients auf eigene Zugriffsszenarien Recherche und Verwendung von HTTP-Monitoren (API-Gateway) 15.05.2018 Prof. Dr. Andreas Schmietendorf 3

Aufgabenstellungen - 1 Erzeugen einer WSDL- oder Swagger-Spezifikation - Identifikation der Ziele einer entsprechenden Spezifikation - Kriterienbasierte Auswahl eines Werkzeugs zur WSDL/Swagger-Erstellung Analyse verfügbarer kommerzieller Produkte Analyse verfügbarer OpenSource-Produkte - Erstellen einer WSDL/Swagger-Spezifikation (Beispiel mit mind. 4 Operationen/WSDL bzw. 4 Objekte/Swagger) Vergleich der Spezifikation mit WSDL und Swagger (OpenAPI) - Beschreibung von Vor- und Nachteilen (Kriterienbasiert) - Fehlende Elemente zur Servicebeschreibung? 15.05.2018 Prof. Dr. Andreas Schmietendorf 4

Aufgabenstellungen - 2 Testen Sie die vorgegebenen Java-Clients (SOAP und REST) Entwickeln Sie einen Java-Client der das SOAP- oder JSON- Protokoll direkt nutzt und auf Funktionen selbst gewählter Web- Services zugreift. ggf. Java-Bibliotheken verwenden! - Auswahl von 2 Web Services (mind. je 2 Operationen testen) - SOAP/JSON-Schnittstelle des Serviceangebots muss verfügbar sein!! - Anpassung des vorgegeben Lösungsmusters oder eigene Lösung Identifikation potentieller Problembereiche 15.05.2018 Prof. Dr. Andreas Schmietendorf 5

Aufgabenstellungen - 3 Recherchieren Sie nach Möglichkeiten zur SOAP/XML und JSON- Überwachung und geben Sie verschiedene Lösungsalternativen an. Verwendung des ausgewählten Monitors (z.b. Membrane) - Analyse des bereitgestellten Funktionsumfangs - Konfiguration für ein eigenes Beispiel - Protokollierung der ein- und ausgehenden Nachrichten - Bewertung des Einsatzpotentials dieses Werkzeugs 15.05.2018 Prof. Dr. Andreas Schmietendorf 6

Beispiel Swagger-Editor 15.05.2018 Prof. Dr. Andreas Schmietendorf 7

Swagger-Editor (Cloud-Lösung) Quelle: https://editor2.swagger.io/#!/ 15.05.2018 Prof. Dr. Andreas Schmietendorf 8

Swagger-Editor (hier Uber-API) Quelle: https://editor2.swagger.io/#!/ 15.05.2018 Prof. Dr. Andreas Schmietendorf 9

Beispiel eines SOAP-Clients 15.05.2018 Prof. Dr. Andreas Schmietendorf 10

Serviceangebot im Internet Quelle des Web Service: Bayer, T.: http://www.thomas-bayer.com/soap/blz-web-service.htm 15.05.2018 Prof. Dr. Andreas Schmietendorf 11

Beispiel eines SOAP-Clients -1 import java.io.*; import java.net.*; public class TestClient { private static final int BUFFER = 50; public static void main(string[] argv) throws Exception{ String request = "<?xml version='1.0' encoding='utf-8'?>"+ "<soapenv:envelope " + "xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/' " + "xmlns:xsd='http://www.w3.org/2001/xmlschema' " + "xmlns:xsi='http://www.w3.org/2001/xmlschema-instance'> " + "<soapenv:body> "+ "<tns:getbank xmlns:tns='http://thomas-bayer.com/blz/'>" + "<tns:blz>10090000</tns:blz></tns:getbank>" + "</soapenv:body>"+ "</soapenv:envelope>"; 15.05.2018 Prof. Dr. Andreas Schmietendorf 12

Beispiel eines SOAP-Clients -2 // Hier muss die URL des WS-Angebots eingetragen werden URL url = new URL("http://www.thomasbayer.com/axis2/services/BLZService?wsdl"); // Verbindungobjekt erstellen und konfigurieren HttpURLConnection con = (HttpURLConnection) url.openconnection(); con.setdooutput(true); con.setusecaches(false); con.setrequestproperty("accept", "text/xml"); con.setrequestproperty("connection", "keep-alive"); con.setrequestproperty("content-type", "text/xml"); con.setrequestproperty( "Content-length", Integer.toString(request.length())); con.setrequestproperty("soapaction", "\" \""); 15.05.2018 Prof. Dr. Andreas Schmietendorf 13

Beispiel eines SOAP-Clients -3 // Vorbereitung und Ausgabe der XML-Datei zum Web Service OutputStream out = con.getoutputstream(); out.write(request.getbytes()); out.flush(); // Verarbeitung und Ausgabe der Antwort XML StringBuffer response = new StringBuffer(BUFFER); InputStreamReader input = new InputStreamReader(con.getInputStream(), "UTF-8"); char buff[] = new char[buffer]; int n; while (( n = input.read(buff, 0, BUFFER - 1)) > 0) { response.append(buff, 0, n); } out.close(); input.close(); System.out.println( response.tostring() ); } } 15.05.2018 Prof. Dr. Andreas Schmietendorf 14

Ergebnisausgabe <?xml version='1.0' encoding='utf-8'?> <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <ns1:getbankresponse xmlns:ns1="http://thomas-bayer.com/blz/"> <ns1:details> <ns1:bezeichnung>berliner Volksbank</ns1:bezeichnung> <ns1:bic>bevodebbxxx</ns1:bic><ns1:ort>berlin</ns1:ort> <ns1:plz>10892</ns1:plz></ns1:details></ns1:getbankresponse> </soapenv:body> </soapenv:envelope> 15.05.2018 Prof. Dr. Andreas Schmietendorf 15

Beispiel eines REST-Clients 15.05.2018 Prof. Dr. Andreas Schmietendorf 16

Beispiel eines REST-Clients 15.05.2018 Prof. Dr. Andreas Schmietendorf 17

JSON Editor Online Quelle: http://www.jsoneditoronline.org/ (letzte Verwendung: März 2016) 15.05.2018 Prof. Dr. Andreas Schmietendorf 18

icurl HTTP-Operationen Quelle: https://itunes.apple.com/de/app/icurlhttp/id611943891?mt=8 15.05.2018 Prof. Dr. Andreas Schmietendorf 19

XML Editor Online Quelle: http://codebeautify.org/xmlviewer (letzte Verwendung: März 2016) 15.05.2018 Prof. Dr. Andreas Schmietendorf 20

Einsatz Mock-Service (REST/XML) Mock-Service einrichten Requests überwachen Quelle: https://www.mockable.io (letzte Verwendung: März 2016) 15.05.2018 Prof. Dr. Andreas Schmietendorf 21

HTTP-Monitoring 15.05.2018 Prof. Dr. Andreas Schmietendorf 22

HTTP-Monitoring Quelle: https://www.membrane-soa.org/ 15.05.2018 Prof. Dr. Andreas Schmietendorf 23

Netzwerkmonitoring Quelle: www.wireshark.org 15.05.2018 Prof. Dr. Andreas Schmietendorf 24

Organisation der Übung 15.05.2018 Prof. Dr. Andreas Schmietendorf 25

Organisation der Übung Bitte berücksichtigen Sie die folgende Vorgehensweise: Die Übung wird in max. 4er Gruppen durchgeführt! Vorgeschlagene Methode zur Aufgabenlösung - Abstimmung einer geeigneten Vorgehensweise (20 min) - Ausführen der Aufgabenstellungen (150 min) - Erstellung eines Protokolls (30 min) Gesamtzeit für die Durchführung: ca. 200 min Bereitstellung eines entsprechenden Protokolls je Gruppe Abgabe des Protokolls am Ende des Semester 15.05.2018 Prof. Dr. Andreas Schmietendorf 26

Aufbau des Protokolls Verwenden Sie bitte des folgende Muster für das Protokoll: Allgemeine Angaben - Versuch, Beteiligte Studenten, Datum - Rahmenbedingungen (Software, ) - Methodisches Vorgehen zu Bearbeitung Aufgaben des Laborversuchs - Aufgabenstellung - Textliche Ausführungen zu den Lösungen - Verwendung von Grafiken und Screenshots Zusammenfassung (Bewertung der erreichten Ergebnisse) Genutzte Quellen (z.b. Literatur, Internet, ) 15.05.2018 Prof. Dr. Andreas Schmietendorf 27