Systemintegration ILV, FL / MIC2 (SS2014) Projekt Systemintegration Datler, Kroiß, Sachs Aufgabenstellung Im Rahmen dieses Projektes sollen verschiedene Arten von Web Services entwickelt und in einer Applikation integriert werden. © 2013/14 FH Technikum Wien 2 Architekturüberblick - Angabe © 2013/14 FH Technikum Wien 3 Architekturüberblick - Umsetzung Autoverleih Python http://sintrest-sumpfgottheit.rhcloud.com OpenShift - Red Hats Cloud Angebot, AWS, US Region SOAP REST Währungsrechner Java http://lnurn3.schlof.net:8080/SOAP_CurrencyConverter/wsdl/CurrencyConverter.wsdl Netcup Serverhousing, Nürnberg, DE Verleihnix REST Python http://sintapp.herokuapp.com/leihen/ Heroku, AWS, EU Region Google Maps Google Distance Matrix © 2013/14 FH Technikum Wien GoogleAPI-Cache RedisLabs, AWS, US Region 4 Google Maps Google Distance Matrix © 2013/14 FH Technikum Wien 5 Google Distance Matrix Ermittlung von Reise-Distanzen zwischen zwei Positionen Users of the free API: – 100 elements per query. – 100 elements per 10 seconds. – 2 500 elements per 24 hour period. Aufruf: http://maps.googleapis.com/maps/api/distancematrix/output?parameters – Parameter: origins, destinations, key (optional) Return Value: – JSON oder XML JSON © 2013/14 FH Technikum Wien 6 Google Distance Matrix Aufruf: Return Value: http://maps.googleapis.com/maps/api/ distancematrix/json?origins=Vienna&d estinations=Graz&mode=bicycling&lang uage=en-DE&sensor=false – JSON oder XML JSON { "destination_addresses" : [ "Graz, Austria" ], Parameter: "origin_addresses" : [ "Vienna, Austria" ], "rows" : [ { "elements" : [ { "distance" : { "text" : "210 km", "value" : 210314 }, "duration" : { "text" : "12 hours 14 mins", "value" : 44054 }, "status" : "OK" } ] } ], "status" : "OK" Origins Destinations Mode (optional) Language (optional key (optional) } © 2013/14 FH Technikum Wien 7 Währungsumrechner JAVA & SOAP © 2013/14 FH Technikum Wien 8 Currency Converter Technologoie: Java IDE: Eclipse JEE Kepler SOAP / WSDL basiert WSDL auf: – http://lnurn3.schlof.net:8080/SOAP_CurrencyConverter/wsdl/ CurrencyConverter.wsdl Nützliches Tool: http://wsdlbrowser.com/ © 2013/14 FH Technikum Wien 9 Currency Converter – getCurrencyList() String[ ] getCurrencyList() © 2013/14 FH Technikum Wien 10 Currency Converter – getConversionRate() Double getConversionRate(double _val, String _fromCur, String _toCur) © 2013/14 FH Technikum Wien 11 Currency Converter – Überprüfung des Algorithmus © 2013/14 FH Technikum Wien 12 Lessons Learned Deployment auf public hosting services war eine Herausforderung Ausgangsdatei vom Aufbau „unkonventionell“ © 2013/14 FH Technikum Wien 13 Autoverleih Python & REST © 2013/14 FH Technikum Wien 14 REST API - GET REST_URL=“http://sintrest-sumpfgottheit.rhcloud.com/api” curl $REST_URL/kunden/2 { "city": "Tamsweg", "country": "\u00d6sterreich", "id": 2, "leihen": [], "name": "Bob Builder", "plz": "5589", "street": "Lederwaschstrasse 2" } © 2013/14 FH Technikum Wien 15 REST API - PUT REST_URL=“http://sintrest-sumpfgottheit.rhcloud.com/api” curl -X PUT -H "Content-Type: application/json" -d '{"street": "Erlenweg 1" }' $REST_URL/kunden/2 { "city": "Tamsweg", "country": "\u00d6sterreich", "id": 2, "leihen": [], "name": "Bob Builder", "plz": "5589", "street": "Erlenweg 1" } © 2013/14 FH Technikum Wien 16 REST API - POST REST_URL=“http://sintrest-sumpfgottheit.rhcloud.com/api” curl -X POST -H "Content-Type: application/json" –d ’{“name": "Lana Horvat", "street" : "Murve ulica 66", "city" : "Novigrad", "plz" : "52466" , "country" : "Kroatien" }’ $REST_URL/kunden © 2013/14 FH Technikum Wien 17 REST API - DELETE REST_URL=“http://sintrest-sumpfgottheit.rhcloud.com/api” curl -X DELETE $REST_URL/kunden/6 © 2013/14 FH Technikum Wien 18 Lessons Learned, Difficulty Easy REST – curl – Python: requests Library SOAP – Wenn man eine funktioniernde LIB gefunden hat © 2013/14 FH Technikum Wien 19 Lessons Learned, Difficulty There be Dragons Deployment – „In der Eclipse geht’s“ Gr⅞bere Encodingprobleme Different Configs for Different Cloudproviders Did I mention Deployment © 2013/14 FH Technikum Wien 20